Générateur de code - [architecture 2-tiers - 3-tiers - n-tiers] [vb - csharp] [.net 1.1 et .net 2.0] [access,sql server][ge

Description

Bonsoir,
Voila mon début de générateur de code
L'objectif de ce générateur est simple :
générer tout le code d'accès aux données, vous n'avez plus qu'à coder la couche présentation (en fait faire simplement appel aux méthodes appropriées)
de cette manière vous pouvez définir une couche présentation en windows forms (.NET 1.x,.NET 2.0), ASP.NET,mais aussi .NET 3.0 (WPF) trés facilement

- Choix de "langue" dans laquelle est généré le code
> Français
> Anglais
-Projet Visual Studio généré:
> Projet bibliothèque de classes .NET 2.0 Visual Studio 2005
> Projet bibliothèque de classes .NET 1.x Visual Studio 2003
- Choix de l'architecture de l'application :
> 2-tiers : couche présentation (IHM) + couche persistance (accès aux données)
> 3-tiers : couche présentation (IHM) + couche métier (classes et classes collections) + couche persistance (accès aux données)
> n-tiers : couche présentation (IHM) + Controleur + couche métier (classes et classes collections) + couche persistance (accès aux données)

- Choix du Language:
>C#
>VB.NET
-Génération pour une source de données :
>Access
>Sql Server

- Génération Script SQL de création de la base de données (procédures stockées en plus pour Sql Server)

La génération se base sur la structure de la base de données (tables,champs,relations,contraintes)
- Vous pouvez définir votre base de données dans le générateur à partir de « zéro »
- Ou ouvrir une base de données (Access ou Sql Server 2000-2005) (les informations de la base seront extraites)
- Vous avez également la possibilité de sauvegarder le projet en cours .

Note :
Pour entrer facilement le script SQL de création de la base pour Access je vous conseille d?utiliser cet outil que j?avais posté, bien pratique :
http://www.csharpfr.com/codes/OUTIL-MANAGEMENT-BASES-DONNEES-POUR-ACCESS-MDB-FICHIERS_39559.aspx

++

Objectifs et idées suivantes :
- Génération couche présentation pour .net 1.1 et .net 2.0 (voir également pour Asp.net)
- Gestion complete des acces concurrentiels
- gestion acces concurrentiel optimiste
- optimisation et amélioration du code

Source / Exemple :


//// Ne pas oublier de renseigner la chaine de connexion à la base de données
            BData.OleDbConnected.sConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\romagny\Mes documents\Access\Contacts.mdb";

            // ******** 2 tiers *******************
            //// la couche UI(interface utilisateur) interagit avec la classe couche persistance (BData) avec le code généré pour architecture 2-tiers
            BData.OleDb.CONTACT oCONTACT;
            oCONTACT = new BData.OleDb.CONTACT();
            DataTable oDataTable = oCONTACT.FillDataTableCONTACTs();

            //// Afficher 
            dataGridView1.DataSource = oDataTable;

            // ******** 3 tiers *******************
            // la couche UI(interface utilisateur) interagit avec la couche metier (BObject)
            BObject.CONTACTs oCONTACTs;
            oCONTACTs = new BObject.CONTACTs();
            oCONTACTs.LoadCONTACTs();
            // Afficher la liste (ici j'utilise simplement la datasource mais on peut personnaliser le datagridview par code en definissant les colonnes,lignes et cellules)
            dataGridView1.DataSource = oCONTACTs;

            // ******** n tiers *******************
            // la couche UI(interface utilisateur) interagit avec le controleur
            Ctrl.CONTACT oCONTACT;
            oCONTACT = new Ctrl.CONTACT();
            oCONTACT.LoadCONTACTs();
            // Afficher
            dataGridView1.DataSource = oCONTACT.BObjectCONTACTs;

            // ici un contact va etre ajouter a la fois a la collection de contacts et ajoute en base de données
            oCONTACT.AddBOjectAndBDataCONTACT(1, "Dupond", "Dominique", "", 1, 2, "1960/03/10");
            
            // ici le contact n'est ajouté qu'à la collection de contacts
            oCONTACT.AddBObjectCONTACT(1, "Dupond", "Dominique", "", 1, 2, "1960/03/10");
            // pour mettre à jour la base il faut faiure appel à la methode UpdateAllBData()
            // l'ensemble des lignes ayant ete ajoutes,modifiees,supprimees en local seront mises a jour
            // en cas de probleme d'acces concurrentiel l'erreur de la ligne est stocker dans son rowstate (ex : oCONTACT.BObjectCONTACTs[0].RowError)
            oCONTACT.UpdateAllBData();
            //
            // annuler les changements apportes a une ligne en local > il faut passer la "cle primaire"
            oCONTACT.RejectChangesBObjectCONTACT(10);
            // annuler tous les changements apportes en local
            oCONTACT.RejectChangesBObjectCONTACTs();

Conclusion :


Démarche :
- Ouvrir le projet (en double cliquant dessus)
- Ajouter un projet Windows Forms à la solution par exemple
- Possibilité de réorganiser les fichiers ,projets (ex : créer un projet pour la couche métier,un autre projet pour la couche perssistance,un pour le controleur,un pour la couche présentation)
- Ajouter la ou les références aux projets

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.