易于品牌化的网站架构

时间:2012-07-08 16:59:01

标签: c# asp.net architecture

我最近参加了一个大型企业系统的演示,其网页可以自定义,包括客户添加的字段。我理解它的方式,他们的架构由以下层组成:

  1. 数据库
  2. Web服务API
  3. 指示布局的XML文件
  4. 从XML文件生成的网页。
  5. 当我被要求调查建立一个可以轻易打上品牌的门户网站时,这让我觉得这是一个很好的方法。现在的问题是人们如何设计它。

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

    考虑到可定制性和上面的体系结构的要求,以下是我理解选项的方法:

    1. Webforms - 我最熟悉的选项,但它本质上是带有代码隐藏的HTML。我认为可能需要做很多工作才能使其符合XML布局的想法。
    2. WPF - XAML中间层是内置的,但据我所知,WPF只能用于浏览器应用程序,而不能用于网站。
    3. Silverlight - 更多用于构建applet而不是网站,对吗?
    4. MVC - 这看起来很有趣,但我见过的所有演示也都使用了Entity Framework。在我看来,Entity Framework及其所有自动代码生成更适合于全新的应用程序。在我的情况下,我有一个非常大的数据库已经存在。
    5. 如果以上都不合适,我想到了另一种选择。可以使用返回品牌元素的Web服务来创建库存标准Webforms站点。这与我在顶部描述的不完全相同,但足以满足我的需求。

      还是我在错误的树上吠叫?

1 个答案:

答案 0 :(得分:1)

我认为你对MVC的批评是不对的。首先,您不需要使用Entity Framework,其次即使您这样做,也可以先使用数据库来生成实体。

您对WPF和Silverlight的评估非常适合imo。

您可以使用webforms执行此操作,但我认为您可能会发现使用MVC架构会更清晰。非常简单,如果您使用干净的HTML并将所有品牌元素放入外部CSS文件(徽标,颜色等),那么您只需要一半的自定义品牌。即使是不同的布局也可能由CSS文件定义(尽管最终用户可能更难以自定义该外观,因为他们需要很好地了解css)

构建其他字段可能更加困难:

关闭袖口,我正在考虑实现这一点的方式将是我在标准数据库布局中的预定义字段(用户表,用户名,密码,名字等等)的组合以及对“可自定义的字段“使用Entity-attribute-value pattern

从那里你需要开发一个可扩展的系统来1.从xml生成一个页面,其中包含相应的表单元素(select,text input,textarea等)。 2.生成一个通用模型,该模型将读取相同的XML文件,并能够从已发布的表单接收数据,并知道如何将其保存到数据库(请注意,在这种情况下,如果它是所有实体属性值,可能是比标准关系和EAV的组合更容易管理。

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

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