2

我最近参加了一个大型企业系统的演示,它的网页可以定制到包含客户端添加的字段的程度。据我了解,他们的架构由以下几层组成:

  1. 数据库
  2. 网络服务 API
  3. 规定布局的 XML 文件
  4. 从 XML 文件生成的网页。

当我被要求研究建立一个可以轻松打上品牌的门户网站时,这让我觉得这是一个很好的方法。现在的问题是如何设计它。

我了解数据库和 Web 服务层,但我对在 .NET 中构建网站的各种可能性感到有些困惑。

考虑到可定制性的要求和上面的架构,我是这样理解这些选项的:

  1. Webforms - 我最熟悉的选项,但它本质上是丰富的带有代码隐藏的 HTML。我认为可能需要做很多工作才能使其与 XML 布局的想法一起工作。
  2. WPF - XAML 中间层是内置的,但据我了解,WPF 只能用于浏览器应用程序而不是网站。
  3. Silverlight - 更多地用于构建小程序而不是网站,对吧?
  4. MVC - 这看起来很有趣,但我看到的所有演示也都使用实体框架。在我看来,具有所有自动代码生成功能的 Entity Framework 更适合全新的应用程序。就我而言,我有一个已经存在的非常大的数据库。

如果以上都不合适,我想了一个替代方案。可以使用返回品牌元素的 Web 服务创建一个标准的 Webforms 站点。这与我在顶部描述的不太一样,但足以满足我的需求。

还是我在叫错树?

4

1 回答 1

1

我认为您对 MVC 的批评不正确。首先,您不需要使用实体框架,其次,即使您使用了,您也可以先使用数据库来生成实体。

您对 WPF 和 Silverlight 的评估在 imo 上非常准确。

你可以用 webforms 做到这一点,但我想你可能会发现用 MVC 架构做这件事会更干净。很简单,如果您使用干净的 HTML 并将所有品牌元素放入外部 CSS 文件(徽标、颜色等),那么您就已经完成了自定义品牌的一半。甚至不同的布局也可能由 CSS 文件定义(尽管您的最终用户可能更难以自定义该外观,因为他们需要非常了解 css)

构建额外的字段可能更困难:

即兴发挥,我正在考虑实现这一点的方式是将我的预定义字段组合在标准数据库布局中(用户表与用户名、密码、名字等)以及对“可自定义字段”的额外支持使用实体-属性-值模式

从那里您将需要开发一个可扩展的系统,以 1. 使用适当的表单元素(选择、文本输入、文本区域等)从 xml 生成页面。2. 生成一个通用模型,该模型将读取相同的 XML 文件并能够从已发布的表单接收数据并知道如何将其保存到数据库中(注意在这种情况下,如果它是所有实体属性值,则可能是比标准关系和 EAV 的组合更易于管理)。

您可能希望将 .NET 数据协定视为可序列化的实体,以了解如何将 XML 文件设计为可扩展的,以允许“选择菜单具有以下 3 个选项”或文本输入必须与此匹配正则表达式。

真正关注可扩展性,因为你不能一次构建它。

于 2012-07-08T18:48:12.393 回答