我有很多在Visual Studio中创建ASP.NET网站的经验。但是有一种替代方法可以通过Web应用程序执行相同的操作,文件结构略有不同。
由于我创建了我的第一个Web应用程序,因此无法再在App_Code文件夹中使用类(.cs文件),除非将它们移动到同一文件中,否则它们不会被ASPX和ASHX类看到。
碰巧我在许多文件中使用相同的类,我不想拥有它们的多个副本。我把这些课程放在哪里?有没有创建另一个项目的解决方案?
答案 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发送给其他开发人员,他/她可以轻松地重用您开发的类。