{"id":28363,"date":"2021-07-27T20:18:44","date_gmt":"2021-07-27T13:18:44","guid":{"rendered":"https:\/\/wiki.tino.org\/staging\/?p=28363"},"modified":"2021-11-22T16:33:15","modified_gmt":"2021-11-22T09:33:15","slug":"aspnet-core-la-gi","status":"publish","type":"post","link":"https:\/\/tino.vn\/blog\/aspnet-core-la-gi\/","title":{"rendered":"ASP.NET Core l\u00e0 g\u00ec? Nh\u1eefng c\u1ea3i ti\u1ebfn v\u01b0\u1ee3t tr\u1ed9i c\u1ee7a ASP.NET Core"},"content":{"rendered":"\n<p><strong>H\u1ec7 sinh th\u00e1i .NET trong l\u1eadp tr\u00ecnh web v\u00f4 c\u00f9ng \u0111a d\u1ea1ng v\u00e0 ch\u1ea5t l\u01b0\u1ee3ng. Trong \u0111\u00f3, ASP.NET Core \u0111\u01b0\u1ee3c bi\u1ebft \u0111\u1ebfn l\u00e0 Framework phi\u00ean b\u1ea3n m\u1edbi c\u1ee7a .NET v\u1edbi \u01b0u \u0111i\u1ec3m nhanh ch\u00f3ng, linh ho\u1ea1t tr\u00ean \u0111a n\u1ec1n t\u1ea3ng v\u00e0 \u1ee9ng d\u1ee5ng v\u1edbi c\u00e1c thi\u1ebft b\u1ecb hi\u1ec7n \u0111\u1ea1i. V\u1eady ASP.NET Core l\u00e0 g\u00ec? C\u00e2u tr\u1ea3 l\u1eddi s\u1ebd \u0111\u01b0\u1ee3c Tino Group b\u1eadt m\u00ed trong b\u00e0i vi\u1ebft d\u01b0\u1edbi \u0111\u00e2y. <\/strong> <a id=\"post-28363-_8fb5k6qz2kzr\"><\/a><\/p>\n\n\n\n<h2 id=\"T\u1ed5ng_quan_v\u1ec1_ASP.NET_Core\"><a id=\"post-28363-_a2aihjsh7v5o\"><\/a><strong>T\u1ed5ng quan v\u1ec1 ASP.NET Core<\/strong><\/h2>\n\n\n\n<h3 id=\"ASP.NET_Core_l\u00e0_g\u00ec?_\"><a id=\"post-28363-_mppafa1h5fo6\"><\/a><strong>ASP.NET Core l\u00e0 g\u00ec? <\/strong><\/h3>\n\n\n\n<p>   ASP.NET Core \u0111\u01b0\u1ee3c xem l\u00e0 t\u1eadp h\u1ee3p c\u00e1c th\u01b0 vi\u1ec7n chu\u1ea9n nh\u01b0 m\u1ed9t <a href=\"https:\/\/tino.vn\/blog\/framework-la-gi\/\" target=\"_blank\" rel=\"noreferrer noopener\">Framework <\/a>s\u1eed d\u1ee5ng \u0111\u1ec3 x\u00e2y d\u1ef1ng c\u00e1c \u1ee9ng d\u1ee5ng web. \u0110\u00e2y kh\u00f4ng ph\u1ea3i l\u00e0 phi\u00ean b\u1ea3n ti\u1ebfp n\u1ed1i c\u1ee7a ASP.NET, ASP.NET Core l\u00e0 c\u00e1i t\u00ean \u0111\u01b0\u1ee3c x\u00e2y d\u1ef1ng v\u00e0 ph\u00e1t tri\u1ec3n m\u1edbi m\u1ebb l\u1ea1i t\u1eeb \u0111\u1ea7u \u0111\u1ec3 tr\u1edf n\u00ean linh ho\u1ea1t, nhanh ch\u00f3ng v\u00e0 ch\u1ea1y tr\u00ean nhi\u1ec1u n\u1ec1n t\u1ea3ng kh\u00e1c nhau. ASP.NET Core c\u00f3 s\u1ef1 thay \u0111\u1ed5i l\u1edbn v\u1ec1 ki\u1ebfn tr\u00fac, mang \u0111\u1ebfn k\u1ebft qu\u1ea3 ng\u1eafn g\u1ecdn, ph\u00e2n chia Module t\u1ed1t h\u01a1n r\u1ea5t nhi\u1ec1u.  <\/p>\n\n\n\n<p>   \u0110\u1ecbnh ngh\u0129a \u201cASP.NET Core\u201d theo Wikipedia nh\u01b0 sau: \u201cASP.NET Core l\u00e0 m\u1ed9t khu\u00f4n kh\u1ed5 web <a href=\"https:\/\/tino.vn\/blog\/source-code-la-gi\/\" target=\"_blank\" rel=\"noreferrer noopener\">m\u00e3 ngu\u1ed3n <\/a> m\u1edf mi\u1ec5n ph\u00ed \u0111\u01b0\u1ee3c k\u1ebf th\u1eeba t\u1eeb ASP.NET v\u00e0 ph\u00e1t tri\u1ec3n b\u1edfi Microsoft. \u0110\u00e2y l\u00e0 m\u1ed9t m\u00f4-\u0111un ch\u1ea1y tr\u00ean c\u1ea3 .NET Framework \u0111\u1ea7y \u0111\u1ee7 v\u00e0 .NET Core \u0111a n\u1ec1n t\u1ea3ng. Tuy nhi\u00ean, ASP.NET Core phi\u00ean b\u1ea3n 3 ch\u1ec9 c\u00f3 hi\u1ec7u l\u1ef1c tr\u00ean .NET Core v\u00e0 kh\u00f4ng c\u00f3 t\u00ednh n\u0103ng h\u1ed7 tr\u1ee3 .NET Framework\u201d.  <\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" width=\"700\" height=\"375\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-288.jpeg\" alt=\"aspnet-core-la-gi\" class=\"wp-image-28365\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-288.jpeg 700w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-288-300x161.jpeg 300w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/figure><\/div>\n\n\n\n<h3 id=\"\"><a id=\"post-28363-_y9g7441svt96\"><\/a><\/h3>\n\n\n\n<h3 id=\"Ho\u00e0n_c\u1ea3nh_ra_\u0111\u1eddi_c\u1ee7a_ASP.NET_Core\"><a id=\"post-28363-_mgbd0fplutgt\"><\/a><strong>Ho\u00e0n c\u1ea3nh ra \u0111\u1eddi c\u1ee7a ASP.NET Core<\/strong><\/h3>\n\n\n\n<p>\n  V\u00e0o kho\u1ea3ng 15 n\u0103m tr\u01b0\u1edbc, b\u1ea3n ph\u00e1t h\u00e0nh \u0111\u1ea7u ti\u00ean c\u1ee7a ASP.NET \u0111\u01b0\u1ee3c ra \u0111\u1eddi v\u00e0 tr\u1edf th\u00e0nh m\u1ed9t ph\u1ea7n c\u1ee7a .NET Framework. K\u1ec3 t\u1eeb \u0111\u00f3, h\u00e0ng tri\u1ec7u l\u1eadp tr\u00ecnh vi\u00ean \u01b0a chu\u1ed9ng v\u00e0 s\u1eed d\u1ee5ng n\u00f3 \u0111\u1ec3 x\u00e2y d\u1ef1ng c\u00e1c \u1ee9ng d\u1ee5ng web tuy\u1ec7t v\u1eddi v\u00e0 Microsoft trong nh\u1eefng n\u0103m \u0111\u00f3 c\u0169ng \u0111\u00e3 ph\u00e1t tri\u1ec3n, c\u1ea3i ti\u1ebfn th\u00eam nhi\u1ec1u t\u00ednh n\u0103ng m\u1edbi. \n<\/p>\n\n\n\n<p>\n  Sau nhi\u1ec1u n\u0103m s\u1eed d\u1ee5ng ASP.NET \u0111\u1ec3 ph\u00e1t tri\u1ec3n web, Framework c\u00f3 nh\u1eefng thay \u0111\u1ed5i ti\u1ebfn ho\u00e1 \u0111\u1ec1u \u0111\u1eb7n v\u00e0 mang \u0111\u1ebfn cho ch\u00fang ta m\u1ed9t h\u1eadu du\u1ec7 tuy\u1ec7t h\u1ea3o, m\u1edbi m\u1ebb l\u00e0 ASP.NET Core.\n<\/p>\n\n\n\n<p>\n  ASP.NET Core \u0111\u01b0\u1ee3c bi\u1ebft \u0111\u1ebfn v\u1edbi m\u1ed9t s\u1ed1 thay \u0111\u1ed5i m\u1edbi m\u1ebb l\u1edbn v\u1ec1 ki\u1ebfn tr\u00fac, \u0111\u00f3 l\u00e0 k\u1ebft qu\u1ea3 t\u1eeb vi\u1ec7c h\u1ecdc h\u1ecfi r\u1ea5t nhi\u1ec1u t\u1eeb c\u00e1c Framework Module h\u00f3a kh\u00e1c. Hi\u1ec7n nay, ASP.NET Core kh\u00f4ng c\u00f2n ph\u1ee5 thu\u1ed9c c\u1ed1 \u0111\u1ecbnh v\u00e0o System.Web.dll n\u1eefa m\u00e0 t\u1eadp h\u1ee3p c\u00e1c g\u00f3i, c\u00e1c module hay c\u00f2n \u0111\u01b0\u1ee3c g\u1ecdi l\u00e0 c\u00e1c Nuget Packages. \n<\/p>\n\n\n\n<h3 id=\"\u0110\u1eb7c_\u0111i\u1ec3m_c\u1ee7a_ASP.NET_Core\"><a id=\"post-28363-_jjra18s7knkh\"><\/a><strong>\u0110\u1eb7c \u0111i\u1ec3m c\u1ee7a ASP.NET Core<\/strong><\/h3>\n\n\n\n<p>\n  C\u00f3 th\u1ec3 th\u1ea5y, ASP.NET Framework t\u1ed3n t\u1ea1i b\u1ec1n b\u1ec9 tr\u00ean h\u1ec7 th\u1ed1ng Windows t\u1eeb l\u00e2u th\u00ec ASP.NET Core m\u1edbi b\u1eaft \u0111\u1ea7u ra \u0111\u1eddi \u0111\u1ec3 h\u1ed7 tr\u1ee3 c\u00e1c t\u00ednh n\u0103ng cho .NET Framework nh\u01b0 Windows Forms, WPF. ASP.NET Core c\u00f3 th\u1ec3 ho\u1ea1t \u0111\u1ed9ng tr\u00ean b\u1ea5t k\u1ef3 n\u1ec1n t\u1ea3ng n\u00e0o m\u00e0 \u0111\u1ea3m b\u1ea3o c\u00f3 th\u1ec3 kh\u1eafc ph\u1ee5c \u0111\u01b0\u1ee3c nh\u1eefng h\u1ea1n ch\u1ebf c\u1ee7a .NET Framework &#8211; cha\u1ef5 duy nh\u1ea5t tr\u00ean n\u1ec1n t\u1ea3ng Windows. ASP.NET Core \u0111\u01b0\u1ee3c thi\u1ebft k\u1ebf \u0111\u1ec3 t\u1ed1i \u01b0u v\u00e0 cung c\u1ea5p t\u1ed1t cho c\u00e1c Development Framework tri\u1ec3n khai tr\u00ean \u0111\u00e1m m\u00e2y ho\u1eb7c ch\u1ea1y on-promise. \n<\/p>\n\n\n\n<p>\n  V\u1ec1 c\u01a1 b\u1ea3n, ASP.NET Core \u0111\u01b0\u1ee3c t\u1ea1o th\u00e0nh t\u1eeb m\u1ed9t th\u01b0 vi\u1ec7n b\u1ea3n Net. .NET Standard 2.0 c\u00f3 th\u1ec3 ch\u1ea1y \u1edf b\u1ea5t c\u01a1 n\u00e0o m\u00e0 n\u00f3 c\u00f3 th\u1ec3 h\u1ed7 tr\u1ee3 \u0111\u01b0\u1ee3c. \u0110\u1ed3ng th\u1eddi, ASP.NET Core tr\u1edf th\u00e0nh m\u1ed9t m\u00e3 ngu\u1ed3n m\u1edf. \u0110\u00e2y l\u00e0 s\u1ef1 thay \u0111\u1ed5i l\u1edbn v\u00e0 v\u00f4 c\u00f9ng quan tr\u1ecdng m\u00e0 tr\u01b0\u1edbc \u0111\u00e2y kh\u00f3 c\u00f3 l\u1eadp tr\u00ecnh vi\u00ean n\u00e0o ngh\u0129 \u0111\u1ebfn. Ch\u00ednh v\u00ec th\u1ebf, ASP.NET Core thu h\u00fat \u0111\u00f4ng \u0111\u1ea3o c\u00e1c l\u1eadp tr\u00ecnh vi\u00ean s\u1eed d\u1ee5ng \u0111\u1ec3 x\u00e2y d\u1ef1ng c\u00e1c trang web. \n<\/p>\n\n\n\n<p>\n  ASP.NET Core l\u00e0 m\u1ed9t phi\u00ean b\u1ea3n thi\u1ebft k\u1ebf c\u1ee7a ASP.NET 4.x c\u00f3 s\u1ef1 thay \u0111\u1ed5i ki\u1ebfn tr\u00fac gi\u00fap Framework nh\u1eb9 nh\u00e0ng h\u01a1n v\u00e0 k\u1ebft h\u1ee3p c\u1ea3 t\u00ednh Module nhi\u1ec1u h\u01a1n n\u1eefa. V\u1edbi m\u1ed9t n\u1ec1n t\u1ea3ng c\u00f3 hi\u1ec7u su\u1ea5t v\u00e0 t\u00ednh t\u01b0\u01a1ng th\u00edch hi\u1ec7u qu\u1ea3, c\u00e1c l\u1eadp tr\u00ecnh vi\u00ean v\u1eabn trung th\u00e0nh x\u00e2y d\u1ef1ng c\u00e1c web b\u1eb1ng ASP.NET Core. \n<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" width=\"700\" height=\"375\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1295.png\" alt=\"aspnet-core-la-gi\" class=\"wp-image-28366\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1295.png 700w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1295-300x161.png 300w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/figure><\/div>\n\n\n\n<h2 id=\"\"><a id=\"post-28363-_rloqu2tmz90k\"><\/a><\/h2>\n\n\n\n<h2 id=\"Nh\u1eefng_\u01b0u_\u0111i\u1ec3m_c\u1ee7a_ASP.NET_Core\"><a id=\"post-28363-_c8jgrincum1b\"><\/a><strong>Nh\u1eefng \u01b0u \u0111i\u1ec3m c\u1ee7a ASP.NET Core<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>ASP.NET Core \u0111\u01b0\u1ee3c thay \u0111\u1ed5i m\u1ed9t s\u1ed1 ki\u1ebfn tr\u00fac n\u00ean d\u1eabn \u0111\u1ebfn Modular Framework nh\u1ecf h\u01a1n.    <\/li><li>ASP.NET Core kh\u00f4ng c\u00f2n ph\u1ee5 thu\u1ed9c v\u00e0o n\u1ec1n t\u1ea3ng system.web.dll, Framework n\u00e0y d\u1ef1a tr\u00ean m\u1ed9t t\u1eadp h\u1ee3p nhi\u1ec1u y\u1ebfu t\u1ed1 c\u1ee7a Nuget Packages.    <\/li><li>B\u1ea1n c\u00f3 th\u1ec3 t\u1ed1i \u01b0u \u1ee9ng d\u1ee5ng c\u1ee7a m\u00ecnh d\u1ec5 d\u00e0ng th\u00f4ng qua nh\u1eefng Nuget Packages c\u1ea7n thi\u1ebft.    <\/li><li>Nh\u1eefng \u1ee9ng d\u1ee5ng web \u0111\u01b0\u1ee3c thi\u1ebft k\u1ebf tr\u00ean n\u1ec1n t\u1ea3ng ASP.NET Core s\u1ebd \u00edt ti\u00eau hao dung l\u01b0\u1ee3ng b\u1ed9 nh\u1edb, b\u1ea3o m\u1eadt ch\u1eb7t ch\u1ebd, t\u1ed1c \u0111\u1ed9 th\u1ef1c thi nhanh, hi\u1ec7u n\u0103ng ho\u1ea1t \u0111\u1ed9ng t\u1ed1t v\u00e0 \u1ed5n \u0111\u1ecbnh.    <\/li><li>ASP.NET Core gi\u00fap gi\u1ea3m d\u1ecbch v\u1ee5, d\u1ec5 b\u1ea3o tr\u00ec \u1ee9ng d\u1ee5ng v\u00e0 ti\u1ebft ki\u1ec7m chi ph\u00ed.     <\/li><\/ul>\n\n\n\n<h3 id=\"M\u1ed9t_s\u1ed1_c\u1ea3i_ti\u1ebfn_n\u1ed5i_b\u1eadt_c\u1ee7a_ASP.NET_Core\"><a id=\"post-28363-_l749n4s32h2y\"><\/a><strong>M\u1ed9t s\u1ed1 c\u1ea3i ti\u1ebfn n\u1ed5i b\u1eadt c\u1ee7a ASP.NET Core<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>C\u00e1c \u1ee9ng d\u1ee5ng ASP.NET Core \u0111\u01b0\u1ee3c x\u00e2y d\u1ef1ng v\u00e0 kh\u1edfi t\u1ea1o \u1edf \u0111a d\u1ea1ng c\u00e1c n\u1ec1n t\u1ea3ng nh\u01b0 Windows, Mac v\u00e0 Linux.    <\/li><li>\u0110\u01b0\u1ee3c ph\u00e1t tri\u1ec3n t\u1eeb .NET Core, ASP.NET Core h\u1ed7 tr\u1ee3 ch\u1ea5t l\u01b0\u1ee3ng App Vesioning.    <\/li><li>Mang \u0111\u1ebfn nh\u1eefng c\u00f4ng c\u1ee5 v\u00e0 h\u00e0ng lo\u1ea1t t\u00ednh n\u0103ng hi\u1ec7n \u0111\u1ea1i, \u0111\u01a1n gi\u1ea3n h\u00f3a quy tr\u00ecnh ph\u00e1t tri\u1ec3n web.   <\/li><li>T\u01b0\u01a1ng th\u00edch v\u1edbi h\u1ec7 th\u1ed1ng x\u00e2y d\u1ef1ng web UI v\u00e0 web APIs.   <\/li><li>C\u00f3 th\u1ec3 t\u00edch h\u1ee3p nh\u1eefng client &#8211; side Frameworks hi\u1ec7n \u0111\u1ea1i v\u00e0 nh\u1eefng lu\u1ed3ng ph\u00e1t tri\u1ec3n.    <\/li><li>C\u1ea5u h\u00ecnh d\u1ef1a tr\u00ean m\u00f4 h\u00ecnh \u0111\u00e1m m\u00e2y c\u00f3 s\u1eb5n.    <\/li><li>Dependency Injection (DI) \u0111\u01b0\u1ee3c x\u00e2y d\u1ef1ng s\u1eb5n.    <\/li><li>\u0110a d\u1ea1ng c\u1ea5u h\u00ecnh, th\u00e2n thi\u1ec7n v\u1edbi nhi\u1ec1u m\u00f4i tr\u01b0\u1eddng.   <\/li><li>C\u00f3 t\u00ednh n\u0103ng host tr\u00ean IIS ho\u1eb7c self-host trong Process c\u1ee7a ri\u00eang m\u00ecnh.    <\/li><li>Chuy\u1ec3n th\u1ef1c th\u1ec3, c\u00e1c th\u00e0nh ph\u1ea7n module, d\u00f9ng chung to\u00e0n b\u1ed9 Nuget Package.    <\/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<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" width=\"700\" height=\"375\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-289.jpeg\" alt=\"aspnet-core-la-gi\" class=\"wp-image-28367\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-289.jpeg 700w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-289-300x161.jpeg 300w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/figure><\/div>\n\n\n\n<h2 id=\"Ph\u00e1t_tri\u1ec3n_ASP.NET_Core_tr\u00ean_client_&#8211;_side\"><a id=\"post-28363-_nhpyhnysyt7j\"><\/a><strong>Ph\u00e1t tri\u1ec3n ASP.NET Core tr\u00ean client &#8211; side<\/strong><\/h2>\n\n\n\n<p>\n  ASP.NET Core t\u1ef1 tin l\u00e0 \u0111\u1ea1i di\u1ec7n \u0111\u1eb3ng c\u1ea5p trong l\u1eadp tr\u00ecnh web, h\u1ed7 tr\u1ee3 c\u00e1c l\u1eadp tr\u00ecnh vi\u00ean c\u00f3 th\u1ec3 thi\u1ebft l\u1eadp c\u00e1c \u1ee9ng d\u1ee5ng chuy\u00ean nghi\u1ec7p, nhanh g\u1ecdn. V\u1edbi thi\u1ebft k\u1ebf t\u00edch h\u1ee3p li\u00ean t\u1ee5c c\u00f9ng nhi\u1ec1u client &#8211; side Farework, ASP.NET Core c\u00f3 th\u1ec3 ph\u00e1t tri\u1ec3n tr\u00ean client &#8211; side v\u1edbi c\u00e1c y\u1ebfu t\u1ed1 l\u00e0: Angular JS, KnockoutJS v\u00e0 Bootstrap. \n<\/p>\n\n\n\n<h3 id=\"Angular_JS\"><a id=\"post-28363-_6kbv63fkpq5j\"><\/a><strong>Angular JS<\/strong><\/h3>\n\n\n\n<p>\n  \u0110\u00e2y l\u00e0 m\u1ed9t m\u00e3 ngu\u1ed3n m\u1edf thu\u1ed9c web Framework \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng nhi\u1ec1u nh\u1ea5t trong x\u00e2y d\u1ef1ng \u1ee9ng d\u1ee5ng web. Ph\u00e1t tri\u1ec3n v\u00e0o n\u0103m 2009 v\u00e0 \u0111\u01b0\u1ee3c duy tr\u00ec b\u1edfi Google, ra m\u1eaft phi\u00ean b\u1ea3n 2.0. \n<\/p>\n\n\n\n<p>\n  Angular JS l\u00e0 m\u1ed9t Framework c\u00f3 c\u1ea5u tr\u00fac \u1ee9ng d\u1ee5ng web \u0111\u1ed9ng, cho ph\u00e9p ng\u01b0\u1eddi l\u1eadp tr\u00ecnh s\u1eed d\u1ee5ng HTML nh\u01b0 l\u00e0 ng\u00f4n ng\u1eef m\u1eabu v\u00e0 c\u00f3 th\u1ec3 m\u1edf r\u1ed9ng c\u00fa ph\u00e1p \u0111\u1ec3 di\u1ec5n \u0111\u1ea1t c\u00e1c th\u00e0nh ph\u1ea7n \u1ee9ng d\u1ee5ng c\u1ee7a b\u1ea1n m\u1ed9t c\u00e1ch r\u00f5 r\u00e0ng, hi\u1ec7u qu\u1ea3 nh\u1ea5t. \n<\/p>\n\n\n\n<p>\n  T\u00ednh n\u0103ng n\u1ed5i b\u1eadt v\u00e0 \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng nhi\u1ec1u c\u1ee7a Angular JS l\u00e0: Data binding v\u00e0 Dependency injection gi\u00fap lo\u1ea1i b\u1ecf ph\u1ea7n l\u1edbn code b\u1ea1n vi\u1ebft. \n<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" width=\"700\" height=\"375\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1296.png\" alt=\"aspnet-core-la-gi\" class=\"wp-image-28368\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1296.png 700w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1296-300x161.png 300w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/figure><\/div>\n\n\n\n<h4 id=\"\u01afu_\u0111i\u1ec3m_n\u1ed5i_b\u1eadt_\"><a id=\"post-28363-_f1lld41c8mc\"><\/a><strong>\u01afu \u0111i\u1ec3m n\u1ed5i b\u1eadt <\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\"><li>Angular JS h\u1ed7 tr\u1ee3 t\u00ednh n\u0103ng t\u1ea1o ra c\u00e1c Single Page Aplication.    <\/li><li>Ng\u01b0\u1eddi d\u00f9ng c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng linh ho\u1ea1t c\u00e1c kh\u1ea3 n\u0103ng Data binding t\u1edbi HTML   <\/li><li>B\u1ea1n c\u00f3 th\u1ec3 t\u00e1i s\u1eed d\u1ee5ng component, d\u1ec5 d\u00e0ng Unit test.   <\/li><li>Ho\u1ea1t \u0111\u1ed9ng \u1edf c\u1ea3 PC l\u1eabn Mobile c\u00f9ng nhi\u1ec1u t\u00ednh n\u0103ng kh\u00e1c gi\u00fap l\u1eadp tr\u00ecnh vi\u00ean vi\u1ebft code \u00edt h\u01a1n.    <\/li><\/ul>\n\n\n\n<h4 id=\"H\u1ea1n_ch\u1ebf\"><a id=\"post-28363-_ob7onsiib7st\"><\/a><strong>H\u1ea1n ch\u1ebf<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\"><li>\u0110\u1ed9 an to\u00e0n c\u1ee7a c\u00e1c \u1ee9ng d\u1ee5ng ph\u00e1t tri\u1ec3n b\u1edfi Angular JS kh\u00f4ng \u0111\u01b0\u1ee3c cao.    <\/li><li>B\u1ea1n ch\u1ec9 nh\u00ecn th\u1ea5y c\u00e1c trang c\u01a1 b\u1ea3n khi v\u00f4 hi\u1ec7u h\u00f3a JavaScript.   <\/li><\/ul>\n\n\n\n<h3 id=\"Knockout_JS\"><a id=\"post-28363-_52ufyt58apg3\"><\/a><strong>Knockout JS<\/strong><\/h3>\n\n\n\n<p>\n  T\u01b0\u01a1ng t\u1ef1 nh\u01b0 m\u1ed9t th\u01b0 vi\u1ec7n c\u1ee7a JavaScript, Knockout JS h\u1ed7 tr\u1ee3 l\u1eadp tr\u00ecnh vi\u00ean c\u00f3 th\u1ec3 l\u1eadp tr\u00ecnh v\u00e0 ph\u00e1t tri\u1ec3n c\u00e1c \u1ee9ng d\u1ee5ng web \u0111\u01a1n d\u00e0ng v\u00e0 d\u1ec5 ki\u1ec3m so\u00e1t. H\u01a1n n\u1eefa, Knockout JS c\u00f2n gi\u00fap c\u00e1c l\u1eadp tr\u00ecnh vi\u00ean c\u00f3 th\u1ec3 tri\u1ec3n khai nh\u1eefng k\u1ef9 thu\u1eadt v\u01b0\u1ee3t tr\u1ed9i h\u01a1n nh\u01b0: binding, c\u1eadp nh\u1eadt d\u1eef li\u1ec7u c\u1ee5 th\u1ec3 tr\u00ean t\u1eebng thao t\u00e1c, gi\u00fap c\u1ea3i thi\u1ec7n tr\u1ea3i nghi\u1ec7m c\u1ee7a ng\u01b0\u1eddi d\u00f9ng\n<\/p>\n\n\n\n<h4 id=\"\u01afu_\u0111i\u1ec3m_n\u1ed5i_b\u1eadt_\"><a id=\"post-28363-_2b9ppjkgy2rf\"><\/a><strong>\u01afu \u0111i\u1ec3m n\u1ed5i b\u1eadt <\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\"><li>Knockout JS quan s\u00e1t t\u1ef1 \u0111\u1ed9ng s\u1ef1 ph\u1ee5 thu\u1ed9c t\u1eeb tr\u01b0\u1eddng n\u00e0y sang tr\u01b0\u1eddng li\u00ean quan kh\u00e1c, t\u1ef1 c\u1eadp nh\u1eadt \u0111\u00fang giao di\u1ec7n c\u1ea7n thi\u1ebft khi ph\u1ea7n t\u1eed \u0111ang \u0111\u01b0\u1ee3c theo d\u00f5i thay \u0111\u1ed5i.    <\/li><li>H\u1ed7 tr\u1ee3 t\u00ednh n\u0103ng khai b\u00e1o r\u00e0ng bu\u1ed9c d\u1eef li\u1ec7u v\u1edbi giao di\u1ec7n, declartive bindings.   <\/li><li>C\u00f3 th\u1ec3 l\u1eadp tr\u00ecnh m\u1edf r\u1ed9ng, b\u1ed5 sung c\u00e1ch th\u1ee9c theo d\u00f5i c\u00e1c thay \u0111\u1ed5i ho\u1eb7c r\u00e0ng bu\u1ed9c \u0111\u1ec3 t\u1ea1o giao di\u1ec7n \u1ee9ng d\u1ee5ng nghi\u1ec7p v\u1ee5 theo n\u1ed9i dung l\u1eadp tr\u00ecnh c\u1ee5 th\u1ec3.    <\/li><\/ul>\n\n\n\n<h3 id=\"Bootstrap_\"><a id=\"post-28363-_vgm5veko4ylz\"><\/a><strong>Bootstrap <\/strong><\/h3>\n\n\n\n<p>   \u0110\u00e2y l\u00e0 m\u1ed9t trong nh\u1eefng Framework <a href=\"https:\/\/tino.vn\/blog\/html-css-javascript-la-gi\/\" target=\"_blank\" rel=\"noreferrer noopener\">HTML, CSS v\u00e0 Javascript<\/a> h\u1ed7 tr\u1ee3 ng\u01b0\u1eddi d\u00f9ng thi\u1ebft l\u1eadp web m\u1ed9t c\u00e1ch d\u1ec5 d\u00e0ng, \u0111\u1ea1t ti\u00eau chu\u1ea9n. V\u1edbi nh\u1eefng website \u0111\u01b0\u1ee3c x\u00e2y d\u1ef1ng ti\u1ec7n l\u1ee3i tr\u00ean c\u00e1c thi\u1ebft b\u1ecb nh\u01b0 \u0111i\u1ec7n tho\u1ea1i th\u00f4ng minh, m\u00e1y t\u00ednh, ipad,&#8230; <a href=\"https:\/\/tino.vn\/blog\/bootstrap-la-gi\/\" target=\"_blank\" rel=\"noreferrer noopener\">Bootstrap<\/a> c\u01a1 b\u1ea3n g\u1ed3m c\u00e1c y\u1ebfu t\u1ed1: typoraphy, forms, buttons, tables, navigation,&#8230;  <\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" width=\"700\" height=\"375\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1297.png\" alt=\"aspnet-core-la-gi\" class=\"wp-image-28369\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1297.png 700w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1297-300x161.png 300w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/figure><\/div>\n\n\n\n<h4 id=\"\u01afu_\u0111i\u1ec3m_n\u1ed5i_b\u1eadt_\"><a id=\"post-28363-_e75npn2x3khp\"><\/a><strong>\u01afu \u0111i\u1ec3m n\u1ed5i b\u1eadt <\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\"><li>Bootstrap h\u1ed7 tr\u1ee3 th\u00eam c\u00e1c Component gi\u00fap ng\u01b0\u1eddi d\u00f9ng thi\u1ebft k\u1ebf reponsive m\u1ed9t c\u00e1ch d\u1ec5 d\u00e0ng v\u00e0 hi\u1ec7u qu\u1ea3.    <\/li><li>JavaScript gi\u00fap cho thi\u1ebft k\u1ebf c\u1ee7a b\u1ea1n ti\u1ebft ki\u1ec7m th\u1eddi gian, \u0111\u1ea3m ch\u1ea5t l\u01b0\u1ee3ng.    <\/li><li>Bootstrap hi\u1ec7n l\u00e0 m\u1ed9t trong nh\u1eefng Framework \u0111\u01b0\u1ee3c nhi\u1ec1u ng\u01b0\u1eddi s\u1eed d\u1ee5ng \u0111\u1ec3 thi\u1ebft k\u1ebf web nh\u1ea5t v\u1edbi nh\u1eefng ti\u00eau chu\u1ea9n ri\u00eang, ch\u1ea5t l\u01b0\u1ee3ng n\u00ean \u0111\u01b0\u1ee3c nhi\u1ec1u ng\u01b0\u1eddi \u01b0a chu\u1ed9ng.   <\/li><\/ul>\n\n\n\n<p>\n  Tr\u00ean \u0111\u00e2y l\u00e0 th\u00f4ng tin v\u1ec1 \u201cASP.NET Core l\u00e0 g\u00ec?\u201d v\u00e0 c\u00e1c v\u1ea5n \u0111\u1ec1 xung quanh ASP.NET Core \u0111\u01b0\u1ee3c Tino Group t\u1ed5ng h\u1ee3p \u0111\u1ec3 g\u1eedi \u0111\u1ebfn b\u1ea1n. ASP.NET Core l\u00e0 m\u1ed9t m\u00f4 h\u00ecnh l\u1eadp tr\u00ecnh hi\u1ec7n \u0111\u1ea1i \u0111\u01b0\u1ee3c tri\u1ec3n khai tr\u00ean \u0111\u00e1m m\u00e2y v\u00e0 c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng v\u1edbi \u0111a d\u1ea1ng n\u1ec1n t\u1ea3ng. Hy v\u1ecdng b\u00e0i vi\u1ebft n\u00e0y c\u00f3 th\u1ec3 gi\u00fap b\u1ea1n c\u00f3 th\u00eam c\u01a1 s\u1edf \u0111\u1ec3 l\u1ef1a ch\u1ecdn n\u1ec1n t\u1ea3ng thi\u1ebft l\u1eadp ph\u1ea7n m\u1ec1m hi\u1ec7u qu\u1ea3 v\u00e0 ch\u1ea5t l\u01b0\u1ee3ng t\u1ed1t. Ch\u00fac c\u00e1c b\u1ea1n th\u00e0nh c\u00f4ng!\n<\/p>\n\n\n\n<h2 id=\"FAQs_v\u1ec1_ASP.NET_Core\"><a id=\"post-28363-_9w02untp5ui0\"><\/a><strong>FAQs v\u1ec1 ASP.NET Core<\/strong><\/h2>\n\n\n\t\t<section\t\thelp class=\"sc_fs_faq sc_card    \"\n\t\t\t\t>\n\t\t\t\t<h2 id=\"L\u00e0m_sao_\u0111\u1ec3_x\u00e2y_d\u1ef1ng_web_UI_v\u00e0_web_API?_\">L\u00e0m sao \u0111\u1ec3 x\u00e2y d\u1ef1ng web UI v\u00e0 web API? <\/h2>\t\t\t\t<div>\n\t\t\t\t\t\t<div class=\"sc_fs_faq__content\">\n\t\t\t\t\n\n<p>\n  \u0110\u1ec3 x\u00e2y d\u1ef1ng web UI v\u00e0 web API ch\u1ea5t l\u01b0\u1ee3ng, b\u1ea1n n\u00ean s\u1eed d\u1ee5ng  ASP.NET Core MVC. \n<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section\t\thelp class=\"sc_fs_faq sc_card    \"\n\t\t\t\t>\n\t\t\t\t<h2 id=\"S\u1eed_d\u1ee5ng_ASP.NET_Core_c\u00f3_t\u1ed1n_ph\u00ed_kh\u00f4ng?_\">S\u1eed d\u1ee5ng ASP.NET Core c\u00f3 t\u1ed1n ph\u00ed kh\u00f4ng? <\/h2>\t\t\t\t<div>\n\t\t\t\t\t\t<div class=\"sc_fs_faq__content\">\n\t\t\t\t\n\n<p>\n  ASP.NET Core l\u00e0 m\u1ed9t m\u00e3 ngu\u1ed3n m\u1edf ho\u00e0n to\u00e0n mi\u1ec5n ph\u00ed m\u00e0 b\u1ea1n c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng \u0111\u1ec3 x\u00e2y d\u1ef1ng c\u00e1c \u1ee9ng d\u1ee5ng web\n<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section\t\thelp class=\"sc_fs_faq sc_card    \"\n\t\t\t\t>\n\t\t\t\t<h2 id=\"ASP.NET_Core_v\u00e0_ASP.NET_c\u00f3_ph\u1ea3i_l\u00e0_m\u1ed9t_kh\u00f4ng?_\">ASP.NET Core v\u00e0 ASP.NET c\u00f3 ph\u1ea3i l\u00e0 m\u1ed9t kh\u00f4ng? <\/h2>\t\t\t\t<div>\n\t\t\t\t\t\t<div class=\"sc_fs_faq__content\">\n\t\t\t\t\n\n<p>\n  C\u00e2u tr\u1ea3 l\u1eddi: Kh\u00f4ng. ASP.NET Core l\u00e0 m\u00e3 ngu\u1ed3n m\u1edf, kh\u00f4ng h\u1ed7 tr\u1ee3 WebForms v\u00e0 c\u00f3 th\u1ec3 ch\u1ea1y tr\u00ean c\u1ea3 .NET Core, .NET Framework. C\u00f2n ASP.NET thu\u1ed9c b\u1ea3n quy\u1ec1n c\u1ee7a Microsoft, WebForms \u0111\u01b0\u1ee3c h\u1ed7 tr\u1ee3 v\u00e0 ch\u1ec9 ch\u1ea1y tr\u00ean .NET Framework.\n<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section\t\thelp class=\"sc_fs_faq sc_card    \"\n\t\t\t\t>\n\t\t\t\t<h2 id=\".NET_Core_v\u00e0_.NET_Framework_c\u00f3_g\u00ec_kh\u00e1c_nhau?\">.NET Core v\u00e0 .NET Framework c\u00f3 g\u00ec kh\u00e1c nhau?<\/h2>\t\t\t\t<div>\n\t\t\t\t\t\t<div class=\"sc_fs_faq__content\">\n\t\t\t\t\n\n<p>\n  .NET Framework l\u00e0 n\u1ec1n t\u1ea3ng c\u0169 \u0111\u00e3 ho\u1ea1t \u0111\u1ed9ng tr\u00ean Windows nhi\u1ec1u n\u0103m qua. C\u00f2n .NET Core h\u1ed7 tr\u1ee3 m\u1ed9t s\u1ed1 ch\u1ee9c n\u0103ng thu\u1ed9c m\u1ed9t ph\u1ea7n nh\u1ecf trong .NET Framework nh\u01b0: WebForm, Windows Forms, WPF ch\u01b0a \u0111\u01b0\u1ee3c \u0111\u01b0a l\u00ean .NET Core. \n<\/p>\n\n\n\n<p>\n  .NET Framework ch\u1ec9 ch\u1ea1y duy nh\u1ea5t tr\u00ean Windows, c\u00f2n .NET Core c\u00f3 th\u1ec3 ho\u1ea1t \u0111\u1ed9ng t\u1ed1t tr\u00ean m\u1ecdi n\u1ec1n t\u1ea3ng. \n<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<\/section>\n\t\t\n<script type=\"application\/ld+json\">\n\t{\n\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\"@type\": \"FAQPage\",\n\t\t\"mainEntity\": [\n\t\t\t\t\t{\n\t\t\t\t\"@type\": \"Question\",\n\t\t\t\t\"name\": \"L\u00e0m sao \u0111\u1ec3 x\u00e2y d\u1ef1ng web UI v\u00e0 web API? \",\n\t\t\t\t\"acceptedAnswer\": {\n\t\t\t\t\t\"@type\": \"Answer\",\n\t\t\t\t\t\"text\": \"<p>\n  \u0110\u1ec3 x\u00e2y d\u1ef1ng web UI v\u00e0 web API ch\u1ea5t l\u01b0\u1ee3ng, b\u1ea1n n\u00ean s\u1eed d\u1ee5ng  ASP.NET Core MVC. \n<\/p>\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t}\n\t\t\t,\t\t\t\t{\n\t\t\t\t\"@type\": \"Question\",\n\t\t\t\t\"name\": \"S\u1eed d\u1ee5ng ASP.NET Core c\u00f3 t\u1ed1n ph\u00ed kh\u00f4ng? \",\n\t\t\t\t\"acceptedAnswer\": {\n\t\t\t\t\t\"@type\": \"Answer\",\n\t\t\t\t\t\"text\": \"<p>\n  ASP.NET Core l\u00e0 m\u1ed9t m\u00e3 ngu\u1ed3n m\u1edf ho\u00e0n to\u00e0n mi\u1ec5n ph\u00ed m\u00e0 b\u1ea1n c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng \u0111\u1ec3 x\u00e2y d\u1ef1ng c\u00e1c \u1ee9ng d\u1ee5ng web\n<\/p>\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t}\n\t\t\t,\t\t\t\t{\n\t\t\t\t\"@type\": \"Question\",\n\t\t\t\t\"name\": \"ASP.NET Core v\u00e0 ASP.NET c\u00f3 ph\u1ea3i l\u00e0 m\u1ed9t kh\u00f4ng? \",\n\t\t\t\t\"acceptedAnswer\": {\n\t\t\t\t\t\"@type\": \"Answer\",\n\t\t\t\t\t\"text\": \"<p>\n  C\u00e2u tr\u1ea3 l\u1eddi: Kh\u00f4ng. ASP.NET Core l\u00e0 m\u00e3 ngu\u1ed3n m\u1edf, kh\u00f4ng h\u1ed7 tr\u1ee3 WebForms v\u00e0 c\u00f3 th\u1ec3 ch\u1ea1y tr\u00ean c\u1ea3 .NET Core, .NET Framework. C\u00f2n ASP.NET thu\u1ed9c b\u1ea3n quy\u1ec1n c\u1ee7a Microsoft, WebForms \u0111\u01b0\u1ee3c h\u1ed7 tr\u1ee3 v\u00e0 ch\u1ec9 ch\u1ea1y tr\u00ean .NET Framework.\n<\/p>\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t}\n\t\t\t,\t\t\t\t{\n\t\t\t\t\"@type\": \"Question\",\n\t\t\t\t\"name\": \".NET Core v\u00e0 .NET Framework c\u00f3 g\u00ec kh\u00e1c nhau?\",\n\t\t\t\t\"acceptedAnswer\": {\n\t\t\t\t\t\"@type\": \"Answer\",\n\t\t\t\t\t\"text\": \"<p>\n  .NET Framework l\u00e0 n\u1ec1n t\u1ea3ng c\u0169 \u0111\u00e3 ho\u1ea1t \u0111\u1ed9ng tr\u00ean Windows nhi\u1ec1u n\u0103m qua. C\u00f2n .NET Core h\u1ed7 tr\u1ee3 m\u1ed9t s\u1ed1 ch\u1ee9c n\u0103ng thu\u1ed9c m\u1ed9t ph\u1ea7n nh\u1ecf trong .NET Framework nh\u01b0: WebForm, Windows Forms, WPF ch\u01b0a \u0111\u01b0\u1ee3c \u0111\u01b0a l\u00ean .NET Core. \n<\/p><p>\n  .NET Framework ch\u1ec9 ch\u1ea1y duy nh\u1ea5t tr\u00ean Windows, c\u00f2n .NET Core c\u00f3 th\u1ec3 ho\u1ea1t \u0111\u1ed9ng t\u1ed1t tr\u00ean m\u1ecdi n\u1ec1n t\u1ea3ng. \n<\/p>\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t}\n\t\t\t\t\t\t]\n\t}\n<\/script>\n\n\n\n<h2 id=\"\"><a id=\"post-28363-_4d5exhrp3299\"><\/a><\/h2>\n\n\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>H\u1ec7 sinh th\u00e1i .NET trong l\u1eadp tr\u00ecnh web v\u00f4 c\u00f9ng \u0111a d\u1ea1ng v\u00e0 ch\u1ea5t l\u01b0\u1ee3ng. Trong \u0111\u00f3, ASP.NET Core \u0111\u01b0\u1ee3c bi\u1ebft \u0111\u1ebfn l\u00e0 Framework phi\u00ean b\u1ea3n m\u1edbi c\u1ee7a .NET v\u1edbi \u01b0u \u0111i\u1ec3m nhanh ch\u00f3ng, linh ho\u1ea1t tr\u00ean \u0111a n\u1ec1n t\u1ea3ng v\u00e0 \u1ee9ng d\u1ee5ng v\u1edbi c\u00e1c thi\u1ebft b\u1ecb hi\u1ec7n \u0111\u1ea1i. V\u1eady ASP.NET Core l\u00e0 g\u00ec? C\u00e2u [&hellip;]<\/p>\n","protected":false},"author":24,"featured_media":28364,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5404],"tags":[6187],"class_list":["post-28363","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-webmasters","tag-ho-tro-developer"],"_links":{"self":[{"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/posts\/28363","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/users\/24"}],"replies":[{"embeddable":true,"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/comments?post=28363"}],"version-history":[{"count":0,"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/posts\/28363\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/media\/28364"}],"wp:attachment":[{"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/media?parent=28363"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/categories?post=28363"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/tags?post=28363"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}