Spring.NET
-
Upload
spring-user-group-france -
Category
Technology
-
view
1.335 -
download
4
description
Transcript of Spring.NET
ALT.Net présente:Spring.NetPar Mathias Kluba & Florent Dugué & David Coppet
Présentation
Mark Pollack: MVP & founder of Spring.NET
Mathias Kluba: consultant .net chez FastconnectBlog: http://grozeille.comTwitter: mathiaskluba
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
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
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.
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.
Démo
L’injection de dépendance par la pratique
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)
Spring.Net: Enterprise Framework
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 »
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
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
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
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
Démo
La configuration avec Spring.Net
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
Configuration avec Spring.Net Sources de variables pré-existantes:
ConfigSectionVariableSource PropertyFileVariableSource EnvironmentVariableSource CommandLineArgsVariableSource RegistryVariableSource SpecialFolderVariableSource ConnectionStringsVariableSource
Schéma XSD additionnels
Démo
Spring.Net AOP par la pratique
Spring.Net AOP
Tissage (weaving) par proxy: non intrusif
Pure XML ou par attributs
Spring.Net AOP
Plusieurs Aspect de base Caching Exception Handling Logging Retry Transaction Parameter Validation
Démo
Spring.Net avec ASP.Net
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
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
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