在使用Visual Studio .NET的Web应用程序项目类型而不是网站时,我在哪里放置类? (ASP.NET)

时间:2009-05-21 17:16:56

标签: c# .net asp.net visual-studio-2008 web-applications

我有很多在Visual Studio中创建ASP.NET网站的经验。但是有一种替代方法可以通过Web应用程序执行相同的操作,文件结构略有不同。

由于我创建了我的第一个Web应用程序,因此无法再在App_Code文件夹中使用类(.cs文件),除非将它们移动到同一文件中,否则它们不会被ASPX和ASHX类看到。

碰巧我在许多文件中使用相同的类,我不想拥有它们的多个副本。我把这些课程放在哪里?有没有创建另一个项目的解决方案?

7 个答案:

答案 0 :(得分:8)

我们一直在VS 2008中为所有项目使用Web应用程序项目类型,并将我们的公共类放在AppCode文件夹而不是App_Code文件夹中。它工作得非常好,我们可以在应用程序的所有页面上访问我们的类,而不会有任何问题。

答案 1 :(得分:7)

使用Web应用程序项目,您可以获得更多自由。只需在项目下创建子文件夹即可保存您的课程。例如,您可以使用名为“DAL”的文件夹来保存数据访问层项目。

或者,您可以创建一个装配项目并将您的课程放在那里,只需从您的WAP中引用它。

最终,结构将归结为你将拥有多少课程。

答案 2 :(得分:2)

为什么你不想创建另一个项目?这将是最简单的方法,因为您的所有类都将放置在该程序集中,您可以在Web应用程序中进行项目引用,然后可以访问整个项目中的所有内容。

我强烈建议您考虑这种方法。

答案 3 :(得分:1)

我通常在解决方案中有三个项目。 Web应用程序,Web库(基页等)和DAL。这可以保持一切清洁。

答案 4 :(得分:1)

将它们放在任何你想要的地方。我倾向于将小项目特定的帮助程序类和基页保存在Web项目下的/ Helpers文件夹中,但是将DataLayer的东西和通用的可重用帮助程序拆分到它们自己的单独项目中。

答案 5 :(得分:1)

我将/Shared/Classes用于整个网站中使用的通用类。我喜欢将其余的类放在 Classes 文件夹中,使用它们,例如/blog/Classes/

- 编辑 -

上面的答案是我如何在Web窗体应用程序项目中存储类。现在我正在使用MVC,我将/Classes中的通用类和/Classes下的子文件夹中的非常规类存储为/Classes/Blog。简而言之,Old_App_Code已重命名为Classes。这似乎是我看到微软在MVC中使用的命名约定的自然扩展,而且它也适用于我的旧Web窗体页面。

答案 6 :(得分:0)

我强烈建议您将所有类(域对象)放在一个单独的项目中。这样,您就可以轻松地针对业务层(域对象)编写测试,并且您的类将是可移植的。便携式意味着您可以将DLL发送给其他开发人员,他/她可以轻松地重用您开发的类。