命名约定对每个人都不同,没有正确的答案只有最佳实践,但有很多错误的。当谈到面向对象的编程时,为了模块化的目的,不要过分夸大一些东西,比如DataHelpers项目可能会在你的后台使用,但是可以使用gravatar helper类(这是一个实际的类在Microsoft.Web.Helpers)是一个矫枉过正的,因为String.Format()
和md5哈希方法是你所需要的。当涉及到模块化时,您会在另一个项目中再次看到您需要的东西。
这不言而喻,但要确保你的方法类的名称在你工作的上下文中有意义,当使用asp.net MVC时,我会有一个CMS.Controller项目和一个CMS.View项目,但是所有这些都将在CMS解决方案下,在经典的ASP.net中,我将命名为CMS.BL或CMS.Web。我不会在AppCode中添加任何项目,只需将项目添加到您的解决方案中,并且不要将它们称为“常见”,当您在跨解决方案运行代码时,它们会变得拥挤在* .Common命名空间中。
因此,通过项目对其代码进行分类,并确保实现一个层次结构,以使您从Xbase继承的classX与项目的temters中的相同类型的层次结构在实现此类模式在你的项目中,你将会更加成功,而不是Xbase被CSM.Web.Core和CMS.Web下的classX所接受,后者将为循环引用铺平道路。
这是一个im工作的项目的例子,它作为一个MVC应用程序开始,但后来变成了一个具有winforms和一切的项目。
只要东西对你有意义,而且你对此感觉舒服,就可以摆脱一切,就像下面的解决方案中那样,我有一个从Entities.Netsis继承的Data.Netsis.Entities。
希望这有助于。
我写了一个非常类似的[维基问题在这里](http://stackoverflow.com/questions/3516313/the-ultimate-visual-studio-solution-structure)。有一些很好的答案。 – 2010-11-11 07:06:36