我似乎很难理解需要在一个解决方案中包含许多项目的原因(在我的案例中,使用c#的visual studio 2010)。
我想到的唯一用途是,如果我创建一个新类,我可以先在控制台应用程序中测试它们,然后将另一个项目添加到解决方案中,以便将这些类与我想要的项目一起使用。
请指导我正确的方式,谢谢。
答案 0 :(得分:3)
典型的项目可能包含UI,数据层,服务层和域层,以及一些测试。典型的安排是每个都作为他们自己的项目文件存在。该解决方案将包含所有这些项目,以便您可以一次修改和调试应用程序的不同部分。
如果你刚刚开始,你可能会将所有这些东西塞进一个项目中。这对于学习很好,但对于可维护性和可重用性来说是绝对混乱。
答案 1 :(得分:1)
将解决方案拆分为多个项目时,有三个主要原因:重用,封装和项目特定设置。
重用
您可能有一个在多个解决方案之间共享的Utilities项目。您可能还具有在类库中定义的数据访问和业务规则,但在多个UI项目之间共享,例如具有Web界面,桌面界面和Web服务的业务应用程序。他们都需要共享相同的逻辑和数据模型,因此您不希望单独在每个解决方案中复制它。
封装
另一个原因是实现封装,这是OOP的主要原则之一。您的类可能具有内部方法和属性(或者类本身甚至可以定义为内部),这使得它们仅对同一项目中的其他类可见。如果它是为了达到特定目的而不是所有人都可以访问的东西,通过将类拆分到不同的项目中,可以使这些属性,方法和类对类可见,但隐藏在项目范围之外。 / p>
项目特定设置
某些项目类型的行为完全不同。 Web项目与Windows窗体应用程序不同,后者与WPF应用程序完全不同。这种情况与#1一起,试图实现代码重用;既然你不能拥有一个单独的项目,那就是一个网站 AND 一个Windows窗体应用程序和一个WPF应用程序,你就可以将每个UI创建为自己的项目并放入尽可能多的逻辑尽可能在一个可以在所有UI项目之间共享的单独项目中。
答案 2 :(得分:0)
有几个可能的原因: