820 likes | 993 Views
Miroslav Kubovčík ISV Technical Readiness Microsoft Slovakia http://blog.aspnet.sk/mirkub. Programy pre vývojárske spoločnosti. Programy pre vývoj.spoločnosti (ISV). InnovateON ( www.innovateon.com ) Zdroje pre vývoj, podpora, benefity ... Empower for ISV
E N D
Miroslav Kubovčík ISV Technical Readiness Microsoft Slovakia http://blog.aspnet.sk/mirkub Programy pre vývojárske spoločnosti
Programy pre vývoj.spoločnosti (ISV) • InnovateON (www.innovateon.com) • Zdroje pre vývoj, podpora, benefity ... • Empower for ISV • Pre vývojárske spoločnosti začínajúce na platforme Microsoft s výhľadom projektu • BizSpark pre začínajúce vývojárske spoločnosti www.bizspark.com http://www.microsoft.com/bizspark/FindNetworkPartner.aspx • Microsoft Partner Program • Hodnotné zdroje a podpora aj pre ISV • Benefity podľa úrovní, ISV Competency, MAPS... • Bulletin pre vývojárske spoločnosti (ISV) • Lokálny informačný zdroj pre ISV
Bulletiny pre vývojárov SK • (ISV) Bulletinpre vývojárske spoločnosti • Informácie pre nezávislých vývojárov softvéru • Semináre, akcie, možnosti rozvoja... • .NET bulletin • Informácie pre vývojárov, softvérovýcharchitektov a IT odborníkovzamerané na architektúru a vývoj .NET aplikácií • Semináre a livemeetingy na Slovensku • Linky na stiahnutie softvéru, tipy, doporučenia...
Ako si zaregistrovať bulletiny? • Cez profilačné centrum • http://www.microsoft.com/slovakia/profilecenter • Alebo priamo cez linku • https://profile.microsoft.com/RegSysProfileCenter/SubCntAvailable.aspx?lcid=1051
Windows 7 pred dverami • Prevezmite Windows 7 RC • http://www.microsoft.com/windows/windows-7/download.aspx • Nainštalujte si Windows 7 RC • Napr. do virtuálneho počítača vytvoreného v VirtualPC 2007 • Virtual PC je bezplatný virtualizačný nástroj http://www.microsoft.com/downloads/details.aspx?FamilyId=28C97D22-6EB8-4A09-A7F7-F6C7A1F000B5&displaylang=en • Testujte svoje aplikácie na Windows 7 • Pošlite mi (mirkub@microsoft.com)email s textom „Chcem vedieť viac o testovaní kompatibility pre Windows 7“ a po zverejnení testovacích nástrojov Vám pošlem detailnejšie informácie.
Miroslav Kubovčík ISV Technical Readiness Microsoft Slovakia http://blog.aspnet.sk/mirkub Služby, služby, služby...
Agenda • Základy WCF • WCF 3.5 a SP1 • .NET RIA Services • Windows 7 a služby • Silverlight a služby • Azure Services
Stavebným kameňom je WCF Na správy orientované programovanie Na atribútoch založené programovanie WS-* Protokoly Vzdialené volania objektov SOA Interoperabilita
K K K B B B A A A WCF komunikáciaAdresa, Binding, Kontrakt Klient Služba Správa Adresa Binding Kontrakt (Kde) (Ako) (Čo)
Kontrakt – typy • Služba • Popisuje poskytované služby • Dáta • Popis štruktúry poskytovaných dát • Správa (message) • Modifikuje štruktúru SOAP správy
Kontrakt služby – typy • Request – Response • OneWay • Bez odpovede • Duplex • Asynchrónne metódy • Nedá sa použiť pre všetky typy Bindings • Fault • Chyba, ktorú nemožno ošetriť na strane servera
Service Contract – kód [ServiceContract] public interface ICalculator { [OperationContract] ComplexProblem SolveProblem (ComplexProblem p); }
Data Contract – kód [DataContract] public class ComplexNumber { [DataMember] public double Real = 0.0D;[DataMember] public double Imaginary = 0.0D; public ComplexNumber(double r, double i) { this.Real = r; this.Imaginary = i; } }
Message Contract – kód [MessageContract] public class ComplexProblem { [MessageHeader] public string operation; [MessageBody]public ComplexNumber n1; [MessageBody]public ComplexNumber n2; [MessageBody]public ComplexNumber solution; // Constructors… }
Hostovanie služieb • ServiceHost using(ServiceHost host = new ServiceHost( serviceType, baseAdresses)) { host.Open(); … host.Close(); } • IIS • Service.svc <%@ServiceHost Service="serviceType" %>
Behaviors – chovanie služby • Vývojár • Concurrency • Instancing • Správca • Throttling • Vystavenie metadát
Instancing (inštancieslužby) • Per call • Pre každú požiadavku nová inštancia • Singleton • Pre všetky požiadavky jedna inštancia • Private Session • Čo klient, to jedna inštancia • Shared Session • Pre skupinu klientov jedna inštancia
Throttling <service type="Calculator" behaviorConfiguration="CalculatorBehavior"> <!-- endpoint definitions /--> </service> <behaviors> <behavior configurationName="CalculatorBehavior"> <serviceThrottling maxConcurrentCalls="10" maxConnections="10" maxInstances="10" maxPendingOperations="10" /> </behavior> </behaviors>
WCF 3.0 binding – prehľad T = Transport Security | S = WS-Security Message Security
Deklaratívna konfigurácia WCF <?xml version="1.0" encoding="utf-8" ?> <configuration xmlns= "http://schemas.microsoft.com/.NetConfiguration/v2.0"> <system.serviceModel> <services> <service type="CalculatorService"> <endpoint address=“http://localhost/calculator" binding="basicHttpBinding" contractType="ICalculator" /> </service> </services> </system.serviceModel> </configuration>
Vytvorenie klienta • Proxy • Konfigurácia • svcutil
demo Vytvorenie WCF služby a jej otestovanie v VS 2008
Agenda • Základy WCF • WCF 3.5 a SP1 • .NET RIA Services • Windows 7 a služby • Silverlight a služby • Azure Services
REST? REST je štýl architektúry pre implementovanie služieb s jednoduchým a otvoreným modelom webu SOAP je protokol pre pokročilý messaging model nezávislý na transportnej vrstve
REST kontinuum Hi-REST Lo-REST RESTfullness Puritáni Pragmatici • POST na 1 URI je OK • Querystringssú OK • POX je OK • HTTP výrazy • GET – načítaj • POST - preťažený • Konštruovanie URI • HTTP výrazy • GET – načítaj • PUT – Update / Insert • DELETE – Delete • POST – pridaj
WCF 3.5 prináša webHttpBinding • RESTful WCF Binding • Nepoužíva SOAP obálky • Podpora transportnej vrstvy iba HTTP aHTTPS • Podporuje definície HI-REST / LO-REST • Podpora všetkých HTTP výrazov • Kódovanie webových správ • JSON • XML • Binary (streams)
Chovanie webHttpBindingendpoint • webHttp – otvára model webového programovania pre WCF službu • enableWebScript – chovanie endpoint-u v štýle ASP.NET AJAX • Poskytuje generovanie ASP.NET AJAX proxy • Podporuje len GET a preťažený POST • Nepodporuje UriTemplates
[WebGet] a [WebInvoke] • Indikujú HTTP metódu operácie • WebGet • WebInvoke – podpora iných výrazov ako GET • Ďalšie parametre • BodyStyle – Indikuje či sú Request / Response obalené alebo nie • RequestFormat – Jsonalebo Xml • ResponseFormat – Jsonalebo Xml • UriTemplate – definovanie URI štruktúry
WCF 3.5 UriTemplate [OperationContract] [WebGet(UriTemplate=„Wine/{wineId})] WineDataGetWine(string wineId); http://localhost/service.svc/Wine/1 Šablóna URI UriTemplateumožňuje prekryť prednastavené volanie služby Argumenty naviazané podľa názvov
Vylepšenie v WCF 3.5 SP1 [OperationContract] [WebGet(UriTemplate="Wine/{wineID=17})] WineDataGetWine(string wineID); Prednastavenie hodnôtpre položky šablóny
Vylepšenie v WCF 3.5 SP1 [OperationContract] [WebGet(UriTemplate=“wine({wineID})] WineDataGetWine(string wineID); http://localhost/service.svc/wine(17) Segmenty zloženej šablóny
.NET Frm 3.5 SP1 pre WCF • Vylepšenia škálovateľnosti • Vylepšenia DataContractSerializer • APP podpora pridaná do „syndication“ knižnice • Vylepšené syntax UriTemplate • Vyskladanie segmentov ({filename}.{ext}) • Prednastavené hodnoty (/Products/{id=23}) • VS 2008 SP1 priniesol podporu WCF refactoringu (svc/configsúbory)
REST v .NET 3.5 SP1 Doporučované HI-REST WCF ASP.NET ADO.NET Data Services LO-REST Náročná Jednoduchá
ADO.NET Data Service WCF Service DataService<T> Entity Data Model CLR Model (IQueryable) LINQ To SQL Model Custom Model
WCF REST Starter Kit • Visual Studio 2008 šablóny • Kešovanie • Zabezpečenie • Klientská knižnica • Pripravuje sa zabudovanie do .NET 4.0 • http://aspnet.codeplex.com/Wiki/View.aspx?title=WCF%20REST&referringTitle=Home
demo WCF a REST WCF Rest Starter KIT ADO.NET Data Service
Malý REST sumár • REST je o resources • REST je oHTTP • REST je štýl pohybujúci sa medzi LOaHI • Doporučené spôsoby implementovania v .NET • ADO.NET Data Services • pre LO-REST • WCF • Pre LO aj HI-REST • Flexibilný so širokým záberom
Agenda • Základy WCF • WCF 3.5 a SP1 • .NET RIA Services • Windows 7 a služby • Silverlight a služby • Azure Services
Služba orientovaná na RIA • Cieľom je zjednodušiť vývoj RIA aplikácií • Vývoj pre n-vrstviev v RIA je náročný • Treba priblížiť RIA vývoj produktivite ASP.NET vývoja • Zaostrené na „end-to-end“ scenáre • .NET RIA Services • Sada nástrojov pre tvorbu viac vrstiev naraz • Aplikačna logika na strednej vrstve na kontrolu prístupu k dátam cez „query“ • Možnosť zdielať entity a aplik.logiku medzi vrstvami • Trieda DomainServicevystavuje entity a operácie pre dátovú doménu • Miesto, kde vývojár vkladá aplik.kód • Framework naviazaný na Entity Framework a Linq-to-SQL
Aplikačný model spájajúci vrstvy • Jedna logická aplikácia • Klient je rozšírením servera Služby Rich Internet Application Browser Web Application Prezentačná logika Aplikačná logika Vrstva prístupu k dátam HTML Sieť Databáza Služby Služby Iné aplikácie
Normatívny vzor • DomainContext: pripojiteľné dáta • class Catalog • EntityList<Product> Products { get } • void LoadProducts(IQueryable<Product>) • void ToggleSale(Product) • class Product • Data members + Validation • void ToggleSale() • DomainService: CRUD + Aplik.logika • class Catalog • IQueryable<Product> GetProducts() • void UpdateProduct(Product, Product) • void ToggleSale(Product) • Validačné a autorizačné pravidlá, • aplikačný workflow, … • Dátový model • class Product Dát. model + Metadáta + Zdieľaný kód Služby Aplikácia Prezentačná logika Aplikačná logika Vrstva prístupu k dátam Sieť Databáza
demo .NET RIA Services (SL3)
Agenda • Základy WCF • WCF 3.5 a SP1 • .NET RIA Services • Windows 7 a služby • Silverlight a služby • Azure Services
Sprístupnenie webu klient. aplikáciam • Federated Search • Vyhľadávanie obsahu aj za hranicami lokálneho PC • Podpora štandardu OpenSearch • Windows Web Services API • Umožňuje natívne vytvárať a konzumovať web.služby s minimálným časom rozbehu • Rozšírená integrácia s WCF • Internet Explorer 8
Federated Search Sklad dokumentov Podnikové úložisko dát Podniková aplikácia
Ako pracuje Federated Search 2. Windows pošle vyhľadávané slová ako HTTP požiadavku 1. Nainštalovanie Search Connector-a (.osdx) 3. RSS výsledky vrátené zo servera • Pohodlie pre klientskú stranu • Náhľady, metadáta, drag&drop • Návyky z používania „prieskumníka“ • Jednoduchá a odľahčená integrácia • Žiadny klientský kód • Ľubovoľna serverová platforma • Založené na štandardoch • OpenSearch 1.1 • RSS a ATOM • Autentizácia • Integrovaná alebo vlastná
Windows Web Services API • Prepojenie natívneho kódu a webových služieb • Win32 API • API nezávislé na .Net Framework-u • Interoperabilitazaložená na WS-* SOAP • Windows Communication Foundation (WCF) • ASP .Net XML Web Services (ASMX) • „Non-Microsoft“ služby • Systémovýkomponent Windows 7
Konfigurácie WWS API • Transportná vrstva • HTTP, TCP, UDP • XML kódovanie • Textové, Binárne, MTOM • Obálka • SOAP 1.1 a 1.2 • Adresácia • WS-Addressing 0.9 a 1.0 • Metadáta • WSDL 1.1, XML Schéma 1.0 • WS-MetadataExchange 1.1 • WS-Transfer Marec 2006 • Bezpečnosť • WS-Security 1.0 a 1.1 (čiastočne) • WS-Trust Február 2005 a 1.3 (čiastočne) • WS-SecureConversation 1.1 a 1.3 (čiastočne) • Politika • WS-Policy Marec 2006 a v.1.2 • WS-Policy Attachment Marec 2006 a 1.2 • WS-SecurityPolicy 1.1
demo Federated Search
Agenda • Základy WCF • WCF 3.5 a SP1 • .NET RIA Services • Windows 7 a služby • Silverlight a služby • Azure Services