.NET Conf 2021

Giới thiệu sự kiện .NET Conf

.NET Conf là sự kiện dành cho nhà phát triển ảo, kéo dài ba ngày, miễn phí nhằm giới thiệu các bản phát hành chính của nền tảng phát triển .NET. Nó được đồng tổ chức bởi cộng đồng .NET và Microsoft, và được tài trợ bởi .NET Foundation và các đối tác hệ sinh thái của Microsoft.

.NET Conf 2021

Sự kiện được diễn ra trong 3 ngày từ mùng 09 đến 11 tháng 11 năm 2021

  • Ngày đầu tiên là tất cả tin tức lớn về NET 6! Tất cả các tính năng mới của nền tảng .NET với bản phát hành mới nhất.
  • Ngày thứ hai là nơi chúng ta sẽ được tìm hiểu sâu hơn về tất cả những điều bạn có thể làm với .NET và chương trình sẽ bắt đầu phát sóng liên tục 24 giờ.
  • Ngày thứ ba tiếp tục chương trình phát sóng cả ngày và đêm của chương trình với các diễn giả trên khắp thế giới theo múi giờ của riêng.

Thay đổi mẫu dự án

Điểm bắt đầu chương trình của các dự án .NET viết bằng C# thường bắt đầu bằng phương thức tĩnh Main trong lớp Program. Tuy nhiên bắt đầu từ C# 9.0 với .NET 5 thì đã có sự thay đổi lớn là có thể bắt đầu chương trình trong tệp Program.cs mà không nhất thiết phải có lớp Program và phương thức Main, mặc định là sẽ thực hiện các lệnh đầu tiên trong tệp Program.cs. Tuy nhiên các mẫu dự án trong .NET 5 vẫn sử dụng cách thức cũ, đến .NET 6 thì các mẫu dự án đã được cập nhật thay đổi theo hướng đơn giản hóa như các ví dụ sau:

Ứng dụng Console trước .NET 6

// Program.cs
using System;
using System.Collections.Generic;
using System.Linq;

namespace SimpleConsoleApplication
{
    public class Program
    {
        public static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
        }
    }
}

Ứng dụng Console từ .NET 6

// Program.cs
// See https://aka.ms/new-console-template for more information
Console.WriteLine("Hello, World!");

ASP.NET Core trước .NET 6

// Program.cs
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Hosting;
 
namespace SinhNX.DotNet6.NewFeatures
{
    public class Program
    {
        public static void Main(string[] args)
        {
            CreateHostBuilder(args).Build().Run();
        }
 
        public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseStartup<Startup>();
                });
    }
}

ASP.NET Core từ .NET 6

// Program.cs
using RoundTheCode.DotNet6;
 
Host.CreateDefaultBuilder(args)
    .ConfigureWebHostDefaults(webBuilder =>
    {
        webBuilder.UseStartup<Startup>();
    }).Build().Run();

.NET 6 Multi-platform App UI (MAUI)

Kể từ trước khi .NET 5 Microsoft đã nói rất nhiều về “sự thống nhất lớn”. Nói chung, ý tưởng là chỉ có một .NET được sử dụng để nhắm mục tiêu Windows, Linux, macOS, iOS, Android, tvOS, watchOS và WebAssembly. Với .NET 5, họ đã bắt đầu quá trình này và tạo ra một khuôn khổ và thời gian chạy .NET duy nhất có thể được sử dụng ở mọi nơi và có các hành vi thời gian chạy đồng nhất và trải nghiệm của nhà phát triển.

Với .NET 6, họ tiến xa hơn với ý tưởng này và bao gồm Xamarin cùng với Android và iOS. Tại Build 2020, Microsoft đã công bố .NET Multi-platform App UI (MAUI), một bộ công cụ UI hiện đại được xây dựng dựa trên Xamarin. Quyết định này tất nhiên là do cộng đồng định hướng ở một mức độ. Đã có rất nhiều yêu cầu chia sẻ mã trên các ứng dụng dành cho thiết bị di động và máy tính để bàn của bạn. Vì vậy, với .NET MAUI, bạn có thể xây dựng các ứng dụng có thể chạy trên Android, iOS, macOS và Windows từ một cơ sở mã duy nhất.

.NET 6 có một thư viện được gọi là Thư viện Lớp Cơ sở (BCL). Thư viện này là cơ sở cho các khuôn khổ cụ thể khác nhau, như .NET cho Android, .NET cho iOS, .NET cho macOS và Windows UI. Tất cả các khuôn khổ này đều truy cập BCL và đến lượt nó, nó tóm tắt các chi tiết của nền tảng. Vì vậy, bạn không cần biết những chi tiết này khi viết mã. Tất cả đều được trừu tượng hóa để bạn có thể viết mã đa nền tảng mà không cần căng thẳng.

Ngoài ra, bộ công cụ Xamarin.Forms và Xamarin.Essentials là cốt lõi của .NET MAUI. Các công cụ này được mở rộng để chúng có thể được sử dụng để phát triển các ứng dụng dành cho thiết bị di động và máy tính để bàn. Vì nó đã được thành lập và công nghệ lâu dài với một cộng đồng lớn, nó là một lựa chọn hợp lý cho nền tảng của .NET MAUI.

SDK Workloads

Trong bản .NET 6 Preview 4, lần đầu tiên giới thiệu về SDK Workloads. Tính năng này cho phép người dùng chỉ cài đặt các SDK cần thiết, không hoàn chỉnh SDK “tất cả trong một”. Vì vậy, nếu bạn chỉ muốn tải xuống và cài đặt ASP.NET Core hoặc chỉ Xamarin, bạn có thể thực hiện điều đó. Về bản chất, tính năng này chỉ là một trình quản lý gói cho các SDK. Tất cả điều này được hỗ trợ với từ khóa CLI mới - khối lượng công việc.

Tính năng này cũng là một phần của câu chuyện lớn hơn. Khi .NET Core ban đầu được phát triển, nhu cầu về một SDK nguyên khối tất cả trong một. Điều này đặc biệt đúng đối với một số tính năng .NET Core 2.x và .NET Core 3.x. Tuy nhiên, vì khối lượng công việc được hỗ trợ của SDK .NET phát triển nên một nhu cầu mới đã xuất hiện - nhu cầu về SDK nhỏ và tập trung.

Như đã đề cập, tính năng này được hỗ trợ với lệnh khối lượng công việc CLI. Nó phát triển dần dần qua các .NET 6 bản Preview 4, 5 và 6. Đầu tiên, lệnh cài đặt đã được giới thiệu.

# Lệnh này cho phép bạn cài đặt bất kỳ workload SDK nào:
dotnet workload install name_of_the_workload
# Có một lệnh mà bạn có thể liệt kê tất cả các workload đã cài đặt:
dotnet workload list
# Ngoài ra còn có lệnh cập nhật tất cả workload SDK đã cài đặt lên phiên bản mới nhất:
dotnet workload update
# Bạn cũng có thể liệt kê các workload có sẵn để cài đặt
dotnet workload search
# bạn có thể gỡ cài đặt workload:
dotnet workload uninstall
# Trong trường hợp xảy ra sự cố (như kết nối internet của bạn bị đứt) trong quá trình cài đặt workload, bạn có thể sửa chữa nó bằng:
dotnet workload repair

Thông tin thêm của sự kiện với môi trường

Các sự kiện kỹ thuật số cũng có tác động đến môi trường. Sự kiện .NET Conf 2021 ước tính tạo ra khoảng 5,98 tấn CO2, bao gồm cả quá trình sản xuất của sự kiện và những người tham dự phát trực tiếp và theo yêu cầu. Ban tổ chức đang hợp tác với Tradewater để bù đắp hoàn toàn lượng khí thải carbon từ sự kiện .NET Conf 2021 và sau đó là nhiều hơn nữa.
Tradewater là một công ty dựa trên sứ mệnh tập trung vào việc thu gom và tiêu hủy các khí nhà kính mạnh nhất từng được tạo ra để giúp ngăn chặn khủng hoảng khí hậu. Truy cập trang web của họ để hiểu tác động của bạn bằng cách tính toán lượng khí thải carbon của bạn và tham gia cuộc chiến chống khủng hoảng khí hậu thông qua việc mua các khoản tín dụng bù đắp tác động cao.

Đây là một thông tin khá thú vị, tuy nhiên các tác động của hiệu ứng khí nhà kính ảnh hướng xấu đến môi trường, khí hậu toàn cầu (xem thông tin chi tiết tại đây). Thông tin mà công ty Tradewater đưa ra đã tiêu hủy 5.100.000 tấn C02 và tiếp tục còn triển khai tiếp, một con số rất ấn tượng và theo mình nghĩ các sự kiện khác cũng nên có các hoạt động tương tự với mục đích ngăn chặn khủng hoảng khí hậu toàn cầu hiện nay.