.NET Core framework đã có mặt trên thị trường khá lâu (phiên bản 2.0 vừa được tung ra). Tuy nhiên, nhiều công ty vẫn do dự trong việc chuyển đổi các dự án của họ sang .NET Core (họ tự hỏi liệu việc chuyển đổi có xứng đáng hay không, bài viết chúng ta sẽ nói về vấn đề này).
Lý do không sử dụng .NET Core trong một dự án là do những người ra quyết định thường e ngại những chậm trễ không mong muốn do công nghệ mới. Nhiều công ty có xu hướng đợi các công nghệ đạt đến mức độ trưởng thành nhất định trước khi áp dụng chúng trong bộ công cụ của họ.
May mắn thay, giống như với các phiên bản đầu tiên của .NET Framework, quá trình chuyển đổi sẽ bắt đầu ngay khi mọi người hiểu và cảm thấy an toàn hơn với .NET Core. Trong bài viết này, tôi sẽ cố gắng giải thích, ở cấp độ kỹ thuật cao hơn, những thay đổi mà .NET Core mang lại, sẽ giúp bạn thuyết phục những người xung quanh chấp nhận nó sớm hơn.
MỘT BỘ PHẦN MỀM ĐA NỀN TẢNG
Trở lại khi .NET Framework xuất hiện (đối với những người còn nhớ), nhu cầu về Java rất cao. Và cũng giống như đối với Java, ý tưởng cơ bản với .NET là bất kỳ ai cũng có thể triển khai trình biên dịch để biên dịch các chương trình bằng ngôn ngữ trung gian .NET. Trên thực tế, bạn có thể nhớ rằng họ thậm chí còn cung cấp một bản cài đặt Java.NET (phiên bản này đã không được tiếp tục phát triển).
Bạn có thể chọn bất kỳ ngôn ngữ nào (VB, Java, C ++ hoặc C #, ngôn ngữ hoàn toàn mới mà họ vừa tạo) để sử dụng .NET. Điều duy nhất cần làm là cài đặt .NET Framework trong máy (sau đó nó được cung cấp theo mặc định với bản cập nhật Windows, điều này thậm chí còn dễ dàng hơn). Việc triển khai .NET Framework cho Linux đang trong quá trình thực hiện (có tên là Mono Project), tuy nhiên, sự quan tâm của Microsoft đối với dự án này còn nhiều nghi ngờ và các nhà thiết kế Linux phải đối mặt với sự chậm trễ hoặc định nghĩa sai.
Với .NET Core, mọi thứ đã diễn ra khác.
Ngay từ đầu, các phiên bản dành cho Mac và Linux đã được cung cấp để tải xuống trên trang web. Lần này, có vẻ như Microsoft đã sẵn sàng mang lại trải nghiệm .NET Core cho mọi người, bất kể thiết bị nào. Nói theo cách của Microsoft (https://docs.microsoft.com/en-us/dotnet/core/):
.NET Core có thể được xem là bản viết lại của .NET Framework. Biện pháp này là cần thiết vì Microsoft muốn tạo một khuôn khổ đa nền tảng và phiên bản .NET Framework trước đó được phân mảnh cho nhiều nền tảng (Silverlight, Windows Phone, Windows Store). Lúc đầu, Microsoft đã nghĩ đến việc đặt tên cho nó là .NET Framework 5 (phiên bản mới nhất đang được gọi là 4.6.x), nhưng vì nó là một bản viết lại hoàn toàn sử dụng các khái niệm hoàn toàn mới, nên quyết định được đưa ra là bắt đầu lại việc đánh số.
Do đó, các thư viện khác cũng phải làm như vậy… Entity Framework 6.1.x đã phát triển thành Entity Framework Core 1.0 (thay vì 7) và ASP.NET 4.5 phát triển thành ASP.NET Core 1.0 (thay vì ASP .NET 5). Cần lưu ý rằng trong trường hợp của một số thư viện, có thể sử dụng phiên bản Core mà không cần sử dụng .NET Core framework. Đây là trường hợp của ASP.NET Core 1.0 có thể được sử dụng với .NET Framework 4.6:
Điều quan trọng cần lưu ý là .NET Core cung cấp một tập hợp con các API có sẵn trong .NET Framework. Điều này có nghĩa là, đối với một số thư viện, các quy trình là:
- Chưa được triển khai, nhưng sẽ sớm có trong các phiên bản tiếp theo của thư viện;
- Không được triển khai, nhưng sẽ không bao giờ xuất hiện trong thư viện;
- Được thực hiện, đôi khi có một số sửa đổi (ví dụ: các quy trình đã được chuyển đổi);
- Mới được triển khai và không có sẵn trên phiên bản classic của thư viện.
Sẽ có chút khó khăn cho các nhà thiết kế phần mềm, những người phải quyết định thời điểm nào chuyển sang phiên bản “Core” của các thư viện.
Một số tính năng sẽ được thay thế bởi các công nghệ khác vì một số vấn đề có thể xảy ra (ví dụ: không an toàn, khó bảo trì) và sẽ không được đưa vào Core.
Trong đó WPF / XAML – Đặc tả đồ họa của Windows Presentation Foundation được sử dụng để tạo giao diện người dùng. Thư viện tiêu chuẩn .NET không bao gồm bất kỳ thư viện giao diện người dùng nào và .NET Core sẽ không cung cấp khung giao diện người dùng đa nền tảng.
MÃ NGUỒN MỞ
Trong những năm gần đây, Microsoft đã áp dụng triết lý nguồn mở (mã nguồn miễn phí). Ngay cả khi công ty của bạn không tham gia vào bất kỳ dự án mã nguồn mở nào, thì đó cũng là một công cụ thay đổi cuộc chơi cho các nhà phát triển phần mềm. Không có gì lạ khi các nhà thiết kế gặp khó khăn lớn khi sử dụng các thư viện không được chia sẻ, vì mã làm việc của thư viện không thể hiểu được đối với họ.
PHẦN KẾT LUẬN
Tóm lại, có một số điều về .NET Core đáng được đề cập với sếp của bạn :
- Đây là một khuôn khổ đa nền tảng – nếu ý định của bạn là triển khai cho nhiều hệ thống và thiết bị, thì không cần tìm đâu xa vì .NET Core được xây dựng cho điều đó.
- .NET Core sử dụng cùng một ngôn ngữ và chia sẻ một vài thư viện với .NET Framework, nhưng nó nên được coi là một ngăn xếp khác với khuôn khổ cổ điển. Trên thực tế, .NET Core và framework cổ điển có thể là một phần của cùng một giải pháp mà không gặp phải vấn đề lớn.
- .NET Core (và hầu hết các thư viện do Microsoft cung cấp) là một khung mã nguồn mở và sự đóng góp của cộng đồng sẽ giúp nó phát triển nhanh hơn.