使用ASP.NET的动态N层

时间:2011-02-27 21:24:37

标签: c# asp.net dynamic webforms n-layer

我正在尝试构建一个Web应用程序,让管理员通过C#与数据库通信,并添加新的表和列以满足他的要求(类似于一个非常简单的数据库工作室)但我不是想创建一些意大利面应用。

所以我试图弄清楚当他创建一个表并使用表来构建它时如何动态地(自动地)让这些东西:

1-业务对象或实体(类,它的对象和属性)。 2-数据访问层(一些连接到数据库并添加,更新,删除检索项(对象)的简单方法)。

这可能吗?有关如何实现它的任何指示?

编辑

刚打开你的链接! ..它正在谈论数据绑定控件和东西! ..我的问题比那更先进! 当你构建一个N层应用程序时,你从数据库模式和实现开始,它很容易编程,然后你开始构建DAL类(添加,编辑等,换句话说,CRUD操作)并形成这个数据库

我想要做的是允许Web管理员选择通过我的应用程序添加新表,然后 - 动态地 - 应用程序将表名和列作为参数并创建新类并在其中定义CRUD方法这将实现SQL CRUD操作

然后它还会动态创建类并在其中定义调用和使用DAL方法的变量,属性和方法..所有这些都基于表,列名

注意:所有这些都发生在运行时!

4 个答案:

答案 0 :(得分:1)

您可能需要查看ASP.Net Dynamic Data。它是一个RAD工具,可以非常轻松地为您的实体提供CRUD功能等等。看看吧。

答案 1 :(得分:0)

首先,任何尝试创建MS Access的人都注定要重新创建MS Access。厉害。

最好使用ASP.NET动态数据(如建议的那样)或ASP.NET MVC Scaffolding。但是运行时生成的游戏形式实际上构成了不错的应用程序真的是管道梦想您需要开发人员时间来做任何复杂的事情。或者好吧。

答案 2 :(得分:0)

有些时候我也问过similar question。我只收到了一个回复。

今天我在MSDN上挖掘了一些信息,正如我猜测的那样,MS CRM实体模型基于元数据工作。因此,无论CRM开发人员正在努力解决的是元数据,它们都不是真正的对象。以下是MSDN链接。

Extend MS CRM Metadata这里是MS CRM 4.0 SDK

我希望这能让你开始。

更新:最近点击Visual Studio LightSwitch。我认为这是我们想要建立的。一个UI,它将从DB中获取表信息,然后创建所有CRUD屏幕。 VS LightSwitch在Beta1中具有相当大的潜力。应该是一个很好的起点。

答案 3 :(得分:-1)

你所要求的是无意义的。为什么?因为BLL和n层背后的想法是你很了解你的数据模型,并且可以创建一个静态类模型来表示你的数据模型。

如果您的数据模型是动态的,并且正在更改,则无法创建静态BLL(BLL就是这样)。您必须在运行时动态构建查询。这不是任何传统方法设计用来处理的,所以你必须自己做所有事情。

虽然可以在运行时动态生成类,但这可能不是您想要采用的方法,因为即使您设法使您的BLL适应您的动态数据库..调用BLL的代码也不会知道任何事情,因此永远不会被召唤。

这不是您将在一夜之间解决的问题,也不是复制任何现有解决方案的问题。您必须使用低级ADO调用从头开始设计它,而不是依赖于ORM或任何自动化。