59
Page 1 .Net et l'Open Source Retour d’expérience

Symposium2008 Open Source 08 02 2008

  • Upload
    juflo

  • View
    1.572

  • Download
    2

Embed Size (px)

DESCRIPTION

Retour d'expérience d'utilisation de projets Open Source en .Net

Citation preview

Page 1: Symposium2008    Open Source   08 02 2008

Page 1

.Net et l'Open SourceRetour d’expérience

Page 2: Symposium2008    Open Source   08 02 2008

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: Symposium2008    Open Source   08 02 2008

Page 3

Introduction

IntroductionL’Open Source Way of LifeLes projets Open SourceLes besoinsUn Cas ConcretConclusion

Page 4: Symposium2008    Open Source   08 02 2008

Page 4

Open Source ?

Page 5: Symposium2008    Open Source   08 02 2008

C’est aussi ça !

Page 6: Symposium2008    Open Source   08 02 2008

Page 6

L’Open SourceWay of Life

IntroductionL’Open Source Way of LifeLes projets Open SourceLes besoinsUn Cas ConcretConclusion

Page 7: Symposium2008    Open Source   08 02 2008

Opensource et développement

Opensource ?

Page 8: Symposium2008    Open Source   08 02 2008

Stack de développement

Page 9: Symposium2008    Open Source   08 02 2008

Quatre niveaux

Page 9

Page 10: Symposium2008    Open Source   08 02 2008

Opensource et développement

OS ?

Page 10

Page 11: Symposium2008    Open Source   08 02 2008

Opensource et développement

IDE

Page 11

Page 12: Symposium2008    Open Source   08 02 2008

Opensource et développement

Plateforme : .NET

Page 12

Page 13: Symposium2008    Open Source   08 02 2008

Opensource et développement

Page 13

Page 14: Symposium2008    Open Source   08 02 2008

Opensource et développement

Frameworks

Page 14

Page 15: Symposium2008    Open Source   08 02 2008

Opensource et développement

ASP.NET Ajax

ASP.NET MVC

ASP.NET, WinForms ?

Spring.NET

Nhibernate

Page 15

Page 16: Symposium2008    Open Source   08 02 2008

Opensource et développement

Page 16

Page 17: Symposium2008    Open Source   08 02 2008

Page 17

Les projetsOpen Source

IntroductionL’Open Source Way of LifeLes projets Open SourceLes besoinsUn Cas ConcretConclusion

Page 18: Symposium2008    Open Source   08 02 2008

Page 18

Les projets existant

Quelques projets Open Source en .Net :

Persistance :

Framework applicatif :

Logging : Log4Net

IDE :

Page 19: Symposium2008    Open Source   08 02 2008

Page 19

Les projets existant

Il y en a plein d’autres !

Page 20: Symposium2008    Open Source   08 02 2008

Page 20

Les projets existant

Il faut aller les chercher !

Page 21: Symposium2008    Open Source   08 02 2008

Nos meilleurs amis chez Microsoft

Sam Ramjihttp://port25.technet.com/

Marc Gardettehttp://blogs.technet.com/porte25/

Page 21

Page 22: Symposium2008    Open Source   08 02 2008

Page 22

Les besoins

IntroductionL’Open Source Way of LifeLes projets Open SourceLes besoinsUn Cas ConcretConclusion

Page 23: Symposium2008    Open Source   08 02 2008

Page 23

Les besoins

En quoi puis-je vous aider ?

Page 24: Symposium2008    Open Source   08 02 2008

Page 24

Les besoins

Les projets informatiques se ressemblent

Page 25: Symposium2008    Open Source   08 02 2008

Page 25

Les besoins

Les personnes sont différentes

Page 26: Symposium2008    Open Source   08 02 2008

Page 26

Les besoins

Des outils utilisables par tous

Page 27: Symposium2008    Open Source   08 02 2008

Page 27

Les besoins

Ne pas avoir à se poser de questions.

Page 28: Symposium2008    Open Source   08 02 2008

Page 28

Les besoins

Gérer ces aspects manuellement est Rébarbatif

Facile à oublier

Source d’erreur

Page 29: Symposium2008    Open Source   08 02 2008

Page 29

Un cas concret

IntroductionL’Open Source Way of LifeLes projets Open SourceLes besoinsUn Cas ConcretConclusion

Page 30: Symposium2008    Open Source   08 02 2008

Page 30

Cas réel

Maintenant, faut y aller !

Page 31: Symposium2008    Open Source   08 02 2008

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: Symposium2008    Open Source   08 02 2008

Page 32

Cas réel

6 mois pour y arriver

Page 33: Symposium2008    Open Source   08 02 2008

Page 33

Cas réel

Comment vendre au client ?

Page 34: Symposium2008    Open Source   08 02 2008

Page 34

Cas réel

Avant : C++ / Versant

VBScript, JScript

Corba

Après : C# / Oracle

C++ / Versant

VBScript, JScript

Corba

400 000 €

Page 35: Symposium2008    Open Source   08 02 2008

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: Symposium2008    Open Source   08 02 2008

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: Symposium2008    Open Source   08 02 2008

Page 37

Cas réel

C’est quoi ?

Page 38: Symposium2008    Open Source   08 02 2008

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: Symposium2008    Open Source   08 02 2008

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

Page 40: Symposium2008    Open Source   08 02 2008

Spring Java

Spring : incontournable dans le monde java

90000 download par mois

Page 40

Page 41: Symposium2008    Open Source   08 02 2008

Page 41

Cas réel

SPRING.NET 10000 download par mois

Page 42: Symposium2008    Open Source   08 02 2008

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: Symposium2008    Open Source   08 02 2008

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: Symposium2008    Open Source   08 02 2008

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: Symposium2008    Open Source   08 02 2008

Page 45

C’est quoi ?

Outil de Mapping Relationnel (ORM)

Object

ORM

Base de donnée

Page 46: Symposium2008    Open Source   08 02 2008

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é)

Page 47: Symposium2008    Open Source   08 02 2008

Hibernate : incontournable dans le monde java

80000 téléchargement par mois

Page 47

Page 48: Symposium2008    Open Source   08 02 2008

Page 48

NHibernate : 20000 téléchargement par mois

Page 49: Symposium2008    Open Source   08 02 2008

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: Symposium2008    Open Source   08 02 2008

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: Symposium2008    Open Source   08 02 2008

Page 51

Cas réel

Temps de prise en mains ?

2 mois

Page 52: Symposium2008    Open Source   08 02 2008

Page 52

Cas réel

La seule solution ?

Enterprise Library

Page 53: Symposium2008    Open Source   08 02 2008

Page 53

Cas réel

Résultat

Page 54: Symposium2008    Open Source   08 02 2008

Page 54

Cas réel

Une livraison dans les temps

Page 55: Symposium2008    Open Source   08 02 2008

Page 55

Cas réel

Un client satisfait

Page 56: Symposium2008    Open Source   08 02 2008

Page 56

Cas réel

Une équipe heureuse valorisée

fière

Page 57: Symposium2008    Open Source   08 02 2008

Page 57

Conclusion

IntroductionL’Open Source Way of LifeLes projets Open SourceLes besoinsUn Cas ConcretConclusion

Page 58: Symposium2008    Open Source   08 02 2008

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

Page 59: Symposium2008    Open Source   08 02 2008

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