200 likes | 295 Views
Workshop 6 (ws6C) native Entwicklung für mobile Geräte. Lektion 2: Service. Unser Plan. 18.2 (Romano) Einführung , « Mega CRM», Aufsetzen 25.2 (Romano) Einführung in Windows Phone 8 Entwicklung 04.3 (Romano) Umsetzung « Mega CRM» mit Windows Phone 8
E N D
Workshop 6 (ws6C) native Entwicklung für mobile Geräte Lektion 2: Service
Unser Plan • 18.2 (Romano) Einführung, «Mega CRM», Aufsetzen • 25.2 (Romano) Einführung in Windows Phone 8 Entwicklung • 04.3 (Romano) Umsetzung «Mega CRM» mit Windows Phone 8 • 11.3 (Oliver) Einführung in Mono Entwicklung • 18.3 (Oliver) Umsetzung «Mega CRM» mit MonoTouch • 25.3 (Oliver) Umsetzung «Mega CRM» mit MonoDroid • 01.4 Kein Workshop (Ostern) • 08.4 (Michael) Einführung in iOS Entwicklung • 15.4 (Michael) Umsetzung «Mega CRM» mit iOS • 22.4 (Michael) Umsetzung «Mega CRM» mit iOS Workshop 6 (ws6C) native Entwicklung für mobile Geräte | Romano Roth
Lektion 2 • Der REST Service • Ab damit in die die Cloud • Retrospective (5’) • Was war gut? • Was kann verbessert werden? Workshop 6 (ws6C) native Entwicklung für mobile Geräte | Romano Roth
Big Picture AzureCloud REST Service Workshop 6 (ws6C) native Entwicklung für mobile Geräte | Romano Roth
REST Representational State Transfer • REST stammt aus der Dissertation von Roy Fielding aus dem Jahre 2000 • REST ist ein Architekturstiel • SOAP ist ein implementationsdetail einer RPC Architektur • Prinzipien • Adressierbarkeit Eindeutige URI • Unterschiedliche Repräsentationenz.B. HTML, JSON oder XML • Zustandslosigkeit • Operationen GET, POST, PUT und DELETE • Verwendung von HypermediaLinks auf weitere Resourcen Workshop 6 (ws6C) native Entwicklung für mobile Geräte | Romano Roth
MEGA CRM REST Service • <Customer> • <AssistantName>String</AssistantName> • <Birthday>DateTime</Birthday> • <City>String</City> • <Company>String</Company> • <Country>String</Country> • <Department>String</Department> • <Email>String</Email> • <FaxNumber>String</FaxNumber> • <FirstName>String</FirstName> • <Id>Integer</Id> • <Image>Byte</Image> • <LastName>String</LastName> • <ManagersName>String</ManagersName> • <Margin>Integer</Margin> • <MiddleName>String</MiddleName> • <MobileNumber>String</MobileNumber> • <Nickname>String</Nickname> • <Office>String</Office> • <PhoneNumber>String</PhoneNumber> • <PostalCode>String</PostalCode> • <Profession>String</Profession> • <Sales>Integer</Sales> • <State>String</State> • <Street>String</Street> • <Title>String</Title> • <WebPage>String</WebPage> • </Customer • GET • /customer • Liste aller Kunden • /customer/{id} • Kunde mit id=={id} • POST • /customer • Erstelle den Kunden • PUT • /customer • Ersetze den Kunden • Erstelle den Kunden • DELETE • /customer/{id} • Lösche den Kunden Workshop 6 (ws6C) native Entwicklung für mobile Geräte | Romano Roth
Service Stack • REST Web Service Framework für .NET und Mono • Web Services doneright, REST Service done easy ;-) Workshop 6 (ws6C) native Entwicklung für mobile Geräte | Romano Roth
Cloud • Eine Cloud verwendet man um Rechenkapazität, Datenspeicher, Netzwerkkapazitäten und Software dynamisch über das Netz zur Verfügung zu stellen. • IaaS – Infrastructure as a Service – Cloud bietet virtualisierte Computerhardware (Rechenzenter). • PaaS – Platform as a Service – Cloud bieten Laufzeitumgebungen (Service Provider) • SaaS – Software as a Service –Anwendungsprogrammen in der Cloud. (Software bei Bedarf) Workshop 6 (ws6C) native Entwicklung für mobile Geräte | Romano Roth
Windows Azure • Windows Azure (kurz Azure) ist die Microsofts Cloud • Features • Websites • PaaS für alle Arte von WebSeiten • Virtual maschines • IaaS Virtuelle Maschinen und Netzwerke • Cloud Services • PaaS für Applikationen und Services • Data Management • PaaSSQL Datenbank • Media Services • PaaS für streamen und encoden von Medien Workshop 6 (ws6C) native Entwicklung für mobile Geräte | Romano Roth
Windows Azure • Datencenter • North America • North-central US - Chicago, IL • South-central US - San Antonio, TX • West US - California • East US – Virginia • Asia • East Asia - Hong Kong, China • South East Asia – Singapore • Europe • West Europe - Amsterdam, Netherlands • North Europe - Dublin, Ireland Workshop 6 (ws6C) native Entwicklung für mobile Geräte | Romano Roth
Walktrough - Azure • Erstellen des Windows Azure Account • http://www.windowsazure.com • Klicke auf Free Trial und folge den Schritten • Klicke Windows Azure Homee Account Preview Features • Schalte das Web Sites Preview ein • Anleitung Workshop 6 (ws6C) native Entwicklung für mobile Geräte | Romano Roth
Walktrough – Setup Entwicklungsumgebung • Installiere Visual Studio 2010 oder 2012 • Installiere Windows Azure SDKAzure SDK VS 2012Azure SDK VS 2010 • Anleitung Workshop 6 (ws6C) native Entwicklung für mobile Geräte | Romano Roth
Walktrough – Erstellen einer Web Site • http://www.windowsazure.com • Portal • New Web Site Quick Create • Name: <NameOfWebSite> • Anleitung Workshop 6 (ws6C) native Entwicklung für mobile Geräte | Romano Roth
Walktrough – Deploy einer Web Site • Visual Studio • New Project • ASP.NET MVC 4 Web Application • http://www.windowsazure.com • Zu der erstellten Web Seite <NameOfWebSite> gehen und Download publishingprofile klicken • Visual Studio rechtsklick Solution Publish • Import des publishingprofiles von <NameOfWebSite> • Validate Connection Publish • Anleitung ASP.NET MVC 4 Workshop 6 (ws6C) native Entwicklung für mobile Geräte | Romano Roth
Walktrough – Deploydes Mega CRM Services • Download des Source Code 2013_02_18.zip • Öffnen der Solution • Build Clean Solution Rebuild Solution • Rechtsklick Service Properties UseLocal IIS Web Server «localhost:50722» durch Euren Rechnernamen ersetzen. Create Virtual Directory • Commons.Common «localhost:50722» durch Euren Rechnernamen ersetzen. • Rebuild All • Visual Studio rechtsklick Service Publish • Import des publishingprofiles von <NameOfWebSite> Workshop 6 (ws6C) native Entwicklung für mobile Geräte | Romano Roth
Mega CRM Service Workshop 6 (ws6C) native Entwicklung für mobile Geräte | Romano Roth
Mega CRM Service Workshop 6 (ws6C) native Entwicklung für mobile Geräte | Romano Roth
ZTG.Customer.Client.WPF *.Console MainWindow (View) Customer ViewModel Console MainWindowViewModel (ViewModel) *.Model *.Common Customer Common MainWindowUiService (Model) ZTG.Customer.Service CustomerService ZTG.Customer.DataAccess CustomerDataAccess Workshop 6 (ws6C) native Entwicklung für mobile Geräte | Romano Roth
Der Code • Service • DataAccess • Achtung: Daten sind in Memory reset nach neustart / redeploy • TestDataGenerator • Model • Common • WPF Client • Console Client Workshop 6 (ws6C) native Entwicklung für mobile Geräte | Romano Roth
Retrospective • Was war gut? • Was kann verbessert werden? Workshop 6 (ws6C) native Entwicklung für mobile Geräte | Romano Roth