Salvador Alvarez Patuel Senior Consultant Microsoft Limited

Preview:

Citation preview

Salvador Alvarez PatuelSenior ConsultantMicrosoft Limited

Everyone receives a collateral pack containing –

- Information on “System Centre Mobile Device Manager 2008”, its top ten features.

- Case Study highlighting real-life Windows Mobile Deployments.

- eXpansys online voucher, allowing discount of up to €50.

Salvador Alvarez PatuelSenior ConsultantMicrosoft Limited

YO

Y

% s

hip

pin

g g

row

thYO

Y

% s

hip

pin

g g

row

th

35

30

25

20

15

10

5

0 CAGR 2006-2010Source: Gartner Dataquest, and IDC 2006

18.6%Mobile PCs

5.8%Mobile Phones

3.9%Desktop PCs

34.1%ConvergedMobile Phones

Silicon

Vendors

Device

Manufacturers

Business ISVs and IHVs

Mobile Operator

s

Solution

Providers

Helps IT Pro manage Windows Mobile phones Helps IT Pro manage Windows Mobile phones like laptops and PCslike laptops and PCs

System Center Mobile Device Manager will enable Windows Mobile phones to be deployed and managed (device and security) like PCs and laptops in the IT infrastructure, providing network access to corporate data

Security Security ManagementManagement

Active Directory Domain Join Policy enforcement using Active Directory/Group Policy targeting (>130 policies and settings)Communications and camera disablement*File encryption Application allow and denyRemote wipe OMA-DM Compliant

Device Device ManagementManagementSingle point of management for mobile devices in enterprise Full OTA provisioning and bootstrapping OTA Software distribution based on WSUS 3.0Inventory SQL Server 2005 based reporting capabilities Role based administration MMC snap-ins and Powershell cmndletsWMU On/Off control OMA-DM compliant

MobileMobileVPNVPN

Machine authentication and “double envelope security”Session PersistenceFast ReconnectInternetwork roamingStandards based (IKEv2, MobIKE, IPSEC tunnel mode)

Management WorkloadDeployment: inside firewall

Network Access WorkloadDeployment: in DMZ

Salvador Alvarez PatuelSenior ConsultantMicrosoft Limited

IE Mobile is a feature-rich browserMobile Web Applications

Fastest way to mobilize functionalityMobile Controls for device-specific renderingSupports AJAX for a better user experience

Exciting developments in the pipelineBetter AJAX support in Windows Mobile 6Silverlight Mobile demonstrated at MIX07

Salvador Alvarez PatuelSenior ConsultantMicrosoft Limited

Visual Studio 2008ActiveSync (XP) or Device Centre (Vista)Windows Mobile 6 SDKs

John WyerDeveloper Program ManagerMicrosoft Corporation

SMS Message InterceptionPIM IntegrationDevice State and NotificationWorking with WCFCamera CaptureGlobal Positioning SystemsChoosing ContactsSending EmailMaking a Phone Call

Salvador Alvarez PatuelSenior ConsultantMicrosoft Limited

Part of the Pocket Outlook namespacePocketOutlook.MessageInterception

Allows use of SMS as a data transportAlertsTwo-way conversations (e.g. Battleships game)

Things to watch out forCostSecurityLatency

Receive notification when an SMS arrives

Transient notificationsPersistent notificationsOptionally delete the SMS

Filter SMS notifications using conditions

Body or Sender SMS FieldsEqual or Not EqualStartsWith, Contains or EndsWith

Salvador Alvarez PatuelSenior ConsultantMicrosoft Limited

Microsoft.WindowsMobile.PocketOutlook

Outlook session

Logs into databaseNeeds to be disposedLogs into databaseNeeds to be disposed

OutlookSessionClass

Properties

AppointmentsContactsEmailAccountsSmsAccountTasks

Methods

Dispose (+ 1 overload)OutlookSession

Personal information

ContactsContacts AppointmenAppointmentsts

TasksTasks

contact.Properties.Add(“BowlingAverage”,

typeof(int),PimPropertyFlags.DoNotReplicate |

PimPropertyFlags.Indexed);

contact.Properties[“BowlingAverage”] = 175;contact.Update();

Add your own propertiesDoes not sync to the desktop

Salvador Alvarez PatuelSenior ConsultantMicrosoft Limited

SystemState

StateBase

Class

Properties

ApplicationArgumentsApplicationLaunchIdApplicationToLaunchBitMaskComparisonTypeComparisonValueCurrentValueProperty

Methods

DisableApplicationLauncher (+ 1 overload)DisposeEnableApplicationLauncher (+ 2 overloads)GetValueIsApplicationLauncherEnabledSystemState (+ 3 overloads)

Events

Changed

NetworkNetwork MessagingMessaging PhonePhone

AppointmentAppointmentss

Media PlayerMedia Player Available Available hardwarehardware

Over 150 predefined statesOver 150 predefined statesUnification of stateUnification of state

Cell System Connectivity / AvailabilityCell System Connectivity / AvailabilityBluetooth, Camera, WifiBluetooth, Camera, WifiNew Power Management StatesNew Power Management StatesInternet SharingInternet SharingDevice LockDevice Lock

SystemState cradle; // member variable

cradle = new SystemState(SystemProperty.CradlePresent);cradle.ComparisonType = StatusComparisonType.Equal;cradle.ComparisonValue = 1;cradle.Changed += new ChangeEventHandler(cradle_Changed);

cradle.EnableApplicationLauncher(“MS.Cradle");

void cradle_Changed(object sender, ChangeEventArgs args){ // Start downloading bits}

private void MainForm_Closed(object sender, EventArgs e){ cradle.Dispose();}

cradle = new SystemState(SystemProperty.CradlePresent);cradle.ComparisonType = StatusComparisonType.Equal;cradle.ComparisonValue = 1;cradle.Changed += new ChangeEventHandler(cradle_Changed);

cradle.EnableApplicationLauncher(“MS.Cradle");

if (SystemState.IsApplicationLauncherEnabled(“MS.Cradle")){ cradle = new SystemState(“MS.Cradle”); cradle.Changed += new ChangeEventHandler(cradle_Changed);

}else{

}

SystemState cradle; // member variable

string key = @"HKEY_CURRENT_USER\SOFTWARE\COMPANY\APP";string value = "AppState";RegistryState myState = new RegistryState(key, value);

RegistryState

StateBase

Class

Properties

ApplicationArgumentsApplicationLaunchIdApplicationToLaunchBitMaskComparisonTypeComparisonValueCurrentValueKeyValueName

Methods

DisableApplicationLauncher (+ 1 overload)DisposeEnableApplicationLauncher (+ 2 overloads)IsApplicationLauncherEnabledRegistryState (+ 3 overloads)

Events

Changed

Nested Types

States are stored in the registryRegistryState classEnable external applications

Salvador Alvarez PatuelSenior ConsultantMicrosoft Limited

Windows Communication FoundationUnified Programming ModelTargets Managed Connected Applications

Compact Framework 3.5 supportsMessage-level only (no service model)HTTP and email transport channels

Connecting with WCF services Add Web Reference...CFSvcUtil.exe Power Toy

Store and Forward MessagingServer

Exchange 2007

ExchangeWeb

Services

Exchange Web

Services Datacenterwithin thecompany

Exchange Web

Services

ActiveSnc

CorporateWi-Fi

network

ActiveSync

Mobileoperatornetwork

Salvador Alvarez PatuelSenior ConsultantMicrosoft Limited

Common DialogsMicrosoft.WindowsMobile.FormsConsistent look and feelAvailable from the OS so no further workMicrosoft.WindowsCE.Forms (DocumentList)

CameraCaptureModeStillVideoOnly or VideoWithAudio

Still PicturesFile will be JPEGExtension needs to be JPG

If DialogResult.OK Filename property points to image

Camera drivers not part of LTKImplementations may vary

Salvador Alvarez PatuelSenior ConsultantMicrosoft Limited

Managed LibrariesMicrosoft.WindowsMobile.Samples.Location

FeaturesMultiplexingParsingNotifications

Fake GPS

GpsPositionClass

Properties

EllipsoidAltitudeEllipsoidAltitudeValidHeadingHeadingValidHorizontalDilutionOfPrecisionHorizontalDilutionOfPrecisionValidLatitudeLatitudeInDegreesMinutesSecondsLatitudeValidLongitudeLongitudeInDegreesMinutesSecondsLongitudeValidPositionDilutionOfPrecisionPositionDilutionOfPrecisionValidSatelliteCountSatelliteCountValidSatellitesInSolutionValidSatellitesInViewCountSatellitesInViewCountValidSatellitesInViewValidSeaLevelAltitudeSeaLevelAltitudeValidSpeedSpeedValidTimeTimeValidVerticalDilutionOfPrecisionVerticalDilutionOfPrecisionValid

Methods

GetSatellitesInSolutionGetSatellitesInView

GpsClass

Properties

Opened

Methods

CloseGetDeviceStateGetPosition (+ 1 overload)GpsOpen

Events

DeviceStateChangedLocationChanged

Gps gps;private void MainForm_Load(object sender, EventArgs e){ gps = new Gps(); gps.Open();}

private void DisplayCurrentPosition(){ GpsPosition position = gps.GetPosition(); double lat = position.Latitude; double lon = position.Longitude; // Display lat and lon}

private void MainForm_Closed(object sender, EventArgs e){ gps.Close();}

gps.LocationChanged += new LocationChangedEventHandler(gps_LocationChanged);

void gps_LocationChanged(object sender, LocationChangedEventArgs args){ GpsPosition position = args.Position;}

Salvador Alvarez PatuelSenior ConsultantMicrosoft Limited

ChooseContactDialogFilter by PropertyOn selection

SelectedContact

Salvador Alvarez PatuelSenior ConsultantMicrosoft Limited

E-mail

SMS

PocketOutlook

AccountClass

public

DisposeName

EmailAccount

Account

Class

public

SendTransport

SmsAccount

Account

Class

public

Send

IDisposable

OutlookSession session = new OutlookSession();

EmailMessage email = new EmailMessage();email.To.Add(new Recipient(“you@domain.com”);email.Subject = “Hello”;email.BodyText = “Let’s do lunch!”;EmailAccount emailAccount = session.EmailAccounts[0];email.Send(emailAccount);session.Dispose();// Send the emailMessagingApplication.Synchronize(emailAccount);

EmailMessage

Message

Class

Properties

AttachmentsBccBodyTextCCImportanceSensitivitySubjectTo

Methods

EmailMessage (+ 1 overload)Send (+ 1 overload)

MessageClass

Properties

FromItemIdLastModifiedReadReceived

Nested Types

MessagingApplicationSealed Class

Methods

DisplayComposeForm (+ 9 overloads)SwitchToAccount (+ 1 overload)Synchronize (+ 2 overloads)

Salvador Alvarez PatuelSenior ConsultantMicrosoft Limited

Microsoft.WindowsMobile.TelephonyCall NumberPrompt User for Confirmation

PhoneClass

Methods

PhoneTalk (+ 1 overload)

Salvador Alvarez PatuelSenior ConsultantMicrosoft Limited

SMS Message InterceptionPIM IntegrationDevice State and NotificationWorking with WCFCamera CaptureGlobal Positioning SystemsChoosing ContactsSending EmailMaking a Phone Call

Recommended