精华内容
下载资源
问答
  • Pro ASP.NET MVC 5 (精通ASP.NET MVC5框架) 中文+英文+配套源代码
  • ASP.NET MVC案例教程(基于ASP.NET MVC beta)——第七篇:闲话ASP.NET MVC 2008-11-05 17:04 by T2噬菌体, 29625 阅读, 121 评论, 收藏, 编辑 摘要  本文作为《ASP.NET MVC案例教程》的完结篇,仅从...

    ASP.NET MVC案例教程(基于ASP.NET MVC beta)——第七篇:闲话ASP.NET MVC

    2008-11-05 17:04 by T2噬菌体, 29625 阅读, 121 评论, 收藏编辑

    摘要
          本文作为《ASP.NET MVC案例教程》的完结篇,仅从个人角度,发表一些对ASP.NET MVC框架的看法。并且在最后会附上本系列文章的Demo下载。

    前言
          写这篇文章的目的,是想总结一些东西,以帮助朋友们更好的使用这个框架。但是,我又不像把官方列举的哪些优势、功能翻译过来列举在这里。 所以,我想干脆我就纯从个人观点上对这个框架评论一下吧。说的不好的,不对的还请批评指正。^_^

    ASP.NET MVC——螺旋进步的产物
          对于微软为什么要推出ASP.NET MVC,我们是无从得知的,也许是因为JavaEE平台上有Struts,也许是因为MVC太流行,也许微软是想使得自己的Web App平台更完善,总之我们只能猜测。但是如果回顾一下微软的Web App平台进化过程,还是很有意思的。

          ASP——微软最早为Web开发做出的贡献可能就是ASP了,这个动态语言把动态网页开发的难度空前降低了。但是,在很多人兴奋的用ASP写着一个又一个动态网页时,它的缺点渐渐暴露:语言过于简单,没有面向对象支持、没有好的IDE支持、动态脚本和静态HTML杂糅在一起,使得修改及维护极为困难。
          Web Form——说实话,即使是用现在的眼光看,微软推出的Web Form编程模型确实是很有创意,也很实用。微软开创性地将桌面应用的开发模式引入Web应用开发:拖控件、写事件处理、运行...一切都那么美好,而且前段静态代码和后端程序完全隔离在两个文件里,并且用户可以使用.NET平台上任意一种语言进行后端编程。对程序员来说,使用C#进行编程比使用ASP实在是舒服太多了。所以,Web Form模型可以说成为.NET Web App开发的代名词,所有基于.NET平台的Web开发人员都熟悉并接受了这种模型。
          ASP.NET MVC——就在Web Form大行其道时,微软推出了ASP.NET MVC。严格说,ASP.NET MVC和Web Form是不具有可比性的,Web Form是一个完整的新型模型,从顶层到底层是一整套的东西,而ASP.NET MVC只是给Web Form穿了件MVC样子的外套,它应该是基于Web Form的一种编程方式模型扩展。但是,从开发人员看,ASP.NET MVC的推出确实大大改变了我们的开发方式,很多Web Form下的方式不被提倡了(你仍可以用,因为ASP.NET MVC也是基于Web Form的),例如,曾饱受赞扬的服务器端控件再度被抛弃,转而再次使用客户端控件,事件驱动模型被抛弃,转而使用了类似传统的Url跳转处理模型。而且在数据验证等方式上与Web Form下提倡的方式有了很大变化。

          如此看来,真像是一个轮回,似乎ASP.NET MVC又把我们带回到了ASP时代:服务器端模型不让用、事件驱动机制不让用、类似Desktop App的开发方式不让用...我们似乎从Web Form回到了传统的ASP时代。但是,真的是这样吗?当然不是!
          只要稍微用一下,就知道虽然ASP.NET MVC提倡我们废除Web Form下的很多东西和习惯,但是绝不是让我们“回归原始”,如果非要说是一个轮回,那也应该说是一个螺旋式的轮回,是上升式的轮回。
          记得马克思主义哲学中有个很经典的命题:对于新事物来说,道路是曲折的,前途是光明的。也许,Web App模型的发展就印证了这个观点吧。也许,服务器端控件、事件驱动模型这些东西一开始就是不适合Web App的,微软走了很多弯路,现在找到了正确的方向。抛弃的痛苦的,我们要抛弃曾经认为多么习惯并且倾注了大量心血的东西,但是,事物被否定后,剩下的的一个蜕变出的新事物,是一个更优秀的东西。
          例如,我们抛弃了用了多年的务器端控件、事件驱动模型……但是我们得到了低耦合的、关注被分离的、符合MVC模型的新的Web模型。要敢于否定,才能获得新生。微软是,我们也是。

    ASP.NET MVC带来的变化
          下面,我们看看ASP.NET MVC到底让我们否定什么?又能得到什么。
          1.服务器端表单控件。
          由于ASP.NET MVC的特质,服务器端的表单控件不再被提倡使用,例如我们的文本框,不再使用asp:TextBox,而是使用传统的input,或直接让Html.TextBox生成。总之,很多服务器端控件被我们废止了。甚至GridView这样曾给我们带来无限快感的老朋友,也不再被提倡使用。但是,并不是说不能用任何服务器端控件,例如,为了实现母版,我们的ContentPlaceHolder还是必须要使用的。
          2.事件驱动模型。
          既然服务器端表单控件已经不提倡使用了,事件驱动模型自然也不被提倡,两者本来就是相辅相成的。在ASP.NET MVC中,当某个按钮被点击,你不要再习惯性想到应该在相应的aspx.cs中有个时间处理方法,你应该想到的是该有某个Controller中有个Action来处理这个事件。实际上,在ASP.NET MVC中,提倡不要在aspx.cs中写任何逻辑代码。甚至应该当他们不存在。
          3.数据绑定
          对于列表式表格数据,你一定习惯了GridView的数据绑定,可是,从你使用ASP.NET MVC开始,这不在被提倡了。你应该自己处理数据的显示。当然,我们也可以期待未来的ASP.NET MVC正式版中会有一个强大的Helper来帮我们做数据显示。

    ASP.NET MVC的收益
          你一定想知道,我们为使用ASP.NET付出了如此惨烈的代价,那么我们能得到什么?从我个人认为,你至少得到了以下东西:
          1.清晰的、关注被分离的代码。
          2.更容易的测试及维护。
          3.更符合MVC的表示层。
          4.你可以向Java程序员自豪的说:我现在也用MVC模式了,而且不用写任何XML!

    总结
          好了,到这里,这个系列就结束了。
          在这个系列开篇里,我曾经说,我做这个系列的唯一目的只是让还徘徊在ASP.NET MVC门外的朋友快速入门,快速上手,快速学会使用这个框架做应用,所以,这个系列一直是在“实用”的指导思想下写的。它不够全面,没有涉及到ASP.NET MVC的方方面面。但是,我相信现在你已经有能力去自己学习那些“方方面面”了。当然,它也不够深入,没有讲解底层的原理。但是,现在的你一定也可以随着实践经验的基类,慢慢去研究它的原理了。
          总之,只要你能通过这个系列的文章,学会使用ASP.NET MVC的基本方法,并已经开始试着做Demo了。那么,我的目的也就达到了。
          最后,附上本系列文章的Demo:MVCDemo.rar

    学习ASP.NET MVC的资料推荐
          1.微软官方ASP.NET MVC QuickStart文档。http://quickstarts.asp.net/previews/mvc/
          2.ScottGu的博客。http://weblogs.asp.net/scottgu/
          3.lulu的ASP.NET MVC入门系列。http://www.cnblogs.com/QLeelulu/archive/2008/10/05/1303997.html

    展开全文
  • asp.net MVC 实现水晶报表代码 Using Crystal Report in ASP.net MVC and creating generic report viewer
  • 七天学会ASP.NET MVC (一)——深入理解ASP.NET MVC 七天学会ASP.NET MVC (二)——ASP.NET MVC 数据传递 七天学会ASP.NET MVC (三)——ASP.Net MVC 数据处理 七天学会ASP.NET MVC (四)——用户授...

    http://www.cnblogs.com/powertoolsteam/p/MVC_one.html

    系列文章
    七天学会ASP.NET MVC (一)——深入理解ASP.NET MVC

    七天学会ASP.NET MVC (二)——ASP.NET MVC 数据传递

    七天学会ASP.NET MVC (三)——ASP.Net MVC 数据处理

    七天学会ASP.NET MVC (四)——用户授权认证问题

    七天学会ASP.NET MVC (五)——Layout页面使用和用户角色管理

    七天学会ASP.NET MVC (六)——线程问题、异常处理、自定义URL

    七天学会ASP.NET MVC(七)——创建单页应用

    ASP.NET vs MVC vs WebForms
    许多ASP.NET开发人员开始接触MVC认为MVC与ASP.NET完全没有关系,是一个全新的Web开发,事实上ASP.NET是创建WEB应用的框架而MVC是能够用更好的方法来组织并管理代码的一种更高级架构体系,所以可以称之为ASP.NET MVC。

    我们可将原来的ASP.NET称为 ASP.NET Webforms,新的MVC 称为ASP.NET MVC.

    ASP.NET Web Form

    ASP.NET 在过去的十二年里,已经服务并成功实现Web 应用的开发。我们首先了解一下为什么ASP.NET能够如此流行,并成功应用。

    微软编程语言从VB开始就能够成为流行并广泛应用,都源于其提供的强大的Visual studio能够进行可视化的编程,实现快速开发。

    使用VS时,开发人员能够通过拖拽UI元素,并在后台自动生成这些界面的代码。称为后台代码。在后台代码中开发人员可以添加操作这些UI元素的逻辑代码。

    clip_image002

    因此微软的可视化RAD架构体系有两方面组成,一方面是UI,一方面是后台代码。因此ASP.NET Web 窗体,包含ASPX和ASPX.CS,WPF包含XAML/XAML.CS等。

    ASP.NET Web Form存在的问题

    我们不得不考虑的问题是,既然ASP.NET Web Form 如此成功且具有优势,为什么微软还要推出ASP.NET MVC?主要是因为ASP.NET Webform的性能问题。在Web应用程序中从两方面来定义性能:

    1. 响应时间: 服务器响应请求的耗时

    2. 带宽消耗: 同时可传输多少数据。

    响应时间

    我们可以理解为什么ASP.NET Webform比较慢,如图我们做了一些小的加载测试。分别使用ASP.Net MVC和ASP.Net Webform,发现ASP.Net MVC的响应时间比Webform快了两倍。

    clip_image003

    接下来我们在思考一个问题为什么ASP.NET MVC的性能更好?看看下面这个示例,简单的UI代码和UI的后台代码。

    假如一个textbox的ASPX页面:


    对应的UI后台代码:

    1: protected void Page_Load(object sender, EventArgs e)
    2: {
    3: TextBox1.Text = “Make it simple”;
    4: TextBox1.BackColor = Color.Aqua;
    5: }
    运行结果:

    clip_image004

    如果查看HTML输出,则会显示如下代码:


    我们再来思考上面提到的问题

    1. 这种HTML生成方式是否很有效?我们是否为了获取如此简单的HTML而长时间的消耗服务器

    2. 开发人员是否可以直接编写HTML?很难实现吗?

    clip_image005

    通过分析我们可以得知,每一次请求都有转换逻辑,运行并转换服务器控件为HTML输出。如果我们的页面使用表格,树形控件等复杂控件,转换就会变得很糟糕且非常复杂。HTML输出也是非常复杂的。由于这些不必要的转换从而增加了响应时间。该问题的解决方案就是摆脱后台代码,写成纯HTML代码。

    带宽消耗

    ASP.NET开发人员都非常熟悉Viewstates,因为它能够自动保存post返回的状态,减少开发时间。但是这种开发时间的减少会带来巨大的消耗,Viewstate增加了页面的大小。在做的加载测试中,与MVC 对比,我们发现Viewstate增加了两倍的页面存储。以下是测试结果:

    clip_image006

    页面尺寸的增加是因为viewstate产生了额外的字节。下图就是Viewstate的截图。许多人可能会不同意此观点,但是众所周知,开发人员是如何工作的,如果有选择,他们肯定会采取别的选择。

    clip_image008

    HTML 消耗

    现在因为我们都是后台代码和ASP.NET web server控件的努力,我们对于怎样得到HTML以及如何使他们更有效没有更好的办法。如下面展示的ASPX 代码,你能确定会生成什么样的HTML代码吗?


    I am a panel
    Lable标签会生成DIV标签还是SPAN标签?运行后生成的HTML代码的结果如下:label生成了span标签,Literal生成了转换为了简单的文本,而panel转换为了DIV标签。

    I am labelI am a literal

    I am a panel
    因此与其生成HTML代码,还不如直接编写HTML代码,并实现HTML控件。

    所以该问题的解决方案是:不使用服务器控件,直接编写HTML代码。
    直接编写HTML代码的好处在于web设计者可以与开发人员紧密合作及时沟通。设计人员可以使用他们喜爱的设计工具来设计HTMl代码,像dream weaver,前端页面等,设计独立。如果我们使用服务器控件,这些设计者工具可能不会识别。

       2. 后台代码类的重用性
    

    如果仔细观察一些专业的ASP.NET Webform项目,你会发现后台代码类往往都包含了大量的代码,并且这些代码也是非常复杂的。而现在,后台代码类继承了“System.Web.UI.Page”类。但是这些类并不像普通的类一样能够到处复用和实例化。换句话来讲,在Weform类中永远都不可能执行以下代码中的操作:

    1: WebForm1 obj = new WebForm1();obj.Button1_Click();

    1. 单元测试
      既然无法实例化后台代码类,单元测试也是非常困难的,也无法执行自动化测试。必须手动测试。

    解决方案
    既然讲了ASP.Net Webform存在的两大问题即服务器控件和后台代码,以下是根源图,

    clip_image009

    那么解决方案是什么?

    就是我们需要将后台代码迁移到独立的简单的类库,并且拜托ASP.Net服务器控件,并写一些HTML示例。

    ASP.NET Webform 和MVC 比较,如下图:

    clip_image010

    Microsoft Asp.Net MVC 是如何弥补Web Form存在的问题的?
    后台代码和服务器控件是一切问题的根源。所以如果你查看当前的WebForm体系结构,开发者正在使用的包含3层体系结构。三层体系结构是由UI包含ASPX及CS 后台代码。

    UI,业务逻辑以及包含数据访问的中间层

    clip_image011

    Asp.Net MVC 由Model,View,Controller三部分组成。Controller中包含后台代码逻辑,View是ASPX,如纯HTML代码,Model是中间层。通过上图可获得这三部分的关系。

    所以会发现MVC的改变有两点,View变成简单的HTML,后台代码移到简单的.NET类中,称为控制器。

    以下是ASP.NET MVC 请求流的通用步骤:

    Step 1:首先获取控制器。

    Step 2:依赖行为控制器创建Model对象,Model通过转换调用数据访问层。

    Step 3:数据填充Model之后,传递到View 显示层,实现显示的目的。

    clip_image012

    到这里我们就已经了解了ASP.Net MVC的各个组件。下面我们做一些小的实验深入了解MVC的各组件。首先我们从Controller 控制器开始,因为Controller是MVC体系架构的核心部分。

    你是否真的理解Asp.Net MVC的Controller(控制器)?
    为了我们能够更好的理解Controller,我们首先需要理解Controller中涉及的专业术语:用户交互逻辑。

    什么是用户交互逻辑?

    场景1

    你是否想过当用户输入URL摁下回车键时,会发生什么事情?

    clip_image013

    浏览器首先需要给服务器发送请求,服务器再做出响应。

    clip_image014

    通过这些请求之后,客户端正尝试与服务器交互,服务器能够反馈响应,因为服务器端存在一些判断逻辑来处理这些请求。这些能够处理用户请求以及用户交互行为的业务逻辑称为用户交互逻辑。

    场景2

    有一种常见的情况,服务器端发送的请求是HTML请求。HTML请求是由一组输入控件和提交按钮组成的。

    clip_image015

    当用户点击“Save”按钮之后会发生什么?

    如果你的回答是有一些事件处理器来处理button点击事件,那么很抱歉回答是错误的。

    在Web编程中是没有事件的概念的,Asp.net Web forms 根据我们的行为自动添加了处理代码,所以给我们带来的错觉认为是事件驱动的编程。这只是一种抽象的描述。

    当点击Button时,一个简单的HTTP请求会发送到服务器。差别在于Customer Name,Address以及Age中输入的内容将随着请求一起发送。最终,如果是有个请求,服务器端则有对应的逻辑,使服务器能够更好响应请求。简单来说是将用户交互逻辑写在服务器端。

    在Asp.Net MVC中,C代表Controller,就是用来处理用户交互逻辑的。

    实验一:简单的MVC Hello world,着重处理Controller。
    Step1 创建一个Asp.Net MVC 5项目
    打开Visual studio 2013 点“文件”->新建->项目。

    clip_image016

    Step 1.2 选择Web 应用,输入项目名称,选择存放路径,点击确定。
    clip_image017

    Step 1.3 选择MVC 模板
    clip_image018

    Step 1.4 选择Change Authentication(改变授权),弹出对话框中选择“No Authentication”,并点击确定。
    clip_image019

    Step 2 –创建控制器
    Step 2.1,在资源管理器中,右击controller文件夹,选择添加->Controller(控制器)
    clip_image020

    Step 2.2 选择空 MVC 5 Controller 并点击添加
    clip_image021

    Step 2.3 输入控制器的名称”TestController“,点击添加。
    在这一步骤中,要特别注意千万不能删除名称中的” Controller”关键字。名称中必须包含Controller关键字。

    clip_image022

    Step 3. 创建行为方法
    打开新建的TestController 类,可以发现已生成的Index 方法,将该方法删除,并且添加新方法命名为GetString ,代码如下:

    1: public class TestController : Controller
    2: {
    3: public string GetString()
    4: { return “Hello World is old now. It’s time for wassup bro ;)”;
    5:
    6: }
    7: }
    Step 4. 运行并测试 按 F5 键,在地址栏中以“ControllerName/ActionName”这样的形式输入,需要注意的输入控制器名称时,不能输入”Controller“只输入”Test”。
    clip_image023

    实验一:Q&A
    1. TestController 和Test之间的关系是什么?

    TestController是类名称,而Test是Controller的名称,请注意,当你在URL中输入controller的名称,不需要输入Controller这个单词。

    1. Action(行为) 方法是什么?

    Action 方法 简单的来说就是一个Controller内置的public类型的方法,能够接收并处理用户的请求,上例中,GetString 方法返回了一个字符串类型的响应。

    注意:在Asp.Net Web Forms中默认的返回请求是HTML的,如果需要返回其他类型的请求,就必须创建HTTP 处理器,重写内容类型。这些操作在Asp.net中是很困难的。在Asp.net MVC中是非常简单的。如果返回类型是”String“直接返回,不需要发送完整的HTML。

    1. 如果从Action 方法中返回对象值会出现什么意外情况?

    请浏览以下代码

    1: namespace WebApplication1.Controllers
    2: {
    3: public class Customer
    4: {
    5: public string CustomerName { get; set; }
    6: public string Address { get; set; }
    7: }
    8: public class TestController : Controller
    9: {
    10: public Customer GetCustomer()
    11: {
    12: Customer c = new Customer();
    13: c.CustomerName = “Customer 1”;
    14: c.Address = “Address1”;
    15: return c;
    16: }
    17: }
    18: }
    输出结果如下所示:

    clip_image024
    当返回类型如“Customer”这样类似的对象时,将调用ToString()方法,返回“NameSpace.ClassName”形式的类名。
    4. 如果需要获得上面例子中的属性值,要如何操作?

    简单重写类的“ToString”方法,如下:

    1: public override string ToString()
    2: {
    3: return this.CustomerName+”|”+this.Address;
    4: }

    运行结果:
    clip_image025

    1. Action 方法是否只能用Public修饰符来修饰?

    答案是肯定的,每个公有方法都会自动称为Action 方法。

    1. 非public方法是什么?

    类的方法都比较简单,并且并不是公共可用的。无法在Web中调用。

    1. 如果我们需要其他函数来完成一些特定功能,但不是Action Method要如何实现?

    使用NonAction属性修饰,如下:

    1: [NonAction]
    2: public string SimpleMethod()
    3: {
    4: return “Hi, I am not action method”;
    5: }

    当尝试给以上Action 方法发送请求时,会获得以下结果:
    clip_image026

    View部分
    Controller是处理用户请求,并做出响应,通常情况下响应都是以显示在浏览器中,使用HTML代码,浏览器才可识别。HTML有图像,文本,输入控件等。通常称为用户界面的设计即UI层,在ASP.net MVC称为View。

    实验二——深入理解View
    在实验二中,创建一个简单的MVC应用,仅仅具有Controller和简单的字符串类型的返回值。让我们来了解MVC中的View部分吧。

    Step1 –创建新的Action 方法
    在TestController中添加新的Action 方法,如下:

    1: public ActionResult GetView()
    2: {
    3: return View(“MyView”);
    4: }

    Step 2 创建View
    Step 2.1 右击上述创建的Action 方法,选择“添加View”

    clip_image027

    Step 2.2 在添加View的对话框中输入View名称“MyView”,取消选择“使用布局”的复选框,点击添加。
    clip_image028

    资源管理器重的Views/Test文件夹中会添加一个新的View文件。

    clip_image029

    Step3 在View中添加内容
    打开MyView.cshtml 文件,并添加以下内容:

    @{Layout = null;}


    MyView
    Welcome to MVC 5 Step by Step learning

    Step 4. 运行 按F5键运行应用
    clip_image030

    实验二:Q&A
    1. 为什么View会放在Test的文件夹中?

    View是与放置在特定目录下的Controller相关。这个特定文件夹是以”ControllerName”命名的,并且放在View文件夹内

    1. 在多个控制器中无法重用View吗?

    当然可以,我们需要在将这些文件放在特定的Shared文件夹中。将View 放在Shared文件夹中所有的Controller都可用。

    clip_image031

    1. 单个Action 方法中可引用多个View吗?

    可以,ASP.NET MVC的view和Controller不是严格的匹配的,一个Action Method可以引用多个view,而一个View也可以被一个Action方法使用如下代码所示:

    1: public ActionResult GetView()
    2: {
    3: if(Some_Condition_Is_Matching)
    4: {
    5: return View(“MyView”);
    6: }
    7: else
    8: {
    9: return View(“YourView”);
    10: }
    11: }

    1. View函数的功能是什么?

      创建 ViewResult 对象将会渲染成视图来给用户反馈

    ViewResult 创建了ViewPageActivator 对象
    ViewResult 选择了正确的ViewEngine,并且会给ViewEngine的构造函数传ViewPageActivator对象的参数
    ViewEngine 创建View类的对象
    ViewEngine 调用View的RenderView 方法。
    5. ActionResult和 ViewResult的关系是什么?

    ActionResult是抽象类,而ViewResult是ActionResult的多级孩子节点,多级是因为ViewResult是ViewResultBase的子类,而ViewResultBase是ActionResult的孩子节点。

    1. 什么是ContentResult?

    ViewResult是HTML响应而ContentResult是标准的文本响应,仅返回字符串类型。区别就在于ContentResult是ActionResult的子类。

    经过了本节MVC基础知识的学习,相信大家对MVC已经有了基本的认识。大家在进行ASP.NET MVC的开发时,还可以借助一些开发工具。ComponentOne Studio ASP.NET MVC 是一款轻量级控件,与Visual Studio无缝集成,完全与MVC6和ASP.NET 5.0兼容,将大幅提高工作效率。

    展开全文
  • 七天学会ASP.NET MVC (一)——深入理解ASP.NET MVC 七天学会ASP.NET MVC (二)——ASP.NET MVC 数据传递 七天学会ASP.NET MVC (三)——ASP.Net MVC 数据处理 七天学会ASP.NET MVC (四)——用...

    http://www.cnblogs.com/powertoolsteam/p/MVC_three.html

    系列文章
    七天学会ASP.NET MVC (一)——深入理解ASP.NET MVC

    七天学会ASP.NET MVC (二)——ASP.NET MVC 数据传递

    七天学会ASP.NET MVC (三)——ASP.Net MVC 数据处理

    七天学会ASP.NET MVC (四)——用户授权认证问题

    七天学会ASP.NET MVC (五)——Layout页面使用和用户角色管理

    七天学会ASP.NET MVC (六)——线程问题、异常处理、自定义URL

    七天学会ASP.NET MVC(七)——创建单页应用

    目录:
    数据访问层

    实体框架(EF)简述

    什么是代码优先的方法?

    实验8——在项目中添加数据访问层

    关于实验8

    实验9——创建数据输入屏幕

    实验10——获取服务端或控制器端传递的数据。

    实验11——重置及取消按钮

    实验12——保存数据。库记录并更新表格

    实验13——添加服务器端验证

    实验14——自定义服务器端验证

    结论

    数据访问层
    在实际开发中,如果一个项目不包含任何数据库,那么这个项目是不完整的,我们在一二节实例中未涉及数据库,在本节开始,实验8中讲解一个关于数据库和数据库层的实例。

    本节将使用SQL Server和EF(Entity Framework)创建相关的数据库及数据库访问层。

    简述实体框架(EF)

    EF是一种ORM工具,ORM表示对象关联映射。

    在RDMS中,对象称为表格和列对象,而在.net中(面向对象)称为类,对象以及属性。

    任何数据驱动的应用实现的方式有两种:

    1. 通过代码与数据库关联(称为数据访问层或数据逻辑层)

    2. 通过编写代码将数据库数据映射到面向对象数据,或反向操作。

    ORM是一种能够自动完成这两种方式的工具。EF是微软的ORM工具。

    什么是代码优先的方法?

    EF提供了三种方式来实现项目:

    l 数据库优先方法——创建数据库,包含表,列以及表之间的关系等,EF会根据数据库生成相应的Model类(业务实体)及数据访问层代码。

    l 模型优先方法——模型优先指模型类及模型之间的关系是由Model设计人员在VS中手动生成和设计的,EF将模型生成数据访问层和数据库。

    l 代码优先方法——代码优先指手动创建POCO类。这些类之间的关系使用代码定义。当应用程序首次执行时,EF将在数据库服务器中自动生成数据访问层以及相应的数据库。

    什么是POCO类?

    POCO即Plain Old CLR对象,POCO类就是已经创建的简单.Net类。在上两节的实例中,Employee类就是一个简单的POCO类。

    实验8——添加数据访问层
    1. 创建数据库

    连接SQL SERVER ,创建数据库 “SalesERPDB”。

    clip_image001

    1. 创建连接字符串(ConnectionString)

    打开Web.Config 文件,在< Configuration >标签内添加以下代码:

    1:
    2:

    展开全文
  • ASP.NET MVC4.0新特性: APS.NET MVC5新特性 ASP.NET WebAPI2新特性: ASP.NET WEB Form与ASP.NET MVC5区别: MVC 与三层架构的关系:


    ASP.NET MVC4.0新特性:


    APS.NET MVC5新特性

    ASP.NET WebAPI2新特性:


    ASP.NET WEB Form与ASP.NET MVC5区别:


    MVC 与三层架构的关系:


    展开全文
  • ASP.NET MVC 文章推荐 jQuery for Asp.net MVC preview 3http://www.chrisvandesteeg.nl/2008/06/13/jquery-for-aspnet-mvc-preview-3/哈哈,喜欢ASP.NET MVC和JQuery的朋友有福了....另一篇:Using JQuery to ...
  • [Asp.net MVC]Asp.net MVC5系列——第一个项目 [Asp.net MVC]Asp.net MVC5系列——添加视图 [Asp.net MVC]Asp.net MVC5系列——添加模型 [Asp.net MVC]Asp.net MVC5系列——从控制器访问模型中的数据 ...
  • ASP.NET MVC 蒋金楠

    2020-09-30 10:50:38
    ASP.NET MVC 蒋金楠ASP.NET MVC 蒋金楠ASP.NET MVC 蒋金楠ASP.NET MVC 蒋金楠ASP.NET MVC 蒋金楠ASP.NET MVC 蒋金楠ASP.NET MVC 蒋金楠ASP.NET MVC 蒋金楠ASP.NET MVC 蒋金楠ASP.NET MVC 蒋金楠
  • ASP.NET MVC 的运行原理——从它支持的架构概念到如何使用 Microsoft Visual Studio 2011 开发出功能完整的 ASP.NET MVC Web 网站 深入学习 ASP.NET MVC Web 程序项目 完整理解 ASP.NET MVC 的基本原理 Microsoft ...
  • 一、ASP.NET MVC简介 1、为什么需要MVC设计模式(ASP.NET WebForm的缺点) 1)后端程序逻辑与前端UI高耦合 2)视图状态管理等机制导致网络带宽占用增加 2、适用场景: 1) ASP.NET WebForm适用于基于局域网的web应用...
  •  本文对ASP.NET MVC的全局运行机理进行一个简要的介绍,以使得朋友们更好的理解后续文章。 前言  在上一篇文章中,我们实现了第一个ASP.NET MVC页面。对于没有接触过这个框架的朋友来说,可能对有些地方会迷惑...
  • 了解ASP.NET MVC应用和ASP.Net Web Forms应用的不同;了解什么时候应该创建ASP.NET MVC应用。 ASP.NET MVC概述(C#) 模型-视图-控制器(MVC)这种架构模式将一个程序分割成了三个主要的组件:模型、视图和...
  • 参考书籍:《ASP.NET MVC 4 高级编程》、《ASP.NET MVC 5 高级编程》、《C#高级编程(第8版)》、《使用ASP.NET MVC开发企业及应用》、度娘谷歌等。    前言:  前一篇只简单的介绍了ASP.NETASP.NET MVC,有朋友...
  • C# ASP.NET MVC WebSocket

    千次下载 热门讨论 2012-10-20 18:03:30
    ASP.NET MVC C#语言实现WebSocket
  • ASP.NET MVC - 应用程序文件夹 第 2 部分:探究应用程序文件夹 MVC 文件夹 一个典型的 ASP.NET MVC Web 应用程序的文件夹内容如下所示: 所有的 MVC 应用程序的文件夹名称都是相同的。MVC 框架是基于默认的命名。...
  • 学习ASP.NET MVC系列: 学习ASP.NET MVC(一)——我的第一个ASP.NET MVC应用程序 学习ASP.NET MVC(二)——我的第一个ASP.NET MVC 控制器 学习ASP.NET MVC(三)——我的第一个ASP.NET MVC 视图 学习ASP.NET MVC(四)...
  • ASP.NET MVC - 发布网站 学习如何在不使用 Visual Web Developer 的情况下发布 MVC 应用程序。 在不使用 Visual Web Developer 的情况下发布您的应用程序 通过在 WebMatrix、Visual Web Developer 或 Visual ...
  • ASP.NET MVC 教程 ASP.NET 是一个使用 HTML、CSS、JavaScript 和服务器脚本创建网页和网站的开发框架。 ASP.NET 支持三种不同的开发模式: 1.Web Pages(Web 页面) 2.MVC(Model View Controller 模型-视图-控制器...
  • 至今,ASP.NET MVC 4已经发布了Beta版本,而正是版本很快也会发布,对于想把ASP.NET MVC 3 项目升级到ASP.NET MVC 4开发人员来说,这个升级项目也是个非常重要的问题。最大的担心就是怕升级带来其
  • asp.net mvc

    2011-08-24 22:23:23
    ASP.NET MVC介绍 Asp.net Mvc 是微软官方提供的Mvc模式编写Asp.netWeb应用程序的一个框架,它由Castle的MonoRail而来.目前已经历经数个版本  官方网站:http://www.asp.net/mvc/  同时,asp.n
  • 添加第一个模型征途才刚刚开始:这一系列ASP.NET MVC笔记是我大三上学期寒假,借助《精通ASP.NET MVC5》(Adma Freeman著,张成斌译)这本书学习基于.NET 4.5框架开发MVC5模式的ASP.NET WEB应用程序时记录的。
  • ASP.NET MVC

    2013-09-09 21:06:00
    MVC is a design pattern, it is not a framework, but Microsoft has adopted MVC to develop its ASP.NET MVC, so you can call ASP.NET as framework. Why MVC? 1. Separation of Concern. Or
  • ASP.NET MVC從2007年CTP方式釋出,2009年正式發行ASP.NET MVC 1.0版,2010年發行ASP.NET MVC 2.0版,2011年發行ASP.NET MVC 3.0版,2012年發行ASP.NET MVC 4.0版,ASP.NET MVC已經發展為一個成熟的Model-View-...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 54,257
精华内容 21,702
关键字:

ASP.NETMVC