So sánh các kiểu kiến trúc net framework khác nhau
Có hai triển khai được hỗ trợ để xây dựng các ứng dụng phía máy chủ với .NET là: .NET Framework và .NET Core. Cả hai chia sẻ nhiều thành phần giống nhau và bạn có thể chia sẻ code trên cả hai. Tuy nhiên, có sự khác biệt cơ bản giữa hai và sự lựa chọn của bạn phụ thuộc vào những gì bạn muốn thực hiện. Bài viết này cung cấp hướng dẫn về thời điểm sử dụng. Sử dụng .NET Core cho ứng dụng máy chủ của bạn khi:
Sử dụng .NET Framework cho ứng dụng trên server của bạn khi:
Khi nào chọn .NET CoreCác phần sau đây đưa ra một giải thích chi tiết hơn về các lý do đã nêu trước đây để chọn .NET Core. Nhu cầu đa nền tảng Nếu ứng dụng của bạn (web / dịch vụ) cần chạy trên nhiều nền tảng (Windows, Linux và macOS), hãy sử dụng .NET Core. .NET Core hỗ trợ các hệ điều hành được đề cập trước đây như là phát triển workstation của bạn. Visual Studio cung cấp một môi trường phát triển tích hợp (IDE) cho Windows và MacOS. Bạn cũng có thể sử dụng Visual Studio Code, chạy trên macOS, Linux và Windows. Visual Studio Code hỗ trợ .NET Core, bao gồm cả IntelliSense và debug. Hầu hết các IDE bên thứ ba, chẳng hạn như Sublime, Emacs và VI, làm việc với .NET Core. Các IDE bên thứ ba này nhận được trình soạn thảo IntelliSense sử dụng Omnisharp. Sử dụng kiến trúc Microservices Kiến trúc microservices cho phép kết hợp các công nghệ trên một ranh giới dịch vụ. Hỗn hợp công nghệ này cho phép sử dụng .NET Core cho các dịch vụ microservices mới hoạt động với các service hoặc micro services khác. Ví dụ, bạn có thể kết hợp các service hoặc micro services được phát triển với .NET Framework, Java, Ruby hoặc các công nghệ độc lập khác. Có rất nhiều nền tảng cơ sở hạ tầng có sẵn. Azure Service Fabric được thiết kế cho các hệ thống microservice lớn và phức tạp. Dịch vụ ứng dụng Azure là một lựa chọn tốt cho các dịch vụ microsoft đa quốc gia. Các lựa chọn thay thế Microservices dựa trên Docker phù hợp với bất kỳ phương pháp tiếp cận microservices nào, như được giải thích trong phần Containers. Tất cả các nền tảng này hỗ trợ .NET Core và làm cho chúng lý tưởng để lưu trữ các micro service của bạn. Containers Containers thường được sử dụng kết hợp với kiến trúc microservices. Các containers cũng có thể được sử dụng để chứa các ứng dụng hoặc dịch vụ web theo bất kỳ mẫu kiến trúc nào. .NET Framework có thể được sử dụng trên các containers trên Windows, nhưng tính mô đun và tính chất nhẹ của .NET Core làm cho nó trở thành một lựa chọn tốt hơn cho các containers. Khi tạo và triển khai một containers, kích thước image của nó nhỏ hơn nhiều so với .NET Core so với .NET Framework. Bởi vì nó là framework đa nền tảng, bạn có thể triển khai các ứng dụng máy chủ cho các container Linux Docker chẳng hạn. Các container trên Docker có thể được lưu trữ trong cơ sở hạ tầng Linux hoặc Windows của riêng bạn hoặc trong một dịch vụ cloud như Azure Container Service. Azure Container Service có thể quản lý, dàn xếp và mở rộng các ứng dụng dựa trên container trong cloud. Nhu cầu về các hệ thống có hiệu suất cao và khả năng mở rộng Khi hệ thống của bạn cần hiệu suất và khả năng mở rộng tốt nhất, .NET Core và ASP.NET Core là những lựa chọn tốt nhất của bạn. Thời gian chạy máy chủ hiệu suất cao cho Windows Server và Linux làm cho .NET trở thành một framework xây dựng web hoạt động tốt nhất trên các tiêu chuẩn của . Hiệu suất và khả năng mở rộng đặc biệt phù hợp với kiến trúc microservices, nơi hàng trăm microservices có thể chạy. Với ASP.NET Core, các hệ thống chạy với số lượng máy chủ / Máy ảo (VM) thấp hơn nhiều. Các máy chủ / VM giảm tiết kiệm chi phí trong cơ sở hạ tầng và lưu trữ. Một nhu cầu cho các bên của các phiên bản .NET cho mỗi cấp ứng dụng Để cài đặt các ứng dụng có phụ thuộc vào các phiên bản .NET khác nhau, chúng tôi khuyến nghị .NET Core. .NET Core cung cấp cài đặt song song các phiên bản khác nhau của thời gian chạy .NET Core trên cùng một máy. Việc cài đặt song song này cho phép nhiều dịch vụ trên cùng một máy chủ, mỗi máy chủ trên phiên bản .NET Core của riêng nó. Nó cũng làm giảm rủi ro và tiết kiệm tiền trong việc nâng cấp ứng dụng và CNTT Khi nào chọn .NET Framework.NET Core cung cấp các lợi ích đáng kể cho các ứng dụng và mẫu ứng dụng mới. Tuy nhiên, .NET Framework tiếp tục là sự lựa chọn tự nhiên cho nhiều kịch bản hiện có và như vậy .NET Framework không được thay thế bởi .NET Core cho tất cả các ứng dụng máy chủ. Các ứng dụng .NET Framework hiện tại Trong hầu hết các trường hợp, bạn không cần di chuyển các ứng dụng hiện có của mình sang .NET Core. Thay vào đó, một cách tiếp cận được khuyến nghị là sử dụng .NET Core khi bạn mở rộng một ứng dụng hiện có, chẳng hạn như viết một dịch vụ web mới trong ASP.NET Core. Cần sử dụng thư viện .NET của bên thứ ba hoặc gói NuGet không có sẵn cho .NET Core Thư viện nhanh chóng chấp nhận tiêu chuẩn .NET. .NET Standard cho phép chia sẻ mã trên tất cả các triển khai .NET bao gồm .NET Core. Với .NET Standard 2.0, điều này thậm chí còn dễ dàng hơn:
Cần sử dụng các công nghệ .NET không có sẵn cho .NET Core Một số công nghệ .NET Framework không có sẵn trong .NET Core. Một số trong số đó có thể có sẵn trong các phiên bản .NET Core sau này. Những người khác không áp dụng cho các mẫu ứng dụng mới được nhắm mục tiêu bởi .NET Core và có thể không bao giờ có sẵn. Danh sách sau đây cho thấy các công nghệ phổ biến nhất không được tìm thấy trong .NET Core:
Ngoài lộ trình chính thức, còn có các framework khác được chuyển sang .NET Core. Để biết danh sách đầy đủ, hãy xem các vấn đề CoreFX được đánh dấu là cổng-tới-lõi. Danh sách này không đại diện cho cam kết của Microsoft để đưa các thành phần đó lên .NET Core. Họ chỉ đơn giản là nắm bắt được mong muốn từ cộng đồng để làm như vậy. Nếu bạn quan tâm đến bất kỳ thành phần nào được đánh dấu là port-to-core, hãy tham gia vào các cuộc thảo luận trên GitHub. Và nếu bạn nghĩ rằng một cái gì đó bị thiếu, hãy gửi một vấn đề mới trong kho lưu trữ CoreFX. |