Ismét MVP lettem

Immár nyolcadszor. Gyorsan múlik az idő, ez a kép 2004-ben készült még az első csapattal:

humvps

Köszönöm mindenkinek a támogató bíztatást és kitartást. Folyt. köv.

 

Technorati-címkék: ,,
Kategóriák:Nem szakmai Címkék:

Kimaradhat a XAML a Windows 8-ból

ms-days-logoAkik esetleg követnek Facebookon vagy Twitteren már tudhatják, hogy múlt héten Dávid Zoli barátommal Szófiában voltunk.

A bolgár Microsoft múlt héten rendezte meg az MS Days 2012 konferenciát, ami egy meglehetősen komoly rendezvény fejlesztők és üzemeltetők számára. Csak hogy a méreteket érezni lehessen: két nap, 8 párhuzamos szekció, 72 előadás (melynek kb. a fele angolul), 49 előadó (akik közül sokat külföldről reptettek oda) és minderre több, mint 1000 résztvevő.

A szervezés nagyon profi volt, minden egészen flottul ment, talán csak a helyi Lurdy Ház, a Кино Арена volt egy kicsit szűkös ennyi embernek:

Кино Арена

Zolival két előadást tartottunk JavaScriptről, HTML5-ről, MVC-ről és Azure-ról, főként tapasztalatokról és legjobb gyakorlatokról. Akit érdekel, letöltheti az előadásokhoz tartozó prezentációkat és demókat innen. Büszkén jelenthetem, hogy mindkét előadás nagyon népszerű volt, sokkal többen jöttek, mint ahányan a terembe befértek, még a “falakon is lógtak”. Az értékelőlapok összesítését még nem kaptuk meg, de a Twitteren már jött néhány pozitív visszajelzés (kettőnk közül csak én vagyok Twitteren, ezért csak engem emlegetnek, de az előadásokat együtt tartottuk):

ms-bg-twitter1

ms-bg-twitter2

A második előadás után megkeresett minket a Microsoft Research két munkatársa és elmondták, hogy az egyik kiemelt projektjükben kompatibilitási problémák megoldásán dolgoznak és az előadások alapján arra gondoltak, hogy szívesen bevonnának minket is. Konkrétan azon elmélkednek, hogy a XAML egy gigantikus zsákutca, mert már sok “dialektus” van belőle (Silverlight, WPF, Windows Phone, Windows 8) és mindegyik jelentősen eltér a másiktól.

Erről egyébként bárki meggyőződhet: a CODE Magazin atyja, Markus Egger egy nagyon hasznos eszközt tett közzé a CodePlexen XAML Dialect Comparer Tool néven. Az eszköz annyit tud, hogy megadunk neki egy forrás és egy cél XAML változatot, ő pedig végigszántja a névtereket és megmondja, mennyire kompatibilisek egymással. Például ha Silverlight 5-ről Windows 8 Metro-ra akarunk átállni, akkor csak 55,19%-os kompatibilitással számolhatunk. Mindenki eldöntheti, hogy a saját esetében ez mire elég.

XamlComparer

Vissza Bulgáriához. Szóval az MSR-nél két projekten dolgoznak és mivel egy szóval sem mondták, hogy ne beszéljünk róla, elmesélem. Az egyik projekt célja, hogy XAML markupot HTML-re fordítsanak, a másiké pedig, hogy a HTML+JavaScript alkalmazásoknak 100%-osan kompatibilis környezetet biztosítsanak minden platformon. Komolyan elkezdtek azon gondolkodni, hogy a Windows 8 Metro stílusú alkalmazásoknál kínált JavaScript lehetőségek pontosan ugyanabba az irányba viszik a HTML+JS párost, mint a XAML-t: dialektikus zsákutcába. Márpedig ezt a hibát az MS nem akarja még egyszer elkövetni, így nem csoda, hogy Steven Sinofsky-t is komolyan érdeklik ezek a kutatások.

Íme egy példa! Windows 8 Metro stílusú alkalmazásban használhatunk WinJS.UI.ListView vezérlőt, így:

<div id="playeritemtemplate" data-win-control="WinJS.Binding.Template">
    <div data-win-bind="innerText:Name" style="height: 20px;" />
    <img data-win-bind="src:Photo" style="width: 200px; height: 150px;" />
</div>

<div id="PlayerListView" 
    style="height: 185px;" 
    data-win-control="WinJS.UI.ListView"     
    data-win-options="{itemRenderer:playeritemtemplate,
                       layout:{type:WinJS.UI.GridLayout,maxRows:1}}" />

Ez működik kiválóan Windows 8 esetén, de sehol máshol. Arról nem beszélve, hogy a kód elég nehezen olvasható, hiszen a WinJS.UI.ListView vezérlő hozza azt a produktivitást, ami miatt az egészet csináljuk, de fogalmunk sincs, hogy az hogyan működik. Íme egy másik példa, ezúttal egy datepicker:

<div data-win-control="WinJS.UI.DatePicker" 
     data-win-options={maxYear:2020,minYear:2000}" />

Ez is csak Windows 8-on fog bármit is produkálni, miközben dátumválasztásra mindenhol szükség van. Persze vannak tökéletes megoldások: az adatkötés megoldható például KnockoutJS-sel, a dátumválasztás pedig jQueryUI DatePickerrel. Ezek tisztán JavaScript alapú megoldások (beszéltünk is róluk az előadásunkban), tehát nincs platform probléma, feltéve persze, hogy a JavaScript futtatás nem okoz gondot az adott környezetben. Weben mindez természetes, tehát ahol webböngészőt tudunk beágyazni, ott a probléma megoldva. Nézzük sorban:

Silverlight: átfordítjuk a XAML-t HTML-re, a code behindot pedig JavaScriptre és ha a hoszt egy böngésző, akkor máris készen vagyunk. A C#-JavaScript konverzióra Nikhil Kothari Script# projektje szolgáltat megoldást. Ha out-of-browser SL alkalmazásról van szó, akkor sincs nagy gond, hiszen akkor a hoszt az explorer.exe, ami szintén beépítetten támogatja a HTML-t és a JavaScriptet (mindenki emlékszik még a böngésző beépítése körüli jogi hercehurcára). Ez egyben a SL jövője körüli kérdést is megoldja.

WPF: csakúgy mint SL-nél, itt is átfordítjuk a XAML-t HTML-re, a code behindot pedig JS-re, és mivel a hoszt itt is az explorer.exe, futni is fog vidáman. Itt már gyakrabban jöhet elő egy olyan nehézség, ami SL5-nél is, konkrétan a P/Invoke, ez ugyanis kimutat a .NET runtime adta környezetből. Erre még nincs teljeskörű megoldás, egyelőre ott tartunk, hogy aki P/Invoke-ra épít, annak valószínűleg kevésbé fontos a hordozhatóság, de ez még nem kielégítő válasz.

Windows Phone: biztos hallottátok már azt a pletykát, hogy a Windows Phone 8-nál cserélni fogják a kernelt, ami már a Windows 8-ra fog épülni. Ezt egyelőre sem megerősíteni, sem cáfolni nem tudom (ugye értitek Kacsintó arc), a mi szempontunkból csak az a lényeg, hogy ez lesz a legkevésbé fájdalommentes. Ami a Windows Phone 7-et illeti, ott szóba se jöhet egy kernel szintű módosítás, ezért valószínűleg egy runtime réteg fog bekerülni valamelyik frissítésbe, ami gyakorlatilag egy transzparens böngésző lesz a HTML alapú alkalmazások futtatására.

Windows 8: ez a legrizikósabb terület, ugyanis pont itt reklámozta az MS legjobban az új HTML lehetőségeket és most ebből kellene visszalépni a helyes útra, ami persze egy marketing öngyilkosság lenne. Bár erre bármikor lehet azt mondani, hogy eddig csak “preview” változatok láttak napvilágot, ami magában hordozta a változtatás lehetőségeit, és hogy csak az a fontos, hogy a végeredmény hosszú távon jó legyen. A Microsoft Research-ös srácokkal arról beszélgettünk, hogy Sinofsky képes lenne szembemenni a cégen belüli marketing gépezettel a profi végeredmény érdekében.

Felmerülhet persze még kérdésként a sokféle “form factor”, azaz a cél eszközök különböző mérete. Hogyan fognak megjelenni az alkalmazásaink egy kicsi telefonon vagy egy nagyobb monitor képernyőjén? Ezzel kapcsolatban szerencsére pont a Windows 8 miatt már kitalálták a megoldást, érdemes elolvasni Nacsa Sándor idevágó Standards-based adaptive layouts in Windows 8 (and IE10) című írását.

layout

Szintén érdekes problémakör az adattárolás kérdése. Itt az a szerencse, hogy a sok XAML környezet közül már a legkisebb is hozza a közös nevezőt: a Mango óta Windows Phone-on is lehet SQL Compact Editiont használni. Ha pedig külső SQL Serverre van szükség, akkor pedig maradnak a HTTP alapú REST-es API-k az adatbázis elérésére.

Mindezek a projektek gyönyörűen haladnak az MSR-nél, vannak működő megoldásaik nem csak egyszerű, hanem összetettebb alkalmazásokra is. Az igazi probléma az időzítés. Az MSR nem elég nagy ahhoz, hogy az igazi bevételt termelő Windows gépezetet visszatartsa, márpedig ha a Windows 8 megjelenik a Consumer Preview-ban található XAML és a HTML lehetőségekkel, akkor már nincs visszaút, az MS végérvényesen belezöttyen a kátyúba, ahonnan évekig nem mászhat ki (lásd VB6 és ASP támogatás Windows 8-on).

Ennek a meccsnek két eredménye lehet:

1. Marad a mostani felállás, amivel útjára indítják a Windows 8-at mint egy gigantikus kísérletet, és az esetleges problémákat, zsákutcákat majd a Windows 9-ben kijavítják. Ebben az esetben a történelem a Vista-Windows 7 párost ismételné.

2. Sinofsky a sarkára áll és azt mondja, hogy tiszta szerencse, hogy időben észbe kaptunk, szorítsuk egy kicsit háttérbe a saját érdekeinket és adjunk ki egy olyan Windows 8 verziót, ami tényleg hosszú távon jó irányba mutat, hiszen operációs rendszert nem cserélnek sűrűn sem a végfelhasználók, sem a cégek.

Sinofsky már letett valamit az asztalra, és én arra tippelek, hogy elfogadnák az érvelését, bár ez nagy érvágás lenne a Microsoftnak. Ebben az esetben ugyanis jelentősen csúszna a Windows 8 kiadása (az idén biztosan nem lenne belőle semmi), hozzá kellene igazítani az eddig elkészült alkalmazásokat, fejlesztőeszközöket, mindent. Viszont arra is nagyon jó esély van, hogy a végeredmény nagyon jó termék lenne, amivel az MS tiszteletet érdemelhetne ki, ami persze végül a bevételi oldalon is éreztetné a hatását. Így nem meglepő, hogy jelenleg ez a valószínűbb lehetőség.

De mi lesz a fejlesztőkkel ebben az esetben? A XAML halála a WPF és a Silverlight bizonytalan jövője körüli homályos információk óta egyre valószínűbb. A XAML diverzitása a saját halálát okozza, miközben lényegében semmi előnyt nem hordoz a HTML-hez képest, hiszen csak címke parszolásról van szó. Elég csak az ASP.NET MVC 4-ben lévő Razor parserre gondolni és máris tisztán látszik, hogy a HTML alapú megoldások egyszerűen jobbak. (Egyébként a Razor parser is bekerült ebbe a projektbe) Nincs értelme fenntartani egy olyan szintaktikát, ami megosztja a fejlesztői tábort, miközben van egy olyan alternatíva, ami inkább újabb fejlesztőket hozna a Windows platformra.

Ti örülnétek, ha a XAML halála miatt csúszna a Windows 8 kiadása?

 

 

UPDATE: Fontos kiegészítés a fentiekhez: http://bit.ly/xamltohtml

 

Technorati-címkék: ,,,,

Windows 8 kézzel-lábbal

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

Aki a Windows 8 megismerésébe fog, az bizony először nem talál semmit. Pedig minden megvan, csak éppen máshol, és néha különösen nehézkesnek tűnik egyes funkciók elérése egérrel vagy épp billentyűzetről.

w8-mouse-touch-keyboard

A jó hír az, hogy a legtöbb funkció vagy menüpont elérhető valamilyen billentyűkombinációval, egérrel és touch gesztusokkal is. Az alábbi néhány cikk segíthet a rendszer felfedezésében:

Windows Experience Blog: Getting around Windows 8 – ebben a cikkben van egy PDF (vagy XPS) táblázat, ami összefoglalja a gyorsbillentyűket.

Colin Melia (MVP és RD): Navigating Windows 8 Beta with only touch, mouse or keyboard – szintén tartalmaz egy hasznos táblázatot, amiben nemcsak a billentyűk, hanem a gesztusok és az egér trükkök is szerepelnek.

Dr. Zhiming Xue (“Dr. Z”): Windows 8 Consumer Preview power user how-to series – 30 részes sorozat néhány hasznos funkcióról.

Ami nálam nagyon bevált:

  • Win és Win+D: váltás a Metro Start Screen és a desktop között
  • Win+Q: program keresése
  • Win+X: power commands a Start menü helyén
  • Win+I: az aktuális program beállításai a Charms Baron

Ti mit használtok még?

 

Technorati-címkék:
Kategóriák:Windows 8 Címkék:

Klasszikus asztal bejelentkezéskor Windows 8-on

JoeX készített egy kiváló ClassicStarter nevű programot, amivel Windows 8-on ki lehet erőszakolni, hogy bejelentkezés után ne a Metro Start képernyő, hanem a klasszikus desktop jelenjen meg. Általában nem szeretem az operációs rendszer nem támogatott variálásait, de ez nagyon felkeltette az érdeklődésemet, hiszen hasznos funkcióról van szó Mosolygó arc Egyrészt érdekelt, hogy működik, másrészt biztos akartam lenni benne, hogy nem csinál semmi olyat, amit nem szeretnék (mégiscsak adminként fogom futtatni a gépemen).

Szerencsére .NET-es alkalmazás, így előkaptam hozzá az ILSpy-t és megnéztem, mi van az .exe-ben. A jó hír, hogy semmi gyanús, tehát én bátran merem majd futtatni.

A kívánt eredményt pedig úgy éri el, hogy létrehoz egy ütemezett feladatot, ami az aktuális felhasználó bejelentkezésekor fog lefutni, és amely meghívja az IShellDispatch4.ToggleDesktop függvényét. Tehát semmi hack, semmi registry buherálás rég elfelejtett kapcsolókkal, hanem tiszta Shell32 API hívás. Gyönyörű!

Köszönjük JoeX!

 

Technorati-címkék:
Kategóriák:Windows 8 Címkék:

ASP.NET MVC 4 : Csomagolás és minimalizálás

A System.Web.Optimization NuGet csomagban kapott helyet a bundling+minification szolgáltatás, amellyel jelentősen gyorsíthatjuk az oldalaink betöltődését. Gondolom sokan vagyunk ezzel úgy, hogy korábban talán manuálisan oldottuk meg ezt a problémát vagy beépítettük például a Microsoft Ajax Minifiert a build folyamatba. Mostantól a dolog sokkal egyszerűbb, ráadásul a Razor markupunk is átláthatóbb lesz.

A megtekintéshez teljes képernyős nézet, 720p ajánlott

 

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

ASP.NET MVC 4 Razor editor gondok

Az ASP.NET MVC 4 bétával kapcsolatban kiderült két bug, ami a Razor parserhez köthető és amely nehézkessé teheti a Visual Studio használatát, legyen szó 2010-ről vagy 11-ről.

Az elsőnek az a tünete, hogy a .cshtml/.vbhtml editor sokáig gondolkodik, miközben mi gépelnénk bele. Tipikusan akkor jön elő, miután a projektet létrehoztuk vagy nyomtunk egy Clean projectet. A megoldás egy gyors fordítás, hogy a szerelvények bekerüljenek a bin mappába.

A másik hibával akkor találkozhatunk, ha Visual Studio 11 bétában nem Smart indentinget használunk HTML fájlok formázásához (katt a teljes képért):

vs11-smart-tabs

A korábbi VS verziókban ez az opció HTML fájloknál nem volt elérhető, ez újdonság a VS 11-ben, ráadásul a Smart az alapérték. Azonban előfordulhat, hogy ha a gépen volt már egy korábbi VS példány, akkor a beállítások átköltöztek az új verzióba is és elszáll az editor. A megoldás: Tools –> Options –> Text Editor –> HTML –> Tab –> Indenting: Smart legyen beállítva.

Az ígéretek szerint mindkét hibát ki fogják javítani az RTM verzióra.

 

Technorati-címkék: ,

WebMatrix 2 beta

Frissült a WebMatrix 2 bétája, ami most már gond nélkül együttműködik a Visual Studio 11 bétával. Az új verzió a Web Platform Installer pre-release termékeket is listázó változatával tölthető le innen.

A tavalyi WebMatrix Klub előadássorozat alkalmával egészen megkedveltem a WebMatrixot. Nem olyan nehézkes, mint a Studio, de okosabb, mint egy Notepad (++/2). Olyan pont kézreálló fajta, persze csak annak, aki nem riad vissza egy kis kódolástól és tudja nélkülözni a varázslókat.

Image4

Az új verzió újdonságaiból ízelítő megtekinthető itt.

 

Technorati-címkék: ,

IIS 8.0 Express Beta

Olyan ez, mint az augusztusi csillaghullás, csak úgy záporoznak az égből a béták, minden napra jut belőlük pár. Ezúttal az IIS csapat eresztett meg egyet, mégpedig az IIS 8.0 Express bétáját, ami innen tölthető le. Érdekes, hogy néhány kivételével sikerült minden IIS funkciót megvalósítaniuk az Express változatban, ami nem csak hogy Windows 8-on, hanem Windows Vista SP1-től kezdve minden Windows verzión fut! XP tulajdonosok maradhatnak a 7.5-nél (ez jön egyébként a mostani Visual Studio 11 bétával is).

Az újdonságok és korlátozások listája megtalálható a Readme-ben.

IIS8

A “nagy” IIS telepítése Windows 8-on egyébként sima ügy, bár kicsit tovább tartott, mint korábban Windows  7-en, ami valószínűleg annak volt köszönhető, hogy pár csomagot a Windows Update-ről rántott le frissen (ami viszont dicséretes). Utána viszont gondban van az ember, mert sehogy sem lehet elindítani az IIS Managert, hiszen amíg a kereső le nem indexeli, addig hiába keresgélünk rá a Search Baron. Aki nem akar 1-2 percet várni, az kapcsolja be a Charm Baron a Start Screen Settings-ei között a Show Administrative Tools kapcsolót, ami után megjelenik az IIS szokásos ikonja a Metros Start képernyőn.

Az IIS Managert elindítva a szokásos látvány fogad:

IIS8-Manager

Úgy tűnik, hogy nincsenek eget rengető újdonságok, ami részben igaz is, hiszen a fő újdonságok az egyes funkciók skálázhatóságával kapcsolatosak, ami elsősorban shared hosting környezetben lesz fontos (pl. több ezer site egy gépen). A lényeg tehát a motorháztető alatt van, de azért itt-ott kicsillan egy-egy igazi gyöngyszem, például:

IIS8-SNI

 

Technorati-címkék: ,
Kategóriák:Webfejlesztés, Windows 8 Címkék:,

ASP.NET MVC 4: Intelligens attribútumok

ASP.NET MVC 4-ben az új Razor parsernek köszönhetően a HTML attribútumok kezelése sok esetben lényegesen barátságosabb lehet:

A megtekintéshez teljes képernyős nézet, 720p ajánlott

 

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

Windows 8 elaltatása távolról

Remote Desktop kapcsolaton keresztül sehol nem találok Sleep opciót a távoli gép elaltatásához, és ahogy látom a shutdown is csak hibernálni tud (/h), sleepelni nem.

Szerencsére a Desktopon lehet ALT+F4-et nyomni, amire feljön az alábbi ablak:

Windows 8 Remote Desktop Sleep

 

Technorati-címkék:
Kategóriák:Windows 8 Címkék:
Follow

Get every new post delivered to your Inbox.

Join 34 other followers