如何建立一个框架来快速构建类似但不同的网站?

时间:2008-09-24 19:19:01

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

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

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

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

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

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

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

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

如何改进此设计?

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

谢谢!

亚历

4 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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

然而,确定应用程序中的内容以及公共库中的内容是我们业务中最难的事情之一。把它放在公共图书馆,你会失去灵活性;把它放在应用程序中,你可能会有重复的代码需要维护。

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

答案 2 :(得分:0)

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

说实话,所有ms解决方案都是真正的胖子 关于castleproject的另一个好处是完全开源,所以你可以从代码中学习负载

答案 3 :(得分:0)

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

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

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