39
Rencontres Windows Forms Rencontres Windows Forms Mitsuru FURUTA - [email protected] Mitsuru FURUTA - [email protected]

Rencontres Windows Forms Mitsuru FURUTA - [email protected]

Embed Size (px)

Citation preview

Page 1: Rencontres Windows Forms Mitsuru FURUTA - mitsufu@microsoft.com

Rencontres Windows FormsRencontres Windows FormsMitsuru FURUTA - [email protected] FURUTA - [email protected]

Page 2: Rencontres Windows Forms Mitsuru FURUTA - mitsufu@microsoft.com

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

Page 3: Rencontres Windows Forms Mitsuru FURUTA - mitsufu@microsoft.com

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 **

Page 4: Rencontres Windows Forms Mitsuru FURUTA - mitsufu@microsoft.com

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

Page 5: Rencontres Windows Forms Mitsuru FURUTA - mitsufu@microsoft.com

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

Page 6: Rencontres Windows Forms Mitsuru FURUTA - mitsufu@microsoft.com

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)

Page 7: Rencontres Windows Forms Mitsuru FURUTA - mitsufu@microsoft.com

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

Page 8: Rencontres Windows Forms Mitsuru FURUTA - mitsufu@microsoft.com

.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

Page 9: Rencontres Windows Forms Mitsuru FURUTA - mitsufu@microsoft.com

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

Page 10: Rencontres Windows Forms Mitsuru FURUTA - mitsufu@microsoft.com

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#

Page 11: Rencontres Windows Forms Mitsuru FURUTA - mitsufu@microsoft.com

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

Page 12: Rencontres Windows Forms Mitsuru FURUTA - mitsufu@microsoft.com

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

Page 13: Rencontres Windows Forms Mitsuru FURUTA - mitsufu@microsoft.com

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"

Page 14: Rencontres Windows Forms Mitsuru FURUTA - mitsufu@microsoft.com

Hello world !Hello world !

Page 15: Rencontres Windows Forms Mitsuru FURUTA - mitsufu@microsoft.com

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

Page 16: Rencontres Windows Forms Mitsuru FURUTA - mitsufu@microsoft.com

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//

Page 17: Rencontres Windows Forms Mitsuru FURUTA - mitsufu@microsoft.com

Interopérabilité win32: chargement et Interopérabilité win32: chargement et appel de librairies (.dll)appel de librairies (.dll)

Page 18: Rencontres Windows Forms Mitsuru FURUTA - mitsufu@microsoft.com

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

Page 19: Rencontres Windows Forms Mitsuru FURUTA - mitsufu@microsoft.com

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)

Page 20: Rencontres Windows Forms Mitsuru FURUTA - mitsufu@microsoft.com

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

Page 21: Rencontres Windows Forms Mitsuru FURUTA - mitsufu@microsoft.com

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

Page 22: Rencontres Windows Forms Mitsuru FURUTA - mitsufu@microsoft.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

Page 23: Rencontres Windows Forms Mitsuru FURUTA - mitsufu@microsoft.com

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

Page 24: Rencontres Windows Forms Mitsuru FURUTA - mitsufu@microsoft.com

Windows Forms: CreateParams & Windows Forms: CreateParams & WndProcWndProc

Page 25: Rencontres Windows Forms Mitsuru FURUTA - mitsufu@microsoft.com

Windows Forms: SendMessageWindows Forms: SendMessage

Page 26: Rencontres Windows Forms Mitsuru FURUTA - mitsufu@microsoft.com

Windows Forms: TabControl sans Windows Forms: TabControl sans onglets…onglets…

Page 27: Rencontres Windows Forms Mitsuru FURUTA - mitsufu@microsoft.com

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

Page 28: Rencontres Windows Forms Mitsuru FURUTA - mitsufu@microsoft.com

Windows Forms: PaintWindows Forms: Paint

Page 29: Rencontres Windows Forms Mitsuru FURUTA - mitsufu@microsoft.com

Windows Forms: StarFieldWindows Forms: StarField

Page 30: Rencontres Windows Forms Mitsuru FURUTA - mitsufu@microsoft.com

Windows Forms: CaptureBitmapWindows Forms: CaptureBitmap

Page 31: Rencontres Windows Forms Mitsuru FURUTA - mitsufu@microsoft.com

PausePause

Reprise à 16h00Reprise à 16h00

Page 32: Rencontres Windows Forms Mitsuru FURUTA - mitsufu@microsoft.com

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…

Page 33: Rencontres Windows Forms Mitsuru FURUTA - mitsufu@microsoft.com

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

Page 34: Rencontres Windows Forms Mitsuru FURUTA - mitsufu@microsoft.com

Windows Forms: IHM avancéeWindows Forms: IHM avancée

Page 35: Rencontres Windows Forms Mitsuru FURUTA - mitsufu@microsoft.com

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)

Page 36: Rencontres Windows Forms Mitsuru FURUTA - mitsufu@microsoft.com

Windows Forms: interfaces Windows Forms: interfaces dynamiquesdynamiques

Page 37: Rencontres Windows Forms Mitsuru FURUTA - mitsufu@microsoft.com

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…

Page 38: Rencontres Windows Forms Mitsuru FURUTA - mitsufu@microsoft.com

Windows Forms: création de Windows Forms: création de composantscomposants

Page 39: Rencontres Windows Forms Mitsuru FURUTA - mitsufu@microsoft.com

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