590 likes | 802 Views
. Smartere Devices mit Visual Studio 2008 und dem .NET Compact Framework 3.5. Dr. Frank Prengel Embedded Evangelist Microsoft Deutschland GmbH. DEVICES. Agenda. Markt & Infrastruktur Deviceentwicklung & Microsoft: Was bisher passierte Visual Studio 2008 for Devices Wermutstropfen
E N D
Smartere Devices mit Visual Studio 2008 und dem .NET Compact Framework 3.5 Dr. Frank Prengel Embedded Evangelist Microsoft Deutschland GmbH DEVICES
Agenda • Markt & Infrastruktur • Deviceentwicklung & Microsoft: Was bisher passierte • Visual Studio 2008 for Devices • Wermutstropfen • Neue Möglichkeiten • .NET Compact Framework 3.5 • SQL Server Compact Edition 3.5
Wussten Sie schon…? The world champion record is held by Mikko Lampi. He threw 94,97 metres in 2005.
34.1%ConvergedMobile Phones 18.6%Mobile PCs 5.8%Mobile Phones 3.9%Desktop PCs Mobile Lösungen im Trend 35 30 25 20 15 10 5 0 YOY % shipping growth 2006-2010 SOURCE: Gartner Dataquest, and IDC 2006
Der Werkzeugkasten Managed &Native! Desktop Parity, Designers, Data Device Emulator 1.0 &2.0* .NET CF Framework 1.0 &2.0 Microsoft Windows CE 5.0 &6.0 Smartphone &Pocket PC 2003, Windows Mobile 5.0* Windows Mobile 6* SQL Server 2005 Mobile Nur Native Windows CE 4.x, 5.0 Smartphone &PPC 2003 x86 Emulator Native &Managed Device Emulator 3.0 Security Aware IDE / Unit Testing Windows CE 5.0 and CE 6.0 Windows Mobile 2003 Smartphone** &Pocket PC (**Nur Native) Windows Mobile 5.0 Smartphone Windows Mobile 5.0 Pocket PC Windows Mobile 6Professional* Windows Mobile 6 Standard* .NET Compact Framework 2.0 &3.5 SQL Server Compact Edition 3.5 Nur Managed Windows CE 4.2 .NET Compact Framework 1.0 Smartphone &Pocket PC 2003 eVB, eVC Windows CE 3.0 * separater Download
Vorweg: Wermutstropfen … oder: Entdecke die Unmöglichkeiten • Device-Entwicklung mit VS 2008 erst ab Professional Edition
Vorweg: Wermutstropfen … oder: Entdecke die Unmöglichkeiten • Kein Hosting von Platform Builder 6.0 für Windows Embedded CE 6.0
Vorweg: Wermutstropfen … oder: Entdecke die Unmöglichkeiten • Keine Templates & Designer für ASP.NET Mobile Web Sites
Unit Testing for Devices • Unit-Test-Unterstützung für NETCF-Anwendungen • Gleiche "Experience" wie bei Desktop-Anwendungen • Nahtlose Integration mit Team System und Team Foundation Server • Einfaches Testen für diverse Konfigurationsszenarien • Unterstützt Testausführung von der Kommandozeile
Testausführung • … auf verschiedenen Geräten oder Emulatoren möglich durch Editieren der Konfiguration
Testausführung: Was läuft? • Hostadapter für Smart Devices klinkt sich in die Hostadapter-Architektur der Testing-Tools ein • Kopiert (binäre) Dateien auf Device/Emulator • Startet SmartDeviceTestHost.exe auf dem Device/Emulator – Tests werden ausgeführt und Resultate an VS auf dem Desktop kommuniziert • Am Schluss werden Log-Dateien zurückkopiert
Was geht nicht? • Nicht unterstützt sind • Code Coverage • Performance Session
{Device Testing } Demo
Erinnerung: Gerätesicherheit • "Security through identity" • Zertifikate: X.509 identifiziert den Hersteller • Mobile2Market • Privilegien: unsigned, unprivileged, privileged • Ausführung: normal, trusted • Start: normal, User Prompt, verhindert • Konfigurationen: • One-Tier Pocket PC • Two-Tier Smartphone
Certificate Application Authentication Certificate Stores Security configuration User prompt Permission(Privileged/Normal/Blocked)
Gerätesicherheitsmanagement • Konfiguration der Gerätesicherheit (Device Configuration Manager) • Sicherheitsrichtlinien überprüfen und setzen • Sicherheitseinstellungen exportieren • Eigene Sicherheitsrichtlinien erstellen • Zertifikatsverwaltung auf dem Gerät (Device Certificate Manager) • Zertifikate einsehen • Zertifikate hinzufügen oder entfernen
{Geräteverwaltung } Demo
Managed CoreCon Framework • Basiert auf existierendem Core Connectivity Framework • Wird intern von MS-eigenen Tools verwendet (z.B. Unit Testing) • Macht das Erstellen eigener Remote-Tools leicht • Referenz hinzufügen auf: • Microsoft.Smartdevice.Connectivity.dll
Device Emulator 3.0 • Verfügbar mit Visual Studio 2008 • Evolutionäre Weiterentwicklung von Version 2.0 • Verbesserungen • Unterstützung für Automatisierung (COM) • Zugriff auf Interfaces über VBScript • Einfaches Hinzufügen eigener Images im Device Emulator Manager • XML-File zur Konfiguration von Emulator-Instanzen
Versionen und Schwerpunkte • .NET für Devices • Performance • Features • Tools • Verteilte Anwendungen • Mobile Daten 2002 2003 2004 2005 2006 2007 XNA 1.0 SP1 1.0 1.0 SP2 1.0 SP3 2.0 2.0 SP1 2.0 SP2 3.5 • Windows Communication Foundation • Language Integrated Query • CLR Profiler • Smartphone • Landscape • Autoscroll • Performance • Generics • COM Interop • Direct3D • Headless • Windows CE 4.2 • Remote Performance Monitor
.NET Compact Framework 3.5 • WCF "Light" • incl. Store-And-Forward Channel • LINQ (XML, Objekte, DataSet) • Neues Tool: CLR Profiler • Kompression • Client-Side-Zertifikate • Sound API • Diverse Verbesserungen & Fixes
NETCF + verteilte Anwendungen • Kommunikation für Online-/Offline-Situationen einfacher implementieren • Server soll Kommunikation mit Geräten initiieren • Anwendungen sollen von Gerät zu Gerät kommunizieren können (P2P) • WCF für die mobile Welt
WCF im NETCF 3.5 Desktop (>10 MB) Device (< 1 MB) Endpoints, Contracts, Config files, etc… Messages, Bindings, Transports
WCF im NETCF 3.5: Features Protocol Encoding Security Reliability Transport Text WS-* HTTP WS-* WS-* Text WS-* HTTP Exchange Custom Custom Custom Custom Custom MTOM TCP Binary Pipes MSMQ http://blogs.msdn.com/andrewarnottms/archive/2007/08/21/The-WCF-subset-supported-by-NetCF.aspx
"Occasional Connectivity"Grundproblem mobiler Anwendungen • Adresse und Identität • IP-Adresse des Mobilgeräts kann wechseln und (serverseitig) nicht erkannt werden • Dynamic DNS und IPv6 noch nicht universell verfügbar • TCP/HTTP nur zum "Herausrufen" vom Gerät aus • Echtes P2P nicht machbar • QoS (intermittente Verbindungen) • Anwendungen müssen explizit Offline-Status voraussetzen • Benötigt wird eine Möglichkeit, Nachrichten aufzubewahren und erst bei Verbindung zu versenden ("store and forward")
Store And Forward Messaging • "WCF über Email" • Email-Infrastruktur löst Adressierbarkeits- und Erreichbarkeitsprobleme • Konsistentes Programmiermodell für Windows Mobile und Windows auf PCs • Nutzt Erweiterbarkeit der WCF-Architektur • Spezieller "store-and-forward"-Transportkanal über Email • Nutzt ActiveSync “Always-Up-To-Date”-Funktion ("Push Email") und Exchange 2007 Web Services
Scheme Channel Name Separator Distribution list Adressschema Application 3 Application 1 john@microsoft.com Application 4 Application 2 net.mail://sales/orderschannel#service@company.com
{Store & Forward } Demo
{Store & Forward } Demo http://blogs.msdn.com/frankpr http://www.techfiles.de/frankpr/WCFCompact.wmv
LINQ im NETCF 3.5 • Kompatible Teilmenge der Funktionalität im .NET Framework 3.5 • LINQ to Objects • LINQ to XML • LINQ to DataSet, DataTable • Nicht verfügbar: • LINQ to SQL • Expression Trees
LINQ to Objects BURKE DAVID FRANK using System; using System.Linq; using System.Collections.Generic; class app { static void Main() { string[] names = { "Burke", "Connor", "Frank", "Everett", "Albert", "George", "Harris", "David" }; IEnumerable<string> expr = from s in names wheres.Length == 5 orderby s selects.ToUpper(); foreach (string item in expr) Console.WriteLine(item); } }
XML: Vor LINQ (d.h. DOM) XmlDocument doc = new XmlDocument(); XmlElement books = doc.CreateElement("Books"); XmlElement book = doc.CreateElement("Book"); XmlElement title = doc.CreateElement("Title"); XmlElement price = doc.CreateElement("Price"); doc.AppendChild(books); books.AppendChild(book); book.AppendChild(title); book.AppendChild(price); title.AppendChild( doc.CreateTextNode("Short DOM reference, vol.5")); price.AppendChild(doc.CreateTextNode("99.95")); doc.Save(“MyBooks.xml”); <Books> <Book> <Title>Short DOM reference, vol.5</Title> <Price>99.95</Price> </Book> </Books>
LINQ to XML XDocument doc = new XDocument( new XElement("Books", new XElement("Book", new XElement("Title", "What to do in spare time freed up from XML programming."), new XElement("Price", "19.95") ) ) ) doc.Save(“MyBooks.xml”); <Books> <Book> <Title>What to do in spare time freed up from XML programming.</Title> <Price>19.95</Price> </Book> </Books>
Neue APIs • Sie haben sich gewünscht: • Kompression • Client-Side-Zertifikate • Sound • Windows Forms-Verbesserungen • Plattform-Identifikation
Bsp.: Plattform-ID using Microsoft.WindowsCE.Forms; … textBox1.Text = SystemSettings.Platform.ToString();
NETCF 3.5 Power Toys • Remote Performance Monitor, GC Heap Viewer (Update) • NETCF CLR Profiler • App Configuration Tool (NetCFcfg.exe) • NETCF ServiceModel Metadata Tool (netcfsvcutil.exe) • Remote Logging Configuration Tool • NETCF Network Log Viewer
{Power Toys } Demo
Funktionserweiterungen nach Kundenfeedback ‘01 ‘03 ‘05 ‘06 ‘07 • Synchronisierung mitSync Services for ADO.NET SQL Server Compact 3.5 SQL Server Compact 3.1 • Alle Desktop-Szenarien möglich SQL Server Mobile 3.0 • Tablet PC-Unterstützung • Interne Verwendung in Windows: Vista * SQL Server CE 2.0 • .NET Compact Framework unterstützt SQL Server CE 1.0 • Embedded-DB für Devices – eVC, eVB
Neu in SSCE 3.5 • Neues Dateiformat • Konvertierung notwendig • VS2008 / SQL2008 Mgmt Studio als Tool • PK/FK-Auswahl im Table Designer • timestamp (rowversion)-Datentyp • Neue T-SQL-Statements • Stärkere Verschlüsselung • (Nur für Desktop: LINQ to SQL, Sync Services)