Bài 2: Hệ thống kiểu trong .NET

.NET cung cấp một hệ thống kiểu rất rộng, phục vụ gần như ngang nhau cho safety (tính an toàn), descriptiveness (khả năng tự mô tả), dynamism (kiểu động), and native interop (tương tác với các thành phần native).

Trước hết, hệ thống kiểu cho phép một mô hình lập trình hướng đối tượng. Nó bao gồm các kiểu, kế thừa (đơn thừa kế), interface (bao gồm default method implementation (phương thức mặc định)) và virtual method để cung cấp một hành vi phù hợp cho tất cả các phân lớp kiểu mà hướng đối tượng cho phép.

Generics là một tính năng phổ biến cho phép các lớp chuyên biệt hóa thành một hoặc nhiều kiểu. Ví dụ: List<T> là một lớp chung mở, nhờ đó ta có thể viết List<string> và List<int> ta không cần phải tạo thêm các lớp ListOfString và ListOfInt riêng biệt, hoặc phải dựa vào object và truyền như trường hợp của ArrayList. Generics cũng cho phép tạo nhiều hệ thống hữu ích trên các kiểu khác nhau (và giảm nhu cầu sử dụng nhiều code), như với Generic Math.

Continue reading “Bài 2: Hệ thống kiểu trong .NET”

.NET là gì? Và vì sao ta nên chọn nó? – Bài 1

Đây là bài viết được dịch từ https://devblogs.microsoft.com/dotnet/why-dotnet/

Bài viết này nhằm giới thiệu về .NET, một trong những nền tảng lập trình phổ biến nhất, mạnh mẽ nhất, hỗ trợ đầy đủ tất cả các hệ điều hành, kiến trúc, từ smart phone, đến desktop, máy chủ… Với sự hậu thuẫn mạnh mẽ bởi Microsoft và cộng đồng hàng triệu lập trình viên trên khắp thế giới.

Hiểu rõ những khả năng của .NET giúp bạn quyết định việc đầu tư việc học vào nền tảng này.

Phần chữ in nghiêng là phần ghi chú thêm của người dịch.

.NET đã thay đổi rất nhiều từ lúc chúng tôi khởi động dự án chuyển đổi .NET sang mã mở và đa nền tảng. Chúng tôi đã khảo sát lại toàn bộ, tinh chỉnh lại nền tảng, thêm vào các tính năng ở cấp thấp hỗ trợ cho hiệu năng và tính an toàn, cùng với các tính năng ở cấp cao giúp việc xây dựng ứng dụng nhanh chóng và hiệu quả.  Span<T>hardware intrinsics, và nullable reference types là một số ví dụ. Chúng tôi cũng khởi động một blog “.NET Design Point” để giúp bạn biết thêm về những khái niệm và quyết định khi thiết kế ra .NET platform mà chúng ta có ngày nay, và nó đã giúp ích như thế nào khi viết code.

Bài đầu tiên của loại bài này cung cấp một cái nhìn tổng quan về các trụ cột chính và các design point của nền tảng. Nó mô tả ở mức độ khái quát “những gì bạn nhận được” khi bạn chọn .NET và nhằm mục đích trở thành một bộ khung tập trung vào những điểm quan trọng mà bạn có thể dựa trên đó để giới thiệu nền tảng này đến những người khác. Các bài viết tiếp theo sẽ đi vào chi tiết của các chủ đề đã nói đến. Bài viết này sẽ không mô tả về các công cụ, như Visual Studio, hoặc các thư viện cấp cao hoặc các mô hình ứng dụng như ASP.NET Core.

“.NET” mà chúng ta đang nói đến là .NET Core hiện đại. Nếu bạn quên, thì chúng tôi đã bắt đầu dự án này vào năm 2014 như một dự án nguồn mở trên GitHub. Nó có thể chạy Linux, macOS, và Windows on Arm64, x64, và các kiến trúc chíp khác nữa. Nó cũng có sẵn trong nhiều Linux distro. Nó cũng duy trì rất nhiều sự tương thích với .NET Framwork cũ, nhưng nó thực sự là một sản phẩm và là một hướng đi mới.

Continue reading “.NET là gì? Và vì sao ta nên chọn nó? – Bài 1”