mts 2013 tomasz kopacz - windows 8, office 365, workflow manager, windows azure z odrobiną excela...

71

Upload: tomasz-kopacz

Post on 14-Dec-2014

956 views

Category:

Technology


1 download

DESCRIPTION

 

TRANSCRIPT

  • 1. Uwaga organizacyjnaVisual Studio ma literki due, ale.Sugestia: zapraszam bliej!

2. Windows 8, Office 365, Workflow Manager, Windows Azure z odrobin Excela i Outlooka - czyli jak budowa aplikacje tak, by nie pisa za duo kodu Tomasz KopaczArchitekt, Microsoft 3. Cel sesji Oszczdno czasu przy pisaniu aplikacji Nie opis jednego rozwizania To znaczy bdzie jedno, ale WIRTUALNE z rnymi kawakami Ps. Rozwaania W8 = Rozwaania WP8 Z koniecznoci nie schodzimy do bardzo duych szczegw 4. Plan prezentacji Obszary Usugi (generalnie) Dane - podkategoria Autoryzacja Usugi (cz II) - Usugi w Azure Workflow Powiadamianie Zaoenia odnonie wiedzy suchaczy: Oglne obycie w technologii Microsoft i programowaniu .NET 5. Co bdzie uywane? Office 365 Exchange + SharePoint + autoryzacja I Windows Azure Active Directory Serwer(y) Azure VM (IaaS) Kontroler domeny tu TKDC.local, jako 10.4.3.4 + DNS, gwnie SQL Server (moe by z AlwaysOn, ale to dobrze znane) Windows Server AppFabric / Workflow Manager (lepiej na oddzielnej maszynie); dokadniej 3 failover Cloud Services background processing i frontend + przepis na skalowanie Doczone do domeny (atwiej ledzi) Web Sites frontend (REST + WWW); te si skaluj Service Bus i Notification Services Excel statystki i podsumowania, raporty Lync / Exchange (Outlook) zadania dla uytkownika Windows 8 specjalizowana aplikacja 6. Wstp do Usug 7. Opcje usug (realne) WebAPI Oparte o REST cile zwizane ze stosem HTTP OWin te dowolny hosting Brak formalnych metadanych Ale strona /help JSON / XML / po prostu binarny strumie w HTTP Odata tu na yczenie s metadane! Ostatnia aktualizacja tydzie temu WCF SOA Enterprise Services COM+ Dowolnych hosting (ma wasny stos komunikacyjny) Moe mie binding REST Automat WCF Data Services Ostatnia dua aktualizacja 4.0 4.5 tooling, WebSocket 8. Z czego skada si R E S T Klienta, ktry inicjuje poczenie do serwera Serwera, obsugujcego danie i zwracajcy okrelony wynik Zasb, czyli co, na czym usuga pracuje. Moe to by obiekt, domena biznesowa, encja w bazie, workflow, Reprezentacja, czyli dokument opisujcy stan zasobu (URI, ciao POST itp.). 9. Co to to RESTGETPOSThttp://a/cust/5 Zwraca klienta o id = 5 http://a/prod/ Zwraca produkt o id=6 6 http://a/cust Zwraca kolekcj klientw (zwykle stronicowanie) http://a/cust/1 Dodaje klienta o id =1 (w ciele POST) i danej wartociIdemp?GETZnaczenieBezp?URIOpisGETZwraca reprezentacj danego zasobu. Nie powinna by wykonywana adna inna czynnoPOSTWysya dane do przetworzenia Dane s zawarte w ciele dania (jak w przypadku formularzy HTML)TakPUTModyfikuje zasb wgrywajc nowe dane. Kade kolejne wywoanie tego polecenia w identyczny sposb zmienia stan zasobu.TakDELETE Usuwa dany zasb.TakPUThttp://a/cust/1 Aktualizuje klienta o id=1 DELETE http://a/cust/1 Kasuje klienta o id=1PATCHTakModyfikuje cz zasobu (dla porwnania PUT zastpuje cay). RFC 2789, 2010r;HEADPobiera elementy nagwka. Metadane. 10. WebAPI 1.0 config.Routes.MapHttpRoute( name: TodosForTodoList", routeTemplate: "api/todolists/{id}/todos", defaults: new { controller = todolists, action = GetTodos } ); A potem: public IEnumerable GetTodos() { } 11. WebAPI 2.0 config.MapHttpAttributeRoutes(); A potem: [HttpGet("api/todolists/{id}/todos")] public IEnumerable GetTodos(int id) { } [HttpGet(Demographics/{zipcode?}")] public Demographics Get(int? zipcode) { } [HttpGet("Demographics/{zipcode=98052}")] public Demographics Get(int zipcode) { } [HttpGet("people/{id:int}")] public Person Get(int id) { } [HttpGet("people/{name:alpha}")] public Person Get(string name) { } 12. (Dla porwnania w WCF) [OperationContract] [WebGet(UriTemplate=/WeatherMap/{country}/{zipcode})] Stream GetWeatherMap(String country, String zipcode); 13. DANE - Co to jest OData Proste, przenone i zrozumiae dla kadego API do dostpu do danych Zasb = Dane 14. To jest standard 15. Jak to dziaa?GETJSON ~/Products(6) POST ~/Products JSONDELETE ~/Suppliers(5) ATOMOData APIMetadanePUT ~/Suppliers(4) JSON HTTP GET ~/Products?$filter=Rating eq 3 GET ~/Categories(4)/Products HTTP Wsppraca (urzdzenia i platformy) Metadane Formaty (XML / JSON) Semantyka REST (GET/PUT/POST/DELETE) Konwersja URI i jzyk zapyta 16. Wykorzystanie OData w .NET (System.Net.Http) var client = new HttpClient(); client.BaseAddress = new Uri("http://localhost:50310/"); var res = client.GetAsync("odata/buildings").Result; (HttpContentExtension!) var buildings = res.Content.ReadAsAsync().Result; (JSON.NET w WinRT) var result = await client.GetAsync(new Uri("...")); var longString = await result.Content.ReadAsStringAsync(); ComplexNumberForView[] obj = await JsonConvert.DeserializeObjectAsync(longString); 17. Budowa OData WebApi OData Implementuje si usugi OData mwic co si dzieje Budowa modelu, formatery, (JSON/XML), cieki i kwerendy, parsery, generatory LINQ,... Wicej pracy, dziaa tak jak chcemy Wykorzystuje ODataLib $select, $expand, $batch! W 3.0 Tu warto zerkn! Portable HTTP Client WCF Data Services (5.6) Dziedziczenie z Entity Framework Peny automat Intercepcje Wasne polecenia Pasuje OK albo nie uywa Wykorzystuje ODataLib (na dzi BARDZIEJ DOJRZAE!) V5.6 Portable HTTP Client 18. (v3) Przykady kwerend /Category(1)/Products?$top=2&$ord erby=name /Categories(1) /Products/MostExpensive /Products(1)/Supplier /Category(1)/$links/Products /Products?$select=Rating,ReleaseD ate $select=Category/Name&$expand= Category /Products?$select=Namespace.Best SellingProduct/Spokesperson,Suppli er/Namespace.PreferredSupplier/Acc ountRepresentative /Products?$filter=Name eq 'Milk' /Products?$filter=not endswith(Name, 'ilk') /Products?$filter=Price mul 2.0M eq '5.10M /Customers?$filter=indexof(Company Name, 'lfreds') eq 1Jest formalny sposb ROZSZERZANIA kwerend 19. Odata w Web API public class AddressController : EntitySetController { Models.AdventureWorks2012Entities ent = new Models.AdventureWorks2012Entities(); public override IQueryable Get() { return ent.Address; } protected override Models.Address GetEntityByKey(int key) { return ent.Address.Where(p=>p.AddressID ==key) .FirstOrDefault(); } protected override int GetKey(Models.Address entity) { return entity.AddressID; } } 20. DEMO 00: Odata AzureAutoscale 21. Blok: Autoryzacja (najtrudniejsze); te troszeczk usug ale prociutkich 22. Autoryzacja? Byo prosto Komputery w domenie Policy i uprawnienia dla uytkownikw W peni kontrolowany VPN / DA / Komputery wasnoci pracodawcy! Jest Au. Trend Konsumeryzacja Czyli: dowolne urzdzenie w dowolnym miejscu przez dowoln sie chce pracowa z wraliwymi informacjami. 23. Podejcie proste haso, certyfikat, Wszdzie: Wasny IHttpModule Dotyczy: potoku w IIS WebApi: Wasny ActionFilter (WCF:UserNamePasswordValidator i inne Common Security Scenarios) (dowolny provider autoryzacji) 24. DEMO 01 Klasyczna autoryzacja usug 25. Komplikujemy (odrobin) FacebookPaypalMicrosoftLinkedInTwitterAmazonGoogle Custom Device Weibo Tencent QQAD Active DirectoryAzure AD 26. OAuth RFC 5849 - The OAuth 1.0 Protocol RFC 6749 - The OAuth 2.0 Authorization Framework OAuth to warstwa autoryzacyjna oddzielajca: Resource owner (waciciel zasobu, daje token tosamoci) Authorization server (dla tokenu tosamoci daje token dostpu) Resource server (dla tokenu dostpu daje to co ma da) Token JWT (System.IdentityModel.Tokens.Jwt) Tak naprawd wszystkie mechanizmy okoo OAuth bazuj na jakim tokenie OAuth 2: Bearer + formalne odwieanie dostpu Walidacja i konwersja na claimy (takie ciasteczko autoryzacyjne, tylko claimowe) 27. Przykad: Komunikacja Web i SharePoint OAuth zabezpiecza komunikacj SharePoint & web ufa trzeciej stronie (tu ACS) Zaufanie si opiera na ClientId & ClientSecret SharePoint & ACS znaj ClientId Web & ACS znaj ClientSecret Przepyw tokenw 1. SharePoint pobiera token kontekstu ACS i przekazuje do aplikacji web 2. Aplikacja Web waliduje token kontekstu z ACS i dostaje z powrotem token dostpowy 3. Token dostpowy jest uywany do komunikacji z SP 28. Serwery OAuth 2.0 1. Wasne ( ciekawe zadanie...) Prosty serwer authz jako klasa we wzorcu Single Page Application w VS 2013 W przyszoci - Authz server w OWIN (patrz sesja Bartomieja Zassa)2. Istniejcy Workflow -> Zadania Ps. Lista zada moe by te na Exchange automatyczna synchronizacja z Outlook Czasami nie trzeba nic programowa! 53. DEMO 07 W8 klient + AppFabric Workflow (W8 klient) + Lista + Office 365 + Workflow Manager Office 365 Workflow klasyczny Office 365 Workflow z wasnym XAML-em (no XOML-em) Office 365 Workflow z wasnym kodem (przez zamachanie rkoma) Office 365 Powiadamianie na zewntrz o zmianach (przez zamachanie rkoma) Remote Event Receiver 54. Dane i Excel Workflow, dane, postp procesu - zawsze trzeba zrobi adny wykres Mona pisa do tego aplikacj Ale, jak uyjemy OData, to Power Query do Excela jest narzdziem pozwalajcym podglda stan / dane 55. DEMO 08 Excel i OData Excel jako klient do podgldania postpu prac 56. Blok: Powiadamianie 57. Opcje - powiadamianie Gdy dziaa aplikacja WebSocket (SignalR) Service Bus(kolejka) Gdy aplikacja nie dziaa Control Channel Trigger najmniejsze opnienia Push Notification Mobile Services | Notification Hub Lync Chat Facebook Chat Yammer (to taki Facebook ale prywatny, te cz darmo) Jest jeszcze SMS! 58. Azure Notification Hub High Scale - porednik w dostarczaniu powiadomie Windows 8 | Windows Phone Apple | Google Shared Access Key Shared Access Policies Szablony Tagi Zarzdzanie rejestracjami 59. DEMO 09 Powiadamianie 60. Dygresja: A moe CQRS + SMS? Workflow | CQRS Baza nie ma stanu aktualnego Klient (mobilny) musi wiedzie e co zaszo De facto zapis do kolejki = wykonanie operacji (tylko kiedy) SMS-em potwierdzam tak, zlecenie wykonanie (np.) Twilio SMS wiarygodny VMS + Test to Speech 61. Natychmiastowe powiadamianie W8 (Problem aplikacja nie dziaa cay czas!) Push Notification WNS does not guarantee the reliability or latency of a notification Co to znaczy: opnienia do 15 minut Technicznie teraz do kilku sekund Control Channel reakcja na komunikat ktry przychodzi po TCP Background Task ktry monitoruje kart sieciow (Connected Standby) I zmienia flag / wysya LOKALNIE powiadomienie e co si zdarzyo! (nic nie robi bo nie ma jak) Uywane protokoy (StreamSocket, MessageWebSocket, StreamWebSocket) HTTP (lepiej nie) XHTTPRequest (AJAX) WebSocket (najwygodniejsze) 62. Demo 10 Demo - Video (przepraszam, tam jest troch czekania) 63. Taski dla ludzi 64. Dlaczego zadania w Outlook Boo siedz tam inne zadania Outlook i tak najpopularniejszy klient pocztowy uywany w biznesie. Taski, kalendarz, Podstawa Exchange Web Services Ps. Oczywicie zadania moe te dodawa do Sharepoitnt Link Sharepoint Outlook Strona My Task na Office365 z list wszystkich zada 65. Demo 11 Taski 66. Podsumowanie scenariusz 67. Mapa (sowna) co do czego Bezpieczestwo = OAuth i pochodne RMS gdy zabezpieczamy ZASB a nie dostp do zasobu Dane to nie tylko klasyczne pojemniki Mobile Services, Yammer, Lista Sharepointa Usugi raczej REST / ODATA pytanie co to zasb! Azure | Model Azure | Azure Pack W8 nie tylko klient. Te offline Workflow sporo gotowych rzeczy; trzeba tylko uy Powiadamianie bardzo wane Nie zapomina o tym co uywa uytkownik Sharepoint = obieg dokumentw + rodowisko pracy Lync, Task w Exchange 68. Wypenij ankiet i wygraj nagrody! Organizatorzy MTS czytaj wszystkie ankiety.Wystarczy 5 minut Twojego czasu na wypenienie ankiety!Dziki nim masz realny wpyw nakonferencj oraz merytoryk i prelegentw kolejnego MTS.Masz szans wygra m.in. wejciwk na MTS 2013 (25x) oraz inne nagrody.Gdzie i jak? Ankiety dostpne s online na stronie konferencji (konferencjamts.pl) Mona je wypeni od dzi, a do 11 listopada 2012 69. 2013 Microsoft Corporation. Wszelkie prawa zastrzeone. Microsoft, Windows oraz inne nazwy produktw s lub mog by znakami towarowymi lub zastrzeonymi znakami towarowymi firmy Microsoft w Stanach Zjednoczonych i innych krajach. Zamieszczone informacje maj charakter wycznie informacyjny. FIRMA MICROSOFT NIE UDZIELA ADNYCH GWARANCJI (WYRAONYCH WPROST LUB DOMYLNIE), W TYM TAKE USTAWOWEJ RKOJMI ZA WADY FIZYCZNE I PRAWNE, CO DO INFORMACJI ZAWARTYCH W TEJ PREZENTACJI.