ALT.Net présente: Spring.Net Par Mathias Kluba & Florent Dugué & David Coppet
Présentation <ul><li>Mark Pollack: MVP & founder of Spring.NET </li></ul><ul><li>Mathias Kluba: consultant .net chez Fastc...
Plan <ul><li>Introduction sur Spring.Net et Spring Java </li></ul><ul><li>L'injection de dépendance </li></ul><ul><li>Spri...
 
Un peu d’histoire sur Spring Java <ul><li>Framework OpenSource née à l’époque de J2EE EJB en 2003: propose une alternative...
Spring.Net <ul><li>Une version .Net très .Net qui s’intègre avec: </li></ul><ul><ul><li>WCF </li></ul></ul><ul><ul><li>ASP...
Dependency Injection <ul><li>Spring.net c’est d’abord l’injection de dépendance (ou Inversion of Control container) orient...
<ul><li>Démo </li></ul>L’injection de dépendance par la pratique
L’injection de dépendance par la pratique <ul><li>Orienté PONO: le Domain fournit des briques de Lego, et Spring.Net assem...
Spring.Net: Enterprise Framework
Spring.Net: Enterprise Framework <ul><li>Spring.Core </li></ul><ul><ul><li>IOC </li></ul></ul><ul><ul><ul><li>Injection de...
Spring.Net: Enterprise Framework <ul><li>Spring.Data </li></ul><ul><ul><li>Couche d’abstraction à ADO.Net (Oracle, SQLServ...
Spring.Net: Enterprise Framework <ul><li>Spring.Services </li></ul><ul><ul><li>Exposer des Pono avec </li></ul></ul><ul><u...
Spring.Net: Enterprise Framework <ul><li>Spring.Web </li></ul><ul><ul><li>IOC avec ASP.Net (scope request/session/applicat...
Spring.Net: Enterprise Framework <ul><li>Spring.Aop </li></ul><ul><ul><li>Aspect oriented programming </li></ul></ul><ul><...
<ul><li>Démo </li></ul>La configuration avec Spring.Net
Configuration avec Spring.Net <ul><li>Injection d’expression </li></ul><ul><li>Conversion automatique avec TypeConverter D...
Configuration avec Spring.Net <ul><li>Sources de variables pré-existantes: </li></ul><ul><ul><li>ConfigSectionVariableSour...
<ul><li>Démo </li></ul>Spring.Net AOP par la pratique
Spring.Net AOP <ul><li>Tissage (weaving) par proxy: non intrusif </li></ul><ul><li>Pure XML ou par attributs </li></ul>
Spring.Net AOP <ul><li>Plusieurs Aspect de base </li></ul><ul><ul><li>Caching </li></ul></ul><ul><ul><li>Exception Handlin...
<ul><li>Démo </li></ul>Spring.Net avec ASP.Net
Spring.Net avec ASP.Net <ul><li>Scope Application/Session/Request </li></ul><ul><li>Injection dans les pages </li></ul><ul...
Spring.Net ailleurs <ul><li>NHibernate.ByteCode.Spring </li></ul><ul><ul><li>utilisation de Spring.Aop pour la création dy...
 
Liens/Ressources <ul><li>http://springframework.net   </li></ul><ul><li>The Definitive Guide to Spring for .NET </li></ul>...
Upcoming SlideShare
Loading in...5
×

Alt.net spring.net

1,777

Published on

http://www.eventbrite.com/event/727568176

Published in: Technology
1 Comment
0 Likes
Statistics
Notes
  • Be the first to like this

No Downloads
Views
Total Views
1,777
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
15
Comments
1
Likes
0
Embeds 0
No embeds

No notes for slide

Alt.net spring.net

  1. 1. ALT.Net présente: Spring.Net Par Mathias Kluba & Florent Dugué & David Coppet
  2. 2. Présentation <ul><li>Mark Pollack: MVP & founder of Spring.NET </li></ul><ul><li>Mathias Kluba: consultant .net chez Fastconnect Blog: http://grozeille.com Twitter: mathiaskluba </li></ul>
  3. 3. Plan <ul><li>Introduction sur Spring.Net et Spring Java </li></ul><ul><li>L'injection de dépendance </li></ul><ul><li>Spring.Net: Framework d'entreprise </li></ul><ul><li>Spring.Net et l'AOP </li></ul><ul><li>Spring.Net et la gestion de configuration </li></ul><ul><li>Spring.Net et le Web </li></ul>DEMO DEMO DEMO DEMO
  4. 5. Un peu d’histoire sur Spring Java <ul><li>Framework OpenSource née à l’époque de J2EE EJB en 2003: propose une alternative orienté POJO plus simple d’utilisation </li></ul><ul><li>Naissance de « Interface21 » en 2004 pour offrir un support commercial et des formations </li></ul><ul><li>SpringDM Server en 2008: alternative aux serveurs JEE classiques (basé sur le modèle OSGI) </li></ul><ul><li>Acquisition de: </li></ul><ul><ul><li>Hyperic HQ: outil de monitoring </li></ul></ul><ul><ul><li>Rabit MQ: messaging </li></ul></ul><ul><li>Support commercial de: </li></ul><ul><ul><li>Groovy et Grails (Groovy On Rails) </li></ul></ul><ul><ul><li>Apache Tomcat / Apache HTTPD </li></ul></ul><ul><ul><li>Apache MQ </li></ul></ul><ul><li>SpringSource : a division of VMWARE. Un avenir vers le Cloud avec une offre IaS & PaS : VMforce </li></ul>
  5. 6. Spring.Net <ul><li>Une version .Net très .Net qui s’intègre avec: </li></ul><ul><ul><li>WCF </li></ul></ul><ul><ul><li>ASP.Net </li></ul></ul><ul><ul><li>NHibernate </li></ul></ul><ul><ul><li>DB4O </li></ul></ul><ul><ul><li>Resharper </li></ul></ul><ul><ul><li>Etc. </li></ul></ul><ul><li>Bonne documentation, projet vivant: Version 1.3 le 15 Décembre 2009 Version 2.0 en développement. </li></ul>
  6. 7. Dependency Injection <ul><li>Spring.net c’est d’abord l’injection de dépendance (ou Inversion of Control container) orienté PONO </li></ul><ul><li>ALTernative à Unity de Microsoft… </li></ul><ul><li>Mais pas la seule: </li></ul><ul><ul><li>Windsor Castle </li></ul></ul><ul><ul><li>Ninject </li></ul></ul><ul><ul><li>AutoFac </li></ul></ul><ul><ul><li>Etc. </li></ul></ul><ul><li>Devenu un standard en Java: java injection (jsr-299) @Inject/@Depend/etc. </li></ul>
  7. 8. <ul><li>Démo </li></ul>L’injection de dépendance par la pratique
  8. 9. L’injection de dépendance par la pratique <ul><li>Orienté PONO: le Domain fournit des briques de Lego, et Spring.Net assemble l’application avec son plan de construction (XML). </li></ul><ul><li>Modèle non intrusif: on entoure le métier par du technique </li></ul><ul><li>Dépendance explicite par référence ou Dépendance automatique avec « autowiring » </li></ul><ul><li>Un schéma XSD qui offre la complétion et un template Resharper offre la complétion/vérification des types </li></ul><ul><li>Spring.Fluent! Configuration « par code » dans le future Spring.Net 2.0 (avec Convention over Configuration) </li></ul>
  9. 10. Spring.Net: Enterprise Framework
  10. 11. Spring.Net: Enterprise Framework <ul><li>Spring.Core </li></ul><ul><ul><li>IOC </li></ul></ul><ul><ul><ul><li>Injection de méthode, Injection d’événement, etc. </li></ul></ul></ul><ul><ul><ul><li>Dépendance explicite entre les objets, Alias de types, Alias d’ID </li></ul></ul></ul><ul><ul><ul><li>Singleton/Auto-Wiring/Lazy-init, etc. </li></ul></ul></ul><ul><ul><ul><li>Gestion de contexte (composition/héritage) </li></ul></ul></ul><ul><ul><ul><li>Injection de configuration (key/value) </li></ul></ul></ul><ul><ul><ul><li>Conversion de type transparente </li></ul></ul></ul><ul><ul><li>« ObjectFactory » et cycle de vie de la Factory </li></ul></ul><ul><ul><li>Framework de validation </li></ul></ul><ul><ul><li>Gestion transparente des ressources </li></ul></ul><ul><ul><li>Gestion d’événements « loosely coupled » </li></ul></ul>
  11. 12. Spring.Net: Enterprise Framework <ul><li>Spring.Data </li></ul><ul><ul><li>Couche d’abstraction à ADO.Net (Oracle, SQLServer, etc.) </li></ul></ul><ul><ul><li>Couche d’abstraction des Exceptions ADO.Net </li></ul></ul><ul><ul><li>« AdoDaoSupport » : écrire vos DAO plus rapidement </li></ul></ul><ul><ul><li>Gestion des Transaction </li></ul></ul><ul><ul><ul><li>Déclarative par AOP </li></ul></ul></ul><ul><ul><ul><li>Ou explicite par code </li></ul></ul></ul><ul><li>Spring.Data.Nhibernate </li></ul><ul><ul><li>Transation Nhibernate </li></ul></ul><ul><ul><li>DAO Nhibernate </li></ul></ul><ul><ul><li>Gestion de session </li></ul></ul>
  12. 13. Spring.Net: Enterprise Framework <ul><li>Spring.Services </li></ul><ul><ul><li>Exposer des Pono avec </li></ul></ul><ul><ul><ul><li>DCOM </li></ul></ul></ul><ul><ul><ul><li>.Net Remoting </li></ul></ul></ul><ul><ul><ul><li>WebService (.Net 2.0) </li></ul></ul></ul><ul><ul><ul><li>WCF </li></ul></ul></ul><ul><ul><li>Consommer des services avec création de proxy dynamique </li></ul></ul><ul><li>Spring.Messaging </li></ul><ul><ul><li>Couche d’abstraction de messaging avec </li></ul></ul><ul><ul><ul><li>Apache ActiveMQ </li></ul></ul></ul><ul><ul><ul><li>TIBCO EMS </li></ul></ul></ul><ul><ul><ul><li>MSMQ </li></ul></ul></ul><ul><ul><li>Gestion de transaction </li></ul></ul>
  13. 14. Spring.Net: Enterprise Framework <ul><li>Spring.Web </li></ul><ul><ul><li>IOC avec ASP.Net (scope request/session/application) </li></ul></ul><ul><ul><li>IOC possible avec les MembershipProvider, RoleProvider, SiteMapProvider, HttpHandler, Page ASPX, WebService ASMX, etc. </li></ul></ul><ul><ul><li>DataBinding Bidirectionnel dans les pages ASPX </li></ul></ul><ul><ul><li>« Result-Mapping » : pseudo MVC </li></ul></ul><ul><ul><li>Gestion de la culture, injection des traductions, gestion des ressources </li></ul></ul><ul><ul><li>Validation (intégré avec le framework de Validation de Spring.Core) </li></ul></ul><ul><ul><li>AJAX: ancètre de AjaxExtension </li></ul></ul>
  14. 15. Spring.Net: Enterprise Framework <ul><li>Spring.Aop </li></ul><ul><ul><li>Aspect oriented programming </li></ul></ul><ul><ul><li>De nombreux aspects « de base » </li></ul></ul><ul><li>Spring.Testing </li></ul><ul><ul><li>IOC intégré avec NUnit et MSTest </li></ul></ul><ul><li>Spring.Scheduling.Quartz </li></ul><ul><ul><li>Configuration de Quartz par fichier XML </li></ul></ul><ul><ul><li>Intégration de PONO dans Quartz </li></ul></ul><ul><li>Spring.Template.Velocity </li></ul><ul><ul><li>Utilisation de template NVelocity </li></ul></ul>
  15. 16. <ul><li>Démo </li></ul>La configuration avec Spring.Net
  16. 17. Configuration avec Spring.Net <ul><li>Injection d’expression </li></ul><ul><li>Conversion automatique avec TypeConverter Déjà 139 Converters existants dans le Framework .Net, et 13 de plus dans le Framework Spring.net! </li></ul><ul><li>Injection de variables </li></ul>
  17. 18. Configuration avec Spring.Net <ul><li>Sources de variables pré-existantes: </li></ul><ul><ul><li>ConfigSectionVariableSource </li></ul></ul><ul><ul><li>PropertyFileVariableSource </li></ul></ul><ul><ul><li>EnvironmentVariableSource </li></ul></ul><ul><ul><li>CommandLineArgsVariableSource </li></ul></ul><ul><ul><li>RegistryVariableSource </li></ul></ul><ul><ul><li>SpecialFolderVariableSource </li></ul></ul><ul><ul><li>ConnectionStringsVariableSource </li></ul></ul><ul><li>Schéma XSD additionnels </li></ul>
  18. 19. <ul><li>Démo </li></ul>Spring.Net AOP par la pratique
  19. 20. Spring.Net AOP <ul><li>Tissage (weaving) par proxy: non intrusif </li></ul><ul><li>Pure XML ou par attributs </li></ul>
  20. 21. Spring.Net AOP <ul><li>Plusieurs Aspect de base </li></ul><ul><ul><li>Caching </li></ul></ul><ul><ul><li>Exception Handling </li></ul></ul><ul><ul><li>Logging </li></ul></ul><ul><ul><li>Retry </li></ul></ul><ul><ul><li>Transaction </li></ul></ul><ul><ul><li>Parameter Validation </li></ul></ul>
  21. 22. <ul><li>Démo </li></ul>Spring.Net avec ASP.Net
  22. 23. Spring.Net avec ASP.Net <ul><li>Scope Application/Session/Request </li></ul><ul><li>Injection dans les pages </li></ul><ul><li>i18n en mode « push » avec 4 « CultureResolver »: </li></ul><ul><ul><li>DefaultWebCultureResolver </li></ul></ul><ul><ul><li>RequestCultureResolver </li></ul></ul><ul><ul><li>SessionCultureResolver </li></ul></ul><ul><ul><li>CookiCultureResolver </li></ul></ul><ul><li>Globalization avec les « Well-known directories » </li></ul><ul><li>Databinding Bidirectionel </li></ul><ul><li>« Result Mapping » </li></ul><ul><li>Exposer/Consommer des webservices à partir de PONO (pour du .Net 2.0) </li></ul><ul><li>WCF est aussi supporté (.net 3.0) </li></ul><ul><li>Support de NVelocity </li></ul>
  23. 24. Spring.Net ailleurs <ul><li>NHibernate.ByteCode.Spring </li></ul><ul><ul><li>utilisation de Spring.Aop pour la création dynamique de proxy dans Nhibernate </li></ul></ul><ul><li>MVCContrib </li></ul><ul><ul><li>intégrer Spring.Net dans ASP.Net MVC </li></ul></ul>
  24. 26. Liens/Ressources <ul><li>http://springframework.net </li></ul><ul><li>The Definitive Guide to Spring for .NET </li></ul><ul><li>http://www.dotnetguru2.org/bbaia/ Bruno Baia </li></ul><ul><li>http://lmgtfy.com/?q=spring.net </li></ul>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×