Hướng dẫn tự học lập trình ASP.NET Core toàn tập | Tự học ICT

ASP.NET Core là một framework dành cho phát triển ứng dụng web mới nhất của Microsoft. Đây cũng là công nghệ Microsoft đầu tư phát triển nhiều nhất trong thời gian qua.

Trong thời hạn qua, nhu yếu học và thao tác với ASP.NET Core đã tăng lên rất nhanh. Hiện nay đã có khá nhiều tài liệu chuyên nghiệp và sâu xa về ASP.NET Core, từ sách in, sách điện tử, bài giảng video, đến những website / blog dành riêng cho chủ đề này .Rất tiếc rằng những tài liệu đó phần đông viết bằng tiếng Anh. Đây là một rào cản không nhỏ với những bạn sinh viên .

Để giúp các bạn có một tài liệu bài bản, hệ thống và chuyên sâu, Tự học ICT xây dựng tập bài giảng Hướng dẫn tự học lập trình ASP.NET Core. Tập bài giảng này sẽ đi từ những vấn đề cơ bản đến nâng cao để bạn có thể bắt nhịp với công nghệ mới này.

Giới thiệu chung về ASP.NET Core

ASP.NET Core là framework của Microsoft tương hỗ tăng trưởng những ứng dụng web. Phiên bản tiên phong ASP.NET Core phát hành tháng 6 năm năm nay .

Truyền thống và tân tiến

ASP.NET Core được phong cách thiết kế lại trọn vẹn để tương thích cho tăng trưởng những ứng dụng web tân tiến. Trong ASP.NET Core, cả framework và platform cho thực thi ứng dụng đều được kiến thiết xây dựng lại. Nó đồng thời bổ trợ thêm những tính năng mới không có trong ASP.NET truyền thống cuội nguồn .Tuy được kiến thiết xây dựng lại từ đầu nhưng ASP.NET Core vẫn thừa kế những ưu điểm của ASP.NET ( vốn đã và đang được sử dụng rất thoáng rộng ). Vì vậy, ASP.NET Core cũng được xem như người kế tục của ASP.NET. Những lập trình viên đã quen thuộc với ASP.NET rất thuận tiện chuyển sang ASP.NET Core .

Cộng đồng và doanh nghiệp

ASP.NET Core lôi cuốn sự chăm sóc rất lớn của hội đồng do đây là một framework mã mở. Đây là điểm độc lạ rất lớn với ASP.NET truyền thống cuội nguồn. Sự góp phần của hội đồng khiến ASP.NET Core tăng trưởng rất nhanh gọn .Đây là công nghệ tiên tiến mới nhất được Microsoft khuyến khích sử dụng để tăng trưởng những ứng dụng web văn minh, đặc biệt quan trọng nếu đó là dự án Bất Động Sản mới. Các ứng dụng web sẵn có cũng hoàn toàn có thể quy đổi sang ASP.NET Core để tận dụng những lợi thế của framework / platform mới này .Hiện nay nhiều công ty đã và đang vận động và di chuyển sang ASP.NET Core, nhất là khi tăng trưởng những dự án Bất Động Sản mới. Do vậy, nhu yếu học và thao tác với công nghệ tiên tiến mới này đang tăng lên rất nhanh .

Ưu điểm yếu kém của ASP.NET cũ

Để hiểu được vì sao Microsoft quyết định hành động thiết kế xây dựng một framework mới, cũng như thuyết phục bạn chuyển sang học ASP.NET Core, tất cả chúng ta sẽ nói qua một vài yếu tố của ASP.NET truyền thống cuội nguồn .

Lịch sử của ASP.NET

ASP.NET sinh ra từ 2002 với vai trò là một bộ phận của. NET Framework 1.0 nhằm mục đích thay thế sửa chữa cho ASP ( Active Server Pages, sinh ra từ 1996 ) cổ xưa ( sử dụng VBScript ) và cạnh tranh đối đầu với PHP .Bên trên ASP.NET, Microsoft kiến thiết xây dựng một số ít quy mô lập trình khác nhau để tương hỗ lập trình viên : ( 1 ) Web Forms, ( 2 ) MVC .Web Forms sinh ra năm 2002 hướng tới quy mô web “ stateful ” dựa trên sự kiện tương tự như như Windows Forms. Mô hình lập trình của Web Forms có quá nhiều yếu tố, nhất là so với những ứng dụng lớn, gồm có hạn chế khi test, quy mô stateful quá phức tạp, không trấn áp được HTML gây khó khăn vất vả cho kiến thiết xây dựng client. Web Forms dần bị thay thế sửa chữa khi MVC sinh ra .ASP.NET MVC sinh ra năm 2009 dựa trên quy mô kiến trúc MVC ( Model – View – Controller ), tương tự như như Ruby on Rails, Django hay Java Spring. Mô hình này đặc biệt quan trọng thành công xuất sắc và được sử dụng rất thoáng đãng thay thế sửa chữa cho Web Forms .Năm 2012, ASP.NET Web API sinh ra giúp tăng trưởng ứng dụng dạng dịch vụ REST và dần sửa chữa thay thế WCF ( Windows Communication Foundation, Open từ 2006 ) .

Vấn đề của ASP.NET

Tất cả những quy mô lập trình của ASP.NET ( Web Forms và MVC ) đều được kiến thiết xây dựng trên cùng một framework chung sử dụng thư viện System. Web. dll – vốn là một bộ phận của. NET Framework lớn. Điều này mang tới cả ưu và điểm yếu kém .Các ứng dụng web hoàn toàn có thể sử dụng tổng thể những tính năng của. NET Framework và ASP.NET chung – vốn vô cùng phong phú, đa dạng chủng loại, có tính đáng tin cậy và không thay đổi cao đã trải qua thử thách của thời hạn .Ở góc nhìn khác, ASP.NET chịu sự số lượng giới hạn về tăng trưởng của. NET Framework nói chung ( do là một bộ phận của. NET ), ví dụ, về chu kỳ luân hồi phát hành, vốn không tương thích với những ứng dụng web tân tiến .ASP.NET cũng gắn chặt với dịch vụ hosting của Windows sử dụng IIS ( Internet Information Service ). Điều này khiến ASP.NET không hề lan rộng ra ra hoạt động giải trí trên những hệ điều hành quản lý khác – vốn là một nhu yếu rất quan trọng lúc bấy giờ .Những nguyên do trên dẫn tới việc Microsoft quyết định hành động kiến thiết xây dựng một framework / platform trọn vẹn mới cho tăng trưởng ứng dụng web và đặt tên nó là ASP.NET Core .Như vậy, không nên nhầm lẫn giữa ASP.NET và ASP.NET Core. Chúng là hai framework trọn vẹn khác nhau .

. NET Core và ASP.NET Core

ASP.NET Core được phong cách thiết kế nhằm mục đích phân phối những nhu yếu :

  • Phát triển và hoạt động đa nền tảng;
  • Có kiến trúc dựa trên các module;
  • Phát triển hoàn toàn ở dạng mã nguồn mở;
  • Phù hợp với xu hướng hiện đại của ứng dụng web.

Để đạt được các yêu cầu trên, Microsoft xây dựng một platform mới đảm bảo nhẹ – nhanh – đa nền tảng. Platform mới này được đặt tên là .NET Core. Hiện nay .NET Core hoạt động được trên Windows, macOS và Linux.

Như vậy. NET Core và. NET Framework sẵn có là hai platform độc lập, và bạn không nên nhầm lẫn giữa chúng .Tuy nhiên ,. NET Core chứa rất nhiều API giống như của. NET Framework. Điều này giúp lập trình viên thuận tiện quy đổi sang. NET Core mà không cần phải học lại mọi thứ từ đầu. Nếu nhìn từ phía những API thì hoàn toàn có thể tưởng tượng. NET Core tựa như như một bộ phận ( độc lập ) tách ra từ. NET Framework .Ở những phiên bản tiên phong. NET Core chỉ được cho phép tăng trưởng ứng dụng console đa nền tảng. ASP.NET Core là một tầng bổ trợ thiết kế xây dựng bên trên ứng dụng console để quy đổi nó thành một ứng dụng web .Từ phiên bản 3 ,. NET Core tương hỗ thêm tăng trưởng ứng dụng windows desktop, gồm có windows forms và windows presentation foundation .Cách nhìn nhận ứng dụng ASP.NET Core là một ứng dụng console hoàn toàn có thể rất lạ lẫm với những bạn quen thuộc với ASP.NET. Tuy nhiên đây lại là một đặc thù quan trọng của ASP.NET Core. Nó giúp ứng dụng viết trên ASP.NET Core hoàn toàn có thể thuận tiện tiến hành trên những hệ điều hành quản lý khác nhau, tiến hành như một web server độc lập, hoặc tích hợp cùng những chương trình web server khác ( IIS, Apache, Nginx ) .Bạn sẽ gặp lại yếu tố này trong một bài học kinh nghiệm riêng về quy mô hoạt động giải trí của ASP.NET Core .

ASP.NET Core và. NET Framework

Một điều khiến rất nhiều người nhầm lẫn là mối quan hệ giữa ASP.NET Core và. NET Framework : ASP.NET Core hoàn toàn có thể hoạt động giải trí trên. NET Framework ( giống như ASP.NET cũ ) .

Để hiểu vấn đề này bạn cần hình dung .NET Framework (và cả .NET Core) theo hai khía cạnh: (1) hệ thống thư viện API hỗ trợ phát triển ứng dụng; (2) runtime dành cho thực thi ứng dụng.

ASP.NET Core chứa mạng lưới hệ thống API của riêng nó. Hệ thống API này sử dụng những API cơ bản của. NET. Thêm vào đó ,. NET Core và. NET Framework có chung mạng lưới hệ thống API cơ bản .Runtime hoàn toàn có thể tưởng tượng như chương trình máy ảo sẽ nạp ứng dụng vào để thực thi. Ứng dụng và toàn bộ những thư viện của cả. NET Core và. NET Framework đều nằm ở dạng mã trung gian IL ( Intermediate Language ) .Hai yếu tố trên được cho phép chương trình viết bằng ASP.NET Core hoàn toàn có thể hoạt động giải trí trên runtime ( máy ảo ) của. NET Framework. Ở chiều ngược lại, ASP.NET truyền thống cuội nguồn không hề hoạt động giải trí trên. NET Core do nó phụ thuộc vào vào System. Web. dll của. NET Framework, vốn không có trong. NET Core .ASP.NET Core 2.0 tới 2.2 hoàn toàn có thể chạy trên. NET Framework 4.6.1 ( và những phiên bản cao hơn ), đồng thời hoàn toàn có thể chạy trên. NET Core 2.0 ( và những bản cao hơn ). Tuy nhiên ASP.NET Core 3.0 chỉ chạy trên. NET Core 3.0 .

Việc này có liên quan đến sự mở rộng của .NET Core so với .NET Framework. Để dễ hiểu hãy hình dung thế này:
+ Số lượng API của .NET Core 1.0 chỉ bằng một phần của .NET Framework 4.6.1 (phiên bản tương đương của .NET Framework tại thời điểm đó).
+ .NET Core 2.0 đạt lượng API tương đương với .NET Framework 4.7.1.
+ .NET Core 3.0 đã có số lượng API vượt quá của .NET Framework 4.8 – phiên bản cuối cùng của .NET Framework.

Khi chương trình ASP.NET Core thực thi trên runtime của. NET Framework, nó sẽ gắn chặt với Windows và IIS. Do đó nó mất đi những lợi thế của. NET Core. Bù lại, nó được hưởng lợi thế từ thư viện. NET Framework .Mối quan hệ giữa ASP.NET Core với. NET Core và. NET Framework được minh họa như hình dưới đây .quan hệ giữa ASP.NET Core với .NET Core và .NET FrameworkCũng theo sơ đồ này, ASP.NET truyền thống cuội nguồn hoạt động giải trí trọn vẹn trên. NET Framework và gắn bó ngặt nghèo với Windows và IIS .

ASP.NET và ASP.NET Core

Các phần trên đã giúp bạn tưởng tượng ra vị trí và một số ít đặc thù quan trọng của ASP.NET Core. Chúng ta sẽ nói tiếp về một số ít điểm độc lạ nữa giữa ASP.NET và ASP.NET Core từ góc nhìn lập trình ứng dụng .Trong ASP.NET truyền thống lịch sử bạn hoàn toàn có thể kiến thiết xây dựng những ứng dụng web sử dụng một trong số những quy mô lập trình mà framework này phân phối như Web Forms, MVC, Web API, Web Pages. Các quy mô này hoàn toàn có thể xem như những framework riêng không liên quan gì đến nhau thiết kế xây dựng bên trên framework lớn ASP.NET.Trong ASP.NET Core không có sự phân loại như vậy nữa. Nói theo cách khác, những quy mô lập trình trong ASP.NET Core được thống nhất. Bạn hoàn toàn có thể lựa chọn tăng trưởng ứng dụng web theo quy mô MVC, Web API, Razor Pages. Tuy nhiên, những quy mô này không tách rời ( sử dụng những class / thư viện riêng không liên quan gì đến nhau ) như trong ASP.NET mà nằm trong một mạng lưới hệ thống thống nhất, sử dụng chung class và thư viện .Tất cả những ưu điểm quen thuộc của MVC, Web API hay Web Pages của ASP.NET được thừa kế trong những quy mô tương tự của ASP.NET Core .Bản thân những kỹ thuật lập trình của chúng trọn vẹn tựa như. Do đó, nếu bạn đã quen thuộc với ASP.NET, bạn rất thuận tiện tiếp cận với ASP.NET Core. Những khái niệm có sẵn trong ASP.NET như Router, Model-binding, Razor, v.v., xuất hiện rất đầy đủ trong ASP.NET Core .

Bạn hoàn toàn có thể viết những loại ứng dụng gì trong ASP.NET Core

ASP.NET Core được cho phép bạn viết gần như bất kể loại ứng nào có tương quan đến HTTP, như ứng dụng web HTML truyền thống lịch sử, REST API cho ứng dụng đơn trang ( Single Page Application, SPA ), dịch vụ gọi hàm từ xa ( Remote Procedure Call, RPC ) .các loại ứng dụng được asp net core hỗ trợ

Ứng dụng web với mã HTML do server sinh ra là loại ứng dụng cơ bản và truyền thống mà ASP.NET Core hỗ trợ. Để phát triển các loại ứng dụng này bạn có thể sử dụng mô hình lập trình MVC hoặc Razor Pages.

ASP.NET Core MVC là mô hình lập trình ứng dụng web tương tự như ASP.NET MVC quen thuộc. Các thành phần của ứng dụng được phân chia ra các thành phần tuân theo mẫu kiến trúc MVC (Model – View – Controller), tương tự như Ruby on Rails, Java Spring hoặc Django.

Razor Pages là mô hình đơn giản hóa của MVC, chỉ bao gồm thành phần V (View) viết bằng ngôn ngữ Razor – loại cấu trúc kết hợp HTML và C#. Bạn có thể hình dung Razor là một dạng ngôn ngữ tương tự PHP nhưng có cấu trúc của C#. Razor Pages tương tự như Web Pages của ASP.NET.

Ứng dụng web đơn trang (SPA) hiện rất phổ biến. Loại ứng dụng này sử dụng các thư viện/framework JavaScript cho thành phần client. Các framework phổ biến hàng đầu hiện nay bao gồm Angular, React. Các loại ứng dụng này thường yêu cầu dữ liệu ở dạng JSON hoặc XML từ các REST (REpresentational State Transfer) API trên server.

Trên ASP.NET Core bạn có thể dễ dàng xây dựng các REST API như vậy. Bạn cũng có thể hình dung REST API này bao gồm thành phần M (Model) và C (Controller) của MVC nhưng không có thành phần V (View). Thành phần View do bản thân ứng dụng SPA chạy trên trình duyệt đảm nhiệm.

Trên ASP.NET Core bạn cũng có thể sử dụng công nghệ phát triển ứng dụng SPA riêng mới nhất của Microsoft: Blazor. Hiện Blazor có hai mô hình, Blazor server và Blazor WebAssembly.

Gọi hàm từ xa (RPC) cũng là một mô hình sử dụng trong phát triển ứng dụng hướng dịch vụ (Service-Oriented Application). Trước đây WCF (Windows Communications Foundation) là công cụ chủ yếu phục vụ cho mục đích này. Tuy nhiên WCF đã dừng phát triển. Bạn có thể sử dụng ASP.NET Core thay thế cho mục đích này.

Nếu không muốn tự mình xây dựng mọi thứ từ đầu, bạn cũng có thể sử dụng một hệ quản trị nội dung (Content Management System, CMS) xây dựng trên ASP.NET Core như Orchard Core hoặc Piranha. Các CMS giúp bạn nhanh chóng xây dựng ra các website với các tính năng cơ bản. Bạn chỉ cần phát triển những gì mình cần mà không phải xây dựng mọi thứ từ đầu.

Lộ trình học ASP.NET Core

Ở trên bạn đã thấy ASP.NET Core tương hỗ tăng trưởng nhiều loại ứng dụng khác nhau với những quy mô lập trình riêng không liên quan gì đến nhau : Razor pages, MVC, Blazor, React / Angular, Web API, SignalR, gRPC. Sự phong phú này làm những người mới khởi đầu tiếp xúc với ASP.NET Core lúng túng không biết nên mở màn từ đâu .Nếu bạn có xuất phát điểm là PHP, ASP cổ xưa, ASP.NET Web Forms, hoặc ASP.NET Web Pages, bạn nên khởi đầu với Razor Pages. Sau đó, bạn hoàn toàn có thể liên tục với ASP.NET Core MVC. Đây cũng là lộ trình được Microsoft khuyến nghị nếu bạn là người mới học tăng trưởng ứng dụng web nói chung .Nếu bạn đã quen thuộc với ASP.NET MVC hoặc ASP.NET Web API, bạn nên mở màn với ASP.NET Core MVC vì chúng trọn vẹn tương đương và bạn sẽ rất nhanh gọn chớp lấy được .Khi đã học xong ASP.NET Core MVC, bạn nên làm quen với một hệ quản trị nội dung ( Content Management System, CMS ) nào đó. CMS sẽ giúp bạn rất nhiều nếu cần thiết kế xây dựng những ứng dụng nhanh. Một số CMS trên. NET Core thường dùng là Piranha và Orchard Core .Nếu muốn đi theo hướng tăng trưởng web client ( chương trình chạy trên trình duyệt ), bạn nên học tiếp SignalR và Blazor .

Kết luận

Bài học này chỉ mang tính chất giới thiệu chung để bạn có được hình dung đại thể về đặc điểm và vị trí của ASP.NET Core. Cụ thể, chúng ta đã điểm qua khái niệm và một số đặc điểm quan trọng của ASP.NET Core, mối quan hệ giữa ASP.NET Core với .NET Core, .NET Framework và ASP.NET truyền thống.

+ Nếu bạn thấy site hữu ích, trước khi rời đi hãy giúp đỡ site bằng một hành động nhỏ để site có thể phát triển và phục vụ bạn tốt hơn.
+ Nếu bạn thấy bài viết hữu ích, hãy giúp chia sẻ tới mọi người.
+ Nếu có thắc mắc hoặc cần trao đổi thêm, mời bạn viết trong phần thảo luận cuối trang.
Cảm ơn bạn!

Chúc bạn học tốt !