Vous êtes sur la page 1sur 15

EFREI Microsoft

Dveloppement .NET : 2/3


WinForms & vnements

8 dcembre 2008

Dveloppement .NET : 2/3

Sommaire
Introduction .................................................................................................................. 3 Votre premier programme WinForm ............................................................................. 4
Cration de votre projet ................................................................................................................ 4 Projet Application Console vs Applicaiton Windows ...................................................................... 5 Projet Application Console ........................................................................................................ 5 Projet Application Windows ...................................................................................................... 5 Importation des classes mtiers de latelier 1 ............................................................................... 6 Le designer de Visual Studio .......................................................................................................... 6 Les classes partielles (optionnel) ................................................................................................... 7

Cest parti : ralisation de notre programme.................................................................. 9


Votre premier contrle .................................................................................................................. 9 Le traditionnel menu droulant ..................................................................................................... 9 Les vnements en thorie (optionnel) ........................................................................................ 10 Liste de donnes .......................................................................................................................... 10 Tableau de donnes .................................................................................................................... 12 Pour aller plus loin (Optionnel) .................................................................................................... 13

Conclusion ................................................................................................................... 14 Liens et Ressources ...................................................................................................... 15

Ce document est le TP propos lors de la formation Dveloppement .NET : WinForms et vnements . Cette formation est la deuxime dune srie de trois consacres au dveloppement .NET.

Dveloppement .NET : 2/3

Introduction
Dans cet atelier, nous vous proposons de continuer lapplication de gestion de commandes dune entreprise en ngoce commence dans latelier 1. Cette fois, nous allons donner un peu plus de style notre interface, en passant du traditionnel mode console la fentre Windows volue. A nous les tableaux, boutons et autres gestion de souris ! En plus des bases des applications WinForms, cet atelier vous permettra de vous familiariser avec les notions dvnements, indispensables lorsque nous crons un programme dans un langage de haut niveau. Cet atelier est divis en 3 parties : Cration dun programme WinForm Vos premiers contrles Cest parti ! Evnements et DataBinding

Tout au long de ce TP, vous trouverez diffrentes astuces de Visual Studio, qui apporte aux dveloppeurs .NET une aide prcieuse ce qui en fait un lment prpondrant dans lcosystme .NET .

Dveloppement .NET : 2/3

Votre premier programme WinForm


La semaine dernire, nous vous avons indiqu que le Framework .NET tait constitu de deux lments principaux : la CLR, Common Langage Runtime, machine virtuelle (comme la machine virtuelle Java) qui gre lexcution de votre programme en grant notamment la mmoire ; et la BCL, Base Classe Library. Il ny a donc pas de secret, les WinForm (abrviation de Windows Form) font parties de la BCL. En ralit, il sagit simplement dun ensemble de classes de la BCL permettant dinteragir avec les lments dinterface natifs de Windows, partir de .NET. Il sagit donc dune surcouche (wrapper) encapsulant les APIS Windows pour les programmeurs .NET. Cest en partie pour cela que .NET nest pas portable et ne fonctionne que dans un environnement Windows. Nanmoins, il est possible de trouver des implmentations de .NET compatibles avec dautres systmes, comme Mono, dvelopp par Novell. Mais cela dpasse le cadre de notre formation

Cration de votre projet


Encore une fois, Visual Studio va tre votre meilleur ami pour raliser votre application .NET. Il va dailleurs tre trs efficace lors de la ralisation de projet WinForm car il va vous proposer une srie dassistants ralisant beaucoup de tches rbarbatives pour vous. Nous allons donc crer notre premier projet WinForm. 1. Pour cela, ouvrez Visual Studio 2. Dans la page de dmarrage, ou via le menu Fichier, veuillez crer un nouveau projet. 3. Vous avez dans larborescence de gauche les diffrentes catgories de projet que vous pouvez crer avec les diffrents langages .NET installs sur votre machine. Slectionnez la catgorie Visual C#dans cette liste, puis Windows, et enfin le type de projet Application Windows . 4. Entrez un nom pour cette solution AppliGestion et un emplacement dans votre systme de fichier. En slectionnant Application Windows comme type de projet, vous avez indiqu Visual Studio de crer pour vous les bases de votre programme, en crant les quelques fichiers ncessaires celui-ci. Mais concrtement, quelles sont les diffrences et similitudes entre un projet WinForm et un projet console ?

Dveloppement .NET : 2/3

Projet Application Console vs Applicaiton Windows


Projet Application Console Fichiers de votre projet Projet Application Windows Fichiers de votre projet

Les dossiers Properties et References mis part, il ne reste plus que le fichier Program.cs et la classe associe. Ce fichier contient seulement la mthode statique Main, mthode execute lorsque votre programme se lance.

Cette fois, en plus des dossiers Properties et References , le projet contient non seulement la classe Program.cs avec la mthode statique Main, mais galement le fichier Form1.cs, dcrivant la classe de notre interface. En effet, rappelez vous, en .NET, tout est objet !

Contenu du main [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Rien est fait de base, cest donc Application.Run(new Form1()); } lutilisateur de crer la logique de son programme. Ici, par dfaut, nous constatons que 3 instructions sont prsentes. Le but de ces instructions est dtablir les paramtres ncessaires lexcution de notre interface, puis dinstancier un objet de type Form1, dont la classe est dfinie dans le fichier Form1.cs suscit. Le but de ce main est donc de dfinir des paramtres gnraux de notre programme, puis de lancer notre interface graphique. Proprits de compilation Proprits de compilation En faisant un clic droit sur votre projet Ici, la proprit Output type est sur Windows dans lexplorateur de solution, vous Application . accderez aux proprits de compilation. Cette proprit est prsente pour indiquer au Le but ici nest pas de dtailler toutes ces proprits et tous le processus de compilateur la cible de votre programme. compilation, mais de vous montrer que la proprit Output type est sur Console Application

Contenu du main static void Main(string[] args) { }

Dveloppement .NET : 2/3

Importation des classes mtiers de latelier 1


Lors de notre premier atelier, nous avons cr un ensemble de classes (Entreprise, Commande). Ces classes ne sont pas spcifiques pour des projets WinForm ou Console, ce sont simplement des classes .NET. Nous allons donc les rutiliser dans notre nouveau projet. Pour cela, nous allons les importer dans notre projet en passant par lexplorateur de solution. 1. Dans lexplorateur de solution, faite un clique droit sur votre projet puis Ajouter et enfin Elment existant . 2. Dans lexplorateur qui vient de souvrir, slectionner les classes Client , Commande , Entreprise et Fournisseur . (Pensez maintenir la touche Ctrl pour les slections multiples) 3. Vrifier que vos classes sont bien dans le mme namespace que votre application. Si vous avez suivis nos tutoriels, elles doivent se trouver dans le namespace AppliGestion, c'est-dire le mme namespace que les autres classes (dont votre programme et votre formulaire) de votre application. Pour information, une autre solution aurait t de crer un projet de type Librairie de classe contenant nos classes mtiers. Nous aurions ainsi spar compltement ces classes de notre interface. Nous reviendrons sur ce genre de considrations lors de latelier 3.

Le designer de Visual Studio


En ouvrant le fichier Form1.cs, Visual Studio va ouvrir votre fichier en mode Design. Grce celuici, vous allez pouvoir positionner les lments sur votre interface en effectuant de simples glisserdposer . Vous devriez avoir dans un coin de votre IDE (Integrated Development Environment : Visual Studio) la ToolBox, contenant les contrles de base que vous allez pouvoir ajouter votre interface. Nhsitez pas jouer avec en insrant sur votre form des boutons, labels, images Une autre boite de dialogue intressante est la fentre Proprits qui va vous afficher sous forme de tableau les diffrentes proprits que vous allez pouvoir modifier sur llment actif. Cet lment actif peut tre la Form, ou tous les autres contrles que vous aurez ajout. Il suffit simplement de cliquer sur un contrle pour que les proprits sactualisent. Une fois que vous avez slectionn un contrle pour afficher ses proprits, vous pouvez cliquez sur lclair prsent dans les boutons de la boite de dialogue Proprits . Cet clair va vous permettre de switcher cette boite de dialogue vers le mode Evnements . Vous serez ainsi capable dafficher et de modifier les mthodes que vous souhaitez associer aux diffrents vnements du contrle actifs. Ne vous inquitez pas, vous aurez plus de dtails sur les vnements dans quelques paragraphes Tous ces outils (Mode Design, bote outils, fentre de proprits) ne sont que des assistants de Visual Studio. Derrire, rien nest magique. En ralit, Visual Studio va juste gnrer pour vous le fichier Form1.Design.cs (complment la classe Form1.cs), contenant toutes les dclarations et instructions ncessaires pour reproduire linterface que vous avez cr en mode design, et que vous avez configur grce la fentre des proprits.

Dveloppement .NET : 2/3

Par exemple, le fait davoir glisser un bouton sur votre Form a cr dans la mthode InitializeComponent() les instructions suivantes : // // button1 // this.button1.Location = new System.Drawing.Point(81, 67); this.button1.Name = "button1"; this.button1.Size = new System.Drawing.Size(75, 23); this.button1.TabIndex = 0; this.button1.Text = "button1"; this.button1.UseVisualStyleBackColor = true;

Les classes partielles (optionnel)


Jusqu prsent, nous avons cr un fichier et seulement un fichier chaque fois que nous voulions crer une classe. Si vous le souhaitez, il est tout fait possible de crer plusieurs classes dans un seul fichier (cas de classes utilitaires simples dans un fichier Utils par exemple). Nanmoins, je ne prconise pas cette solution car il est beaucoup plus facile de sy retrouver lorsque lon respecte le principe une classe, un fichier . Par contre, avec le framework 1.0, il tait impossible de crer une classe sur plusieurs fichiers. Le framework 2.0 a apport une nouveaut apprciable : les classes partielles. Grce au mot cl Partial , il est donc possible de dcrire une classe dans plusieurs fichiers. Mais quoi cela sert til ?

Dveloppement .NET : 2/3

Il est envisageable de sparer des dfinitions de classes trop longues. Mais je ne conseille pas cette solution. Si vous avez une classe vraiment trop longue, cest que vous avez un problme de conception. Essayez de factoriser ;-) Il peut tre plus facile de travailler plusieurs sur une classe en mme temps. Attention, selon moi, cela narrive pas aussi souvent que cela, ne crez pas un fichier par dveloppeur pour toutes les classes de votre projet ! Vous utilisez des outils gnrateurs de code, comme Visual Studio ;-) Il sera ainsi pratique de pouvoir sparer le code gnr, du code crit par vous-mme. Cela vous permettra de vous concentrer sur lessentiel, et de vous assurez galement que loutil ne va pas modifier le code que vous avez crit ! Cest donc ce mcanisme qui est utilis par le designer et la fentre de proprits. Les fichiers Form1.designer.cs et Form1.cs dfinissent la mme classe !

Vous avez compris, je pense que les classes partielles doivent tre utilises avec prcaution pour garder une architecture de projet confortable et maintenable. Nanmoins, elles sont indispensables lorsque lon travaille avec un gnrateur de code.

Dveloppement .NET : 2/3

Cest parti : ralisation de notre programme


Durant cette sance de formation nous allons apprendre manipuler les principaux contrles de bases de lenvironnement de dveloppement Visual Studio. Le framework .NET intgre de base plusieurs dizaines de composants graphiques pouvant tre utiliss dans vos applications winforms. Il faut savoir quil est aussi possible de crer soit mme ses propres composants ayant leurs propres comportements et leurs propres design.

Votre premier contrle


Pour commencer nous allons ajouter un premier contrle notre winform. Pour raliser cette opration il est ncessaire de ce mettre en mode designer au sein de Visual Studio. Dans un premier temps nous allons ajouter un composant label . Celui-ci a pour vocation premire dafficher du texte. Pour le placer sur la forme, on slectionne donc le composant label dans la boite outils et on le drag & drop sur la winform de notre projet. Voil, vous venez dajouter votre premier composant, et il faut savoir que cela fonctionne de la mme manire pour la quasi-totalit des composants prsents dans Visual Studio. Pour faire simple nous allons modifier le texte du Label. Pour cela, nous allons utiliser la fentre de proprits dcrit dans la partie prcdente. Nhsitez pas passer un peu de temps pour dcouvrir toutes les proprits prsentes pour un Label, certaines vont tre communes aux autres contrles. Pour tudier plus en dtail les diffrents contrles et connatre leurs proprits, mthodes et comportements nhsitez pas consulter la librairie de classe MSDN en ligne (http://msdn2.microsoft.com) Pour modifier, le texte, il suffit simplement dditer le champ Text se trouvant dans les proprits du label. Renseignez le champ avec le texte qui vous plaira (par exemple Toto ou Hello World ). Vous avez russiavec succs la cration et ldition dun composant graphique. A prsent nous allons composer notre interface de la mme manire; en dposant, tudiant et codant le comportement des contrles (H oui, il y a malgr tout quelques petits choses coder avec ses mains)

Le traditionnel menu droulant


Nous allons ajouter un menu droulant au notre application. Dans la Boite outils de Visual Studio, on fait glisser le composant menustrip sur notre winform. Comme vous pouvez le constater, ce composant de ne se place pas o lon veut sur la fentre, mais vous pouvez noter quune barre de menu a fait son apparition dans winform, et que le composant menustrip est reprsent dans un menu sous le designer. Nous allons crer notre premier menu. Sur la winform cliquez lendroit o il y a marqu cliquer ici dans barre de menu. A prsent vous pouvez diter les label de votre menu. Entrons comme nom de menu Fichier puis en dessous ajouter un sous menu que vous appelez Exit ou Fermer . Nous allons maintenant tester notre application. Pour cela, nous allons demander Visual Studio de compiler notre programme, puis de lexcuter. Le raccourci magique pour faire cela est F5. Visual Studio va mme lancer le mode Debug, que nous dtaillerons lors de la troisime sance.

Dveloppement .NET : 2/3

Testez votre tout nouveau menu. Formidable tout fonctionne, mais malheureusement lorsque lon clique sur Exit rien ne se passe ! Pour cela il est ncessaire de coder un comportant se rattachant au contrle. Concrtement, llment Exit a un vnement, correspondant au click gauche, onClick auquel on va devoir rpondre pour pouvoir excuter des instructions lorsque celui-ci va se dclencher. Cette rponse est en ralit une mthode. Nous allons donc crer une mthode pour rpondre lvnement onClick du ToolStripMenuItem Exit et indiquer cet objet dexcuter cette mthode lorsque lvnement onClick se produira. Pour lvnement onClick, rien de plus simple, Visual Studio nous offre un petit raccourci sympathique, il suffit de double cliquer sur notre lment (sur Exit ) pour crer la mthode et lattacher lvnement. Nous allons donc coder la fonction de fermeture de lapplication. Entre les accolades entrez le code suivant : this.close() ; Normalement, vous ne devriez pas avoir de soucis pour comprendre cette instruction. this reprsente lobjet en cours, c'est--dire linstance de votre fentre Form1, et close() est une mthode de la classe Form1. Vous allez me dire que vous navez pas cr cette mthode form. Mais souvenezvous des notions dhritage ! Form1 hrite de la classe System.Windows.Forms.Form, qui contient la mthode close() ! Compilez et excutez une nouvelle fois lapplication. Si tout se passe bien vous devriez tre en mesure de pouvoir fermer la fentre de votre programme. Vous venez de crer votre premier vnement ! A prsent vous avez quasiment toutes cartes en mains pour faire vos propres interfaces graphiques. Toute IHM se programme de cette manire. Nous nallons pas en rester l ! Il pourrait tre intressant de manipuler des contrles un peu plus volus.

Les vnements en thorie (optionnel)


Les vnements offrent le moyen une classe ou un objet de notifier d'autres classes ou objets lorsqu'une situation intressante se produit. La classe qui envoie (ou dclenche) l'vnement est appele diteur et les classes qui reoivent (ou grent) l'vnement sont appeles abonnes. Dans une application C# Windows Forms ou Web typique, vous vous abonnez des vnements dclenchs par des contrles tels que les boutons et les zones de liste. Vous pouvez utiliser l'environnement de dveloppement intgr (IDE) de Visual C# pour parcourir les vnements qu'un contrle publie et slectionner ceux que vous souhaitez grer. L'IDE ajoute automatiquement une mthode de gestionnaire d'vnements vide, ainsi que le code pour s'abonner l'vnement

Liste de donnes
Lors de notre premire formation, nous avions cr une application console permettant de grer des commandes avec des clients et des fournisseurs. Les classes que nous avions dveloppes reprsentes la couche mtier de lapplication. Pour rappel, le but de notre projet est dajouter une couche de prsentation grce aux winforms.

10

Dveloppement .NET : 2/3

Avant toute chose, il faut initialiser des donnes pour que notre futur programme puisse les exploiter. Nous allons donc crer une liste de clients au sein de notre programme (dans cette formation nous nappliquerons pas les principes du modle MVC, ou dautres architectures avances afin de faciliter le plus possible la comprhension des composants formant une IHM). Crons une List qui sera une donne de la classe forme. Pour cela on place la dclaration juste aprs le public partial class Form1 : Form , dans le fichier Form1.cs. Pour crer une liste contenant des clients, copier-coller cette ligne de code private BindingList<Client> clientList; Pour utiliser une BindingList, vous allez devoir, comme pour le premier atelier, utiliser le namespace (systme de noms en franais) System.ComponentModel. Vous devez donc ajouter cette ligne dans la liste des using de votre fichier (tout en haut) : Using System.ComponentModel; Pour initialiser des donnes dans cette liste, nous allons crer une commande dans le menu de notre application. Cette commande, que vous pouvez intituler Charger les donnes va, lors de lappel de lvnement click, crer quelques clients et les ajouter dans la liste clientList que nous venons de crer. Pour faire tout cela, il suffit de faire comme pour la commande Exit , c'est--dire de crer lintitul de la commande, puis de double cliquer dessus pour gnrer automatiquement toute la mcanique vnementielle. Ensuite, vous pouvez remplir la mthode gnrs par les instructions suivantes : clientList = new BindingList<Client>(); // Chargement des clients Entreprise tempInterlocuteur = new Client("Leroy Merlin", "43 All des Platanes", "44 All des Platanes"); this.clientList.Add((Client)tempInterlocuteur); tempInterlocuteur = new Client("Microsoft", "54 rue Charle de Gaulles", "126 av de la Rpublique"); this.clientList.Add((Client)tempInterlocuteur); Commande myCommand = new Commande(DateTime.Now, "truc", 21, 34); tempInterlocuteur.AjouterCommande(myCommand); myCommand = new Commande(DateTime.Now.AddMonths(-1), "machin", 2, 8); tempInterlocuteur.AjouterCommande(myCommand); myCommand = new Commande(DateTime.Now.AddMonths(-12), "troisime", 567, 12); tempInterlocuteur.AjouterCommande(myCommand); myCommand = new Commande(DateTime.Now.AddMonths(-3), "dernier", 123, 543); tempInterlocuteur.AjouterCommande(myCommand);

11

Dveloppement .NET : 2/3

Nous avons besoin dafficher la liste de notre liste de client. Nous allons utiliser le composant ListBox pour reprsenter cette liste au sein de notre programme. On drag & drop le composant sur la winform (sur laquelle nous sommes en tain de travailler). Pour le moment la listbox naffiche rien, il est ncessaire de spcifier avec quelles donnes elle doit travailler. Pour cela il existe une proprit de listbox appel DataSource qui permet de fournir une collection dobjet au composant, et lui ce charge de lafficher tous les items compris dans cette collection (ceci est rendu possible grce limplmentation de linterface IList. La proprit DataSource nest donc compatible uniquement avec les collections implmentant cette interface.) Ceci se traduit par une seule ligne de code ajouter la suite de notre initialisation de donnes au sein de la mthode gnre pour rpondre lvnement click de la commande Charger les donnes . Vous pouvez donc utiliser linstruction suivante la suite de linitialisation des diffrentes commandes et clients : listBox1.DataSource = clientList;

Compilez lapplication. Normalement vous devriez voir apparaitre dans le composant listbox, les deux clients que nous avons dfini. Vous remarquez que laffichage du nom du client ne parait pas standard . Vous avez raison, en fait lorsque la listbox veut afficher la string correspondant lobjet client, elle appelle notre surcharge de la mthode ToString() que nous avions cod lors de notre premier TP !

Tableau de donnes
Maintenant que nous avons notre liste de clients, il serait bon dafficher les commandes relatives chaque client. Lorsque lon clique sur un des clients de la liste, il faut afficher sa liste de commande, il y a donc un vnement coder. Le composant qui permettra dafficher la liste des commandes sera un DataGridView Le contrle DataGridView fournit une table personnalisable pour l'affichage des donnes. La classe DataGridView permet la personnalisation des cellules, des lignes, des colonnes et des bordures. Vous pouvez utiliser un contrle DataGridView pour afficher des donnes avec ou sans source de donnes sous-jacente. Sans spcifier une source de donnes, vous pouvez crer des colonnes et des lignes qui contiennent des donnes et les ajouter directement au DataGridView. Vous pouvez galement dfinir les proprits DataSource et DataMember pour lier le DataGridView une source de donnes et le remplir automatiquement avec des donnes. Ajoutons le DataGridView notre winform, pour cela nous procdons comme nous lavons fait auparavant, on drag & drop le composant sur notre form, puis on le place comme bon nous semble. Nous allons prsent crer un vnement sur notre listbox qui se dclenchera lorsque lutilisateur cliquera sur un client diffrent, cet vnement sappelle SelectedIndexChanged . Allez modifier cet vnement en passant par la fentre de proprit, puis en cliquant sur lclair. Double cliquez sur la case vide ct de

12

Dveloppement .NET : 2/3

SelectedIndexChanged pour crer automatiquement la mthode sy rattachant. Nous voil de nouveau en mode code source avec une nouvelle mthode qui devrait sappeler onSelectIndexChanged . crivons dans cette mthode le code source suivant puis tentons de comprendre comment tout cela fonctionne. Client monClient = (Client)((ListBox)sender).SelectedItem; dataGridView1.DataSource = monClient.Commandes; Notre principale proccupation est que lorsque lon clique sur un client dans la listbox, nous souhaiterions rcuprer linstance de lobjet sur lequel nous avons cliqu (objet Client ). Cest le rle de la premire ligne de code. Nous crons dabord un objet Client nomm monClient. Ensuite vous pouvez remarquer que nous utilisons le paramtre sender qui est prsent dans la signature de lentte de la mthode. Lobjet sender de type Object, reprsente lobjet qui appelle lvnement, dans notre cas cest la listbox. Mais comme vous pouvez le constater sender est un object, il est impratif de le caster en listbox si nous voulons le manipuler comme tel, cest se que nous faisons grce ce morceau de code ((ListBox)sender) . Ce cast est possible car nous savons quen plus dtre un objet (tout est objet), sender est une listeBox. On touche ici aux notions de polymorphisme, notions avances du dveloppement objet. Une fois cast en listbox, nous pouvons utiliser toutes les mthodes de ce composant. Il existe une mthode permettant de rcuprer lobjet slectionn dans la liste, cette mthode se nomme SelectedItem et retourne un object. Nous allons donc crire ((ListBox)sender).SelectedItem , mais comme nous souhaitons manipuler un objet de type client a la sortie de cette ligne, il est donc ncessaire de caster nouveau mais cette fois en Client, se qui nous donne la ligne de code suivante : Client monClient = (Client)((ListBox)sender).SelectedItem; Ensuite nous allons alimenter notre datagridview grce un DataSource comme nous avons fait un peu plus haut avec la listbox. Nous souhaitons afficher la liste des commandes du client en cours de slection. On indique que le DataSource du DataGridView sera remplis par la liste de commande du client soit monClient.Commandes . Compilez et admirez le rsultat. Vous venez de faire de la programmation vnementielle en crivant moins de 5 lignes de code !

Pour aller plus loin (Optionnel)


A partir des fonctionnalits que nous avons dj intgres, vous avez les bases ncessaires la ralisation dune dernire fonctionnalit : la suppression dune commande. Bien entendu, il manque encore beaucoup daspects pour avoir un programme complet, mais nous nous arrterons l pour ce TP. Nhsitez pas explorer les diffrentes possibilits dimplmentations en regardant les diffrents vnements associs au gridView, explorer ce que vous propose lIntelliSense, demandez aux formateurs

13

Dveloppement .NET : 2/3

Conclusion
Grce ce TP, vous devez avoir les bases ncessaires la dcouverte de tous les aspects des technologies .NET. En effet, ces bases sont communes que vous vouliez faire du dveloppement dapplication Windows, du dveloppement sur tlphones/PDA, du dveloppement de jeux vido, du dveloppement Web ou autre encore Vous trouverez sur la fiche de la formation sur le site www.efrei-microsoft.fr un zip contenant le projet que vous avez ralis lors de cette sance.

14

Dveloppement .NET : 2/3

Liens et Ressources

Les ressources de cette formation (Power Point et ce document) sont accessibles sur notre site web : www.efrei-microsoft.fr, rubrique Formations Le coach C# : http://msdn2.microsoft.com/fr-fr/vcsharp/bb409645.aspx La saga .NET pour les nuls : http://www.efrei-microsoft.fr/news.aspx?id=90 La documentation officielle MSDN : http://msdn2.microsoft.com/frfr/library/default.aspx

A bientt !

Ce document a t ralis en dcembre 2007 par Benjamin Talmard et Vincent Dieudonn pour EFREI Microsoft. Il a t rvise en dcembre 2008 par Benjamin Talmard

15