ASP.NET中的项目结构的任何最佳实践?

时间:2012-02-15 20:26:10

标签: asp.net directory-structure

我正在开发一个最有可能最终会出现大量.aspx和.master文件的Web应用程序。尺寸更多的是范围而不是设计问题,所以这是不可避免的。是否有与大型项目结构相关的好/坏做法?

显然我有像图像,脚本文件和样式表这样的资源的单独目录,但拥有母版页的文件夹会不会很疯狂?如果我知道我将有50或60个aspx页面,我应该为aspx资源创建一个文件夹吗?更进一步,如果其中10个页面将专用于单个产品,那么在我的aspx文件夹中为ProductA创建一个文件夹是否谨慎?

一般来说,共识似乎是无论是什么让开发人员更容易阅读(我,在这种情况下)都是好的,而且我知道Visual Studio在编译时也是自己的事情,但我一直在下一个开发商的鞋子拿起一个项目,所以我想避免看起来像个傻瓜,如果我能。 (并不是说我希望很快会有'下一个开发者')

5 个答案:

答案 0 :(得分:4)

为母版页和产品特定页面创建文件夹没有任何问题。这只是一个偏好问题(除非你对网址的外观有一些疯狂的要求)。

答案 1 :(得分:3)

对于像Master Pages这样的东西,它并不那么重要 - 客户本身并不能立即看到它们,因此将它们放在子文件夹中是一项组织任务,您正在做的是帮助构建您的网站,太

但是,对于其他固定页面,文件夹的选择可能很重要;例如,如果您要执行以下操作:

http://www.mysite.com/folder/thing.aspx

您现在已经为您的页面创建了一个上下文 - 该URL实际上定义了该页面与您的网站的关系。此外,此上下文可用于导航和搜索引擎索引的优势。

一个具体的例子是销售不同类别产品的网站;你可以把东西放在子文件夹中,如:

http://www.mysite.com/books/list.aspx - 明确这是一个列出图书的页面

http://www.mysite.com/games/list.aspx - 清楚这是一个列出游戏的页面

搜索引擎会接收这些类别,您可以通过以下方式链接到这些类别:

http://www.mysite.com/games/(假设您为该文件夹设置了默认页面)

实际上,您通过对功能涉及的内容进行分类来分离您的功能。您还在上面的示例中建立了您的网站与“游戏”之间的语义关系。

这是REST方法的一部分。

在实践中,使用URL Rewriting实现这种结构要容易得多,这意味着,正如另一张海报所提到的,你不会真的需要担心结构,除了你自己的组织努力。

这也意味着您可以减少页面数量,而是根据您传递的URL加载用户控件和内容。

因此,无论如何都要构建您的文件,但请考虑一下您网站的public face将是什么!

答案 2 :(得分:1)

我假设你使用的是asp.net网页而不是mvc ???

对于你的aspx文件,我会将它们放在相对于服务目的的文件夹中。您说您将拥有10个特定于产品的aspx文件,因此请创建一个产品或产品文件夹,并将其包含在该文件夹中。

您的aspx文件的文件夹结构显然会控制地址栏中的路径,除非您计划进行一系列路由。

我肯定会将您的母版页分成他们自己的文件夹以保持整洁。如果母版页特定于您网站的某个部分(即:产品),则将其放在产品文件夹中。

答案 3 :(得分:1)

您可以使用webform进行路由。这意味着你现在可以做任何你想做的事情,如果需要你可以稍后修复它。网址不会改变。

答案 4 :(得分:1)

显然,按部分/用法分隔页面和母版页并没有错。但是,我想知道你是否可以通过使用更多用户控件,页面模板和主题来重复使用更多?