1.ASP.NET CORE MVC 是微软公司的Web应用开发框架,结合了MVC架构的高效、简洁等优秀思想并融合了.NET的灵活性。

2.ASP.NET诞生于2002年,当时微软想保持桌面应用程序的优势,视Web为威胁。

3.ASP.NET WEB FORM:类似于WinForm应用。

ASP.NET 部署在IIS上跑的是.NET应用,通过HTTP request、response来进行交互。

.NET:多语言代码托管平台。

4.ASP.NET WEB FORM

4.1WEB FORM 是一个抽象层,用于在Web上呈现传统的事件驱动图形界面。

4.2非常类似WinForm。

4.3View State视图状态负担。在请求之间维护状态的机制,被称为ViewState导致服务端和客户端之间的大块数据传递,导致响应变慢,增加了服务器的带宽占用。

4.4页面生命周期:将客户端事件链接到服务端处理程序代码的机制是页面生命周期的一部分,很复杂也很脆弱。很难再运行时,成功操作孔家的层级关系而不产生ViewState错误,一些事件处理程序会莫名其妙的失败。

4.5错误的关注点分离:WebForm 的后端代码模型提供了从HTML标记中提取应用程序代码的方法,用于分离View和Controller。

4.6对HTML的限制:IIS端将会渲染HTML,但生成的HTML不一定是你要的。早期ASP.NET生成的HTML不满足WEB标准,也不能很好的使用CSS(层叠样式表)。服务端控件生成不可预知的复杂ID ,很难被JS获取到。这些问题虽然已经做了改善,但是仍然很难得到你期望的HTML.

4.7漏洞百出:Web Forms尽最大努力隐藏HTML和HTTP.当你尝试实现自定义的行为时,会很难实现。

4.8可测试性差:Web Forms的设计者没有预料到自动测试会成为软件开发中至关重要的一部分。他们设计的高耦合架构不适合进行单元测试。集成测试也很困难。

4.9Web Form在提高标准兼容性和简化开发流程中做了很多的努力。可以快速的单间一个非常复杂的Web应用,但是你会发现你创建的应用非常那一测试和维护。

5.ASP.NET MVC _2007.10.微软在现有ASP.NET平台上发布的新的开发平台。包含了HTML.CSS标准化,RESTFul Web 服务,单元测试,HTTP无状态等。

5.1MVC框架是微软对于Web的一个态度转变。

5.2微软接纳了许多新的理念,接受了设计约定,采用了对手的很多优势,并公布了MVC框架的源码。

5.3为了将MVC 应用部署到最初为WebForms设计的平台上需要做很多的妥协。需要改配置、调代码等才能使程序正常运行。微软开始将MVC的一些和兴特性加入到WEB FORMS上,使得他们能够很好融合。ASP.NET开始变得混乱。

6.ASP.NET CORE MVC_2015ASP.NET MVC的新方向,ASP.NET CORE基于.NET CORE。是.NET的跨平台版本。商业性太强,为何在更多的平台上部署微软的程序。

7.ASP.NET CORE MVC 2:可以支持更多的Linux发行版本;简了Nuget包管理系统、新的ASP.NET CORE配置系统,对EF CORE2的支持,并支持了Razor Pages(更加现代的平台来重建Web,Web开发的新风格),但是MVC开发人员对此不感兴趣。

8.MVC架构

8.1Web应用需要结合多种技术:DB、HTML、逻辑代码等多种层次,从这些层的组合中产生的模式可以很自然的映射到MVC模式上。

8.2ASP.NET CORE为每个组件提供了三种扩展方式:

8.2.1使用组件的默认实现。

8.2.2使用默认实现的自雷来调整。

8.2.3使用接口和抽象积累的实现来完全替换组件。

8.3HTML和HTTP

8.3.1ASP.NET CORE 提供了符合标准的HTML标记。

8.3.2ASP.NET CORE 鼓励使用CSS。

8.4ASP.NET CORE可以进行单元测试,可以使用任意的测试框架来进行单元测试。

8.5早期的框架很难实现干净的URL。ASP.NET CORE MVC使用了URL ROUTER(URL路由功能)来实现了干净的URL。使得控制URL结构和应用程序的关系成为可能。使得开发者可以轻松定义现代RESTful风格的URL成为可能。

9.现代API

9.1ASP.NET CORE MVC充分使用了C#开发者熟悉的语言特性。

10.之前的Web Form 等应用需要部署和运行在Windows Server上,目前可以在mac os /linux 上进行部署,Windows Web应用不在局限于Windows平台。

11.开发人员可以免费下载ASP.NET CORE 和ASP.NET CORE MVC 源码,可以编译自己的版本。

https://github.com/aspnet源码地址

ASP.NET CORE MVC的一些说明的更多相关文章

  1. ASP.NET Core MVC/WebAPi 模型绑定探索

    前言 相信一直关注我的园友都知道,我写的博文都没有特别枯燥理论性的东西,主要是当每开启一门新的技术之旅时,刚开始就直接去看底层实现原理,第一会感觉索然无味,第二也不明白到底为何要这样做,所以只有当你用 ...

  2. ASP.NET Core MVC 配置全局路由前缀

    前言 大家好,今天给大家介绍一个 ASP.NET Core MVC 的一个新特性,给全局路由添加统一前缀.严格说其实不算是新特性,不过是Core MVC特有的. 应用背景 不知道大家在做 Web Ap ...

  3. ASP.NET Core MVC 中的 [Controller] 和 [NonController]

    前言 我们知道,在 MVC 应用程序中,有一部分约定的内容.其中关于 Controller 的约定是这样的. 每个 Controller 类的名字以 Controller 结尾,并且放置在 Contr ...

  4. ASP.NET Core 中文文档 第二章 指南(2)用 Visual Studio 和 ASP.NET Core MVC 创建首个 Web API

    原文:Building Your First Web API with ASP.NET Core MVC and Visual Studio 作者:Mike Wasson 和 Rick Anderso ...

  5. ASP.NET Core 中文文档 第二章 指南(4.1)ASP.NET Core MVC 与 Visual Studio 入门

    原文:Getting started with ASP.NET Core MVC and Visual Studio 作者:Rick Anderson 翻译:娄宇(Lyrics) 校对:刘怡(Alex ...

  6. ASP.NET Core 中文文档 第四章 MVC(01)ASP.NET Core MVC 概览

    原文:Overview of ASP.NET Core MVC 作者:Steve Smith 翻译:张海龙(jiechen) 校对:高嵩 ASP.NET Core MVC 是使用模型-视图-控制器(M ...

  7. ASP.NET Core MVC TagHelper实践HighchartsNET快速图表控件-开源

    ASP.NET Core MVC TagHelper最佳实践HighchartsNET快速图表控件支持ASP.NET Core. 曾经在WebForms上写过 HighchartsNET快速图表控件- ...

  8. ASP.NET Core MVC 在linux上的创建及发布

    前言 ASP.NET core转眼都发布半月多了,社区最近也是非常活跃,虽然最近从事python工作,但也一直对.NET念念不忘,看过了园区大神们搭建的Asp.net core项目之后,自己也是跃跃欲 ...

  9. ASP.NET Core - ASP.NET Core MVC 的功能划分

    概述 大型 Web 应用比小型 Web 应用需要更好的组织.在大型应用中,ASP.NET MVC(和 Core MVC)所用的默认组织结构开始成为你的负累.你可以使用两种简单的技术来更新组织方法并及时 ...

  10. 解决ASP.NET Core Mvc文件上传限制问题

    一.简介 在ASP.NET Core MVC中,文件上传的最大上传文件默认为20MB,如果我们想上传一些比较大的文件,就不知道怎么去设置了,没有了Web.Config我们应该如何下手呢? 二.设置上传 ...

随机推荐

  1. 代码发布平台jenkins中Check-out Strategy选项功能意义

    第一个选项:Use'svn update' as much as possible  这个选项能实现快速发布:Use 'svn update' whenever possible, making th ...

  2. Linux 命令:ps

    ps -ef ps -e f # 树形显示

  3. 2021-4-19 vs加速启动小技巧之intellitrace

    在选项界面中将intellitrace的启用关闭后对于程序的打开有加速作用.

  4. C/C++八大排序

    排序 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存. 按照难易程度排序,八大排序算法可以从简单到复杂 ...

  5. PostgreSql: 安装与链接

    环境介绍 使用宝塔面板,在阿里云中安装PostgreSql,并使用DataGrip在本地进行链接 postgresql 配置 安装postgresql 在宝塔中安装postgresql 管理器 在此处 ...

  6. jenkins打包报错的排查思路与解决

    背景 废话少说, 在新建一个jenkins流水线时, 碰到了打包死活无法成功的问题, 相关配置如下图 运行后最后的日志如图 定位问题 通过查看日志, 发现报错的模块是构建后执行shell的时候, 但是 ...

  7. ChatGPT 助力开发人员改进代码的5个方式

    近年来,在软件开发中使用人工智能和机器学习变得越来越普遍.因此,开发人员开始转向像 OpenAI 的 ChatGPT 这样的工具来简化他们的工作,提高他们的工作效率.ChatGPT是一个由 OpenA ...

  8. 小议ml.NET机器学习与人机责任划分

    最近,特斯拉宣布召回110万辆车,名义上是纠正单踏板不良习惯,背后原因可能是这些车辆的电子控制单元存在缺陷,可能导致刹车失灵(潮州等交通事故至今没有定论).这个事件引起了人们对于机器学习技术和人机责任 ...

  9. [mysql]状态检查常用SQL

    前言 使用MySQL自身命令获取数据库服务状态. 连接数 -- 最大使用连接数 show status like 'Max_used_connections'; -- 系统配置的最大连接数 show ...

  10. CI+JUnit5并发单测机制创新实践

    一. 现状·问题 针对现如今高并发场景的业务系统,"并发问题" 终归是必不可少的一类(占比接近10%),每次出现问题和事故后,需要耗费大量人力成本排查分析并修复.那如果能在事前尽可 ...