zoukankan      html  css  js  c++  java
  • ASP.NET MVC 3 初认知

    什么是ASP.NET MVC

    1. asp.net mvc 是微软官方提供的mvc模式编写asp.net web应用程序的框架。

    2. 是微软既asp.net webForm 后的又一种开放方式,而非替代方式。假如有一个需求只在内网中使用,那么毫无疑问用web form 很快就好开放 出一个非常好的系统,而且不用考虑运行效率的问题。

     

          在MVC模式中,模型(Modul)表示软件处理的数据描述,视图(View)表示软件的交互界面,控制器(Controller)用来控制软件的处理逻辑。MVC将软件的这三个方面明显的进行了划分,以便于复杂软件的组织。而经典的webForm就相当于将控制器和模型合并在一起(在经典的webForm模式中,页面的显示效果通过.aspx模板进行描述,请求的处理逻辑和页面显示所需要的数据在后台代码(.aspx.cs)文件中处理)。

    下面就具体说一下这三个模块具体是干嘛的:

    1. Modul(模型)是负责保持状态的角色。这个状态在数据库中通常是持久的(所以有时也叫持久层),例如student类用来代表关系数据库中的学生数据。

    2. View(视图)是负责显示用户界面的组件。这个界面通常是使用模型数据来创建的,例如,学生的编辑视图,根据当前student对象的状态,显示一个用户的编辑界面。

    3. Controller(控制器)是处理用户交互、操作模型和最终选择用哪个视图来显示处理结果的组件。

    三个组件之间通过契约进行协作,这使得针对界面层的测试可以方便地进行。

    ASP.NET MVC的特点

    1.分离任务(前面已经提到过)

    2. 可扩展

         因为mvc把整个软件分成了三个模块,而并非传统webForm中的三层(传统的webForm三层只是模拟的分成了三层,比如模拟poskback机制,而并不能把.aspx和.aspx.cs两个文件分开)。

    3. 强大的URL重写(路由机制)

        例如下面两个URL地址:
        3.1 http://www.cnblogs.com/wlitsoft/blogs.aspx?Id=123  (传统的url地址服务器硬盘中肯定存在一个wlitsoft文件夹并且在这个文件夹中肯定存在一个叫blogs.aspx的文件)。

        3.2 http://www.cnblogs.com/wlitsoft/blogs/123(这是mvc模式普遍的url地址,此url地址的含义以后的博文将会讲到)

             了解过seo的都知道,上面两个url地址哪个更容易被搜索引擎爬虫发现。传统的webForm要重写url的话必须需要组件的支持(URLRewrite)。而mvc对于url的重写是先天性的并且比使用组件灵活的多。

    4. 兼容ASP.NET现有的技术(比如master(模板页)......)

    5. 开源--这个微软在开源领域最好的项目了,微软开源的项目比如还有个比较出名的CMS项目叫DNN现在出到6.1.x版本了并且6.0以后的版本支持C#,感兴趣的可以学一下。

    下面看下ASP.NET MVC3有什么新技术吧!

    1. 增加Razor视图引擎;支持多视图引擎。mvc1 2 版本中在view层中充斥着大量的<%...%>和jsp、asp非常类似。阅读性非常差。
        1.1 使用@替代<%%>
             -语法简单清晰、容易学习、VS 2010 提供了智能提示和语法着色......

          1.2 全局的Action过滤器
              

       1.3 新的ViewBag 属性

       1.4 新的ActionResult
            - HttpNotFoundResult -> 404
            - RedirectResult         - > 302301
            - HttpStatusCodeResult-> 自定义http状态码

        1.5 Modul Validation
              自验证、客户端验证(默认启用客户端验证)、远程验证
         JSON绑定支持、HTML5 CSS3 、 部分页面的输出缓存、HtmlHelper的增强 、 NuGet .......

  • 相关阅读:
    Codeforces Beta Round #92 (Div. 2 Only) B. Permutations 模拟
    POJ 3281 Dining 最大流 Dinic算法
    POJ 2441 Arrange the BUlls 状压DP
    URAL 1152 Faise Mirrors 状压DP 简单题
    URAL 1039 Anniversary Party 树形DP 水题
    URAL 1018 Binary Apple Tree 树形DP 好题 经典
    pytorch中的forward前向传播机制
    .data()与.detach()的区别
    Argparse模块
    pytorch代码调试工具
  • 原文地址:https://www.cnblogs.com/PearlRan/p/4833036.html
Copyright © 2011-2022 走看看