1
3
实际上,我认为最好的方法应该是一种不会过度设计的方法。我担心你似乎没有充分的理由来制作一个完整的体系结构。 这些都是新模块吗?然后开始写第一个。使用适用于单个模块的最佳实践。 然后写第二个。你会发现你想要使用你在第一个模块中已经写过的东西。伟大的。重构就是为了这个。将这些重构成一个或多个“库”项目,重新运行所有单元测试,然后继续第二个模块。 重复,直到所有模块完成。 在这个过程的最后,如果您需要您所概述的那种架构,那么您将拥有它。如果您需要的更少,那么您将拥有的更少,并且您将不会花时间创建与现实需求无关的体系结构。 |
2
2
我不想说这是“最好的方法”,但我建议你看看 Dot Net Nuke (dnn)去获得一些想法。这始于微软为展示ASP.NET项目而发布的旧的“我买间谍”启动程序Web项目,并从那里开始。 编辑:
你可以用dnn做这个。它们在dnn和drupal中也被称为“模块”。
是的,这是个好主意。在一些内容管理系统(如dnn和drupal)中,您会看到这种情况。这样,并非同一网站的所有实现都需要安装所有模块。 我们有一个重要的网站,用于托管我们收费的“服务即解决方案”应用程序(如果您不是精算师或会计师,您就不会听说过)。过去几年的主要开发人员使用早期版本的DotnetNuke作为模型,以了解如何重构允许他更改的应用程序部分。 |
3
1
就像其他人建议的那样,dnn可能会为你想做的工作而工作。如果您想完全自然地滚动自己的控件,我将使用容器“框架”和一组用户控件(.ascx)的某种组合。容器可以像带有菜单的母版页一样简单。根据您想要的设计的灵活性,您可以预制许多不同的页面,每个页面承载不同的控件(根据您的需要单独设置DLL)。如果您希望它更具动态性,您可以拥有一个内容页,在运行时将所需的用户控件动态加载到其中。同样,这只是一个一般性的方法,大概可以从30000英尺的角度了解DNN是如何实现的。 |
4
1
以你的公司/产品命名主要项目,并保持简短。您可能需要一个或两个库项目来支持它——这些项目将包含日常的、常见的逻辑,例如 error reporting ,Web实用程序方法等。 接下来,选择一个你想要的 sub-projects (我不喜欢这个特定上下文中的术语模块)并将其添加到您的解决方案中。无论您是重用一个现有的项目,还是最好从头开始,您最终都会将这个项目中的任何公共逻辑移到您的库中。 冲洗并重复。也许看看类似的东西 Sueetie 包括多个子项目的项目,如CMS、博客、日历、论坛等。 以下文章在msdn上标记为“过时”,但我仍然认为您应该看看它: Structuring Solutions and Projects 此外,模式和实践组中的类似内容: Structuring Projects and Solutions in Team Foundation Source Control |