WCF RIA Services. aneb jak na RIA aplikace v Silverlightu

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

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

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

Vladimír

1 Webový server, instalace PHP a MySQL 13

Použití databází na Webu

ASP.NET Web API. Tomáš Herceg Microsoft MVP (ASP.NET)

Úvod do Entity Frameworku

Programování v jazyku C# II. 8.kapitola

1. Webový server, instalace PHP a MySQL 13

WCF. IW5 - Programování v.net a C# WCF

Programátorské večery. Tomáš Herceg Microsoft Student Partner

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

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

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

KIV/PIA 2013 Jan Tichava

Informační systém pro rezervaci pokojů hotelu SPORT

Jazyk C# - přístup k datům

MVVM pro desktop i web

CineStar Černý Most Praha

Vhodnost nasazení jednotlivých webových architektur, sdílení dat, perzistence, webové služby a REST, asynchronnost, messaging

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

Diagnostika webových aplikací v Azure

KAPITOLA 1 Představení platformy Microsoft SQL Server 2008

Vazba ESO9 na MS Outlook a MS Exchange

RESTful API TAMZ 1. Cvičení 11

Oracle XML DB. Tomáš Nykodým

Design Patterns. Tomáš Herceg Microsoft MVP (ASP.NET)

EMBARCADERO DATASNAP. OBSAH Úvod... 2 DataSnap a DBExpress... 2 Serverová část... 2 VCL Klient... 6 Nasazení... 7

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

WINDOWS 8 APLIKACE PRO PREZENTACI DAT Z WEBOVÉHO API

Část IV - Bezpečnost 21. Kapitola 19 Bezpečnostní model ASP.NET 23

Platformy / technologie. Jaroslav Žáček

Michal Augustýn Microsoft Most Valuable Professional

INFORMAČNÍ SYSTÉMY NA WEBU

PLATFORMY / TECHNOLOGIE JAROSLAV ŽÁČEK

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

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

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 10.4.

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

Instalace. Produkt je odzkoušen pro MS SQL server 2008 a Windows XP a Windows 7. Pro jiné verze SQL server a Windows nebyl testován.

Stěhování aplikací. Michal Tomek, Sales Manager

Popis logování v aplikačním serveru

Synchronizace CRM ESO9 a MS Exchange

Návrh a tvorba WWW stránek 1/14. PHP a databáze

Příloha č. 2 - Integrace SpiritÚAP do ESB Jihočeského kraje

Servlety a JSP. Petr Adámek, petr.adamek@ibacz.eu

Zabezpečení webové vrstvy a EJB projektu Část nastavení specifická pro Glassfish, část dána Java EE

Programování v jazyku C# II. 5.kapitola

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

Michal Krátký, Miroslav Beneš

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

Kapitola 1 Začínáme se Silverlightem

Max Homebanking PS uživatelský manuál rozhraní pro automatické stahování dat

Tvorba informačních systémů

Microsoft ASP.NET 2.0/3.0 (advanced)

Třídy a objekty. Třídy a objekty. Vytvoření instance třídy. Přístup k atributům a metodám objektu. $z = new Zlomek(3, 5);

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

Wonderware Information Server 4.0 Co je nového

APS Administrator.ST

WWW dotazovací služby pro prostorová data URM. Jiří Čtyroký Útvar rozvoje hl. m. Prahy

Databáze II. 1. přednáška. Helena Palovská

Jaku b Su ch ý 1

Databázové systémy. - SQL * definice dat * aktualizace * pohledy. Tomáš Skopal

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 26.3.

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové aplikace

Představuje. Technický Informační Systém nové generace

OAuth 2. Martin Kuba, ÚVT MU

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

Jak testovat software v praxi

Novinky v ASP.NET MVC6

Základy jazyka C# Obsah přednášky. Architektura.NET Historie Vlastnosti jazyka C# Datové typy Příkazy Prostory jmen Třídy, rozhraní

17. července :51 z moravec@yahoo.com

ISZR Referenční agent.net

Databáze pro evidenci výrobků

PŘEHLED A MOŽNOSTI VYUŽITÍ WEBOVÝCH MAPOVÝCH SLUŽEB

MBI - technologická realizace modelu

Web Services na SOAP

API pro volání služby kurzovního lístku KB

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 3.4.

Novinky ve Visual Studio Tomáš Kroupa

Databázové systémy. Doc.Ing.Miloš Koch,CSc.

Microsoft Azure Workshop

APS Administrator.OP

API AIS ČR Technická specifikace

SharePoint 2010 produktové portfolio a licencování

AJAX. Dynamické změny obsahu stránek

Formy komunikace s knihovnami

Internet Information Services (IIS) 6.0

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

KMI / TMA Tvorba mobilních aplikací. 6. seminář ZS 2016/2017 Středa 13:15-15:45

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

Stručný úvod pro programátory. Michal Kuchta

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

Kurz Databáze. Přechod na SQL server. Obsah. Vytvoření databáze. Lektor: Doc. Ing. Radim Farana, CSc.

Snadný vývoj webových aplikací s Nette. Lukáš Jelínek

SUTOL Symposium 2014

Technologie. Osnovy kurzu: Školení správců systému. 1. den, dopolední blok

Dobrý SHOP Popis produktu a jeho rozšíření

Transkript:

WCF RIA Services aneb jak na RIA aplikace v Silverlightu Tomáš Herceg Chief Software Architect @ Microsoft ASP.NET MVP http://www.herceg.cz, http://www.vbnet.cz

Příklad ze života APP APP DB APP APP APP

Problémy Větší změna v databázi typicky vyžaduje netriviální úpravu všech aplikací Část aplikační logiky je duplikována ve všech aplikacích Nelze sdílet kód např. mezi C# a PHP Uživatel může zjistit heslo k DB Autorizace je na straně klientské aplikace

Řešení vícevrstvá architektura APP APP APP Web Service DB APP APP

Web Service Může aplikace odstínit od změn databáze Rozhraní navenek zůstane stejné Obsahuje aplikační logiku, která je sdílená Zajišťuje autorizaci Navíc můžeme získat cacheování notifikace o změnách

Problém Jak navrhnout webovou službu Select, Insert, Update, Delete, další operace Filtrování, řazení, stránkování Autorizace, validace Možnosti Psát všechny metody ručně otročina Vygenerovat je podle datového modelu a metadat přihořívá

WCF RIA Services Technologie, která má tvorbu aplikační vrstvy usnadnit snadné vygenerování CRUD metod autentizace a autorizace validace na více vrstvách metadata pomocí Data Annotations podpora Silverlightu, ale např. i jquery lze používat i jako standardní WCF služba

Schéma Klient Server Client App Logic Server App Logic Presentation Service Client Service Entity Framework Data Model DB

Zakládáme projekt DEMO Tomáš Herceg Chief Software Architect @ Microsoft ASP.NET MVP http://www.herceg.cz, http://www.vbnet.cz

Terminologická odbočka WCF Data Services Dříve ADO.NET Data Services REST rozhraní, podpora formátů Atom, JSON WCF RIA Services Vyvinuty speciálně pro Silverlight Obecně použitelné (WinForms, WPF, jquery ) http://blogs.msdn.com/b/endpoint/archive/2010/01/04/wcf-dataservices-ria-services-alignment-questions-and-answers.aspx

WCF RIA Services Toolkit Podpora Entity Framework 4.1 LINQ to SQL Windows Azure Table Storage Výstup i v SOAP a JSON formátech Komponenty pro ASP.NET WebForms jquery klient http://www.microsoft.com/download/en/details.aspx?id=26939&hash=8ps b4m7fkribxzdkdc%2fcdspeg%2bq8ag2r%2bpb3qx1aihvcvzw0fm%2f45 8BIWPoMsJIlpk4FmIEw281awBhos4lCzw%3d%3d

Výchozí rozdělení Silverlight Application Klientská aplikace ASP.NET Web Application Host pro Silverlight aplikaci Host pro služby Služby Entity Data Model Nedoporučuje se na cokoliv většího!

Možné lepší rozdělení ASP.NET Web Application Host pro Silverlight aplikaci ASP.NET Web Application Host pro služby Silverlight Application Class Library Klientská aplikace Samotné WCF služby Silverlight Class Library Utility, vlastní komponenty Class Library Entity Data Model

Serverová část DEMO Tomáš Herceg Chief Software Architect @ Microsoft ASP.NET MVP http://www.herceg.cz, http://www.vbnet.cz

První úkony WcfRiaDemo.Services.DAL Vytvořit Entity Data Model WcfRiaDemo.Services Přidat jednu nebo více Domain Services Přidat Authentication Domain Service WcfRiaDemo.Services.Web Nastavit providery ve web.config Membership a Roles, volitelně Profile Vytvořit SVC soubory pro služby Doplnit konfiguraci WCF

Přidat reference WcfRiaDemo.Services Přidat reference System.ServiceModel.DomainServices.Hosting System.ServiceModel.DomainServices.EntityFramework System.ServiceModel.DomainServices.Server Nastavit Copy Local = True Přidat i knihovnu z WCF RIA Toolkit Microsoft.ServiceModel.DomainServices.Hosting

Cross Domain WcfRiaDemo.Services.Web Nutno přidat soubor clientaccesspolicy.xml <?xml version="1.0" encoding="utf-8"?> <access-policy> <cross-domain-access> <policy> <allow-from http-request-headers="*"> <domain uri="http://*" /> <domain uri="https://*" /> </allow-from> <grant-to> <resource path="/" include-subpaths="true"/> </grant-to> </policy> </cross-domain-access> </access-policy>

Servisní metody Vygeneruje Visual Studio při přidávání Domain Service public IQueryable<Contact> GetContacts() { return this.objectcontext.contacts; } public void InsertContact(Contact contact) { } public void UpdateContact(Contact currentcontact) { } public void DeleteContact(Contact contact) { }

Metadata Metadatové třídy pro entity [MetadataType(typeof(EmailMetadata))] public partial class Email { public class EmailMetadata { [Display(AutoGenerateField = false)] public int EmailId { get; set; } [Display(Name = "E-mailová adresa")] [Required(ErrorMessage = "Pole 'E-mail' musí být vyplněno!")] [DataType(DataType.EmailAddress, ErrorMessage = "Pole 'E-mail' nemá správný formát!")] public string Address { get; set; } } }

Atributy Key primární klíč DataType Currency, Date, DateTime, EmailAddress, Password, Html, PhoneNumber, Time, Url... DisplayFormat formátovací řetězec

Atributy Display různé možnosti zobrazení AutoGenerateField... zobrazit / schovat pole AutoGenerateFilter... generovat filtr Description... popis Name... název pole GroupName... název skupiny Order... pořadí pole ResourceType... třída s resources (lokalizace)

Atributy Editable povolit / zakázat editaci UIHint název komponenty ve FieldTemplates FilterUIHint název komponenty ve FilterTemplates

Atributy Required pole musí být vyplněno StringLength maximální délka řetězce RegularExpression validace regulárním výrazem Range validace na rozsah CustomValidation vlastní validace

Autentizace Používá se ASP.NET Provider Model Windows autentizace Forms autentizace MembershipProvider Stačí metoda ValidateUser RoleProvider Stačí metoda IsUserInRole Konfiguruje se ve web.config

Autorizace Atributy nad metodami nebo službou RequiresAuthentication() Jen přihlášení uživatelé RequiresRole("admin") Jen uživatelé v roli admin Ruční kontrola ServiceContext.User.Identity.IsAuthenticated ServiceContext.User.IsInRole("admin")

Klientská část DEMO Tomáš Herceg Chief Software Architect @ Microsoft ASP.NET MVP http://www.herceg.cz, http://www.vbnet.cz

Komunikace se službami PhoneBookService vygeneruje v SL třídu PhoneBookContext Načítání dat (asynchronní) var context = new PhoneBookContext(); return context.load(context.getcontactsquery() ).Entities; Filtrování (Where) Stránkování (Skip, Take) Řazení (OrderBy, OrderByDescending)

Manipulace s daty Kolekce EntitySet<T> Add vygeneruje INSERT Remove vygeneruje DELETE Úprava entity vygeneruje UPDATE context.submitchanges();

Autentizace a autorizace WcfRiaDemo.Client App.xaml: přidat do konstruktoru var context = new WebContext(); context.authentication = new FormsAuthentication(); ApplicationLifetimeObjects.Add(context); Přihlášení WebContext.Current.Authentication.Login( new LoginParameters(username, password) );

Práce s kolekcemi EntitySet<T> Všechny entity, o kterých DataContext ví Při načtení nových se do kolekce samy přidají Přidání a odebírání generuje INSERT a DELETE Nezáleží na pořadí EntityCollection<T> Všechny entity asociované s určitou entitou, o kterých DataContext ví Při načtení nových se do kolekce samy přidají Přidání a odebírání typicky mění asociaci

Práce s kolekcemi EntityList<T> Libovolná podmnožina entit typu T Přidání již existující entity nic neudělá, přidání nové vygeneruje INSERT Vymazání entity z EntitySetu ji vymaže i odsud ICollectionView<T> Objekt CollectionViewSource Stránkování, řazení, seskupování v paměti Musí být natažené všechny záznamy

Práce s kolekcemi DomainCollectionView Řazení, stránkování, seskupování na serveru Nemusí se stahovat vše na klienta http://blogs.msdn.com/b/kylemc/archive/2010/12/02/introducing-anmvvm-friendly-domaindatasource-the-domaincollectionview.aspx

Další možnosti WCF RIA Services Použití ve WinForms, WPF atd. Klasické Add Service Reference Použití v ASP.NET Komponenta DomainDataSource Použití z jquery http://jeffhandley.com/archive/2011/04/13/riajs-jquery-clientfor-wcf-ria-services.aspx

Pozvánka: Microsoft Fest 2011 Praha, Malostranské náměstí Budova MFF UK 26. 27. listopadu 2011 http://www.ms-fest.cz WP7 Track 4x Dev Track 2x IT Pro Track Více než 35 přednášek

Diskuse Q&A Tomáš Herceg Chief Software Architect @ Microsoft ASP.NET MVP http://www.herceg.cz, http://www.vbnet.cz