基于ASP的app / CMS的目录结构

时间:2012-11-05 20:05:41

标签: asp.net coding-style standards

我正在对一个相当强大的ASP应用程序和CMS进行一次小型审计,以获得客户端(比常规CMS更好)并开始查看代码。 (编辑:这是在参与一个完整的ASP服务商店之前的快速概述。)

我来自主要使用PHP,Node.js和Ruby的背景,但是当我查看目录和文件的布局时,它看起来很糟糕。它让我想起了旧的PHP 4应用程序,文件到处都是。

我的问题是,这仍然是ASP中良好的编码实践吗?我期望找到一个更清洁/更容易理解的结构与这样的更自定义的应用程序。很像其他语言的Rails / Zend / etc。以下是来自webroot的一些文件的屏幕截图。

Screenshot of directory layout

一个侧面的问题是,有没有更好的方法来组织ASP中的文件?我没有在6到8年内使用ASP进行编码,而且我用它的时间并不是很多。

1 个答案:

答案 0 :(得分:2)

这不是ASP,它是ASP.NET;我还注意到它是WebForms,而不是MVC,它的布局非常不同。

无论如何,目录结构很乱,很可怕。这就是它的错误:

  • 静态HTML文件和ASP.NET webforms文件之间的邪恶混搭
  • 当应用程序看起来要编译时,服务器上存在代码文件(例如contact.aspx.cs)(因为它有一个bin目录),所以它们根本就不存在。
  • 文件夹和文件名大小写没有一致性。有些都是小写的,有些是TitleCase。
  • 您似乎有重复的文件夹,“图片”和“img”之间有什么区别?
  • 究竟什么是“缺失”和“布局”?
  • 重复,杂乱无章的文件index.htmlindex1.html

然后还有其他一些问题,但这些问题取决于开发人员的偏好:

  • 通常,项目只有一个或两个MasterPage文件,因此它们不在根文件夹之外。我将*.master文件直接放在应用程序的根目录中。
  • 与样式表相关的图像应该放在与样式表相同的目录中,而不是放在兄弟文件夹中(我假设“css”文件夹中样式表引用的图像实际上位于“img”中)。这很糟糕,因为它使CSS文件复杂化(因为它里面有相对路径)并使你的应用程序更加脆弱。
  • Fonts似乎包含字体文件,再次由样式表引用。它们都应该放在一个“样式”文件夹下。
  • 任何图像“内容”(即<img src="" />元素),而不是样式表中使用的图像,都应与样式表图像分开,我假设这就是为什么你有令人困惑的“img”vs“Images”文件夹

至于正确的方法,ASP.NET WebForms并不会导致整洁,组织良好的应用程序。因为每个(非重写的)URI直接对应于*.aspx文件,这意味着文件系统布局必须与网站布局匹配。我担心除非你实现ASP.NET路由,否则你无能为力。

我还建议删除所有HTML文件并将其转换为ASPX文件,以便在适当时充分利用UserControls和MasterPages。