【问题标题】:How can I make a framework for quickly building similar, but different, sites?如何制作一个框架来快速构建相似但不同的网站?
【发布时间】:2010-09-12 20:33:59
【问题描述】:

我需要使用 ASP.NET 2.0 构建许多非常相似但不完全相同的网站。

我正在努力寻找快速轻松地生成这些网站的最佳方法。

这些站点将用于收集有关用户的信息,每个站点都有多个步骤。

这些网站都会收集类似的信息,但有些网站可能需要的信息比其他网站少或多。此外,某些表单字段需要根据站点从不同的数据库表中填充。

我想使用 Microsoft 模式和实践解决方案,但我不确定是否有适合这种情况的解决方案。

我目前的想法是,我会将尽可能多的业务逻辑放入一个外部程序集中,然后为每个站点的每个步骤编写一个自定义 Web 用户控件。我会将这些用户控件包含在母版页的面板控件中。

我不喜欢这个解决方案,因为每个站点几乎都在复制其他站点的代码。

我该如何改进这个设计?

主要障碍是站点相似,但差异很大。

谢谢!

亚历克斯

【问题讨论】:

    标签: asp.net asp.net-mvc wcsf


    【解决方案1】:

    您可以创建处理所有常见功能的基类,然后让您的站点特定控件从它们各自的基类继承,然后实现它们的特定实现。

    【讨论】:

      【解决方案2】:

      我们一直面临这个问题。我们所做的是拥有一个我们所有站点都使用的通用库,并将共享功能隐藏在该库的类或实用程序模块中。然后,每个站点都可以按原样使用这些对象或实用程序功能,或者扩展公共类。请记住,这些共享类可以包含各种内容,包括您可以继承和扩展的页面代码隐藏和用户控件。

      不过,决定应用中的内容和公共库中的内容是我们业务中最困难的事情之一。把它放在公共库中,你就失去了灵活性;将其放入应用程序中,您可能需要维护重复代码。

      如果您有一个相当复杂的数据库设置,可能值得您花时间提出一个框架,用于在 XML 中指定您的数据库架构,并让您的应用强制执行该架构并基于该架构构建您需要的任何其他 SQL 基础架构定义(例如实用程序视图、存储过程等)。我们这样做了,它极大地提高了生产力。

      【讨论】:

      • 感谢您的意见。你有任何用户控件继承的例子吗?我知道如何继承和覆盖背后的代码,但我看不到如何更改表示(以编程方式添加 Web 控件会混淆表示和逻辑)。
      【解决方案3】:

      你有没有研究过 Monorail (www.castleproject.org) 这是一个 themvc 模式的实现,类似于带有一些漂亮视图引擎的 Ruby on rails,我更喜欢 Nvelocity。 从城堡项目中,您也可以使用 ActiveRecord 的 n 实现,让生活变得真正美好。如果你在这条路上,还可以看看 coln ramsay 截屏视频。

      老实说,所有的 ms 解决方案都是真正的胖子 Castleproject 的另一个优点是它是完全开源的,因此您可以从他们的代码中学习负载

      【讨论】:

      • 虽然 Monorail 看起来很棒,但恐怕业务要求我们在这个项目中坚持使用 ASP.NET Web 窗体。
      【解决方案4】:

      如何使用像 DotNetNuke 或 mojoportal 这样的应用程序框架? 它们都提供了灵活性,使您能够非常快速地开发具有通用功能的网站。让您开发自定义模块,您需要的功能可能会有所不同。还有数以千计的其他模块可供购买,它们提供了出色的功能。

      但是我们选择使用 WCSF 并对其进行了增强。
      上面提到的所有项目都是开源的,并且有一些很好的代码示例可供学习。

      我知道这可能是一个迟到的答案,但我希望它有所帮助

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-12
        • 1970-01-01
        相关资源
        最近更新 更多