欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

MVC 5 第二章 MVC5应用程序项目结构

程序员文章站 2024-02-25 18:04:27
单从mvc的字面意思我们便能够注意到m-模型, view-视图, controller-控制器,他们都各自存储在解决方案下的单独的文件夹中。除此之外还有很多有用的信息值得我...

单从mvc的字面意思我们便能够注意到m-模型, view-视图, controller-控制器,他们都各自存储在解决方案下的单独的文件夹中。除此之外还有很多有用的信息值得我们去探索,废话少说,首先我们来看一下mvc 5的项目结构。

MVC 5 第二章 MVC5应用程序项目结构

通过上图,我们可以清晰地了解到mvc 5应用程序的项目结构,接下来我们来依次解释下他们各自的应用。

app_data: 该文件夹主要是包含应用程序的本地存储, 它通常以文件形式(如microsoft sql server数据库文件, xml文件等)包含数据存储。

app_start: 该文件夹包含应用程序的配置逻辑文件, 具体包括bundleconfig.cs, filterconfig.cs, routeconfig.cs, startup.auth.cs

                 bundleconfig.cs: 注册所使用的捆绑的css 和 js文件。

                 filterconfig.cs: 注册外部/全局过滤器,这些过滤器可以被应用到每个action和controller中去.

                 routeconfig.cs: 配置mvc应用程序的系统路由路径。

                 startup.auth.cs: 配置mvc应用程序的安全信息,包括authentication和authorization配置以及第三方authentication provider

content: 该文件夹被推荐用于存储静态内容文件类似css 和 (图片)images

controllers:顾名思义,该文件夹用于存储所有的控制器且控制器必须以"controller"结尾。

fonts: 该文件夹用于存储mvc应用程序可能用到的字体文件

models: 该文件夹用于存储应用程序实体模型类, 实体类可以定义对象以及应用程序逻辑。

scripts: 该文件夹默认存储asp.net ajax foundation files和jquery.主要被用来存储应用程序所支持的脚本(js)文件.

views: 该文件夹主要用来存储mvc应用程序所使用的布局文件(.master), 视图文件(.aspx)以及视图用户控件文件(.ascx)

细心的读者还会注意到global.asax, startup.cs(mvc 5应用程序新增加的) 以及web.config.

gobal.asax:

(摘自msdn)这里的global.asax主要是web应用程序的全局设置文件,该文件包含响应 asp.net 或http模块所引发的应用程序级别和会话级别事件的代码。global.asax 文件驻留在 asp.net 应用程序的根目录中。运行时,分析 global.asax 并将其编译到一个动态生成的 .net framework 类,该类是从httpapplication基类派生的。配置 asp.net,以便自动拒绝对 global.asax 文件的任何直接的 url 请求;外部用户不能下载或查看其中的代码。global.asax 文件是可选的。只在希望处理应用程序事件或会话事件时,才应创建它.

web.config:

((摘自msdn)web.config文件是一个xml文本文件,它用来储存asp.netweb 的配置信息(如最常用的设置asp.netweb 应用程序的身份验证方式),它可以出现在应用程序的每一个目录中。当你通过.net新建一个web应用程序后,默认情况下会在根目录自动创建一个默认的web.config文件,包括默认的配置设置,所有的子目录都继承它的配置设置。如果你想修改子目录的配置设置,你可以在该子目录下新建一个web.config文件。它可以提供除从父目录继承的配置信息以外的配置信息,也可以重写或修改父目录中定义的设置。
在运行时对web.config文件的修改不需要重启服务就可以生效(注: 节例外)。当然web.config文件是可以扩展的。你可以自定义新配置参数并编写配置节处理程序以对它们进行处理。

重点介绍下startup.cs文件:

startup.cs:

这个文件主要是提供给owin(open web interface for .net)应用程序使用,owin的目的是为了解耦服务器应用程序。例如在asp.net identity使用owin security, signalr self hosting使用owin hosting等情况下, 我们的mvc应用程序都有使用到owin, 所以,他们都相应的会使用到startup.cs所定义的startup class. 关于owin的应用这里不作详述,这里提到own主要是为了说明startup.cs文件的使用.

好了,今天的文章就写到这里,内容不算多但是很有条理,结构清晰,希望给学习的朋友们一点启示吧!通过本章学习,朋友们对mvc应用程序的结构应该有了比较清晰的认识,下一章我们将介绍mvc应用程序开发的一些知识点(tips and tricks).