我想开发一个简单的CMS。
我想添加将模块添加到CMS的功能。
需要什么样的架构 这样的CMS?
解决方案,然后是mvc项目 对于网站和另一个为 管理员?或者一个有面积的项目 管理员?
在mvc中我的每个模块都有一个控制器,模型和视图。如果我将所有项目放在一起,那么我将混合所有模块,每个模块将在3个文件夹(控制器,模型和视图)中。
我需要如何安排它们,这样我的代码才会干净整洁?
答案 0 :(得分:1)
由于您只是按用户类型分开,因此您可以(并且很容易)包含在一个项目中。您的所有管理员控制器都应该有[授权(角色="管理员")],以便仅为管理员限制它们。混合它们很好,其他应用程序定期混合应用程序中的用户角色,只是通过安全性限制差异(并且不要在web.config中使用url限制 - 使用控制器上的[Authorize]属性代替!! 如果您希望两个应用程序中的差异巨大,那么您可以分成另一个项目,但我想象您可以通过将它们包含在同一个项目中来获得非常好的重用。
如何设计这是一个非常广泛的问题。对于基础项目,一些项目包含所有项目。我更喜欢将我的所有模型和数据访问代码分解为一个单独的项目,并尝试尽可能地编码接口以进行单元测试。我认为这有点超出了发布范围。首先 - 使用上述属性,我认为你会发展。尽早启动单元测试,我认为这将有助于引导您走向正确的方向。还要了解依赖injectiom,unit,ninject等,以便动态绑定到您的实现类,因为这会使您的单元测试变得更加平滑。