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

Preview:

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

Outils de développement pour .NETSharpToolbox27 juin 2005

Fabrice Marguerie, MVP C#

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 ?

3

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

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

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 ;-)

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

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)

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.

10

Les outils

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

11

.NET Reflector

Visualisateur d’assemblages, décompilation

Essentiel !

Démonstration

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

13

FxCop

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

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

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– …

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

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

19

Codesmith

Exemple basique

20

Codesmith

Exemple avec base de données

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

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>

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);

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

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

Recommended