• 我眼中的ASP.NET.MVC


    MVC

    MVC全名 : Model View Controller ( Model-模型 View-视图  Controller-控制器)是一种经典的,经久不衰的,屹立不倒的软件设计框架。实现了业务逻辑、数据、界面显示的分离。

             

            

                         

     Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。通常模型对象负责在数据库中存取数据。

      View(视图)       是应用程序中处理数据显示的部分。通常视图是依据模型数据创建的。

    Controller(控制器) 是应用程序中处理用户交互的部分。通常负责从视图读取数据,控制用户输入,并向模型发送数据

    一个完整的MVC运转流程 : 用户输入(通过浏览器发送请求)===》控制器(Controller)接收请求===》调用模型(Model)对输入的数据进行处理(存、取、改、删)并获取处理结果===》将结果数据传递到shitu(View)===>展示给用户。

     MVC的优点:耦合性低:视图层与业务层分离。这样在更改视图时,可以极少的更改业务层的代码,反之亦然。如:迁移数据库 oracle迁移到 sql server中,只需改变模型既然可。

                              重用性高:mvc模式允许使用各种不同样式的视图来访问同一个服务器端的代码,因为多个视图能共享一个模型

                              可维护性高:分离视图层和业务逻辑层也使得WEB应用更易于维护和修改。

                    有利于软件工程化管理   :      由于不同的层各司其职,每一层不同的应用具有某些相同的特征,有利于通过工程化、工具化管理程序代码

    ASP.NET.MVC  

      先看看微软给ASP.NET.MVC的定义   

                   MVC is a design pattern used to decouple user-interface (view), data (model), and application logic (controller). This pattern helps to achieve separation of concerns.

        Using the MVC pattern for websites, requests are routed to a Controller which is responsible for working with the Model to perform actions and/or retrieve data. The Controller chooses the View to display, and provides it with the Model. The View renders the final page, based on the data in the Model.

      翻译过来就是 :

        MVC是一种用于解耦用户界面(视图),数据(模型)和应用程序逻辑(控制器)的设计模式。 这种模式有助于实现关注点的分离。
        使用网站的MVC模式,请求被路由到控制器,该控制器负责与模型一起执行操作和/或检索数据。 控制器选择要显示的视图,并为其提供模型。 视图根据模型中的数据呈现最终页面。
     
        弄几张图片有助于理解:
     
     
                
     
             在我们的项目中,View部分是Index.cshtml与About.cshtml等等了   
     
     
     
     
       
                                              

        这一图片非常生动而且完整的体现了一个基于ASP.NET.MVC的框架平台代码架构:一般在程序中,会将Model层再进行一次分层,包括 Model层===>BLL层(业务层)===>DAL(数据库处理层),非常完美。

        感觉ASP.NET.MVC是基于MVC的基础上,结合.net平台,微软为.net程序员量身定做的吧,很经典的框架,很有思想,这样的框架又怎么会过时呢?

  • 相关阅读:
    删库跑路技术白皮书
    linux shell文件截取前几行,后几行,中间几行命令
    python 带参数 单步执行 (调试 pdb)
    分区助手专业版 v6.2 如何把win10系统迁移到SSD固态硬盘
    GUPPY 3.1.5 安装
    Java调用其他语言
    python代码中获取python版本号的方法
    f-Strings:Python 3格式字符串的新方法(f字符串)
    Centos 安装 pigz
    #!/usr/bin/env python与#!/usr/bin/python的区别
  • 原文地址:https://www.cnblogs.com/txqx/p/10873935.html
Copyright © 2020-2023  润新知