[ cs2gen ] - generateur de code ntiers pour bases de données (v 2.1)

Description

Cette application ne génère du code ne pouvant être utilisable qu?à partir du Framework .NET 2.0

Cette application est un peu la version 2 d?un générateur de code que j?avais posté , je le poste en nouvelle source car de nombreuses personnes pourraient etre interessées par le précédent(qui génére du code VB.NET et C# pour le Framework .NET 1.0 et 2.0)

I - Présentation

Sont pris en charge :
- Génération couches BLL,BusinessObjects,DAL
- Caching (expirations disponibles : absolue (à une date donnée),relative(dans un certains temps),SqlDependency(le cache est vidé si une modification a lieue en base SQL Server),FilDependency(pour bases de données ACCESS ou autres fichiers xml,etc...)
- Serialization Xml (reposant sur les generics)
- librairie d?aide pour les predicats des listes generiques
- Le trie (IComparer)
- Génération des fichiers de configuration de l?application (App.config et Web.config) contenant les chaines de connexion
- Encryption de la section connectionstrings des fichiers de configuration(App.config) possible
- Génération du script SQL (avec création des tables et procédures stockées/Views)
- Etc.

II Démarche :

1 ? générer le code puis ouvrir la solution visual studio qui vient d'etre générée
2 - ajouter un projet pour la couche présentation :
- Windows Forms Application
- ASP.NET Application
- WPF Application
- ?
3 ? Ajouter une référence aux couches
> BLL
> BusinessObjects
4 - Ajouter une référence aux librairies Cs2Gen.Caching.dll et Cs2Gen.Predicate.dll
5 ? Ajouter le fichier de configuration dans la couche présentation
> App.config (Windows Forms ou WPF Application)
> Web.config (ASP.NET Application)

Notes :
- la librairie Cs2Gen.Predicate.dll offre des facilités pour créer des predicats,
bien entendu vous pouvez utiliser les méthodes anonymes,les predicates(délégués) ou vos propres méthodes avec les generics

- la libraire Cs2Gen.Caching.dll est moins complète que celle d'enterprise library,toutefois
vous pouvez ici tres facilement ajouter une dépendance au cache avec SqlDependency(SQL Server)

Ce projet est disponible sur CodePlex(sources,runtime) >
http://www.codeplex.com/cs2gen

Bon les sources sont fournies xp
Profitez en car je risque de ne pas poster des sources aussi souvent
J?espère pour autant ne pas voir arriver des copies !!

il y a également un bon petit tutorial de Thomas Lebrun sur Developpez.com
http://morpheus.developpez.com/architecture/

lire une image d'une base de données ou insérer une image dans une base de données (méthodes qui sont générées et disponible dans la classe Utilities)
http://romagny13.over-blog.com/article-11277632.html

+

Source / Exemple :


//
            // SAMPLES
            //
            BLLManager bLLManager = new BLLManager();
            List<Contact> Contacts;

            // Get all
            Contacts = bLLManager.ContactBLL.GetContacts();
            dataGridView1.DataSource = Contacts;

            // get element(s) of relation
            List<Contact> result = bLLManager.ContactBLL.GetContactsOfCategory(1);
            Category category = bLLManager.ContactBLL.GetCategoryOfContact(contact);

            // filter + sort (Business objects)
            List<Contact> result = Contacts.FindAll(
                PredicateBuilder<Contact>.MakePredicate(
                    PredicateExpression.StartsWith("Contactname", "A")
                    )
                );
            result.Sort(new Contact.ContactnameComparer(SorterMode.Ascending));
            dataGridView1.DataSource = result;

            // Add
            bLLManager.ContactBLL.AddContact(new Contact(4, "Dupond", 25, 1));

            // Update
            Contact result = Contacts.Find(PredicateBuilder<Contact>.MakePredicate(
                PredicateExpression.Eq("ContactID", 4)
                  )
               );
            result.Contactname = "Lama";
            bLLManager.ContactBLL.UpdateContact(result);

            // Delete
            Contact result = Contacts.Find(PredicateBuilder<Contact>.MakePredicate(
                PredicateExpression.Eq("ContactID", 4)
                  )
               );
            bLLManager.ContactBLL.RemoveContact(result);

            //Xml Serialization              
            bLLManager.ContactBLL.SerializeContacts(@"c:\Contacts.xml", Contacts);
            List<Contact> result = bLLManager.ContactBLL.DeserializeContacts(@"c:\Contacts.xml");
		

	   // caching sample : SQL Server (with SqlDependencyExpiration)
           CacheManager cacheManager=new CacheManager();
 	   if (cacheManager.Contains("myKey"))
            {
              Contacts =(List<Contact>) cacheManager.GetData("myKey").Value;
            }
            else
            {
                Contacts = bLLManager.ContactBLL.GetContacts();
                cacheManager.Add("mykey", Contacts, new ICacheItemExpiration[] { new SqlDependencyExpiration(new SqlCommand("SELECT ContactID,ContactName,ContactFirstName,ContactAge From dbo.[Contact]", new SqlConnection("Data Source=.;Initial Catalog=ContactDB;Integrated Security=SSPI;"))) }); 
            }
	    // caching sample : ACCESS database file (with FileDependency) 	    
            if (cacheManager.Contains("myKey"))
            {
                Contacts =(List<Contact>) cacheManager.GetData("myKey").Value;
            }
            else
            {
                Contacts = bLLManager.ContactBLL.GetContacts();
                cacheManager.Add("mykey", Contacts, new ICacheItemExpiration[] { new FileDependency(@"C:\Contacts.mdb") }); 
            }

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.