{"id":5271,"date":"2022-06-27T03:01:10","date_gmt":"2022-06-27T03:01:10","guid":{"rendered":"https:\/\/trithucmoi.net.vn\/?p=5271"},"modified":"2022-07-12T03:53:08","modified_gmt":"2022-07-12T03:53:08","slug":"gioi-thieu-asp-net-core","status":"publish","type":"post","link":"https:\/\/trithucmoi.net.vn\/index.php\/2022\/06\/27\/gioi-thieu-asp-net-core\/","title":{"rendered":"GI\u1edaI THI\u1ec6U ASP.NET Core"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\"><strong>1. <\/strong><strong>ASP.NET Core l\u00e0 g\u00ec?<\/strong><\/h2>\n\n\n\n<p>ASP.NET Core l\u00e0 g\u00ec? N\u00f3 l\u00e0 m\u1ed9t open-source m\u1edbi v\u00e0 framework \u0111a n\u1ec1n t\u1ea3ng (cross-platform) cho vi\u1ec7c x\u00e2y d\u1ef1ng nh\u1eefng \u1ee9ng d\u1ee5ng hi\u1ec7n t\u1ea1i d\u1ef1a tr\u00ean k\u1ebft n\u1ed1i \u0111\u00e1m m\u00e2y, gi\u1ed1ng nh\u01b0 web apps, IoT v\u00e0 backend cho mobile.<\/p>\n\n\n\n<p>\u1ee8ng d\u1ee5ng ASP.NET Core c\u00f3 th\u1ec3 ch\u1ea1y tr\u00ean .NET Core ho\u1eb7c tr\u00ean phi\u00ean b\u1ea3n \u0111\u1ea7y \u0111\u1ee7 c\u1ee7a .NET Framework. N\u00f3 \u0111\u01b0\u1ee3c thi\u1ebft k\u1ebf \u0111\u1ec3 cung c\u1ea5p v\u00e0 t\u1ed1i \u01b0u development framework cho nh\u1eefng d\u1ee5ng c\u00e1i m\u00e0 \u0111\u01b0\u1ee3c tri\u1ec3n khai tr\u00ean \u0111\u00e1m m\u00e2y (cloud) ho\u1eb7c ch\u1ea1y on-promise.<\/p>\n\n\n\n<p>N\u00f3 bao g\u1ed3m c\u00e1c th\u00e0nh ph\u1ea7n theo h\u01b0\u1edbng module nh\u1eb1m t\u1ed1i thi\u1ec3u t\u00e0i nguy\u00ean v\u00e0 chi ph\u00ed ph\u00e1t tri\u1ec3n, nh\u01b0 v\u1eady b\u1ea1n gi\u1eef l\u1ea1i \u0111\u01b0\u1ee3c s\u1ef1 m\u1ec1m d\u1ebbo trong vi\u1ec7c x\u00e2y d\u1ef1ng gi\u1ea3i ph\u00e1p c\u1ee7a b\u1ea1n. B\u1ea1n c\u00f3 th\u1ec3 ph\u00e1t tri\u1ec3n v\u00e0 ch\u1ea1y nh\u1eefng \u1ee9ng d\u1ee5ng ASP.NET Core \u0111a n\u1ec1n t\u1ea3ng tr\u00ean Windows, Mac v\u00e0 Linux.<\/p>\n\n\n\n<p>\u0110\u1ed3ng th\u1eddi n\u00f3 \u0111\u00e3 tr\u1edf th\u00e0nh m\u1ed9t m\u00e3 ngu\u1ed3n m\u1edf. \u0110\u00e2y l\u00e0 m\u1ed9t thay \u0111\u1ed5i r\u1ea5t l\u1edbn v\u00e0 quan tr\u1ecdng nh\u1ea5t c\u1ee7a ASP.NET Core. \u0110i\u1ec1u m\u00e0 tr\u01b0\u1edbc \u0111\u00e2y kh\u00f3 c\u00f3 m\u1ed9t l\u1eadp tr\u00ecnh vi\u00ean n\u00e0o c\u00f3 th\u1ec3 ngh\u0129 \u0111\u1ebfn. C\u00f3 l\u1ebd \u0111\u00f3 c\u0169ng l\u00e0 m\u1ed9t xu th\u1ebf m\u00e0 c\u00e1c ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh hi\u1ec7n nay \u0111ang h\u01b0\u1edbng t\u1edbi.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><a><\/a><strong>2. <\/strong><strong>ASP.NET Core ra \u0111\u1eddi trong ho\u00e0n c\u1ea3nh n\u00e0o?<\/strong><\/h2>\n\n\n\n<p>B\u1ea3n ph\u00e1t h\u00e0nh \u0111\u1ea7u ti\u00ean c\u1ee7a ASP.NET \u0111\u00e3 xu\u1ea5t hi\u1ec7n c\u00e1ch \u0111\u00e2y 15 n\u0103m tr\u01b0\u1edbc, n\u00f3 l\u00e0 m\u1ed9t ph\u1ea7n c\u1ee7a .NET Framework. T\u1eeb \u0111\u00f3, h\u00e0ng tri\u1ec7u l\u1eadp tr\u00ecnh vi\u00ean \u0111\u00e3 s\u1eed d\u1ee5ng n\u00f3 \u0111\u1ec3 x\u00e2y d\u1ef1ng nh\u1eefng \u1ee9ng d\u1ee5ng web tuy\u1ec7t v\u1eddi, v\u00e0 trong nh\u1eefng n\u0103m \u0111\u00f3 Microsoft \u0111\u00e3 ph\u00e1t tri\u1ec3n th\u00eam nhi\u1ec1u t\u00ednh n\u0103ng m\u1edbi.<\/p>\n\n\n\n<p>ASP.NET Core c\u00f3 m\u1ed9t s\u1ed1 thay \u0111\u1ed5i ki\u1ebfn tr\u00fac l\u1edbn, \u0111\u00f3 l\u00e0 k\u1ebft qu\u1ea3 c\u1ee7a vi\u1ec7c h\u1ecdc h\u1ecfi r\u1ea5t nhi\u1ec1u t\u1eeb c\u00e1c framework module h\u00f3a kh\u00e1c. ASP.NET Core kh\u00f4ng c\u00f2n d\u1ef1a tr\u00ean System.Web.dll n\u1eefa. N\u00f3 \u0111\u01b0\u1ee3c d\u1ef1a tr\u00ean m\u1ed9t t\u1eadp h\u1ee3p c\u00e1c g\u00f3i, c\u00e1c module hay c\u0169ng \u0111\u01b0\u1ee3c g\u1ecdi l\u00e0 c\u00e1c Nuget packages. (\u0110i\u1ec1u n\u00e0y cho ph\u00e9p b\u1ea1n t\u1ed1i \u01b0u \u1ee9ng d\u1ee5ng c\u1ee7a b\u1ea1n \u0111\u1ec3 ch\u1ec9 bao g\u1ed3m nh\u1eefng packages n\u00e0o c\u1ea7n thi\u1ebft. L\u1ee3i \u00edch c\u1ee7a n\u00f3 l\u00e0 gi\u00fap cho \u1ee9ng d\u1ee5ng nh\u1ecf h\u01a1n, b\u1ea3o m\u1eadt ch\u1eb7t ch\u1ebd h\u01a1n, gi\u1ea3m s\u1ef1 ph\u1ee9c t\u1ea1p, t\u1ed1i \u01b0u hi\u1ec7u su\u1ea5t ho\u1ea1t \u0111\u1ed9ng v\u00e0 gi\u1ea3m chi ph\u00ed, th\u1eddi gian cho vi\u1ec7c ph\u00e1t tri\u1ec3n.)<\/p>\n\n\n\n<p>\u01afu \u0111i\u1ec3m v\u00e0 c\u1ea3i ti\u1ebfn c\u1ee7a ASP.NET Core:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>H\u1ee3p nh\u1ea5t vi\u1ec7c x\u00e2y d\u1ef1ng web UI v\u00e0 web APIs<\/li><li>T\u00edch h\u1ee3p nh\u1eefng client-side frameworks hi\u1ec7n \u0111\u1ea1i v\u00e0 nh\u1eefng lu\u1ed3ng ph\u00e1t tri\u1ec3n<\/li><li>H\u1ec7 th\u1ed1ng c\u1ea5u h\u00ecnh d\u1ef1a tr\u00ean m\u00f4i tr\u01b0\u1eddng \u0111\u00e1m m\u00e2y th\u1eadt s\u1ef1<\/li><li>Dependency injection \u0111\u01b0\u1ee3c x\u00e2y d\u1ef1ng s\u1eb5n<\/li><li>HTTP request \u0111\u01b0\u1ee3c t\u1ed1i \u01b0u nh\u1eb9 h\u01a1n<\/li><li>C\u00f3 th\u1ec3 host tr\u00ean IIS ho\u1eb7c self-host trong process c\u1ee7a ri\u00eang b\u1ea1n<\/li><li>\u0110\u01b0\u1ee3c x\u00e2y d\u1ef1ng tr\u00ean .NET Core, h\u1ed7 tr\u1ee3 th\u1ef1c s\u1ef1 app versioning<\/li><li>Chuy\u1ec3n c\u00e1c th\u1ef1c th\u1ec3, th\u00e0nh ph\u1ea7n, module nh\u01b0 nh\u1eefng NuGet packages<\/li><li>Nh\u1eefng c\u00f4ng c\u1ee5 m\u1edbi \u0111\u1ec3 \u0111\u01a1n gi\u1ea3n h\u00f3a qu\u00e1 tr\u00ecnh ph\u00e1t tri\u1ec3n web hi\u1ec7n \u0111\u1ea1i<\/li><li>X\u00e2y d\u1ef1ng v\u00e0 ch\u1ea1y \u0111a n\u1ec1n t\u1ea3ng(Windows, Mac v\u00e0 Linux)<\/li><li>M\u00e3 ngu\u1ed3n m\u1edf v\u00e0 t\u1eadp trung v\u00e0o c\u1ed9ng \u0111\u1ed3ng<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><a><\/a><strong>3. <\/strong><strong>ASP.NET Core v\u00e0 .NET Framework<\/strong><\/h2>\n\n\n\n<p>M\u1ed9t \u0111i\u1ec1u khi\u1ebfn r\u1ea5t nhi\u1ec1u ng\u01b0\u1eddi nh\u1ea7m l\u1eabn l\u00e0 m\u1ed1i quan h\u1ec7 gi\u1eefa ASP.NET Core v\u00e0 .NET Framework: ASP.NET Core c\u00f3 th\u1ec3 ho\u1ea1t \u0111\u1ed9ng tr\u00ean .NET Framework (gi\u1ed1ng nh\u01b0 ASP.NET c\u0169).<\/p>\n\n\n\n<p>\u0110\u1ec3 hi\u1ec3u v\u1ea5n \u0111\u1ec1 n\u00e0y b\u1ea1n c\u1ea7n h\u00ecnh dung .NET Framework (v\u00e0 c\u1ea3 .NET Core) theo hai kh\u00eda c\u1ea1nh: (1) h\u1ec7 th\u1ed1ng th\u01b0 vi\u1ec7n API h\u1ed7 tr\u1ee3 ph\u00e1t tri\u1ec3n \u1ee9ng d\u1ee5ng; (2) runtime d\u00e0nh cho th\u1ef1c thi \u1ee9ng d\u1ee5ng.<\/p>\n\n\n\n<p>ASP.NET Core ch\u1ee9a h\u1ec7 th\u1ed1ng API c\u1ee7a ri\u00eang n\u00f3. H\u1ec7 th\u1ed1ng API n\u00e0y s\u1eed d\u1ee5ng c\u00e1c API c\u01a1 b\u1ea3n c\u1ee7a .NET. Th\u00eam v\u00e0o \u0111\u00f3, .NET Core v\u00e0 .NET Framework c\u00f3 chung h\u1ec7 th\u1ed1ng API c\u01a1 b\u1ea3n.<\/p>\n\n\n\n<p>Runtime c\u00f3 th\u1ec3 h\u00ecnh dung nh\u01b0 ch\u01b0\u01a1ng tr\u00ecnh m\u00e1y \u1ea3o s\u1ebd n\u1ea1p \u1ee9ng d\u1ee5ng v\u00e0o \u0111\u1ec3 th\u1ef1c thi. \u1ee8ng d\u1ee5ng v\u00e0 t\u1ea5t c\u1ea3 c\u00e1c th\u01b0 vi\u1ec7n c\u1ee7a c\u1ea3 .NET Core v\u00e0 .NET Framework \u0111\u1ec1u n\u1eb1m \u1edf d\u1ea1ng m\u00e3 trung gian IL (Intermediate Language).<\/p>\n\n\n\n<p>Hai y\u1ebfu t\u1ed1 tr\u00ean cho ph\u00e9p ch\u01b0\u01a1ng tr\u00ecnh vi\u1ebft b\u1eb1ng ASP.NET Core c\u00f3 th\u1ec3 ho\u1ea1t \u0111\u1ed9ng tr\u00ean runtime (m\u00e1y \u1ea3o) c\u1ee7a .NET Framework. \u1ede chi\u1ec1u ng\u01b0\u1ee3c l\u1ea1i, ASP.NET truy\u1ec1n th\u1ed1ng kh\u00f4ng th\u1ec3 ho\u1ea1t \u0111\u1ed9ng tr\u00ean .NET Core do n\u00f3 ph\u1ee5 thu\u1ed9c v\u00e0o System.Web.dll c\u1ee7a .NET Framework, v\u1ed1n kh\u00f4ng c\u00f3 trong .NET Core.<\/p>\n\n\n\n<p>ASP.NET Core 2.0 t\u1edbi 2.2 c\u00f3 th\u1ec3 ch\u1ea1y tr\u00ean .NET Framework 4.6.1 (v\u00e0 c\u00e1c phi\u00ean b\u1ea3n cao h\u01a1n), \u0111\u1ed3ng th\u1eddi c\u00f3 th\u1ec3 ch\u1ea1y tr\u00ean .NET Core 2.0 (v\u00e0 c\u00e1c b\u1ea3n cao h\u01a1n). Tuy nhi\u00ean ASP.NET Core 3.0 ch\u1ec9 ch\u1ea1y tr\u00ean .NET Core 3.0.<\/p>\n\n\n\n<p>Khi ch\u01b0\u01a1ng tr\u00ecnh ASP.NET Core th\u1ef1c thi tr\u00ean runtime c\u1ee7a .NET Framework, n\u00f3 s\u1ebd g\u1eafn ch\u1eb7t v\u1edbi Windows v\u00e0 IIS. Do \u0111\u00f3 n\u00f3 m\u1ea5t \u0111i nh\u1eefng \u01b0u th\u1ebf c\u1ee7a .NET Core. B\u00f9 l\u1ea1i, n\u00f3 \u0111\u01b0\u1ee3c h\u01b0\u1edfng l\u1ee3i th\u1ebf t\u1eeb th\u01b0 vi\u1ec7n .NET Framework.<\/p>\n\n\n\n<p>M\u1ed1i quan h\u1ec7 gi\u1eefa ASP.NET Core v\u1edbi .NET Core v\u00e0 .NET Framework \u0111\u01b0\u1ee3c minh h\u1ecda nh\u01b0 h\u00ecnh d\u01b0\u1edbi \u0111\u00e2y.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>1. ASP.NET Core l\u00e0 g\u00ec? ASP.NET Core l\u00e0 g\u00ec? N\u00f3 l\u00e0 m\u1ed9t open-source m\u1edbi v\u00e0 framework \u0111a n\u1ec1n t\u1ea3ng (cross-platform) cho vi\u1ec7c x\u00e2y d\u1ef1ng nh\u1eefng \u1ee9ng d\u1ee5ng hi\u1ec7n t\u1ea1i d\u1ef1a tr\u00ean k\u1ebft n\u1ed1i \u0111\u00e1m m\u00e2y, gi\u1ed1ng nh\u01b0 web apps, IoT v\u00e0 backend cho mobile. \u1ee8ng d\u1ee5ng ASP.NET Core c\u00f3 th\u1ec3 ch\u1ea1y tr\u00ean .NET Core ho\u1eb7c [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":5908,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-5271","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cong-nghe-thong-tn"],"_links":{"self":[{"href":"https:\/\/trithucmoi.net.vn\/index.php\/wp-json\/wp\/v2\/posts\/5271","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/trithucmoi.net.vn\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/trithucmoi.net.vn\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/trithucmoi.net.vn\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/trithucmoi.net.vn\/index.php\/wp-json\/wp\/v2\/comments?post=5271"}],"version-history":[{"count":2,"href":"https:\/\/trithucmoi.net.vn\/index.php\/wp-json\/wp\/v2\/posts\/5271\/revisions"}],"predecessor-version":[{"id":5912,"href":"https:\/\/trithucmoi.net.vn\/index.php\/wp-json\/wp\/v2\/posts\/5271\/revisions\/5912"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/trithucmoi.net.vn\/index.php\/wp-json\/wp\/v2\/media\/5908"}],"wp:attachment":[{"href":"https:\/\/trithucmoi.net.vn\/index.php\/wp-json\/wp\/v2\/media?parent=5271"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/trithucmoi.net.vn\/index.php\/wp-json\/wp\/v2\/categories?post=5271"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/trithucmoi.net.vn\/index.php\/wp-json\/wp\/v2\/tags?post=5271"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}