【ASP.Net】 MVC architecture

背景:

在MVC出世之前, net的web开发一直使用的是web form框架。这个框架是一个伟大的想法, 想将windows form的开发者平移到web form上, 但是在本质的设计上有一系列难以避免的的缺点: web form由于要维护状态, 所以client和server之间的传输数据会很大, 导致响应慢, 增加了服务器的带宽需求等等问题, 导致其难以测试和维护。

 

1.  配置route在app_start文件夹下面的RouteConfig.cs文件中配置.

2.  Controller中的action的返回类型有: EmptyResult, ActionResult, ContentResult, HttpStatusCodeResult, JsonResult

3.  _Layout.cshtml 这个文件在shared folder下面, 作为所有的page可以同时引用的页面. 里面有个属性叫@RenderBody. 这个属性类似于一个placeholder. 可以将其他页面的界面替换到这里.

4. 在ASP Net MVC中添加一个EF的方式:

打开package manager console, 输入命令, initial-migration update-migration等命令后, 会创建出来一个migrations文件夹.

5. DAL data access layer 访问数据层.

该层主要是存放context类. 这个类一般继承自DBContext, 这个类与EF交互最为密切, 可以指定想获取的数据的dbset.

生成db主要是在application运行时, 会调用seed方法. 为了告诉EF去调用seed方法, 需要在web.config文件中的节点: entityFramework节点中添加元素:

 

<entityFramework>
  <contexts>
    <context type="ContosoUniversity.DAL.SchoolContext, ContosoUniversity">
      <databaseInitializer type="ContosoUniversity.DAL.SchoolInitializer, ContosoUniversity" />
    </context>
  </contexts>
  <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
    <parameters>
      <parameter value="v11.0" />
    </parameters>
  </defaultConnectionFactory>
  <providers>
    <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
  </providers>
</entityFramework>

 

6.Entity Framework

是指你在第一次运行程序时候会创建出db的application.程序会调用initializers的seed方法, 在创建db的同时会将部分数据初始化到db当中去.

https://www.codeguru.com/csharp/article.php/c19233/Introduction-to-Entity-Framework-Code-First.htm

https://www.codeguru.com/csharp/article.php/c19999/Understanding-Database-Initializers-in-Entity-Framework-Code-First.htm

code first

EF4.1开始支持code first. 根据你的类的配置来设计数据库

7. Miniprofiler

http://www.cnblogs.com/GuZhenYin/p/5408632.html

 

posted @ 2018-05-31 17:34  YanyuWu  阅读(122)  评论(0)    收藏  举报