无法理解vs2010中一个解决方案中许多项目的概念

时间:2011-04-29 21:45:12

标签: visual-studio

我似乎很难理解需要在一个解决方案中包含许多项目的原因(在我的案例中,使用c#的visual studio 2010)。

我想到的唯一用途是,如果我创建一个新类,我可以先在控制台应用程序中测试它们,然后将另一个项目添加到解决方案中,以便将这些类与我想要的项目一起使用。

请指导我正确的方式,谢谢。

3 个答案:

答案 0 :(得分:3)

典型的项目可能包含UI,数据层,服务层和域层,以及一些测试。典型的安排是每个都作为他们自己的项目文件存在。该解决方案将包含所有这些项目,以便您可以一次修改和调试应用程序的不同部分。

如果你刚刚开始,你可能会将所有这些东西塞进一个项目中。这对于学习很好,但对于可维护性和可重用性来说是绝对混乱。

答案 1 :(得分:1)

将解决方案拆分为多个项目时,有三个主要原因:重用,封装和项目特定设置。

  1. 重用
    您可能有一个在多个解决方案之间共享的Utilities项目。您可能还具有在类库中定义的数据访问和业务规则,但在多个UI项目之间共享,例如具有Web界面,桌面界面和Web服务的业务应用程序。他们都需要共享相同的逻辑和数据模型,因此您不希望单独在每个解决方案中复制它。

  2. 封装
    另一个原因是实现封装,这是OOP的主要原则之一。您的类可能具有内部方法和属性(或者类本身甚至可以定义为内部),这使得它们仅对同一项目中的其他类可见。如果它是为了达到特定目的而不是所有人都可以访问的东西,通过将类拆分到不同的项目中,可以使这些属性,方法和类对类可见,但隐藏在项目范围之外。 / p>

  3. 项目特定设置
    某些项目类型的行为完全不同。 Web项目与Windows窗体应用程序不同,后者与WPF应用程序完全不同。这种情况与#1一起,试图实现代码重用;既然你不能拥有一个单独的项目,那就是一个网站 AND 一个Windows窗体应用程序一个WPF应用程序,你就可以将每个UI创建为自己的项目并放入尽可能多的逻辑尽可能在一个可以在所有UI项目之间共享的单独项目中。

答案 2 :(得分:0)

有几个可能的原因:

  • 项目可能在多个解决方案中有用
  • 简单的组织实用程序 - 就像你可能在单独的文件中有类一样,即使单个源文件可以容纳多个类就好了。