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

 更新时间:2014年06月09日 16:18:22   作者:  
通过本章学习,你将了解到一个MVC 5应用程序的项目组成以及项目文件的相关信息,从而更好地架构设计出自己的项目结构。

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

通过上图,我们可以清晰地了解到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).

相关文章

  • ADO.Net 类型化DataSet的简单介绍

    ADO.Net 类型化DataSet的简单介绍

    今天学习了类型化DataSet,笔记整理如下,需要的朋友可以参考一下
    2013-04-04
  • Entity Framework Core批处理SQL语句

    Entity Framework Core批处理SQL语句

    这篇文章介绍了Entity Framework Core批处理SQL语句的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-02-02
  • 灵活使用asp.net中的gridview控件

    灵活使用asp.net中的gridview控件

    这篇文章主要介绍了如何灵活使用asp.net中的gridview控件,并进行了案例分析与实现,文章末尾还附加了datePicker插件的使用方法,感兴趣的小伙伴们可以参考一下
    2015-11-11
  • Entity Framework使用Code First模式管理事务

    Entity Framework使用Code First模式管理事务

    本文详细讲解了Entity Framework使用Code First模式管理事务的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • c# datatable用法总结

    c# datatable用法总结

    在项目中经常用到DataTable,如果DataTable使用得当,不仅能使程序简洁实用,而且能够提高性能,达到事半功倍的效果,现对DataTable的使用技巧进行一下总结。
    2010-09-09
  • Asp.net 在三层架构中事务的使用实例代码

    Asp.net 在三层架构中事务的使用实例代码

    再我知道的.net中,执行事务有两种方法,一种是自动事物,使用起来相当简单,但是需要配置服务器,如果你用的是web共享主机,即没有权限配置自己的服务器,那就没必要用这种了,接下了我讲下.net中最普通的事务SqlTransaction
    2012-10-10
  • 扩展方法ToJSON() and ParseJSON()

    扩展方法ToJSON() and ParseJSON()

    AJAX编程经常需要Object<=>JSON之间转换,写了二个扩展方法: public static string ToJSON(this object obj) public static T ParseJSON<T>(this string str)
    2008-03-03
  • ASP.NET MVC异步获取和刷新ExtJS6 TreeStore

    ASP.NET MVC异步获取和刷新ExtJS6 TreeStore

    这篇文章主要为大家详细介绍了ASP.NET MVC异步获取和刷新ExtJS6 TreeStore的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12
  • ASP.NET笔记之 控件与母板的区别分析

    ASP.NET笔记之 控件与母板的区别分析

    本篇文章小编为大家介绍,ASP.NET笔记之 控件与母板的区别分析。需要的朋友参考下
    2013-04-04
  • C#中的Equals、RefrenceEquals和==的区别与联系

    C#中的Equals、RefrenceEquals和==的区别与联系

    C#中判断两个对象是否相等有Equals、RefrenceEquals和==三种,其中==为运算符,其它两个为方法,而Equals又有两种版本,一个是静态的,一个是虚拟的,详细了解可以参考本文
    2012-12-12

最新评论