cs_Japonais
Messages postés2Date d'inscriptionsamedi 27 novembre 2004StatutMembreDernière intervention27 mai 2011 30 oct. 2012 à 12:07
Excellent code. Thnx!
rgtimma
Messages postés1Date d'inscriptionlundi 25 septembre 2006StatutMembreDernière intervention 7 janvier 2009 7 janv. 2009 à 17:20
salut romagny13, je suis nouveau dans le dev objet et je te remercie pour ton partage qui m'a beaucoup inspiré; j'ai toutefois quelque questions:
- l'utilsation de sqldependency exigent les classes du namespace sqlclient comme sqlcommand et sqlconnexion, est il possible de les avoir avec le Gestionnaire DbProviderHelper ?
-Comment pense tu que l'on puisse gerer les transactions ?
-Comment faire du reporting avec crystal report par exemple,je sais que l'on peut passer une collection d'objet à un etat mais il ne prend pas en charge le System.Nullable
cs_akhenaton
Messages postés18Date d'inscriptionmardi 9 avril 2002StatutMembreDernière intervention10 juin 2008 10 juin 2008 à 23:52
Bonsoir Romagny,
je vous remercie pour ce truc, je dirai même que ça merite 12/10...finalement je met dixxxx.
Par contre j'ai une petite remarque :
lorsque je genere le projet à partir d'une DB sql server, dans la DAL de l'objet en question (Matable), la méthode ADDMaTable ne contient pas le champ [ID] par exemple qui est la clé de l'enregistrement ( et portant j'ai décoché Autoincremnt)
pouvez vous m'aider à resoudre ce truc....j'ai pas envie de l'ajouter manuelement car je vais perdre le temps que votre application vient de m'econommiser
Très cordialement
cs_akhenaton
Messages postés18Date d'inscriptionmardi 9 avril 2002StatutMembreDernière intervention10 juin 2008 10 juin 2008 à 16:06
Bonjour à tous,
Comment faire pour remplir un comboBox avec ça?
Merci
ecosmose
Messages postés46Date d'inscriptionvendredi 5 novembre 2004StatutMembreDernière intervention30 septembre 2010 23 janv. 2008 à 16:09
Salut à Toi Romagny...
Et merci encore pour le partage des sources même si d'autres les exploitent à leur compte en essayant de porter tes lauriers...rendons à César ce qui lui appartient ;-)
Pourrais tu me confirmer que tu t'appuies (entièrement ?) sur NET2CsGEn ou si tu as changé beaucoup de choses du à la migration NET 1.0 -> NET 2.0
Julien Gourdet
Ecosmose : Association ecologiste et culturelle
orobin38
Messages postés5Date d'inscriptionmardi 11 septembre 2007StatutMembreDernière intervention21 décembre 2007 2 nov. 2007 à 13:43
bonjour,
existe t-il d'parès vous, une application de ce type, qui génère du code en VB.net ?
merci
cordialement,
Olivier
zefiras
Messages postés1Date d'inscriptionjeudi 19 juin 2003StatutMembreDernière intervention23 octobre 2007 23 oct. 2007 à 08:53
Excelent!!!! Merci!
romagny13
Messages postés687Date d'inscriptionlundi 10 janvier 2005StatutMembreDernière intervention27 août 20143 21 août 2007 à 00:18
un point particulier pour l'utilisation de SqlDependencyExpiration (cache) :
1 - vous devez impérativement indiquer le nom des colonnnes (et ne pas utiliser * de select * from nomtable)
2 - indiquer impérativement dbo devant chaque nom de table (exemple dbo.[Products]
3 - sqldependency marche pour les bases de données avec SQL Server 2005 et 2005 express sur "serveur" mais pas pour les fichiers de bases de donnnées *.mdf
4- enfin il se peut qu'il faille activer service broker avec une requete style ALTER DATABASE [DatabaseName] SET ENABLE_BROKER;
voila ainsi vous avez trés facilement un cache fonctionnel avec expirations et dependances (les expirations peuvent se cumuler exemple une expiration d'un cacheitem à une date precise + sqldependency,dans ce cas c'est à la premiere expiration que le cacheitem est supprimé exemple soit la date expire soit la table concernée subit une modification )
+
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 201361 6 août 2007 à 08:50
Faudrait que je prenne une fois le temps de regarder tout ce que tu as fait.
Mais les sources avec beaucoup de code, c'est chiant, faut consacrer beaucoup de temps lol :D
En tout cas, y'a l 'air d'avoir du travail là derrière...
romagny13
Messages postés687Date d'inscriptionlundi 10 janvier 2005StatutMembreDernière intervention27 août 20143 5 août 2007 à 00:19
cette application a du succes (et ca se comprend) donc je vais travailler encore dessus et oui je prefere amelorer des appli qui interessse beaucoup de monde que d'autres comme openxml (qui si elle est egalement interessante)ne touche en fait que assez peu de monde
j'ai etudié pas mal de generateur ou de framework(NHibernate,CodeFluent,Enterprise Library,...) .. je me suis inspiré un peu de ce que je trouvais de pas mal dans chacun (CodeFluent est excellent ;)) donc Cs2Gen represente l'implementation actuelle que je trouve la meilleure pour un accès aux données (en couches NTiers)
code fluent utilise des classes et des classes collections gérant à la fois les objets métiers et l'accès aux données par l'intermediaire de methodes static, cette approche est tres interessante mais finalement je prefere encore mieux decouper l'application
j'aime que le code generé soit proche de ce que j'aurais obtenu en tapant tout et ne pas avoir x assemblys en plus à referencer qui en fait serviront assez peu en comparaison
de plus je ne suis pas tant fan de l'utilisation de la reflection et je la fuis (même si elle est quand meme utiliser ici)
pour cs2Gen je suis en train de reflechir et etudier la possibilité egalement de generer les composants de la couche GUI (pésentation) pour ASP.NET (avec des customs controls), il se peut egalement ue j'y reflechisse pour windows forms qui serait finalement plus facile (lol mais je crois que j'aime quand je peine un peu)
il y a egalement d'autres ameliorations auquelles je pense (le cache : avoir une date,un delai d'expiration),une gestion de la securite (avec encryption dans le fichier de configuration peut etre)
donc peut etre qu'une grosse mise a jour va arriver
cs_girardhenri
Messages postés3Date d'inscriptionsamedi 12 mai 2007StatutMembreDernière intervention14 février 2009 12 juil. 2007 à 21:52
Merci pour ce code qui tourne très bien sur orcas avec net2genxx
Après conversion le code compile super :)
Henri
romagny13
Messages postés687Date d'inscriptionlundi 10 janvier 2005StatutMembreDernière intervention27 août 20143 6 juil. 2007 à 00:23
pour le tinyint c'est parce qu'on recupere le datatype system.byte(System.Byte)lors de la récupération du schema de la table, et donc c'est confondu avec une image(dont le type est System.Byte[])
bon il faudra que je pousse la gestion des types de données un peu plus
romagny13
Messages postés687Date d'inscriptionlundi 10 janvier 2005StatutMembreDernière intervention27 août 20143 5 juil. 2007 à 20:27
a quoique merci tu viens de me montrer une erreur :p (DBNull)
ba je corrige
oui si vous voyez des erreurs n'hesitez pas à m'en faire art
autant que je mette l'application le plus au point possible
ou si vous avez des idées notamment au niveau de la gestion de la connexion
++
romagny13
Messages postés687Date d'inscriptionlundi 10 janvier 2005StatutMembreDernière intervention27 août 20143 5 juil. 2007 à 20:05
je prends un exemple:
if (oContact.ContactAge.HasValue)
oDbCommand.Parameters.Add(DbProviderManager.CreateParameter("@ContactAge",DbType.Int32,oContact.ContactAge));
else
oDbCommand.Parameters.Add(DbProviderManager.CreateParameter("@ContactAge",DbType.Int32,DBNull.Value));
je ne passe une valeur nulle que si le nullable reçu n'a pas de valeur (HasValue)
les nullables et DBNull.value permettent de gérer les champs en base de données acceptant les valeurs nulles(AllowDBNull)
au niveau des types de données il est possible qu'il y ait en effet quelques points à revoirau niveau des images)
sinon ce n'est pas ^parfait encore et il faudrait par exemple que je vois comment améliorer la gestion de la connexion, même si je ne suis pas pour l'utilisation de singleton
+
bu78
Messages postés2Date d'inscriptionlundi 2 janvier 2006StatutMembreDernière intervention 5 juillet 2007 5 juil. 2007 à 15:01
Bonjour, je réalise un projet similaire depuis pas mal de temps déjà, englobant le maximum de règles organisationnelles possible.
J'ai donc été particulièrement interessé par ces sources. Avant tout, donc, Merci.
J'ai noté quelques petites corrections à faire (à moins que le point ne m'échappe, ce qui est tout à fait possible).
Les voici :
Le type "TinyInt" est vu comme un type "Image". Ce point impacte bien sur le code SQL généré mais aussi le type des parameters créés dans le DAL.
Dans le DAL, sur les méthodes Add et Update, il me semble que tu as oublié d'utiliser les propriétés de l'objet passé en paramètre. System.DbNull.value est passé pour chaque propriété (à moins que ce ne soit volontaire ...)
Exemple :
oDbCommand.Parameters.Add(DbProviderManager.CreateParameter("@Reference",DbType.String,DBNull.Value));
En lieu et place de :
oDbCommand.Parameters.Add(DbProviderManager.CreateParameter("@Reference", DbType.String, oEnumeration.Reference ));
Sinon, ce projet est interessant, rapide, efficace, le code généré est lisible, efficace ... Une bonne base.
30 oct. 2012 à 12:07
7 janv. 2009 à 17:20
- l'utilsation de sqldependency exigent les classes du namespace sqlclient comme sqlcommand et sqlconnexion, est il possible de les avoir avec le Gestionnaire DbProviderHelper ?
-Comment pense tu que l'on puisse gerer les transactions ?
-Comment faire du reporting avec crystal report par exemple,je sais que l'on peut passer une collection d'objet à un etat mais il ne prend pas en charge le System.Nullable
10 juin 2008 à 23:52
je vous remercie pour ce truc, je dirai même que ça merite 12/10...finalement je met dixxxx.
Par contre j'ai une petite remarque :
lorsque je genere le projet à partir d'une DB sql server, dans la DAL de l'objet en question (Matable), la méthode ADDMaTable ne contient pas le champ [ID] par exemple qui est la clé de l'enregistrement ( et portant j'ai décoché Autoincremnt)
pouvez vous m'aider à resoudre ce truc....j'ai pas envie de l'ajouter manuelement car je vais perdre le temps que votre application vient de m'econommiser
Très cordialement
10 juin 2008 à 16:06
Comment faire pour remplir un comboBox avec ça?
Merci
23 janv. 2008 à 16:09
Et merci encore pour le partage des sources même si d'autres les exploitent à leur compte en essayant de porter tes lauriers...rendons à César ce qui lui appartient ;-)
Pourrais tu me confirmer que tu t'appuies (entièrement ?) sur NET2CsGEn ou si tu as changé beaucoup de choses du à la migration NET 1.0 -> NET 2.0
Julien Gourdet
Ecosmose : Association ecologiste et culturelle
2 nov. 2007 à 13:43
existe t-il d'parès vous, une application de ce type, qui génère du code en VB.net ?
merci
cordialement,
Olivier
23 oct. 2007 à 08:53
21 août 2007 à 00:18
1 - vous devez impérativement indiquer le nom des colonnnes (et ne pas utiliser * de select * from nomtable)
2 - indiquer impérativement dbo devant chaque nom de table (exemple dbo.[Products]
3 - sqldependency marche pour les bases de données avec SQL Server 2005 et 2005 express sur "serveur" mais pas pour les fichiers de bases de donnnées *.mdf
4- enfin il se peut qu'il faille activer service broker avec une requete style ALTER DATABASE [DatabaseName] SET ENABLE_BROKER;
voila ainsi vous avez trés facilement un cache fonctionnel avec expirations et dependances (les expirations peuvent se cumuler exemple une expiration d'un cacheitem à une date precise + sqldependency,dans ce cas c'est à la premiere expiration que le cacheitem est supprimé exemple soit la date expire soit la table concernée subit une modification )
+
6 août 2007 à 08:50
Mais les sources avec beaucoup de code, c'est chiant, faut consacrer beaucoup de temps lol :D
En tout cas, y'a l 'air d'avoir du travail là derrière...
5 août 2007 à 00:19
j'ai etudié pas mal de generateur ou de framework(NHibernate,CodeFluent,Enterprise Library,...) .. je me suis inspiré un peu de ce que je trouvais de pas mal dans chacun (CodeFluent est excellent ;)) donc Cs2Gen represente l'implementation actuelle que je trouve la meilleure pour un accès aux données (en couches NTiers)
code fluent utilise des classes et des classes collections gérant à la fois les objets métiers et l'accès aux données par l'intermediaire de methodes static, cette approche est tres interessante mais finalement je prefere encore mieux decouper l'application
j'aime que le code generé soit proche de ce que j'aurais obtenu en tapant tout et ne pas avoir x assemblys en plus à referencer qui en fait serviront assez peu en comparaison
de plus je ne suis pas tant fan de l'utilisation de la reflection et je la fuis (même si elle est quand meme utiliser ici)
pour cs2Gen je suis en train de reflechir et etudier la possibilité egalement de generer les composants de la couche GUI (pésentation) pour ASP.NET (avec des customs controls), il se peut egalement ue j'y reflechisse pour windows forms qui serait finalement plus facile (lol mais je crois que j'aime quand je peine un peu)
il y a egalement d'autres ameliorations auquelles je pense (le cache : avoir une date,un delai d'expiration),une gestion de la securite (avec encryption dans le fichier de configuration peut etre)
donc peut etre qu'une grosse mise a jour va arriver
12 juil. 2007 à 21:52
Après conversion le code compile super :)
Henri
6 juil. 2007 à 00:23
bon il faudra que je pousse la gestion des types de données un peu plus
5 juil. 2007 à 20:27
ba je corrige
oui si vous voyez des erreurs n'hesitez pas à m'en faire art
autant que je mette l'application le plus au point possible
ou si vous avez des idées notamment au niveau de la gestion de la connexion
++
5 juil. 2007 à 20:05
if (oContact.ContactAge.HasValue)
oDbCommand.Parameters.Add(DbProviderManager.CreateParameter("@ContactAge",DbType.Int32,oContact.ContactAge));
else
oDbCommand.Parameters.Add(DbProviderManager.CreateParameter("@ContactAge",DbType.Int32,DBNull.Value));
je ne passe une valeur nulle que si le nullable reçu n'a pas de valeur (HasValue)
les nullables et DBNull.value permettent de gérer les champs en base de données acceptant les valeurs nulles(AllowDBNull)
au niveau des types de données il est possible qu'il y ait en effet quelques points à revoirau niveau des images)
sinon ce n'est pas ^parfait encore et il faudrait par exemple que je vois comment améliorer la gestion de la connexion, même si je ne suis pas pour l'utilisation de singleton
+
5 juil. 2007 à 15:01
J'ai donc été particulièrement interessé par ces sources. Avant tout, donc, Merci.
J'ai noté quelques petites corrections à faire (à moins que le point ne m'échappe, ce qui est tout à fait possible).
Les voici :
Le type "TinyInt" est vu comme un type "Image". Ce point impacte bien sur le code SQL généré mais aussi le type des parameters créés dans le DAL.
Dans le DAL, sur les méthodes Add et Update, il me semble que tu as oublié d'utiliser les propriétés de l'objet passé en paramètre. System.DbNull.value est passé pour chaque propriété (à moins que ce ne soit volontaire ...)
Exemple :
oDbCommand.Parameters.Add(DbProviderManager.CreateParameter("@Reference",DbType.String,DBNull.Value));
En lieu et place de :
oDbCommand.Parameters.Add(DbProviderManager.CreateParameter("@Reference", DbType.String, oEnumeration.Reference ));
Sinon, ce projet est interessant, rapide, efficace, le code généré est lisible, efficace ... Une bonne base.