2012. május havi bejegyzések

Pluralsight tananyagok ingyen ASP.NET témában

pluralsight_color_logo_197x48Nagyon gyakran keresnek meg azzal a kérdéssel, hogy milyen forrásokból érdemes elkezdeni az ismerkedést az ASP.NET platformmal?

Bármily meglepő, szerintem a http://www.asp.net oldal kiváló forrás, főként mióta teljesen átstrukturálták a tartalmat és könnyebb eligazodni. Ráadásul ingyenes. A videók között szoktam mazsolázni, mert rövidek és elég lényegre törőek. Vegyük például a WebForms 4.5 újdonságokat: www.asp.net –> Web Forms –> Videos –> ASP.NET Web Forms vNext. A How Do I videók is nagyon jók, mert tematikusak, de sajnos vagy szerencsére elég sok van belőlük, így ott már csak Ctrl+F-fel lehet keresgélni.

Aki inkább olvasni vagy step-by-step gyakorlatokat végigkattingatni szeret, annak a Tutorials szekciókat ajánlom, a Web Formsos adatkezelés témájúból például Dunát lehet rekeszteni.

De vissza a videókhoz. Aki ebben a témában e-oktatással vagy e-tanulással foglalkozik, az már biztosan belefutott a Pluralsight névbe. Ők egy “Hardcode Developer Training” oktatóközpont a neten, sokféle tananyaguk van és elég jó visszajelzéseket kapnak. Aki még nem találkozott velük, kipróbálhatja őket 10 napon vagy 200 percen keresztül.

Szerencsére a Microsoft megvásárolt tőlük néhány rövidebb videó sorozatot,  amelyek ingyenesen elérhetők az asp.net honlapon, csak kicsit el vannak dugva. Íme a tartalomjegyzék és a közvetlen linkek:

ASP.NET MVC:

ASP.NET WebForms:

ASP.NET WebPages:

Az egyes témakörökön belül további alfejezetek és videók találhatók. Jó mozizást!

Ti milyen forrást ajánlanátok kezdőknek és haladóknak?

 

Technorati-címkék: ,,,

Root CA tanúsítványának telepítése Windows Phone-ra

Könnyen előfordulhat, hogy amikor meglátogatunk a telefonunkon egy HTTPS-es weboldalt, az alábbi hibaüzenettel találkozunk:

cert-wp

Ahogy a hibaüzenetben egyértelműen olvasható, az a gond, hogy a tanúsítvány kiadójában nem bízik meg a telefon. Egy asztali böngésző segítségével könnyen kideríthetjük, hogy pontosan melyik tanúsítvánnyal is van gond:

cert-netlock-hiba

A View Certificates gombra kattintva megnézhetjük a teljes kiadói láncot:

cert-rootca

Ilyenkor a klasszikus megoldás, hogy ha tényleg megbízható a kiadó, akkor importáljuk a tanúsítványát. Netlock esetén például így:

Látogassunk el a telefonon a https://www.netlock.hu/html/cacrl.html oldalra. Mivel még a telefon nem bízik meg a kiadóban, ezért itt hibával fogunk találkozni, de a Continue to website (not recommended) segítségével továbbléphetünk (katt a teljes képért).

cert-wp-netlock1

Tappintsunk a telepíteni kívánt kiadó nevére:

cert-wp-netlock2

Nyomjunk rá a középen található Hitelesítés szolgáltató tanúsítvány gombra, aminek hatására a böngésző letölti a tanúsítvány és elindul az importáló varázsló:

cert-wp-netlock3

Install, mi más:

cert-wp-netlock4

Nálam még kellett egy böngésző újraindítás és máris hibaüzenet nélkül nyílt meg az oldal.

De mi a helyzet akkor, ha nem sikerül megtalálnunk a kiadó tanúsítványát vagy a Continue nem segít? Ez esetben exportálhatjuk a desktop gépünkről. Indítsunk egy Management Console-t (mmc.exe), majd töltsük be a Certificates snap-int. A Trusted Root Certification Authorities kategóriából keressük ki a tanúsítványt, majd a helyi menüből indítsuk el az export varázslót, amivel exportálhatjuk a tanúsítványt.

cert-mmc

A végeredmény .cer fájlt küldjük el magunknak e-mailben és a levél mellékletét nyissuk meg a telefonon, ami ugyanúgy elindítja az import varázslót. Persze kitehetjük webszerververre is a fájlt, de IIS esetén ne felejtsük el felvenni a MIME type-ok közé az application/x-x509-ca-cert típust, különben az IIS 404.3 hibával nem fogja leküldeni a fájlt:

cert-mime-type

 

Metros ikonkészletek

Aki igazán menő Windows Phone-os vagy Windows 8-as alkalmazást szeretne készíteni, annak szüksége lesz Metro stílusú ikonokra. Íme néhány tipp, hogy honnan lehet beszerezni őket. Mivel rengeteg ikon létezik már, a képeket csak ízelítőnek szánom, az adott oldalon érdemes megnézni a teljes készletet.

Windows Phone SDK

A Windows Phone SDK telepítése után a C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v7.1\Icons mappában találunk egy adag ikont világos, sötés és vektoros formában:

icons-sdk

Segoe UI Symbol

Ha már a Microsoftos dolgoknál tartunk, létezik egy Segoe UI Symbol nevű betűkészlet, ami szintén számos hasznos ikont tartalmaz:

icons-segoe-ui-symbol

A Windows 8-nak biztosan része, de megtaláltam a Windows 7-es gépemen is. Tényleg jobb, mint a Wingdings 🙂

Syncfusion Metro Studio

A Syncfusion oldaláról ingyenesen letölthető Metro Studio alkalmazás azért izgalmas, mert nem csak hogy egy rakás ikont tartalmaz, de még könnyen testre is tudjuk szabni őket (katt a nagyobb képekért):

icons-metro-studio-1

icons-metro-studio-2

The Noun Project

A Noun Project weboldalán folyamatosan bővül az elérhető Metros ikonok készlete, kulcsszavak alapján keresgélhetünk közöttük:

icons-noun-project

Templarian Windows Phone Icons

Austin Andrews, alias @Templarian elhatározta, hogy rajzol pár Metros ikont, jelenleg 635-nél tart és a készlet folyamatosan bővül. Sőt, akár kérni is lehet tőle ikont! Érdekesség, hogy ő Expression Design-nal rajzolja az ikonokat, így aztán vektoros, sőt XAML formában is elérhetőek. Kedves tőle, hogy még egy step-by-step útmutatót is készített a rajzolásról, sőt egy Icons nevű alkalmazás segítségével akár WP7-es telefonunkról is böngészhetjük az ikonokat.

icons-templarian

Default Icon

Kommentár nélkül: 653 ikon.

Yanko Andreev: MetroStation Icons Pack v2

A Yankoa által közzétett MetroStation ikonkészletben hét kategóriában, fekete, fehér és kék színekben, ICO és PNG formátumban találunk 209 féle ikont. Ízelítő a System kategóriából:

icons-yankoa

dAKirby Metro UI Dock Icon Set

Szintén a deviantArt közösség tagja dAKirby, aki eddig 446 ikont készített és tett közzé a Metro UI Dock Icon Set csomagban. A készlet érdekessége, hogy egyrészt ritka tarka, másrészt, hogy az ICO fájlok 128×128, a PNG fájlok 512×512 felbontásban tölthetők le, így kiválóan alkalmasak akár csempe, akár piactér ikon alapanyagnak is.

icons-dock

Icons for Windows 8

Az iconsforwindows8.com oldalon számos ikonkészlet elérhető, de nem mindegyik Metros és nem mindegyik ingyenes. A Free Windows Metro Icons viszont úgy tűnik, hogy megfelel ezeknek a követelményeknek:

icons-free-windows-metro-icons-a

A demó letöltéssel azért érdemes óvatosan bánni, mert EXE-t tölt le a ZIP-ben.

WindowsWiki Metro Icons

A metro.windowswiki.info oldalról egy kisebb csomag tölthető le, mindössze 33 féle ikon, de gyakran kellőek közül és jó minőségben.

icons-windowswiki

Icons8.com

A icons8.com oldalról (ami nálam most éppen nem jön be) nem csak egy halom ikon tölthető le, de kérni is lehet újabb ikonokat, a Twitteren és a Facebookon pedig lehet követni az ikonkészlet fejlődését. (Azért itt nem mindegyikre mondanám azt, hogy tökéletesen Metros.)

icons-icons8-payment

Természetesen használat előtt az ikonok felhasználási feltételeit mindenképpen célszerű elolvasni!

Ismertek még hasonló jó forrásokat?

 

 

Technorati-címkék: ,,,

localtest.me

Mi a közös az alábbi URL-ekben?

http://lvh.me
http://vcap.me
http://localtest.me
http://akarmi.localtest.me
http://barmi.localtest.me
http://akarmi.barmi.tokmindegy.localtest.me

Tipp: nézd meg pinggel, nslookuppal vagy tracert-tal!

Mindegyik a 127.0.0.1 címre mutat. Sőt, a *.localtest.me is, azaz annyi domaint faraghatok magamnak, amennyit csak akarok. Az első kettő már létezett korábban is, a localtest.me (vigyázat, nem localhost) viszont új és Scott Forsyth-nak köszönhető. Őt úgy egyébként például az 52 részes IIS-t bemutató videósorozatról ismerhetjük.

Aki még nem matatott hosts fájlokat csak azért, hogy több domain név mutasson a saját gépére, az ezt nehezen értékeli, nekem elég gyakran van rá szükségem. A több név mellett a másik szépség, hogy míg a http://localhost a Local intranet zónában van, addig a http://tudomisen.localtest.me az Intranet zónában.

Íme a ráadás: ehhez a domainhez létezik abszolút érvényes, nem önaláírt tanúsítvány, ami privát kulccsal együtt letölthető, így búcsút mondhatunk a tanúsítvány hibáknak.

A szolgáltatásról szóló bővebb leírás a readme.localtest.me oldalon található meg (ez tényleg a weben van Mosolygó arc).

 

Technorati-címkék: ,,

MS12-034: ugye frissítettél?

security-logoMájus 8-án, tehát internet időkben mérve évezredekkel ezelőtt, a Microsoft kiadta az MS12-034 számú security bulletint, aminek az a különlegessége, hogy szinte az összes Windows kliens, Windows Server, Office éééééééés .NET verziót is érinti, beleértve a Silverlight 5-öt is. Azaz gyakorlatilag mindenkit (érdemes megnézni az érintett termékek listáját).

A hiba nem véletlenül kapott “critical” besorolást, ugyanis távoli kódfuttatást (remote code execution) illetve jogosultsági szint növelést (elevation of privilege) teszt lehetővé. Akit érdekel, hogyan kell olyan security bugot írni, ami egy ekkora cég ennyi termékét érinti, a Security Research & Defense team blogjában kezdheti az olvasgatást.

Szóval ez tipikusan az a biztonsági rés, amit az ember nem szeretne a gépén, mégis meglepődve tapasztalom, hogy sokan még csak nem is hallottak róla. Belefutottam olyan gépbe is, ahol a felhasználó rutinszerűen nyomja el naponta többször a Windows Update újraindítást kérő figyelmeztetését, így a javítások nem tudnak teljesen települni. Ráadásul mindezt heteken keresztül, kihasználva, hogy a Windows sleep állapotból sokkal gyorsabban ébred.

A javításokról tehát jó tudni és a Microsoft valójában elég sokat tesz a gyors tájékoztatás érdekében, csak nem mindenki él a lehetőséggel. Célszerű ellátogatni a Microsoft Technical Security Notifications oldalra, ahol számos értesítési csatorna közül választhatunk. Vannak alapszintű, részletes és biztonsági szakértőknek szóló információk, amiket elérhetünk weben és RSS-en keresztül is, sőt akár e-mail értesítést is kérhetünk. Üzemeltetőknek mindenképp érdemes itt feliratkozni, de mint ahogy a konkrét példából is látszik, sokszor fejlesztőket is érinthetnek ezek az információk.

Aki inkább magyarul olvasgatna, annak a BuheraBlogot tudom ajánlani, ott tömör összefoglalók szoktak megjelenni a frissítő keddeken.

 

Technorati-címkék: ,,

Feature detection .NET 4.5-ben

Ahogy januárban már írtam róla, az új 4.5-ös .NET Framework verziószáma (nagyjából) pontosan meg fog egyezni a 4.0 verziószámával, azaz in-place upgrade történik. (Hogy ez mennyire jó ötlet, arról még mindig lehet szavazni a januári cikk végén.) Akkor azt fejtegettem, hogy ez milyen problémákat fog felvetni, amikor a 4.0-ra tesztelt alkalmazásaink észrevétlenül 4.5-ön kezdenek el majd futni.

Na de most nézzük a fordított irányt. Íme az alábbi kiváló kódom, amit Visual Studio 11 alatt készítettem, .NET 4.5-re fordítva:

  static void Main(string[] args)
  {
    Console.WriteLine("Elindult.");
    Console.WriteLine("Vége.");
    Console.ReadLine();
  }

Kiválóan fut Windows 8-on. A lefordított EXE-t átviszem egy másik gépre, ahol nincs .NET 4.5 és ott is kiválóan fut! Nosza, használjunk valami spéci 4.5 feature-t:

  static void Main(string[] args)
  {
    Console.WriteLine("Elindult.");
    Console.WriteLine("Méret: " + GetSize().Result );
    Console.WriteLine("Vége.");
    Console.ReadLine();
  }

  private static async Task<int> GetSize()
  {
    WebClient wc = new WebClient();
    string content = await wc.DownloadStringTaskAsync(
new Uri(@"http://www.msdnkk.hu")); return content.Length; }

Ez .NET 4.5 híján is vidáman elindul, de futás közben elszáll:

W:\System\Desktop>VersionTest.exe
Elindult.

Unhandled Exception: System.TypeLoadException: Could not load type 
'System.Runtime.CompilerServices.IAsyncStateMachine' from assembly 
'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
  at VersionTest.Program.GetSize()
  at VersionTest.Program.Main(String[] args)

Ez már nagyobb gond, hiszen senki sem szereti a futási idejű hibákat. Ha ez így van, akkor mégis mire jó a Project Properties ablakban a Target Framework opció?

project-properties

Ha átállítod:

[assembly: TargetFramework(".NETFramework,Version=v4.5", 
           FrameworkDisplayName = ".NET Framework 4.5")]
  • Az app.config fájlban megváltozik a supportedRuntime elemben az sku attribútum értéke (webalkalmazás esetén a compilation elemben a targetFramework attribútum értéke):
<?xml version="1.0"?>
<configuration>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/>
  </startup>
</configuration>

Vajon melyiket figyeli a runtime? A fenti példából egyértelműen látszik, hogy a .config fájlt. Ha nincs ott a konfig fájl, elindul az alkalmazás, és majd futási időben száll el. Ha ott van a konfig fájl, akkor el sem indul:

download45

Itt a Yes-re kattintva jelenleg a .NET Framework 4.5 Beta letöltése kezdeményezhető a Microsoft Download Centerből.

Próbáljuk elkerülni a futási idejű hibát, azaz próbáljuk kitalálni futási időben, hogy milyen verzión futunk. A hagyományos megközelítés a verziószámok lekérdezése az Environment.Version tulajdonságon keresztül. Az eredmény:

  • 4.0: 4.0.30319.544
  • 4.5: 4.0.30319.17379

Szóval sem a major, sem a minor, sem a build verziószámra nem támaszkodhatunk, legfeljebb a revisionre. Arról pedig nem tudunk semmit, tehát a “nagyobb, mint 17000” jellegű megközelítések elég kockázatosak (még ha működnek is jelenleg).

Vessük be a JavaScriptből már jól ismert feature detection megközelítést, azaz ne a verziószámot ellenőrizzük, hanem azt tudjuk meg, hogy a funkció, amit használni akarunk, támogatott-e:

private static bool IsAsyncSupported()
{
  return Type.GetType("System.Runtime.CompilerServices.IAsyncStateMachine", 
false) != null; }

Majd:

if(IsAsyncSupported())
{
  Console.WriteLine("Méret: " + GetSize().Result);
}
else
{
  Console.WriteLine("Frissíts 4.5-re!");
// Vagy ugyanez a funkció async nélkül megvalósítva...
}

Ez működik, de biztos, hogy ezt akarjuk?

Gyanítom, hogy lesznek ebből kellemetlenségeink. Íme egy kedves példa: most akkor a webalkalmazásunk milyen .NET verzión is fut (a .NET Framework version listában nincs is 4.5):

iis-apppool-versions

 

Technorati-címkék: ,,,

Viszlát Azure!

A Microsoft megválik az Azure-tól. Ez most nem áprilisi tréfa, ugyanis ahogy azt több hírportál is megírta, múlt héten az Azure előfizetések tulajdonosai az alábbi levelet kapták a Microsofttól:

Dear Customer, 
In the coming weeks, we will update the Windows Azure Service names that appear in the usage records you download. These are only name changes – your prices for Windows Azure are not impacted. The table below summarizes the changes:

Prior Service Name New Service Name
Windows Azure Compute Cloud Services
Windows Azure Platform – All Services All Services
Windows Azure CDN CDN
Windows Azure Storage Storage
Windows Azure Traffic Manager Traffic Manager
Windows Azure Virtual Network Virtual Network
AppFabric Cache Cache
AppFabric Service Bus Service Bus
AppFabric Access Control Access Control
SQL Azure SQL Database
SQL Azure Reporting Service SQL Reporting

Tehát mindössze névváltásról van szó, csak az egyes szolgáltatások nevei egyszerűsödnek, a szolgáltatás és az árak természetesen maradnak. Örülök ennek a váltásnak, mert az egyszerűsödés mindenképpen jó, és eltűnnek olyan zavaró tényezők mint a Windows Server AppFabric és a Windows Azure AppFabric közötti különbségek. A felhő a default, már ki sem írjuk.

Ellentmondásos hírek vannak arról, hogy mi lesz a teljes felhő-csomag elnevezésével. Ott marad-e az évek alatt bevezetett Azure brand, vagy ott is áttérnek egy Microsoft Cloud Services-hez hasonló mindenki által azonnal felfogható elnevezésre.

Mit gondoltok erről az átnevezési hullámról, ami korábban a Live termékek között is végigsöpört?

 

Technorati-címkék: