1. Giới thiệu về .Net core 2.0
và những cải tiến đột phá
của .Net core
Tác giả: Nguyễn Văn Sỹ
2. Nội dung
• Giới thiệu bản thân
• .NET Architectural Components
• .NET Standard 2.0
• .NET Core 2.0
• ASP.NET Core 2.0
• Tại sao lại lựa chọn ASP.NET core 2.0
• Kiến trúc ASP.NET Core 2.0
• ASP.NET Core 2.0 những thay đổi đột phá
• ASP.NET và ASP.NET Core 2.0
• Thảo luận
3. Giới thiệu bản thân
• 2008-2012: Học tập tại khoa Công nghệ thông tin - Viện
Đại Học Mở Hà Nội
• 2012: Lập trình viên tại Fast Software
• 2013: Lập trình viên tại Tập đoàn Bkav
• 2015: Lập trình viên tại Essintech – (Startup)
• 2017 : Senior – Developer tại SETA
• 2018 : Senior – Developer tại NashTech Global
4. . NET Architectural Components
• Một ứng dụng .Net được phát triển và thực thi sử dụng một
hoặc nhiều “implementations of .NET”
• Implementations of .NET bao gồm .Net Framework, .Net Core và
Mono. Và 1 API chung cho tất cả là .NET Standard.
5. .NET Standard 2.0
• Là đặc tả kỹ thuật chứa các API cho tất cả các nền tảng .Net
• Là sự thống nhất của các nền tảng trong hệ sinh thái .Net, giúp
ngăn cản tình trạng phân mảnh trong tương lai
6. .NET Standard 2.0
• Nhiều hơn 20k API so với .Net standard 1.x
• Tương thích với khoảng 70% các package trên Nuget
7. .Net Core 2.0
• Miễn phí
• Đa nền tảng (Cross-platform) hỗ trợ windown, macOS và Linux
• Mã nguồn mở (open source)
• Nền tảng phát triển cho việc xây dựng các loại ứng dụng
Web
Mobile
Desktop
Gaming
9. ASP.NET Core 2.0
• Đa nền tảng
• Hiệu năng cao
• Framework mã nguồn mở cho việc xây dựn các ứng dụng chạy
được trên cloud, được kết nối qua internet
• Với ASP.NET Core có thể làm
• Xây dựng các ứng dụng web và services, ứng dụng IoT và mobile
• Sử dụng các công cụ phát triển trên Windown, masOS, Linux
• Deploy trên cloud hoặc môi trường server của doanh nghiệp
• Chạy trên .Net Core hoặc .Net Framwork
11. Tại sao lại lựa chọn ASP.NET core 2.0
• Có thể host trên IIS hoặc self-host trong process
• Thay đổi kiến trúc giúp nó nhẹ nhàng và mô đun hóa
• HTTP request được tối ưu nhẹ hơn
• Chuyển các thực thể, thành phần, module như những
NuGet packages
• Tích hợp các framework phía client như React, Angular
• Xây dựng sẵn cơ chế dependency injection(DI)
• Thời gian phát triển nhanh chóng
12. Tại sao lại lựa chọn ASP.NET core 2.0
• Deploy trên các nền tảng Windows, macOS, Linux
• Công cụ phát triển đều có trên đa nền tảng
• Visual studio code
• Atom
• Brackets
• Sublime
13. Tại sao lại lựa chọn ASP.NET core 2.0
• ASP.NET Core MVC (Linux) có thể xử lý gần 1.000.000
request/s
• Mã nguồn mở hoàn toàn, và cộng đồng phát triển lớn
15. Kestrel
• Là một web-server đa nền tảng được xây dựng cho ASP.NET
Core dựa trên libuv – một thư viện xử lý I/O async đa nền
tảng
• Là web-server mặc định khi dùng ASP.NET Core template
• Tốc độ rất nhanh
• Không có đầy đủ tính năng của một web server
• Sử dụng sau một web server đầy đủ như IIS / Nginx / Apach
16. HTTP.sys
• Là một web server cho ASP.NET Core, chỉ chạy duy nhất trên
window.
• Là một thay thế cho Kestrel và có một vài feature mà Kestrel
không cung cấp
• HTTP.sys được sử dụng trong trường hợp để lộ máy chủ lên
internet mà không sử dụng IIS
– HTTP.sys không thể sử dụng chung với IIS hoặc IIS Express.
17. Dependency injection(DI)
• Là một kĩ thuật nhằm loại bỏ sự liên kết lẫn nhau giữa
các object và các object dùng trong nó, loại bỏ các phụ
thuộc
• ASP.NET Core được thiết kế từ ban đầu để dùng
dependency injection
• ASP.NET Core đã tích hợp sẵn Dependency injection ở sâu
bên trong mà không cần dùng các thư viện hỗ trợ khác như
Autofact, Unity, Ninject ….
18. ASP.NET Core 2.0 những thay đổi đột phá
• Performance
– Tốc độ .NET core 2.0 nhanh hơn khoảng 20% so với
phiên bản 1.0
• NET Standard 2.0 mở rộng thêm các API và khả năng sử
dụng đầy đủ thư viện.
– Đã hỗ trợ đến 32.000 API. Giúp cho việc nâng cấp code
có sẵn từ phiên bản .NET cũ mà không cần phải thay đổi
nhiều code.
• Hỗ trợ ngôn ngữ(Language Support)
– .NET core 2.0 hỗ trợ C#, F# và Visual Basic.
• Minimum Code
20. ASP.NET Core 2.0 những thay đổi đột phá
• SPA Template
– Cung cấp template mới cho Angular 4, React.js, và Knockout.js
• Một Framework duy nhất
– Microsoft đã đưa tất cả các framework vào một framework
duy nhất, sát nhấp MVC và Web API
• ASP.NET Core Razor Pages
– ASP.NET đã hỗ trợ cú pháp razor trên các page. Có thể
tạo ra một razor view mà không cần tạo một controller
21. ASP.NET và ASP.NET Core 2.0
• ASP.NET Core không dựa trên System.Web.dll mà dựa trên
một list các gói thư viện trên NuGet
• Security chặt chẽ hơn
• Giảm chi phí bảo trì
• Gia tăng hiệu năng
• Bắt đầu từ file Program.cs phương thức Main và Startup class
• Không còn file Global.asax
• Không yêu cầu Web.config
22. ASP.NET và ASP.NET Core 2.0
• Sử dụng ASP.NET Core khi :
– Ứng dụng chạy trên đa nền tảng (Cross-Platform)
– Cần sử dụng microservices cho ứng dụng
– Cần sử dụng Docker containers.
– Cần hệ thống hiệu suất mở rộng cao và khả năng mở rộng
– Cần các phiên bản side-by-side .NET versions cho mỗi ứng dụng.
• Sử dung ASP.NET khi :
– Ứng dụng đang sử dụng .Net framework (đề xuất mở rộng thay vì
chuyển)
– Ứng dụng đang sử dụng các thư viện mà .net core ko support
– Ứng dụng sử dụng các .NET technologies mà chưa có sẵn trên .net core
– Ứng dụng sử dụng nền tảng không hỗ trợ .NET Core.