Part 1 Introducing ASP.NET Core MVC 2
CHAPTER 1 ASP .NET Core MVC in Context
这一章基本没有任何营养,可略过
ASP.NET Web Form的问题
- View State weight: 为了保存上下文信息,需要把大量的内容放在
ViewState
中,在client和server间传来传去,而且随着请求次数增多,这个体积会越来越大 - Page life cycle: 为了能够让整个客户端开发像是 event-driven的,页面的生命周期变得非常的复杂,很少有人能够写出不在runtime出现奇奇怪怪各种错误的程序
- False sense of separation of concerns: 后端代码融合了页面逻辑和业务逻辑,导致整个程序非常不稳定且笨重
- Limited control over HTML:使用控件产生的html代码经常和自己预期的结果不一样
- Leaky abstraction: 有时为了实现自己需求的功能,需要自己写HTTP逻辑,导致你不得不在复杂的web form逻辑中使用很复杂的方法才能完成最原始的技术
- Low testability: 页面逻辑的混合导致不容易测试
MVC框架的产生
2007年10月,Microsoft发布了新的开发平台,基于已有的ASP.NET,就像是专门解决大量对 Web Form的批评和与Ruby on Rails的竞争问题而开发的。回归了原始的编程方式,直接操作HTML和CSS等。
ASP.NET Core
2015年,微软发布了新的 ASP.NET和MVC框架发展方向,最终演变成了ASP.NET Core. ASP.NET Core是基于 .NET Core的,而后者是一个跨平台的.NET Framework. 它能够支持更多不同的操作系统和host环境,比如云。
ASP.NET Core是一个全新的框架,它不再含有Web Form中的残留物,非常容易上手。
主要优势
- ASP.NET Core MVC 使用 MVC模式
- 扩展性: ASP.NET Core and ASP.NET Core MVC 提供了很多独立的组件,包括接口和抽象类,可以完全自己制定。ASP.NET Core MVC给每个组件都提供了3种使用方式:
- 使用组件的默认实现
- 继承一个子类来稍微修改行为
- 直接实现接口或者抽象类来完全重写行为
- 与HTTP/HTML紧密关联
- 可测试性
- 强大的路由系统
- 使用语言最新的API
- 跨平台
- 开源
本书结构
- Part 1: Introducing ASP.NET Core MVC: 使用一个例子来展示各个方面
- Part 2: ASP.NET Core MVC in Detail: 逐一解释每个功能部分