Kapitola 1 Začínáme se Silverlightem

Podobné dokumenty
Základy datových vazeb Silverlightu. Funkce Silverlightu 2. Podpora jazyků a technologie.net Framework

1. Úvod do Ajaxu 11. Jak Ajax funguje? 13

Silverlight. datové služby. John Papa

1 - Úvod do platformy.net. IW5 - Programování v.net a C#

PROGRAMOVÁNÍ PRO MS WINDOWS 2

Kapitola 5 WCF, webové služby a mezidoménové zásady

Seznámení s prostředím dot.net Framework

Informační systém pro podporu řízení, správu a zjišťování aktuálního stavu rozvrhované výuky

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

Novinky. Autodesk Vault helpdesk.graitec.cz,

Připravil: Ing. Vít Ondroušek, Ph.D. Technologie.Net Framework

Platformy / technologie. Jaroslav Žáček

PLATFORMY / TECHNOLOGIE JAROSLAV ŽÁČEK

TÉMATICKÝ OKRUH Softwarové inženýrství

CineStar Černý Most Praha

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

Stručný obsah. Část I. Část II. Část III. Úvod do vývoje v prostředí Visual Studio 25. Návrh uživatelského rozhraní 127

Formy komunikace s knihovnami

Microsoft Office 2003 Souhrnný technický dokument white paper

Wonderware Information Server 4.0 Co je nového

EndNote Web. Stručné informace THOMSON SCIENTIFIC

DoplněkCite While You Write pro aplikaci Microsoft Word

Geoportál DMVS využití a další rozvoj

Novinky. Autodesk Vault helpdesk.graitec.cz,

Nintex Workflow 2007 je nutné instalovat na Microsoft Windows Server 2003 nebo 2008.

Microsoft Access tvorba databáze jednoduše

Softwarové komponenty a Internet

Rozklad na prvočinitele. 3. prosince 2010

Obsah. Úvod 11 Zpětná vazba od čtenářů 13 Errata 14 Poznámka ke kódům 14

3. HODINA. Prohlížeče Druhy prohlížečů Přehled funkcí Bc. Tomáš Otruba, Informatika 7. třída 1

Novinky ve Visual Studio Tomáš Kroupa

Poznámky k verzi Remote support platform 3.1

Návod k obsluze IP kamery Zoneway. IP kamery jsou určené pro odbornou montáž.

AUTOMATICKÉ ŘÍZENÍ S INTERNETOVOU KOMUNIKACÍ V PHP Automatic Control with Internet Communication in PHP

InterSystems Caché Post-Relational Database

Návod k instalaci. Nintex Workflow Návod k instalaci

POKROČILÉ POUŽITÍ DATABÁZÍ

Technologie Java Enterprise Edition. Přemek Brada, KIV ZČU

Nové jazykové brány do Caché. Daniel Kutáč

Co je nového v aplikaci PaperPort 12?

Nové prvky v C# 3.0. David Keprt

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

Platformy / technologie. Jaroslav Žáček jaroslav.zacek@osu.cz

Nejčastější kladené dotazy

KAPITOLA 2 - ZÁKLADNÍ POJMY INFORMAČNÍCH A KOMUNIKAČNÍCH TECHNOLOGIÍ

Masarykova střední škola zemědělská a Vyšší odborná škola, Opava, příspěvková organizace

MVVM pro desktop i web

Stopařův průvodce po ADO.NET a LINQ aneb Foxařův průvodce po práci s daty v.net Milan Kosina

Microsoft Office 2003 Souhrnný technický dokument white paper

Uživatelská dokumentace

Software pro vzdálenou laboratoř

Architektury informačních systémů

Architektury informačních systémů

2015 GEOVAP, spol. s r. o. Všechna práva vyhrazena.

Aplikace je program určený pro uživatele. Aplikaci je možné rozdělit na části:

ELEKTRONICKÉ PODÁNÍ OBČANA

Nastavení provozního prostředí webového prohlížeče pro aplikaci

GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER. váš partner na cestě od dat k informacím

Uživatelská dokumentace

Současný svět Projekt č. CZ.2.17/3.1.00/32038, podpořený Evropským sociálním fondem v rámci Operačního programu Praha adaptabilita

Obsah OLAP A ESO9... 3

Nastavení klientských stanic pro webové aplikace PilsCom s.r.o.

Databázové a informační systémy

ANOTACE vytvořených/inovovaných materiálů

Business Intelligence

Použití inteligentních značek s informačními službami

Nastavení klientských stanic pro webové aplikace PilsCom s.r.o.

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

Obsah. O autorech 9 Earle Castledine 9 Myles Eftos 9 Max Wheeler 9 Odborný korektor 10. Předmluva 11 Komu je kniha určena 12 Co se v knize dočtete 12

Technologie Sharepoint

1. Obsah 2. Úvod Zdarma poštovní klient od společnosti Microsoft přímo v PC

Kapitola 1: Úvod. Systém pro správu databáze (Database Management Systém DBMS) Účel databázových systémů

Tvorba informačních systémů

02. HODINA. 2.1 Typy souborů a objektů. 2.2 Ovládací prvky Label a TextBox

Integrovaná střední škola, Sokolnice 496

1 Webový server, instalace PHP a MySQL 13

Vývoj moderních technologií při vyhledávání. Patrik Plachý SEFIRA spol. s.r.o.

Studentská tvůrčí a odborná činnost STOČ 2013

1. SYSTÉMOVÉ POŽADAVKY / DOPORUČENÁ KONFIGURACE HW A SW Databázový server Webový server Stanice pro servisní modul...

Software602 Form Designer

Efektivní vývoj mobilních aplikací na více platforem současně. Mgr. David Gešvindr MCT MSP MCPD MCITP

FAKULTA INFORMAČNÍCH TECHNOLOGIÍ SPOLEČNOST DECADIC PROJEKT FRAMETRIX

Instalace demoverze

Nástroje na vývoj aplikací pro ios Trocha motivace na úvod Co budete potřebovat Co když nemáte k dispozici počítač s macos? Vývojové prostředí Xcode

Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320

Architektura softwarových systémů

Google Web Toolkit. Martin Šurkovský, SUR března Katedra informatiky

Ing. Přemysl Brada, MSc., Ph.D. Ing. Martin Dostal. Katedra informatiky a výpočetní techniky, FAV, ZČU v Plzni

2014 Electronics For Imaging. Informace obsažené v této publikaci jsou zahrnuty v Právním upozornění pro tento produkt.

TÉMATICKÝ OKRUH TZD, DIS a TIS

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Úvod. Klíčové vlastnosti. Jednoduchá obsluha

9. Sítě MS Windows. Distribuce Windows. Obchodní označení. Jednoduchý OS pro osobní počítače, pouze FAT, základní podpora peer to peer sítí,

RESTful API TAMZ 1. Cvičení 11

Compatibility List. GORDIC spol. s r. o. Verze

schopni vysvětlit, co znamená protokol NFS a k čemu se používá; umět rozpoznat autorské dílo a znát autorská práva;

TECHNICKÉ PODMÍNKY. Tyto podmínky stanoví technické požadavky pro poskytování vybraných Bankovních služeb. Vaše případné dotazy rádi zodpovíme.

Inovace výuky prostřednictvím šablon pro SŠ

Jádrem systému je modul GSFrameWork, který je poskytovatelem zejména těchto služeb:

Transkript:

Kapitola 1 Začínáme se Silverlightem V Silverlightu lze vytvářet nejenom stylová rozhraní, ale také interaktivní aplikace pro různé prohlížeče. Ale co samotné aplikace v Silverlightu? Ne jen vložit video nebo pěkně vypadající sadu tlačítek, ale chodící, hovořící, plně funkční obchodní aplikaci. Samozřejmě že chcete mít také velmi elegantní rozhraní. Dobrá zpráva je, že díky Silverlightu 2 můžete mít všechno najednou. V této kapitole se budeme věnovat některým kritickým oblastem, s nimiž byste se měli seznámit, abyste mohli vyvíjet aplikace Silverlightu řízené daty, přičemž součástí budou i požadované instalace a nástroje. Než začnete vyvíjet aplikace pomocí Silverlightu, je důležité pochopit hlavní rozdíly mezi verzemi Silverlightu 1 a 2. Těmito rozdíly se budeme v této kapitole zabývat a dozvíte se, proč je každé zdokonalení v Silverlightu důležité pro vývoj aplikací řízených daty. Jedním s podstatných vylepšení v Silverlightu 2 je možnost psát kód.net. Vývojáři tak mohou využívat svých stávajících schopností a vytvářet propracované aplikace Silverlightu. Při vývoji těchto aplikací lze používat i funkce jazyka.net 3.5 v Silverlightu, jako je například LINQ a implicitní typy proměnných. V této kapitole si některá z těchto rozšíření jazyka.net 3.5 probereme, protože se s nimi budete setkávat v celé knize. Projdeme si také jednotlivé kroky při vytváření jednoduché aplikace Silverlightu řízené daty. Význam přístupu k datům Za pestrými uživatelskými rozhraními, přehráváním videí a stylovými šablonami se v Silverlightu nachází propracovaná struktura, jež dobře spolupracuje s různými typy datových zdrojů. Aplikace Silverlightu běží v prohlížeči klientského počítače, kde mezi nimi je Internet a jakákoliv serverová aplikace. Aplikace Silverlightu jsou odpojeny od vzdálených datových zdrojů, takže musí při odesílání a přijímání dat komunikovat se vzdálenými servery prostřednictvím různých typů webových služeb.

24 Kapitola 1: Začínáme se Silverlightem Silverlight nabízí několik způsobů pro získání dat ze vzdálených serverů pomocí HTTP a soketů. K nejoblíbenějším a nejužitečnějším metodám patří komunikace s webovou službou založenou na SOAP na vzdáleném serveru (viz kapitoly 5 a 6) a příjem dat ze služby REST (viz kapitoly 7 až 9). V rámci Silverlightu je k dispozici několik nástrojů a metod pro příjem dat, práci s daty, vázání dat, prezentaci uživateli a zpracování všech aspektů aplikace řízené daty. Většina aplikací vyžaduje určitý typ interakce dat. Data mohou pocházet z databáze, informačního kanálu RSS, webové služby nebo služby REST, jež vrací data ve formátu Plain Old XML (POX). Aplikace Silverlightu mohou různým způsobem komunikovat se službami a vracet data. Ačkoli může být Silverlight velmi obsáhlým a výkonným nástrojem pro konečné uživatele, pro aplikaci jsou důležitá data a jejich doručování. V posledních letech získával přístup k datům různé významy. Termín přístup k datům skutečně popisuje přistupování k datům z libovolného počtu zdrojů. To může znamenat přístup k datům z databáze přímo prostřednictvím ADO.NET, ADO.NET Entity Framework, NHibernate, LLBLGen Pro, Enterprise Library nebo nějakého vlastního obchodního objektu a vrstvy přístupu k datům. Může jít také o přístup k datům prostřednictvím webových služeb, ASMX, Windows Communication Foundation ( WCF), informačních kanálů RSS, webových služeb ve stylu REST a požadavků HTTP. K datům lze tedy přistupovat různě a po jejich získání je často nutné data určitým způsobem zpracovat. K uspořádání získaných dat do vhodnější formy vývojáři často využívají LINQ. Všechny tyto faktory definují přístup k datům a všechny postupy lze využívat přímo či nepřímo pomocí Silverlightu. Jdeme na to Silverlight je skvělý nástroj určený pro návrhy propracovaných rozhraní, jež fungují v různých prohlížečích. Silverlight je díky rozsáhlé podpoře programování možným řešením pro obchodní aplikace. V rámci této knihy se seznámíte s vytvářením vizuálně a funkčně vyzrálých aplikací prostřednictvím Silverlightu. Než začneme s příklady, je třeba nainstalovat a nakonfigurovat programy potřebné pro Silverlight 2. Nainstalujte si verzi Silverlight 2 runtime, abyste mohli zobrazovat a spouštět aplikace Silverlightu v prohlížeči. Verze runtime funguje (a je oficiálně podporována) v prohlížečích Internet Explorer, Google Chrome, Firefox a Safari. Runtime je k dispozici pro operační systém Windows a Mac OS X. Silverlight 2 podporují následující prohlížeče: Microsoft Internet Explorer verze 6.0, 7.0 a 8.0 beta Mozilla Firefox verze 1.5, 2.0 a 3.0 Apple Safari verze 2.0 a 3.0 beta Google Chrome Nástroj Silverlight 2 Tools je k dispozici jako doplněk Visual Studia 2008 a umožňuje vytvářet aplikace Silverlightu 2 pomocí.net a Silverlightu 2. Při instalaci doplňku Silverlight Tools

Silverlight datové služby 25 se nainstaluje i Silverlight 2 runtime a Silverlight 2 SDK. Silverlight 2 SDK obsahuje příklady, dokumentaci a nástroje pro vývoj aplikací Silverlightu. Pro vývoj a práci se Silverlightem 2 jsou vyžadovány následující komponenty. Všechny jsou součástí jednoho instalačního souboru: Silverlight 2 Runtime. Silverlight 2 SDK. Silverlight 2 Tools for Visual Studio. Níže uvedené nástroje pro ladění mohou velmi pomoci při hledání potíží v komunikaci aplikací a služeb Silverlightu 2. Všechny jsou bezplatné a mohou vyjasnit důvod potíží a pomohou určit vhodná řešení. V příloze B naleznete tipy a triky pro práci s těmito nástroji při ladění komunikace mezi Silverlightem a službami. Firebug (pro Firefox). Web Development Helper (pro Internet Explorer). Fiddler2 (pro veškeré zachytávání síťového provozu). Doporučuje se také instalace Visual Studia 2008 a Expression Blend s SP1. Visual Studio 2008 je skvělé pro úpravy XAML, využívání IntelliSense a samozřejmě pro psaní kódu.net pro aplikace Silverlightu. Expression Blend se skvěle hodí pro uspořádání složitých návrhů a rozvržení v rámci Silverlightu. Jedná se o hodnotné nástroje, jejichž funkcí byste měli při vývoji se Silverlightem využívat. Funkce Silverlightu 2 Silverlight 2 s sebou přináší podporu pro kód.net v aplikacích Silverlightu, nejde však o jediné podstatné zdokonalení. V tabulce 1.1 je uveden přehled hlavních vylepšení v Silverlightu 2, přičemž některá z nich jsou základem pro vývoj aplikací řízených daty pomocí Silverlightu. Tyto funkce jsou v tabulce 1.1 zvýrazněny, protože je třeba seznámit se s tím, jak mohou vývojářům pomoci při vytváření spolehlivých aplikací řízených daty se Silverlightem. Tabulka 1.1. Klíčové funkce Silverlightu Nové funkce v Silverlightu Poznámky Podpora jazyků a technologie.net Framework Silverlight podporuje kompatibilní část.net Framework a programovací jazyky Visual Basic, Visual C#, IronRuby a IronPython. Datové vazby a oznamování V Silverlightu jsou nyní k dispozici datové vazby a oznamování založené na XAML s využitím rozhraní INotifyCollection- Changed a INotifyPropertyChanged.

26 Kapitola 1: Začínáme se Silverlightem Tabulka 1.1. Klíčové funkce Silverlightu Nové funkce v Silverlightu Poznámky Izolované úložiště Silverlight 2 může ukládat informace v chráněné oblasti na klientském počítači. Smluvní a mimosmluvní datové služby: webové služby RSS založené na JSON, REST, SOAP, POX a Atom Síťový přístup do různých domén LINQ, lambda výrazy, rozšiřující metody a inicializátory objektů Podpora rozložení (layout) StackPa- nel, Grid a Canvas Sada ovládacích prvků a panelů s možností vazby Prostřednictvím Silverlightu jsou k dispozici různé datové služby. To zjednodušuje čtení dat z webových služeb. Silverlight 2 může přistupovat ke službám, jež nepocházejí ze serveru s aplikací Silverlightu2. Součástí Silverlightu je LINQ to Objects, LINQ to XML a LINQ to JSON sloužící k definování dotazů pro složité datové struktury. Silverlight 2 podporuje tři významné panely rozložení nativní pro WPF a XAML. Silverlight 2 přináší celou řadu ovládacích prvků, jež lze integrovat do aplikací Silverlightu 2 a lze vytvářet jejich vazby s datovými zdroji. Společnost Microsoft chtěla původně vydat Silverlight 2 jako Silverlight 1.1, avšak po všech provedených zdokonaleních společnost usoudila, že nová verze je dostatečně odlišná na to, aby si zasloužila své vlastní číslo verze. Když se podíváte na funkce uvedené v tabulce 1.1, je zřejmé, že Silverlight 2 přináší mnoho významných nových schopností. Je důležité, abyste se seznámili s každým vylepšením, jež přímo ovlivňuje vývoj aplikace řízené daty. Mnoho z nich si v následujících kapitolách podrobně popíšeme, nyní si je tedy pouze stručně představíme. Podpora jazyků a technologie.net Framework Vývoj aplikace Silverlightu je jednoznačně mnohem jednodušší, pokud můžete využít své zkušenosti s vývojem.net. Počínaje schopností psát kód.net v klientské aplikaci Silverlightu pro zpracování různých aspektů dané aplikace, včetně obsluhy událostí, přes využívání rozsáhlé platformy.net Framework a vytváření složitých uživatelských ovládacích prvků. Silverlight 2 runtime obsahuje malou, ale výkonnou podmnožinu knihovny.net Framework, takže vývojáři mohou využívat své stávající znalosti.net a přejít na Silverlight s vynaložením minimálního úsilí.

Silverlight datové služby 27 Model pro popis webových služeb a jejich operací Silverlight může komunikovat s webovými službami založenými na SOAP (např. prostřednictvím WCF nebo ASMX) a předávat definované datové struktury mezi klientem Silverlightu a vzdáleným serverem. Tyto služby vystaví s využitím jazyka WSDL kontrakt, s nímž může klient komunikovat vytvářením tříd proxy. Tento kontrakt definuje služby, jež lze volat, a způsob jejich volání. Vystavuje také datové struktury, jež lze předávat do služeb a ze služeb. To je klíčové pro vystavování webových služeb, jež vrací nebo přijímají serializovatelné jednotky jako parametry. Díky smluvnímu rozhraní může Silverlight komunikovat se vzdálenými službami, jež vracejí entity z LINQ to SQL, NHibernate, ADO.NET Entity Framework, nebo i vlastní modely doménových entit. Umožňuje také komunikaci se službami třetích stran založenými na SOAP, jež vystavují WSDL, jako je například Live Search. Volná vázanost datových služeb Silverlight může využívat datové služby také bez vytváření tříd proxy prostřednictvím SOAP, RSS, Atom, JSON, POX nebo REST. K dispozici je mnoho zdrojů informací, jež vrací data prostřednictvím nesmluvní služby. Například Digg.com (http://www.digg.com), Amazon.com (http://www.amazon.com), Twitter.com (http://www.twitter.com) a Flickr.com (http://www.flickr.com) vystavují služby REST, jež vrací XML. Aplikace Silverlightu mohou požadovat informace ze všech těchto služeb a výsledky pak integrovat do aplikace. Těmto oblastem se budeme velmi podrobně věnovat v kapitolách 7 až 9, přičemž se také dozvíte, jak s nimi lze komunikovat mezi různými doménami a jak zpracovat XML a JSON, jež mohou vrátit prostřednictvím LINQ to XML a LINQ to JSON. Nový model ovládacích prvků Nový model ovládacích prvků v Silverlightu 2 velmi usnadňuje vytváření aplikací Silverlightu. Nové ovládací prvky lze uspořádat v rámci panelů rozvržení (layout) XAML, jako je Grid, Can- vas a StackPanel a vytvářet tak propracovaná rozhraní. Ovládací prvky podporují vlastnosti datových vazeb a závislostí založených na XAML, jimž se budeme podrobně věnovat v kapitolách 2 až 4. Silverlight 2 přináší více než dvacet ovládacích prvků, s jejichž pomocí lze vytvářet klientské aplikace Silverlightu. Nabízí panely rozvržení (layout), jako je například Grid, Canvas a Stack- Panel a několik ovládacích prvků pro vstup, jež lze upravovat s využitím šablon a stylů. Obsah některých ovládacích prvků lze zcela nahradit a vytvořit tak složitější řešení. Můžete například nahradit záhlaví ovládacího prvku Grid řadou ovládacích prvků, jež umožní seřadit DataGrid. Lze také nahradit výchozí vzhled tlačítka jiným prvkem, jako je Ellipse a vyplnit jej dalším prvkem FrameworkElement, například obrázkem. S ovládacími prvky se blíže seznámíte v kapitolách 2 až 4, v nichž je také vysvětleno, jak s nimi fungují datové vazby a jaké jsou nejvhodnější postupy pro vazby a prezentace dat. Na obrázku 1.1 jsou znázorněny ovládací prvky dostupné

28 Kapitola 1: Začínáme se Silverlightem v Expression Blend 2 se SP1 a na obrázku 1 je přehled ovládacích prvků, jež jsou k dispozici ve Visual Studiu 2008. LINQ to Objects a LINQ to XML Silverlight 2 podporuje využívání LINQ to Objects, což může zjednodušit dotazování dat v polích a kolekcích v aplikaci Silverlightu. LINQ to XML (také podporovaný v aplikacích Silverlightu 2) je velmi užitečný při využívání nesmluvních datových služeb, jež vrací XML. XML lze načítat do různých knihoven, avšak využití objektů LINQ to XML umožňuje dotazovat XML prostřednictvím známé a výkonné syntaxe LINQ. Pomocí LINQ lze také kombinovat XML a objektové datové struktury ve stejném dotazu LINQ. V mnoha příkladech uvedených v této knize budeme LINQ v určité podobě používat k dotazování dat z XML nebo objektů. Obrázek 1.1 Ovládací prvky Silverlightu 2 zobrazené v Expression Blend LINQ Aplikace řízené daty vytvořené v Silverlightu ve velké míře využívají rozšíření jazyka LINQ a.net 3.5, jak si ukážeme v mnoha příkladech v této knize. Tyto funkce jsou důležité a stojí

Silverlight datové služby 29 tedy za to seznámit se s tím, jak fungují. V jazycích C# 3 a Visual Basic (VB) 9 byla představena rozšíření, z nichž některá jsou základní pro psaní dotazů s LINQ. Aplikace Silverlightu mohou využívat například XML, JSON, objekty, entity z LINQ to SQL a entity z ADO.NET Entity Framework a další. Aplikace Silverlightu často potřebují získávat hodnoty z polí a (nebo) seznamů vlastních entit (např. List<T>). V těchto případech je LINQ to Objects užitečný, protože umožňuje dotazovat jakýkoli seznam IEnumerable. Ačkoli lze XML využívat a spravovat prostřednictvím různých knihoven.net, jako je například XmlReader, LINQ to XML nabízí jednodušší a často výkonnější způsob využití XML. Obrázek 1.2 Ovládací prvky Silverlightu 2 zobrazené ve Visual Studiu 2008 Aplikacím Silverlightu to usnadňuje využívání XML ze zdrojů RSS nebo služeb REST a zpracovávání dat, aniž by došlo k rozvláčným smyčkám. Dotazy LINQ se mohou také připojit k se-

30 Kapitola 1: Začínáme se Silverlightem znamu objektů a XML, což je užitečné v případě, že aplikace získává data z více zdrojů. V několika kapitolách této knihy budeme pracovat s LINQ to Objects a LINQ to XML na příslušných místech, kde jich mohou aplikace Silverlightu využívat. LINQ to Entities se velmi často používá při dotazování modelu Entity Data Model, který je vytvářen ADO.NET Entity Framework. ADO.NET Entity Framework vytváří Entity Data Model, jenž mapuje objektově orientovaný pojmový model entit do relačního úložiště, jako je například SQL Server (ačkoli ADO.NET Entity Framework podporuje model poskytovatelů, takže jsou podporovány i další databázové servery, jako je Oracle). Dotazy se píší pomocí LINQ to Entities proti pojmovému modelu a dotazy se překládají prostřednictvím mapovací vrstvy na příkazy SQL, jež se provádějí oproti relačnímu úložišti. Po vrácení entity z dotazu LINQ to Entities lze entity serializovat a předat do dalších vrstev aplikace. Klientská aplikace Silverlightu by například mohla požadovat entitu ze služby WCF na vzdáleném serveru, jenž vystavuje entity z modelu Entity Data Model. Aplikace Silverlightu by pak na tyto entity mohla použít také LINQ to Objects. Čtvrtou podobou LINQ, které se budeme v této knize věnovat, je LINQ to SQL. LINQ to SQL umožňuje mapování 1:1 z entit na objekty SQL Server. Nepodporuje tak obsáhlé schéma mapování jako ADO.NET Entity Framework; nemá ani model poskytovatelů, takže funguje pouze s SQL Serverem. Pomocí LINQ to SQL můžete psát například dotazy vracející entity, jež lze serializovat a předat do aplikace Silverlightu. Rozšíření jazyka Verze.NET 3.5 s sebou přinesla několik rozšíření jazyka.net. Tato rozšíření jsou spolu s funkcemi důležitou součástí tvorby dotazů pomocí LINQ. V této části si ukážeme několik klíčových funkcí jazyka, včetně následujících: Automatické settery (metoda pro zápis)/gettery (metoda pro čtení) vlastností. Inicializátory objektů. Inicializátory kolekcí. Metody rozšíření. Implicitní typy proměnných. Anonymní typy. Rozšíření jazyka.net 3.5 jsou znázorněna na obrázku 1.3. Automatické vlastnosti v C# Vytváření vlastností může být velmi redundantní proces, zvláště pokud gettery a settery neobsahují jinou logiku, než je získávání a nastavování hodnoty privátního pole. Použití veřejných polí by sice zkrátilo délku kódu, tato pole však mají několik nevýhod. Nejpodstatnější nevýhodou je to, že veřejná pole nejsou plně podporována vazbami dat.

Silverlight datové služby 31 Jednou z možností, jak se vyhnout psaní kódu pro privátní pole a jeho veřejný getter a setter vlastností, je použití refaktorizačního nástroje. Automatické možnosti však umožňují psát méně kódu a přesto získat privátní pole a jeho veřejný getter a setter. Inicializátor kolekce Inicializátor objektu Vložený inicializátor objektu Implicitně typovaná proměnná Anonymní typ Obrázek 1.3 Přehled rozšíření jazyka.net 3.5 C# automatické vlastnosti podporuje, VB nikoli. Pomocí zkrácené syntaxe vytvoříte automatickou vlastnost. Kompilátor pak za vás vygeneruje privátní pole a veřejný setter a getter. V příkladu 1.1 mají třídy Customer2 a Address2 několik privátních polí, jež jsou vystavena prostřednictvím řady odpovídajících veřejných getterů a setterů vlastností. Příklad 1.1 Explicitní gettery a settery v C# public class Customer2 private int id; private string companyname; private Address2 companyaddress; public int ID get return id; set id = value;

32 Kapitola 1: Začínáme se Silverlightem public string CompanyName get return companyname; set companyname = value; public Address2 CompanyAddress get return companyaddress; set companyaddress = value; public class Address2 private int id; private string city; private string state; public int ID get return id; set id = value; public string City get return city; set city = value; public string State get return state; set state = value; Příklad 1.2 ukazuje, jak lze stejného výsledku dosáhnout pomocí automatických vlastností, přičemž je třeba napsat méně kódu, než v příkladu 1.1. Třídy Customer a Address používají automatické vlastnosti k vytvoření vlastností tříd a nevyžadují tolik kódu pro definování pole a jeho getteru a setteru vlastností. Příklad 1.2 Automatické vlastnosti public class Customer

Silverlight datové služby 33 public int ID get; set; public string CompanyName get; set; public Address CompanyAddress get; set; public class Address public int ID get; set; public string City get; set; public string State get; set; Inicializátory objektů Inicializátory objektů umožňují předávat pojmenované hodnoty pro každou veřejnou vlastnost, jež pak bude použita k inicializaci objektu. Pomocí kódu uvedeného v příkladu 1.3 byste například mohli inicializovat instanci třídy Customer. Příklad 1.3 Vytváření a inicializace třídy C# Customer customer = new Customer(); customer.id = 1001; customer.companyname = "Foo"; customer.companyaddress = new Address(); VB Dim customer As New Customer() customer.id = 1001 customer.companyname = "Foo" customer.companyaddress = New Address() Pokud však využijete inicializátory objektů, můžete vytvořit instanci třídy Customer pomocí syntaxe uvedené v příkladu 1.4. Příklad 1.4 Využití inicializátorů objektů C# Customer customer = new Customer ID = 1001, CompanyName = "Foo", CompanyAddress = new Address() ; VB Dim customer = New Customer() With _