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