2009. szeptember 29., kedd

Snippet Compiler: pehelysúlyú Visual Studio alternatíva

Előfordult már, hogy valamilyen kódot, kód-részletet ki szerettünk volna próbálni? Nyilván igen (ha nem, fölösleges is tovább olvasni).
Ilyenkor egy új Visual Studio megnyit... krrr, krr... New Project... krrrrr rrr, konzolos alkalmazás, rrrrkrrrr...

Szóval zseniális IDE a Visual Studio, de az ilyen ötsoros alkalmazásokhoz az ionágyúval verébre kategória. Felmerül a lehetőség, hogy egyszerűen Notepad-ben megírjuk a kódot, aztán jöhet a csc.exe, de az meg a másik véglet: enni ugyan alig kér, viszont adni se ad sokkal többet. Intellisense, syntax highlight nélkül mit érek én? Akkor már ennyi erővel lehetne edlin is... (Az megvan, hogy ez az MS-DOS 5.0 óta minden Microsoft oprendszerben ott van? A hetesben is. Nem, nem az MS-DOS 7.0-ban, az ablakos hetesben.)

Mindent összevetve, egyik sem jó megoldás. Kellene egy lightweight Visual Studio, amire az ember csak rábök, és már írhatja is a kódot.
Mit ad isten: van ilyen, úgy hívják, hogy Snippet Compiler. Egyszerű, mint Kiszel Tünde, de a legszükségesebb dolgokat tudja. Az installja 1 MB és egy .zip kibontását jelenti, szemvillanás alatt indul.

Snippet Compiler

Ja, és a legjobb, hogy az "Add Reference..." ablak (itt Tools -> References) körülbelül 0.05 sec alatt ugrik föl. Na ezt csinálja utána a Studio!

2009. szeptember 18., péntek

Sense/Net 6.0 Beta 4.3

Egy újabb kiadás a Beta 4 sorozatból, ami a szokásos hibajavítások mellett új feature-t is hoz: az AD szinkront.

Nem újdonság ugyan, de sosem írtam még róla, hogy a http://www.sensenet.hu/download oldalon csatlakozni lehet a béta teszt programunkhoz, aminek keretében visszajelzéseiddel segítheted a munkánkat, és másoknál korábban juthatsz a friss információhoz a fejlesztés menetéről és irányáról.

Végezetül pedig a jól megszokott linkek:
Dokumentáció: Sense/Net 6.0 Wiki - http://wiki.sensenet.hu/
Kérdések, bugreport: Sense/Net 6.0 Fórum - http://forum.sensenet.hu/
Újdonságok, technikai érdekességek: Sense/Net 6.0 Blog - http://blog.sensenet.hu/
Céginformáció, kapcsolat: Sense/Net Site - http://www.sensenet.hu/

2009. szeptember 10., csütörtök

A lomtalanítás és az elpusztíthatatlan objektumok

Élesztettek már újra objektumot?
Nem?
Persze, ha egyből elpusztíthatatlan objektumokat csinálnak, akkor nincs ilyenre szükségük.
Tudják hogy kell? Én már tudom.

Az egész ott kezdődött, hogy a munkahelyemen nagytakarítás volt. Egy igazi GC.Collect(), ha úgy tetszik.
Egy idő után a takarítás kezdett egyre inkább lomi jelleget ölteni. A lomi egyik alapszabálya, hogy amit kiraksz, az öt perc múlva már nincs ott. Így járt az elődöm által rámhagyományozott, évek óta nem használt laptoptáska, és így járt az a 2004 májusi TechNet Magazin is, ami talán valamilyen fiók mélyéről kerülhetett elő. Mindenesetre ez utóbbit én megmentettem. A piece of history, hát mégsem vagyunk barbárok!

Ebből kifolyólag az utóbbi pár estémet a hamarosan megjelenő ASP.NET 2.0-val való megismerkedéssel (ebbe' már provájderek vannak, öcsém, meg GridView!), illetve az SQL Server 2000-hez immár kiegészítésként elérhető Reporing Services funkcióinak áttekintésével töltöttem.
Ezen kívül találtam egy cikket a GC-ről, valamint ennek vonatkozásában a finalizerekről, IDisposable patternről, gyenge referenciákról.

Konkétan a legjobb cikket, amit a témában magyarul olvastam, ever.

Ami vicces, hogy ez az írás egy fikarcnyit sem vesztett az aktualitásából: bár a garbage collector az 1.0-ás frameworktől kezdve velünk van, a legtöbbször észrevétlenül teszi a háttérben dolgát és ritkán kerül a figyelem középpontjába - emiatt aztán a fejlesztők többségének* ez elég homályos terület. Legalábbis megkapargatva kicsit a felszínt biztosan.

Hála a TechNet portálnak, a Szerényi László tollából született kiváló cikk ma is elérhető az Interneten. Happy reading!

*nekem

2009. szeptember 7., hétfő

.NET fejlesztő kerestetik

Bár a válság ezt a szektort sem hagyta érintetlenül, jó .NET fejlesztőkre továbbra is szükség van. Hogy messzebb ne menjek, például a Sense/Net is keres senior fejleszőt, illetve rendszermérnököt.

Emellett több ismerősöm is megkeresett az elmúlt napokban, egyikőjük .NET / BizTalk fejlesztőt, másikuk .NET szakértőt keres, ráadásul több embert is (ez utóbbiról emailben lehet érdeklődni).

2009. szeptember 3., csütörtök

Sense/Net 6.0 Beta 4.2

Újabb Sense/Net 6.0 béta, a négyes sorozat következő, bugfix kiadása. Letölthető a szokásos helyről.

Az elmaradhatatlan linkek:
Dokumentáció: Sense/Net 6.0 Wiki - http://wiki.sensenet.hu/
Kérdések, bugreport: Sense/Net 6.0 Fórum - http://forum.sensenet.hu/
Újdonságok, technikai érdekességek: Sense/Net 6.0 Blog - http://blog.sensenet.hu/
Céginformáció, kapcsolat: Sense/Net Site - http://www.sensenet.hu/

2009. szeptember 1., kedd

A HTTP Redirect, a SEO és a .NET Framework 4.0

A HTTP Redirect arra szolgál, hogy egy HTTP kérésre olyan választ küldjünk vissza a kliensnek, aminek hatására az automatikusan újabb kérést fog küldeni az általunk megadott URL-re. Magyarul, hogy "átdobjuk egy másik oldalra".

A HTTP protokoll számos lehetőséget biztosít erre (az összes 300-as statáuszkód valamilyen redirecttel kapcsolatos választ jelent), de igazából két verzió igazán "népszerű": a 301-es kódú állandó (permanent) és a 302-es kódú ideiglenes (temporary) redirectet.

"301 Moved Permanently": Az állandó redirect azt közli a klienssel, hogy az általa kért erőforrás URL-je megválozott, a jövőben akár kliensoldalon is elcachelheti ezt a tudást, ha akarja (a böngészők többnyire ennek ellenére sem akarják). Jellemző felhasználás: megváltozott az oldal neve, régi domainről átdobunk az újra, stb.
"302 Moved Temporarily": Az ideiglenes redirect azt mondja a kliensnek, hogy az általa megcímzett erőforrás ideiglenesen más címen érhető el, próbája ott - legalábbis ez volt vele az eredeti cél. In tha real life, viszonylag ritkán pakolászik az ember odébb tartalmakat ideiglenesen, viszont a 302-es redirect ideális pl. forms login előtti / utáni login page-re, illetve original page-re való "átdobáláskor".

A 301/302 redirectnek van továbbá SEO vonatkozása is: a Google indexelője nem szereti, ha ugyanaz a tartalom több URL-en keresztül is elérhető (pl. http://mysite.hu és http://mysite.hu/Nyitooldal). A PageRank csökkentő büntetést ez esetben el lehet kerülni, ha az "alternatív" címekről átirányítjuk a látogatókat egyetlen címre - méghozzá 301-es (állandó) redirecttel.
Ha el lehet, akkor kerüljük is el! Ami a bukó, hogy az ASP.NET Response.Redirect() metódusa alapból 302-es (temporary) redirectet küld, és nincs is olyan overload, amivel egyszerűen rá lehetne venni, hogy 301-est küldjön. A Response közveltlen manipulálásával (a status code, illetve a Location header beállításával) azonban rá lehet venni az ASP.NET-et is a 301-es redirectre.

Ezt a low-level matatást célszerű bezárni mondjuk egy HttpResponse extension method-ba:

public static class ResponseExtensions
{
    public static void RedirectPermanently(this HttpResponse response, string url)
    {
        response.Clear();
        response.Status = "301 Moved Permanently";
        response.AddHeader("Location", url);
        response.End();
    }
}

Így az átirányítás egyszerűen egy Response.RedirectPermanently("http://mysite.hu")-val elintézhető.

Legalábbis eddig így lehetett. A Framework fejlesztői azonban meghallották az új idők szavát: .NET Framework 4.0-tól a HttpResponse osztálynak lesz RedirectPermanent() metódusa. A fejlődés megállíthatatlan!