© Zühlke 2013
© Zühlke 2013
Professionelle Desktop- und App-Entwicklung
12.04.2013Meister werden – Training Stufe 1Schlieren
© Zühlke 2013
Agenda
Agenda
Intro 13:30 – 13:35 5’Einführung 13:35 – 13:45 10’Teil 1 13:45 – 14:30 45’Pause 14:30 – 14:45 15’ Teil 2 14:45 – 15:45 60’Pause 15:45 – 16:00 15’Teil 3 16:00 – 16:45 45’ Meister-Tools 16:45 – 16:55 10’Outro & Apéro 16:55 – 18:00 65’
© Zühlke 2013
Nur wer fragt wird Meister seines
Fachs!
Sensei
© Zühlke 2013
© Zühlke 2013
Einführung
© Zühlke 2013
Übersicht Trainings
Stufe 3Professionelle Integration von Entwicklung und Betrieb und Architekturanalyse
IntellitraceWeb- und PerformancetestingAutomatisches Deployment
Stufe 2Agile Entwicklung und Qualitätssteigerung
Statische CodeanalyseTestfunktionen mit CodecoverageAufbau von Virtuellen Testumgebungen
Stufe 1Professionelle Desktop- und App-Entwicklung
Application Lifecycle ManagementAutomatische UnittestsTeam Foundation Server
© Zühlke 2013
Typische Herausforderungen
Heterogene Platform-Umgebungen (Web-, Phone-, Tablet- und Line-of-Business-Applications)Jede Technologie (.Net, Java, C++) mit eigenen Tools und dadurch fehlender zentraler Sicht.
Schreiben von (Unit-)Tests ist aufwendig Testing-Framework kann nicht integriert werden Code-Guidelines können nicht überprüft werden
Keine Struktur in den Arbeitsprozessen der Entwickler (IDE)
Challenge 1
Challenge 3
Challenge 2
© Zühlke 2013
Konkrete LösungenREQUIREMENTS
PRODUCTBACKLOG
OPSBACKLOG
MonitorImplement
WORKING SOFTWARE
Integration Unit-Testing Frameworks in Visual Studio
2
Schnelles Ausführen und Verwalten aller Unittest im Test Explorer
2
Statische Code Analyse erhöht die Qualität
2
1
Visual Studio als einheitliches Tool für alle Plattformen
1
Integration von Technologien mit Team Explorer Everywhere und “git tf”
Zentrale Source Code Verwaltung und transpartent Projektverwaltung (Arbeitspakete)
3
© Zühlke 2013
1. AktEine App muss her!
© Zühlke 2013
Kein Erfolg ohne Mobilität!
2010 2011 2012 2013 2014 2015 20160
200
400
600
800
1000
1200
1400
1600
PCs MobilgeräteQuelle: IDC/Nielsen 2012
Mill
ionen
verk
au
fte G
erä
te
© Zühlke 2013
Vier Fragen eines Sensei
Kosten senkenTime to MarketRisikominimierungVerteilte Teams
© Zühlke 2013
Kürzlich nach den CRM.DAYS:«Eine mobile App für Windows Phone muss her!»
© Zühlke 2013
Ausgangslage
Firma MEGA CRMEntwicklungsabteilung Zürich Schweiz Neue Entwicklungsabteilung San Francisco USAKundenverwaltung (Desktop Anwendung)
Business Layer (.NET)
Kundenverwaltung
Kundendaten
MEGACRM
© Zühlke 2013
User Interface Mockup
© Zühlke 2013
Wie kriegen wir das hin?
© Zühlke 2013
WP8 Mega CRM: The Big Picture
Azure CloudREST Service
MEGACRM
© Zühlke 2013
Was brauchen wir?
Entwicklungsumgebung Application Lifecycle ManagementHosting
© Zühlke 2013
Probleme
Beschaffung neuer Server problematisch Hardware für Server Backup Unterhalt der Server VerfügbarkeitTime to marketKostenVerteiltes Team
Die Lizenzen machen nur einen
kleinen Teil der Kosten von Software
aus
© Zühlke 2013
Lösung
Entwicklungsumgebung Visual Studio 2012Application Lifecycle Management Team Foundation ServiceHosting Windows Azure
© Zühlke 2013
Visual Studio 2012
IDE (Integrated Development Environment) von MicrosoftEntwicklung von Konsolen Applikationen Web Applikationen Web Sites Web Service Windows Desktop Applikationen Windows Phone Applikationen Windows Store Applikationen
9 Versionen seit 1995
© Zühlke 2013
Visual Studio 2012
Code EditorIntelliSenceRefactoringDebuggerDesigner (GUI, Web, Database, …)Source Control PluginProgrammiersprachen (C, C++, VB.NET, C#, F#, M, Phyton, Ruby, XML, XSLT, HTML, JavaScript, CSS, …)Emulatoren (Windows 8, Windows Phone 8)Erweiterbar…
© Zühlke 2013
Demo: MegaCRM in Visual Studio 2012
© Zühlke 2013
Mega CRM Lösung
Entwicklungsumgebung Visual Studio 2012Application Lifecycle Management Team Foundation ServiceHosting Windows Azure
© Zühlke 2013
Team Foundation Service
© Zühlke 2013
ÜbersichtREQUIREMENTS
PRODUCTBACKLOG
OPSBACKLOG
MonitorImplement
WORKING SOFTWARE
Product Owner
Developer
Operation
PriorisierenDefinieren
ImplementierenTesten Überwachen
Defekte erfassen
CR erfassen
Deployen
© Zühlke 2013
Vorteile Team Foundation Service
Gratis für bis zu 5 EntwicklerZero maintenance costsAutomatische UpgradesVon überall zugreifbar Hohe VerfügbarkeitAutomatisches BackupSchnelles Aufsetzen
© Zühlke 2013
Nachteile Team Foundation Service
Keine Prozess Template AnpassungLimitiertes ReportingVon Microsoft ausserhalb der Schweiz gehostedNoch nicht gleicher Funktionsumfang wie Team Foundation Server
© Zühlke 2013
Demo: Erstellen des Projekts im TFS
© Zühlke 2013
Demo: Source Code in den TFS
© Zühlke 2013
Mega CRM Lösung
Entwicklungsumgebung Visual Studio 2012Application Lifecycle Management Team Foundation ServiceHosting Windows Azure
© Zühlke 2013
Windows Azure
Windows Azure (kurz Azure) ist die Microsofts CloudFeatures
Websites PaaS für alle Arte von WebSeitenVirtual Maschines IaaS Virtuelle Maschinen und NetzwerkeCloud Services PaaS für Applikationen und ServicesData Management PaaS SQL DatenbankMedia Services PaaS für Streamen und Encoden von Medien
© Zühlke 2013
Demo: Erstellen des Services auf Azure
© Zühlke 2013
Scrum Board updaten
© Zühlke 2013
WP8 Mega CRM: The Big Picture
Azure CloudREST Service
MEGACRM
© Zühlke 2013
Mega CRM Lösung
Entwicklungsumgebung Visual Studio 2012Application Lifecycle Management Team Foundation ServiceHosting Windows Azure
© Zühlke 2013
2. AktDas Windows Phone 8
© Zühlke 2013
Shared Windows Core
WinCE
OS
Shared Core
WP 7.x WP 8 Windows 8
Gleicher NT Kernel, Netzerk, Grafik, Filesystem, Security, ...Gleiches Driver Model für HardwareentwicklerAchtung: Nicht exakt gleiches API für App-Entwickler!
OS
Shared Core
© Zühlke 2013
Windows Phone 8 Architecture
Windows Core System
NTFS
Shared core
Networking Security NT Kernel
Mobile Core
Core CLR IE Trident Multimedia DirectX
Others…
Connection management…
Platform services
PackagemanagerExecutionmanage
rNavigationmanag
erResource manager
Windows Phone 8 System WP Shell
System applications
Frameworks
.NET API for WP WP Runtime API Win32 & COM
Application models
XAML Apps Direct3D Apps
© Zühlke 2013
Windows Phone 8 API
.NET API for Windows Phone
Windows Phone Runtime Win32 & COM
Direct 3D Apps
C# / VB
XAML Apps
C# / VB / C++ C++
File system, Networking, Graphics, Media
Core Operating System
© Zühlke 2013
.NET API für Windows Phone
Seit Windows Phone 7Enthält alle Typen und APIs von Windows Phone 7.1 Alle neuen Typen für Windows Phone 8Managed Code (C#, VB)
.NET API for Windows Phone
XAML Maps HTML XML
Phone Features Push Calender Wallet
Multitasking Live Tiles
© Zühlke 2013
WinRT (11’000
members)Windows Phone Runtime
Windows Phone Runtime API
Ist ein subset der WinRT für Windows 8 + WP8 ZusätzeZugriff: Managed (C#, VB) und Native (C++)Implementiert in C++ Language Projection für C#, VB.NET, C++
WP8 subset(2’800)
New WP Runtime(600)+
Sprache ErkennungWindows.Phone.PersonalInformationLockScreen & LockScreenmanager…
Windows Phone Runtime
Geolocation Sensors In-App
Purchase Threading Touch Speech
Camera Video Proximity Contracts Core Types VoIP
Memory Async Enterprise Core App Model
File System Access
Store
© Zühlke 2013
.NET API for Windows Phone oderWindows Phone Runtime?
Die beiden APIs haben überschneidende Funktionalitäten
Managed Code Entwickler können auswählen:Windows Phone 7/8: .NET APIWindows Phone 8 und Windows 8: Windows Phone Runtime
.NET API Windows Phone Runtime API
System.IO.IsolatedStorage Windows.Storage
System.NET.Sockets Windows.Networking.Sockets
Microsoft.Devices.Sensors Windows.Devices.Sensor… …
und oder
?
.NET API for
Windows Phone
Windows Phone
Runtime
© Zühlke 2013
Win32 und COM API
Native (C++)API WinSock, low level networking Audio API High PerformanceHauptsächlich für native Entwickler
Win32COM
Direct3D XAudio2
Media Foundatio
nSTL
CRT
© Zühlke 2013
In diesem Workshop:XAML UI mit C#
XAML
C#
UI mit XAMLLogik mit C#
.NET API for Windows Phone
Windows Phone Runtime
© Zühlke 2013
Demo: Windows Phone 8 Hallo Welt
© Zühlke 2013
Was bietet Windows Phone 8?Tiles
Drei Tile templates Flip Iconic Cycle (bis 9 Images)
3 GrössenUpdate Foreground Background Push notification
© Zühlke 2013
Was bietet Windows Phone 8?Lock Screen
App kann als Lock Screen Provider registriert werden.Quick StatusBackground Image Provider
© Zühlke 2013
Was bietet Windows Phone 8?LaunchersMittels Launchers können wir allgemeine Aufgaben ausführen.
Photo machenKontakt hinzufügenEmail versendenRoute berechnenSMS versendenKalenderDownloadShareMedia (Sozialnetwork)…
© Zühlke 2013
Was bietet Windows Phone 8?Maps und Location Tracking
Map Control mit Nokia MapsVektor basiertVier Kartentypen Road Aerial Hybrid Terrain
API für Location Tracking (auch im Background)
© Zühlke 2013
Was bietet Windows Phone 8?Sprache
Sprache KommandosSprache ErkennungText-To-Speech API (Vorlesen)
© Zühlke 2013
Was bietet Windows Phone 8?3 Auflösungen
© Zühlke 2013
Was bietet Windows Phone 8?…
API für VoIP und Video ChatBluetooth und NFCWallet (Kredit-, Member-, Eintritts-Karten)KameraPictureMusic SD Card (read)File und Protocol AssoziationenIn-App VerkaufLokalisation und Globalization (50 Sprachen)
© Zühlke 2013
Windows Phone EmulatorDer Emulator läuft als Hyper-V- Virtual Machine auf dem PCEnthält die gleiche Software wie das echte WP8Features Location Simulation Kamera Simulation Orientation Simulation Netzwerk Simulation Capture Screenshot
Achtung: Nur für funktional Testing verwenden
© Zühlke 2013
Demo: Windows Phone Emulator
© Zühlke 2013
WP8 Mega CRM: The Big Picture
Azure CloudREST Service
MEGACRM
© Zühlke 2013
MegaCRM: Kundenliste darstellen
© Zühlke 2013
WP8 Mega CRM: The Big Picture
Azure CloudREST Service
MEGACRM
© Zühlke 2013
Page basierte Navigation Analog zu Webseiten Jede Page wird durch URI identifiziert Jede Page ist Stateless
Navigation
private void HyperlinkButtonClicked(object sender, RoutedEventArgs e){ NavigationService.Navigate(new Uri("/DetailPage.xaml", UriKind.Relative));}
© Zühlke 2013
Applikation kann Controls zum Zurücknavigieren bereitstellen
Jedes Phone hat einen Hardware Back Button
Navigation – Seite zurück
private void BackButtonClicked(object sender, RoutedEventArgs e){ NavigationService.GoBack();}
© Zühlke 2013
Daten können als Query String Parameter übergeben werden
Auf der Zielseite
Navigation – Daten übergeben
private void _customerList_OnSelectionChanged(object sender, SelectionChangedEventArgs e){ var customerViewModel = customerList.SelectedItem as CustomerViewModel; NavigationService.Navigate(new Uri("/CustomerDetailPage.xaml?ID=" + customerViewModel.Id, UriKind.Relative));}
protected override void OnNavigatedTo(NavigationEventArgs e){ base.OnNavigatedTo(e); var customerId = string.Empty; if (NavigationContext.QueryString.TryGetValue("ID", out customerId)) ...}
© Zühlke 2013
MegaCRM: Navigation auf Detailseite
© Zühlke 2013
System Tray Systembereich für Status Informationen
Apps können System Tray ausblenden
Application Bar Bis zu 4 Buttons für häufige Befehle Popup Menü für weitere Befehle
Application BarSystem Tray
Application Bar
© Zühlke 2013
Weisse App Bar Icons mit transparentem Hintergrund
werden vom System automatisch richtig
eingefärbt.
Sensei-Tipp – Application Bar
© Zühlke 2013
MegaCRM: Application Bar
© Zühlke 2013
Sie müssen ein registrierter Entwickler sein ($99.- pro Jahr) Gratis für Studenten mit DreamSpark accountDas Windows Phone muss registriert sein. Windows Phone Developer RegistrationDeploy to Phone
Deployment to Phone
© Zühlke 2013
Company Hub als Enterprise Store
Deployment for Enterprises
© Zühlke 2013
WP8 Mega CRM: The Big Picture
Azure CloudREST Service
MEGACRM
© Zühlke 2013
3. AktDie Qualität muss verbessert werden!
© Zühlke 2013
Der Qualitäsbeauftragte«Die Qualität muss verbessert werden!»
© Zühlke 2013
Unit Testing in VS 2012
Red-Green Bar
Most important
tests shown first
Timings
Shows tests from any
framework
Search
Run Details
© Zühlke 2013
Unit Testing - Architecture
Visual Studio Unit Test Explorer
Command Line Runner
TeamBuild Unit Test Activity
Visual Studio Unit Test Platform
MS-Test Manage
d
MS-Test Native
NUnitxUnit.ne
tQUnit MORE!
© Zühlke 2013
MegaCRM: Unit Tests
© Zühlke 2013
Automatisierte Builds mit TFS
Build in the cloudContinuous Integration BuildsAutomatisches Ausführen von Tests
Leider noch keine WP8 TestsAutomatisches Deployment auf Azure
© Zühlke 2013
MegaCRM: CI Build in the Cloud
© Zühlke 2013
Code Analyse
VS Code AnalysisAuch FxCop genanntIn Visual Studio integriertStatische Code AnalyseAnalysiert Assemblies
StyleCopNicht in Visual Studio integriertAnalysiert C# Source CodeÜberprüft Code Formatierung
© Zühlke 2013
MegaCRM: Code Analyse
© Zühlke 2013
WP8 Mega CRM: The Big Picture
Azure CloudREST ServiceMEG
ACRM
© Zühlke 2013
Zusammenfassung
© Zühlke 2013
Zusammenfassung
Source Build Plan TestCollabora
teService
Team Foundation Service Azure
© Zühlke 2013
Vier Fragen eines Sensei
Kosten senkenTime to MarketRisikominimierungVerteilte Teams
© Zühlke 2013
Kosten senken
Visual Studio 2012 Hohe Qualität durch Unit Test, Code AnalyseTeam Foundation Service Keine Betriebskosten
Hohe Verfügbarkeit Automatisches Backup, Upgrades Keine Lizenzkosten
Gratis für bis zu 5 EntwicklerAzure Nur bezahlen was man braucht
© Zühlke 2013
Time To Market
Visual Studio 2012 Schnell auf Veränderungen reagierenTeam Foundation Service Priorisieren Klarer ArbeitsprozessAzure Elastische Verfügbarkeit
© Zühlke 2013
Risikominimierung
Visual Studio Schnelle Entwicklung Schneller Feedback Keine Heterogene Umgebung Keine Experimente oder Workarounds
Team Foundation Service Durch Transparenz Übersicht behalten Nur das Entwickeln was man brauchtAzure Nicht ein Rechenzentrum aufbauen das gar nicht gebraucht wird.
© Zühlke 2013
Verteilte Teams
Visual Studio 2012 Qualität sicherstellen durch Code Review, Code AnalyseTeam Foundation Service Collaborate, Build, TestAzure Einfaches Anfordern von neuen Ressourcen Portal ist für jeden im Team zugänglich
© Zühlke 2013
Mit Visual Studio 2012 hat man eine
Allzweckwaffe, welche einem in
jedem Kampf unterstützt.
Sensei
© Zühlke 2013
Meister-Tools
© Zühlke 2013
Mission-critical scale and complexity IntelliTrace Anywhere Web Performance Testing Load Testing Architecture Explorer, Progressive
Reveal, and Standard Graphs UML 2.0 Compliant Diagrams
(Activity, Use Case, Sequence, Class, Component)
Layer Diagram and Dependency Validation
Ultimate
Microsoft
Expression Studio 4Ultimate
Quality enabled team development Code Metrics Code Coverage Coded UI Testing Code Clone Code Review Task
Suspend/Resume
Continuous quality enablement
Test Case Management Manual Testing
and Fast-Forward Exploratory Testing Lab Management PowerPoint Storyboarding Backlog Management Sprint Planning Feedback Manager
Premium Test Professional
Microsoft
Expression Studio 4Web Professional
Integrated teams continuous value delivery
Project Management
Work Item Tracking SCM
Reporting Build Services PreEmptive Analytics
Agile Task Boards System Center
IntegrationTeam Foundation Server
Development productivity everywhere
Windows Desktop and Phone Apps
Windows 8 Metro Style Apps Web and Cloud Websites and
Services Office and SharePoint
Development Blend for Visual Studio LightSwitch Extensible Testing Framework Static Code Analysis Advanced Profiling Refactoring Graphics Debugging Third-Party Extensibility Read-Only Diagrams Team Explorer
Professional
© Zühlke 2013
Was braucht’s für Stufe 1?
InvestitionenFür den aufgezeigten Produktivitätsgewinn braucht’s:
Bsp.: 4 Developer, 1 Projektleiterca. 70 CHF pro Dev/Monat*ca. 36 CHF pro PL/Monat*
$$Stufe 1Professionelle Desktop- und App-Entwicklung
Application Lifecycle ManagementAutomatische UnittestsTeam Foundation Server
DevtoolsDie gezeigten Beispiele setzen folgende Lizenzen voraus
Visual Studio Professional w/MSDNTeam Foundation Server CAL
* unverbindliches Preisbeispiel
© Zühlke 2013
Softwarebeschaffung/-ComplianceSoftwarebeschaffung
Zahlreiche Lizenzprogramme und LizenzierungsformenJe nach Anforderungen und Rahmenbedingungen des Unternehmens
LizenzberatungLassen Sie sich durch den Fachhändler beraten!Beste Lösung für Sie für den günstigsten Preis…… und Sicherstellung der korrekten Lizenzierung
http://www.microsoft.com/de-ch/visualstudio/buy
© Zühlke 2013
Ihre MSDN Vorteile
Software Assurance für Visual StudioImmer die neuesten Werkzeuge und Technologien verwenden könnenImmer korrekt, legal und günstig lizenziert bleiben
Fast alle Microsoft Produkte für Test- und EntwicklungszweckeTeam Foundation Server 2012Alle gängigen Windows-Betriebssysteme, z.B. Windows 8, Windows Server 2012SQL Server (und alle weiteren Server ab Premium)Office, Visio und Project (ab Premium)Expression Studio (ab Premium)Azure-Serverzeit für Cloud Computing
Downgrade-Rechte für ältere Versionen von Visual Studio
Profi-Support & Trainingsinhalte
msdn
© Zühlke 2013
MSDN: Schon ab einer Lizenz mehr
Leistung für weniger Geld!
Sensei-Tipp
© Zühlke 2013
Sparen Sie bis zu 30%!
Premium UpgradeGültig für Kunden von Visual Studio Professional mit MSDN-AbonnementBis zu 30 % sparen beim Upgrade auf Visual Studio PremiumWeltweit gültig bis zum 30. Juni 2013Über verschiedene Volumenlizenzprogramme erhältlich: Enterprise Agreement, EAP, Select Plus, Open Value und Open Value SubscriptionKontaktieren Sie Ihren Software-/Handelspartner für Ihr individuelles Angebot (Stichwort: „SA Step Up“)
Professional
Premium
© Zühlke 2013
Ihre Kontakte
Für weitere Fragen stehen wir Ihnen jederzeit gerne zur Verfügung.
Hansjörg SchererTechnical Solution Professional Developer Tools
[email protected]: +41 (0)78 844 64 30
Microsoft SchweizRichtistrasse 3CH-8304 Wallisellen
Corinna SameliSolution Sales Specialist Developer Tools
[email protected]: +41 (0)78 844 60 24
Microsoft SchweizRichtistrasse 3CH-8304 Wallisellen
© Zühlke 2013
Outro
© Zühlke 2013
© Zühlke 2013
Über uns
Romano RothLead Software ArchitectSeit 2002 bei ZühlkeClient-Architekturen Product Owner (PO) im Rollenspielromano.roth (at) zuehlke.com
Stefan ZügerSoftware EngineerSeit 2010 bei ZühlkeClient-EntwicklungEntwickler (Dev) im Rollenspielstefan.zueger (at) zuehlke.com
© Zühlke 2013
Was können wir für Sie tun?
@romanoroth@stefanzueger
Oder
Top Related