New .net et Applications mobiles · 2007. 2. 26. · Remoting Serialization Serialization...

Preview:

Citation preview

.net .net et et

Applications mobilesApplications mobiles

Soutenu par :

- Mr S.EZZIZI- Mr A.CHETOUANE

Encadré par :

- Mr M.ELEULDJ

IntroductionIntroduction

* Plate* Plate--forme complète pour développer,forme complète pour développer,déployer et exécuter des applications web,déployer et exécuter des applications web,Windows, mobiles et serveur.Windows, mobiles et serveur.

* Repose sur le Framework.net* Repose sur le Framework.net

* Est apparue en 2002.* Est apparue en 2002.

Visual Studio.NET,.NET Framework

.NET Services .NET Devices

.NET Enterprise Servers

.NET Clients.NET ClientsNouvelle Nouvelle générationgénérationde de périphériquespériphériques

WindowsWindows--poweredpoweredSupporteSupporte XML et les XML et les services Webservices WebFonctionneFonctionne en en autonomeautonome ouou en en mode mode connectéconnecté

.NET Framework.NET Framework

Power & Power & SimplicitySimplicity

Standard Standard ProtocolsProtocols

Web Web ServicesServices

ComponentsSecurity

TransactionsXML

Abilities

Rich Rich ClientsClients

Web Web BrowsersBrowsers

Mobile Mobile DevicesDevices

XMLXML

Relational Access Relational Access

AnyAnyDatabaseDatabase

VisualVisual Studio .N

ETStudio .N

ET

Fondé sur des standardsFondé sur des standards

CLICLICLRCLR

FrameworkFramework Class Class LibraryLibrary

Données et XMLDonnées et XML

XML WebXML Webservicesservices Windows Windows FormsForms

Web Web FormsForms

CommonCommon LanguageLanguage SpecificationSpecification

VBVB C++C++ C#C# ……

Soumis à Soumis à l’ ECMAl’ ECMA

Soumis à Soumis à l’l’ECMAECMA

SpécificationSpécificationouvertesouvertes

Accès aux Accès aux données basé XMLdonnées basé XML

JScriptJScript

Basé XML, Basé XML, SOAPSOAP

Visual Studio .NETVisual Studio .NET

Environnement de développement pour la construction Environnement de développement pour la construction d’applications classique et Web d’entreprises.d’applications classique et Web d’entreprises.

Prise en charge complète du Prise en charge complète du FrameworkFramework

IDE unique pour tous les langagesIDE unique pour tous les langages

Ouvert et extensibleOuvert et extensible

Permet de suivre toutes les étapes du cycle de Permet de suivre toutes les étapes du cycle de développement d’une applicationdéveloppement d’une application

Les objectifs du Les objectifs du FrameworkFramework

Unifier les modèles de programmationUnifier les modèles de programmation

Simplifier fortement le développement Simplifier fortement le développement d’applicationsd’applications

Fournir un environnement d’exécution Fournir un environnement d’exécution robuste et rapiderobuste et rapide

Intégrer les services Web XML en natifIntégrer les services Web XML en natif

Les classes de basesLes classes de bases

ThreadingThreadingResourcesResourcesGlobalizationGlobalization

System System

System.Data (ADO .NET)System.Data (ADO .NET) System.XMLSystem.XML

System.Web (ASP .NET)System.Web (ASP .NET)

DiagnosticsDiagnostics

ConfigurationConfiguration

CollectionsCollections

NetNet

IOIO

TextText

SecuritySecurity

CommonCommon

OLEDBOLEDB

SQLTypesSQLTypes

SQLClientSQLClient

XPathXPath

XSLXSL

RuntimeRuntimeInteropServicesInteropServices

RemotingRemoting

SerializationSerialization

SerializationSerialization

ConfigurationConfiguration SessionStateSessionState

CachingCaching SecuritySecurity

ServicesServicesDescriptionDescription

DiscoveryDiscovery

ProtocolsProtocols

UIUIHTMLControlsHTMLControls

WebControlsWebControlsSystem.DrawingSystem.Drawing

ImagingImaging

Drawing2DDrawing2D

TextText

PrintingPrinting

System.Windows.FormsSystem.Windows.Forms

DesignDesign ComponentModelComponentModel

SchemaSchema

ReflectionReflection

ServiceProcessServiceProcess

Compact FrameworkCompact Framework

.NET .NET AndAnd DevicesDevices

codecodeWeb pagesWeb pages

Visual Studio.NETVisual Studio.NET

.NET Framework.NET Framework

Mobile Web Mobile Web BrowserBrowser

.NET Compact.NET CompactFrameworkFramework

Compact Compact FrameworkFramework .NET.NET

Moteur d’ Exécution .NETMoteur d’ Exécution .NETExécution managée sur type Exécution managée sur type safesafePas de variables non initialisées, de Pas de variables non initialisées, de castcastdangereux, mauvais indexage de tableaux, dangereux, mauvais indexage de tableaux, mauvaise arithmétique de pointeursmauvaise arithmétique de pointeursGarbageGarbage collectioncollectionCommonCommon type type systemsystem

Appel, héritage et Appel, héritage et debugagedebugage de sources entre de sources entre différents langagesdifférents langages

PlatformPlatform Invocation disponibleInvocation disponible

Compact Compact FrameworkFramework

ButtonButtonCheckBoxCheckBoxComboBoxComboBoxContextMenuContextMenuDataGridDataGridDomainUpDownDomainUpDownFileOpenDialogFileOpenDialog

ContrôlesContrôles supportéssupportés

FileSaveDialogFileSaveDialogHScrollBarHScrollBarImageListImageListInput PanelInput PanelLabelLabelListBoxListBoxListViewListView

MainMenuMainMenuNumericUpDownNumericUpDownPanelPanelPictureBoxPictureBoxProgressBarProgressBarRadioButtonRadioButtonStatusBarStatusBar

TabControlTabControlTextBoxTextBoxTimerTimerToolBarToolBarTrack BarTrack BarTreeViewTreeViewVScrollBarVScrollBar

ContrôlesContrôles non non supportéssupportés

CheckedListBoxCheckedListBoxColorDialogColorDialogErrorProviderErrorProvider

HelpProviderHelpProviderLinkLabelLinkLabelNotifyIconNotifyIcon

ToolTipToolTipSplitterSplitterFontDialogFontDialog

Compact Compact FrameworkFrameworkSupport des Web ServicesSupport des Web Services

Appel possible de Web servicesAppel possible de Web services«« AllAll encodingencoding typestypes »»

Invocation synchrone et asynchroneInvocation synchrone et asynchroneBasic Basic andand Digest Digest authenticationauthenticationSupport du Support du SecureSecure SocketsSockets Layer pour le Layer pour le cryptage (SSL)cryptage (SSL)Custom SOAP headersCustom SOAP headersSOAP Extension SOAP Extension FrameworkFramework

Compact Compact FrameworkFramework

Support ADO.NETSupport ADO.NETGestion de données Gestion de données OffLineOffLine avec les avec les DataSetDataSet

Communication des Communication des DataSetDataSet via XMLvia XMLModèle de données Commun sur le PC et les Modèle de données Commun sur le PC et les devicesdevicesModèle extensible de provider ADO.NETModèle extensible de provider ADO.NETData providers inclusData providers inclus

SQL Server (SQL Server (System.Data.SqlClientSystem.Data.SqlClient))SQL Server CE (SQL Server CE (System.Data.SqlServerCeSystem.Data.SqlServerCe))

.NET .NET FrameworkFramework

SystemSystem

System.DataSystem.Data (ADO .NET)(ADO .NET) System.XMLSystem.XML

System.Web (ASP .NET)System.Web (ASP .NET)

DiagnosticsDiagnosticsConfigurationConfigurationCollectionsCollections

NetNetIOIO

ThreadingThreadingTextText

SecuritySecurity

CommonCommonOLEDBOLEDB

SQLTypesSQLTypesSQLClientSQLClient

XPathXPathXSLXSL

RuntimeRuntimeInteropServicesInteropServices

RemotingRemoting

SerializationSerialization

SerializationSerialization

ConfigurationConfiguration SessionStateSessionStateCachingCaching SecuritySecurity

ServicesServicesDescriptionDescription

DiscoveryDiscovery

ProtocolsProtocols

UIUIHTMLControlsHTMLControls

WebControlsWebControlsSystem.DrawingSystem.Drawing

ImagingImaging

Drawing2D/3DDrawing2D/3D

TextText

PrintingPrinting

System.Windows.FormsSystem.Windows.Forms

DesignDesign ComponentModelComponentModel

SchemaSchema

ReflectionReflection

ResourcesResourcesGlobalizationGlobalization

ServiceProcessServiceProcess

Compact Compact FrameworkFramework .NET pour .NET pour PocketPocket PCPC

SystemSystem

System.DataSystem.Data (ADO .NET)(ADO .NET) System.XMLSystem.XML

System.Web (ASP .NET)System.Web (ASP .NET)

DiagnosticsDiagnosticsConfigurationConfigurationCollectionsCollections

NetNetIOIO

ThreadingThreadingTextText

SecuritySecurity

CommonCommonOLEDBOLEDB

SQLServerCeSQLServerCeSQLClientSQLClient

XSlt./XPathXSlt./XPathXSLXSL

RuntimeRuntimeInteropServicesInteropServices

RemotingRemoting

SerializationSerialization

SerializationSerialization

ConfigurationConfiguration SessionStateSessionStateCachingCaching SecuritySecurity

ServicesServicesDescriptionDescription

DiscoveryDiscovery

ProtocolsProtocols

UIUIHTMLControlsHTMLControls

WebControlsWebControlsSystem.DrawingSystem.Drawing

ImagingImaging

Drawing2D/3DDrawing2D/3D

TextText

PrintingPrinting

System.Windows.FormsSystem.Windows.Forms

DesignDesign ComponentModelComponentModel

SchemaSchema

ReflectionReflection

ResourcesResourcesGlobalizationGlobalization

ServiceProcessServiceProcess

Accès aux donnéesAccès aux donnéesDifférentes technologies fournis par Différentes technologies fournis par

WindowsWindowsSQL Client et ADO.NETSQL Client et ADO.NETSQL Ce Client et SQL Ce Client et MergeMerge ReplicationReplicationRemoteRemote Data Access (RDA) Pull et Data Access (RDA) Pull et PushPushServices WebServices WebStockage de fichiers XMLStockage de fichiers XML

j2EE vs .netj2EE vs .net

.NET Enterprise Solution.NET Enterprise Solution

SQLServer

IIS on W2k Server

.NET managed

componentASP.NET

WindowsClient

Browser

J2EE Enterprise SolutionJ2EE Enterprise Solution

DB Server

Java App Server

EJBServletJSP

Java Client

Browser

75007500

90009000

50005000

25002500

Java Java

User User InterfaceInterface

4,410

Data TierData TierMiddle TierMiddle Tier

2,865

.NET .NET

14,273

5,891

Total Lines Total Lines of Codeof Code

710

5,404

761 412 74

2,566

Lignes de Codes nécessairesLignes de Codes nécessaires

1150011500

1400014000

1500015000

Microsoft et la Microsoft et la mobilitémobilité

Mobilité: Les enjeuxMobilité: Les enjeux

Responsables fonctionnelsResponsables fonctionnelsRendre les employés plus productifsRendre les employés plus productifsRéduction des cycles Réduction des cycles –– Rapidité de prise de Rapidité de prise de décisiondécisionRéponse client plus rapide Réponse client plus rapide –– Fidélisation Fidélisation accrueaccrue

Responsables ITResponsables ITAccès données et réseaux sécurisésAccès données et réseaux sécurisésInfrastructure flexible et évolutiveInfrastructure flexible et évolutivePrise en compte de l’existantPrise en compte de l’existant

Périphériques mobiles,Périphériques mobiles,pourquoi en avoir créé plusieurs ?pourquoi en avoir créé plusieurs ?

Le périphérique “idéal” n’existe pas !Le périphérique “idéal” n’existe pas !L’expérience utilisateur est optimisé pour chaque usageL’expérience utilisateur est optimisé pour chaque usageLes standards de l’Internet sont clés pour l’acceptationLes standards de l’Internet sont clés pour l’acceptationAccès aux eAccès aux e--mails de l’entreprise est très importantmails de l’entreprise est très importantFocusFocus sur les solutions, pas sur la technologiesur les solutions, pas sur la technologieSmartphoneSmartphone et et PocketPocket PC Phone PC Phone EditionEdition orientés donnés !orientés donnés !

PDA orienté PDA orienté donné qui donné qui

fait téléphonefait téléphone

Premier téléphone Premier téléphone orienté donnéorienté donné

2 périphériques 2 périphériques avec Bluetoothavec Bluetooth

PocketPocket Pc / Pc / SmartphoneSmartphone

Pocket PC :Pocket PC :Orienté données : usage N° = Orienté données : usage N° = traitement de donnéestraitement de donnéesGrand écranGrand écranNavigation styletNavigation styletCapacité de communication au Capacité de communication au service de la donnéeservice de la donnée

Émulateur Pocket PC 2003

SmartphoneSmartphone ::Un bon téléphone avant tout (compacité, Un bon téléphone avant tout (compacité, poids, autonomie en veille & poids, autonomie en veille & communication)communication)

Usage premier : communication vocaleUsage premier : communication vocaleLes données au service d’un usage plus Les données au service d’un usage plus aisée de la communication vocale Ex: aisée de la communication vocale Ex: carnet de contactcarnet de contact

L’intégration transparente de services L’intégration transparente de services mobiles complémentaires : Ex: Portail mobiles complémentaires : Ex: Portail internetinternet

Le «Le « tout en untout en un » parfait pour un usage » parfait pour un usage modérée de la modérée de la donnéedonnée

PocketPocket Pc / Pc / SmartphoneSmartphone

Émulateur Smartphone 2003

MIT vs .Net CFMIT vs .Net CF

MIT vs .Net CFMIT vs .Net CF

Problèmes de Problèmes de déploiement déploiement

Riche en Riche en fonctionnalité fonctionnalité

Mode connecté et Mode connecté et non connecté non connecté

.net Compact .net Compact frameworkframework

Fonctionne sous un Fonctionne sous un navigateurnavigateur

Uniquement en mode Uniquement en mode connectéconnecté

Pas de problème de Pas de problème de déploiementdéploiement

BcpBcp d’appareilles d’appareilles mobiles mobiles

Mobile Mobile internetinternettoolkittoolkit

InconvenientsInconvenientsAvantagesAvantages

Processus de rendu d’une page web Processus de rendu d’une page web mobilemobile

Processus de rendu au niveau du serveurProcessus de rendu au niveau du serveur

Détection des capacités du periph

Détection des capacités du periph

Récupération des info Récupération au user agent et machine.conf du serveur

Execution de la pageASP.net (*.aspx)

Execution de la pageASP.net (*.aspx)

Si c la première exécution compilation justin time sinon exécution directe

Les pages compilées ne sont pas recompilées pour chaque périphérique

Rendu de la page Rendu de la page La page demandée est rendu dans le langage compatible avec le périphérique (cHtml ,html ,wml )

Résultat d’une simple application Résultat d’une simple application hellohello

Wireless Markup Language (WML)

Langage pas très complexeLangage pas très complexeBasé sur l’Basé sur l’HTMLHTMLSimilarité uniquement dans la structureSimilarité uniquement dans la structureExemple:Exemple:

<?xml version=”1.0”?><!DOCTYPE wml PUBLIC “-//WAPFORUM//DTD WML 1.1//EN” “http://www.wapforum.org/DTD/wml_1.1.xml”>

<wml><card id=”main” title=”Hello Mobile Device World Example”>

<p>Hello Mobile Device User</p>

</card></wml>

Création d’une application mobile en Création d’une application mobile en ASP.netASP.net

ASP.netASP.net mobile contrôles sont définis de la même mobile contrôles sont définis de la même manière qu’en manière qu’en ASP.netASP.netIl faut ajouter en tête de page :Il faut ajouter en tête de page :

<%@ Page Inherits=”System.Web.UI.MobileControls.MobilePage” Language=”vb” %>

<%@ Register TagPrefix=”mobile” Namespace=”System.Web.UI.MobileControls” Assembly=”System.Web.Mobile” %>

Exemple simple d’application mobile

<%@ Page Inherits=”System.Web.UI.MobileControls.MobilePage” Language=”vb”%><%@ Register TagPrefix=”mobile” Namespace=”System.Web.UI.MobileControls”

Assembly=”System.Web.Mobile” %><script language=”vb” runat=server>

sub One_OnActivate (Source as Object, E as EventArgs)ActiveForm = TwoEnd Sub

</script><Mobile:Form id=”One” runat=server OnActivate=”One_OnActivate”>

<Mobile:Label runat=server>Form One</Mobile:Label></Mobile:Form><Mobile:Form id=”Two” runat=server>

<Mobile:Label runat=server>Form Two</Mobile:Label></Mobile:Form>

ConclusionConclusionLa présentation des applications mobiles sur .net requiert plus qu’un rapport ou exposé.

Ce n’est nullement la documentation qui manque sur Internet.

Nous avons essayé durant cette présentation de survoler un peu toutes les technologies utilisées ainsi qu’introduire en quelque sorte le travail de nos collègues.

Merci pour votre attention

Recommended