zoukankan      html  css  js  c++  java
  • 什么是MVC,什么是WCF

    在C#中总会遇到这几个概念,网上搜了一下,做一下总结和比较,东拼西凑,如有雷同,纯属直接拷贝,人懒,但无意侵权。

    1、什么是MVC

    MVC是三个单词的首字母缩写,它们是Model(模型)、View(视图)和Controller(控制)。

    这个模式认为,程序不论简单或复杂,从结构上看,都可以分成三层。

    1)最上面的一层,是直接面向最终用户的"视图层"(View)。它是提供给用户的操作界面,是程序的外壳。

    2)最底下的一层,是核心的"数据层"(Model),也就是程序需要操作的数据或信息。

    3)中间的一层,就是"控制层"(Controller),它负责根据用户从"视图层"输入的指令,选取"数据层"中的数据,然后对其进行相应的操作,产生最终结果。

    这三层是紧密联系在一起的,但又是互相独立的,每一层内部的变化不影响其他层。每一层都对外提供接口(Interface),供上面一层调用。这样一来,软件就可以实现模块化,修改外观或者变更数据都不用修改其他层,大大方便了维护和升级。

    举例:

    bg2007110801.jpg

    我用Windows的计算器小程序为例,解释一下MVC模式,虽然它不一定使用这个模式编写。

    在这个计算器程序中,外部的那些按钮和最上面的显示条,就是"视图层",那些需要运算的数字就是"数据层",执行加减乘除的那些内部运算步骤就是"控制层"。每一层执行不同的功能,整个程序的结构非常清楚。

    如果我们扩大一点想象,就会发现,很多程序本质上都是这种模式:对外提供一组触发器(本例中是按钮),然后执行一些内部操作,最后返回结果。因此,MVC模式的应用是非常广泛的。

    2、什么是WCF:https://docs.microsoft.com/en-us/dotnet/framework/wcf/whats-wcf

    Windows Communication Foundation(WCF)是由微软发展的一组数据通信的应用程序开发接口,可以翻译为Windows通讯接口,它是.NET框架的一部分。

    Windows Communication Foundation (WCF) is a framework for building service-oriented applications. Using WCF, you can send data as asynchronous messages from one service endpoint to another. A service endpoint can be part of a continuously available service hosted by IIS, or it can be a service hosted in an application. An endpoint can be a client of a service that requests data from a service endpoint. The messages can be as simple as a single character or word sent as XML, or as complex as a stream of binary data. 

    既然是一种面向服务的开发,就要说明其与面向应用的开发的区别和优点,可惜我没找的总结的很好的,先做记号,以后自己总结。

    收藏两个图,以利于理解面向服务的开发。

    在基于Asp.net 的应用程序开发中,我们由客户机的浏览器访问应用程序服务器,然后通过应用程序服务器中的数据库连接去连接数据库服务器,读取或是操作数据,有时候可能会多一个文件服务器。大家可以观察到,基本上所有的应用都放在了一台服务器上,但对于一个,由于业务上的需要(如:与外部系统交互),一台服务器很难支持所有的应用。我们再看下面的图:

    客户机使用浏览器访问服务器A,服务器A为了业务需要与其他各种应用部署在服务器B、C、D....再通过WCF技术互相通信,相互访问...然而面向服务的好处不仅仅在此,他还提供了不同语言不同操作系统的可交互性等等。

    3、WCF的特点

    体会不深,以后再写吧。

  • 相关阅读:
    09、自学——Linux的学习进度与任务【目录文件的操作】
    08、自学——Linux的学习进度与任务【文件管理类命令—操作】
    07、自学——Linux的学习进度与任务【文件管理类命令—查看】
    06、自学——Linux的学习进度与任务【FHS】
    05、自学——Linux的学习进度与任务【shell中bash的特性】
    04、自学——Linux的学习进度与任务【时间日期管理类的命令】
    vue中computed、methods、watched比较
    vue中props组件传值
    vue中component组件使用——模块化开发和全局组件
    vue项目启动配置
  • 原文地址:https://www.cnblogs.com/wanganyi/p/7222580.html
Copyright © 2011-2022 走看看