Utolsó napom a BME-n

2014.08.29. 19:31 Hozzászólás

Úgy döntöttem, hogy augusztus végén új fejezetet kezdek, és 14 év után elhagyom az Egyetemet.

bme-masodik-emelet

Tizennégy év olyan hosszú idő, hogy nehéz teljes pontossággal visszatekinteni, mi minden is történt ennyi idő alatt. Az biztos, hogy sokat köszönhetek a Tanszéknek, a közegnek, ami lehetővé tette, hogy annyi remek projektben vegyek részt. Hogy csak egyet említsek, együtt csináltuk végig a .NET hazai bevezetését, és aki ott volt, emlékezhet még az induló készletekre:

bme-dotnet-indulo-keszlet

Rengeteg élő eseményt szerveztünk ez idő alatt, a “Rendezvenyek” mappámban közel 200 almappa található. Volt néhány formabontó is, például amikor az előadás során összerakott pizzarendelő alkalmazás olyan kiválóan működött, hogy a futár valóban kihozta az illatozó pizzákat, és olyan is, hogy a közönség soraiból sorsoltunk ki valakit társ előadónak. Akkoriban még a termékbejelentések is nagyot szóltak, a Visual Studio 2005 Launch például rockos stílusban ment a Kongresszusi Központban:

bme-vs-2005-launch

Sokat gondolkodtunk egy közösségibb esemény kitalálásán is, végül nálunk született meg a Win The Web 24 órás programozói verseny ötlete, és mi is szerveztük az elsőt 2007-ben:

bme-wtw07

Íme a szervező csapat a díjátadón:

bme-wtw07-csapat

Számos nagyszerű kollégával dolgozhattam együtt, néha éjt nappallá téve:

bme-dz-alszik

bme-csp-alszik

Közülük sokan már korábban elhagyták az Egyetemet, és szintén távozott számos olyan diák, akit volt szerencsém tanítani ez elmúlt években. Sokukkal találkozom rendezvényeken, és jó hallani, amikor elmondják, hogy hasznát vették a nálunk tanultaknak. A visszajelzéseknek, legyenek azok bíztatóak vagy kreatív kritikák, mindig örültem, mert segítettek jobbá tenni az órákat, előadásokat. Sőt, volt úgy, hogy a falra is kikerültem velük:

bme-ohv

Konzulensként nagyon sokat tanultam a hallgatóktól, és számtalanszor sajnáltam, amikor valakivel véget ért a közös munka. Persze nincs jobb érzés annál, mint amikor záróvizsga után kijön az ember védésről, és azt mondhatja a hallgatójának, hogy “Gratulálok, Mérnök Úr!” :) Ez olyan, amit az Egyetemen kívül biztosan nem lehet megtapasztalni.

Vannak szerencsére olyan dolgok is, amik az Egyetemtől függetlenül velem maradnak. Megmarad például ez a blog, meg terveim szerint úgy általában minden olyan tevékenység, ami a Microsoft regionális igazgatói és Most Valuable Professional (MVP) címhez kapcsolódik már tíz éve:

bme-mvp-awards

Ahogy egy barátom fogalmazott, nem a Holdra megyek, megtaláltok :)

Hétfőn új időszámítás kezdődik, viszlát BME, helló LogMeIn!

bme-kijarat

 

ui. 1:

Nosztalgiázók kedvéért: Az Egyetemen vannak nagyon állandó dolgok, például a Goldmann menza semmit nem változott másfél évtized alatt, sőt még a Goldmann szelet is pont ugyanolyan:

bme-goldmann-szelet

 

ui. 2:

Kilépők kedvéért: Az Egyetemről kilépni nem annyira egyszerű, de erről majd egy másik cikkben…

 

Technorati-címkék:
Kategóriák:Uncategorized Címke:

Visual Studio “14” CTP SxS

2014.08.23. 15:02 Hozzászólás

Sorra jelennek meg a Visual Studio következő változatának előzetesei, ún. CTP, azaz Community Technology Preview formában. A CTP-k célja, hogy a fejlesztőcsapat minél korábban kapjon visszajelzéseket az újabb funkciók működéséről, ennek megfelelően ezekre koncentrálnak, nem pedig arra, hogy minden korábban bevezetett funkció is helyesen működjön. Simán előfordulhat, hogy egy korábbi verzióban már stabilan működő funkció egy CTP-ben elromlik (lásd Release Notes). Semmi gond, nem kell aggódni, a következő stabil release-re biztosan ki fogják javítani (főleg akkor, ha jelentjük a hibát). Ezzel teljesen összhangban a Microsoft nem csak hogy hivatalosan nem támogatja a CTP verziókat, de egy CTP telepítésével az egész “gép” támogatása megszűnik.

A legjobb megoldás a CTP kipróbálására a virtuális gép. Sajnos a Visual Studio csapat nem tesz elérhetővé telepített és előre konfigurált virtuális gépeket, aminek a fő oka, hogy így a telepítés folyamatát is sokan tesztelik világszerte különféle környezetekben. Azure előfizetéssel rendelkezők azonban kényelmes helyzetben vannak, mert számukra a Virtual Machine Gallery-ben elérhetőek ilyen konfigurációk.

Mi a helyzet a bátrak módszerével, a side-by-side telepítéssel? Természetesen a végleges verziót lehet majd a korábbi verzió mellé telepíteni, azonban CTP esetén ez fokozottan kockázatos. A VS “14” CTP 1 telepítője nem is engedte ezt, de mivel a csapat folyamatosan dolgozik a kapcsolódó problémák megoldásán, ezért a CTP 2-től már technikailag ugyan lehet side-by-side telepíteni, továbbra is az az ajánlás, hogy teszt gépen célszerű kipróbálni.

Side-by-side telepíteni nem kell félnetek jó lesz én nem ellenzem.

 

Technorati-címkék: ,
Kategóriák:vNext Címke:

Mixed content warning

2014.08.18. 4:00 Hozzászólás

Szomorú, amikor így széthullik egy oldal a böngészőben, például Chrome-ban:

mixed content chrome

Hogy miért? Hát nem nyilvánvaló, ott van a magyarázat. Segítek:

mixed content chrome warning small

Úgy hívják, hogy mixed content warning, és warning, azaz figyelmeztetés létére nem éppen feltűnő. Lássuk ugyanezt Firefoxban:

mixed content FF

Megvan?

mixed content FF blocked small

Az Internet Explorer kevésbé finomkodik, azonnal a felhívja a felhasználó figyelmét:

mixed content warning

Bár itt nem egy pajzs ikont kell keresgélnünk (amit egyébként túl sokszor, túl sok mindenre használtak már), hanem rögtön kapunk egy szöveges üzenetet, semennyivel sem jobb a helyzet. Ezt az üzenetet, és úgy általában a problémát, ugyanis egy átlagos felhasználó nem érti. Sőt, nem csak hogy a felhasználók nem értik, de a fejlesztők sincsenek tisztában a biztonsági vonatkozásokkal, különben nem lennének ilyen problémás oldalak.

Pedig arra kellene csak figyelni, hogy ha az oldal https:// protokollon töltődik be, akkor az oldalra betöltődő összes (igen, az összes) tartalom is https-en jöjjön, ne legyen egyetlen http:// link sem az oldal kódjában. Ha külső domainről töltesz be tartalmat, és nem tudsz relatív URL-t használni, akkor kezdd az URL-t “//”-rel, és a böngésző azt a protokollt fogja használni, amit az oldal is használ. Ezt a hívják, hogy “protocol relative”, vagy “scheme relative” vagy “scheme-less relative” URL, és már az URI általános formáját leíró RFC 3986-ban is szerepel (2005. január), és természetesen a böngészők is értik.

Ideje lenne kijavítgatni az oldalainkat, a böngészőknek pedig előbb-utóbb teljesen blokkolni az ilyen defektes oldalakat.

 

Technorati-címkék: ,,
Kategóriák:Biztonság, Webfejlesztés Címke: ,

Hány kérés kell egy authentikációhoz?

2014.08.16. 4:00 Hozzászólás

Adott egy webszolgáltatás, amiről tudjuk, hogy csak Basic hitelesítéssel érhető el, de ez nem gond, hiszen szerencsére .NET-ben a generált proxy osztály Credentials tulajdonságán keresztül könnyű beállítani a szükséges felhasználónevet és jelszót:

MyService ws = new MyService
{
    Credentials = new NetworkCredential( "user", "password" )
};

Az ember azt gondolná, hogy ennek hatására olyan HTTP kérés megy majd a webszolgáltatás felé, amely tartalmazza az authenkációhoz szükséges adatokat, de a valóságban sajnos nem ez történik. Először elmegy egy olyan kérés, amiben nincs Authorization fejléc, azután ha a szerver ezt zokon veszi és 401 Authenticate válasszal tér vissza, akkor a kliens küld egy újabb kérést, ezúttal mellékelve hozzá a felhasználónevet és a jelszót. Az eredmény tehát dupla forgalom. Ha ez nem szimpatikus, és persze miért is lenne az, akkor jól jöhet a PreAuthenticate tulajdonság:

MyService ws = new MyService
{
    Credentials = new NetworkCredential( "user", "password" ),
PreAuthenticate = true };

 

Technorati-címkék: ,

PHP-s webszolgáltatás hívása .NET-ből

2014.08.14. 23:14 Hozzászólás

Úgy alakult, hogy .NET-ből kellett egy PHP-ban készült webszolgáltatást meghívnom standard SOAP interfészen keresztül, de ismét bebizonyosodott, hogy a Simple Object Access Protocolban a “simple” egyszerűen nem igaz, ugyanis a két fél összereszelése nem ment teljesen simán.

A hívás eredményeként a kliens 400 Bad Request státuszkódot kapott vissza, ami önmagában nem sokat segített a hibakeresésben. Az Apache webszerver naplójában ugyan volt egy Invalid URI in request bejegyzés, de ez sem vitt közelebb a megoldáshoz.

Mint már oly sokszor, most is a Fiddler segített. Megnézve vele a HTTP forgalmat gyanús lett, hogy a kérésben szerepel egy Expect: 100-continue fejléc, amiről később kiderült, hogy a PHP-s webszolgáltatás nem tud vele mit kezdeni. Ez egy elég érdekes fejléc, arra találták ki, hogy a kliens megkérhesse a szervert, hogy még a body felküldése előtt kiértékelje a kérésben szereplő fejléc mezőket, és egy 100 Continue válasszal jelezze, ha a fejlécek alapján hajlandó lesz feldolgozni a kérést, és a kliens bátran küldheti a body-t (bővebben lásd RFC 2616 8.2.3). Magyarul a klasszikus kérés-válasz sorrendet szépen fel lehet vele borítani:

Kliens –> Szerver:

POST example.com HTTP/1.1
kérés fejlécek
Expect: 100-Continue

Szerver –> Kliens:

HTTP/1.1 100 Continue
válasz fejlécek

Kliens –> Szerver:

kérés body

Szerver –> Kliens:

HTTP/1.1 200 OK
válasz fejlécek
válasz body

A .NET kliens mindig elküldi az Expect: 100-Continue fejléc sort, hogy spóroljon a hálózati forgalommal, sajnos azonban a jelek szerint nem minden szerver támogatja ezt a csavarást. Ezt a viselkedést a ServicePointManager osztály Expect100Continue tulajdonsága segítségével lehet felüldefiniálni:

ServicePointManager.Expect100Continue = false;

Még az is lehet, hogy így lesz gyorsabb a kódunk, hiszen a HttpWebRequest osztály alapértelmezés szerint 350 milliszekundumot vár a Continue válaszra.

 

Technorati-címkék: ,,,

Microsoft Nyári Akadémia – .NET vNext

2014.07.6. 11:53 Hozzászólás

Kedden a Microsoft Nyári Akadémia programsorozat megnyitásaként a .NET és az ASP.NET következő verziójáról tartottam egy bevezető előadást. Az előadásnak a “.NOT, avagy .NET vNext” címet adtam, mert az új verzió számos gyökeres változást hoz, sok esetben teljesen átírva azt, amit a .NET-ről eddig tanultunk.

Ahhoz, hogy ezeknek a változásoknak az okait megértsük, mindenképp látnunk kell azt, hogy a Microsoft másfél évtizede rakta le a .NET platform alapjait, és ennyi idő alatt ez a szakma, különösen a webes világ, rengeteget változott. Kezdetben a cég ezekre a irányváltásokra pont olyan fürgén reagált, mint egy konténerszállító teherhajó, de azután a webes termékcsapat szépen magára talált, és a teherhajóból fürge romboló lett. A WebForms ás a .NET hiányosságait szépen sorban igyekeztek pótolni, megjelent a NuGet, az MVC, a WebPages és a WebAPI.

A végeredmény azonban nem egyetlen technológia lett, hanem egymáshoz nagyon hasonló, egymással rokon programozási keretrendszerek összessége. És bár hívhatjuk “One ASP.NET”-nek, amíg az MVC és a WebAPI más filtereket használ, vagy az MVC-ben és a WebPages-ben más a HTML helperek implementációja, addig ez az elnevezés sántít.

A webes termékcsapat nagyon jól ráérzett, hogy itt egy komolyabb vérfrissítésre van szükség. És ha már újraírják az MVC-t úgy, hogy magába olvassza a WebAPI-t és a WebPagest is, akkor át lehet gondolni az ASP.NET-nek azokat a részeit is, amik valóban közösek. Elég csak a mindenhol jelenlevő HttpContext objektumra, a System.Web.dll-re, vagy a teljes végrehajtási csővezetékre gondolni. Sőt mi több, ha figyelembe vesszük az új fordító (Roslyn) és új JIT fordító (RyuJIT) képességeit, akkor fel kell hogy merüljön a BCL és a CLR cseréjének kérdése is.

A Microsoft nem kisebb dologra vállalkozott, mint hogy a .NET következő verziójára refaktorálja a BCL-t, kicseréli a runtime-ot, átdefiniálja az egységnyi kód fogalmát, elpusztítja a GAC-ot, újraírja az ASP.NET platformot, és hozzá természetesen a teljes eszközparkot. Mindezt kezdettől fogva cross-platform módon, a legmodernebb tervezési mintákat követve, a felhőre optimalizálva és a modern kor elvárásainak megfelelően nyílt forráskódú módon. És itt most nem arra a “klasszikus Microsoftos” nyílt forráskódra kell gondolni, amikor a rendszer megjelenése után sok hónappal kiteszik a CodePlexre a kipucolt forrásfájlokat, hanem arra az igazi Githubos nyílt forráskódú világra, amiben mindenki küldhet pull requesteket.

Ezekről beszélgettünk a Nyári Akadémián. Akit érdekel a diasor (és benne a demók), megtalálja a Slideshare-en:

 

A teljes platform fejlesztése egyelőre nagyon korai fázisban van, és természetesen még nagyon sok változásra lehet számítani. Aki mégis szívesen ismerkedne vele, itt kezdhet hozzá:

 

Technorati-címkék: ,,,
Kategóriák:vNext Címke: , , ,

Megjelent a .NET Framework 4.5.2

Bejelentés és az újdonságok rövid áttekintése: Announcing the .NET Framework 4.5.2

Az újdonságokról kicsit bővebben: What’s new in the .NET Framework 4.5.2

Telepítőcsomagok:

Vigyázat, in-place upgrade! A 3.5 SP1 és korábbi verziókkal side-by-side települ, de a 4, 4.5 és 4.5.1 verziókat in-place frissíti. Ezért is lehet fontos az alábbi tudásbázis cikk:
KB 2962547 – Known issues for the .NET Framework 4.5.2

Lehet töltögetni!

 

Technorati-címkék:
Kategóriák:.NET 4.5 és Visual Studio 2012 Címke:
Követés

Értesítést küldünk minden új bejegyzésről a megadott e-mail címre.

Csatlakozz a 79 követőhöz

%d honlapszerkesztő ezt szereti: