Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft...

71
Neue Mobilität Neue Mobilität Frank Prengel Frank Prengel Developer Evangelist Developer Evangelist Developer Platform & Strategy Group Developer Platform & Strategy Group Microsoft Deutschland GmbH Microsoft Deutschland GmbH http://blogs.msdn.com/frankpr http://blogs.msdn.com/frankpr http://www.frankpr.de http://www.frankpr.de .NET Compact Framework 2.0 & .NET Compact Framework 2.0 & SQL Server 2005 Mobile Edition SQL Server 2005 Mobile Edition

Transcript of Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft...

Page 1: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

Neue MobilitätNeue Mobilität

Frank PrengelFrank PrengelDeveloper EvangelistDeveloper EvangelistDeveloper Platform & Strategy GroupDeveloper Platform & Strategy GroupMicrosoft Deutschland GmbHMicrosoft Deutschland GmbHhttp://blogs.msdn.com/frankprhttp://blogs.msdn.com/frankprhttp://www.frankpr.dehttp://www.frankpr.de

.NET Compact Framework 2.0 & .NET Compact Framework 2.0 & SQL Server 2005 Mobile EditionSQL Server 2005 Mobile Edition

Page 2: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

AgendaAgenda

IntroIntro

.NET Compact Framework 1.0 + SQLCE 2.0.NET Compact Framework 1.0 + SQLCE 2.0Was geht?Was geht?

Was geht nicht?Was geht nicht?

WorkaroundsWorkarounds

.NET Compact Framework 2.0 + SQL Mobile.NET Compact Framework 2.0 + SQL MobileWas ist neu?Was ist neu?

Future Windows MobileFuture Windows MobileManaged APIsManaged APIs

Page 3: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .
Page 4: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

Sie können gewinnen!Sie können gewinnen!

Page 5: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

IntroIntro

Windows Mobile?Windows Mobile?

Phone Edition?Phone Edition?

Smartphone?Smartphone?

Pocket PC?Pocket PC?

Windows CE?Windows CE?Second Edition?Second Edition?

Page 6: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .
Page 7: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

.NET Compact Framework 1.0.NET Compact Framework 1.0

SystemSystem

System.DataSystem.Data System.XmlSystem.Xml

System.WebSystem.Web

GlobalizationGlobalization

TextText

SecuritySecurity

CollectionsCollections

ResourcesResources

ReflectionReflection

NetNet

IOIO

ThreadingThreading

DiagnosticsDiagnostics

ADO.NETADO.NET

SqlServerCeSqlServerCe

SqlClientSqlClient XmlDocumentXmlDocument

commoncommon languagelanguageruntimeruntime

InteropServicesInteropServicesRemotingRemotingSerializationSerialization

SecuritySecurity

ServicesServicesDescriptionDescription

DiscoveryDiscovery

ProtocolsProtocols System.DrawingSystem.Drawing

Drawing2DDrawing2D

TextText

ServiceProcessServiceProcess

ConfigurationConfiguration

DesignDesign Xslt/XPathXslt/XPath

SerializationSerialization

ConfigurationConfiguration SessionStateSessionState

CachingCaching

UIUIHtmlControlsHtmlControls

WebControlsWebControls

ImagingImaging

PrintingPrinting

System.WinFormsSystem.WinForms

DesignDesign ComponentModelComponentModel

Reader/WritersReader/Writers

verfügbarverfügbarnichtnicht unterstütztunterstützt

Page 8: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

Entwicklung mit dem CFEntwicklung mit dem CF

Code

SOAP

Webservices

Visual Studio.NETVisual Studio.NET

.NET Compact Framework"Desktop-Version"

.NET Compact Framework"Desktop-Version"

Entwicklermaschine Endgerät

WindowsWindows

.NET CompactFramework

.NET CompactFramework

Device OSDevice OS

Smart Device ExtensionsSmart Device Extensions

Page 9: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

Unterstützte APIsUnterstützte APIs

Common Base ClassesCommon Base ClassesIO, Collections, Reflection, math. Funktionen, IO, Collections, Reflection, math. Funktionen, Zeichnen, TextZeichnen, Text

ConnectivityConnectivityNetworking, HTTP-Klassen, Aufrufen von Networking, HTTP-Klassen, Aufrufen von Web ServicesWeb Services

DatenzugriffDatenzugriffADO.NET, SQL Server CE, SQL ServerADO.NET, SQL Server CE, SQL Server

XMLXMLXmlDocument, XmlReader/WriterXmlDocument, XmlReader/Writer

Windows FormsWindows FormsCustom ControlsCustom Controls

Page 10: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

DesktopDesktopDesktopDesktop

PPCPPCPPCPPC SPSPSPSPCF 2.0CF 2.0CF 2.0CF 2.0

Vergleich der VersionenVergleich der Versionen

Page 11: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

P/InvokeP/Invoke

Win32-Aufrufe als Ersatz für fehlende Win32-Aufrufe als Ersatz für fehlende FunktionalitätFunktionalität

Beschränkungen:Beschränkungen:Pass by value: nur Typen <= 32 Bit (auch Structs!)Pass by value: nur Typen <= 32 Bit (auch Structs!)

Pass by value: keine FloatsPass by value: keine Floats

kein explizites Struct-Layout (nur "Sequential")kein explizites Struct-Layout (nur "Sequential")

keine Strings oder Arrays in Structskeine Strings oder Arrays in Structs

keine Funktionszeiger keine Funktionszeiger keine Callbackskeine Callbacks

kein kein DateTimeDateTime

kein kein MarshalAsMarshalAs-Attribut-Attribut

Page 12: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

Pocket PC & SmartphonePocket PC & Smartphone

"out of the box" in VS.NET 2003: "out of the box" in VS.NET 2003: Pocket PC 2002Pocket PC 2002

DLLs, EmulatorDLLs, Emulator

kein Smartphone 2002!kein Smartphone 2002!

CF-Unterstützung zur .NET-Programmierung:CF-Unterstützung zur .NET-Programmierung:Pocket PC 2003 SDKPocket PC 2003 SDK

EmulatorenEmulatoren

Smartphone 2003 SDKSmartphone 2003 SDKDLLs, EmulatorenDLLs, Emulatoren

Page 13: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

Lutz Roeder's DiggerLutz Roeder's Digger

demo

Smartphone GamesSmartphone Games

Page 14: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

Was fehlt?Was fehlt?

Wichtige Controls & UI-FeaturesWichtige Controls & UI-Features

User ControlsUser Controls

Visual InheritanceVisual Inheritance

Security :-(Security :-(Code Access SecurityCode Access Security

KryptographieKryptographie

Typisierte DataSetsTypisierte DataSetsVorsicht bei Verwendung von WebservicesVorsicht bei Verwendung von Webservices

Komfortable Tools für Daten & SQLCEKomfortable Tools für Daten & SQLCE

WSE, Application Building Blocks, ...WSE, Application Building Blocks, ...

Page 15: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

Was fehlt noch? Was fehlt noch?

ASP.NETASP.NET

COM InteropCOM Interop

XSLT, XPathXSLT, XPath

RemotingRemoting

Serialisierung (SOAP, binary)Serialisierung (SOAP, binary)

Install-time JIT (nGen)Install-time JIT (nGen)

Managed POOM, Telephonie etc.Managed POOM, Telephonie etc.

Page 16: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

““Inherited does not mean Inherited does not mean supported.supported.””

– – Seth Demsey, Seth Demsey, .NET Compact Framework Team, .NET Compact Framework Team, Microsoft CorporationMicrosoft Corporation

... oder: Warum ... oder: Warum bleibt mein Button bleibt mein Button grau?grau?

Page 17: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

Was tun?Was tun?

Page 18: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

Tip: OpenNETCFTip: OpenNETCF

Page 19: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

Web ServicesWeb ServicesCOM Interop & Inking mit CFCOMCOM Interop & Inking mit CFCOMVisual Inheritance "Light"Visual Inheritance "Light"

demo

PocketRKPocketRK

Page 20: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .
Page 21: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

SQL Server CE 2.0SQL Server CE 2.0

kompakte relationale Datenbank (< 2 MB)kompakte relationale Datenbank (< 2 MB)

SQL-Syntax (kompat. mit SQL Server 2000)SQL-Syntax (kompat. mit SQL Server 2000)

hohe Performance durch Query Optimizerhohe Performance durch Query Optimizer

unterstützt Replikation & Synchronisationunterstützt Replikation & Synchronisation

128-Bit-Verschlüsselung der DB128-Bit-Verschlüsselung der DB

Zugriff per ADO.NET, ADOCE, OLEDBCEZugriff per ADO.NET, ADOCE, OLEDBCE

unterstützt Transaktionenunterstützt Transaktionen

Mgmt. Tool (ISQLW) auf dem GerätMgmt. Tool (ISQLW) auf dem Gerät

Page 22: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

SQLCE & ADO.NETSQLCE & ADO.NET

Zugriff vom CFZugriff vom CFSystem.Data.SqlServerCeSystem.Data.SqlServerCe

SqlCeEngine, SqlCeConnection, SqlCeCommand, ...SqlCeEngine, SqlCeConnection, SqlCeCommand, ...

SqlCeDataReader, SqlCeDataAdapterSqlCeDataReader, SqlCeDataAdapter

Referenzieren von SqlServerCe Referenzieren von SqlServerCe Deployment von Deployment von SQLCE auf Gerät oder EmulatorSQLCE auf Gerät oder Emulator

public void CreateDatabase() { if (!File.Exists(@”\My Documents\My Data.sdf”)) {

string connStr = @“Data Source=\My Documents\My Data.sdf” ; SqlCeEngine engine = new SqlCeEngine(connStr);

engine.CreateDatabase(); }}

Page 23: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

Datenabgleich (1)Datenabgleich (1)

muß Besonderheiten mobiler Anwendungen muß Besonderheiten mobiler Anwendungen berücksichtigenberücksichtigen

FirewallsFirewalls

Netzwerk"aussetzer"Netzwerk"aussetzer"

unauffällig im Hintergrundunauffällig im Hintergrund

zwei Möglichkeiten:zwei Möglichkeiten:Remote Data Access (RDA)Remote Data Access (RDA)

Merge ReplicationMerge Replication

Page 24: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

Datenabgleich (2)Datenabgleich (2)ArchitekturArchitektur

SQL CEServerAgent

SQL ServerOLE DBProvider

SQL 2000Database

InternetInformationServer (IIS)

HTTP

Application

SQL CE Client Agent

Database

SQL CE Engine

OL

E D

B

OLE DB

Page 25: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

Remote Data AccessRemote Data Access

lose Kopplung SQLCE lose Kopplung SQLCE SQL Server SQL Serverkeine "Verbindung", sondern HTTPkeine "Verbindung", sondern HTTP

Query-Resultate lokal gespeichertQuery-Resultate lokal gespeichertÄnderungen können zurückgeschrieben werdenÄnderungen können zurückgeschrieben werden

Zugang im CF: Zugang im CF: SqlCeRemoteDataAccessSqlCeRemoteDataAccess

RDA PullRDA Pull: lokale Tabelle aus Servertabelle : lokale Tabelle aus Servertabelle oder Stored Procedureoder Stored Procedure

RDA PushRDA Push: lokale Änderungen zurück an den : lokale Änderungen zurück an den ServerServer

Table Tracking muß eingeschaltet seinTable Tracking muß eingeschaltet sein

Page 26: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

RDA Pull/PushRDA Pull/Pushpublic void RDAPull(){ SqlCeRemoteDataAccess rda = new SqlCeRemoteDataAccess();

string ServerOledbStr = “Provider=sqloledb; Data Source=dataserver;”+ “Initial Catalog=Pubs;User Id=sa;Password=;”;

rda.LocalConnectionString = @”Provider=Microsoft.SQLSERVER.OLEDB.CE.2.0;” + @”Data Source=\My Documents\test.sdf”;

rda.InternetURL = @“http://www.dataserver.com/sqlce/sscesa20.dll”;

rda.InternetLogin = “MyDomain\someuser”;

rda.InternetPassword = “HaRd2GuEsS!$*”;

rda.Pull( “Authors”, “Select * from authors where state = ‘CA’”, ServerOledbStr, RdaTrackOption.TrackingOn);}

public void RDAPush(){ SqlCeRemoteDataAccess rda = new SqlCeRemoteDataAccess();

string ServerOledbStr = “Provider=sqloledb; Data Source=dataserver;”+ “Initial Catalog=Pubs;User Id=sa;Password=;”;

rda.LocalConnectionString = @”Provider=Microsoft.SQLSERVER.OLEDB.CE.2.0;” + @”Data Source=\My Documents\test.sdf”;

rda.InternetURL = @“http://www.dataserver.com/sqlce/sscesa20.dll”;

rda.InternetLogin = “MyDomain\someuser”;

rda.InternetPassword = “HaRd2GuEsS!$*”;

rda.Push( “Authors”, ServerOledbStr, RdaBatchOption.BatchingOn);}

Page 27: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

Merge ReplicationMerge Replication

DatenDatensynchronisationsynchronisation SQLCE SQLCE SQL Server SQL Serverüber HTTPüber HTTP

SQLCE erhält Snapshot vom ServerSQLCE erhält Snapshot vom Server

Änderung auf beiden Seiten möglichÄnderung auf beiden Seiten möglich

Abgleich beim nächsten SynchronisierenAbgleich beim nächsten Synchronisieren

anpaßbare Konfliktbehandlunganpaßbare Konfliktbehandlung

Server agiert als Subscription PublisherServer agiert als Subscription Publisherzusätzliche Serverlast & Ressourcen!zusätzliche Serverlast & Ressourcen!

Verwendung im CF: Verwendung im CF: SqlCeReplicationSqlCeReplication

Page 28: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

RDA oder Merge Replication?RDA oder Merge Replication?

RDA ist "kostengünstiger"RDA ist "kostengünstiger"benutzen, wenn begrenzte Funktionalität ausreichtbenutzen, wenn begrenzte Funktionalität ausreicht

Merge Replication bietet "Komplettlösung"Merge Replication bietet "Komplettlösung"aber: belastet Server & Netzwerk mehraber: belastet Server & Netzwerk mehr

Page 29: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

TrafficTraffic

demo

SQLCE & RDASQLCE & RDA

Page 30: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

Probleme mit SQLCE 2.0Probleme mit SQLCE 2.0

Single-User/-Proc DBSingle-User/-Proc DB

keine Mgmt.-Tools für den Desktopkeine Mgmt.-Tools für den Desktop

keine Trigger, Stored Procedureskeine Trigger, Stored Procedures

nur eine Subscription pro DB (Merge Repl.)nur eine Subscription pro DB (Merge Repl.)

DB wächst unbegrenzt DB wächst unbegrenzt SqlCeEngine.CompactSqlCeEngine.Compact

DataReader oder DataSetDataReader oder DataSetkein scrollable Cursorkein scrollable Cursor

keine Unterstützung für Smartphonekeine Unterstützung für Smartphone

Page 31: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

Fazit CF 1.0 & SQLCE 2.0Fazit CF 1.0 & SQLCE 2.0

vertraute .NET-Entwicklung für mobile Gerätevertraute .NET-Entwicklung für mobile Geräte

RAD, Webanbindung, kompakte DatenbankRAD, Webanbindung, kompakte Datenbank

viele Wünsche offen, aber...viele Wünsche offen, aber...

3rd Party-Apps & Community-Unterstützung3rd Party-Apps & Community-Unterstützung

Page 32: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

LiteraturLiteratur

Page 33: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

Tools, Infos & ProgrammeTools, Infos & Programmefür Windows Mobile Entwicklerfür Windows Mobile Entwickler

1.1. Machen Sie sich schlau im Machen Sie sich schlau im Windows Mobile Developer CenterWindows Mobile Developer Center::Im Developer Center finden Sie relevante Informationen aus Im Developer Center finden Sie relevante Informationen aus erster Hand: Entwicklungstools, Online Communities, erster Hand: Entwicklungstools, Online Communities, Webcasts, Technische Artikel, Downloads und vieles mehr.Webcasts, Technische Artikel, Downloads und vieles mehr.

2.2. Werden Sie Mitglied im Werden Sie Mitglied im Windows Mobile Solutions Partner Windows Mobile Solutions Partner Programm:Programm:Hier erhalten Developer Unterstützung bei der Entwicklung Hier erhalten Developer Unterstützung bei der Entwicklung und Vermarktung von Windows Mobile Lösungen.und Vermarktung von Windows Mobile Lösungen.

3.3. Zertifizieren Sie Ihre Anwendung über Zertifizieren Sie Ihre Anwendung über Mobile2MarketMobile2Market und erhalten ein Qualitätssiegel für Ihre Windows Mobile und erhalten ein Qualitätssiegel für Ihre Windows Mobile basierten Anwendungen.basierten Anwendungen.

http://www.microsoft.com/germany/ms/mobile/entwicklerhttp://www.microsoft.com/germany/ms/mobile/entwickler

Page 34: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

Neue WeltenNeue Welten

Page 35: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

Introducing...Introducing...

2.02.0

Page 36: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

AllgemeinesAllgemeines

näher am "vollen" .NET Framework näher am "vollen" .NET Framework neue Klassen, Protokolle, Funktionalitätneue Klassen, Protokolle, Funktionalität

Kompatibilität mit Version 1.0Kompatibilität mit Version 1.0SxS, <SxS, <supportedRuntime …/>supportedRuntime …/>

PerformancePerformanceneuer JIT-Compilerneuer JIT-Compiler

besseres Stringhandlingbesseres Stringhandling

Unterstützung der Whidbey-FeaturesUnterstützung der Whidbey-FeaturesGenerics, partielle Klassen, Iteratoren, anonyme Generics, partielle Klassen, Iteratoren, anonyme MethodenMethoden

.NETCF 1.0.NETCF 1.0(ROM)(ROM)

.NETCF 1.0.NETCF 1.0(ROM)(ROM)

.NETCF .NETCF 2.02.0

.NETCF .NETCF 2.02.0

Page 37: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

Windows.FormsWindows.Forms

Visual Inheritance (!)Visual Inheritance (!)

User Controls (!)User Controls (!)

BildschirmorientierungBildschirmorientierung

BildschirmauflösungBildschirmauflösung

ClipboardClipboard

Control.DoubleClick Control.DoubleClick DockingDocking

AnchoringAnchoring

Page 38: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

Neue ControlsNeue Controls

DateTimePickerDateTimePicker

MonthCalendarMonthCalendar

DocumentListDocumentList

LinkLabelLinkLabel

Notification BubbleNotification Bubble

HelpHelp

WebBrowserWebBrowser

DataContainerDataContainer

SplitterSplitter

RichInkRichInk

Page 39: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

Neue ControlsNeue ControlsNeue FeaturesNeue Features

demo

CF WinForms 2.0CF WinForms 2.0

Page 40: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

P/Invoke - NeuesP/Invoke - Neues

Strings & Arrays in StructsStrings & Arrays in Structs

Marshaling von Delegates als Marshaling von Delegates als FunktionszeigerFunktionszeiger

Attribut Attribut MarshalAsMarshalAs

explizites Struct-Layoutexplizites Struct-Layout

Floats und Floats und DateTimeDateTime

Typen > 32 Bit können by value übergeben Typen > 32 Bit können by value übergeben werdenwerden

Page 41: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

COM InteropCOM Interop

Managed Wrapper wird Managed Wrapper wird generiert (VS oder generiert (VS oder TLBIMP.EXE)TLBIMP.EXE)

Projekt verweist auf Projekt verweist auf WrapperWrapper

COM-Interfaces & -typen COM-Interfaces & -typen verwenden wie .NET-verwenden wie .NET-TypenTypen

COM Object

Your Code

COM Object

Native Wrapper

COM Call

Managed Wrapper

Application Code

P/Invoke

Version 1.0

Generated

COM Call

Application Code

Managed Call

.NET CF InteropLayer

ManagedInterfaces

COM Object

Version 2.0

Page 42: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

CF: COM aus .NET aufrufenCF: COM aus .NET aufrufen

Threads als MTA initialisiertThreads als MTA initialisiert

verantwortlich: verantwortlich: System.Runtime.InteropServicesSystem.Runtime.InteropServicesMarshalMarshal, , MarshalAsMarshalAs

keine Unterstützung für Custom Marshalerkeine Unterstützung für Custom Marshaler

IDispatch-EinschränkungenIDispatch-Einschränkungenkeine Structures (VT_RECORD)keine Structures (VT_RECORD)

keine Int64, UInt64keine Int64, UInt64

kein automatisches ActiveX-Control-Hostingkein automatisches ActiveX-Control-HostingInfrastruktur für eigene Wrapper vorhandenInfrastruktur für eigene Wrapper vorhanden

Page 43: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

POOMPOOM

demo

COM InteropCOM Interop

Page 44: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

Netzwerk & Web ServicesNetzwerk & Web Services

System.MessagingSystem.Messaging

Web Services Web Services Performancesteigerung durch Performancesteigerung durch schnelleren schnelleren XmlSerializerXmlSerializer

Unterstützung für SOAP 1.2Unterstützung für SOAP 1.2

CredentialCacheCredentialCache

verbesserte Authentifizierungverbesserte AuthentifizierungKerberos & NTLMKerberos & NTLM

IPv6IPv6

Page 45: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

WeiteresWeiteres

System.IO.Ports System.IO.Ports serieller Port serieller Port

System.Security.CryptographySystem.Security.Cryptography(Triple)DES, MD5, SHA1, DSA, RSA, Rijndael, ...(Triple)DES, MD5, SHA1, DSA, RSA, Rijndael, ...

X.509X.509

System.XmlSystem.XmlXPath 1.0XPath 1.0

SchemavalidierungSchemavalidierung

System.DrawingSystem.DrawingImage.Save(...), custom pensImage.Save(...), custom pens

Page 46: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

Smartphone-UnterstützungSmartphone-Unterstützung

DatenDatenSQL Mobile SQL Mobile

DataGridDataGrid

Textbox: Wechsel der Textbox: Wechsel der Eingabeart (abc, 123, T9, ...) Eingabeart (abc, 123, T9, ...) InputModeEditorInputModeEditor

linkes Menü unterstützt linkes Menü unterstützt mehrere Menüpunktemehrere Menüpunkte

Page 47: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

Visual Studio 2005Visual Studio 2005

IDE für CF-Entwicklung ab Standard EditionIDE für CF-Entwicklung ab Standard EditionCF nicht von Express Edition unterstütztCF nicht von Express Edition unterstützt

native (C++) Device-Programmierungnative (C++) Device-ProgrammierungErsatz für eMbedded VC++Ersatz für eMbedded VC++

MFC 8.0, ATL 8.0 (auch für Smartphone), STL, CRTMFC 8.0, ATL 8.0 (auch für Smartphone), STL, CRT

neue Forms-Designerneue Forms-Designer

neuer Emulatorneuer EmulatorSichern verschiedener ZuständeSichern verschiedener Zustände

Page 48: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

Windows Mobile DevelopmentWindows Mobile Development

DisplayDisplayUSB or SerialUSB or Serial

ProcessorProcessorMemoryMemory

GSM/GPRSGSM/GPRSCDMA/1xRTTCDMA/1xRTT

Device Device HardwareHardware

WiFiWiFiBluetoothBluetooth

RadioRadio

DriversDrivers

Windows MobileWindows Mobile CE DBCE DBActiveSyncActiveSyncSQL CESQL CE

Pocket OutlookPocket OutlookPocket Internet ExplorerPocket Internet ExplorerWindows Media PlayerWindows Media Player

Windows CEWindows CE

Software Platform (APIs)Software Platform (APIs)

Home ScreenHome ScreenUser Interface/ShellUser Interface/ShellHTML ControlHTML ControlDOMDOM

GAPIGAPICameraCameraD3DMD3DMLocation*Location*

Remote APIRemote APIConfiguration*Configuration*BluetoothBluetoothSecuritySecurityState & Notifi. *State & Notifi. *Pocket WatsonPocket Watson

Connection ManagerConnection Manager TAPI*TAPI*SMS* SMS* MAPI* MAPI* POOM*POOM*ActiveSyncActiveSync

MultimediaMultimediaCommunicatioCommunicationn

Device ManagementDevice Management PresentationPresentation

SQL CESQL CEADO CEADO CEXMLXMLCE DBCE DBOLE DBOLE DB

Data AccessData Access

NativeNative

Win32Win32

MFCMFC ATLATL

ManagedManaged

.NET Compact.NET CompactFramework 2.0Framework 2.0

Server sideServer side

ASP .NETASP .NETMobile ControlsMobile Controls

Visual Studio 2005Visual Studio 2005

* = Managed wrappers* = Managed wrappers

Page 49: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

Introducing...Introducing...

Mobile E

dition

Mobile E

dition

Page 50: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

SQL MobileSQL Mobile

kommt mit SQL Server 2005 und VS 2005kommt mit SQL Server 2005 und VS 2005

Integration in die SQL WorkbenchIntegration in die SQL Workbenchgleiche Oberfläche wie SQL Server 2005gleiche Oberfläche wie SQL Server 2005

Integration mit CF 2.0Integration mit CF 2.0

Unterstützung für Unterstützung für Pocket PC, PPC Phone Edition (ab WM2003)Pocket PC, PPC Phone Edition (ab WM2003)

Smartphone (ab WM2003)Smartphone (ab WM2003)

Windows CE 5.0 (kein CE 4.x)Windows CE 5.0 (kein CE 4.x)

Win32 (Tablet PC, Deployment)Win32 (Tablet PC, Deployment)

Page 51: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

Neue FeaturesNeue Features

Multi-User-UnterstützungMulti-User-UnterstützungRow Level Locking (Data)Row Level Locking (Data)

Page Level Locking (Index)Page Level Locking (Index)

mehr Stabilitätmehr StabilitätACID-TransaktionenACID-Transaktionen

Named ParametersNamed Parameters

updateable scrollable cursor:updateable scrollable cursor:SqlCeResultSetSqlCeResultSet

Page 52: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

SQL Mobile & VS 2005SQL Mobile & VS 2005

Integration in Server ExplorerIntegration in Server ExplorerErstellen & Verwalten von SDF auf Desktop, Gerät Erstellen & Verwalten von SDF auf Desktop, Gerät oder Emulatoroder Emulator

Drag & Drop mit WinFormsDrag & Drop mit WinFormsErzeugung gebundener ControlsErzeugung gebundener Controls

Smart Tasks für Master-Detail-AnsichtenSmart Tasks für Master-Detail-Ansichten

Performance & ProduktivitätPerformance & Produktivitättypisiertes ResultSet automatisch generierttypisiertes ResultSet automatisch generiert

Auflistung in DataSource-FensterAuflistung in DataSource-Fenster

Unterstützung von Projekt & DeploymentUnterstützung von Projekt & Deployment

Page 53: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

SynchronisationSynchronisation

Multi-User-SyncMulti-User-Sync

Progress NotificationProgress Notification

>1 Subscriptions für eine DB>1 Subscriptions für eine DB

Wizards für Web-Konfiguration & SyncWizards für Web-Konfiguration & Sync

Custom Resolver in .NETCustom Resolver in .NET

Unterstützung für SQL Server 2000Unterstützung für SQL Server 2000

Kompression konfigurierbarKompression konfigurierbar

Dr. Watson Dr. Watson

Page 54: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

ArchitekturArchitektur

CLR / .NET CFCLR / .NET CF

Client Client Agent: Agent:

ReplicationReplicationandandRDARDA

OLEDB / OLEDB / Replication APIReplication API

IISIIS

CLIENTCLIENT SERVERSERVER

Storage Engine / Repl Storage Engine / Repl TrackingTracking

Server Server Agent: Agent:

ReplicationReplicationandand

Remote Remote Data Data

AccessAccess

HTTPHTTP

XML/BizTalk/CS 2002XML/BizTalk/CS 2002

802.11b/a/g, 802.11b/a/g, CDPD, GSM, CDPD, GSM,

CDMA, CDMA, TDMA, etc.TDMA, etc.

SQL Mobile SQL Mobile Data ProviderData Provider

Data ProviderData Provider

SQL Server SQL Server Client Data Client Data Provider Provider

ADO.NETADO.NET

VS 2005 (VB.NET & C#)VS 2005 (VB.NET & C#)

ManagedManaged StackStack

TDSTDS

EthernetEthernet

Well Well ConnectedConnected

Occasionally Occasionally ConnectedConnected

OLEDB CEOLEDB CE

VS 2005VS 2005(C++)(C++)

Native StackNative Stack

OLEDB ProviderOLEDB Provider

QP/Cursor QP/Cursor Engine/ES Engine/ES

SQL MobileSQL Mobile

Enterprise BackendEnterprise Backend

Page 55: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

SqlCeResultSetSqlCeResultSetAdmin ToolsAdmin ToolsVerwendung mit CF 2.0Verwendung mit CF 2.0Merge ReplicationMerge Replication

demo

SQL MobileSQL Mobile

Page 56: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

And now for s.th. completely And now for s.th. completely different...different...

FutureFuture

Page 57: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

Neues für EntwicklerNeues für Entwickler

.NET Compact Framework 2.0-Unterstützung.NET Compact Framework 2.0-Unterstützung

SQL Mobile-UnterstützungSQL Mobile-UnterstützungPIM StorePIM Store

Managed MAPI, Telephony, POOMManaged MAPI, Telephony, POOM

Managed Notifications BrokerManaged Notifications Broker

D3D MobileD3D Mobile

APIs für Kamera & LocationAPIs für Kamera & Location

einheitliches CAB-Formateinheitliches CAB-Format

Dr. WatsonDr. Watson

Page 58: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

Neue NamensräumeNeue NamensräumeMicrosoft.WindowsMobile: Microsoft.WindowsMobile:

IApplicationLauncherIApplicationLauncherMicrosoft.WindowsMobile.StatusMicrosoft.WindowsMobile.Status

State & NotificationState & NotificationMicrosoft.WindowsMobile.FormsMicrosoft.WindowsMobile.Forms

Contact Picker, Picture PickerContact Picker, Picture PickerMicrosoft.WindowsMobile.ConfigurationMicrosoft.WindowsMobile.Configuration

Configuration managerConfiguration managerMicrosoft.WindowsMobile.TelephonyMicrosoft.WindowsMobile.Telephony

PhonePhoneMicrosoft.WindowsMobile.PocketOutlookMicrosoft.WindowsMobile.PocketOutlook

Contacts, Calendar, Tasks, Email, SMSContacts, Calendar, Tasks, Email, SMSMicrosoft.WindowsMobile.PocketOutlook.MessageInterceptionMicrosoft.WindowsMobile.PocketOutlook.MessageInterception

SMS interceptionSMS interception

Page 59: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

State & NotificationsState & Notifications

einheitliches API zwecks Benachrichtigung, einheitliches API zwecks Benachrichtigung, "wenn etwas passiert""wenn etwas passiert"

nutzt dokumentierte Registry-Keysnutzt dokumentierte Registry-Keys

transient & persistent notificationstransient & persistent notifications

Page 60: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

SystemState state;SystemState state;

void Form1_Load( ... )void Form1_Load( ... ){{ if( SystemState.IsApplicationLauncherEnabled( "MyApp.MissedCall“ ) )if( SystemState.IsApplicationLauncherEnabled( "MyApp.MissedCall“ ) ) {{ state = new SystemState( "MyApp.MissedCall" );state = new SystemState( "MyApp.MissedCall" ); }} elseelse {{ state = new SystemState( SystemProperty.MissedCallCount );state = new SystemState( SystemProperty.MissedCallCount ); state.ComparisonType = StatusComparisonType.Greater;state.ComparisonType = StatusComparisonType.Greater; state.ComparisonValue = 0;state.ComparisonValue = 0; state.EnableApplicationLauncher( "MyApp.MissedCall" );state.EnableApplicationLauncher( "MyApp.MissedCall" ); }} state.Changed += new ChangeEventHandler( MissedCall );state.Changed += new ChangeEventHandler( MissedCall );

// ...// ...}}

void MissedCall( object sender, ChangeEventArgs e ){ MessageBox.Show( “Missed Calls: “ + e.CurrentValue );}

State & NotificationsState & Notifications

Page 61: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

Managed POOMManaged POOMContacts, Calendar, TasksContacts, Calendar, Tasks

erstellen, ändern, löschen, auflisten, suchenerstellen, ändern, löschen, auflisten, suchen

OutlookSession OutlookSession Folder Folder PimItemCollection PimItemCollection PimItem PimItem

Change-Events für Eigenschaften (nur in derselben Anwendung)Change-Events für Eigenschaften (nur in derselben Anwendung)

Transaktionsmodell: Update des Items nach Änderungen notwendigTransaktionsmodell: Update des Items nach Änderungen notwendig

Erstellen: Default Constructor benutzen, Eigenschaften setzen, Erstellen: Default Constructor benutzen, Eigenschaften setzen, Folder.Add(…) aufrufenFolder.Add(…) aufrufen

Page 62: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

Managed POOMManaged POOM

OutlookSession outlook = new OutlookSession();Contact c = new Contact();c.FirstName = "Big";c.LastName = "Bird";c.Email1Address = “[email protected]”;outlook.Contacts.Items.Add(c);

Page 63: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

Managed TelephonyManaged Telephony

Anrufe startenAnrufe startenUser Prompt optionalUser Prompt optional

Notifications über Anrufe Notifications über Anrufe durch entspr. APIdurch entspr. API

Private Sub callBack_Click(…) Handles callBack.Click Dim phone As New Phone phone.MakeCall( callerNumber, False )

End Sub

Page 64: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

Managed MAPIManaged MAPI

Microsoft.WindowsMobile.PocketOutlookMicrosoft.WindowsMobile.PocketOutlook

Email & SMSEmail & SMSAttachmentsAttachments

EmailMessage m = new EmailMessage();m.To.Add(new Recipient("Big bird", "[email protected]");m.Subject ="How are you?";m.BodyText = "I hope you're ok";m.Send();

Dim message As New SmsMessagemessage.To.Add( New Recipient( callerNumber ) )message.Body = "CALL BACK AT " + selectedTimemessage.Send()

Page 65: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

SMS InterceptionSMS Interception

MessageInterceptor smsMessageInterceptor sms ;;

void Form1_Load( ... )void Form1_Load( ... ){{ sms = new MessageInterceptor();sms = new MessageInterceptor(); sms.MessageCondition = new MessageCondition(sms.MessageCondition = new MessageCondition( MessageProperty.Body, MessageComparisonType.StartsWith, “Foo” ); MessageProperty.Body, MessageComparisonType.StartsWith, “Foo” ); sms.InterceptionAction = InterceptionAction.NotifyAndDelete;sms.InterceptionAction = InterceptionAction.NotifyAndDelete; sms.MessageReceived += sms.MessageReceived += new MessageReceivedEventHandler( sms_MessageReceived ); new MessageReceivedEventHandler( sms_MessageReceived );}}

void sms_MessageReceived(object sender, MessageReceivedEventArgs e)void sms_MessageReceived(object sender, MessageReceivedEventArgs e){{ SmsMessage message = (SmsMessage)(e.Message);SmsMessage message = (SmsMessage)(e.Message); // ...// ...}}

Page 66: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

Managed Config. ManagerManaged Config. Manager

string filename = @"\Storage Card\2577\config.xml";string filename = @"\Storage Card\2577\config.xml";XmlDocument config = new XmlDocument();XmlDocument config = new XmlDocument();config.Load( filename );config.Load( filename );ConfigurationManager.ProcessConfiguration( config, true );ConfigurationManager.ProcessConfiguration( config, true );

<wap-provisioningdoc><characteristic type="Sync"> <characteristic type="Connection"> <parm name="User" value="frankpr"/> <parm name="Server" value="emea.mail.microsoft.com"/> <parm name="Domain" value="EUROPE"/> </characteristic> <characteristic type="Mail"> <parm name="Enabled" value="1"/> </characteristic> </characteristic> </wap-provisioningdoc>

Page 67: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

Windows Mobile RoadmapWindows Mobile Roadmap

Plattform-Plattform-FeaturesFeatures

.NET CF 2.0, MFC 8.0, .NET CF 2.0, MFC 8.0, ATL 8.0ATL 8.0

State & Notification, State & Notification, Location, Camera, Location, Camera, SQL CE, D3DM, SQL CE, D3DM, Managed wrappersManaged wrappers

.NET CF SP2.NET CF SP2

VGA (PPC)VGA (PPC)Square (PPC)Square (PPC)Landscape (PPC)Landscape (PPC)

QVGA (SP)QVGA (SP)

.NET CF.NET CF Enhanced Emulator Enhanced Emulator Configuration Mgr,Configuration Mgr,Bluetooth, SMSBluetooth, SMS

MFC 3.0, MFC 3.0, ATL 3.0ATL 3.0

Active SyncActive SyncConnection MgrConnection MgrMAPIMAPIOBEXOBEXTelephonyTelephony

MFC 3.0MFC 3.0

Win32, Win32, POOM POOM

EntwicklungEntwicklung

Visual Studio 2005 Visual Studio 2005 (C#, VB.NET, C++)(C#, VB.NET, C++)

eVB 3 eVB 3 (C++)(C++)eVC 4 eVC 4 (C++)(C++)

VS.NET 2003 VS.NET 2003 (C#, VB.NET)(C#, VB.NET)

eVB 3 eVB 3 (C++)(C++)eVC 4 eVC 4 (C++)(C++)

VS.NET 2003VS.NET 2003(C#, VB.NET)(C#, VB.NET)

eVC 3 eVC 3 (C++)(C++)eVB 3 eVB 3 (VB)(VB)

eVC 3 eVC 3 (C++)(C++)eVB 3 eVB 3 (VB)(VB)

Core OSCore OS WinCE 5.0WinCE 5.0WinCE 4.2WinCE 4.2WinCE 4.2WinCE 4.2WinCE 3.0WinCE 3.0 WinCE 3.0WinCE 3.0

GeräteGeräte

Future Future Windows MobileWindows Mobile

20032003Second EditionSecond Edition200320032002200220002000

Page 68: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

FazitFazit

Mehr Performance in CF & SQL Mobile!Mehr Performance in CF & SQL Mobile!

Mehr Interoperabilität durch COM Interop & Mehr Interoperabilität durch COM Interop & besseres P/Invoke!besseres P/Invoke!

Mehr Produktivität & Mehr Produktivität & Spaß beim Entwickeln!Spaß beim Entwickeln!

Future Windows Mobile Future Windows Mobile hebt ab!hebt ab!

Page 69: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

Fragen?Fragen?

Anregungen?Anregungen?

Danksagungen?Danksagungen?

Wünsche?Wünsche?

Kritik?Kritik?

Lob?Lob?

Bahnhof?Bahnhof?

Geldspenden?Geldspenden?

Page 70: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

Vielen Dank!Vielen Dank!

Page 71: Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH  .

© 2004 Microsoft Corporation. All rights reserved.© 2004 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.