Upload
juflo
View
1.572
Download
2
Tags:
Embed Size (px)
DESCRIPTION
Retour d'expérience d'utilisation de projets Open Source en .Net
Citation preview
Page 1
.Net et l'Open SourceRetour d’expérience
Qui sommes-nous ?
Florent Dugué Architecte .NET chez SFEIR
Passionné d’OpenSource
Empêcheur de tourner en rond !
Didier Girard Directeur Technique de SFEIR
Architecte IT
Défricheur technologique !
http://www.insideIT.fr
Page 3
Introduction
IntroductionL’Open Source Way of LifeLes projets Open SourceLes besoinsUn Cas ConcretConclusion
Page 4
Open Source ?
C’est aussi ça !
Page 6
L’Open SourceWay of Life
IntroductionL’Open Source Way of LifeLes projets Open SourceLes besoinsUn Cas ConcretConclusion
Opensource et développement
Opensource ?
Stack de développement
Quatre niveaux
Page 9
Opensource et développement
OS ?
Page 10
Opensource et développement
IDE
Page 11
Opensource et développement
Plateforme : .NET
Page 12
Opensource et développement
Page 13
Opensource et développement
Frameworks
Page 14
Opensource et développement
ASP.NET Ajax
ASP.NET MVC
ASP.NET, WinForms ?
Spring.NET
Nhibernate
Page 15
Opensource et développement
Page 16
Page 17
Les projetsOpen Source
IntroductionL’Open Source Way of LifeLes projets Open SourceLes besoinsUn Cas ConcretConclusion
Page 18
Les projets existant
Quelques projets Open Source en .Net :
Persistance :
Framework applicatif :
Logging : Log4Net
IDE :
Page 19
Les projets existant
Il y en a plein d’autres !
Page 20
Les projets existant
Il faut aller les chercher !
Nos meilleurs amis chez Microsoft
Sam Ramjihttp://port25.technet.com/
Marc Gardettehttp://blogs.technet.com/porte25/
Page 21
Page 22
Les besoins
IntroductionL’Open Source Way of LifeLes projets Open SourceLes besoinsUn Cas ConcretConclusion
Page 23
Les besoins
En quoi puis-je vous aider ?
Page 24
Les besoins
Les projets informatiques se ressemblent
Page 25
Les besoins
Les personnes sont différentes
Page 26
Les besoins
Des outils utilisables par tous
Page 27
Les besoins
Ne pas avoir à se poser de questions.
Page 28
Les besoins
Gérer ces aspects manuellement est Rébarbatif
Facile à oublier
Source d’erreur
Page 29
Un cas concret
IntroductionL’Open Source Way of LifeLes projets Open SourceLes besoinsUn Cas ConcretConclusion
Page 30
Cas réel
Maintenant, faut y aller !
Page 31
Cas réel
Environnement client : Projet critique
Equipe de 5 personnes
200 utilisateurs
Sites locaux et distants
Pic de charge mensuel
Pic de charge annuel
Page 32
Cas réel
6 mois pour y arriver
Page 33
Cas réel
Comment vendre au client ?
Page 34
Cas réel
Avant : C++ / Versant
VBScript, JScript
Corba
Après : C# / Oracle
C++ / Versant
VBScript, JScript
Corba
400 000 €
Page 35
Cas réel
Environnement technique : poste client XP
poste client distant : Citrix
Middleware sous Windows 2000 et 2003
OS 32 et 64 bits
Base de données Oracle 10g
Client lourd
Web
Batch
Page 36
Cas réel
Une solution construite autour d’outils Open Source
Common.Logging V 1.2
V 1.1
V 1.2.0
Page 37
Cas réel
C’est quoi ?
Page 38
Cas réel
Différents modules : Core : Inversion de Contrôle, Threading, Validation, …
AOP : Transactions, Cache, …
Data : ADO.Net
Data.NHibernate
Web
Services
Testing.NUnit
Page 39
Cas réel
Début du projet : avril 2004
7 décembre 2007 : Version 1.1
19 contributeurs (8 actifs cette année)
Forum : plus de 8000 membres
Ex : Mercado Eletrônico (leader B2B en Amérique latine)
Siemens Corporate Technology
Siemens VDO
Spring Java
Spring : incontournable dans le monde java
90000 download par mois
Page 40
Page 41
Cas réel
SPRING.NET 10000 download par mois
Page 42
[Transaction][Security(Action.CreateBook)]
public class BookService : IBookService {
public Book CreateBook (string name) {// code de création
}}
interface IBookService { Book CreateBook(string name);}
Interface
Implémentation
Page 43
Cas réel
Fichier XML de configuration :
<objects xmlns="http://www.springframework.net">
<object name="MyMovieLister"
type="Spring.Examples.MovieFinder.MovieLister, Spring.Examples.MovieFinder">
<!-- using setter injection... -->
<property name="movieFinder" ref="MyMovieFinder"/>
</object>
<object name="MyMovieFinder"
type="Spring.Examples.MovieFinder.SimpleMovieFinder, Spring.Examples.MovieFinder"/>
</object>
</objects>
Page 44
Cas réel
Utilisation :
public static void Main ()
{
IApplicationContext ctx = ContextRegistry.GetContext();
MovieLister lister = (MovieLister) ctx.GetObject ("MyMovieLister");
Movie[] movies = lister.MoviesDirectedBy("Roberto Benigni");
Console.WriteLine ("\nSearching for movie...\n");
foreach (Movie movie in movies)
{
Console.WriteLine (
string.Format ("Movie Title = '{0}', Director = '{1}'.",
movie.Title, movie.Director));
}
Console.WriteLine ("\nMovieApp Done.\n\n");
}
Page 45
C’est quoi ?
Outil de Mapping Relationnel (ORM)
Object
ORM
Base de donnée
Page 46
Cas réel
Début du projet : février 2003
26 novembre 2007 : Version 1.2.1
18 contributeurs (6 actifs début 2008)
Ex : Cuyahoga (CMS)
AlachiSoft NCache (Cache niveau 2 distribué)
Hibernate : incontournable dans le monde java
80000 téléchargement par mois
Page 47
Page 48
NHibernate : 20000 téléchargement par mois
Page 49
Cas réel
Mapping :
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="Eg” namespace="Eg">
<class name="Cat" table="CATS">
<id name="Id" column="uid" type="Int64">
<generator class="hilo"/>
</id>
<property name="BirthDate" type="Date"/>
<property name="Color" not-null="true"/>
<many-to-one name="Mate"/>
<set name="Kittens">
<key column="MOTHER"/>
<one-to-many class="Cat"/>
</set>
</class>
</hibernate-mapping>
Page 50
Cas réel
[Transaction][Security(Action.CreateBook)]public class BookService : IBookService {
public Book CreateBook (string name) {
Book book = new Book(); Book.Name = name; bookDao.Save(book); return book;
}}
Page 51
Cas réel
Temps de prise en mains ?
2 mois
Page 52
Cas réel
La seule solution ?
Enterprise Library
Page 53
Cas réel
Résultat
Page 54
Cas réel
Une livraison dans les temps
Page 55
Cas réel
Un client satisfait
Page 56
Cas réel
Une équipe heureuse valorisée
fière
Page 57
Conclusion
IntroductionL’Open Source Way of LifeLes projets Open SourceLes besoinsUn Cas ConcretConclusion
Page 58
Conclusion
Les projets Open Source sont une des réponses aux problèmes rencontrés dans les projets
Ce n’est pas la seule, mais celle que j’ai apportée
www.sfeir.com
SFEIR en quelques tags .NET, Java, OpenSource, Innovation, Technologie, Croissance, Solidité, Managers, Vision
Intervention dans les plus grands événements IT :
- Google Developer Day 2007
- Rencontres GWT 2007
- Rencontres Agiles 2007
- JavaPolis 2007
- Microsoft TechDays 2008
- QCon 2008
Page 59