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. 深入探索 Django Rest Framework

    这篇文章会详细介绍Django REST Framework的核心组成部分,包括Serializers.ViewSets.Routers.权限和认证系统以及测试和调试工具.文章从基础开始,逐步深入,旨 ...

  2. Java作业_Day21_

    多线程 一.判断题(T为正确,F为错误),每题1分 1.如果线程死亡,它便不能运行.(T) 2.在Java中,高优先级的可运行线程会抢占低优先级线程.( T) 3.线程可以用yield方法使低优先级的 ...

  3. 现代C++(Modern C++)基本用法实践:三、移动语义

    概述 移动 移动(move)语义C++引入了一种新的内存优化,以避免不必要的拷贝.在构造或者赋值的时候,如果实参是右值(或者左值由std::move转换成右值),便会匹配移动语义的函数调用如下述举例的 ...

  4. 解决phpMyAdmin点击"结构"列页面失去响应的问题

    最后更新时间 2017-12-05. 我的环境: phpMyAdmin:4.0.4.1 PHP:5.6.11 第一步 关闭自动更新 打开 ./libraries 目录下的 vendor_config. ...

  5. Java stream流使用

    1.使用filter()过滤List //查找身高在1.8米及以上的学生 List<StudentInfo> boys = studentList.stream().filter(s-&g ...

  6. Argument data type text is invalid for argument 1 of replace function

    今天给webapi添加了搜索,结果数据库显示了这个错误, Argument data type text is invalid for argument 1 of replace function 查 ...

  7. linux 问题: ssh登录报错,ssh_exchange_identification,多次几次可以登录

    分析 怀疑是句柄数不够,和ssh的最大登录限制 确认 2.1 确认句柄数 过程: ~# systemctl status sshd | grep -i pid Main PID: 3767395 (s ...

  8. 「Python实用秘技16」快速提取字体子集

    本文完整示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/PythonPracticalSkills 这是我的系列文章「Python实用秘技」的第16 ...

  9. 2023-07-29:给你一个由数字组成的字符串 s,返回 s 中独特子字符串数量。 其中的每一个数字出现的频率都相同。

    2023-07-29:给你一个由数字组成的字符串 s,返回 s 中独特子字符串数量. 其中的每一个数字出现的频率都相同. 答案2023-07-29: 大体步骤如下: 1.初始化变量base为固定值10 ...

  10. 解决pyinstaller生成的exe文件,在部分电脑无法运行的问题

    下载vc_redist.x64.exe并在不能运行的电脑上运行即可. vc_redist.x64.exe的作用:一款Visual C++的运行库,里面包含了一些Visual C++的库函数.Visua ...