zoukankan      html  css  js  c++  java
  • mvc教程

                              第一章 mvc概述

     

    入门

     

    需要安装 Visual Studio 2008 或 Visual Web Developer 2008 Express 来构建 ASP.NET MVC 应用程序。还需要下载 ASP.NET MVC Framework。

    如果没有 Visual Studio 2008,可以从下面的网址下载 90 天试用版:

    http://msdn.microsoft.com/en-us/vs2008/products/cc268305.aspx

    另外,也可以使用 Visual Web Developer Express 2008 创建 ASP.NET MVC 应用程序。如果决定使用 Visual Web Developer Express,则必须安装 Service Pack 1。可以从以下网址下载带有 Service Pack 1 的 Visual Web Developer 2008 Express:

    http://www.microsoft.com/downloads/details.aspx?FamilyId=BDB6391C-05CA-4036-9154-6DF4F6DEBD14&displaylang=en

    安装 Visual Studio 2008 或 Visual Web Developer 2008 后,需要安装 ASP.NET MVC Framework。可以从以下网址下载 ASP.NET MVC Framework:

    http://www.asp.net/mvc/

     

     

     

    mvc(model-view-controller)   (框架)模型-视图-控制器  同于表示一种软件架构模式。它把软件系统分为三个基本部分模型 (model)存储数据的组件(与领域模型不同)

    视图(view)根据model数据进行 内容展示的组件 --获取model的状态

    控制器(controller) 接收并处理用户的指令 操作model  .  和model 和 view 协作的 作用

    并不只是 业务逻辑的组件 。

    表现模式: presentation pattern /ui

     

    两种分离:

    view和数据(model)分离

    -能够 不同的view对model进行展示

    - 分离 可视和 不可视 的组件。 能够对model 进行对立测试(view到model单向引用)

    view 和 controller 分离

    -分离  表现逻辑和 具体展示。--能够进行对立的测试

    mvc两种变种:

    --observer模式

    --MVP模式--事件驱动。

    与三层架构的比较

    view-- UI Layer

    Controller -- BL Layer

    Model -DA Layer

    MVC  表现模式 :presentation pattern-- 独立关系

    优点。 容易分离 。三者 是 协作的关系 

    三层架构  架构模式-- 从上 到下  --  依赖关系 --双向引用 --难以分离

    没有 可比性。

    asp.net mvc 特点

    -- 一切都可以 替换

    -- viewengine 视图引擎

    -- action filter 

    --一切都是可测试的

    --公开源代码

    -- 可以修改

    -- 不 可 重新发布

     

    asp.net mvc 的组件协作

    --url routing   

    --asp.net mvc使用 url进行 驱动 

    -- 根据程序中制定的规则 从url中:

      --确定 controller 名

      -- 确定action 名

      -- 生成其余各种参数

     article/show/2008/4/10/13411

    {controller}{action}{year}{month}{day}{id}

     

    --controller&action  executing

    -- view rendering

    LINQ TO SQL

    --.NET FRAMEWORK 3.5的ORM框架

      routes.MapRoute(
                    
    "Default",
                    
    "{controller}/{action}/{id}",
                    
    new { controller = "Home", action = "Index", id = 0 },
                    
    new { action = @"^\w+", id = @"^\d+" }
                );

                routes.MapRoute(
                    
    "Blog",
                    
    "Archive/{date}",
                    
    new { controller = "Blog", action = "Archive" },
                    
    new { date = @"^\d{4}-\d{2}-\d{2}" }
                );

                routes.MapRoute(
                    
    "Car",
                    
    "Car/{make},{model}",
                    
    new { controller = "Car", action = "Index" },
                    
    new { date = @"(acural|bmw)" }
                );

                routes.MapRoute(
                    
    "Book",
                    
    "Book/Add/{name}",
                    
    new { controller = "Book", action = "Add" },
                    
    new { httpMethod = "POST" }
                );

                routes.MapRoute(
                    
    "CatchIt",
                    
    "Product/{*values}",
                    
    new { controller = "Product", action = "Index" }
               );

    再浏览器地址栏 中输入的  url 和 应用程序中的文件 不存在 对应的关系。 再asp.net Mvc 应用程序 中,url web forms 应用程序关注的 是内容,相反

    mvc 应用程序  的程序逻辑

     

    URL 路由(routing) 的asp。net mvc 功能映射到 控制器的操作. URL 路由  - u使用 路由表 处理 请求。  第一次 启动 创建。

     

    路由表 global。asax 文件中设置。

    默认的 设置如下

     

    public static void registeroutes( routecollection routes)

    {

    routes.ignoreroute("  {resource}.axd /{*pathinfo}");

    routes.maproute{

    "default",

    "{controller}/action/{id}",

    new {controller ="Home" ,action ="index" ,id=""};

    }

     

    protected void application start()

    {

    registerrouters{routetable.routes};

    }

     

    /Product/Details/3

    此 URL 被解析为如下三个部分:

    Controller = ProductController

    Action = Details

    Id = 3

     

     

     

     

    }

  • 相关阅读:
    浏览器网络相关概念
    量化投资:以python为工具
    Quantitative Strategies for Achieving Alpha (三)
    Quantitative Startegies for Achieving Alpha(二)
    Quantitative Strategies for Achieving Alpha(一)
    打开量化投资的黑箱(二)
    打开量化投资的黑箱(一)
    量化投资学习(一)
    handy源码阅读(六):tcp类
    handy源码阅读(六):udp类
  • 原文地址:https://www.cnblogs.com/weihengblogs/p/2880507.html
Copyright © 2011-2022 走看看