Upload
monique-payet
View
121
Download
2
Embed Size (px)
Citation preview
Rencontres Windows FormsRencontres Windows FormsMitsuru FURUTA - [email protected] FURUTA - [email protected]
HP Partenaire Mondial de HP Partenaire Mondial de MicrosoftMicrosoft
Intégrateur des technologies Microsoft :Intégrateur des technologies Microsoft : Plus de 10M de postes Windows 2000/XP déployés Plus de 10M de postes Windows 2000/XP déployés Plus de 13M de postes MS Exchange 2000/2003 déployésPlus de 13M de postes MS Exchange 2000/2003 déployés Services de support MicrosoftServices de support Microsoft
Développement conjoint de solutions verticales :Développement conjoint de solutions verticales : HP OpenBank – BanqueHP OpenBank – Banque HP CBI.NET – Industrie HP CBI.NET – Industrie HP ISM.NET – TelecomHP ISM.NET – Telecom
Centre d’expertise et de benchmarks dédiés Centre d’expertise et de benchmarks dédiés MicrosoftMicrosoft
Un portfolio de solutions pour une infrastructure Un portfolio de solutions pour une infrastructure Microsoft étendueMicrosoft étendue Serveurs 32 et 64 bitsServeurs 32 et 64 bits Stockage NAS, SANStockage NAS, SAN Postes de travail…Postes de travail…
Windows Mobile Phone EditionWindows XP Edition Tablette PC
Découvrez la nouvelle génération d’environnement de développement pour les Professionnels à prix spécial !
Visual Studio .NET 2003 offre un environnement de développement complet et intégré pour créer, déboguer et déployer des applications pour Microsoft Windows, le Web et les périphériques mobiles.
Le nouveau Microsoft® Visual Studio .NET 2003 Professional Edition spéciale offre toute la productivité de Visual Studio .NET 2003 Professional et inclut également:• Windows Server™ 2003 Standard Edition*• SQL Server™ 2000 Developer Edition*• Les outils Microsoft Visual Studio Tools pour Microsoft Office System – utilisez la puissance du .NET Framework pour écrire du code destiné à des applications Microsoft Word 2003 et Microsoft Excel 2003• Le CD des labs .NET – pour s’auto former sur les technologies de développement .NET. • Un livre de formation à ASP .NET.
Utilisez Visual Studio .NET Professional 2003 Edition spéciale pour• Créer rapidement des applications Web• Augmenter votre productivité pour tout type d’application• Augmenter la performance de vos applications
Faites la mise à jour à partir d’outils Microsoft ou applications concurrentes
* Licences de test et de developpement ** prix moyen estimés
Pour en savoir plus vous pouvez consulter le site
http://www.microsoft.com/france/vstudio/es.mspx
VS .NET 2003 Ed Spéciale……… 927 €HT**
Mise à Jour……………..……..……632 € HT **
Les abonnements MSDNSoyez toujours à la pointe des derniers développements en cours
Les abonnements MSDN donnent accès à l'intégralité des produits et ressources dont les développeurs professionnels ont besoin pour résoudre n'importe quelle problématique de développement, y compris les derniers outils de développement, systèmes d'exploitation et serveurs d'entreprise, ainsi que les applications de productivité personnelle, comme Office 2003 et Visio, la librairie MSDN et un accès au support technique, en fonction du niveau d'abonnement.
Ces abonnements sont devenus un service primordial pour les développeurs leur fournissant un accès prioritaire à plus de 1000 produits mis à jour par DVD, CD ou téléchargements comprenant les derniers outils, plates-formes et technologies serveur
Visual Studio .NET inclus*
* A chaque version de Visual Studio .NET (à partir de la version Pro) correspond une version d'abonnement MSDN. Visual Studio .NET est disponible au téléchargement sur le site réservé aux abonnés MSDN
MSDN Library Abonnement 210 € HT** Mise à jour 105 € HT**MSDN Operating System 797 € HT** Mise à jour 576 € HT**MSDN Professional 1368 € HT** Mise à jour 985 € HT**MSDN Enterprise 2562 € HT** Mise à jour 1775 € HT**MSDN Universal 3263 € HT** Mise à jour 2285 € HT**
Pour en savoir plus vous pouvez consulter le site
http://www.microsoft.com/france/msdn/abonnements** Prix moyen éstimés
AgendaAgenda
Cible: .NET 1.1, .NET 2.0, pas de Cible: .NET 1.1, .NET 2.0, pas de ClickOnce, pas d’accès aux donnéesClickOnce, pas d’accès aux données
13h15 : Présentation .Net / 13h15 : Présentation .Net / InteropérabilitéInteropérabilité
14h15 : Windows Forms, les concepts14h15 : Windows Forms, les concepts 15h30 : Pause15h30 : Pause 16h00 : Windows Forms, IHM avancée16h00 : Windows Forms, IHM avancée 17h15 : Visual Studio : création de 17h15 : Visual Studio : création de
composantscomposants 17h45 : Questions/Réponses17h45 : Questions/Réponses
Présentation .Net / InteropérabilitéPrésentation .Net / Interopérabilité
Rappels de l’architecture .NetRappels de l’architecture .Net Impacts dans le développements Impacts dans le développements
d’applications Windowsd’applications Windows Correspondance avec l’existant (API Correspondance avec l’existant (API
win32)win32)
Présentation .Net / IntéropérabilitéPrésentation .Net / Intéropérabilité Rappels du modèle .NetRappels du modèle .Net
Plateforme d’exécutionPlateforme d’exécution CLR et Framework .NetCLR et Framework .Net Exécution managée (IL) et compilation en deux Exécution managée (IL) et compilation en deux
tempstemps Unification de la plate forme d’exécution, des Unification de la plate forme d’exécution, des
langages, du modèle de programmation langages, du modèle de programmation (Windows, Web, mobile)(Windows, Web, mobile)
Les impacts dans les Windows FormsLes impacts dans les Windows Forms La compilation en deux temps: avantages et La compilation en deux temps: avantages et
inconvénientsinconvénients Nouveau modèle de sécuritéNouveau modèle de sécurité Versions et cohabitation des assemblagesVersions et cohabitation des assemblages DéploiementDéploiement
.NET c’est quoi ?.NET c’est quoi ?
ComposantsSécuritéFlux XML
SimplicitéSimplicitéet et
puissantpuissant
ProtocolesProtocolesStandardStandard
ServicesServicesWebWeb
ClientsClientsRichesRiches
Pages WebPages Web
MobilitéMobilité
XMLXML
Modèle RelationnelModèle Relationnel
Toutes Toutes les basesles bases
Le cœur du FrameworkLe cœur du Framework
Visu
al Stu
dio
.NE
TV
isual S
tud
io .N
ET
CLICLI
CLRCLR
Framework Class LibraryFramework Class Library
Données et XMLDonnées et XML
Web servicesWeb services
WindowsWindowsFormsForms
Web FormsWeb Forms
Common Language SpecificationCommon Language Specification
VBVB C++C++ C#C# ……
Soumis à Soumis à l’ ECMAl’ ECMA
Soumis à Soumis à l’ECMAl’ECMA
SpécificationSpécificationouvertesouvertes
Accès aux Accès aux données basé XMLdonnées basé XML
J#J#
Basé XML, Basé XML, SOAP, GXASOAP, GXA
Common Languages RuntimeCommon Languages Runtime Les pointsLes points essentielsessentiels
CLR = Runtime .NETCLR = Runtime .NET Jeu de dlls pour l’exécution de code managéJeu de dlls pour l’exécution de code managé Gestion mémoire par Garbage CollectorGestion mémoire par Garbage Collector
Managed MemoryManaged Memory Gestion de l’éxécution du code par le code Gestion de l’éxécution du code par le code
managermanager Managed Code (check de sécurité par Managed Code (check de sécurité par
exemple)exemple) Expose un ensemble de services sous forme Expose un ensemble de services sous forme
d’objetd’objet Framework .NETFramework .NET
Standards et SpécificationsStandards et Spécifications ECMA, ISO : CLInfrastructure et C#ECMA, ISO : CLInfrastructure et C#
Assembly et compilationAssembly et compilation
Code .NET = AssemblyCode .NET = Assembly Exe, Dll, .NET Module, Exe, Dll, .NET Module, Pages AspXPages AspX, , Web ServicesWeb Services
Tout code .NET est compilé en 2 temps :Tout code .NET est compilé en 2 temps : Code source vers MSIL Code source vers MSIL
« Compilateurs syntaxiques » (C#, MC++, J#, « Compilateurs syntaxiques » (C#, MC++, J#, VB.NET …)VB.NET …)
Microsoft Intermediate LanguageMicrosoft Intermediate Language IL vers code binaireIL vers code binaire
Just In Time CompilationJust In Time Compilation Compilateur inclus dans la runtime .NETCompilateur inclus dans la runtime .NET
Tout code .NET est exécuté en binaireTout code .NET est exécuté en binaire Pas d’interpréteur : Just In Time CompilationPas d’interpréteur : Just In Time Compilation
The big pictureThe big picture
Application .NET
Memory
DLL
ManagedCode : Assembly
CLR
UnmanagedCode
Win32
COMCOM+ 1.0
Services•JIT Compilation•Sécurité•Base Classes
Process WIN32
Managed Memory
GC
STACK
Debug EngineDebug Engine
IL to NativeIL to NativeCompilerCompiler
ApplicationApplicationDirectoryDirectory
ApplicationApplicationDirectoryDirectory
SetupSetupCopyCopy
BrowserBrowser
Download Download CacheCache
Download Download CacheCache
GlobalGlobalAssemblyAssembly
Cache (GAC)Cache (GAC)
GlobalGlobalAssemblyAssembly
Cache (GAC)Cache (GAC)
AssemblyAssemblyon Target on Target MachineMachine
AssemblyAssemblyon Target on Target MachineMachine
ExécutionExécution
AssemblyAssemblyAssemblyAssembly
DEVELOPMENTDEVELOPMENT DEPLOYMENTDEPLOYMENT
InstallInstall
EXECUTIONEXECUTION
AssemblyAssemblyLoaderLoaderSecuritySecurityClass Class
LoaderLoader
Native .exe Native .exe + GC table + GC table Native .exe Native .exe + GC table + GC table
Code Code ManagerManager
Garbage CollectionGarbage Collection
Exception ManagerException Manager
Thread SupportThread Support
COM InteropCOM Interop
Policy<?xml version="1.0" encoding="utf-8" ?><configuration> <mscorlib> <security> <policy> <PolicyLevel version="1"> <CodeGroup class="UnionCodeGroup" version="1" PermissionSetName="Nothing" Name="All_Code" Description="Code group grants no permissions and forms the root of the code group tree."> <IMembershipCondition class="AllMembershipCondition" version="1"/> <CodeGroup class="UnionCodeGroup" version="1" PermissionSetName="FullTrust"
Hello world !Hello world !
Interopérabilité win32/COMInteropérabilité win32/COM Interopérabilité win32Interopérabilité win32
Problématiques:Problématiques: Appels de fonctions, mapping Appels de fonctions, mapping
mémoire, alignement mémoiremémoire, alignement mémoire Utilisation de pointeurs…Utilisation de pointeurs… Pointeurs de fonctions, ex: callbackPointeurs de fonctions, ex: callback StructLayoutAttributeStructLayoutAttribute, FieldOffsetAttribute, , FieldOffsetAttribute,
GetDelegateForFunctionPointerGetDelegateForFunctionPointer
Chargement statique de librairieChargement statique de librairie Chargement dynamique de librairieChargement dynamique de librairie
Interopérabilité win32/COMInteropérabilité win32/COM
Microsoft Win32 to Microsoft .NET Microsoft Win32 to Microsoft .NET Framework API MapFramework API Map http://msdn.microsoft.com/netframework/http://msdn.microsoft.com/netframework/
default.aspx?pull=/library/en-us/dndotnetdefault.aspx?pull=/library/en-us/dndotnet/html/win32map.asp/html/win32map.asp
Références des fonctions, structures Références des fonctions, structures et constantes de l’API Win32 et constantes de l’API Win32 vers .NETvers .NET http://http://pinvoke.netpinvoke.net//
Interopérabilité win32: chargement et Interopérabilité win32: chargement et appel de librairies (.dll)appel de librairies (.dll)
Interopérabilité win32/COMInteropérabilité win32/COM Interopérabilité COMInteropérabilité COM
Client d’un serveur COM (MediaPlayer)Client d’un serveur COM (MediaPlayer) La classe AxHostLa classe AxHost
– Wrapper un serveur COM existant dans Wrapper un serveur COM existant dans le monde .NETle monde .NET
– Assurer la compatibilité avec le modèle Assurer la compatibilité avec le modèle de composant de .NETde composant de .NET
– Fournir des propriétés compatibles avec Fournir des propriétés compatibles avec le modèle de données de .NET: Dock, le modèle de données de .NET: Dock, énumérés, etc.énumérés, etc.
Librairies managées: DirectX, OfficeLibrairies managées: DirectX, Office
Interopérabilité win32/COMInteropérabilité win32/COM Interopérabilité COMInteropérabilité COM
Création d’un serveur COMCréation d’un serveur COM Register for COM interopRegister for COM interop Regasm.exe: les librairies .NET ne Regasm.exe: les librairies .NET ne
sont pas des objets COM ! (mscoree)sont pas des objets COM ! (mscoree)
Interopérabilité win32/COMInteropérabilité win32/COM Interopérabilité COMInteropérabilité COM
Création d’un serveur COMCréation d’un serveur COM La classe MarshalLa classe Marshal Implémentation d’interfacesImplémentation d’interfaces
– ComImportAttributeComImportAttribute
– InterfaceTypeAttributeInterfaceTypeAttribute
ComVisibleAttribute, GuidAttributeComVisibleAttribute, GuidAttribute ComRegisterFunctionAttribute, ComRegisterFunctionAttribute,
ComUnregisterFunctionAttributeComUnregisterFunctionAttribute
Interopérabilité COM: création d’un Interopérabilité COM: création d’un client puis d’un serveur COMclient puis d’un serveur COM
Windows Forms, les conceptsWindows Forms, les concepts
Présentation: les fenêtres windowsPrésentation: les fenêtres windows HandleHandle MessagesMessages StylesStyles
L’affichage: GDI et GDI+L’affichage: GDI et GDI+ L’affichage multi-fenêtre: l’évènement L’affichage multi-fenêtre: l’évènement
OnPaintOnPaint Empilement des messages: blocageEmpilement des messages: blocage GDI+: gradients, rotations, transparenceGDI+: gradients, rotations, transparence
Windows Forms, les conceptsWindows Forms, les concepts
Présentation: les fenêtres windowsPrésentation: les fenêtres windows Création de la fenêtre:Création de la fenêtre:
CreateParams()CreateParams() Communication avec une fenêtre:Communication avec une fenêtre:
SendMessage()SendMessage() Gestion des messages:Gestion des messages:
WndProc()WndProc() Zone cliente/non clienteZone cliente/non cliente Les classes Form et ControlLes classes Form et Control
Windows Forms: CreateParams & Windows Forms: CreateParams & WndProcWndProc
Windows Forms: SendMessageWindows Forms: SendMessage
Windows Forms: TabControl sans Windows Forms: TabControl sans onglets…onglets…
Windows Forms, les conceptsWindows Forms, les concepts
L’affichage: GDI et GDI+L’affichage: GDI et GDI+ L’affichage multi-fenêtre: stratégies de L’affichage multi-fenêtre: stratégies de
superposition et de rafraîchissementsuperposition et de rafraîchissement Sauvegarde de la mémoire vidéoSauvegarde de la mémoire vidéo RéaffichageRéaffichage
L’évènement OnPaintL’évènement OnPaint Empilement des messages: blocageEmpilement des messages: blocage
Double bufferDouble buffer GDI+: gradients, rotations, transparenceGDI+: gradients, rotations, transparence
Windows Forms: PaintWindows Forms: Paint
Windows Forms: StarFieldWindows Forms: StarField
Windows Forms: CaptureBitmapWindows Forms: CaptureBitmap
PausePause
Reprise à 16h00Reprise à 16h00
Windows Forms, IHM avancéeWindows Forms, IHM avancée Les contrôles Windows FormsLes contrôles Windows Forms
Les containeursLes containeurs SplitContainer, TableLayoutPanel, SplitContainer, TableLayoutPanel,
FlowLayoutPanelFlowLayoutPanel Les ToolStripsLes ToolStrips
MenuStrip, ToolStrip, StatusStrip, MenuStrip, ToolStrip, StatusStrip, ContextMenuStripContextMenuStrip
Les contrôles avancésLes contrôles avancés DataGridView, ListView, TreeView, DataGridView, ListView, TreeView,
ToolTip, WebBrower, etc…ToolTip, WebBrower, etc…
Windows Forms, IHM avancéeWindows Forms, IHM avancée Héritage de Form et contrôles Héritage de Form et contrôles
utilisateursutilisateurs Hiérarchie de FormsHiérarchie de Forms Ajout de propriétés et évènementsAjout de propriétés et évènements
Composants/contrôles auto-installés Composants/contrôles auto-installés dans la toolbox de Visual Studio 2005dans la toolbox de Visual Studio 2005
Windows Forms: IHM avancéeWindows Forms: IHM avancée
Windows Forms, IHM avancéesWindows Forms, IHM avancées Interfaces dynamiquesInterfaces dynamiques
Création dynamique de contrôlesCréation dynamique de contrôles Externalisation des définitionsExternalisation des définitions Liaison dynamique du codeLiaison dynamique du code
XAMLXAML Entièrement basé sur un script XmlEntièrement basé sur un script Xml Peut-être lié à un code behind et/ou Peut-être lié à un code behind et/ou
contenir du code (modèle ASP.NET)contenir du code (modèle ASP.NET) Détache l’application d’un mode de Détache l’application d’un mode de
rendu particulier (GDI, DirectX, Web)rendu particulier (GDI, DirectX, Web)
Windows Forms: interfaces Windows Forms: interfaces dynamiquesdynamiques
Création de contrôles (composants)Création de contrôles (composants)
Propriétés, évènements, attributsPropriétés, évènements, attributs InitialisationInitialisation CollectionsCollections Accès aux donnéesAccès aux données Editeurs de propriétésEditeurs de propriétés Editeurs de composantsEditeurs de composants CodeDom et sérialisation de code…CodeDom et sérialisation de code…
Windows Forms: création de Windows Forms: création de composantscomposants
© 2004 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.