分类 .NET 下的文章

.NET 6的隐式using指令(global using指令)

在使用《最小Web API》时,我们发现,相比以前的代码,大量的using指令消失了:
大量的using指令消失了.png
using指令的主要作用是允许使用在命名空间中定义的类型,而无需指定该类型的完全限定命名空间。

那么,在.NET 6下为什么不需要了呢?

阅读剩余部分

.NET 6新特性《最小Web API》试用

如果你使用过其他一些轻量级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();

阅读剩余部分

Linux(Centos 8.2)配置asp.net core 6.0运行环境(不含数据库)

今年双十一在腾讯云上买了一个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获取点击那一行的指定列的值

在古老的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#版本 .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了。

阅读剩余部分