2

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

我正在尝试找到快速轻松地生成这些站点的最佳方法。

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

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

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

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

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

我该如何改进这个设计?

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

谢谢!

亚历克斯

4

4 回答 4

1

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

于 2008-09-24T19:23:31.910 回答
1

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

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

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

于 2008-09-24T19:56:16.713 回答
0

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

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

于 2008-09-24T20:13:21.337 回答
0

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

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

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

于 2009-02-05T23:39:18.840 回答