building mobile web applications with asp.net mike pelton [email protected] developer &...

38
Building Mobile Web Building Mobile Web Applications Applications With ASP.NET With ASP.NET Mike Pelton Mike Pelton [email protected] [email protected] Developer & Platform Group Developer & Platform Group Microsoft Ltd. Microsoft Ltd.

Upload: roger-nash

Post on 14-Jan-2016

217 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Building Mobile Web Applications With ASP.NET Mike Pelton MPelton@microsoft.com Developer & Platform Group Microsoft Ltd

Building Mobile Web Building Mobile Web ApplicationsApplicationsWith ASP.NETWith ASP.NET

Mike PeltonMike [email protected]@microsoft.comDeveloper & Platform GroupDeveloper & Platform GroupMicrosoft Ltd.Microsoft Ltd.

Page 2: Building Mobile Web Applications With ASP.NET Mike Pelton MPelton@microsoft.com Developer & Platform Group Microsoft Ltd

The Ever-The Ever-Broadening Broadening Spectrum of Spectrum of DevicesDevices

New Business ModelsNew Business Models

Using XML Web servicesUsing XML Web services

New models for user New models for user interactioninteraction

Page 3: Building Mobile Web Applications With ASP.NET Mike Pelton MPelton@microsoft.com Developer & Platform Group Microsoft Ltd

Hardware TrendsHardware TrendsCheaper, lighter, Cheaper, lighter, smaller…smaller…

More integrated More integrated wirelesswireless

GPRS,GPRS,

WiFi…WiFi…

New Form factorsNew Form factors

Page 4: Building Mobile Web Applications With ASP.NET Mike Pelton MPelton@microsoft.com Developer & Platform Group Microsoft Ltd

DisplayDisplayUSB or SerialUSB or Serial

ProcessorProcessorMemoryMemory

GSM/GPRSGSM/GPRSCDMA/1xRTTCDMA/1xRTT

Device Device HardwarHardwaree

WiFiWiFiBluetoothBluetooth

RadioRadio

DriversDrivers

Windows MobileWindows Mobile CE DBCE DBActiveSyncActiveSync

Pocket OutlookPocket OutlookPocket Internet ExplorerPocket Internet ExplorerWindows Media PlayerWindows Media Player

Windows CEWindows CE

Software Platform (APIs)Software Platform (APIs)

Home ScreenHome ScreenUser User Interface/ShellInterface/ShellHTML ControlHTML Control

GAPIGAPIRemote APIRemote APIConfigurationConfigurationBluetoothBluetooth

Connection ManagerConnection Manager TAPITAPISMS SMS MAPI MAPI POOMPOOM

MultimediaMultimediaCommunicatioCommunicationn

Device ManagementDevice Management PresentationPresentation

ADO CEADO CEXMLXMLCE DBCE DBOLE DBOLE DB

Data AccessData Access

NativeNative

Win32Win32

MFCMFC ATLATL

ManagedManaged

.NET Compact.NET CompactFrameworkFramework

Server sideServer side

ASP .NETASP .NETMobile ControlsMobile Controls

NativeNative

Win32Win32

MFCMFC ATLATL

ManagedManaged

.NET Compact.NET CompactFrameworkFramework

Server sideServer side

ASP .NETASP .NETMobile ControlsMobile Controls

Windows Mobile Development Windows Mobile Development PlatformPlatform

Embedded VC++Embedded VC++ Visual Studio .NETVisual Studio .NET

Page 5: Building Mobile Web Applications With ASP.NET Mike Pelton MPelton@microsoft.com Developer & Platform Group Microsoft Ltd

Key ConceptsKey ConceptsTwo Sides of the Same CoinTwo Sides of the Same Coin

Adaptive renderingAdaptive renderingMobile controls and device adapters Mobile controls and device adapters generate an appropriate rendering for generate an appropriate rendering for each device each device automaticallyautomatically

CustomisationCustomisationProgrammatic model to customise the Programmatic model to customise the rendering for a particular device.rendering for a particular device.

Why?Why?

Page 6: Building Mobile Web Applications With ASP.NET Mike Pelton MPelton@microsoft.com Developer & Platform Group Microsoft Ltd

Building Mobile Web ApplicationsBuilding Mobile Web ApplicationsThe Adaptive Rendering ProcessThe Adaptive Rendering Process

1. HTTP1. HTTPrequestrequest

2. ASP.NET 2. ASP.NET processingprocessing

3. ASP.NET 3. ASP.NET resultresult

4. Adaptive4. Adaptive

responseresponse

Returned as Returned as proper browser proper browser protocolprotocol• HTMLHTML• cHTMLcHTML• WMLWML• XHTMLXHTML

Render ASPX Render ASPX pagepage• Process pageProcess page• Each control Each control builds its own builds its own layoutlayout

Discover Discover device device capabilitiescapabilities• Height and Height and widthwidth• ColorColor• ImagesImages• Phone call Phone call abilityability

Page 7: Building Mobile Web Applications With ASP.NET Mike Pelton MPelton@microsoft.com Developer & Platform Group Microsoft Ltd

A Brief Aside…A Brief Aside…Cookieless SessionsCookieless Sessions

Session State no longer requires client Session State no longer requires client cookie support for SessionIDcookie support for SessionID

Can optionally track SessionID in URLCan optionally track SessionID in URL

Requires no code changes to the Requires no code changes to the applicationapplication

All relative links continue to workAll relative links continue to work

Page 8: Building Mobile Web Applications With ASP.NET Mike Pelton MPelton@microsoft.com Developer & Platform Group Microsoft Ltd

Cookieless SessionsCookieless SessionsHow To…How To…1.1. Create/Edit “web.config” file in the Create/Edit “web.config” file in the

vrootvroot

2.2. Add following text:Add following text:<configuration>

<system.web>

<sessionState cookieless=“true”/>

</system.web>

</configuration>

Page 9: Building Mobile Web Applications With ASP.NET Mike Pelton MPelton@microsoft.com Developer & Platform Group Microsoft Ltd

Adaptive RenderingAdaptive Rendering

Page 10: Building Mobile Web Applications With ASP.NET Mike Pelton MPelton@microsoft.com Developer & Platform Group Microsoft Ltd

Device Support – 200+ Device Support – 200+ DevicesDevicesACCESS Compact: ACCESS Compact: NetFront 2.0, Fujitsu F503i, Mitsubishi D502i, Mitsubishi D503i, NEC NetFront 2.0, Fujitsu F503i, Mitsubishi D502i, Mitsubishi D503i, NEC N210i, NEC N502i, Sony SO503iN210i, NEC N502i, Sony SO503iEricsson 2.0:Ericsson 2.0: Ericsson R380, Ericsson R320, Ericsson R520m, Ericsson T20s Ericsson R380, Ericsson R320, Ericsson R520m, Ericsson T20sGoAmerica Go.Web:GoAmerica Go.Web: Compaq iPAQ H3650, Palm Vx, RIM Blackberry 857, RIM Blackberry Compaq iPAQ H3650, Palm Vx, RIM Blackberry 857, RIM Blackberry 950, RIM Blackberry 957, 950, RIM Blackberry 957, Microsoft Mobile Explorer:Microsoft Mobile Explorer: Sony CMD-Z5, Sony CMD-J5, Benefon Q, Sony CMD-Z5, Sony CMD-J5, Benefon Q, Microsoft Pocket Internet Explorer:Microsoft Pocket Internet Explorer: Casio Cassiopeia E-125, Compaq iPAQ H3630, Casio Cassiopeia E-125, Compaq iPAQ H3630, Compaq iPAQ H3650, HP Jornada 720, Compaq iPAQ H3670Compaq iPAQ H3650, HP Jornada 720, Compaq iPAQ H3670Nokia:Nokia: Nokia 3330, Nokia 6210, Nokia 7110, Nokia 9110i Nokia 3330, Nokia 6210, Nokia 7110, Nokia 9110iOpenwave UP.Browser 3.x:Openwave UP.Browser 3.x: Audiovox CDM-9000, Ericsson R280LX, Hitachi C407H, Audiovox CDM-9000, Ericsson R280LX, Hitachi C407H, Kyocera QCP 2035A, Kyocera QCP 3035, LG V111, Mitsubishi T250, Motorola StarTAC Kyocera QCP 2035A, Kyocera QCP 3035, LG V111, Mitsubishi T250, Motorola StarTAC 7868W, Motorola TimePort P8767, Samsung SCH-6100, Samsung SCH-850, Samsung 7868W, Motorola TimePort P8767, Samsung SCH-6100, Samsung SCH-850, Samsung SCH-8500, Samsung UpRoar M100, Sanyo C401SA, Sanyo SCP-4500, Sanyo SCP-5000, SCH-8500, Samsung UpRoar M100, Sanyo C401SA, Sanyo SCP-4500, Sanyo SCP-5000, Sprint Touchpoint, Sprint Touchpoint 2200, Sprint Touchpoint 3000Sprint Touchpoint, Sprint Touchpoint 2200, Sprint Touchpoint 3000Openwave UP.Browser 4.x:Openwave UP.Browser 4.x: Alcatel One Touch 701, Audiovox CDM-135, Audiovox CDM- Alcatel One Touch 701, Audiovox CDM-135, Audiovox CDM-9100, Motorola i1000plus, Motorola i2000plus, Motorola i50sx, Motorola i85s, Motorola 9100, Motorola i1000plus, Motorola i2000plus, Motorola i50sx, Motorola i85s, Motorola T2288, Motorola TimePort P7382i, Motorola TimePort P7389, Motorola V100, Motorola T2288, Motorola TimePort P7382i, Motorola TimePort P7389, Motorola V100, Motorola V120c, Motorola V2288, Motorola V60c, Siemens C35i, Siemens S35i, Siemens SL45V120c, Motorola V2288, Motorola V60c, Siemens C35i, Siemens S35i, Siemens SL45Miscellaneous Browsers:Miscellaneous Browsers: Handspring Visor Platinum (Qualcomm Eudora Internet Suite Handspring Visor Platinum (Qualcomm Eudora Internet Suite 2.1; Blazer 1.0 and Omnisky 2.1.0.15), IBM WorkPad c505 (ilinx Xiino 1.01J), Kyocera 2.1; Blazer 1.0 and Omnisky 2.1.0.15), IBM WorkPad c505 (ilinx Xiino 1.01J), Kyocera QCP 6035 (Qualcomm Eudora 2.0), Nokia 9210 (Symbian Crystal 6.0), Palm VII (MyPalm QCP 6035 (Qualcomm Eudora 2.0), Nokia 9210 (Symbian Crystal 6.0), Palm VII (MyPalm 1.0), Palm Vx (AU-Systems 2.12181.1 and Omnisky 2.0.04), Palm m505 (MyPalm 1.1), 1.0), Palm Vx (AU-Systems 2.12181.1 and Omnisky 2.0.04), Palm m505 (MyPalm 1.1), Panasonic P210i, Panasonic P502i, Sharp J-SH04 (Original Equipment Manufacturer's Panasonic P210i, Panasonic P502i, Sharp J-SH04 (Original Equipment Manufacturer's Version 3.0), Sharp Zaurus MI-E1 (Original Equipment Manufacturer's Version 6.1), Sony Version 3.0), Sharp Zaurus MI-E1 (Original Equipment Manufacturer's Version 6.1), Sony CLIE PEG-N700C (ilinz Palmscape 4.0SJ), Toshiba J-T05 (Original Equipment CLIE PEG-N700C (ilinz Palmscape 4.0SJ), Toshiba J-T05 (Original Equipment Manufacturer's Version 3.0), Manufacturer's Version 3.0),

Page 11: Building Mobile Web Applications With ASP.NET Mike Pelton MPelton@microsoft.com Developer & Platform Group Microsoft Ltd

IISIIS.NET Framework.NET Framework

Mobile Internet ToolkitMobile Internet ToolkitDevelopment Development EnvironmentEnvironment ProductionProduction

CreateCreate mobile Web Formmobile Web Form

IntegrateIntegrateBusiness LogicBusiness Logic

Mobile Mobile PresentationPresentation

Layer (controls)Layer (controls)

Test Test Target DevicesTarget Devices

Post toPost toWeb ServersWeb Servers

HTTPHTTPRequestRequest

DeviceDeviceCapabilitiesCapabilities

Mobile Controls Mobile Controls andand

Device AdaptersDevice Adaptersgenerate displaygenerate display

AddAddDevice AdaptersDevice Adapters

Update DeviceUpdate DeviceCapabilitiesCapabilities

HTTPHTTPResponseResponse

Mobile.aspxMobile.aspxPagesPages

The LifecycleThe Lifecycle

Page 12: Building Mobile Web Applications With ASP.NET Mike Pelton MPelton@microsoft.com Developer & Platform Group Microsoft Ltd

Customising for Particular Customising for Particular DevicesDevicesWhy?Why?

Optimise the generated renderingOptimise the generated rendering

Per device or class of devicePer device or class of device

Used on a per application basisUsed on a per application basis

Comparison- or Evaluator-based filtersComparison- or Evaluator-based filters

Control the exact display Control the exact display

Ability to override default behaviorAbility to override default behavior

Page 13: Building Mobile Web Applications With ASP.NET Mike Pelton MPelton@microsoft.com Developer & Platform Group Microsoft Ltd

Device-Specific Device-Specific Customisation Customisation Property OverridesProperty Overrides

Change the property value of a Change the property value of a control only on certain devicescontrol only on certain devices

Example: Set the Text property of a Example: Set the Text property of a Label control to a long string on large Label control to a long string on large screen devices, and to a short string on screen devices, and to a short string on small screen devicessmall screen devices

Page 14: Building Mobile Web Applications With ASP.NET Mike Pelton MPelton@microsoft.com Developer & Platform Group Microsoft Ltd

Device-Specific Device-Specific Customisation Customisation Using Property OverridesUsing Property Overrides

In persistence formatIn persistence format

In codeIn code

<mobile:Label id="Label2" Runat="server" Font-Bold="True"><mobile:Label id="Label2" Runat="server" Font-Bold="True"> <DeviceSpecific><DeviceSpecific> <Choice Filter="isPocketIE" <Choice Filter="isPocketIE" Text="...Breaking News - Breaking News...">Text="...Breaking News - Breaking News..."> </Choice></Choice> <Choice Text="News Just In! "></Choice><Choice Text="News Just In! "></Choice> </DeviceSpecific> </DeviceSpecific> </mobile:Label></mobile:Label>

MobileCapabilities cap = MobileCapabilities cap = (MobileCapabilities)Request.Browser;(MobileCapabilities)Request.Browser;if (cap.HasCapability(“isPocketIE“, null))if (cap.HasCapability(“isPocketIE“, null)){{ Label2.Text = "...Breaking News - Breaking News...“; Label2.Text = "...Breaking News - Breaking News...“; }}Else Label2.Text = "News Just In! ";Else Label2.Text = "News Just In! ";

Page 15: Building Mobile Web Applications With ASP.NET Mike Pelton MPelton@microsoft.com Developer & Platform Group Microsoft Ltd

Defining Device FiltersDefining Device Filters

All customisation with Property All customisation with Property Overrides and Templates relies on Overrides and Templates relies on device filtersdevice filters

Visual Studio .NET creates a default Visual Studio .NET creates a default set of device filters in Web.configset of device filters in Web.config <deviceFilters><deviceFilters>

<filter name="isHTML32" compare="PreferredRenderingType" <filter name="isHTML32" compare="PreferredRenderingType" argument="html32" />argument="html32" /> <filter name="isWML11" compare="PreferredRenderingType" <filter name="isWML11" compare="PreferredRenderingType" argument="wml11" />argument="wml11" /> <filter name="isPocketIE" compare="Browser" <filter name="isPocketIE" compare="Browser" argument="Pocket IE" />argument="Pocket IE" /> <filter name="prefersGIF" compare="PreferredImageMIME" <filter name="prefersGIF" compare="PreferredImageMIME" argument="image/gif" />argument="image/gif" /> <filter name="prefersWBMP" compare="PreferredImageMIME" <filter name="prefersWBMP" compare="PreferredImageMIME" argument="image/vnd.wap.wbmp" />argument="image/vnd.wap.wbmp" /> ...... </deviceFilters></deviceFilters>

Page 16: Building Mobile Web Applications With ASP.NET Mike Pelton MPelton@microsoft.com Developer & Platform Group Microsoft Ltd

FilteringFiltering

Page 17: Building Mobile Web Applications With ASP.NET Mike Pelton MPelton@microsoft.com Developer & Platform Group Microsoft Ltd

Customisation - TemplatesCustomisation - TemplatesObjectList ControlObjectList Control

Header Header TemplateTemplate

Item TemplateItem Template

AlternateItemAlternateItemTemplateTemplate

FooterFooterTemplateTemplate

SeparatorSeparatorTemplateTemplate

Pocket PC Pocket PC CustomisationCustomisation

Cell Phone Limited Cell Phone Limited CustomisationCustomisation

ItemDetailsItemDetailsTemplateTemplate

DataBinder.Eval(((ObjectListItem)Container).DataItem, “FirstName”)

Page 18: Building Mobile Web Applications With ASP.NET Mike Pelton MPelton@microsoft.com Developer & Platform Group Microsoft Ltd

Using XML Web Services Using XML Web Services and the Object Listand the Object List

Page 19: Building Mobile Web Applications With ASP.NET Mike Pelton MPelton@microsoft.com Developer & Platform Group Microsoft Ltd

XHTML Browsers And CSSXHTML Browsers And CSS

Cascading Style Sheets (CSS)Cascading Style Sheets (CSS)The best way to define presentationThe best way to define presentation

Separates presentation from contentSeparates presentation from content

W3C recommendation (CSS1)W3C recommendation (CSS1)

Supported by major desktop browsersSupported by major desktop browsers

CSS is also supported by the latest mobile devicesCSS is also supported by the latest mobile devicesPocket Internet Explorer on SmartPhone 2003 supports Pocket Internet Explorer on SmartPhone 2003 supports HTML 4.01, XHTML-Basic, and CSS1HTML 4.01, XHTML-Basic, and CSS1

WAP 2.0 devices support XHTML-MP and Wireless CSS WAP 2.0 devices support XHTML-MP and Wireless CSS (Nokia Series 60, Sony-Ericsson Smartphones)(Nokia Series 60, Sony-Ericsson Smartphones)

ASP.NET Mobile Controls Runtime ASP.NET Mobile Controls Runtime Supports XHTML browsers in Device Update 2 and laterSupports XHTML browsers in Device Update 2 and later

Generates CSS style sheet dynamically from standard Generates CSS style sheet dynamically from standard mobile mobile style propertiesstyle properties

Page 20: Building Mobile Web Applications With ASP.NET Mike Pelton MPelton@microsoft.com Developer & Platform Group Microsoft Ltd

Programming CSS Programming CSS StylesheetsStylesheets

Create a style sheet in your Create a style sheet in your projectproject

.Subhead.Subhead{{ font-weight: bold;font-weight: bold; font-size: smaller;font-size: smaller; color: orangered;color: orangered;}}

<mobile:Form id="Form1" runat="server"<mobile:Form id="Form1" runat="server" csslocation="stylesheet1.css“ … > csslocation="stylesheet1.css“ … >

<system.web><system.web> <mobileControls allowCustomAttributes="true“ /> <mobileControls allowCustomAttributes="true“ /> </system.web> </system.web>

Add CSSLocation attribute to Add CSSLocation attribute to <mobile:Form> tag pointing at stylesheet<mobile:Form> tag pointing at stylesheet

Set allowCustomAttributes=“true” in Set allowCustomAttributes=“true” in web.configweb.config

Page 21: Building Mobile Web Applications With ASP.NET Mike Pelton MPelton@microsoft.com Developer & Platform Group Microsoft Ltd

Programming CSS Programming CSS StylesheetsStylesheets

Use CssClass attribute to apply a Use CssClass attribute to apply a style class in the style sheet to a style class in the style sheet to a controlcontrol

Other attributesOther attributesCssCommandClass: Use with ObjectList CssCommandClass: Use with ObjectList to style the command linkto style the command linkCssLabelClass: Use with ObjectList to CssLabelClass: Use with ObjectList to style the style the label fieldslabel fieldsCssPagerClass: Use with Form to style CssPagerClass: Use with Form to style pagination promptspagination prompts

<mobile:label id="Label1" runat=“server”<mobile:label id="Label1" runat=“server” cssclass=“Subhead" >cssclass=“Subhead" > This label uses the style from the CSS!This label uses the style from the CSS!</mobile:label></mobile:label>

Page 22: Building Mobile Web Applications With ASP.NET Mike Pelton MPelton@microsoft.com Developer & Platform Group Microsoft Ltd

Using CSSUsing CSS

Page 23: Building Mobile Web Applications With ASP.NET Mike Pelton MPelton@microsoft.com Developer & Platform Group Microsoft Ltd

Speech On The Mobile Speech On The Mobile Web?Web?Why Bother?Why Bother?Hands-freeHands-free

Eyes-freeEyes-free

When speech is faster or easierWhen speech is faster or easier

For what?For what?Data EntryData Entry

Query the user verballyQuery the user verbally

Get input verballyGet input verbally

Command and controlCommand and controlSay what you want rather than clicking through menusSay what you want rather than clicking through menus

Searching through dataSearching through dataEver tried sifting through 3,000 rows with a stylus?Ever tried sifting through 3,000 rows with a stylus?

NotificationsNotifications

Page 24: Building Mobile Web Applications With ASP.NET Mike Pelton MPelton@microsoft.com Developer & Platform Group Microsoft Ltd

SALT And ‘Speech Tags’SALT And ‘Speech Tags’

SSpeech peech AApplication pplication LLanguage anguage TTagsagsExtends HTML, XHTML etc.Extends HTML, XHTML etc.

Enables multimodal (speech + GUI) and Enables multimodal (speech + GUI) and telephony applicationstelephony applications

Object and event modelObject and event model, s, script for dialog cript for dialog managementmanagement

Standard being driven by SALT ForumStandard being driven by SALT ForumFounded 10.1.01: Cisco, Comverse, Intel, Founded 10.1.01: Cisco, Comverse, Intel, Microsoft, Philips, SpeechworksMicrosoft, Philips, Speechworks

Page 25: Building Mobile Web Applications With ASP.NET Mike Pelton MPelton@microsoft.com Developer & Platform Group Microsoft Ltd

Speech Tags OverviewSpeech Tags Overview

<prompt ><prompt > configures speech configures speech synthesizer synthesizer and and plays out recorded plays out recorded promptsprompts

<reco ><reco > configures and executes configures and executes speech speech recognizer, handles eventsrecognizer, handles events

<grammar > <grammar > specifies recognition specifies recognition resourcesresources

<bind ><bind > binds recognition results to binds recognition results to pagepage

<dtmf ><dtmf > specifies telephone keypad specifies telephone keypad inputinput

Call Control objectCall Control objectexecutes call transfer, conference, etc. executes call transfer, conference, etc.

handles events (answer, hangup etc.)handles events (answer, hangup etc.)

Page 26: Building Mobile Web Applications With ASP.NET Mike Pelton MPelton@microsoft.com Developer & Platform Group Microsoft Ltd

Speech ServerSpeech Server

Application Application DeploymentDeployment

ASP.NET Web ServerASP.NET Web Server

Speech ControlsSpeech Controls

PSTNPSTNPSTNPSTN

Microsoft® Speech Application SDK

+ Visual Studio® .NET

Microsoft® Speech Application SDK

+ Visual Studio® .NET

Development Development WorkstationWorkstation

Development Development WorkstationWorkstation

Server-side speech recognition and Server-side speech recognition and prompting over 802.11prompting over 802.11

IntelIntel®® Dialogic Dialogic®® Telephony CardTelephony Card

Third-party TelephonyInterface Manager (TIM)Third-party Telephony

Interface Manager (TIM)

Speech Engine Services (SES)

Telephony Application

Services (TAS)

Microsoft Speech Server

GrammarsGrammars

PromptsPrompts

Web PagesWeb Pages

HTML + SALT + HTML + SALT + Script via WebScript via Web

HTML + SALT +

HTML + SALT +

Script v

ia Web

Script v

ia Web

Microsoft Speech Serverosoft Speech Server

Page 27: Building Mobile Web Applications With ASP.NET Mike Pelton MPelton@microsoft.com Developer & Platform Group Microsoft Ltd

Speech Engine ServicesSpeech Engine Services

Powerful, server-based speech Powerful, server-based speech processingprocessing

Speech RecognitionSpeech Recognition~100 to ~1000 times the grammar ~100 to ~1000 times the grammar processing potential of a deviceprocessing potential of a device

Speech SynthesisSpeech SynthesisMuch more realistic than can be synthesized Much more realistic than can be synthesized on a deviceon a device

Prompt databasesPrompt databases

Connect over 802.11Connect over 802.11

Page 28: Building Mobile Web Applications With ASP.NET Mike Pelton MPelton@microsoft.com Developer & Platform Group Microsoft Ltd

Speech Add-In For Pocket Speech Add-In For Pocket IEIE

Adds speech markup capability to Adds speech markup capability to

Pocket IEPocket IE

SALT (Speech Application Language SALT (Speech Application Language

Tags)Tags)

Deploy your speech apps as Web Deploy your speech apps as Web

sitessites

Use your existing ASP.NET, HTML, Use your existing ASP.NET, HTML,

and PIE skills to build speech appsand PIE skills to build speech apps

Page 29: Building Mobile Web Applications With ASP.NET Mike Pelton MPelton@microsoft.com Developer & Platform Group Microsoft Ltd

Speech RecognitionSpeech RecognitionGrammarGrammar

Defines what to listen forDefines what to listen forUsually associated with a particular taskUsually associated with a particular task

A set of syntactic rules for assembling A set of syntactic rules for assembling groups of wordsgroups of words

Expressed with SRGSExpressed with SRGS(W3C Speech Recognition Grammar (W3C Speech Recognition Grammar Specification)Specification)

Can be statically authored or Can be statically authored or dynamically generateddynamically generated

Page 30: Building Mobile Web Applications With ASP.NET Mike Pelton MPelton@microsoft.com Developer & Platform Group Microsoft Ltd

Speech RecognitionSpeech RecognitionResultsResults

Raw textRaw text““Arriving at Heathrow”Arriving at Heathrow”

SemanticSemanticUses your grammar to attach semantic Uses your grammar to attach semantic meaningmeaning

They specified their destinationThey specified their destination

It is an airportIt is an airport

It is “LHR”It is “LHR”

Expressed with SML (Semantic Markup Expressed with SML (Semantic Markup Language)Language)

Includes confidence scoresIncludes confidence scores

Page 31: Building Mobile Web Applications With ASP.NET Mike Pelton MPelton@microsoft.com Developer & Platform Group Microsoft Ltd

Text To SpeechText To Speech

Raw textRaw text

SSML (Speech Synthesis Markup SSML (Speech Synthesis Markup Language) for emphasis and “say as” Language) for emphasis and “say as” hintshints

Prompt databasePrompt databaseCombine synthesized and pre-recorded Combine synthesized and pre-recorded speech speech

Recorded: “Turn left at”Recorded: “Turn left at”

Synthesized: “Smith Street”Synthesized: “Smith Street”

App just provides: “Turn left at Smith App just provides: “Turn left at Smith Street”Street”

Page 32: Building Mobile Web Applications With ASP.NET Mike Pelton MPelton@microsoft.com Developer & Platform Group Microsoft Ltd

Speech Application SDKSpeech Application SDKBuilt for the .NET platformBuilt for the .NET platform

Integrated with Visual Studio .NETIntegrated with Visual Studio .NET

Speech Controls for dialog authoringSpeech Controls for dialog authoringControls built on the ASP.NET control architectureControls built on the ASP.NET control architecture

Abstracts low-level Speech Application Language TagsAbstracts low-level Speech Application Language Tags

Grammar authoring Grammar authoring Build and edit grammars with graphical representationBuild and edit grammars with graphical representation

Associate recognised terms with semantic interpretationAssociate recognised terms with semantic interpretation

Prompt management Prompt management Prompt Editor for scripting, recording, and tagging Prompt Editor for scripting, recording, and tagging promptsprompts

Testing and debuggingTesting and debuggingSpeech debugging console for tracing through a dialogSpeech debugging console for tracing through a dialog

Telephony Application Simulator for simulating phone-Telephony Application Simulator for simulating phone-based dialogsbased dialogs

Page 33: Building Mobile Web Applications With ASP.NET Mike Pelton MPelton@microsoft.com Developer & Platform Group Microsoft Ltd

Speech Input to a Web PageSpeech Input to a Web Page

Page 34: Building Mobile Web Applications With ASP.NET Mike Pelton MPelton@microsoft.com Developer & Platform Group Microsoft Ltd

Further ReadingFurther Reading

ASP.NET Applications for ASP.NET Applications for Mobile DevicesMobile Devices

- Andy Wigley (Content Andy Wigley (Content Master)Master)

Microsoft Speech Site:Microsoft Speech Site:Microsoft.com/SpeechMicrosoft.com/Speech

http://www.microsoft.com/speech/http://www.microsoft.com/speech/

Downloads, White Papers…Downloads, White Papers…

Page 35: Building Mobile Web Applications With ASP.NET Mike Pelton MPelton@microsoft.com Developer & Platform Group Microsoft Ltd

The slides for this eventThe slides for this eventwill be posted at:will be posted at:

www.microsoft.com/uk/msdn/posteventswww.microsoft.com/uk/msdn/postevents

Page 36: Building Mobile Web Applications With ASP.NET Mike Pelton MPelton@microsoft.com Developer & Platform Group Microsoft Ltd

MSDN ConnectionMSDN ConnectionGet personalised info and a customised RSS feedGet personalised info and a customised RSS feed

The programming language(s) you’re interested inThe programming language(s) you’re interested in

The technology area(s) you’re interested inThe technology area(s) you’re interested in

The information you wantThe information you want

View news, technical resources, events, webcasts View news, technical resources, events, webcasts and community informationand community information

Sign up for MSDN Connection at:Sign up for MSDN Connection at:http://www.microsoft.com/http://www.microsoft.com/uk/msdnuk/msdn

Page 37: Building Mobile Web Applications With ASP.NET Mike Pelton MPelton@microsoft.com Developer & Platform Group Microsoft Ltd

Additional InformationAdditional Information

Post Events SitePost Events SiteAll information on past events, slide decks etcAll information on past events, slide decks etc

http://www.microsoft.com/http://www.microsoft.com/uk/msdn/posteventsuk/msdn/postevents

The UK MSDN Site & FlashThe UK MSDN Site & FlashLocal news, events, webcastsLocal news, events, webcasts

http://www.microsoft.com/uk/msdnhttp://www.microsoft.com/uk/msdn

Register to received the bi-weekly MSDN Flash by emailRegister to received the bi-weekly MSDN Flash by emailhttp://www.microsoft.com/http://www.microsoft.com/uk/msdn/flash.aspxuk/msdn/flash.aspx

Try Visual StudioTry Visual Studiohttp://www.microsoft.com/http://www.microsoft.com/vstudio/tryitvstudio/tryit

Take a look at the Express productsTake a look at the Express productshttp://http://msdn.microsoft.commsdn.microsoft.com/express/express

GotDotNet and ASP.NET – lots of excellent GotDotNet and ASP.NET – lots of excellent resourcesresources

http://www.gotdotnet.comhttp://www.gotdotnet.comhttp://http://www.asp.netwww.asp.net

Page 38: Building Mobile Web Applications With ASP.NET Mike Pelton MPelton@microsoft.com Developer & Platform Group Microsoft Ltd

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