alt.net spring.net

26
ALT.Net présente: Spring.Net Par Mathias Kluba & Florent Dugué & David Coppet

Upload: mathias-kluba

Post on 30-Jun-2015

1.786 views

Category:

Technology


0 download

DESCRIPTION

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

TRANSCRIPT

Page 1: Alt.net spring.net

ALT.Net présente:Spring.NetPar Mathias Kluba & Florent Dugué & David Coppet

Page 2: Alt.net spring.net

Présentation

Mark Pollack: MVP & founder of Spring.NET

Mathias Kluba: consultant .net chez FastconnectBlog: http://grozeille.comTwitter: mathiaskluba

Page 3: Alt.net spring.net

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: Alt.net spring.net
Page 5: Alt.net spring.net

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: Alt.net spring.net

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: Alt.net spring.net

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: Alt.net spring.net

Démo

L’injection de dépendance par la pratique

Page 9: Alt.net spring.net

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: Alt.net spring.net

Spring.Net: Enterprise Framework

Page 11: Alt.net spring.net

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: Alt.net spring.net

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: Alt.net spring.net

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: Alt.net spring.net

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: Alt.net spring.net

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: Alt.net spring.net

Démo

La configuration avec Spring.Net

Page 17: Alt.net 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

Page 18: Alt.net spring.net

Configuration avec Spring.Net Sources de variables pré-existantes:

ConfigSectionVariableSource PropertyFileVariableSource EnvironmentVariableSource CommandLineArgsVariableSource RegistryVariableSource SpecialFolderVariableSource ConnectionStringsVariableSource

Schéma XSD additionnels

Page 19: Alt.net spring.net

Démo

Spring.Net AOP par la pratique

Page 20: Alt.net spring.net

Spring.Net AOP

Tissage (weaving) par proxy: non intrusif

Pure XML ou par attributs

Page 21: Alt.net spring.net

Spring.Net AOP

Plusieurs Aspect de base Caching Exception Handling Logging Retry Transaction Parameter Validation

Page 22: Alt.net spring.net

Démo

Spring.Net avec ASP.Net

Page 23: Alt.net spring.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

Page 24: Alt.net spring.net

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: Alt.net spring.net
Page 26: Alt.net spring.net

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