第1章 .NET起步
1.1 什么是.NET?
.NET 8.0 SDK下载地址:https://dotnet.microsoft.com/zh-cn/download/dotnet/8.0
.NET 是一个免费的跨平台开源开发人员平台,用于生成许多不同类型的应用。使用 .NET,可以使用多种语言(C#、F#、VB)、编辑器(VS、VSC、Rider)和库(以Microsoft主导的社区提供超过100,000+包来)来构建 Web、移动和桌面、机器学习、游戏开发、IOT 等众多应用。
本系列全程采用.NET 8作为主干,Web项目为案例,带领大家从入门到精通
1.2 为什么选.NET?
1.2.1 高效生产力
.NET 提供泛型、LINQ 和异步编程等高级语言功能,并为开发人员提供广泛的类库和多语言支持。
.NET提供一致性Standard标准,这是一组标准的基类库和API,这些库和API对所有.NET应用程序都是通用的。
.NET还提供了一系列基于基础库构建的应用程序模板,帮助你更快地生成应用,例如Web、移动和桌面、微服务、云服务等等。
.NET 是面向重视生产力、性能、安全性和可靠性的开发人员的终极平台。

1.2.2 跨应用跨语言跨平台
借助.NET,可以面向在任何平台上运行的任何应用程序类型。开发者可以在熟悉的环境中在其之间重复使用技能和代码。这意味着开发人员能够以更少的成本,更快地构建应用。从在 iOS、Android 和 Windows 上运行的移动应用程序到在 Windows Server 和 Linux 上运行的企业服务器应用程序,或在云中运行的大规模微服务,.NET 提供了一个解决方案。
这一切都归功于.NET拥有一个非常罕见的完整编程平台:CLR,CLR不是本系列主题,如果需要的同学多可以单开一个系列带大家了解CLR。
1.2.3 强大的生态
.NET位于.NET Foundation基金会下,.NET基金会为独立组织,旨在促进围绕 .NET 生态系统的开放型开发和协作。目前已有100,000+ OSS贡献,3,700+ OSS公司参与者。
.NET平台拥有Microsoft的官方支持,并受到数以千计的公司和数百万开发人员的信任。除了社区和 Microsoft之外,技术指导组成员 Google、JetBrains、Red Hat、Samsung 和 Unity 正在指导 .NET 平台的未来。
1.2.4 令人惊叹的迭代速度

.NET Core的是.NET的前身,从2016年6月27日发布.NET Core 1.0.0到2018年5月30日发布的2.1.0,.NET Core开始被市场接受,市场表现十分“热闹”。有C#体系下“技术狂热分子”的追捧,也有“守旧派”的抵触,还有不少其它平台的嘲讽。然而这些都没有影响到微软此次开源的决心,没错,.NET Core最大的特点之一就是开源,时至今日都有不少人对C#这门语言的印象停留在Framework,闭源且臃肿。
至.NET Core2.1起,微软投入更多资源来迭代它,以一年一个STS版本的速度进行升级,直到2020年发布.NET 5.0,.NET Core 3.1和Framework 4.8正式被合并为一个统一的版本,至此,微软已经将重点全面转移到了.NET平台。
| 版本 | 原始发布日期 | 最新补丁版本 | 补丁发布日期 | 终止支持 |
|---|---|---|---|---|
| .NET 8 | 预计2023年11月 | -- | -- | 预计2026年11月 |
| .NET 7 | 2022年11月8日 | 7.0.13 | 2023年10月24日 | 2024年5月14日 |
| .NET 6 | 2021年11月8日 | 6.0.24 | 2023年10月24日 | 2024年11月12日 |
| .NET 5 | 2020年11月10日 | 5.0.17 | 2022年5月10日 | 2022年5月10日 |
| .NET Core 3.1 | 2019年12月3日 | 3.1.32 | 2022年12月13日 | 2022年12月13日 |
| .NET Core 3.0 | 2019年9月23日 | 3.0.3 | 2020年2月18日 | 2020年3月3日 |
| .NET Core 2.2 | 2018年12月4日 | 2.2.8 | 2019年11月19日 | 2019年12月23日 |
| .NET Core 2.1 | 2018年5月30日 | 2.1.30 | 2021年8月19日 | 2021年8月21日 |
| .NET Core 2.0 | 2017年8月14日 | 2.0.9 | 2018年7月10日 | 2018年10月1日 |
| .NET Core 1.1 | 2016年11月16日 | 1.1.13 | 2019年5月14日 | 2019年6月27日 |
| .NET Core 1.0 | 2016年6月27日 | 1.0.16 | 2019年5月14日 | 2019年6月27日 |
1.3 怎么学NET?
如上述,.NET平台涵盖太多方向,没有人能够有精力毫无方向的去学习。在接下来的章节中我将聚焦于.NET Web服务端编程领域。
时至今日,前后端分离已经是市场上Web领域的主流架构,而我们聚焦的是后端。
1.3.1 前置内容
在学习.NET Core之前,我希望你能够:
掌握基本C#语法,异步编程
了解面向对象、面向切面编程思想,常见的设计模式
掌握一种ORM,了解常用中间件、数据库
对计算机网络、操作系统、常见数据结构算法有所了解
1.3.2 学习途径
你有且不限于通过经典书籍、视频、博客、官方文档、源码等渠道获取你想要的内容。但互联网上的噪音非常大,希望每一位读者有选择性的择取内容。
本系列将以.NET Web初学者的视角,由浅到深的攻克每一个关键技术点。对于有一定经验的同学,请自行区分所需内容。欢迎同学们反馈。
1.3.3 作者寄言
怎么学?这也许是很多同学的心声,我与你一样,在初遇一个陌生技术栈时,会紧张不安。希望有人提供一个完美的学习路线,会在网络上不停的搜索同类型的技术,对比一下谁强谁弱。。事实上我们花了太多的时间去确认一个本就无法确认的东西,以至于别人都能够写出炫酷的作品时,我们还在门口观望。我想,学习最重要的不是怎么学,而是学本身,学习的初期沉没成本是很低的,我希望初学者不要有那么多为什么?而是多一些是不是?,因为后者是夹杂你个人思考与实践的体现。
什么时候学?种一颗树最好的时间是十年前,其次是现在!
学习没有技巧吗?当然有啊,当前提是你有足够的储备!如果你连基础语法都没有掌握住,来这里问Web怎么学,是不是有一些颠倒因果了呢?对于学习这件事情,作者本身其实也不在行,只有一些老套路--重复且高频、归纳与演绎、验证并预测
最后,做内容创作真的是一件不易的事情,如果你认为这些内容对你有益,能够帮助到你,请帮作者点赞和转发吧,帮助到更多的人吧~
第1章 .NET起步的更多相关文章
- 第一章Python起步
1.1搭建编程环境 编程环境的正确搭建很重要,一定要参考先搭配好环境变量,不然用着会很麻烦,在这里推荐使用工具pycharm,亿图图示画流程图,一定要正确安装,搭配好环境变量,后面要添加很多模块,前期 ...
- 第一章 Bootstrasp起步
模板如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf ...
- 第一章 spring起步
点击 网址 http://start.spring.io/ 就可以获得spring-boot的项目结构. 如下: 将项目解压到自己的项目中,然后找到mian函数所在启动类.运行.出现: 表示已经运行了 ...
- 第一章:起步(python环境搭建)
Python 环境搭建 学习python的第一步,就是要学习python开发环境的配置,在配置好python开发环境后,你需要再安装一款比较趁手的编辑器,事实上,python解释器本身就可以进行一些编 ...
- #Python学习笔记:1-3章 (基于《python编程,从入门到实践)
第1-3章 这个文档是记录我学习python时一些学习笔记以及一些想法也可以称作复习笔记 第一章:起步这一章主要是从第一个"hello world"程序到python环境的搭建与配 ...
- “全能”选手—Django 1.10文档中文版Part1
本文是博主翻译的Django1.10版本官方文档的第一部分,如时间充裕,争取一直翻译下去,经验不足,或有错漏,敬请指正. 另外对于公开文档进行翻译的版权问题不是很清楚,如有侵权请联系我! 另外,要转载 ...
- 深入理解HTML5:语义、标准与样式(勇猛精进早登大师殿堂创最优品质交互)
深入理解HTML5:语义.标准与样式(勇猛精进早登大师殿堂创最优品质交互) [美]布拉德福(Bradford,A.) [美]海涅(Haine,P.)著 高京译 ISBN 978-7-121-20552 ...
- 【Python千问 1】Python核心编程(第二版)导读
第一章 欢迎来到Python世界 什么是Python Python的起源 Python的特点 下载Python 安装Python 运行Python Python文档 比较Python(与其它语言的比较 ...
- 深入理解HTML5:语义、标准与样式
<深入理解HTML5:语义.标准与样式> 基本信息 作者: (美)布拉德福(Bradford,A.) 海涅(Haine,P.) 译者: 高京 出版社:电子工业出版社 ISBN:978712 ...
- 深入浅出话XAML-学习笔记
第一章 XAML是什么? 1.1XAML之前 *设计师的设计更不上程序逻辑的变化 *程序员未能完全实现设计师提供的效果图 *效果图与程序功能不能完全匹配 *从效果图到软件UI的转化耗费很多时间 1.2 ...
随机推荐
- ChatGPT帮助工程师写代码:从功能模块完善到成功执行,实现需求
在软件开发过程中,经常会遇到需要完善功能模块.调试代码和解决问题的情况.为了提高效率,我们可以借助人工智能技术,例如OpenAI的ChatGPT语言模型,来协助我们进行代码编写和调试.本文将介绍一个案 ...
- Vue中 router与route的区别
$route对象 该对象表示当前的路由信息,包含当前URL解析得到的信息.包含当前的路径,参数,query对象等.其常用方法如下所示: $route.path 字符串,对应当前路由的路径,总是解析为绝 ...
- 红帽RHCE考题总结练习(8.0 ansible)
本文是红帽RHCE考题的总结,个别题目写了多种步骤. 一.安装和配置ansible 题目: 按照下方所述,在控制节点 bastion.lab.example.com 上安装和配置 Ansible: 安 ...
- 在原生APP中集成Unity容器
随着技术的发展,越来越多的APP期望拥有3D,AR的能力.要达到这个目标可以选择使用原生开发,也可以使用Unity成熟的3D开发技术链,通过嵌入的方式将Unity容器嵌入到APP中.这里介绍的是通过嵌 ...
- SpringBoot - 自定义starter
目录 一.什么是SpringBoot starter机制 二.为什么要自定义starter 三.什么时候需要创建自定义starter 四.自动加载核心注解说明 五.自定义starter的开发流程 案例 ...
- 一台服务器上部署 Redis 伪集群
哈喽大家好,我是咸鱼 今天这篇文章介绍如何在一台服务器(以 CentOS 7.9 为例)上通过 redis-trib.rb 工具搭建 Redis cluster (三主三从) redis-trib.r ...
- [译]2023年 Web Coponent 现状
本文为翻译 原文地址:2023 State of Web Components: Today's standards and a glimpse into the future. 最近,我写了关于如何 ...
- C++的编译链接与在vs中build提速
通过gcc或msvc,clang等编译器编译出来的C++源文件是.o文件.在windows上也就是PE文件,linux为ELF文件,在这一步中,调用其它代码文件中的函数的函数地址是未知的(00000) ...
- charts自适应
大屏echarts自适应文字大小 1.在utils中创建 setFontSize.js function setFontSize(val) { const baseSize = 50; let sca ...
- RabbitMQ 如何实现延迟队列?
延迟队列是指当消息被发送以后,并不是立即执行,而是等待特定的时间后,消费者才会执行该消息. 延迟队列的使用场景有以下几种: 未按时支付的订单,30 分钟过期之后取消订单. 给活跃度比较低的用户间隔 N ...