在使用《最小Web API》时,我们发现,相比以前的代码,大量的using指令消失了:
using指令的主要作用是允许使用在命名空间中定义的类型,而无需指定该类型的完全限定命名空间。
那么,在.NET 6下为什么不需要了呢?
Just So So ...
如果你使用过其他一些轻量级Web框架,比如Node.JS,你就会知道,创建具有最小依赖项的HTTP API是多么简单:
var express = require('express')
var app = express()
app.get('/', function (req, res) {
res.send('hello My IO!')
})
app.listen(3000)
而现在,使用.NET 6,我们也可以在ASP.NET Core中创建仅包括最少文件、功能和依赖项的最小Web API。
要实现上面相同的功能,只需要三行代码:
var app = WebApplication.Create(args);
app.MapGet("/", () => "hello My IO!");
app.Run();
今年双十一在腾讯云上买了一个2CPU 4GB 8M的轻量云服务器,70元一年,香喷喷的。购买服务器后,我用CentOS 8.2初始化了系统,要用就用崭新的!
昨天晚上微软也发布了.NET 6的正式版,于是,Linux(Centos 8.2)搭配Nginx,运行asp.net core 6.0的环境配置教程如下(不含数据库):
第一步:运行命令dnf update -y
,对系统基础包进行升级。
这里为什么不用yum命令?因为dnf是新一代的rpm软件包管理器,它取代了yum,已经预装在 CentOS 8中了。要用就用崭新的!
约莫一个打飞机的功夫,就更新完毕。
在古老的WebForm中,用GridView控件实现了一个数据列表,列表最后一列是用asp:ButtonField
实现的修改按钮,点击修改时,要打开该条新闻的修改界面,这里有一个关键点,就是必须获取到点击新闻的ID,ASPX前端代码如下:
<asp:GridView ID="GridView" runat="server" AutoGenerateColumns="False" DataKeyNames="ID" OnRowCommand="GridView_RowCommand">
<Columns>
<asp:BoundField HeaderText="新闻ID" DataField="ID" Visible="false" />
<asp:BoundField HeaderText="新闻标题" DataField="Title" />
<asp:BoundField HeaderText="发布时间" DataField="PubTime" />
<asp:ButtonField HeaderText="操作" Text="修改" CommandName="look" />
</Columns>
</asp:GridView>
网上找的,我综合了下,信息不是特别精准,做参考没问题的。
C#版本 | .NET版本 | Visual Studio版本 | 发布日期 | 特性 |
---|---|---|---|---|
C# 1.0 | .NET Framework 1.0 | Visual Studio .NET 2002 | 2002-02-13 | 委托、事件 |
C# 1.1 | .NET Framework 1.1 | Visual Studio .NET 2003 | 2003-04-24 | APM(异步编程模型) |
C# 2.0 | .NET Framework 2.0 | Visual Studio 2005 | 2005-11-07 | 泛型、匿名方法、迭代器、可空类型 |
C# 3.0 | .NET Framework 3.0 | Visual Studio 2008 | 2007-11-06 | 隐式类型 |
.NET Framework 3.5 | 2007-11-19 | 对象集合初始化、自动实现属性、匿名类型、扩展方法、查询表达式、Lambda表达式、 表达式树、分部类和方法、Linq | ||
C# 4.0 | .NET Framework 4.0 | Visual Studio 2010 | 2010-04-12 | 动态绑定、命名和可选参数、泛型的协变和逆变、互操作性 |
C# 5.0 | .NET Framework 4.5 | Visual Studio 2012/2013 | 2012-08-15 | 异步和等待(async和await)、调用方信息(Caller Information) |
C# 6.0 | .NET Framework 4.6 | Visual Studio 2015 | 2015-07-20 | C# 6 中的新增功能 |
.NET Core 1.0 | 2016-06-27 | |||
C# 7.0 | .NET Framework 4.6.2 | Visual Studio 2017 | 2016-08-02 | C# 7.0 中的新增功能 |
C# 7.1 | .NET Framework 4.7 | Visual Studio 2017 v15.3 | 2017-04-05 | |
.NET Core 2.0 | 2016-08-14 | .NET Core 2.0 的新增功能 | ||
C# 7.2 | .NET Framework 4.7.1 | Visual Studio 2017 v15.5 | 2017-10-17 | |
C# 7.3 | .NET Framework 4.7.2 | Visual Studio 2017 v15.7 | 2018-04-30 | |
.NET Core 2.1 | 2018-05-30 | .NET Core 2.1 的新增功能 | ||
.NET Core 2.2 | 2018-12-04 | .NET Core 2.2 的新增功能 | ||
C# 8.0 | .NET Framework 4.8 | Visual Studio 2019 16.3 | 2019-04-18 | C# 8.0 中的新增功能 |
.NET Core 3.0 | 2019-09-23 | .NET Core 3.0 的新增功能 | ||
.NET Core 3.1 | 2019-12-03 | .NET Core 3.1 的新增功能 | ||
C# 9.0 | .NET Core 5.0 | 2020-11-11 | .NET Core 5.0 的新增功能 | |
C# 10.0 | .NET Core 6.0 | Visual Studio 2022 | 2021-11-09 | .NET Core 6.0 的新增功能 |
明年就要发布.NET Core 7.0了。