25
Outils de développement pour .NET SharpToolbox 27 juin 2005 Fabrice Marguerie, MVP C#

Outils de développement pour .NET SharpToolbox 27 juin 2005

  • Upload
    ranae

  • View
    22

  • Download
    0

Embed Size (px)

DESCRIPTION

Outils de développement pour .NET SharpToolbox 27 juin 2005. Fabrice Marguerie, MVP C#. Qui suis-je ?. MVP depuis avril 2004 Architecte logiciel sur .NET chez Alti Weblog : http://weblogs.asp.net/fmarguerie Articles sur DotNetGuru Présentations sur .NET - PowerPoint PPT Presentation

Citation preview

Page 1: Outils de développement pour .NET SharpToolbox 27 juin 2005

Outils de développement pour .NETSharpToolbox27 juin 2005

Fabrice Marguerie, MVP C#

Page 2: Outils de développement pour .NET SharpToolbox 27 juin 2005

2

MVP depuis avril 2004 Architecte logiciel sur .NET chez Alti Weblog : http://weblogs.asp.net/fmarguerie Articles sur DotNetGuru Présentations sur .NET Logiciels : PageMethods (metaSapiens) Sites non techniques : ClairDeBulle,

OlympicBoard

et SharpToolbox bien-sûr !

Qui suis-je ?

Page 3: Outils de développement pour .NET SharpToolbox 27 juin 2005

3

Page 4: Outils de développement pour .NET SharpToolbox 27 juin 2005

4

Les besoins

Le frawework .NET et Visual Studio font beaucoup mais pas tout

Toujours besoin de plus de– simplification– productivité– intégration

Des outils pour toutes les phases d’un projet Mais aussi des bibliothèques de code

Page 5: Outils de développement pour .NET SharpToolbox 27 juin 2005

5

SharpToolbox

Commencé sur mon weblog en mars 2003 Rapidement transformé en site dédié Liste les outils, bibliothèques et add-ins Ne liste pas les composants graphiques pour

l’instant

Page 6: Outils de développement pour .NET SharpToolbox 27 juin 2005

6

SharpToolbox

Aujourd’hui :– le site de référence– plus de 733 outils, dont 214 bibliothèques !– 49 catégories– en moyenne 1900 pages vues par jour en semaine

Existe désormais pour… Java : JavaToolbox ;-)

Page 7: Outils de développement pour .NET SharpToolbox 27 juin 2005

7

Les catégories

ADO.NET providers AOP ASP.NET Builds Charting Code analysis - Standards verifiers Code conversion - Language

migration Code coverage Code generation Code protection - Obfuscation Code versioning - Source control Compilation Compression Database management DBMS Decompilation Deployment - Installation

Object browsing - Assembly viewers

Object-relational mapping Page templating Persistence - Data-tier Profiling - Debugging RAD - Dev automation Refactoring Regular expressions Remoting Reporting Scripting Security Sound - Audio SVG - XAML Testing Tracing - Logging XML

Documentation - Code commenting

Frameworks Geoprocessing Graphics IDEs - IDE add-ins Internet and communications Interoperability Languages Licensing Localization Mainframes - Legacy systems Math - Logic - AI - Rules Miscellaneous Modeling - Architecture - MDA -

UML MVC

Page 8: Outils de développement pour .NET SharpToolbox 27 juin 2005

8

Les catégories

Les plus visitées1. Object-relational mapping2. IDE – IDE add-ins3. Code generation4. Code analysis – Standards verifiers5. ASP.NET

Les plus fournies1. IDE – IDE add-ins (62)2. Persistence - Data-tier (44)3. Reporting (41)4. Object-relational mapping (37)5. Internet and Communications (37)

Page 9: Outils de développement pour .NET SharpToolbox 27 juin 2005

9

Les outils

Souvent intégrés à Visual Studio Beaucoup sont gratuits Beaucoup sont open source Certains sont inspirés du monde Java

JUnit/NUnit, Ant/Nant, Hibernate/NHibernate, CruiseControl/CruiseControl.NET, etc.

Page 10: Outils de développement pour .NET SharpToolbox 27 juin 2005

10

Les outils

Quelques outils– .NET Reflector– FxCop– Usine de développement– Génération de code– Mapping objet-relationnel

Page 11: Outils de développement pour .NET SharpToolbox 27 juin 2005

11

.NET Reflector

Visualisateur d’assemblages, décompilation

Essentiel !

Démonstration

Page 12: Outils de développement pour .NET SharpToolbox 27 juin 2005

12

FxCop

Analyse de code, vérification de normes

Objectif : améliorer la qualité Principe : analyse des assemblages pour évaluer

– le respect de conventions de dénomination– la qualité de la conception– les risques de sécurité– des risques de mauvaises performances

Paramétrable Extensible

Intégré à Visual Studio 2005

Page 13: Outils de développement pour .NET SharpToolbox 27 juin 2005

13

FxCop

Page 14: Outils de développement pour .NET SharpToolbox 27 juin 2005

14

CruiseControl.NET

Usine de développement, intégration continue

Objectifs– automatiser– améliorer la qualité– mesurer la qualité– industrialiser

Principe– orchestration– intégration des outils– rapports, alertes

Page 15: Outils de développement pour .NET SharpToolbox 27 juin 2005

15

Bug tracking

Source control

Release management

Project management

Software factory

Quality toolstests

Developer

User

Releasemanager

Buildmanager

Projectmanager

Build tools

releases documentsrequests

Tester

DevelopmentRequest catalog

Monitoring

Support

Businessanalyst

SupportProduction

monitoringof all elements

Page 16: Outils de développement pour .NET SharpToolbox 27 juin 2005

16

CruiseControl.NET

Ce qu’on peut trouver dans une "chaîne de production" :

– Compilation (Nant)– Analyse de code (FxCop,Vil)– Tests unitaires (NUnit, GUnit)– Tests de non régression– Tests de performance– Analyse de la couverture de code (Clover.NET, NClover)– Génération de documentation (NDoc)– Génération des programmes d’installation– …

Page 17: Outils de développement pour .NET SharpToolbox 27 juin 2005

17

Codesmith

Génération de code

Objectifs– automatiser l’écriture de certaines parties d’une

application– Obtenir du code fortement typé

Avantages– gain de temps– code consistant

Principe : application de templates de code sur des méta-données

Page 18: Outils de développement pour .NET SharpToolbox 27 juin 2005

18

Codesmith

Exemples de mise en œuvre :– génération d’une couche de persistance– génération de collections typées– génération d’un module d’administration– Génération d’un prototype

Démonstration

Page 19: Outils de développement pour .NET SharpToolbox 27 juin 2005

19

Codesmith

Exemple basique

Page 20: Outils de développement pour .NET SharpToolbox 27 juin 2005

20

Codesmith

Exemple avec base de données

Page 21: Outils de développement pour .NET SharpToolbox 27 juin 2005

21

Mapping objet-relationnel

Objectif : effectuer la mise en correspondance entre modèles objets et relationnels

Principe: vous fournissez les classes, la base et la configuration du mapping, l’outil fait le reste

Page 22: Outils de développement pour .NET SharpToolbox 27 juin 2005

22

Mapping objet-relationnel

Exemple de fichier de configuration

<?xml version="1.0" ?><hibernate-mapping xmlns="urn:nhibernate-mapping-2.0" namespace="Eg" assembly="Eg"> <class name="Cat" table="CATS" discriminator-value="C"> <id name="Id" column="uid" type="Int64"> <generator class="hilo"/> </id> <discriminator column="subclass" type="Char"/> <property name="Birthdate" type="Date"/> <property name="Color" not-null="true"/> <property name="Sex" not-null="true" update="false"/> <property name="Weight"/> <many-to-one name="Mate" column="mate_id"/> <set name="Kittens"> <key column="mother_id"/> <one-to-many class="Cat"/> </set> <subclass name="DomesticCat" discriminator-value="D"> <property name="Name" type="String"/> </subclass> </class>

<class name="Dog"> <!-- mapping for Dog could go here --> </class></hibernate-mapping>

Page 23: Outils de développement pour .NET SharpToolbox 27 juin 2005

23

Mapping objet-relationnel

Exemple de code

IList cats = session.CreateCriteria(typeof(Cat)).List();

Cat cat = (Cat) session.Load(typeof(Cat), i);cat.Mate = new DomesticCat("Bob");cat.Kittens.Add(new Cat(...));

session.Save(cat);

Page 24: Outils de développement pour .NET SharpToolbox 27 juin 2005

24

Les bibliothèques

Bibliothèques techniques– Traçage (exemple : log4net)– Conversion de fichiers, reporting– Compression– Communication (mail, FTP, sockets, RSS, etc.)

Mais aussi métier– Finance– Calcul, mathématiques, logique– Multimédia

Page 25: Outils de développement pour .NET SharpToolbox 27 juin 2005

25

Conclusion

Une richesse exceptionnelle N’hésitez pas à utiliser des outils tiers pour

vous assister Tout ne vient de base ni forcément de Microsoft Il n’est pas toujours évident de trouver le bon

outil

Visitez SharpToolbox– Vos commentaires sont les bienvenus– Soumettez les outils manquants