SlideShare a Scribd company logo
Uwaga organizacyjna

Visual Studio ma literki duże, ale….

Sugestia: zapraszam bliżej!
Windows 8, Office 365, Workflow
Manager, Windows Azure z odrobiną
Excela i Outlooka - czyli jak budować
aplikacje tak, by nie pisać za dużo kodu
Tomasz Kopacz

Architekt, Microsoft
Cel sesji
 Oszczędność czasu przy pisaniu aplikacji
 Nie opis „jednego” rozwiązania 
 To znaczy – będzie jedno, ale WIRTUALNE z różnymi kawałkami

 Ps.
 Rozważania W8 = Rozważania WP8
 Z konieczności nie schodzimy do bardzo dużych szczegółów
Plan prezentacji
 Obszary
 Usługi (generalnie)
 Dane - podkategoria






Autoryzacja
Usługi (cz II) - Usługi w Azure
Workflow
Powiadamianie

 Założenia odnośnie wiedzy słuchaczy:
 Ogólne obycie w technologii Microsoft i programowaniu .NET
Co będzie używane?
 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, głównie
 SQL Server (może być z AlwaysOn, ale – to dobrze znane)
 Windows Server AppFabric / Workflow Manager (lepiej na oddzielnej maszynie); dokładniej 3 – failover

 Cloud Services – background processing i frontend + przepis na skalowanie
 Dołączone 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 użytkownika
 Windows 8 – specjalizowana aplikacja
Wstęp do Usług
Opcje usług (realne)
 WebAPI
 Oparte o REST
 Ściśle związane 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 własny
stos komunikacyjny)
 Może mieć binding REST
 Automat WCF Data Services
 Ostatnia duża aktualizacja – 4.0
 4.5 – tooling, WebSocket
Z czego składa się R E S T
 Klienta, który inicjuje połączenie do serwera
 Serwera, obsługującego żądanie i zwracający określony wynik
 Zasób, czyli coś, na czym usługa pracuje. Może to być obiekt,
domena biznesowa, encja w bazie, workflow, …
 Reprezentacja, czyli dokument opisujący stan zasobu (URI, ciało
POST itp.).
Co to to REST

GET

POST

http://a/cust/5 Zwraca klienta o id = 5
http://a/prod/ Zwraca produkt o id=6
6
http://a/cust
Zwraca kolekcję
klientów (zwykle
stronicowanie)
http://a/cust/1 Dodaje klienta o id =1
(w ciele POST) i danej wartości

Idemp?

GET

Znaczenie

Bezp?

URI

Opis

GET

Zwraca reprezentację danego zasobu. Nie
powinna być wykonywana żadna inna
czynność

POST

Wysyła dane do przetworzenia Dane są
zawarte w ciele żądania (jak w przypadku
formularzy HTML)

Tak

PUT

Modyfikuje zasób wgrywając nowe dane.
Każde kolejne wywołanie tego polecenia w
identyczny sposób zmienia stan zasobu.

Tak

DELETE Usuwa dany zasób.

Tak

PUT

http://a/cust/1 Aktualizuje klienta o
id=1
DELETE http://a/cust/1 Kasuje klienta o id=1

PATCH

Tak

Modyfikuje część zasobu (dla porównania –
PUT zastępuje cały). RFC 2789, 2010r;

HEAD

Pobiera elementy nagłówka. Metadane.
WebAPI 1.0
config.Routes.MapHttpRoute(
name: “TodosForTodoList",
routeTemplate: "api/todolists/{id}/todos",
defaults: new { controller = “todolists”, action = “GetTodos” }
);
A potem:
public IEnumerable<TodoItem> GetTodos() { … }
WebAPI 2.0
config.MapHttpAttributeRoutes();
A potem:
[HttpGet("api/todolists/{id}/todos")]
public IEnumerable<TodoItem> 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) { … }
(Dla porównania – w WCF)
[OperationContract]
[WebGet(UriTemplate=“/WeatherMap/{country}/{zipcode}”)]
Stream GetWeatherMap(String country, String zipcode);
DANE - Co to jest OData
 Proste, przenośne i zrozumiałe dla każdego API do dostępu do
danych
 Zasób = Dane
To jest standard
Jak to działa?

GETJSON
~/Products(6)
POST ~/Products
JSON

DELETE ~/Suppliers(5)
ATOM

OData API

Metadane

PUT ~/Suppliers(4)
JSON
HTTP
GET ~/Products?$filter=Rating eq 3
GET ~/Categories(4)/Products

 HTTP
 Współpraca
(urządzenia i
platformy)
 Metadane
 Formaty (XML /
JSON)
 Semantyka REST
(GET/PUT/POST/DELETE)
 Konwersja URI i
język zapytań
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<ODataResult>().Result;
(JSON.NET w WinRT)
var result = await client.GetAsync(new Uri("..."));
var longString = await result.Content.ReadAsStringAsync();
ComplexNumberForView[] obj = await
JsonConvert.DeserializeObjectAsync<ComplexNumberForView[]>(longString);
Budowa OData
 WebApi OData
 Implementuje się usługi OData
mówiąc co się dzieje
 Budowa modelu, formatery,
(JSON/XML), ścieżki i kwerendy,
parsery, generatory LINQ,...
 Więcej pracy, działa 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”
 Pełny automat
 Intercepcje
 Własne polecenia
 Pasuje OK albo nie używać
 Wykorzystuje ODataLib
 (na dziś – BARDZIEJ
DOJRZAŁE!)
 V5.6

 Portable HTTP Client
(v3) Przykłady 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 1

Jest formalny sposób ROZSZERZANIA kwerend
Odata w Web API
public class AddressController : EntitySetController<Models.Address,int>
{
Models.AdventureWorks2012Entities ent = new Models.AdventureWorks2012Entities();
public override IQueryable<Models.Address> 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;
}
}
DEMO 00: Odata
AzureAutoscale
Blok: Autoryzacja
(najtrudniejsze); też troszeczkę usług – ale prościutkich
Autoryzacja?
 Było prosto





Komputery w domenie
Policy i uprawnienia dla użytkowników
W pełni kontrolowany VPN / DA / …
Komputery własnością pracodawcy!

 Jest
 Auć. Trend „Konsumeryzacja”
Czyli: dowolne urządzenie w dowolnym miejscu przez dowolną sieć chce
pracować z wrażliwymi informacjami….
Podejście proste – „hasło”, certyfikat, …
 Wszędzie: Własny IHttpModule
 Dotyczy: potoku w IIS

 WebApi: Własny ActionFilter

 (WCF:UserNamePasswordValidator i inne – Common Security
Scenarios)
 (dowolny provider autoryzacji)
DEMO 01
Klasyczna autoryzacja usług
Komplikujemy (odrobinę)
Facebook

Paypal

Microsoft

LinkedIn

Twitter

Amazon

Google
Custom
Device
Weibo
Tencent QQ

AD
Active
Directory

Azure AD
OAuth
 RFC 5849 - The OAuth 1.0 Protocol
 RFC 6749 - The OAuth 2.0 Authorization Framework
 OAuth to warstwa autoryzacyjna oddzielająca:
 Resource owner (właściciel zasobu, daje token „tożsamości”)
 Authorization server (dla tokenu tożsamości daje token dostępu)
 Resource server (dla tokenu dostępu daje … to co ma dać)

 Token JWT (System.IdentityModel.Tokens.Jwt)
 Tak naprawdę wszystkie mechanizmy około OAuth bazują na jakimś tokenie

 OAuth 2: Bearer + formalne odświeżanie dostępu
 Walidacja i konwersja na claimy (takie „ciasteczko autoryzacyjne”, tylko
claimowe)
Przykład: 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
 Przepływ tokenów
1. SharePoint pobiera token kontekstu ACS i
przekazuje do aplikacji web
2. Aplikacja Web waliduje token kontekstu z
ACS i dostaje z powrotem token dostępowy
3. Token dostępowy jest używany do
komunikacji z SP
Serwery OAuth 2.0
1. Własne (… ciekawe zadanie...)
 Prosty serwer authz jako klasa we wzorcu Single Page Application w VS 2013
 W przyszłości - Authz server w OWIN (patrz sesja Bartłomieja Zassa)

2. Istniejący <- lepiej
 Windows Azure Active Directory
 Active Directory Federation Services w Window Server 2012 R2
 Live ID, (Facebook/twiter/…
Windows Azure Active Directory
Synonimy:
WAAL
AAL
ADAL

Biblioteka
Active Directory Authentication Library

Windows Runtime (WinRT)
System

Synchronizacja

AAL for Windows Store
.WINMD

Aplikacja

JS/HTML5
Windows
Store App

C#
Windows
Store App

OS
Windows Azure Authentication Library
AuthenticationContext aCtx =
new AuthenticationContext("https://login.windows.net/contoso.onmicrosoft.com");
AuthenticationResult result =
await authorizationContext.AcquireTokenAsync("http://host.com/shipmentservice",
clientID);

Potem:
var httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.Add("Authorization", result.AccessToken);
…
httpClient.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("Bearer", result.AccessToken);
DEMO 02
Logowanie przez WiF
WebAPI i (W)AAL
Autoryzacja w VS 2013
App Endpoints w AAL i rejestracja klienta

WiF
A Windows 8?
(stowarzyszone konto Microsoft = automatyczne OAuth w aplikacji)
(Live SDK – de facto dostawca OAuth – jak (W)AA(D)L)

Credential Locker
Web Authentication Broker
(Mobile Services)
Credential Locker - Największa zaleta
 API do bezpiecznego
przechowywania tożsamości
użytkownika
 Pod spodem – Data Protection
API
 Izolacja
 Roaming

Desktop PC

My Photo App

Sky Drive
(Microsoft
Account)

Tablet PC

My Photo App
Pomocniki – Web Authentication Broker
 WinRT API do podłączania się do dostawców online, jak Facebook,
Twitter przy wykorzystaniu protokołów takich jak OpenID czy OAuth
 Single sign-on dzięki WebAuthBroker
 Aplikacja musi się na to zgodzić (użyć API)
Jak działa SSO

https://contoso.com

Contoso weryfikuje redirect URL dla appsa
(MyPhotoApp zarejestrowane ms-app://S-1-54321)

https://contoso.com?ContosoAppID=MyPhotoApp
,
redirectURI=ms-app://S-1-5-4321,…

SID: S-1-5-4321

MyPhotoApp

User Mode (App Container)
Kernel Mode

User Mode (Medium)
DEMO 04
Credential Locker
Web Authentication Broker
(Pokazać Control Panel i gdzie te hasła siedzą…)
Dygresja: inne spojrzenie

CO użytkownik może
zrobić z danymi w danej sytuacji / urządzeniu / sieci!
Nie zabezpieczamy dostępu, ale to,

Microsoft RMS SDK 3.0
for Windows Store
Setup
API





Zabezpiecza dokument w dowolnym formacie
UI do logowania / wyboru polis
Bazowe uprawnienia (Read, Edit, Share itp.)
Intersujące klasy API:
 ProtectedFileStream
 CustomProtectedStream
 ProtectionPolicyExtensions – zabezpiecza własne formaty
DEMO 05 do dygresji
RMSSampleApp
Blok: Usługi w Azure
Usługi w Azure
Azure VM

Cloud Services

• Win/Linux/Oracle Web
Logic/…
• SLA: 99.9% (1VM)
• Można Availability Set
• Dowolny stos
aplikacyjny
• Skalowanie wymaga
klonowania maszyn
• Update po stronie
klienta w 100%
• Ostrzeżenia mailowe o
planowanych restartach
• Debugowanie:+++

• To co się zainstaluje na
Win
• .NET / PHP / Node.JS /
Ruby / Python / Java
• 99.95% / 99.5% (2VM)
• Traffic Manager –
wyższe
• Debuggowanie: ++

Web Site
•
•
•
•

HTTP / HTTPS
REST / SOAP
.NET / PHP / Node.JS
Debuggowanie:+

Mobile Services
• REST
• Pisane w JavaScript
• (expressJS z Node.JS)
• Gdy potrzebny pojemnik
na dane dla urządzeń
mobilnych
• Debuggowanie: – (auć)
Dane
Dane – jak i gdzie?
 Oczywistość:
 Azure Storage – binarne, rysunki, może NoSQL
 SQL Database – to co ma relacje
 Mobile Services – gdy ważna prostota

 Office 365 – też pojemnik!
 SkyDrive (Pro)
 Yammer i inne – także
 Lista Sharepoint!

 Dygresja: Cassandra na Linux na IaaS, MongoDB, ….
OData i „infrastruktura”
 (Powód: każdy pojemnik wolniejszy niż RAM)
 Cache
 Po stronie usługi – Azure Cache Services
 Dowolny server proxy po drodze
 Cache-control, opcje: PUBLIC | PRIVATE | NO-CACHE | NO-STORE oraz max-age=3600
 Pragma: no-cache ze strony klienta + cache control – że chce informację świeżą!

 Klient
 JavaScript / XML – zapisać, wczytać
 Cache w słowniku wg parametrów wywołania itp.
Demo 06
(Debuggowanie usług na Azure – też dotyczy profilowania / ETW)
Praca z danymi – W8 i Odata
Pokazać CACHE!
Praca z danymi – W8 i Sharepoint
Praca z OLAP – W8 + Rest + SQL Server
Mobile Services – DANE i API, z autoryzacją i powiadamianiem
Blok: Workflow
Opcje

Pytanie: JAKA CZĘŚĆ WORKFLOW
PO STRONIE KLIENTA!

 (Też: własny kod (.NET + SQL))
 Workflow Foundation (SDK w .NET)
 Motor realizujący procesy | Komunikacja: SOAP (WCF), REST

 AppFabric – hostuje Workflow Foundation
 Workflow Manager (SDK w .NET)
 Zarządza przepływami + komunikacja przez Service Bus
 Komunikacja z Service Bus – REST
 Kolejki, tematy, subskrypcje na komunikaty o danych cechach (właściwościach)

 Sharepoint 2013 / Office 365(produkt)
 BizTalk Server 2013 (produkt) / (też w Azure VM (IaaS))
AppFabric i Workflow Manager
 Workflow Manager
 Podstawa Workflow Foundation
 Definicja procesu w XML /
Graficznym designerze /
dynamicznie w kodzie.
 Diagram sekwencyjny, diagram
stanu, Flowchart
 Aktywności, zmienne, reguły, …

 Trwałe procesy zapisywane do
SQL
 Komunikacja przez JEDNO Web
Services
 Service Bus rozdziela komunikaty

 AppFabric
 Podstawa Workflow Foundation
 Definicja procesu w XML /
Graficznym designerze /
dynamicznie w kodzie.
 Diagram sekwencyjny, diagram stanu,
Flowchart
 Aktywności, zmienne, reguły, …

 Trwałe procesy zapisywane do
SQL
 Hostowanie plików XOML
 Każdy z Workflow jest niezależną
usługą
Sharepoint
 Wykorzystuje Workflow Foundation i Workflow Manager
 Dodaje gotowy interfejs użytkownika
 Biblioteka (lista) ->Workflow -> Zadania
 Ps. Lista zadań może być też na Exchange – automatyczna synchronizacja z
Outlook

 Czasami nie trzeba nic programować!
DEMO 07
W8 – klient + AppFabric Workflow
(W8 klient) + Lista + Office 365 + Workflow Manager
Office 365 – Workflow „klasyczny”
Office 365 – Workflow z własnym XAML-em (no – XOML-em)
Office 365 – Workflow z własnym kodem (przez zamachanie
rękoma)
Office 365 – Powiadamianie na zewnątrz o zmianach (przez
zamachanie rękoma) – Remote Event Receiver
Dane i Excel
 Workflow, dane, postęp procesu - zawsze trzeba zrobić „ładny
wykres”
 Można pisać do tego aplikację
 Ale, jak użyjemy OData, to
 Power Query do Excela jest narzędziem pozwalającym podglądać stan / dane
DEMO 08 – Excel i OData
Excel jako klient do podglądania postępu prac
Blok: Powiadamianie
Opcje - powiadamianie
 Gdy działa aplikacja
 WebSocket
 (SignalR)

 Service Bus(kolejka)

 Gdy aplikacja nie działa
 Control Channel Trigger – najmniejsze opóźnienia
 Push Notification
 Mobile Services | Notification Hub

 Lync
 Chat Facebook
 Chat Yammer (to taki Facebook ale prywatny, też część darmo)

 Jest jeszcze SMS!
Azure Notification Hub
 „High Scale” - pośrednik w
dostarczaniu powiadomień
 Windows 8 | Windows Phone
 Apple | Google

 Shared Access Key
 Shared Access Policies

 Szablony
 Tagi
 Zarządzanie rejestracjami
DEMO 09
Powiadamianie
Dygresja: A może CQRS + SMS?
 Workflow | CQRS
 Baza nie ma stanu „aktualnego”

 Klient (mobilny) musi wiedzieć że
coś zaszło
 De facto – zapis do kolejki = wykonanie
operacji (tylko kiedyś)

 SMS-em potwierdzam – tak, zlecenie
wykonanie
 (np.) Twilio

 SMS wiarygodny
 VMS + Test to Speech
 …
Natychmiastowe powiadamianie W8
 (Problem – aplikacja nie działa cały czas!)
 Push Notification
 „WNS does not guarantee the reliability or latency of a notification”
 Co to znaczy: opóźnienia do 15 minut
 Technicznie – teraz – do kilku sekund

 Control Channel – reakcja na komunikat który przychodzi po TCP
 Background Task który monitoruje kartę sieciową (Connected Standby)
 I zmienia flagę / wysyła LOKALNIE powiadomienie że coś się zdarzyło!
 (nic nie robi – bo nie ma jak)

 Używane protokoły (StreamSocket, MessageWebSocket, StreamWebSocket)
 HTTP (lepiej nie)
 XHTTPRequest (AJAX)
 WebSocket (najwygodniejsze)
Demo 10
Demo - Video (przepraszam, tam jest trochę czekania)
„Taski dla ludzi”
Dlaczego zadania w Outlook






Boo… siedzą tam inne zadania
Outlook i tak najpopularniejszy klient pocztowy używany w biznesie.
Taski, kalendarz, …
Podstawa – Exchange Web Services
Ps. Oczywiście zadania może też dodawać do Sharepoitnt
 Link Sharepoint – Outlook
 Strona My Task na Office365 z listą wszystkich zadań
Demo 11
„Taski”
Podsumowanie –
„scenariusz”
Mapa (słowna) – co do czego
 Bezpieczeństwo = OAuth i pochodne
 RMS – gdy zabezpieczamy ZASÓB a nie dostęp do zasobu

 Dane – to nie tylko klasyczne pojemniki
 Mobile Services, Yammer, Lista Sharepointa…

 Usługi – raczej REST / ODATA – pytanie co to zasób!
 Azure | Model Azure | Azure Pack
 W8 – nie tylko klient. Też offline

 Workflow – sporo gotowych rzeczy; trzeba tylko użyć
 Powiadamianie – bardzo ważne
 Nie zapominać o tym co używa użytkownik
 Sharepoint = obieg dokumentów + środowisko pracy
 Lync, Task w Exchange
Wypełnij ankietę i wygraj nagrody!
Organizatorzy MTS czytają
wszystkie ankiety.

Wystarczy 5 minut Twojego czasu
na wypełnienie ankiety!

Dzięki nim masz realny wpływ
nakonferencję oraz merytorykę
i prelegentów kolejnego MTS.

Masz szansę wygrać m.in.
wejściówkę na MTS 2013 (25x)
oraz inne nagrody.

Gdzie i jak?
 Ankiety dostępne są online – na stronie konferencji (konferencjamts.pl)
 Można je wypełnić od dziś, aż do 11 listopada 2012
© 2013 Microsoft Corporation. Wszelkie prawa zastrzeżone.
Microsoft, Windows oraz inne nazwy produktów są lub mogą być znakami towarowymi lub zastrzeżonymi znakami towarowymi firmy Microsoft w Stanach Zjednoczonych i innych krajach. Zamieszczone informacje mają
charakter wyłącznie informacyjny. FIRMA MICROSOFT NIE UDZIELA ŻADNYCH GWARANCJI (WYRAŻONYCH WPROST LUB DOMYŚLNIE), W TYM TAKŻE USTAWOWEJ RĘKOJMI ZA WADY FIZYCZNE I PRAWNE, CO DO
INFORMACJI ZAWARTYCH W TEJ PREZENTACJI.

More Related Content

Viewers also liked

Media streaming
Media streamingMedia streaming
Media streaming
Udara Seneviratne
 
Streaming with Azure Media Services
Streaming with Azure Media ServicesStreaming with Azure Media Services
Streaming with Azure Media Services
Zeddy Iskandar
 
Deep dive into service fabric after 2 years
Deep dive into service fabric after 2 yearsDeep dive into service fabric after 2 years
Deep dive into service fabric after 2 years
Tomasz Kopacz
 
Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...
Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...
Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...Tomasz Kopacz
 
MultiCloud Bursting from Openstack to Windows Azure and Amazon AWS with Righ...
 MultiCloud Bursting from Openstack to Windows Azure and Amazon AWS with Righ... MultiCloud Bursting from Openstack to Windows Azure and Amazon AWS with Righ...
MultiCloud Bursting from Openstack to Windows Azure and Amazon AWS with Righ...
bn-cloud
 
Azure paa s v2 – microservices, microsoft (azure) service fabric, .apps and o...
Azure paa s v2 – microservices, microsoft (azure) service fabric, .apps and o...Azure paa s v2 – microservices, microsoft (azure) service fabric, .apps and o...
Azure paa s v2 – microservices, microsoft (azure) service fabric, .apps and o...
Tomasz Kopacz
 
It w roku 201x – dom, szkoła, potem praca. no i – jak tu (i czego!) uczyć
It w roku 201x – dom, szkoła, potem praca. no i – jak tu (i czego!) uczyćIt w roku 201x – dom, szkoła, potem praca. no i – jak tu (i czego!) uczyć
It w roku 201x – dom, szkoła, potem praca. no i – jak tu (i czego!) uczyć
Tomasz Kopacz
 
(Azure) Machine Learning 2015
(Azure) Machine Learning 2015(Azure) Machine Learning 2015
(Azure) Machine Learning 2015
Tomasz Kopacz
 
High Performance Processing of Streaming Data
High Performance Processing of Streaming DataHigh Performance Processing of Streaming Data
High Performance Processing of Streaming Data
Geoffrey Fox
 
Windows 10, internet of things, komunikacja duplex od kabli do odrobiny azu...
Windows 10, internet of things, komunikacja duplex   od kabli do odrobiny azu...Windows 10, internet of things, komunikacja duplex   od kabli do odrobiny azu...
Windows 10, internet of things, komunikacja duplex od kabli do odrobiny azu...
Tomasz Kopacz
 
Spark with HDInsight
Spark with HDInsightSpark with HDInsight
Spark with HDInsight
Khalid Salama
 
Coś o service fabric, architekturze, i bardzo skalowalnych aplikacjach
Coś o service fabric, architekturze, i bardzo skalowalnych aplikacjachCoś o service fabric, architekturze, i bardzo skalowalnych aplikacjach
Coś o service fabric, architekturze, i bardzo skalowalnych aplikacjach
Tomasz Kopacz
 
Intorducing Big Data and Microsoft Azure
Intorducing Big Data and Microsoft AzureIntorducing Big Data and Microsoft Azure
Intorducing Big Data and Microsoft Azure
Khalid Salama
 
Big Data Analytics in the Cloud with Microsoft Azure
Big Data Analytics in the Cloud with Microsoft AzureBig Data Analytics in the Cloud with Microsoft Azure
Big Data Analytics in the Cloud with Microsoft Azure
Mark Kromer
 
Microsoft Azure Big Data Analytics
Microsoft Azure Big Data AnalyticsMicrosoft Azure Big Data Analytics
Microsoft Azure Big Data Analytics
Mark Kromer
 
VMware vSphere 5 seminar
VMware vSphere 5 seminarVMware vSphere 5 seminar
VMware vSphere 5 seminar
Markiting_be
 
VMWARE VS MS-HYPER-V
VMWARE VS MS-HYPER-VVMWARE VS MS-HYPER-V
VMWARE VS MS-HYPER-V
David Ramirez
 
Unleash the Power of Video Communication - Office 365 Video vs. Azure Media S...
Unleash the Power of Video Communication - Office 365 Video vs. Azure Media S...Unleash the Power of Video Communication - Office 365 Video vs. Azure Media S...
Unleash the Power of Video Communication - Office 365 Video vs. Azure Media S...
Gina Montgomery, V-TSP
 
XenServer, Hyper-V, and ESXi - Architecture, API, and Coding
XenServer, Hyper-V, and ESXi -  Architecture, API, and CodingXenServer, Hyper-V, and ESXi -  Architecture, API, and Coding
XenServer, Hyper-V, and ESXi - Architecture, API, and Coding
_Humair_Ahmed_
 

Viewers also liked (20)

Media streaming
Media streamingMedia streaming
Media streaming
 
Streaming with Azure Media Services
Streaming with Azure Media ServicesStreaming with Azure Media Services
Streaming with Azure Media Services
 
Deep dive into service fabric after 2 years
Deep dive into service fabric after 2 yearsDeep dive into service fabric after 2 years
Deep dive into service fabric after 2 years
 
Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...
Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...
Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...
 
MultiCloud Bursting from Openstack to Windows Azure and Amazon AWS with Righ...
 MultiCloud Bursting from Openstack to Windows Azure and Amazon AWS with Righ... MultiCloud Bursting from Openstack to Windows Azure and Amazon AWS with Righ...
MultiCloud Bursting from Openstack to Windows Azure and Amazon AWS with Righ...
 
Azure paa s v2 – microservices, microsoft (azure) service fabric, .apps and o...
Azure paa s v2 – microservices, microsoft (azure) service fabric, .apps and o...Azure paa s v2 – microservices, microsoft (azure) service fabric, .apps and o...
Azure paa s v2 – microservices, microsoft (azure) service fabric, .apps and o...
 
It w roku 201x – dom, szkoła, potem praca. no i – jak tu (i czego!) uczyć
It w roku 201x – dom, szkoła, potem praca. no i – jak tu (i czego!) uczyćIt w roku 201x – dom, szkoła, potem praca. no i – jak tu (i czego!) uczyć
It w roku 201x – dom, szkoła, potem praca. no i – jak tu (i czego!) uczyć
 
(Azure) Machine Learning 2015
(Azure) Machine Learning 2015(Azure) Machine Learning 2015
(Azure) Machine Learning 2015
 
High Performance Processing of Streaming Data
High Performance Processing of Streaming DataHigh Performance Processing of Streaming Data
High Performance Processing of Streaming Data
 
Vm Vs Hyperv
Vm Vs HypervVm Vs Hyperv
Vm Vs Hyperv
 
Windows 10, internet of things, komunikacja duplex od kabli do odrobiny azu...
Windows 10, internet of things, komunikacja duplex   od kabli do odrobiny azu...Windows 10, internet of things, komunikacja duplex   od kabli do odrobiny azu...
Windows 10, internet of things, komunikacja duplex od kabli do odrobiny azu...
 
Spark with HDInsight
Spark with HDInsightSpark with HDInsight
Spark with HDInsight
 
Coś o service fabric, architekturze, i bardzo skalowalnych aplikacjach
Coś o service fabric, architekturze, i bardzo skalowalnych aplikacjachCoś o service fabric, architekturze, i bardzo skalowalnych aplikacjach
Coś o service fabric, architekturze, i bardzo skalowalnych aplikacjach
 
Intorducing Big Data and Microsoft Azure
Intorducing Big Data and Microsoft AzureIntorducing Big Data and Microsoft Azure
Intorducing Big Data and Microsoft Azure
 
Big Data Analytics in the Cloud with Microsoft Azure
Big Data Analytics in the Cloud with Microsoft AzureBig Data Analytics in the Cloud with Microsoft Azure
Big Data Analytics in the Cloud with Microsoft Azure
 
Microsoft Azure Big Data Analytics
Microsoft Azure Big Data AnalyticsMicrosoft Azure Big Data Analytics
Microsoft Azure Big Data Analytics
 
VMware vSphere 5 seminar
VMware vSphere 5 seminarVMware vSphere 5 seminar
VMware vSphere 5 seminar
 
VMWARE VS MS-HYPER-V
VMWARE VS MS-HYPER-VVMWARE VS MS-HYPER-V
VMWARE VS MS-HYPER-V
 
Unleash the Power of Video Communication - Office 365 Video vs. Azure Media S...
Unleash the Power of Video Communication - Office 365 Video vs. Azure Media S...Unleash the Power of Video Communication - Office 365 Video vs. Azure Media S...
Unleash the Power of Video Communication - Office 365 Video vs. Azure Media S...
 
XenServer, Hyper-V, and ESXi - Architecture, API, and Coding
XenServer, Hyper-V, and ESXi -  Architecture, API, and CodingXenServer, Hyper-V, and ESXi -  Architecture, API, and Coding
XenServer, Hyper-V, and ESXi - Architecture, API, and Coding
 

Similar to Mts 2013 tomasz kopacz - windows 8, office 365, workflow manager, windows azure z odrobiną excela i outlooka - czyli jak budować aplikacje tak, by nie pisać za dużo kodu

Migracja I Integracja Bazy
Migracja I Integracja BazyMigracja I Integracja Bazy
Migracja I Integracja BazyPrzemysław ...
 
Poland- Smart Client Technology - MTS 2005
Poland- Smart Client Technology - MTS 2005Poland- Smart Client Technology - MTS 2005
Poland- Smart Client Technology - MTS 2005Tomasz Cieplak
 
Nowe Trendy W Projektowaniu Aplikacji Webowych
Nowe Trendy W Projektowaniu Aplikacji WebowychNowe Trendy W Projektowaniu Aplikacji Webowych
Nowe Trendy W Projektowaniu Aplikacji Webowych
Marcin Daczkowski
 
JSON, REST API
JSON, REST APIJSON, REST API
JSON, REST API
3camp
 
Tomasz Kopacz, Cloud computing na bazie Windows Azure
Tomasz Kopacz, Cloud computing na bazie Windows AzureTomasz Kopacz, Cloud computing na bazie Windows Azure
Tomasz Kopacz, Cloud computing na bazie Windows AzureWebhosting.pl
 
Cloud computing na bazie Windows Azure, Tomek Kopacz, Microsoft
Cloud computing na bazie Windows Azure, Tomek Kopacz, MicrosoftCloud computing na bazie Windows Azure, Tomek Kopacz, Microsoft
Cloud computing na bazie Windows Azure, Tomek Kopacz, MicrosoftBiznes 2.0
 
WF w zastosowaniach Web
WF w zastosowaniach WebWF w zastosowaniach Web
WF w zastosowaniach Web
Marcin Daczkowski
 
Zajecia4 progbiz
Zajecia4 progbizZajecia4 progbiz
Zajecia4 progbiz
TomaszWoniakowski1
 
Silverlight i PHP - jak budować interfejs nowoczesnych aplikacji internetowych?
Silverlight i PHP - jak budować interfejs nowoczesnych aplikacji internetowych?Silverlight i PHP - jak budować interfejs nowoczesnych aplikacji internetowych?
Silverlight i PHP - jak budować interfejs nowoczesnych aplikacji internetowych?
PHPCon Poland
 
PHP i Microsoft - kto się lubi, ten się czubi
PHP i Microsoft - kto się lubi, ten się czubiPHP i Microsoft - kto się lubi, ten się czubi
PHP i Microsoft - kto się lubi, ten się czubi
PHPCon Poland
 
Asynchroniczny PHP & komunikacja czasu rzeczywistego z wykorzystaniem websock...
Asynchroniczny PHP & komunikacja czasu rzeczywistego z wykorzystaniem websock...Asynchroniczny PHP & komunikacja czasu rzeczywistego z wykorzystaniem websock...
Asynchroniczny PHP & komunikacja czasu rzeczywistego z wykorzystaniem websock...
Polcode
 
Asynchroniczny PHP i komunikacja czasu rzeczywistego z wykorzystaniem websocketw
Asynchroniczny PHP i komunikacja czasu rzeczywistego z wykorzystaniem websocketwAsynchroniczny PHP i komunikacja czasu rzeczywistego z wykorzystaniem websocketw
Asynchroniczny PHP i komunikacja czasu rzeczywistego z wykorzystaniem websocketw
Luke Adamczewski
 
Jak przerobić monolityczną aplikację na architekturę mikro serwisów ?
Jak przerobić monolityczną aplikację na architekturę mikro serwisów ?Jak przerobić monolityczną aplikację na architekturę mikro serwisów ?
Jak przerobić monolityczną aplikację na architekturę mikro serwisów ?
Tomasz Lelek
 
Testowanie na 101 sposobów
Testowanie na 101 sposobówTestowanie na 101 sposobów
Testowanie na 101 sposobów
Katarzyna Javaheri-Szpak
 
REST API - teoria i praktyka - WordUp Trójmiasto
REST API - teoria i praktyka - WordUp TrójmiastoREST API - teoria i praktyka - WordUp Trójmiasto
REST API - teoria i praktyka - WordUp Trójmiasto
Tomasz Dziuda
 
"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać
"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać
"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać
Bartosz Ratajczyk
 
Budowa poprawnego i intuicyjnego api REST HATEOAS devfest@2013
Budowa poprawnego i intuicyjnego api REST HATEOAS devfest@2013Budowa poprawnego i intuicyjnego api REST HATEOAS devfest@2013
Budowa poprawnego i intuicyjnego api REST HATEOAS devfest@2013
Mateusz Stępniak
 

Similar to Mts 2013 tomasz kopacz - windows 8, office 365, workflow manager, windows azure z odrobiną excela i outlooka - czyli jak budować aplikacje tak, by nie pisać za dużo kodu (20)

Migracja I Integracja Bazy
Migracja I Integracja BazyMigracja I Integracja Bazy
Migracja I Integracja Bazy
 
Poland- Smart Client Technology - MTS 2005
Poland- Smart Client Technology - MTS 2005Poland- Smart Client Technology - MTS 2005
Poland- Smart Client Technology - MTS 2005
 
Nowe Trendy W Projektowaniu Aplikacji Webowych
Nowe Trendy W Projektowaniu Aplikacji WebowychNowe Trendy W Projektowaniu Aplikacji Webowych
Nowe Trendy W Projektowaniu Aplikacji Webowych
 
JSON, REST API
JSON, REST APIJSON, REST API
JSON, REST API
 
Tomasz Kopacz, Cloud computing na bazie Windows Azure
Tomasz Kopacz, Cloud computing na bazie Windows AzureTomasz Kopacz, Cloud computing na bazie Windows Azure
Tomasz Kopacz, Cloud computing na bazie Windows Azure
 
Cloud computing na bazie Windows Azure, Tomek Kopacz, Microsoft
Cloud computing na bazie Windows Azure, Tomek Kopacz, MicrosoftCloud computing na bazie Windows Azure, Tomek Kopacz, Microsoft
Cloud computing na bazie Windows Azure, Tomek Kopacz, Microsoft
 
WF w zastosowaniach Web
WF w zastosowaniach WebWF w zastosowaniach Web
WF w zastosowaniach Web
 
Zajecia4 progbiz
Zajecia4 progbizZajecia4 progbiz
Zajecia4 progbiz
 
Silverlight i PHP
Silverlight i PHPSilverlight i PHP
Silverlight i PHP
 
Silverlight i PHP - jak budować interfejs nowoczesnych aplikacji internetowych?
Silverlight i PHP - jak budować interfejs nowoczesnych aplikacji internetowych?Silverlight i PHP - jak budować interfejs nowoczesnych aplikacji internetowych?
Silverlight i PHP - jak budować interfejs nowoczesnych aplikacji internetowych?
 
PHP i microsoft
PHP i microsoftPHP i microsoft
PHP i microsoft
 
PHP i Microsoft - kto się lubi, ten się czubi
PHP i Microsoft - kto się lubi, ten się czubiPHP i Microsoft - kto się lubi, ten się czubi
PHP i Microsoft - kto się lubi, ten się czubi
 
Php i Microsoft
Php i MicrosoftPhp i Microsoft
Php i Microsoft
 
Asynchroniczny PHP & komunikacja czasu rzeczywistego z wykorzystaniem websock...
Asynchroniczny PHP & komunikacja czasu rzeczywistego z wykorzystaniem websock...Asynchroniczny PHP & komunikacja czasu rzeczywistego z wykorzystaniem websock...
Asynchroniczny PHP & komunikacja czasu rzeczywistego z wykorzystaniem websock...
 
Asynchroniczny PHP i komunikacja czasu rzeczywistego z wykorzystaniem websocketw
Asynchroniczny PHP i komunikacja czasu rzeczywistego z wykorzystaniem websocketwAsynchroniczny PHP i komunikacja czasu rzeczywistego z wykorzystaniem websocketw
Asynchroniczny PHP i komunikacja czasu rzeczywistego z wykorzystaniem websocketw
 
Jak przerobić monolityczną aplikację na architekturę mikro serwisów ?
Jak przerobić monolityczną aplikację na architekturę mikro serwisów ?Jak przerobić monolityczną aplikację na architekturę mikro serwisów ?
Jak przerobić monolityczną aplikację na architekturę mikro serwisów ?
 
Testowanie na 101 sposobów
Testowanie na 101 sposobówTestowanie na 101 sposobów
Testowanie na 101 sposobów
 
REST API - teoria i praktyka - WordUp Trójmiasto
REST API - teoria i praktyka - WordUp TrójmiastoREST API - teoria i praktyka - WordUp Trójmiasto
REST API - teoria i praktyka - WordUp Trójmiasto
 
"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać
"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać
"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać
 
Budowa poprawnego i intuicyjnego api REST HATEOAS devfest@2013
Budowa poprawnego i intuicyjnego api REST HATEOAS devfest@2013Budowa poprawnego i intuicyjnego api REST HATEOAS devfest@2013
Budowa poprawnego i intuicyjnego api REST HATEOAS devfest@2013
 

More from Tomasz Kopacz

Azure Digital Twins.pdf
Azure Digital Twins.pdfAzure Digital Twins.pdf
Azure Digital Twins.pdf
Tomasz Kopacz
 
24032022 Zero Trust for Developers Pub.pdf
24032022 Zero Trust for Developers Pub.pdf24032022 Zero Trust for Developers Pub.pdf
24032022 Zero Trust for Developers Pub.pdf
Tomasz Kopacz
 
O danych w 2016
O danych w 2016O danych w 2016
O danych w 2016
Tomasz Kopacz
 
Net core (dawniej 5.0) – co to dla mnie. też dużo o open source
Net core (dawniej   5.0) – co to dla mnie. też dużo o open sourceNet core (dawniej   5.0) – co to dla mnie. też dużo o open source
Net core (dawniej 5.0) – co to dla mnie. też dużo o open source
Tomasz Kopacz
 
Visual Studio – jak zorganizować pracę używając Scrum i GIT?
Visual Studio – jak zorganizować pracę używając Scrum i GIT?Visual Studio – jak zorganizować pracę używając Scrum i GIT?
Visual Studio – jak zorganizować pracę używając Scrum i GIT?
Tomasz Kopacz
 
Visual Studio - zastosowania
Visual Studio - zastosowaniaVisual Studio - zastosowania
Visual Studio - zastosowania
Tomasz Kopacz
 
Kiedy napadnie na nas pralka – jak budować bezpieczne systemy internet of thi...
Kiedy napadnie na nas pralka – jak budować bezpieczne systemy internet of thi...Kiedy napadnie na nas pralka – jak budować bezpieczne systemy internet of thi...
Kiedy napadnie na nas pralka – jak budować bezpieczne systemy internet of thi...
Tomasz Kopacz
 
Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...
Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...
Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...Tomasz Kopacz
 

More from Tomasz Kopacz (8)

Azure Digital Twins.pdf
Azure Digital Twins.pdfAzure Digital Twins.pdf
Azure Digital Twins.pdf
 
24032022 Zero Trust for Developers Pub.pdf
24032022 Zero Trust for Developers Pub.pdf24032022 Zero Trust for Developers Pub.pdf
24032022 Zero Trust for Developers Pub.pdf
 
O danych w 2016
O danych w 2016O danych w 2016
O danych w 2016
 
Net core (dawniej 5.0) – co to dla mnie. też dużo o open source
Net core (dawniej   5.0) – co to dla mnie. też dużo o open sourceNet core (dawniej   5.0) – co to dla mnie. też dużo o open source
Net core (dawniej 5.0) – co to dla mnie. też dużo o open source
 
Visual Studio – jak zorganizować pracę używając Scrum i GIT?
Visual Studio – jak zorganizować pracę używając Scrum i GIT?Visual Studio – jak zorganizować pracę używając Scrum i GIT?
Visual Studio – jak zorganizować pracę używając Scrum i GIT?
 
Visual Studio - zastosowania
Visual Studio - zastosowaniaVisual Studio - zastosowania
Visual Studio - zastosowania
 
Kiedy napadnie na nas pralka – jak budować bezpieczne systemy internet of thi...
Kiedy napadnie na nas pralka – jak budować bezpieczne systemy internet of thi...Kiedy napadnie na nas pralka – jak budować bezpieczne systemy internet of thi...
Kiedy napadnie na nas pralka – jak budować bezpieczne systemy internet of thi...
 
Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...
Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...
Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...
 

Mts 2013 tomasz kopacz - windows 8, office 365, workflow manager, windows azure z odrobiną excela i outlooka - czyli jak budować aplikacje tak, by nie pisać za dużo kodu

  • 1.
  • 2. Uwaga organizacyjna Visual Studio ma literki duże, ale…. Sugestia: zapraszam bliżej!
  • 3. Windows 8, Office 365, Workflow Manager, Windows Azure z odrobiną Excela i Outlooka - czyli jak budować aplikacje tak, by nie pisać za dużo kodu Tomasz Kopacz Architekt, Microsoft
  • 4. Cel sesji  Oszczędność czasu przy pisaniu aplikacji  Nie opis „jednego” rozwiązania   To znaczy – będzie jedno, ale WIRTUALNE z różnymi kawałkami  Ps.  Rozważania W8 = Rozważania WP8  Z konieczności nie schodzimy do bardzo dużych szczegółów
  • 5. Plan prezentacji  Obszary  Usługi (generalnie)  Dane - podkategoria     Autoryzacja Usługi (cz II) - Usługi w Azure Workflow Powiadamianie  Założenia odnośnie wiedzy słuchaczy:  Ogólne obycie w technologii Microsoft i programowaniu .NET
  • 6. Co będzie używane?  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, głównie  SQL Server (może być z AlwaysOn, ale – to dobrze znane)  Windows Server AppFabric / Workflow Manager (lepiej na oddzielnej maszynie); dokładniej 3 – failover  Cloud Services – background processing i frontend + przepis na skalowanie  Dołączone 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 użytkownika  Windows 8 – specjalizowana aplikacja
  • 8. Opcje usług (realne)  WebAPI  Oparte o REST  Ściśle związane 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 własny stos komunikacyjny)  Może mieć binding REST  Automat WCF Data Services  Ostatnia duża aktualizacja – 4.0  4.5 – tooling, WebSocket
  • 9. Z czego składa się R E S T  Klienta, który inicjuje połączenie do serwera  Serwera, obsługującego żądanie i zwracający określony wynik  Zasób, czyli coś, na czym usługa pracuje. Może to być obiekt, domena biznesowa, encja w bazie, workflow, …  Reprezentacja, czyli dokument opisujący stan zasobu (URI, ciało POST itp.).
  • 10. Co to to REST GET POST http://a/cust/5 Zwraca klienta o id = 5 http://a/prod/ Zwraca produkt o id=6 6 http://a/cust Zwraca kolekcję klientów (zwykle stronicowanie) http://a/cust/1 Dodaje klienta o id =1 (w ciele POST) i danej wartości Idemp? GET Znaczenie Bezp? URI Opis GET Zwraca reprezentację danego zasobu. Nie powinna być wykonywana żadna inna czynność POST Wysyła dane do przetworzenia Dane są zawarte w ciele żądania (jak w przypadku formularzy HTML) Tak PUT Modyfikuje zasób wgrywając nowe dane. Każde kolejne wywołanie tego polecenia w identyczny sposób zmienia stan zasobu. Tak DELETE Usuwa dany zasób. Tak PUT http://a/cust/1 Aktualizuje klienta o id=1 DELETE http://a/cust/1 Kasuje klienta o id=1 PATCH Tak Modyfikuje część zasobu (dla porównania – PUT zastępuje cały). RFC 2789, 2010r; HEAD Pobiera elementy nagłówka. Metadane.
  • 11. WebAPI 1.0 config.Routes.MapHttpRoute( name: “TodosForTodoList", routeTemplate: "api/todolists/{id}/todos", defaults: new { controller = “todolists”, action = “GetTodos” } ); A potem: public IEnumerable<TodoItem> GetTodos() { … }
  • 12. WebAPI 2.0 config.MapHttpAttributeRoutes(); A potem: [HttpGet("api/todolists/{id}/todos")] public IEnumerable<TodoItem> 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) { … }
  • 13. (Dla porównania – w WCF) [OperationContract] [WebGet(UriTemplate=“/WeatherMap/{country}/{zipcode}”)] Stream GetWeatherMap(String country, String zipcode);
  • 14. DANE - Co to jest OData  Proste, przenośne i zrozumiałe dla każdego API do dostępu do danych  Zasób = Dane
  • 16. Jak to działa? GETJSON ~/Products(6) POST ~/Products JSON DELETE ~/Suppliers(5) ATOM OData API Metadane PUT ~/Suppliers(4) JSON HTTP GET ~/Products?$filter=Rating eq 3 GET ~/Categories(4)/Products  HTTP  Współpraca (urządzenia i platformy)  Metadane  Formaty (XML / JSON)  Semantyka REST (GET/PUT/POST/DELETE)  Konwersja URI i język zapytań
  • 17. 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<ODataResult>().Result; (JSON.NET w WinRT) var result = await client.GetAsync(new Uri("...")); var longString = await result.Content.ReadAsStringAsync(); ComplexNumberForView[] obj = await JsonConvert.DeserializeObjectAsync<ComplexNumberForView[]>(longString);
  • 18. Budowa OData  WebApi OData  Implementuje się usługi OData mówiąc co się dzieje  Budowa modelu, formatery, (JSON/XML), ścieżki i kwerendy, parsery, generatory LINQ,...  Więcej pracy, działa 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”  Pełny automat  Intercepcje  Własne polecenia  Pasuje OK albo nie używać  Wykorzystuje ODataLib  (na dziś – BARDZIEJ DOJRZAŁE!)  V5.6  Portable HTTP Client
  • 19. (v3) Przykłady 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 1 Jest formalny sposób ROZSZERZANIA kwerend
  • 20. Odata w Web API public class AddressController : EntitySetController<Models.Address,int> { Models.AdventureWorks2012Entities ent = new Models.AdventureWorks2012Entities(); public override IQueryable<Models.Address> 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; } }
  • 22. Blok: Autoryzacja (najtrudniejsze); też troszeczkę usług – ale prościutkich
  • 23. Autoryzacja?  Było prosto     Komputery w domenie Policy i uprawnienia dla użytkowników W pełni kontrolowany VPN / DA / … Komputery własnością pracodawcy!  Jest  Auć. Trend „Konsumeryzacja” Czyli: dowolne urządzenie w dowolnym miejscu przez dowolną sieć chce pracować z wrażliwymi informacjami….
  • 24. Podejście proste – „hasło”, certyfikat, …  Wszędzie: Własny IHttpModule  Dotyczy: potoku w IIS  WebApi: Własny ActionFilter  (WCF:UserNamePasswordValidator i inne – Common Security Scenarios)  (dowolny provider autoryzacji)
  • 27. OAuth  RFC 5849 - The OAuth 1.0 Protocol  RFC 6749 - The OAuth 2.0 Authorization Framework  OAuth to warstwa autoryzacyjna oddzielająca:  Resource owner (właściciel zasobu, daje token „tożsamości”)  Authorization server (dla tokenu tożsamości daje token dostępu)  Resource server (dla tokenu dostępu daje … to co ma dać)  Token JWT (System.IdentityModel.Tokens.Jwt)  Tak naprawdę wszystkie mechanizmy około OAuth bazują na jakimś tokenie  OAuth 2: Bearer + formalne odświeżanie dostępu  Walidacja i konwersja na claimy (takie „ciasteczko autoryzacyjne”, tylko claimowe)
  • 28. Przykład: 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  Przepływ tokenów 1. SharePoint pobiera token kontekstu ACS i przekazuje do aplikacji web 2. Aplikacja Web waliduje token kontekstu z ACS i dostaje z powrotem token dostępowy 3. Token dostępowy jest używany do komunikacji z SP
  • 29. Serwery OAuth 2.0 1. Własne (… ciekawe zadanie...)  Prosty serwer authz jako klasa we wzorcu Single Page Application w VS 2013  W przyszłości - Authz server w OWIN (patrz sesja Bartłomieja Zassa) 2. Istniejący <- lepiej  Windows Azure Active Directory  Active Directory Federation Services w Window Server 2012 R2  Live ID, (Facebook/twiter/…
  • 30. Windows Azure Active Directory Synonimy: WAAL AAL ADAL Biblioteka Active Directory Authentication Library Windows Runtime (WinRT) System Synchronizacja AAL for Windows Store .WINMD Aplikacja JS/HTML5 Windows Store App C# Windows Store App OS
  • 31. Windows Azure Authentication Library AuthenticationContext aCtx = new AuthenticationContext("https://login.windows.net/contoso.onmicrosoft.com"); AuthenticationResult result = await authorizationContext.AcquireTokenAsync("http://host.com/shipmentservice", clientID); Potem: var httpClient = new HttpClient(); httpClient.DefaultRequestHeaders.Add("Authorization", result.AccessToken); … httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", result.AccessToken);
  • 32. DEMO 02 Logowanie przez WiF WebAPI i (W)AAL
  • 34. App Endpoints w AAL i rejestracja klienta WiF
  • 35. A Windows 8? (stowarzyszone konto Microsoft = automatyczne OAuth w aplikacji) (Live SDK – de facto dostawca OAuth – jak (W)AA(D)L) Credential Locker Web Authentication Broker (Mobile Services)
  • 36. Credential Locker - Największa zaleta  API do bezpiecznego przechowywania tożsamości użytkownika  Pod spodem – Data Protection API  Izolacja  Roaming Desktop PC My Photo App Sky Drive (Microsoft Account) Tablet PC My Photo App
  • 37. Pomocniki – Web Authentication Broker  WinRT API do podłączania się do dostawców online, jak Facebook, Twitter przy wykorzystaniu protokołów takich jak OpenID czy OAuth  Single sign-on dzięki WebAuthBroker  Aplikacja musi się na to zgodzić (użyć API)
  • 38. Jak działa SSO https://contoso.com Contoso weryfikuje redirect URL dla appsa (MyPhotoApp zarejestrowane ms-app://S-1-54321) https://contoso.com?ContosoAppID=MyPhotoApp , redirectURI=ms-app://S-1-5-4321,… SID: S-1-5-4321 MyPhotoApp User Mode (App Container) Kernel Mode User Mode (Medium)
  • 39. DEMO 04 Credential Locker Web Authentication Broker (Pokazać Control Panel i gdzie te hasła siedzą…)
  • 40. Dygresja: inne spojrzenie CO użytkownik może zrobić z danymi w danej sytuacji / urządzeniu / sieci! Nie zabezpieczamy dostępu, ale to, Microsoft RMS SDK 3.0 for Windows Store
  • 41. Setup
  • 42. API     Zabezpiecza dokument w dowolnym formacie UI do logowania / wyboru polis Bazowe uprawnienia (Read, Edit, Share itp.) Intersujące klasy API:  ProtectedFileStream  CustomProtectedStream  ProtectionPolicyExtensions – zabezpiecza własne formaty
  • 43. DEMO 05 do dygresji RMSSampleApp
  • 45. Usługi w Azure Azure VM Cloud Services • Win/Linux/Oracle Web Logic/… • SLA: 99.9% (1VM) • Można Availability Set • Dowolny stos aplikacyjny • Skalowanie wymaga klonowania maszyn • Update po stronie klienta w 100% • Ostrzeżenia mailowe o planowanych restartach • Debugowanie:+++ • To co się zainstaluje na Win • .NET / PHP / Node.JS / Ruby / Python / Java • 99.95% / 99.5% (2VM) • Traffic Manager – wyższe • Debuggowanie: ++ Web Site • • • • HTTP / HTTPS REST / SOAP .NET / PHP / Node.JS Debuggowanie:+ Mobile Services • REST • Pisane w JavaScript • (expressJS z Node.JS) • Gdy potrzebny pojemnik na dane dla urządzeń mobilnych • Debuggowanie: – (auć)
  • 46. Dane
  • 47. Dane – jak i gdzie?  Oczywistość:  Azure Storage – binarne, rysunki, może NoSQL  SQL Database – to co ma relacje  Mobile Services – gdy ważna prostota  Office 365 – też pojemnik!  SkyDrive (Pro)  Yammer i inne – także  Lista Sharepoint!  Dygresja: Cassandra na Linux na IaaS, MongoDB, ….
  • 48. OData i „infrastruktura”  (Powód: każdy pojemnik wolniejszy niż RAM)  Cache  Po stronie usługi – Azure Cache Services  Dowolny server proxy po drodze  Cache-control, opcje: PUBLIC | PRIVATE | NO-CACHE | NO-STORE oraz max-age=3600  Pragma: no-cache ze strony klienta + cache control – że chce informację świeżą!  Klient  JavaScript / XML – zapisać, wczytać  Cache w słowniku wg parametrów wywołania itp.
  • 49. Demo 06 (Debuggowanie usług na Azure – też dotyczy profilowania / ETW) Praca z danymi – W8 i Odata Pokazać CACHE! Praca z danymi – W8 i Sharepoint Praca z OLAP – W8 + Rest + SQL Server Mobile Services – DANE i API, z autoryzacją i powiadamianiem
  • 51. Opcje Pytanie: JAKA CZĘŚĆ WORKFLOW PO STRONIE KLIENTA!  (Też: własny kod (.NET + SQL))  Workflow Foundation (SDK w .NET)  Motor realizujący procesy | Komunikacja: SOAP (WCF), REST  AppFabric – hostuje Workflow Foundation  Workflow Manager (SDK w .NET)  Zarządza przepływami + komunikacja przez Service Bus  Komunikacja z Service Bus – REST  Kolejki, tematy, subskrypcje na komunikaty o danych cechach (właściwościach)  Sharepoint 2013 / Office 365(produkt)  BizTalk Server 2013 (produkt) / (też w Azure VM (IaaS))
  • 52. AppFabric i Workflow Manager  Workflow Manager  Podstawa Workflow Foundation  Definicja procesu w XML / Graficznym designerze / dynamicznie w kodzie.  Diagram sekwencyjny, diagram stanu, Flowchart  Aktywności, zmienne, reguły, …  Trwałe procesy zapisywane do SQL  Komunikacja przez JEDNO Web Services  Service Bus rozdziela komunikaty  AppFabric  Podstawa Workflow Foundation  Definicja procesu w XML / Graficznym designerze / dynamicznie w kodzie.  Diagram sekwencyjny, diagram stanu, Flowchart  Aktywności, zmienne, reguły, …  Trwałe procesy zapisywane do SQL  Hostowanie plików XOML  Każdy z Workflow jest niezależną usługą
  • 53. Sharepoint  Wykorzystuje Workflow Foundation i Workflow Manager  Dodaje gotowy interfejs użytkownika  Biblioteka (lista) ->Workflow -> Zadania  Ps. Lista zadań może być też na Exchange – automatyczna synchronizacja z Outlook  Czasami nie trzeba nic programować!
  • 54. DEMO 07 W8 – klient + AppFabric Workflow (W8 klient) + Lista + Office 365 + Workflow Manager Office 365 – Workflow „klasyczny” Office 365 – Workflow z własnym XAML-em (no – XOML-em) Office 365 – Workflow z własnym kodem (przez zamachanie rękoma) Office 365 – Powiadamianie na zewnątrz o zmianach (przez zamachanie rękoma) – Remote Event Receiver
  • 55. Dane i Excel  Workflow, dane, postęp procesu - zawsze trzeba zrobić „ładny wykres”  Można pisać do tego aplikację  Ale, jak użyjemy OData, to  Power Query do Excela jest narzędziem pozwalającym podglądać stan / dane
  • 56. DEMO 08 – Excel i OData Excel jako klient do podglądania postępu prac
  • 58. Opcje - powiadamianie  Gdy działa aplikacja  WebSocket  (SignalR)  Service Bus(kolejka)  Gdy aplikacja nie działa  Control Channel Trigger – najmniejsze opóźnienia  Push Notification  Mobile Services | Notification Hub  Lync  Chat Facebook  Chat Yammer (to taki Facebook ale prywatny, też część darmo)  Jest jeszcze SMS!
  • 59. Azure Notification Hub  „High Scale” - pośrednik w dostarczaniu powiadomień  Windows 8 | Windows Phone  Apple | Google  Shared Access Key  Shared Access Policies  Szablony  Tagi  Zarządzanie rejestracjami
  • 61. Dygresja: A może CQRS + SMS?  Workflow | CQRS  Baza nie ma stanu „aktualnego”  Klient (mobilny) musi wiedzieć że coś zaszło  De facto – zapis do kolejki = wykonanie operacji (tylko kiedyś)  SMS-em potwierdzam – tak, zlecenie wykonanie  (np.) Twilio  SMS wiarygodny  VMS + Test to Speech  …
  • 62. Natychmiastowe powiadamianie W8  (Problem – aplikacja nie działa cały czas!)  Push Notification  „WNS does not guarantee the reliability or latency of a notification”  Co to znaczy: opóźnienia do 15 minut  Technicznie – teraz – do kilku sekund  Control Channel – reakcja na komunikat który przychodzi po TCP  Background Task który monitoruje kartę sieciową (Connected Standby)  I zmienia flagę / wysyła LOKALNIE powiadomienie że coś się zdarzyło!  (nic nie robi – bo nie ma jak)  Używane protokoły (StreamSocket, MessageWebSocket, StreamWebSocket)  HTTP (lepiej nie)  XHTTPRequest (AJAX)  WebSocket (najwygodniejsze)
  • 63. Demo 10 Demo - Video (przepraszam, tam jest trochę czekania)
  • 64.
  • 66. Dlaczego zadania w Outlook      Boo… siedzą tam inne zadania Outlook i tak najpopularniejszy klient pocztowy używany w biznesie. Taski, kalendarz, … Podstawa – Exchange Web Services Ps. Oczywiście zadania może też dodawać do Sharepoitnt  Link Sharepoint – Outlook  Strona My Task na Office365 z listą wszystkich zadań
  • 69. Mapa (słowna) – co do czego  Bezpieczeństwo = OAuth i pochodne  RMS – gdy zabezpieczamy ZASÓB a nie dostęp do zasobu  Dane – to nie tylko klasyczne pojemniki  Mobile Services, Yammer, Lista Sharepointa…  Usługi – raczej REST / ODATA – pytanie co to zasób!  Azure | Model Azure | Azure Pack  W8 – nie tylko klient. Też offline  Workflow – sporo gotowych rzeczy; trzeba tylko użyć  Powiadamianie – bardzo ważne  Nie zapominać o tym co używa użytkownik  Sharepoint = obieg dokumentów + środowisko pracy  Lync, Task w Exchange
  • 70. Wypełnij ankietę i wygraj nagrody! Organizatorzy MTS czytają wszystkie ankiety. Wystarczy 5 minut Twojego czasu na wypełnienie ankiety! Dzięki nim masz realny wpływ nakonferencję oraz merytorykę i prelegentów kolejnego MTS. Masz szansę wygrać m.in. wejściówkę na MTS 2013 (25x) oraz inne nagrody. Gdzie i jak?  Ankiety dostępne są online – na stronie konferencji (konferencjamts.pl)  Można je wypełnić od dziś, aż do 11 listopada 2012
  • 71. © 2013 Microsoft Corporation. Wszelkie prawa zastrzeżone. Microsoft, Windows oraz inne nazwy produktów są lub mogą być znakami towarowymi lub zastrzeżonymi znakami towarowymi firmy Microsoft w Stanach Zjednoczonych i innych krajach. Zamieszczone informacje mają charakter wyłącznie informacyjny. FIRMA MICROSOFT NIE UDZIELA ŻADNYCH GWARANCJI (WYRAŻONYCH WPROST LUB DOMYŚLNIE), W TYM TAKŻE USTAWOWEJ RĘKOJMI ZA WADY FIZYCZNE I PRAWNE, CO DO INFORMACJI ZAWARTYCH W TEJ PREZENTACJI.