我们正在设计我们的新产品,其中将包括多租户。它将用 ASP.NET 和 C# 编写,并且可以托管在 Windows Azure 或其他一些云托管解决方案上。
我们一直在研究 MVC 和其他技术,老实说,我们陷入了各种首字母缩略词(MVC、EF、WCF 等)的困境。
我们应用程序的一个特殊要求令人头疼——用户将能够向数据库添加字段,甚至可以创建一个全新的模块。
结果,每个租户将拥有一个与使用该系统的每个其他租户具有不同结构的数据库。我们设想每个租户都将拥有自己的数据库,而不是共享一个数据库。
(将字段等添加到系统将使用 Web 界面完成)。
一切都很好,但是在为 MVC 创建数据模型时出现了问题。根据此链接,以编程方式修改数据模型以将字段添加到表中似乎是不可能的:
这让我们非常头疼。即使我们不使用 MVC,我想我们仍然想创建一个数据模型(可能用于 LINQ to SQL)。
我们正在考虑创建一个包含大量字段的表,当用户想要将字段添加到他的表单时,我们不会在数据库中添加字段,而是在表中分配一个现有字段。不过,我不确定我是否喜欢这个主意。
当然,我们不必使用 MVC 或实体框架,但在我看来,这些是微软将引导我们走向未来发展的技术。
有什么想法吗?我假设我们不是世界上第一个考虑这种用户可定制应用程序想法的人。