2011. február havi bejegyzések

OData gyorsan, könnyen

A héten ismét belefutottam abba a problémába, hogy ugyanazt az adatot kézzel kellett több adatbázisba bevinnem Mérges A hasonló problémákra az lenne a megoldás, ha az adatbázisok és a webhelyek végre nem fekete lyukak lennének, amik csak elnyelik az információt, hanem egyben közzé is teszik azokat programozottan elérhető formában.

Ennek egyik eszköze lehet az OData, ami elsőre összetettnek tűnik, de .NET platformon ilyen egyszerű elkészíteni (720p, teljes képernyő ajánlott):

Így készül a szolgáltatás
A videó itt található a YouTube-on: http://www.youtube.com/watch?v=Hc8ejuhLufs

Technorati-címkék: ,,

Eredmények másolása Management Studioból sortöréssel

Az SQL Server Management Studio elég mostohán bálik az olyan adatokkal, ahol a cellában sortörés van. Leggyakrabban a Results to Grid opciót szoktam használni, de ott akárhogy méretezgetem a cellákat, a sortörések nem jelennek meg. Még rosszabb, hogy ha kimásolom az eredményt a cellából a vágólapra, akkor elveszik a sortörés és kezelhetetlen lesz az eredmény. Ez főleg akkor nagyon zavaró, ha ASP.NET Health Monitoring logról van szó, ami sortörések nélkül szinte olvashatatlan.

Az egyik lehetséges megoldás a Results to Text, akkor viszont nem szabad elfelejteni beállítani a Tools – Options – Query Results – SQL Server – Results to Text ablakban a Maximum number of characters displayed in each column opciót, mert ez alapból mindössze 256, ahol az SSMS szemrebbenés nélkül levágja az eredményt.

Megoldható a probléma csupasz SQL-lel is: ha XML-lé alakítjuk az eredményt, akkor megmaradnak a sortörések. Íme:

SELECT Description 
FROM Log 
WHERE ID=8 
FOR XML PATH(''), TYPE

Sőt meghagyhatjuk a Results to Grid opciót is, ugyanis ott az XML adat kattintható formában jelenik meg:

XML adatok grid nézetben

A linkre kattintva új fülön feljön a mező tartalma részletesen, sortörésekkel együtt. Így akár több sort is nézegethetünk egyszerre.

WP7 DevTools January 2011 Update

Bár a WP7 telefonokra még nem töltődött le a copy-paste funkciót is tartalmazó, sokat ígért januári frissítés, a fejlesztők már kipróbálhatják, hogyan viselkedik majd az alkalmazásuk az új operációs rendszeren. Bár a legtöbb alkalmazást nem kell módosítani a telefon operációs rendszerének frissítése miatt, lehetnek olyan esetek, amikor az új másolás-beillesztés funkció előre nem látható mellékhatással jár egy-egy spécibb, Panorama vagy Pivot kontrollba ágyazott TextBox környékén. Ezt megelőzendő, a Microsoft kiadta a Windows Phone Developer Tools 2011. januári frissítését, amely új emulátor image-ekkel segíti a fejlesztők életét és az alkalmazások tesztelését. Aki esetleg új fejlesztői környezetet telepít, annak nem szükséges a 2010. októberi frissítést telepítenie, a 2011. januári változat minden korábbi javítást tartalmaz.

A javításokon kívül mi van még a csomagban:

  • Új OS emulátor image-ek copy-paste támogatással.
  • Frissített reference assembly-k.
  • Windows Phone Capability Detection Tool – amit a Marketplace is használ.
  • Windows Phone Connect Tool – media API debuggolására.
  • Frissített Bing Maps Silverlight vezérlő.

Kis hivatalos statisztika: eddig több, mint 27.000 fejlesztő regisztrált és tett közzé több, mint 7.200 alkalmazást a Marketplace-en, a fejlesztői eszközkészletet pedig több, mint 1 millióan töltötték le világszerte.

Technorati-címkék: ,

WCF Data Services vs Web Deployment Projects

Ha egy olyan Web Site projektet szeretnénk Web Deployment Projects segítségével összecsomagolni, amely egy WCF Data Services (OData) végpontot is tartalmaz, akkor sajnos az .svc fájl feldolgozása közben az alábbi hibába futhatunk bele:

Exception type: System.ServiceModel.ServiceActivationException    

Exception message: The service ‘/MyService.svc’ cannot be activated due to an exception during compilation. 

The exception message is: Could not load file or assembly ‘App_global.asax, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null’ or one of its dependencies. The system cannot find the file specified.

Inner exception type: System.IO.FileNotFoundException    

Elég idegesítő, de elég szép megoldást alkothatunk rá: szabaduljunk meg az egész .svc fájltól és használjunk helyette ASP.NET routingot!

Irány a global.asax, ahol regisztrálhatunk egy új route szabályt:

RouteTable.Routes.Add( "MyService",
  new ServiceRoute( "MyService", 
                    new DataServiceHostFactory(), 
                    typeof( MyService ) ) );

A WCF Data Service szolgáltatásunkat pedig a MyService osztályban implementáljuk:

public class MyService : DataService<MyDataModel>
{
  public static void InitializeService( DataServiceConfiguration config )
  {
    // Ide jön az inicializáló kód, jogosultságok, lapozás beállítása stb...
  }

  protected override void OnStartProcessingRequest( ProcessRequestArgs args )
  {
    base.OnStartProcessingRequest( args );

    // Cache és egyéb fejlécek beállítása...
  }
}

Az eredmény: működik a Web Deployment Projects és az URL-jeink is gyönyörűek.

IIS ApplicationPoolIdentity beengedése az SQL Serverbe

Ha egy webhelyet az IIS-ben az ApplicationPoolIdentity nevében futtatunk és a webhely mögött Windows integrált hitelesítéssel működő SQL Server áll, akkor ezt a virtuális fiókot kell beengednünk az SQL Serverbe.

Ez nehezebb, mint gondolnánk, ugyanis az SQL Server Management Studio az alábbi hibaüzenettel tud megörvendeztetni:

Alter failed for User ‘IIS APPPOOL\DefaultAppPool’.  (Microsoft.SqlServer.Smo)

The DEFAULT_SCHEMA clause cannot be used with a Windows group or with principals mapped to certificates or asymmetric keys. (Microsoft SQL Server, Error: 15259)

Szerencsére ez csak GUI probléma, az SQL Servernek egyébként semmi baja az AppPoolIdentity-vel, tehát némi kézimunkával leküzdhető a probléma:

  CREATE LOGIN [IIS APPPOOL\DefaultAppPool] FROM WINDOWS
  CREATE USER [DefaultAppPoolUser] FOR LOGIN [IIS APPPOOL\DefaultAppPool]
  sp_addrolemember N'bármilyen szerepkör', N'DefaultAppPoolUser'
Technorati-címkék: ,,

Sok órányi SQL Server és Azure tananyag

Paul S. Randal és Kimberly L. Tripp több, mint 40 órányi videó anyagot állított össze az SQL Serverrel kapcsolatban. Aki gyakran olvas a témában, annak nem kell bemutatni sem őket, sem az SQLskills oldalt, önmagában ez a két név elég biztosíték a minőségre. Ebben a Microsoft Certified Master – SQL Server tananyagban rengeteg “internals” szintű információ hangzik el, amivel az SQL Serverrel dolgozóknak mindenképp érdemes megismerkedni. Hogy csak kettőt említsek: SQLOS, resource governor – ritkán hallani róluk. De persze vannak itt fejlesztőibb témák is.

Egy másik tananyag, amit a fejlesztők figyelmébe ajánlok, a Windows Azure Platform Training Course. Nem csak a neve hosszú, hanem a tartalma is, a Windows Azure, SQL Azure és a Windows Azure AppFabric témaköröket öleli fel. Ez tényleg training course, itt nem a szövegelésen, hanem a step-by-step gyakorlati útmutatókon van a hangsúly. Ennek a tananyagnak az aktualitását az adja, hogy megjelent a 2011. januári frissítés, amely újabb demókat és gyakorlatokat tartalmaz.

Jó tanulást!

Windows Phone 7 – idehaza csak egy telefon?

Azt szokták mondani, hogy az okos telefonok annyival tudnak többet “nem okos” társaiknál, hogy nem csak telefonálni lehet velük. Mert mit csinál az ember manapság egy telefonnal, ami nem egy törpe számítógép: telefonál, SMS-t küld, fényképez, netezik. Ezek ma már alapfunkciók, a kifejezetten “buta” telefonok kivételével gyakorlatilag már a belépő szintű telefonok is tudják ezeket a funkciókat.

A Windows Phone 7 azonban több ennél. Itt most nem az agyondicsért új Metro GUI-ra gondolok, nem is a képességekre, amiket az eszköz magában rejt, hanem a szolgáltatásokra, amik ehhez az eszközhöz kapcsolódnak. A hangsúly ebben a verseny világban a szolgáltatásokon van, ez az a terület, ahol az egyik telefon smartabb tud lenni a másiknál. Ha a WP7-et nézzük, akkor van itt Marketplace, többféle online Zune, Xbox és Bing szolgáltatás, ez együtt tényleg ütős gyűjtemény. Hiányzik a beépített stopper funkció a telefonról? Semmi gond, ránts le egyet a sok száz timer alkalmazás közül a Marketplace-ről. Ettől okos, hogy ilyen dolgokra képes.

Ám még egy ilyen okos telefon sem lehet tökéletes, az Engadget “mit változtatnál a WP7-en?” felmérésére 924 válasz érkezett eddig. Csakhogy nem az itt a probléma, hogy nincs copy-paste, direkt fájl másolás, százalékos akkumulátor szint kijelzés, mert ahhoz jön majd idővel az update. Nem is az a fő probléma, hogy az eladók hozzáértése sokfelé csapnivaló.

A fő gond az, hogy egyelőre, ez egy US-only smart phone. Andrew Birch készített egy kiváló összefoglaló táblázatot arról, hogy a Windows Phone 7-hez kapcsolódó online szolgáltatások mely országokban érhetőek el és melyekben nem. Érdemes megnézni, hogy olyan nagy, angol anyanyelvű piacokon is igen üres a táblázat, mint Ausztrália. Magyarországot nem is érte meg beírni a táblázatba.

Amíg ez nem változik jelentősen, addig a Windows Phone 7 számunkra nem más, mint egy klasszikus telefon, stopper nélkül, szép csomagolással és ígéretes jövővel. Se több, se kevesebb.

Vagy te máshogy látod?