如何建立一个框架来快速构建相似但不同的站点?
我需要使用ASP.NET 2.0构建许多非常相似但不完全相同的站点。
我正在尝试找到使快速便捷地生成这些网站的最佳方法。
这些站点将用于收集有关用户的信息,并且每个站点都有多个步骤。
这些站点都将收集类似的信息,但是某些站点可能需要比其他站点更少或者更多的信息。此外,根据站点的不同,某些表单字段将需要从不同的数据库表中填充。
我想使用Microsoft模式和实践解决方案,但是我不确定是否有适合这种情况的解决方案。
我目前的想法是,我将尽可能多的业务逻辑放入外部程序集中,然后为每个站点的每个步骤编写一个自定义Web用户控件。我将这些用户控件包含在母版页的面板控件中。
我不喜欢这种解决方案,因为每个站点几乎都会复制其他站点的代码。
我如何改进此设计?
主要的障碍是这些地点相似但足够不同。
谢谢!
亚历克斯
解决方案
我们可以创建处理所有通用功能的基类,然后使站点特定的控件从其各自的基类继承,然后实现其特定的实现。
我们一直都面临这个问题。我们要做的是拥有一个供我们所有站点使用的通用库,并将共享的功能嵌入该库中的类或者实用程序模块中。然后,每个站点可以按原样使用这些对象或者实用程序功能,或者扩展公共类。请记住,这些共享类可以包含各种内容,包括页面的代码隐藏以及我们可以继承和扩展的用户控件。
但是,决定应用程序中的内容和公共库中的内容是我们业务最困难的事情之一。将其放在公共库中会失去灵活性。将其放入应用程序中,可能会有重复代码需要维护的风险。
如果我们有一个相当复杂的数据库设置,那么可能值得我们花时间花一些时间来建立一个框架,该框架用于以XML指定数据库架构,并让应用执行该架构并根据该定义构建我们需要的任何其他SQL基础结构(例如,实用程序视图,存储过程等)。我们做到了,这极大地提高了生产率。
我们是否研究过Monorail(www.castleproject.org),这是themvc模式的实现,类似于Ruby on rails以及一些不错的视图引擎,我更喜欢Nvelocity。
在城堡项目中,我们也可以使用ActiveRecord的n实现,让生活更加美好。如果我们在那条路上,还可以查看coln ramsay的截屏视频。
老实说,所有ms解决方案都是真正的胖子
Castleproject的另一个优点是完全开源,因此我们可以从他们的代码中学习负载
如何使用DotNetNuke或者mojoportal之类的应用程序框架?
它们既提供了灵活性,又使我们能够使用常见功能非常快速地开发网站。我们可以开发自定义模块,而所需的功能可能有所不同。也可以购买成千上万个具有出色功能的其他模块。
但是,我们选择使用WCSF并对其进行了增强。
上面提到的所有项目都是开源的,并且有一些很好的代码示例可供学习。
我知道这可能是一个较晚的答案,但我希望它会有所帮助