1 / 25

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

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

ranae
Télécharger la présentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Outils de développement pour .NETSharpToolbox27 juin 2005 Fabrice Marguerie, MVP C#

  2. 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 • Logiciels : PageMethods (metaSapiens) • Sites non techniques : ClairDeBulle, OlympicBoard • et SharpToolbox bien-sûr !

  3. 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

  4. 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

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

  6. Les catégories • 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 • 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

  7. Les catégories • Les plus visitées • Object-relational mapping • IDE – IDE add-ins • Code generation • Code analysis – Standards verifiers • ASP.NET • Les plus fournies • IDE – IDE add-ins (62) • Persistence - Data-tier (44) • Reporting (41) • Object-relational mapping (37) • Internet and Communications (37)

  8. 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.

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

  10. .NET Reflector • Visualisateur d’assemblages, décompilation • Essentiel ! • Démonstration

  11. 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

  12. FxCop

  13. 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

  14. Production Support Monitoring Businessanalyst Support User requests releases documents Request catalog Development Release management Releasemanager Bug tracking Tester Quality tools tests Project management Source control Software factory Projectmanager monitoringof all elements Build tools Developer Buildmanager

  15. 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 • …

  16. 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

  17. 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

  18. Exemple basique Codesmith

  19. Exemple avec base de données Codesmith

  20. 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

  21. 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>

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

  23. 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

  24. 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

More Related