Upload
others
View
15
Download
0
Embed Size (px)
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