.NET 4 MCP Certification Exams 70-519 (MCPD: Web) & 70-516 (TS: Accessing Data) – První dojmy z beta exams

Měl jsem příležitost zúčastnit se beta programu nových certifikačních zkoušek Microsoftu pro platformu .NET 4, nedá mi to tedy, abych se s Vámi nepodělil o první dojmy (výstup je naštěstí již značně cenzurován, za ty dva dny už jsem trochu vychladl a nepublikovatelný proud mého hodnocení dopadl jen na prvních pár lidí, které jsem potkal).

Exam 70-516: TS: Accessing Data with Microsoft .NET Framework 4

První zkouška, kterou jsem testoval, byla zkouška na datové přístupy z kategorie Technical Specialist. Dle očekávání a zaměření se jednalo o „kodérskou“ zkoušku, kde nešlo o nějaké koncepční myšlení, ale otázky směřovaly většinou na konkrétní code-snippety, nebo jiné coding techniky pro přístup k datům. V podstatě se vše točilo kolem následujících témat:

  • Entity Framework – odhadem 40%
  • LINQ, LINQ to SQL – odhadem 20%
  • pure DB Access (DbConnection, DbCommand, …) – odhadem 10%
  • „old fashion“ (DataSet, DataTable, TableAdapter, …) – odhadem 10%
  • ostatní všechno možné (XML, ADO.NET Data Services, Sync Services, konfigurace, …) – odhadem 20%

V zásadě se jedná o standardní zkoušku tohoto „kodérského“ typu, kde se opět objevilo pro mě nepochopitelné množství  otázek směřujících čistě na názvy/signatury jednotlivých metod. Něco, co v reálné praxi zcela řeší IntelliSense. Nesnáším otázky typu „Abyste udělali XY, použijete metodu: ExecuteQuery(), ExecuteQuery(true), ExecuteQuery(false) nebo ExecuteQuery<Order>()?“.
Naopak tam úplně chyběla sebemenší otázka na SqlTransactions, T-SQL, SQL-injection, apod., kteréžto znalosti bych od člověka certifikovaného na Data Access očekával (narozdíl o detailů o předávání Table Parameters nebo Spatial Data z kódu a podobných nuancí, které si každý snadno najde, když je potřebuje).
Celkové zkoušku hodnotím jako standardního následovníka dosavadních MCP kodérských zkoušek, kde Microsoft/Prometric nedokázali překonat svůj stín a místo, aby se soustředili na skutečné ověření dovedností vývojáře potřebných v každodenní praxi, tak šlo opět o koncentraci na novinky a okrajová témata, které jsou zrovna „in“. Člověk, který takovou zkoušku úspěšně absolvuje, není vůbec ověřen na základní koncepty přístupu k datům, spíše se dokázal připravit na požadavky zkoušky způsobem, který mu umožnil ji absolvovat (ať už pomocí zkušebních testů, uniklých otázek, nebo tvrdým biflováním faktů), nicméně stejně nelze úspěšně předpokládat, že by si běžný vývojář detaily, které jsou předmětem zkoušky zapamatoval déle než potřebný půlden.

Exam 70-519: Pro: Designing and Developing Web Applications Using Microsoft .NET Framework 4

Druhá zkouška, kterou jsem testoval, byla z kategorie Professional Developer pro Web Development. Zkouška by se měla zaměřovat na koncepty a znalost technologie, prakticky bez kódování. V hodnocení této zkoušky jsem bohužel mnohem radikálnější, točila se totiž celá kolem následujících témat:

  • MVC – odhadem 50%
  • ASP.NET Core Infrastructure – odhadem 25%
  • WebForms – odhadem 10%
  • Ostatní (Data Access, WCF, Silverlight, jQuery, …) – odhadem 15%

Totální zahlcení problematikou MVC mě velmi nemile překvapilo. Nikdy jsem neměl nic proti lidem, kteří se rozhodli věnovat této technologické masturbaci (dovoluji si vypůjčit trefné označení kolegy Michal Altaira Valáška), ale kdo v Microsoftu/Prometric došel k závěru, že pro testování dovedností samostatného webového vývojáře (dovedností relevantních pro běžnou praxi!), je nutné tak silně zdůraznit nové MVC a prakticky zcela opustit WebForms přístup, to mě hlava nebere.
Toto mě znechutilo natolik (a tento feedback, že by se měly oddělit zkoušky na MVC a Webforms, jsem dával do Microsoftu už dávno v dobách, kdy ještě bylo co měnit), že odsuzuji tuto zkoušku jako absolutně irelevantní vzhledem k hodnocení reálného webového vývojáře. Pokud bych měl posuzovat jeho dispozice a dovednosti pro reálnou praxi vývoje webových aplikací, tato zkouška by mi toho mnoho neřekla. Bohužel i těch několik otázek, které by tématicky patřily do podobné zkoušky, bylo položených tak, že často vůbec nesměřovaly k jádru věci, ale jednalo se např. o vyloučení zcestných odpovědí, aby zůstaly ty méně špatné. Když se Vás někdo zeptá, které dva druhy ovoce byste doporučili někomu, kdo má rád sladkosti, tak Vám z nabídky „okurky“, „igelit“, „brambory“ a „mramor“, nezbývá než zaškrtnout… (ne, bohužel tlačítko WTF testovací aplikace nenabízí a co považují autoři za správnou odpověď se můžeme jenom dohadovat).

IIS: Jaký w3wp.exe patří k jakému AppPoolu?

Na IIS6 existoval ve složce System32\ jednoduchý skript k vypsání seznamu worker-procesů a jejich příslušnosti k jednotlivým application poolům IIS:

iisapp.vbs

Na IIS7 už tento skript není, ekvivaltentní příkaz z System32\inetsrv\ však je

appcmd list wp

image

Code Contracts Editor Extensions – konečně contracty v Intellisense tooltipech

Samotné Code Contracts se díky pomalému rewritingu (a ještě pomalejší statické analýze, ale u té je to logické) v praxi stávaly problémem, kdy nejeden vývojář pochyboval, jestli je ochoten obětovat své pohodlí rychlosti buildů na oltář Code Contractů.

Microsoft konečně přichází s dalším logickým krokem, na který všichni tak dlouho čekají, a který by mohl pomyslné váhy opět lehce převážit ve prospěch Code Contracts – po instalaci Code Contracts Editor Extensions (doplňku do Visual Studia 2010) se Vám contracty budou zobrazovat v tooltipových nápovědách IntelliSense.

Bezpečnostní chyba v ASP.NET a workaround s customErrors k jejímu vyřešení

V ASP.NET byla objevena (a zveřejněna!) bezpečnostní chyba, která sofistikovanějšímu útočníkovi umožní získat obsah zdrojových souborů uložených na webovém serveru, včetně web.configu. Podrobnosti popisuje ve svém blog-postu Scott Guthrie. Workaround spočívá v zapnutí customErrors bez rozlišování typu chyby.

Kdo by to chtěl vidět na vlastní oči, tak na YouTube je pěkné video.

Exchange 2010: Pomalý relay (MaxAcknowledgementDelay)

Po upgrade na Exchange 2010 se razantně zpomalil relay mailů z našich aplikací skrz Exchange (SMTP forwarding).

Jak se ukázalo, řešením je přepínač MaxAcknowledgementDelay na příslušném receive-connectoru:

Set-ReceiveConnector "Connector Name" -MaxAcknowledgementDelay 0

MaxAcknowledgementDelay určuje, jak dlouho může Exchange zdržet session, aby jí oznámil výsledek odeslání. Oficiální dokumentace říká:

The MaxAcknowledgementDelay parameter specifies the maximum period the transport server delays acknowledgement until it verifies that the message has been successfully delivered to all recipients. When receiving messages from a host that doesn’t support shadow redundancy, an Exchange Server 2010 transport server will delay issuing an acknowledgement until it verifies that the message has been successfully delivered to all recipients. However, if it takes too long to verify successful delivery, the transport server will time out and issue an acknowledgement anyway.

Osobně to laicky interpretuji tak, že Exchange se při relayingu snaží přijatý mail rovnou i odeslat, tak, aby té iniciující session rovnou oznámil, jestli se to podařilo. A výše uvedený časový limit říká, jak dlouho na to Exchange má, jinak inciující session pokračuje, aniž by se o výsledku odeslání přímo dozvěděla. Nastavením na 0 se řekne, že odesílající aplikace nemá zájem se problém dozvědět hned, ale holt kdyžtak dojde na NDR (Non-Delivery-Report).

Každopádně odesílání 13.000 mailů našich newsletterů z business.center.cz se z hrůzostrašného tempa 1 mail/3-10 sec vrátilo na původní čísla známá z Exchange 2007, tedy zhruba 30 minut na všechny maily (což mimochodem není nic proti dávným dobám, kdy jsme používali Merak Mail Server, a ten to dokázal převzít do fronty zhruba za 5 minut, ale to je holt jiná kategorie).

Exchange 2010: Přístup Domain Admins na ActiveSync (Error 0x85010004, InvalidPolicyKey)

Pokud Vám ActiveSync hlásí chybu 0x85010004 a jste Domain Admins, pak vězte, že jedna z tajnůstek Exchange 2010 říká, že Domain Admins účty mají tento přístup zakázaný.

Obejít se to dá takto:

  1. Vezměte Active Directory Users and Computers konzoli
  2. Přepněte si režim na View / Advanced Features
  3. Odeberte uživateli skupinu Domain Admins, OK
  4. Otevřete znovu uživatele a na záložce Security jděte na Advanced a zaškrtněte Include inheritable permissions from this object’s parent, OK, OK, OK
  5. Přidejte si zpět Domain Admins
  6. …a Active Sync jede

Lenovo ThinkPad X201 první dojmy po týdnu

Pořídil jsem si před týdnem nový notebook Lenovo ThinkPad X201. Jde o 12″ notebook z kategorie ultra-portable, který nahradil můj dosavadní Acer TravelMate 6292. Na 12″ jsem tedy zvyklý, jako hlavní počítač mám klasické PC.

Původně jsem pokukoval po Dellu, ale ty jsou ve 12″ o generaci zpět a o řád dražší (sleva se z nich dá vydyndat velká, ale tady by museli jít na 40%, aby vůbec byly konkurenceschopní).

X201 jsem koupil za cenu cca 31.000 Kč včetně dockovací stanice, a hned jsem v něm vyměnil disk za SSD OCZ Summit 120 GB, který jsem za vzal ze svého velkého PC a do něj si koupil novější SSD Intel. Samozřejmě jsem vyházel předinstalovaný OS s haldou bordelu a instaloval čisté Windows 7 64-bit EN, i když jsem do nich nakonec docela dost původních driverů a utilit Lenovo doinstaloval (neinstaloval jsem třeba Toolbox).

Po týdnu nepřílliš intenzivního používání jsou moje první dojmy tyto:

+ váha – važí zhruba 1.5kg, což je prostě bezva,

+ DVD-RW v dockovací stanici je fajn, určitě sebou nepotřebuji vláčet optickou mechaniku, ale doma, kde jiný počítač nemám, se hodí,

+ výdrž baterie vypadá na něco kolem 4-5 hodin podle jasu displaye; UPDATE: Dnes jsem s vypnutou WiFi pracoval 4 hod v kuse s Wordem a baterie za tu dobu klesla ze 100 na 50%. Výdrž tedy vypadá dost dobře…

+ konektivita – WiFi chodí luxusně a vestavěné 3G jsem zkoušel jen krátce, ale v kanceláři jsem natočil tuším 1800/400kbps na Vodafone

+ rychlost – velmi slušná

+ nezahřívá se

+/- klávesnice – má plnou velikost a dobré rozložení, je ale dost tvrdá a ještě jsem si nezvykl na rozložení (Esc, PgUp/Down, Fn/Ctrl), zatím s ní dost bojuji, uvidíme

+/- provedení – jde o ThinkPad klasiku, takže matná kvalita náchylná na poškrábání, baterie potřebovala podlepit, aby se nekvrdlala, prostě obvyklý bytelný ThinkPad s obvyklými mouchami. Překvapilo mě jenom nepřesvedčivé spasování víka, které se při otevírání kroutí a rozevírá

+/- display – displaye ThinkPadů nepatří mezi elitu, nicméně žádné problémy nepozoruji a zatím jsem jen subjektivně trochu bojoval s ClearType, nebo spíše té rozmazanosti písma v Lenovo utilitách

– malý touchpad – díky horním tlačítkům pro trackpoint na touchpad moc místa nezbylo

– chybí samostatné tlačítko na zapnutí/vypnutí WiFi, buď se dá vypínat společně s 3G/BT, nebo na více kliknutí, což bylo u Aceru lepší

– nemá HDMI

– při připojení na monitor přes dockovací stanici nepříjemně pobrukuje při aktivitě (jako kdyby vrčel disk, kdyby to nebylo SSD), bez docku jsem to ještě nezkoušel, ale při noční práci to v úplném tichu nepříjemně ruší

– při připojení na monitor přes dokovací stanici obraz velmi často na monitoru problikává, nějak se nechytá synchronizace, nebo co. Dělá to při DVI i při VGA připojení. Spolehlivý workaround: Stačí na chviličku přepnout režim na Duplicate (Win+P) a pak zase zpět na Projector only. Blikání přestane.

– dokud si nevypnete Power Management na grafickém rozhraní (Intel), tak při práci na baterie občas při změně obsahu obrazovky LCD najednou velmi přepálí kontrast (jestli si dobře pamatuju projev). Hlásí to davy uživatelů a jediným nalezeným workaroundem je vypnutí PM na grafice.

…uvidíme, jak se osvědčí dále.

iPad: Vypadávání DNS po probuzení ze spánku

Můj první problém s manželky iPadem spočíval v tom, že po probuzení ze spánku nefungovalo DNS resolvování.

Přímý přístup přes IP adresy šel. Pomáhalo odpojení/připojení do sítě nebo restart.

Co jsem tak vygooglil, tak je to known-issue a první doporučení vedlo na nastavení OpenDNS serverů místo vlastního lokálního DNS. To nepomohlo, pomohlo až vypnutí Automatic Brightness displaye(doufám definitivně, zatím to chodí, DNS jsem vrátil na svou obvyklou).

Prý je stejný problém i na iPhonech, nevím, ten nemám.

Propojení počítače s receiverem a TV pomocí HDMI: Jak na 5.1 zvuk – SPDIF

Vloni jsem v jiném článku řešil, jak propojit počítač a televizí pomocí HDMI. Už tehdy jsem si udělal názor, že propojení výpočetní techniky s technikou spotřební není pro běžného smrtelníka jednoduché. Nejinak je tomu, pokud svou techniku rozšíříme ještě o A/V receiver – další zařízení, další problém.
HDMI umí přenést zvuk v digitální podobě, používá se k tomu rozhraní SPDIF. Ovšem jak dostat zvuk do výstupu umístěného na grafické kartě? Jde to, návod je však různý pro grafické karty nVidia a ATI.

Problém první: Jak dostat vůbec nějaký zvuk do HDMI

Některé grafické karty nVidia mají z boku nedokumentovaný dvoupinový konektor, který slouží jako vstup pro digitální zvuk. Grafická karta do signálu nijak nezasahuje, pouze jej propojí na výstup, tedy pošle jej do HDMI kabelu. Ověření existence konektoru před koupí grafické karty není jednoduché, nezkoumal jsem detailně, ale nevzpomínám si, že bych informaci o něm běžně vídal ve specifikacích (ale to se možná mýlím).
Ale kde vzít digitální zvuk? Můžeme jej mít na zvukové kartě (na mé Audigy ZS 2 se nachází mezi piny pro připojení front panelu, rozložení pinu nutno najít na internetu), navíc dnes bývá digitální SPDIF výstup integrované zvukové karty i na základní desce. Umístění je nutno najít v manuálu k základní desce.
Takže výstup integrované nebo samostatné zvukové karty propojíme s grafickou kartou nVidia. K propojení jsem použil kabel s dvoupinovým konektorem, našel jsem kabel sloužící v dobách minulých k propojení CD-ROM mechaniky se zvukovou kartou. Polaritu kabelu nutno tipnou, při testech integrované zvukové karty i Audigy se mi to ani jednou nepovedlo napoprvé, naštěstí jsem si nic neodpálil.
Grafické karty ATI řady HD (snad všechny dnes prodávané modely) jsou vybaveny zvukovým kodekem, tváří se tedy jako samostatná zvuková karta. Problém s hledáním vstupů a výstupu digitálního audiosignálu a „drátování“ zde odpadá. Namísto toho je nutno nainstalovat ovladače této zvukové karty a případně ji pak nastavit jako primární.
S grafickými kartami ATI nemám žádnou zkušenost, zmíněné jsem našel na internetu při hledání řešení zde popisovaného problému.

Problém druhý: Jak dostat na výstup zvuk 5.1 (rozumněj DTS, DD+, apod.)

Do HDMI kabelu jsem dostal zvuk výše uvedeným postupem (pro nVidia), ale receiver hlásí „STEREO“ ať pustím jakýkoliv film.
Celý trik je jednoduchý, pokud víme, jak na to. Stačí prostě nainstalovat AC3Filter a nakonfigurovat jej. Jako základ jsem použil tento návod.
Na záložce Main:

  • Output format: AS IS (no change)
  • Rate: AS IS (no change)
  • Format: PCM 32 bit
  • Use SPDIF: ano (zaškrtnout)

Na záložce System:

  • Use AC3 Filter for: zašrktat vše
  • Prefer AC3Filter
  • Use Direct Sound by default
  • Show tray icon
  • Check output format support

Na záložce SPDIF:

  • Output format: stejně jako na záložce Main
  • SPDIF passthorugh: zvolit AC3 a DTS
  • SPDIF/DTS mode: Padded DTS
  • SPDIF/DTS conversion: Do not convert
  • SPDIF options: zaškrtnout vše, ale ne Output SPDIF as PCM ani 32kHz
  • DirectShow options: Check output format support

Ve Windows Media Playeru 12 (ve Windows 7) netřeba provádět další nastavení.
Ve Windows Media Player Classic – Home Cinema jsem provedl tato nastavení:

  • v nastavení Filter Settings jsem vše odškrtal
  • vypnul jsem Audio Switcher
  • v External filters jsem přidal AC3Filter.

Proč to funguje? Dobře to vysvětluje dokumentace AC3Filter & SPDIF, kterou doporučuji přečíst, pokud chcete toto řešení pochopit. Zjednodušeně: Samotné Windows umí do SPDIF poslat jen stereo v kódování PCM, ať je zdroj jakýkoliv. Pokud chceme něco jiného, je třeba aplikaci přenosový kanál pro digitální zvuk vyhradit exkluzivně. To mj. řeší právě AC3Filter.
(Windows 7, Windows Media Player 12, Media Player Classic – Home Cinema, AC3Filter)

 

Attachment: system.png

Windows Live Sync (ex-Mesh): Synchronizace nastavení Visual Studia, ale i Office (Outlook podpisů, auto-correct, atp.)

Poměrně krátce si hraju s Windows Live Sync Beta (dříve Live Mesh) a už mě zaujali dvě příjemné možnosti:

  • synchronizace Office-nastavení – včetně Outlook podpisů, nastavení auto-correct options a dalších věcí, které mě vždy vytáčí do běla, že je musím znovu a znovu nastavovat na čistých instalacích. Synchronizace Office je ve Windows Live Sync vestavěná, stačí ji jen zapnout
  • synchronizace nastavení Visual Studia – stačí použít synchronizaci souborů – nastavení Visual Studia se ukládá do souboru, který určíte v Options / Import and Export Settings / Automatically save my settings to this file: […]. Nasměrujte si soubor do samostatné složky a tu synchronizujte mezi počítači.

Live Sync Beta mi přijde nějaká chudší, než byl Mesh, ale svůj účel snad splní stejně a možná časem i lépe.