IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

NHibernate Discussion :

[Spring][NHibernate] Application (Winform) de gestion d'une base de données MySQL


Sujet :

NHibernate

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 102
    Par défaut [Spring][NHibernate] Application (Winform) de gestion d'une base de données MySQL
    Bonjour à tous,

    Je suis en train de me renseigner pour mettre en place le framework Spring.Net /NHibernate pour une application qui servira à gérer une base de donnée MySQL via une interface graphique.

    J'ai déjà jeté un oeil aux exemples venant avec l'installation de Spring.Net et particulierement le Spring.Data.NHibernate.Northwind

    Il est difficile de trouver un exemple très basique tournant sur une table pour tester le bon fonctionnement de sa config du framework spring et l'acces aux données via NHibernate ainsi que la bonne structure de son application.

    Au final il s'agit de faire une application 3 couches (DAO, Metier, UI) très simple qui permet de faire des opérations sur une table d'une base de données.

    Quelqu'un aurait une base assez simple ou un tuto pour mettre en place cette architecture très basique ? Ou des conseils pour attaquer une premiere application sous Spring.net / NHibernate ?

    Mon application ne sera pas orientée web contrairement à l'exemple Northwind.

    Merci d'avance

  2. #2
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 273
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 273
    Par défaut
    Pour ce que tu veux faire tu n'as pas besoin d'utiliser Spring.

    Tu as juste besoin de gérer une factory au niveau application et de manipuler des sessions. Spring ne t'apportera rien de plus.

    Les exemples donnés dans le framework Spring sont simplistes au possible, donc si ceux là te sont inabordables, c'est que ce n'est pas ce que tu recherches et ce qu'il te faut (sans méchanceté aucune)

    Spring était utile en 1.2 pour les transactions (entre autres) et pour les architectures multi-tiers pour injecter le contexte nhibernate ("presqu'EJB").

    Aujourd'hui et à plus forte raison dans une application client serveur, tu ne ferais qu'ajouter une couche pas très pratique; déjà qu'un ORM en client serveur n'est pas souvent une bonne idée (perfs).

    Donc si tu veux faire une bonne application basée sur des données, il faut aussi éviter de la construire sur des technologies sur lesquels tu auras une grosse courbe d'apprentissage (spring et nhibernate sont complexes) et peu de certitudes.

    Je vais jeter un pavé dans la mare et m'attirer les foudres de plein de gens, mais pour faire select, insert et update dans une table avec des écrans, être en "couches" on s'en fout, et encore plus si c'est du client serveur. Dans ce cas l'architecture en couche, c'est juste un perf killer.

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 102
    Par défaut
    Hmm ton point de vue se defend. Ce qui m'interessait dans le fait d'utiliser un framework, c'était de mettre en place une architecture logicielle qui une fois configurée pourrait servir de base pour n'importe quelle application future (du moins pour les principales fonctionnalités).

    De plus c'est plutot NHibernate qui m'interesse pour faire une application CRUD de gestion de base de données. En effet le fait de laisser NHibernete gerer les transactions, sessions et de pouvoir recupérer les données dans un objet contenant une row de data me plait bcp.

    Actuellement j'ai mis en place un projet utilisant NHibernate. J'ai un deuxieme projet de test (NUnit) qui me permet de tester mes methodes. Actuellement j'arrive à compiler est à exporter un schema sous MySQL.
    Le problème que j'obtiens actuellement et lors de la création d'une session factory j'ai un message me demandant de configurer une factory session
    Pour la creation de l'objet configuration pas de problème par contre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Failures:
    1) FirstSolution.Tests.GenerateSchema_Fixture.Get_SerialNumber : NHibernate.Bytecode.ProxyFactoryFactoryNotConfiguredException : The ProxyFactoryFactory was not configured.
    Initialize 'proxyfactory.factory_class' property of the session-factory configuration section with one of the available NHibernate.ByteCode providers.
    Example:
    <property name='proxyfactory.factory_class'>NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu</property>
    Example:
    <property name='proxyfactory.factory_class'>NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle</property>
       at FirstSolution.Tests.GenerateSchema_Fixture.Get_SerialNumber() in C:\Documents and Settings\giordaj1\Desktop\SPRING-HIBERNATE\NHibernateCRUD\FirstSolution.Tests\GenerateSchema_Fixture.cs:line 74
    or dans mon hibernate.cfg.xml j'ai bien la ligne en question :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <?xml version="1.0" encoding="utf-8"?>
    <!-- 
    This template was written to work with NHibernate.Test.
    Copy the template to your NHibernate.Test project folder and rename it in hibernate.cfg.xml and change it 
    for your own use before compile tests in VisualStudio.
    -->
    <!-- This is the ByteFX.Data.dll provider for MySql -->
    <hibernate-configuration  xmlns="urn:nhibernate-configuration-2.2" >
    	<session-factory name="NHibernate.Test">
    		<property name="connection.driver_class">NHibernate.Driver.MySqlDataDriver</property>
    		<property name="connection.connection_string">
    			Database=spring;Data Source=localhost;User Id=spring;Password=spring
    		</property>
        <property name="proxyfactory.factory_class">NHibernate.ByteCode.Spring.ProxyFactoryFactory, NHibernate.ByteCode.Spring</property>
        <property name="dialect">NHibernate.Dialect.MySQLDialect</property>
        <property name ="show_sql">true</property>
    	</session-factory>
    </hibernate-configuration>
    Quelqu'un aurait une idée ?

    Config :
    NHibernate 3.0
    .Net 2.0
    MySql.Data 6.2.4.0
    Server MySQL 5.5

  4. #4
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 273
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 273
    Par défaut
    Pourquoi utiliser Spring en particulier ?
    Tu as bien référencé la DLL pour le proxy spring ?

    Essayes avec le paramétrage castle qui est la factory par défaut.

  5. #5
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 102
    Par défaut
    En fait j'ai essayé avec les générateurs de proxy LinFu et Spring mais pas avec Castle. Je peux essayer en effet avec celui là.

    J'ai referencé les dll suivantes :

    Spring.Aop
    Spring.Core
    NHibernate.ByteCode.Spring

    comme vu dans des tutos.

    J'ai choisi Spring dans l'hypothese d'utiliser Spring.net une fois la configuration et la prise en main de NHibernate réussie...

    MAJ (Essais avec Castle) : idem même probleme des que je veux utiliser session factory... dès que je fais un buildSessionFactory() ça sort en erreur sur le même message que celui cité dans le premier post ...

  6. #6
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 273
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 273
    Par défaut
    Ca vient d'ailleurs alors...Je vais essayer, si ça fonctionne je te donne le bout de code.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 25/06/2012, 15h15
  2. Gestion d'une base de données Access en C++
    Par Mastero dans le forum Bibliothèques
    Réponses: 3
    Dernier message: 01/10/2008, 11h23
  3. Réponses: 13
    Dernier message: 01/02/2008, 12h09
  4. Réponses: 3
    Dernier message: 30/05/2006, 19h09
  5. [JSP][Servlet][Tomcat][JDBC]Gestion d'une base de donnée.
    Par BakaOnigiri dans le forum Servlets/JSP
    Réponses: 31
    Dernier message: 16/05/2006, 20h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo