OData címkéhez tartozó bejegyzések

Windows Azure Mobile Services

A Microsoft Scott Guthrie blogján keresztül bejelentette a Windows Azure szolgáltatáscsalád legújabb tagját, a Windows Azure Mobile Servicest. Leegyszerűsítve a képletet: az új szolgáltatás segítségével a felhőben lévő SQL táblákban lévő adatainkat publikálhatjuk kliensek felé pillanatok alatt, méghozzá szerver oldali kód írása nélkül.

mobile-services-diagram

A kliens oldali kód megírásához pedig kapunk osztálykönyvtárat, így egészen minimális kódot kell írnunk, például (ScottGu posztjából kölcsönözve):

mobile-services-code

Néhány kiegészítés a cikkhez:

A bejelentés mindenhol Windows 8 kliensről szól, a fenti ábrán is ezek láthatók. Ez valójában egyelőre kizárólag WinRT alkalmazásokat jelent, mert az osztálykönyvtár erre készül.

A névben a “Mobile” szerintem nem kicsit félrevezető. Valójában bármilyen klienssel használható a szolgáltatás, alacsonyabb szinten ugyanis – egyáltalán nem meglepő módon – ODatás HTTP REST API van és JSON formátumú adatok. Hamarosan erről a REST API-ról is lesz leírás és a meghívásukat támogató osztálykönyvtár/metódusok.

Amitől talán valóban kicsit mobilos, az a push notification támogatás, amiben az az izgalmas kérdés, hogy mennyire csak WinRT és mennyire WP7.

Ha már mobil, akkor felmerül az offline elérés kérdése. Ezt jelenleg out-of-the-box nem támogatja a szolgáltatás, kézzel kell megcsinálni. Fontos, hogy a jelenleg.

Van lehetőség felhasználó azonosításra és jogosultság ellenőrzésre is, bár ezen a területen még várható fejlődés.

Lehet saját szerver oldali kódot adni a szolgáltatáshoz, pontosabban Insert, Update, Delete és Read műveletek esetén lefuthat egy általunk megadott JavaScript függvény, amit a Windows Azure Management Portalra kell bemásolnunk (ne ehhez mit szóltok?). Az adatok szerver oldali validálása is így valósítható meg.

A funkció már mindenki számára elérhető, pontosabban csak azoknak, akik engedélyezik a preview szolgáltatásokat a beállítások között. További információ a Windows Azure honlapon a mobile szekción belül a Tutorials and Resources oldalon érhető el.

 

A Windows Azure Mobile Services nyilván nagyon hasznos lesz azoknak, akik 5 perc alatt akarnak feladatlista alkalmazást készíteni Windows 8-ra. És szerintetek még mire?

 

Technorati-címkék: ,,,
Reklámok

SQL Server 2012 Developer Training Kit a felhőből

Megjelent az SQL Server 2012 Developer Training Kit előzetes, ami web installeres változatban tölthető le a Microsoft Download Centerből. A mindössze 2.5 MB-os telepítőt elindítva ez a csodás látvány fogad (katt a teljes képért):

sql-server-2012-developer-training-kit

Annyira megtetszett, hogy ilyen barátságos a telepítő, hogy rögtön benéztem a motorháztető alá. A Process Explorer szerint klasszikus WPF-es alkalmazás, ami a netről HTTP-n forgalmaz. Naná, hogy elindítottam a Fiddlert, hogy megnézzem, mi jön át, és azonnal kiderült, hogy egy Azure végponthoz csatlakozik, ahonnan OData-val szedi le a listát:

http://us-contentinstaller.cloudapp.net/api/v1/odata/ContentGroups(‘SQLDenaliUpdateForDevsTrainingKit’)?$expand=Contents/ContentType,%20Contents/LatestVersion/Dependencies

Ha már OData, akkor persze azonnal körülnéztem, hogy mit találok még ott:

http://us-contentinstaller.cloudapp.net/api/v1/odata/ContentGroups/?$select=Name

Kiderült, hogy a VS11 és a Windows Azure training kit-ek is innen dolgoznak. Ejha, van ám itt összefogás!

Sőt, tartozik hozzá egy szép webes felület is, ami ASP.NET MVC-vel, WCF Data Services-zel, Modernizr-rel és jQuery-vel készült: http://us-contentinstaller.cloudapp.net/

 

OData sorozat 4: JSONP támogatás

A sorozat előző epizódjában láttuk, hogyan érhetjük el az OData szolgáltatásunkat JQuery-ből. Sajnos ez a módszer nem működik, ha a szolgáltatás és a kliens más tartományban van, mert a böngésző Same Origin Policy-je nem fogja engedni, hogy a böngésző a háttérben másik tartományban lévő kiszolgálóval kommunikáljon.

A mai epizódban elmondom röviden, hogy a JSONP hogyan segít megoldani ezt a problémát és hogy hogyan bővíthetjük ki a szolgáltatásunkat JSONP támogatással:

720p, teljes képernyő ajánlott

Nem is olyan vészes, igaz?

 

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

OData sorozat 3: a publikált adatok elérése jQuery-ből

Miután a sorozat első epizódjában megnéztük, milyen egyszerű közzétenni az adatokat OData protokollon keresztül, majd a második részben ezeket az adatokat Excel PowerPivot-n keresztül értük el, ebben a harmadik epizódban egy programozottabb megoldást mutatok be.

Ezúttal arra látunk példát, hogy JavaScriptből jQuery segítségével hogyan lehet letölteni az adatokat és hogyan lehet őket egyszerűen megjeleníteni egy sima HTML oldalon a jQuery Templates plug-in segítségével:

720p, teljes képernyő ajánlott

Egyszerűbb, mint gondoltad, nem?

 

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

OData sorozat 2: a publikált adatok elérése Excelből

Miután a sorozat első epizódjában láttuk, hogyan publikálhatjuk az adatainkat egyszerűen OData feed formájában, ebben a részben azt mutatom be, hogyan kapcsolódhatunk rá az adatfolyamra közvetlenül Excelből, hogy a jól ismert módon tudjuk szűrni, rendezni, vagy akár Pivot táblával feldolgozni az adatokat:

720p, teljes képernyő ajánlott

Így már kezd értelme lenni, nem?

 

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: ,,

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.