2009-05-24 12 views
0

J'apprécierais grandement vos conseils sur une spécification étrange.Existe-t-il un ORM capable de générer dynamiquement une couche DAL à partir d'une application .Net WinForms?

Nous avons besoin d'une application où les utilisateurs peuvent glisser/déposer des types de champs sur un formulaire afin qu'ils puissent créer leur propre "application". J'ai la configuration frontale, mais le back-end est un gros problème. Il existe des ORM de mappage vers l'avant et des ORM de mappage inversé, mais je n'en ai pas trouvé un qui puisse être intégré dans l'application et générer les tables, les relations, etc. lorsque l'utilisateur démarre l'application. Bien sûr, si une table, un champ ou une autre entité existe déjà, il ne les écrasera pas (et écrasera les données sous-jacentes).

ActiveRecord est le plus proche que j'ai trouvé, mais il est basé sur le Web et ne s'étend pas à un environnement WinForm. Je préférerais donc que notre équipe n'écrive pas notre propre DAL, ne le corrige pas, etc. quand il y a un ORM qui peut le faire.

Est-ce que quelqu'un connaît un ORM capable de faire cela? Sinon, comment feriez-vous pour résoudre ce cauchemar en cours?

Merci beaucoup pour votre aide.

Répondre

0

Bien que vous puissiez trouver une solution à ce problème construit avec ORM, je ne pense pas que ce soit une bonne idée: ces outils sont conçus pour résoudre une autre classe de problèmes. Le seul moyen est de construire l'application vous-même.

0

C'est une application malheureuse - si vos utilisateurs voulaient faire cela, ils achèteraient juste Visual Studio!

Ce n'est pas une bonne position, parce que non, je ne suis pas au courant d'un moyen approprié de le faire avec un ORM. Malheureusement, si vous êtes à la recherche d'une solution, votre projet risque d'être en difficulté.

0

En théorie, vous pouvez utiliser n'importe quel ORM, qui peut générer automatiquement un schéma de base de données. Par exemple, voir DataObjects.Net, il génère généralement et met à niveau le schéma de base de données en utilisant un modèle persistant, basé sur des classes persistantes et des définitions personnalisées supplémentaires. Mais je peux difficilement imaginer comment votre application fonctionnera dans ce cas ... il y a tellement de problèmes potentiels.