{"id":2788,"date":"2023-04-19T08:00:40","date_gmt":"2023-04-19T07:00:40","guid":{"rendered":"https:\/\/cafe2sach.com\/?p=2788"},"modified":"2023-04-19T08:00:47","modified_gmt":"2023-04-19T07:00:47","slug":"gioi-thieu-ngon-ngu-lap-trinh-c","status":"publish","type":"post","link":"https:\/\/cafe2sach.com\/index.php\/2023\/04\/19\/gioi-thieu-ngon-ngu-lap-trinh-c\/","title":{"rendered":"Gi\u1edbi thi\u1ec7u ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh C#"},"content":{"rendered":"\n<p><em>C# l\u00e0 s\u1ef1 k\u1ebft h\u1ee3p c\u1ee7a 2 ng\u00f4n ng\u1eef C v\u00e0 java, c\u00f3 th\u1ec3 n\u00f3i C# l\u1ea5y \u00fd t\u01b0\u1edfng v\u1ec1 d\u1ea5u th\u0103ng trong \u00e2m nh\u1ea1c. V\u00ec v\u1eady vi\u1ec7c h\u1ecdc ng\u00f4n ng\u1eef n\u00e0y kh\u00e1 th\u00fa v\u1ecb. <\/em>&#8211; Admin<\/p>\n\n\n\n<p>Trong l\u0129nh v\u1ef1c c\u00f4ng ngh\u1ec7 th\u00f4ng tin c\u1ee7a th\u1ebf gi\u1edbi ng\u00e0y nay, v\u1edbi s\u1ef1 ph\u00e1t tri\u1ec3n li\u00ean t\u1ee5c v\u00e0 \u0111a<br>d\u1ea1ng nh\u1ea5t l\u00e0 ph\u1ea7n m\u1ec1m, c\u00e1c h\u1ec7 \u0111i\u1ec1u h\u00e0nh, c\u00e1c m\u00f4i tr\u01b0\u1eddng ph\u00e1t tri\u1ec3n, c\u00e1c \u1ee9ng d\u1ee5ng li\u00ean t\u1ee5c ra \u0111\u1eddi. Tuy nhi\u00ean, \u0111\u00f4i khi vi\u1ec7c ph\u00e1t tri\u1ec3n kh\u00f4ng \u0111\u1ed3ng nh\u1ea5t v\u00e0 nh\u1ea5t l\u00e0 do l\u1ee3i \u00edch kh\u00e1c nhau c\u1ee7a c\u00e1c c\u00f4ng ty ph\u1ea7n m\u1ec1m l\u1edbn l\u00e0m \u1ea3nh h\u01b0\u1edfng \u0111\u1ebfn nh\u1eefng ng\u01b0\u1eddi x\u00e2y d\u1ef1ng ph\u1ea7n m\u1ec1m.<br>C\u00e1ch \u0111\u00e2y v\u00e0i n\u0103m Java \u0111\u01b0\u1ee3c Sun vi\u1ebft ra, \u0111\u00e3 c\u00f3 s\u1ee9c m\u1ea1nh \u0111\u00e1ng k\u1ec3, n\u00f3 h\u01b0\u1edbng t\u1edbi vi\u1ec7c ch\u1ea1y<br>tr\u00ean nhi\u1ec1u h\u1ec7 \u0111i\u1ec1u h\u00e0nh kh\u00e1c nhau, \u0111\u1ed9c l\u1eadp v\u1edbi b\u1ed9 x\u1eed l\u00fd (Intel, Risc,\u2026). \u0110\u1eb7c bi\u1ec7t l\u00e0 Java r\u1ea5t<br>th\u00edch h\u1ee3p cho vi\u1ec7c vi\u1ebft c\u00e1c \u1ee9ng d\u1ee5ng tr\u00ean Internet. Tuy nhi\u00ean, Java l\u1ea1i c\u00f3 h\u1ea1n ch\u1ebf v\u1ec1 m\u1eb7t t\u1ed1c \u0111\u1ed9 v\u00e0 tr\u00ean th\u1ef1c t\u1ebf v\u1eabn ch\u01b0a th\u1ecbnh h\u00e0nh. M\u1eb7c d\u00f9 Sun Corporation v\u00e0 IBM c\u00f3 \u0111\u1ea9y m\u1ea1nh Java, nh\u01b0ng Microsoft \u0111\u00e3 d\u00f9ng ASP \u0111\u1ec3 l\u00e0m gi\u1ea3m kh\u1ea3 n\u0103ng \u1ea3nh h\u01b0\u1edfng c\u1ee7a Java.<br>\u0110\u1ec3 l\u1eadp tr\u00ecnh tr\u00ean Web, l\u00e2u nay ng\u01b0\u1eddi ta v\u1eabn d\u00f9ng CGI-Perl v\u00e0 g\u1ea7n \u0111\u00e2y nh\u1ea5t l\u00e0 PHP, m\u1ed9t<br>ng\u00f4n ng\u1eef gi\u1ed1ng nh\u01b0 Perl nh\u01b0ng t\u1ed1c \u0111\u1ed9 ch\u1ea1y nhanh h\u01a1n. Ta c\u00f3 th\u1ec3 tri\u1ec3n khai Perl tr\u00ean<br>Unix\/Linux hay MS Windows. Tuy nhi\u00ean c\u00f3 nhi\u1ec1u ng\u01b0\u1eddi kh\u00f4ng th\u00edch d\u00f9ng do b\u1ea3n th\u00e2n ng\u00f4n<br>ng\u1eef hay c\u00e1c qui \u01b0\u1edbc kh\u00e1c th\u01b0\u1eddng v\u00e0 Perl kh\u00f4ng \u0111\u01b0\u1ee3c ph\u00e1t tri\u1ec3n th\u1ed1ng nh\u1ea5t, c\u00e1c c\u00f4ng c\u1ee5 \u0111\u01b0\u1ee3c x\u00e2y d\u1ef1ng cho Perl tuy r\u1ea5t m\u1ea1nh nh\u01b0ng do nhi\u1ec1u nh\u00f3m ph\u00e1t tri\u1ec3n v\u00e0 ng\u01b0\u1eddi ta kh\u00f4ng \u0111\u1ea3m b\u1ea3o r\u1eb1ng t\u01b0\u01a1ng lai c\u1ee7a n\u00f3 ng\u00e0y c\u00e0ng t\u1ed1t \u0111\u1eb9p h\u01a1n.<\/p>\n\n\n\n<p>Trong gi\u1edbi ph\u00e1t tri\u1ec3n \u1ee9ng d\u1ee5ng tr\u00ean Windows ta c\u00f3 th\u1ec3 vi\u1ebft \u1ee9ng d\u1ee5ng b\u1eb1ng Visual C++,<br>Delphi hay Visual Basic, \u0111\u00e2y l\u00e0 m\u1ed9t s\u1ed1 c\u00f4ng c\u1ee5 ph\u1ed5 bi\u1ebfn v\u00e0 m\u1ea1nh. Trong \u0111\u00f3 Visual C++ l\u00e0<br>m\u1ed9t ng\u00f4n ng\u1eef r\u1ea5t m\u1ea1nh v\u00e0 c\u0169ng r\u1ea5t kh\u00f3 s\u1eed d\u1ee5ng. Visual Basic th\u00ec \u0111\u01a1n gi\u1ea3n d\u1ec5 h\u1ecdc, d\u1ec5 d\u00f9ng<br>nh\u1ea5t n\u00ean r\u1ea5t th\u00f4ng d\u1ee5ng. L\u00fd do ch\u00ednh l\u00e0 Visual Basic gi\u00fap ch\u00fang ta c\u00f3 th\u1ec3 vi\u1ebft ch\u01b0\u01a1ng tr\u00ecnh<br>tr\u00ean Windows d\u1ec5 d\u00e0ng m\u00e0 kh\u00f4ng c\u1ea7n thi\u1ebft ph\u1ea3i bi\u1ebft nhi\u1ec1u v\u1ec1 c\u00e1ch th\u1ee9c MS Windows ho\u1ea1t<br>\u0111\u1ed9ng, ta ch\u1ec9 c\u1ea7n bi\u1ebft m\u1ed9t s\u1ed1 ki\u1ebfn th\u1ee9c c\u0103n b\u1ea3n t\u1ed1i thi\u1ec3u v\u1ec1 MS Windows l\u00e0 c\u00f3 th\u1ec3 l\u1eadp tr\u00ecnh<br>\u0111\u01b0\u1ee3c. Do \u0111\u00f3 theo quan \u0111i\u1ec3m c\u1ee7a Visual Basic n\u00ean n\u00f3 li\u00ean k\u1ebft v\u1edbi Windows l\u00e0 \u0111i\u1ec1u t\u1ef1 nhi\u00ean<br>v\u00e0 d\u1ec5 hi\u1ec3u, nh\u01b0ng h\u1ea1n ch\u1ebf l\u00e0 Visual Basic kh\u00f4ng ph\u1ea3i ng\u00f4n ng\u1eef h\u01b0\u1edbng \u0111\u1ed1i t\u01b0\u1ee3ng (Object<br>Oriented).<br>Delphi l\u00e0 h\u1eadu du\u1ec7 c\u1ee7a Turbo Pascal c\u1ee7a Borland. N\u00f3 c\u0169ng gi\u1ed1ng v\u00e0 t\u01b0\u01a1ng \u0111\u1ed1i d\u1ec5 d\u00f9ng<br>nh\u01b0 Visual Basic. Delphi l\u00e0 m\u1ed9t ng\u00f4n ng\u1eef h\u01b0\u1edbng \u0111\u1ed1i t\u01b0\u1ee3ng. C\u00e1c \u0111i\u1ec1u khi\u1ec3n d\u00f9ng tr\u00ean Form<br>c\u1ee7a Delphi \u0111\u1ec1u \u0111\u01b0\u1ee3c t\u1ef1 \u0111\u1ed9ng kh\u1edfi t\u1ea1o m\u00e3 ngu\u1ed3n. Tuy nhi\u00ean, ch\u1ee9c n\u0103ng kh\u1edfi \u0111\u1ed9ng m\u00e3 ngu\u1ed3n<br>n\u00e0y c\u1ee7a Delphi \u0111\u00f4i khi g\u1eb7p r\u1eafc r\u1ed1i khi c\u00f3 s\u1ef1 can thi\u1ec7p c\u1ee7a ng\u01b0\u1eddi d\u00f9ng v\u00e0o. Sau n\u00e0y khi c\u00f4ng<br>ty Borland b\u1ecb b\u00e1n v\u00e0 c\u00e1c chuy\u00ean gia x\u00e2y d\u1ef1ng n\u00ean Delphi \u0111\u00e3 ch\u1ea1y qua b\u00ean Microsoft, v\u00e0<br>Delphi kh\u00f4ng c\u00f2n \u0111\u01b0\u1ee3c ph\u00e1t tri\u1ec3n t\u1ed1t n\u1eefa, ng\u01b0\u1eddi ta kh\u00f4ng d\u00e1m \u0111\u1ea7u t\u01b0 tri\u1ec3n khai ph\u1ea7n m\u1ec1m<br>v\u00e0o Delphi. C\u00f4ng ty sau n\u00e0y \u0111\u00e3 ph\u00e1t tri\u1ec3n d\u00f2ng s\u1ea3n ph\u1ea9m Jbuilder (d\u00f9ng Java) kh\u00f4ng c\u00f2n<br>quan t\u00e2m \u0111\u1ebfn Delphi.<br>Tuy Visual Basic b\u1ec1n h\u01a1n do kh\u00f4ng c\u1ea7n ph\u1ea3i kh\u1edfi t\u1ea1o m\u00e3 ngu\u1ed3n trong Form khi thi\u1ebft k\u1ebf<br>nh\u01b0ng Visual Basic c\u0169ng c\u00f3 nhi\u1ec1u khuy\u1ebft \u0111i\u1ec3m :<br>\uf071 Kh\u00f4ng h\u1ed7 tr\u1ee3 thi\u1ebft k\u1ebf h\u01b0\u1edbng \u0111\u1ed1i t\u01b0\u1ee3ng, nh\u1ea5t l\u00e0 kh\u1ea3 n\u0103ng th\u1eeba k\u1ebf (inheritance).<br>\uf071 Gi\u1edbi h\u1ea1n v\u1ec1 vi\u1ec7c ch\u1ea1y nhi\u1ec1u ti\u1ec3u tr\u00ecnh trong m\u1ed9t \u1ee9ng d\u1ee5ng, v\u00ed d\u1ee5 ta kh\u00f4ng th\u1ec3 d\u00f9ng<br>Visual Basic \u0111\u1ec3 vi\u1ebft m\u1ed9t Service ki\u1ec3u NT.<br>\uf071 Kh\u1ea3 n\u0103ng x\u1eed l\u00fd l\u1ed7i r\u1ea5t y\u1ebfu, kh\u00f4ng th\u00edch h\u1ee3p trong m\u00f4i tr\u01b0\u1eddng Multi- tier<br>\uf071 Kh\u00f3 d\u00f9ng chung v\u1edbi ng\u00f4n ng\u1eef kh\u00e1c nh\u01b0 C++.<br>\uf071 Kh\u00f4ng c\u00f3 User Interface th\u00edch h\u1ee3p cho Internet.<br>Do Visual Basic kh\u00f4ng th\u00edch h\u1ee3p cho vi\u1ebft c\u00e1c \u1ee9ng Web Server n\u00ean Microsoft t\u1ea1o ra ASP<br>(Active Server Page). C\u00e1c trang ASP n\u00e0y v\u1eeba c\u00f3 tag HTML v\u1eeba ch\u1ee9a c\u00e1c \u0111o\u1ea1n script<br>(VBScript, JavaScript) n\u1eb1m l\u1eabn l\u1ed9n nhau. Khi x\u1eed l\u00fd m\u1ed9t trang ASP, n\u1ebfu l\u00e0 tag HTML th\u00ec s\u1ebd<br>\u0111\u01b0\u1ee3c g\u1edfi th\u1eb3ng qua Browser, c\u00f2n c\u00e1c script th\u00ec s\u1ebd \u0111\u01b0\u1ee3c chuy\u1ec3n th\u00e0nh c\u00e1c d\u00f2ng HTML r\u1ed3i g\u1edfi<br>\u0111i, ngo\u1ea1i tr\u1eeb c\u00e1c function hay c\u00e1c sub trong ASP th\u00ec v\u1ecb tr\u00ed c\u00e1c script kh\u00e1c r\u1ea5t quan tr\u1ecdng.<br>Khi m\u1ed9t s\u1ed1 ch\u1ee9c n\u0103ng n\u00e0o \u0111\u01b0\u1ee3c vi\u1ebft t\u1ed1t ng\u01b0\u1eddi ta d\u1ecbch th\u00e0nh ActiveX v\u00e0 \u0111\u01b0a n\u00f3 v\u00e0o Web<br>Server. Tuy nhi\u00ean v\u00ec l\u00fd do b\u1ea3o m\u1eadt n\u00ean c\u00e1c ISP (Internet Service Provider) l\u00e0m m\u00e1y ch\u1ee7 cho<br>Web site th\u01b0\u1eddng r\u1ea5t d\u00e8 \u0111\u1eb7t khi c\u00e0i ActiveX l\u1ea1 tr\u00ean m\u00e1y c\u1ee7a h\u1ecd. Ngo\u00e0i ra vi\u1ec7c th\u00e1o g\u1ee1 c\u00e1c<br>phi\u00ean b\u1ea3n c\u1ee7a ActiveX n\u00e0y l\u00e0 c\u00f4ng vi\u1ec7c r\u1ea5t kh\u00f3, th\u01b0\u1eddng xuy\u00ean l\u00e0m cho Administrator nh\u1ee9c<br>\u0111\u1ea7u. Nh\u1eefng ng\u01b0\u1eddi \u0111\u00e3 t\u1eebng qu\u1ea3n l\u00fd c\u00e1c version c\u1ee7a DLL tr\u00ean Windows \u0111i\u1ec1u than phi\u1ec1n t\u1ea1i sao<br>ph\u1ea3i \u0111\u0103ng k\u00fd c\u00e1c DLL v\u00e0 nh\u1ea5t l\u00e0 ch\u1ec9 c\u00f3 th\u1ec3 \u0111\u0103ng k\u00fd m\u1ed9t phi\u00ean b\u1ea3n c\u1ee7a DLL m\u00e0 th\u00f4i. V\u00e0 t\u1eeb<br>\u201cDLL Hell\u201d xu\u1ea5t hi\u1ec7n t\u1ee9c l\u00e0 \u0111\u1ecba ng\u1ee5c DLL\u2026<\/p>\n\n\n\n<p><br>Sau n\u00e0y \u0111\u1ec3 gi\u00fap cho vi\u1ec7c l\u1eadp tr\u00ecnh ASP nhanh h\u01a1n th\u00ec c\u00f4ng c\u1ee5 Visual InterDev, m\u1ed9t IDE<br>(Integrated Development Environment) ra \u0111\u1eddi. Visual InterDev t\u1ea1o ra c\u00e1c Design Time<br>Controls cho vi\u1ec7c thi\u1ebft k\u1ebf c\u00e1c \u0111i\u1ec1u khi\u1ec3n tr\u00ean web,\u2026 Ti\u1ebfc thay Visual InterDev kh\u00f4ng b\u1ec1n<br>v\u1eefng l\u1eafm n\u00ean sau m\u1ed9t th\u1eddi gian th\u00ec c\u00e1c nh\u00e0 ph\u00e1t tri\u1ec3n \u0111\u00e3 r\u1eddi b\u1ecf n\u00f3.<br>T\u00f3m l\u1ea1i b\u1ea3n th\u00e2n c\u1ee7a ASP h\u00e3y c\u00f2n m\u1ed9t s\u1ed1 khuy\u1ebft \u0111i\u1ec3m quan tr\u1ecdng, nh\u1ea5t l\u00e0 khi ch\u1ea1y tr\u00ean<br>Internet Information Server v\u1edbi Windows NT 4, ASP kh\u00f4ng \u0111\u00e1ng tin c\u1eady l\u1eafm.<br>T\u00f3m l\u1ea1i trong gi\u1edbi l\u1eadp tr\u00ecnh theo Microsoft th\u00ec vi\u1ec7c l\u1eadp tr\u00ecnh tr\u00ean desktop cho \u0111\u1ebfn l\u1eadp tr\u00ecnh<br>h\u1ec7 ph\u00e2n t\u00e1n hay tr\u00ean web l\u00e0 kh\u00f4ng \u0111\u01b0\u1ee3c nh\u1ecbp nh\u00e0ng cho l\u1eafm. \u0110\u1ec3 chuy\u1ec3n \u0111\u01b0\u1ee3c t\u1eeb l\u1eadp tr\u00ecnh<br>client hay desktop \u0111\u1ebfn l\u1eadp tr\u00ecnh web l\u00e0 m\u1ed9t ch\u1eb7ng \u0111\u01b0\u1eddng d\u00e0i.<\/p>\n\n\n\n<div id=\"toc_container\" class=\"no_bullets\"><p class=\"toc_title\">N\u1ed9i dung ch&iacute;nh<\/p><ul class=\"toc_list\"><li><a href=\"#Nguon_goc_NET\"><span class=\"toc_number toc_depth_1\">1<\/span> Ngu\u1ed3n g\u1ed1c .NET<\/a><\/li><li><a href=\"#Kien_truc_NET_Framework\"><span class=\"toc_number toc_depth_1\">2<\/span> Ki\u1ebfn tr\u00fac .NET Framework<\/a><\/li><li><a href=\"#Thu_vien_lop_NET_Framework\"><span class=\"toc_number toc_depth_1\">3<\/span> Th\u01b0 vi\u1ec7n l\u1edbp .NET Framework<\/a><\/li><li><a href=\"#Phat_trien_ung_dung_Client\"><span class=\"toc_number toc_depth_1\">4<\/span> Ph\u00e1t tri\u1ec3n \u1ee9ng d\u1ee5ng Client<\/a><\/li><li><a href=\"#Bien_dich_va_MSIL\"><span class=\"toc_number toc_depth_1\">5<\/span> Bi\u00ean d\u1ecbch v\u00e0 MSIL<\/a><\/li><li><a href=\"#Ngon_ngu_C\"><span class=\"toc_number toc_depth_1\">6<\/span> Ng\u00f4n ng\u1eef C#<\/a><\/li><\/ul><\/div>\n<h2 class=\"wp-block-heading\"><span id=\"Nguon_goc_NET\">Ngu\u1ed3n g\u1ed1c .NET<\/span><\/h2>\n\n\n\n<p><br>\u0110\u1ea7u n\u0103m 1998, sau khi ho\u00e0n t\u1ea5t phi\u00ean b\u1ea3n Version 4 c\u1ee7a Internet Information Server<br>(IIS), c\u00e1c \u0111\u1ed9i ng\u0169 l\u1eadp tr\u00ecnh \u1edf Microsoft nh\u1eadn th\u1ea5y h\u1ecd c\u00f2n r\u1ea5t nhi\u1ec1u s\u00e1ng ki\u1ebfn \u0111\u1ec3 ki\u1ec7n to\u00e0n IIS.<br>H\u1ecd b\u1eaft \u0111\u1ea7u x\u00e2y d\u1ef1ng m\u1ed9t ki\u1ebfn tr\u00fac m\u1edbi tr\u00ean n\u1ec1n t\u1ea3ng \u00fd t\u01b0\u1edfng \u0111\u00f3 v\u00e0 \u0111\u1eb7t t\u00ean l\u00e0 Next<br>Generation Windows Services (NGWS).<br>Sau khi Visual Basic \u0111\u01b0\u1ee3c tr\u00ecnh l\u00e0ng v\u00e0o cu\u1ed1i 1998, d\u1ef1 \u00e1n k\u1ebf ti\u1ebfp mang t\u00ean Visual Studio<br>7 \u0111\u01b0\u1ee3c x\u00e1c nh\u1eadp v\u00e0o NGWS. \u0110\u1ed9i ng\u0169 COM+\/MTS g\u00f3p v\u00e0o m\u1ed9t universal runtime cho t\u1ea5t c\u1ea3<br>ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh chung trong Visual Studio, v\u00e0 tham v\u1ecdng c\u1ee7a h\u1ecd cung c\u1ea5p cho c\u00e1c ng\u00f4n<br>ng\u1eef l\u1eadp tr\u00ecnh c\u1ee7a c\u00e1c c\u00f4ng ty kh\u00e1c d\u00f9ng chung lu\u00f4n. C\u00f4ng vi\u1ec7c n\u00e0y \u0111\u01b0\u1ee3c x\u00fac ti\u1ebfn m\u1ed9t c\u00e1ch<br>ho\u00e0n to\u00e0n b\u00ed m\u1eadt m\u00e3i cho \u0111\u1ebfn h\u1ed9i ngh\u1ecb Professional Developers\u2019 Conference \u1edf Orlado v\u00e0o<br>th\u00e1ng 7\/2000. \u0110\u1ebfn th\u00e1ng 11\/2000 th\u00ec Microsoft \u0111\u00e3 ph\u00e1t h\u00e0nh b\u1ea3n Beta 1 c\u1ee7a .NET g\u1ed3m 3 \u0111\u0129a<br>CD. T\u00ednh \u0111\u1ebfn l\u00fac n\u00e0y th\u00ec Microsoft \u0111\u00e3 l\u00e0m vi\u1ec7c v\u1edbi .NET g\u1ea7n 3 n\u0103m r\u1ed3i, do \u0111\u00f3 b\u1ea3n Beta 1<br>n\u00e0y t\u01b0\u01a1ng \u0111\u1ed1i v\u1eefng ch\u1eafc.<br>.NET mang d\u00e1ng d\u1ea5p c\u1ee7a nh\u1eefng s\u00e1ng ki\u1ebfn \u0111\u00e3 \u0111\u01b0\u1ee3c \u00e1p d\u1ee5ng tr\u01b0\u1edbc \u0111\u00e2y nh\u01b0 p-code trong<br>UCSD Pascal cho \u0111\u1ebfn Java Virtual Machine. C\u00f3 \u0111i\u1ec1u l\u00e0 Microsoft g\u00f3p nh\u1eb7t nh\u1eefng s\u00e1ng ki\u1ebfn<br>c\u1ee7a ng\u01b0\u1eddi kh\u00e1c, k\u1ebft h\u1ee3p v\u1edbi s\u00e1ng ki\u1ebfn c\u1ee7a ch\u00ednh m\u00ecnh \u0111\u1ec3 l\u00e0m n\u00ean m\u1ed9t s\u1ea3n ph\u1ea9m ho\u00e0n ch\u1ec9nh<br>t\u1eeb b\u00ean trong l\u1eabn b\u00ean ngo\u00e0i. Hi\u1ec7n t\u1ea1i Microsoft \u0111\u00e3 c\u00f4ng b\u1ed1 phi\u00ean b\u1ea3n release c\u1ee7a .NET.<br>Th\u1eadt s\u1ef1 Microsoft \u0111\u00e3 \u0111\u1eb7t c\u01b0\u1ee3c v\u00e0o .NET v\u00ec theo th\u00f4ng tin c\u1ee7a c\u00f4ng ty, \u0111\u00e3 t\u1eadp trung 80%<br>s\u1ee9c m\u1ea1nh c\u1ee7a Microsoft \u0111\u1ec3 nghi\u00ean c\u1ee9u v\u00e0 tri\u1ec3n khai .NET (bao g\u1ed3m nh\u00e2n l\u1ef1c v\u00e0 t\u00e0i ch\u00ednh ?),<br>t\u1ea5t c\u1ea3 c\u00e1c s\u1ea3n ph\u1ea9m c\u1ee7a Microsoft s\u1ebd \u0111\u01b0\u1ee3c chuy\u1ec3n qua .NET.<br>Microsoft .NE<\/p>\n\n\n\n<p>Th\u00e0nh ph\u1ea7n Framework l\u00e0 quan tr\u1ecdng nh\u1ea5t .NET l\u00e0 c\u1ed1t l\u00f5i v\u00e0 tinh hoa c\u1ee7a m\u00f4i tr\u01b0\u1eddng,<br>c\u00f2n IDE ch\u1ec9 l\u00e0 c\u00f4ng c\u1ee5 \u0111\u1ec3 ph\u00e1t tri\u1ec3n d\u1ef1a tr\u00ean n\u1ec1n t\u1ea3ng \u0111\u00f3 th\u00f4i. Trong .NET to\u00e0n b\u1ed9 c\u00e1c ng\u00f4n<br>ng\u1eef C#, Visual C++ hay Visual Basic.NET \u0111\u1ec1u d\u00f9ng c\u00f9ng m\u1ed9t IDE.<br>T\u00f3m l\u1ea1i Microsoft .NET l\u00e0 n\u1ec1n t\u1ea3ng cho vi\u1ec7c x\u00e2y d\u1ef1ng v\u00e0 th\u1ef1c thi c\u00e1c \u1ee9ng d\u1ee5ng ph\u00e2n t\u00e1n<br>th\u1ebf h\u1ec7 k\u1ebf ti\u1ebfp. Bao g\u1ed3m c\u00e1c \u1ee9ng d\u1ee5ng t\u1eeb client \u0111\u1ebfn server v\u00e0 c\u00e1c d\u1ecbch v\u1ee5 kh\u00e1c. M\u1ed9t s\u1ed1 t\u00ednh<br>n\u0103ng c\u1ee7a Microsoft .NET cho ph\u00e9p nh\u1eefng nh\u00e0 ph\u00e1t tri\u1ec3n s\u1eed d\u1ee5ng nh\u01b0 sau:<br>\uf071 M\u1ed9t m\u00f4 h\u00ecnh l\u1eadp tr\u00ecnh cho ph\u00e9p nh\u00e0 ph\u00e1t tri\u1ec3n x\u00e2y d\u1ef1ng c\u00e1c \u1ee9ng d\u1ee5ng d\u1ecbch v\u1ee5 web v\u00e0<br>\u1ee9ng d\u1ee5ng client v\u1edbi Extensible Markup Language (XML).<br>\uf071 T\u1eadp h\u1ee3p d\u1ecbch v\u1ee5 XML Web, nh\u01b0 Microsoft .NET My Services cho ph\u00e9p nh\u00e0 ph\u00e1t<br>tri\u1ec3n \u0111\u01a1n gi\u1ea3n v\u00e0 t\u00edch h\u1ee3p ng\u01b0\u1eddi d\u00f9ng kinh nghi\u1ec7m.<br>\uf071 Cung c\u1ea5p c\u00e1c server ph\u1ee5c v\u1ee5 bao g\u1ed3m: Windows 2000, SQL Server, v\u00e0 BizTalk<br>Server, t\u1ea5t c\u1ea3 \u0111i\u1ec1u t\u00edch h\u1ee3p, ho\u1ea1t \u0111\u1ed9ng, v\u00e0 qu\u1ea3n l\u00fd c\u00e1c d\u1ecbch v\u1ee5 XML Web v\u00e0 c\u00e1c \u1ee9ng<br>d\u1ee5ng.<br>\uf071 C\u00e1c ph\u1ea7n m\u1ec1m client nh\u01b0 Windows XP v\u00e0 Windows CE gi\u00fap ng\u01b0\u1eddi ph\u00e1t tri\u1ec3n ph\u00e2n<br>ph\u1ed1i s\u00e2u v\u00e0 thuy\u1ebft ph\u1ee5c ng\u01b0\u1eddi d\u00f9ng kinh nghi\u1ec7m th\u00f4ng qua c\u00e1c d\u00f2ng thi\u1ebft b\u1ecb.<br>\uf071 Nhi\u1ec1u c\u00f4ng c\u1ee5 h\u1ed7 tr\u1ee3 nh\u01b0 Visual Studio .NET, \u0111\u1ec3 ph\u00e1t tri\u1ec3n c\u00e1c d\u1ecbch v\u1ee5 Web XML,<br>\u1ee9ng d\u1ee5ng tr\u00ean n\u1ec1n Windows hay n\u1ec1n web m\u1ed9t c\u00e1ch d\u1ec3 d\u00e0ng v\u00e0 hi\u1ec7u qu\u1ea3.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span id=\"Kien_truc_NET_Framework\"><br>Ki\u1ebfn tr\u00fac .NET Framework<\/span><\/h2>\n\n\n\n<p><br>.NET Framework l\u00e0 m\u1ed9t platform m\u1edbi l\u00e0m \u0111\u01a1n gi\u1ea3n vi\u1ec7c ph\u00e1t tri\u1ec3n \u1ee9ng d\u1ee5ng trong m\u00f4i<br>tr\u01b0\u1eddng ph\u00e2n t\u00e1n c\u1ee7a Internet. .NET Framework \u0111\u01b0\u1ee3c thi\u1ebft k\u1ebf \u0111\u1ea7y \u0111\u1ee7 \u0111\u1ec3 \u0111\u00e1p \u1ee9ng theo quan<br>\u0111i\u1ec3m sau:<br>\uf071 \u0110\u1ec3 cung c\u1ea5p m\u1ed9t m\u00f4i tr\u01b0\u1eddng l\u1eadp tr\u00ecnh h\u01b0\u1edbng \u0111\u1ed1i t\u01b0\u1ee3ng v\u1eefng ch\u1eafc, trong \u0111\u00f3 m\u00e3<br>ngu\u1ed3n \u0111\u1ed1i t\u01b0\u1ee3ng \u0111\u01b0\u1ee3c l\u01b0u tr\u1eef v\u00e0 th\u1ef1c thi m\u1ed9t c\u00e1ch c\u1ee5c b\u1ed9. Th\u1ef1c thi c\u1ee5c b\u1ed9 nh\u01b0ng<br>\u0111\u01b0\u1ee3c ph\u00e2n t\u00e1n tr\u00ean Internet, ho\u1eb7c th\u1ef1c thi t\u1eeb xa.<br>\uf071 \u0110\u1ec3 cung c\u1ea5p m\u1ed9t m\u00f4i tr\u01b0\u1eddng th\u1ef1c thi m\u00e3 ngu\u1ed3n m\u00e0 t\u1ed1i thi\u1ec3u \u0111\u01b0\u1ee3c vi\u1ec7c \u0111\u00f3ng g\u00f3i ph\u1ea7n<br>m\u1ec1m v\u00e0 s\u1ef1 tranh ch\u1ea5p v\u1ec1 phi\u00ean b\u1ea3n.<br>\uf071 \u0110\u1ec3 cung c\u1ea5p m\u1ed9t m\u00f4i tr\u01b0\u1eddng th\u1ef1c thi m\u00e3 ngu\u1ed3n m\u00e0 \u0111\u1ea3m b\u1ea3o vi\u1ec7c th\u1ef1c thi an to\u00e0n m\u00e3<br>ngu\u1ed3n, bao g\u1ed3m c\u1ea3 vi\u1ec7c m\u00e3 ngu\u1ed3n \u0111\u01b0\u1ee3c t\u1ea1o b\u1edfi h\u00e3ng th\u1ee9 ba hay b\u1ea5t c\u1ee9 h\u00e3ng n\u00e0o m\u00e0<br>tu\u00e2n th\u1ee7 theo ki\u1ebfn tr\u00fac .NET.<br>\uf071 \u0110\u1ec3 cung c\u1ea5p m\u1ed9t m\u00f4i tr\u01b0\u1eddng th\u1ef1c thi m\u00e3 ngu\u1ed3n m\u00e0 lo\u1ea1i b\u1ecf \u0111\u01b0\u1ee3c nh\u1eefng l\u1ed7i th\u1ef1c hi\u1ec7n<br>c\u00e1c script hay m\u00f4i tr\u01b0\u1eddng th\u00f4ng d\u1ecbch.<br>\uf071 \u0110\u1ec3 l\u00e0m cho nh\u1eefng ng\u01b0\u1eddi ph\u00e1t tri\u1ec3n c\u00f3 kinh nghi\u1ec7m v\u1eefng ch\u1eafc c\u00f3 th\u1ec3 n\u1eafm v\u1eefng nhi\u1ec1u<br>ki\u1ec3u \u1ee9ng d\u1ee5ng kh\u00e1c nhau. Nh\u01b0 l\u00e0 t\u1eeb nh\u1eefng \u1ee9ng d\u1ee5ng tr\u00ean n\u1ec1n Windows \u0111\u1ebfn nh\u1eefng<br>\u1ee9ng d\u1ee5ng d\u1ef1a tr\u00ean web.<br>Microsoft .NET<br>11<br>Ng\u00f4n Ng\u1eef L\u1eadp Tr\u00ecnh C#<br>\uf071 \u0110\u1ec3 x\u00e2y d\u1ef1ng t\u1ea5t c\u1ea3 c\u00e1c th\u00f4ng tin d\u1ef1a tri\u00ean ti\u00eau chu\u1ea9n c\u00f4ng nghi\u1ec7p \u0111\u1ec3 \u0111\u1ea3m b\u1ea3o r\u1eb1ng<br>m\u00e3 ngu\u1ed3n tr\u00ean .NET c\u00f3 th\u1ec3 t\u00edch h\u1ee3p v\u1edbi b\u1ea5t c\u1ee9 m\u00e3 ngu\u1ed3n kh\u00e1c.<br>.NET Framework c\u00f3 hai th\u00e0nh ph\u1ea7n ch\u00ednh: Common Language Runtime (CLR) v\u00e0 th\u01b0<br>vi\u1ec7n l\u1edbp .NET Framework. CLR l\u00e0 n\u1ec1n t\u1ea3ng c\u1ee7a .NET Framework. Ch\u00fang ta c\u00f3 th\u1ec3 hi\u1ec3u<br>runtime nh\u01b0 l\u00e0 m\u1ed9t agent qu\u1ea3n l\u00fd m\u00e3 ngu\u1ed3n khi n\u00f3 \u0111\u01b0\u1ee3c th\u1ef1c thi, cung c\u1ea5p c\u00e1c d\u1ecbch v\u1ee5 c\u1ed1t l\u00f5i<br>nh\u01b0: qu\u1ea3n l\u00fd b\u1ed9 nh\u1edb, qu\u1ea3n l\u00fd ti\u1ec3u tr\u00ecnh, v\u00e0 qu\u1ea3n l\u00fd t\u1eeb xa. Ngo\u00e0i ra n\u00f3 c\u00f2n th\u00fac \u0111\u1ea9y vi\u1ec7c s\u1eed<br>d\u1ee5ng ki\u1ec3u an to\u00e0n v\u00e0 c\u00e1c h\u00ecnh th\u1ee9c kh\u00e1c c\u1ee7a vi\u1ec7c ch\u00ednh x\u00e1c m\u00e3 ngu\u1ed3n, \u0111\u1ea3m b\u1ea3o cho vi\u1ec7c th\u1ef1c<br>hi\u1ec7n \u0111\u01b0\u1ee3c b\u1ea3o m\u1eadt v\u00e0 m\u1ea1nh m\u1ebd. Th\u1eadt v\u1eady, kh\u00e1i ni\u1ec7m qu\u1ea3n l\u00fd m\u00e3 ngu\u1ed3n l\u00e0 nguy\u00ean l\u00fd n\u1ec1n t\u1ea3ng<br>c\u1ee7a runtime. M\u00e3 ngu\u1ed3n m\u00e0 \u0111\u00edch t\u1edbi runtime th\u00ec \u0111\u01b0\u1ee3c bi\u1ebft nh\u01b0 l\u00e0 m\u00e3 ngu\u1ed3n \u0111\u01b0\u1ee3c qu\u1ea3n l\u00fd<br>(managed code). Trong khi \u0111\u00f3 m\u00e3 ngu\u1ed3n m\u00e0 kh\u00f4ng c\u00f3 \u0111\u00edch t\u1edbi runtime th\u00ec \u0111\u01b0\u1ee3c bi\u1ebft nh\u01b0 m\u00e3<br>ngu\u1ed3n kh\u00f4ng \u0111\u01b0\u1ee3c qu\u1ea3n l\u00fd (unmanaged code).<br>Th\u01b0 vi\u1ec7n l\u1edbp, m\u1ed9t th\u00e0nh ph\u1ea7n ch\u00ednh kh\u00e1c c\u1ee7a .NET Framework l\u00e0 m\u1ed9t t\u1eadp h\u1ee3p h\u01b0\u1edbng \u0111\u1ed1i<br>t\u01b0\u1ee3ng c\u1ee7a c\u00e1c ki\u1ec3u d\u1eef li\u1ec7u \u0111\u01b0\u1ee3c d\u00f9ng l\u1ea1i, n\u00f3 cho ph\u00e9p ch\u00fang ta c\u00f3 th\u1ec3 ph\u00e1t tri\u1ec3n nh\u1eefng \u1ee9ng<br>d\u1ee5ng t\u1eeb nh\u1eefng \u1ee9ng d\u1ee5ng truy\u1ec1n th\u1ed1ng command-line hay nh\u1eefng \u1ee9ng d\u1ee5ng c\u00f3 giao di\u1ec7n \u0111\u1ed3<br>h\u1ecda (GUI) \u0111\u1ebfn nh\u1eefng \u1ee9ng d\u1ee5ng m\u1edbi nh\u1ea5t \u0111\u01b0\u1ee3c cung c\u1ea5p b\u1edfi ASP.NET, nh\u01b0 l\u00e0 Web Form v\u00e0<br>d\u1ecbch v\u1ee5 XML Web.<\/p>\n\n\n\n<p>C\u00e1c ch\u1ee9c n\u0103ng nh\u1ea1y c\u1ea3m kh\u00e1c.<br>CLR th\u00fac \u0111\u1ea9y vi\u1ec7c m\u00e3 ngu\u1ed3n th\u1ef1c hi\u1ec7n vi\u1ec7c truy c\u1eadp \u0111\u01b0\u1ee3c b\u1ea3o m\u1eadt. V\u00ed d\u1ee5, ng\u01b0\u1eddi s\u1eed d\u1ee5ng<br>gi\u1edbi h\u1ea1n r\u1eb1ng vi\u1ec7c th\u1ef1c thi nh\u00fang v\u00e0o trong m\u1ed9t trang web c\u00f3 th\u1ec3 ch\u1ea1y \u0111\u01b0\u1ee3c ho\u1ea1t h\u00ecnh tr\u00ean<br>m\u00e0n h\u00ecnh hay h\u00e1t m\u1ed9t b\u1ea3n nh\u1ea1c, nh\u01b0ng kh\u00f4ng th\u1ec3 truy c\u1eadp \u0111\u01b0\u1ee3c d\u1eef li\u1ec7u ri\u00eang t\u01b0, t\u1eadp tin h\u1ec7<br>th\u1ed1ng, hay truy c\u1eadp m\u1ea1ng. Do \u0111\u00f3, \u0111\u1eb7c t\u00ednh b\u1ea3o m\u1eadt c\u1ee7a CLR cho ph\u00e9p nh\u1eefng ph\u1ea7n m\u1ec1m \u0111\u00f3ng<br>g\u00f3i tr\u00ean Inernet c\u00f3 nhi\u1ec1u \u0111\u1eb7c t\u00ednh m\u00e0 kh\u00f4ng \u1ea3nh h\u01b0\u1edfng \u0111\u1ebfn vi\u1ec7c b\u1ea3o m\u1eadt h\u1ec7 th\u1ed1ng.<br>CLR c\u00f2n th\u00fac \u0111\u1ea9y cho m\u00e3 ngu\u1ed3n \u0111\u01b0\u1ee3c th\u1ef1c thi m\u1ea1nh m\u1ebd h\u01a1n b\u1eb1ng vi\u1ec7c th\u1ef1c thi m\u00e3 ngu\u1ed3n<br>ch\u00ednh x\u00e1c v\u00e0 s\u1ef1 x\u00e1c nh\u1eadn m\u00e3 ngu\u1ed3n. N\u1ec1n t\u1ea3ng c\u1ee7a vi\u1ec7c th\u1ef1c hi\u1ec7n n\u00e0y l\u00e0 Common Type<br>System (CTS). CTS \u0111\u1ea3m b\u1ea3o r\u1eb1ng nh\u1eefng m\u00e3 ngu\u1ed3n \u0111\u01b0\u1ee3c qu\u1ea3n l\u00fd th\u00ec \u0111\u01b0\u1ee3c t\u1ef1 m\u00f4 t\u1ea3 (self\u0002describing). S\u1ef1 kh\u00e1c nhau gi\u1eefa Microsoft v\u00e0 c\u00e1c tr\u00ecnh bi\u00ean d\u1ecbch ng\u00f4n ng\u1eef c\u1ee7a h\u00e3ng th\u1ee9 ba l\u00e0<br>vi\u1ec7c t\u1ea1o ra c\u00e1c m\u00e3 ngu\u1ed3n \u0111\u01b0\u1ee3c qu\u1ea3n l\u00fd c\u00f3 th\u1ec3 th\u00edch h\u1ee3p v\u1edbi CTS. \u0110i\u1ec1u n\u00e0y th\u00ec m\u00e3 ngu\u1ed3n \u0111\u01b0\u1ee3c<br>qu\u1ea3n l\u00fd c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng nh\u1eefng ki\u1ec3u \u0111\u01b0\u1ee3c qu\u1ea3n l\u00fd kh\u00e1c v\u00e0 nh\u1eefng th\u1ec3 hi\u1ec7n, trong khi th\u00fac \u0111\u1ea9y<br>nghi\u00eam ng\u1eb7t vi\u1ec7c s\u1eed d\u1ee5ng ki\u1ec3u d\u1eef li\u1ec7u ch\u00ednh x\u00e1c v\u00e0 an to\u00e0n.<br>Th\u00eam v\u00e0o \u0111\u00f3, m\u00f4i tr\u01b0\u1eddng \u0111\u01b0\u1ee3c qu\u1ea3n l\u00fd c\u1ee7a runtime s\u1ebd th\u1ef1c hi\u1ec7n vi\u1ec7c t\u1ef1 \u0111\u1ed9ng x\u1eed l\u00fd layout<br>c\u1ee7a \u0111\u1ed1i t\u01b0\u1ee3ng v\u00e0 qu\u1ea3n l\u00fd nh\u1eefng tham chi\u1ebfu \u0111\u1ebfn \u0111\u1ed1i t\u01b0\u1ee3ng, gi\u1ea3i ph\u00f3ng ch\u00fang khi ch\u00fang kh\u00f4ng<br>c\u00f2n \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng n\u1eefa. Vi\u1ec7c qu\u1ea3n l\u00fd b\u1ed9 nh\u1edb t\u1ef1 \u0111\u1ed9ng n\u00e0y c\u00f2n gi\u1ea3i quy\u1ebft hai l\u1ed7i chung c\u1ee7a \u1ee9ng<br>d\u1ee5ng: thi\u1ebfu b\u1ed9 nh\u1edb v\u00e0 tham chi\u1ebfu b\u1ed9 nh\u1edb kh\u00f4ng h\u1ee3p l\u1ec7.<br>Trong khi runtime \u0111\u01b0\u1ee3c thi\u1ebft k\u1ebf cho nh\u1eefng ph\u1ea7n m\u1ec1m c\u1ee7a t\u01b0\u01a1ng lai, n\u00f3 c\u0169ng h\u1ed7 tr\u1ee3 cho<br>ph\u00e2n m\u1ec1m ng\u00e0y nay v\u00e0 tr\u01b0\u1edbc \u0111\u00e2y. Kh\u1ea3 n\u0103ng ho\u1ea1t \u0111\u1ed9ng qua l\u1ea1i gi\u1eefa m\u00e3 ngu\u1ed3n \u0111\u01b0\u1ee3c qu\u1ea3n l\u00fd v\u00e0<br>m\u00e3 ngu\u1ed3n kh\u00f4ng \u0111\u01b0\u1ee3c qu\u1ea3n l\u00fd cho ph\u00e9p ng\u01b0\u1eddi ph\u00e1t tri\u1ec3n ti\u1ebfp t\u1ee5c s\u1eed d\u1ee5ng nh\u1eefng th\u00e0nh ph\u1ea7n<br>c\u1ea7n thi\u1ebft c\u1ee7a COM v\u00e0 DLL.<br>Rutime \u0111\u01b0\u1ee3c thi\u1ebft k\u1ebf \u0111\u1ec3 c\u1ea3i ti\u1ebfn hi\u1ec7u su\u1ea5t th\u1ef1c hi\u1ec7n. M\u1eb7c d\u00f9 CLR cung c\u1ea5p nhi\u1ec1u c\u00e1c ti\u00eau<br>chu\u1ea9n d\u1ecbch v\u1ee5 runtime, nh\u01b0ng m\u00e3 ngu\u1ed3n \u0111\u01b0\u1ee3c qu\u1ea3n l\u00fd kh\u00f4ng bao gi\u1edd \u0111\u01b0\u1ee3c d\u1ecbch. C\u00f3 m\u1ed9t \u0111\u1eb7c<br>t\u00ednh g\u1ecdi l\u00e0 Just-in-Time (JIT) bi\u00ean d\u1ecbch t\u1ea5t c\u1ea3 nh\u1eefng m\u00e3 ngu\u1ed3n \u0111\u01b0\u1ee3c qu\u1ea3n l\u00fd v\u00e0o trong ng\u00f4n<br>ng\u1eef m\u00e1y c\u1ee7a h\u1ec7 th\u1ed1ng v\u00e0o l\u00fac m\u00e0 n\u00f3 \u0111\u01b0\u1ee3c th\u1ef1c thi. Khi \u0111\u00f3, tr\u00ecnh qu\u1ea3n l\u00fd b\u1ed9 nh\u1edb x\u00f3a b\u1ecf<br>nh\u1eefng ph\u00e2n m\u1ea3nh b\u1ed9 nh\u1edb n\u1ebfu c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c v\u00e0 gia t\u0103ng tham chi\u1ebfu b\u1ed9 nh\u1edb c\u1ee5c b\u1ed9.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span id=\"Thu_vien_lop_NET_Framework\">Th\u01b0 vi\u1ec7n l\u1edbp .NET Framework<\/span><\/h2>\n\n\n\n<p><br>Th\u01b0 vi\u1ec7n l\u1edbp .NET Framework l\u00e0 m\u1ed9t t\u1eadp h\u1ee3p nh\u1eefng ki\u1ec3u d\u1eef li\u1ec7u \u0111\u01b0\u1ee3c d\u00f9ng l\u1ea1i v\u00e0 \u0111\u01b0\u1ee3c<br>k\u1ebft h\u1ee3p ch\u1eb7t ch\u1ebd v\u1edbi Common Language Runtime. Th\u01b0 vi\u1ec7n l\u1edbp l\u00e0 h\u01b0\u1edbng \u0111\u1ed1i t\u01b0\u1ee3ng cung c\u1ea5p<br>nh\u1eefng ki\u1ec3u d\u1eef li\u1ec7u m\u00e0 m\u00e3 ngu\u1ed3n \u0111\u01b0\u1ee3c qu\u1ea3n l\u00fd c\u1ee7a ch\u00fang ta c\u00f3 th\u1ec3 d\u1eabn xu\u1ea5t. \u0110i\u1ec1u n\u00e0y kh\u00f4ng<br>ch\u1ec9 l\u00e0m cho nh\u1eefng ki\u1ec3u d\u1eef li\u1ec7u c\u1ee7a .NET Framework d\u1ec5 s\u1eed d\u1ee5ng m\u00e0 c\u00f2n l\u00e0m gi\u1ea3m th\u1eddi gian<br>li\u00ean quan \u0111\u1ebfn vi\u1ec7c h\u1ecdc \u0111\u1eb7c t\u00ednh m\u1edbi c\u1ee7a .NET Framework. Th\u00eam v\u00e0o \u0111\u00f3, c\u00e1c th\u00e0nh ph\u1ea7n c\u1ee7a<br>c\u00e1c h\u00e3ng th\u1ee9 ba c\u00f3 th\u1ec3 t\u00edch h\u1ee3p v\u1edbi nh\u1eefng l\u1edbp trong .NET Framework.<br>C\u0169ng nh\u01b0 mong \u0111\u1ee3i c\u1ee7a ng\u01b0\u1eddi ph\u00e1t tri\u1ec3n v\u1edbi th\u01b0 vi\u1ec7n l\u1edbp h\u01b0\u1edbng \u0111\u1ed1i t\u01b0\u1ee3ng, ki\u1ec3u d\u1eef li\u1ec7u .<br>NET Framework cho ph\u00e9p ng\u01b0\u1eddi ph\u00e1t tri\u1ec3n thi\u1ebft l\u1eadp nhi\u1ec1u m\u1ee9c \u0111\u1ed9 th\u00f4ng d\u1ee5ng c\u1ee7a vi\u1ec7c l\u1eadp<br>tr\u00ecnh, bao g\u1ed3m c\u00e1c nhi\u1ec7m v\u1ee5 nh\u01b0: qu\u1ea3n l\u00fd chu\u1ed7i, thu th\u1eadp hay ch\u1ecdn l\u1ecdc d\u1eef li\u1ec7u, k\u1ebft n\u1ed1i v\u1edbi c\u01a1<br>c\u1edf d\u1eef li\u1ec7u, v\u00e0 truy c\u1eadp t\u1eadp tin. Ngo\u00e0i nh\u1eefng nhi\u1ec7m v\u1ee5 th\u00f4ng d\u1ee5ng tr\u00ean. Th\u01b0 vi\u1ec7n l\u1edbp c\u00f2n \u0111\u01b0a<br>v\u00e0o nh\u1eefng ki\u1ec3u d\u1eef li\u1ec7u \u0111\u1ec3 h\u1ed7 tr\u1ee3 cho nh\u1eefng k\u1ecbch b\u1ea3n ph\u00e1t tri\u1ec3n chuy\u00ean bi\u1ec7t kh\u00e1c. V\u00ed d\u1ee5 ng\u01b0\u1eddi<br>ph\u00e1t tri\u1ec3n c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng .NET Framework \u0111\u1ec3 ph\u00e1t tri\u1ec3n nh\u1eefng ki\u1ec3u \u1ee9ng d\u1ee5ng v\u00e0 d\u1ecbch v\u1ee5 nh\u01b0<br>sau:<br>\uf072 \u1ee8 ng d\u1ee5ng Console<br>\uf072 \u1ee8 ng d\u1ee5ng giao di\u1ec7n GUI tr\u00ean Windows (Windows Forms)<br>\uf072 \u1ee8 ng d\u1ee5ng ASP.NET<br>\uf072 D\u1ecbch v\u1ee5 XML Web<br>\uf072 D\u1ecbch v\u1ee5 Windows<br>Trong \u0111\u00f3 nh\u1eefng l\u1edbp Windows Forms cung c\u1ea5p m\u1ed9t t\u1eadp h\u1ee3p l\u1edbn c\u00e1c ki\u1ec3u d\u1eef li\u1ec7u nh\u1eb1m<br>l\u00e0m \u0111\u01a1n gi\u1ea3n vi\u1ec7c ph\u00e1t tri\u1ec3n c\u00e1c \u1ee9ng d\u1ee5ng GUI ch\u1ea1y tr\u00ean Windows. C\u00f2n n\u1ebfu nh\u01b0 vi\u1ebft c\u00e1c \u1ee9ng<br>d\u1ee5ng ASP.NET th\u00ec c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng c\u00e1c l\u1edbp Web Forms trong th\u01b0 vi\u1ec7n .NET Framework<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span id=\"Phat_trien_ung_dung_Client\">Ph\u00e1t tri\u1ec3n \u1ee9ng d\u1ee5ng Client<\/span><\/h2>\n\n\n\n<p><br>Nh\u1eefng \u1ee9ng d\u1ee5ng client c\u0169ng g\u1ea7n v\u1edbi nh\u1eefng \u1ee9ng d\u1ee5ng ki\u1ec3u truy\u1ec1n th\u1ed1ng \u0111\u01b0\u1ee3c l\u1eadp tr\u00ecnh<br>d\u1ef1a tr\u00ean Windows. \u0110\u00e2y l\u00e0 nh\u1eefng ki\u1ec3u \u1ee9ng d\u1ee5ng hi\u1ec3n th\u1ecb nh\u1eefng c\u1eeda s\u1ed5 hay nh\u1eefng form tr\u00ean<br>desktop cho ph\u00e9p ng\u01b0\u1eddi d\u00f9ng th\u1ef1c hi\u1ec7n m\u1ed9t thao t\u00e1c hay nhi\u1ec7m v\u1ee5 n\u00e0o \u0111\u00f3. Nh\u1eefng \u1ee9ng d\u1ee5ng<br>client bao g\u1ed3m nh\u1eefng \u1ee9ng d\u1ee5ng nh\u01b0 x\u1eed l\u00fd v\u0103n b\u1ea3n, x\u1eed l\u00fd b\u1ea3ng t\u00ednh, nh\u1eefng \u1ee9ng d\u1ee5ng trong<br>l\u0129nh v\u1ef1c th\u01b0\u01a1ng m\u1ea1i nh\u01b0 c\u00f4ng c\u1ee5 nh\u1eadp li\u1ec7u, c\u00f4ng c\u1ee5 t\u1ea1o b\u00e1o c\u00e1o\u2026Nh\u1eefng \u1ee9ng d\u1ee5ng client n\u00e0y<br>th\u01b0\u1eddng s\u1eed d\u1ee5ng nh\u1eefng c\u1eeda s\u1ed5, menu, toolbar, button hay c\u00e1c th\u00e0nh ph\u1ea7n GUI kh\u00e1c, v\u00e0 ch\u00fang<br>th\u01b0\u1eddng truy c\u1eadp c\u00e1c t\u00e0i nguy\u00ean c\u1ee5c b\u1ed9 nh\u01b0 l\u00e0 c\u00e1c t\u1eadp tin h\u1ec7 th\u1ed1ng, c\u00e1c thi\u1ebft b\u1ecb ngo\u1ea1i vi nh\u01b0<br>m\u00e1y in.<br>M\u1ed9t lo\u1ea1i \u1ee9ng d\u1ee5ng client kh\u00e1c v\u1edbi \u1ee9ng d\u1ee5ng truy\u1ec1n th\u1ed1ng nh\u01b0 tr\u00ean l\u00e0 ActiveX control<br>(hi\u1ec7n nay n\u00f3 \u0111\u01b0\u1ee3c thay th\u1ebf b\u1edfi c\u00e1c Windows Form control) \u0111\u01b0\u1ee3c nh\u00fang v\u00e0o c\u00e1c trang web<br>tr\u00ean Internet. C\u00e1c \u1ee9ng d\u1ee5ng n\u00e0y c\u0169ng gi\u1ed1ng nh\u01b0 nh\u1eefng \u1ee9ng d\u1ee5ng client kh\u00e1c l\u00e0 c\u00f3 th\u1ec3 truy c\u1eadp<br>t\u00e0i nguy\u00ean c\u1ee5c b\u1ed9.<br>Trong qu\u00e1 kh\u1ee9, nh\u1eefng nh\u00e0 ph\u00e1t tri\u1ec3n c\u00f3 th\u1ec3 t\u1ea1o c\u00e1c \u1ee9ng d\u1ee5ng s\u1eed d\u1ee5ng C\/C++ th\u00f4ng qua<br>k\u1ebft n\u1ed1i v\u1edbi MFC ho\u1eb7c s\u1eed d\u1ee5ng m\u00f4i tr\u01b0\u1eddng ph\u00e1t tri\u1ec3n \u1ee9ng d\u1ee5ng nhanh (RAD: Rapi Application Development). .NET Framework t\u00edch h\u1ee3p di\u1ec7n m\u1ea1o c\u1ee7a nh\u1eefng s\u1ea3n ph\u1ea9m th\u00e0nh<br>m\u1ed9t. M\u00f4i tr\u01b0\u1eddng ph\u00e1t tri\u1ec3n c\u1ed1 \u0111\u1ecbnh l\u00e0m \u0111\u01a1n gi\u1ea3n m\u1ea1nh m\u1ebd s\u1ef1 ph\u00e1t tri\u1ec3n c\u1ee7a \u1ee9ng d\u1ee5ng client.<br>Nh\u1eefng l\u1edbp .NET Framework ch\u1ee9a trong .NET Framework \u0111\u01b0\u1ee3c thi\u1ebft k\u1ebf cho vi\u1ec7c s\u1eed d\u1ee5ng<br>ph\u00e1t tri\u1ec3n c\u00e1c GUI. \u0110i\u1ec1u n\u00e0y cho ph\u00e9p ng\u01b0\u1eddi ph\u00e1t tri\u1ec3n nhanh ch\u00f3ng v\u00e0 d\u1ec5 d\u00e0ng t\u1ea1o c\u00e1c c\u1eeda<br>s\u1ed5, button, menu, toolbar, v\u00e0 c\u00e1c th\u00e0nh ph\u1ea7n kh\u00e1c trong c\u00e1c \u1ee9ng d\u1ee5ng \u0111\u01b0\u1ee3c vi\u1ebft ph\u1ee5c v\u1ee5 cho<br>l\u0129nh v\u1ef1c th\u01b0\u01a1ng m\u1ea1i. V\u00ed d\u1ee5 nh\u01b0, .NET cung c\u1ea5p nh\u1eefng thu\u1ed9c t\u00ednh \u0111\u01a1n gi\u1ea3n \u0111\u1ec3 hi\u1ec7u ch\u1ec9nh c\u00e1c<br>hi\u1ec7u \u1ee9ng visual li\u00ean quan \u0111\u1ebfn form. Trong v\u00e0i tr\u01b0\u1eddng h\u1ee3p h\u1ec7 \u0111i\u1ec1u h\u00e0nh kh\u00f4ng h\u1ed7 tr\u1ee3 vi\u1ec7c<br>thay \u0111\u1ed5i nh\u1eefng thu\u1ed9c t\u00ednh n\u00e0y m\u1ed9t c\u00e1ch tr\u1ef1c ti\u1ebfp, v\u00e0 trong tr\u01b0\u1eddng h\u1ee3p n\u00e0y .NET t\u1ef1 \u0111\u1ed9ng t\u1ea1o<br>l\u1ea1i form. \u0110\u00e2y l\u00e0 m\u1ed9t trong nhi\u1ec1u c\u00e1ch m\u00e0 .NET t\u00edch h\u1ee3p vi\u1ec7c ph\u00e1t tri\u1ec3n giao di\u1ec7n l\u00e0m cho m\u00e3<br>ngu\u1ed3n \u0111\u01a1n gi\u1ea3n v\u00e0 m\u1ea1nh m\u1ebd h\u01a1n.<br>Kh\u00f4ng gi\u1ed1ng nh\u01b0 ActiveX control, Windows Form control c\u00f3 s\u1ef1 truy c\u1eadp gi\u1edbi h\u1ea1n \u0111\u1ebfn<br>m\u00e1y c\u1ee7a ng\u01b0\u1eddi s\u1eed d\u1ee5ng. \u0110i\u1ec1u n\u00e0y c\u00f3 ngh\u0129a r\u1eb1ng m\u00e0 ngu\u1ed3n th\u1ef1c thi nh\u1ecb ph\u00e2n c\u00f3 th\u1ec3 truy c\u1eadp<br>m\u1ed9t v\u00e0i t\u00e0i nguy\u00ean trong m\u00e1y c\u1ee7a ng\u01b0\u1eddi s\u1eed d\u1ee5ng (nh\u01b0 c\u00e1c th\u00e0nh ph\u1ea7n \u0111\u1ed3 h\u1ecda hay m\u1ed9t s\u1ed1 t\u1eadp<br>tin \u0111\u01b0\u1ee3c gi\u1edbi h\u1ea1n) m\u00e0 kh\u00f4ng th\u1ec3 truy c\u1eadp \u0111\u1ebfn nh\u1eefng t\u00e0i nguy\u00ean kh\u00e1c. Nguy\u00ean nh\u00e2n l\u00e0 s\u1ef1 b\u1ea3o<br>m\u1eadt truy c\u1eadp c\u1ee7a m\u00e3 ngu\u1ed3n. L\u00fac n\u00e0y c\u00e1c \u1ee9ng d\u1ee5ng \u0111\u01b0\u1ee3c c\u00e0i \u0111\u1eb7t tr\u00ean m\u00e1y ng\u01b0\u1eddi d\u00f9ng c\u00f3 th\u1ec3<br>an to\u00e0n \u0111\u1ec3 \u0111\u01b0a l\u00ean Internet.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span id=\"Bien_dich_va_MSIL\">Bi\u00ean d\u1ecbch v\u00e0 MSIL<\/span><\/h2>\n\n\n\n<p><br>Trong .NET Framework, ch\u01b0\u01a1ng tr\u00ecnh kh\u00f4ng \u0111\u01b0\u1ee3c bi\u00ean d\u1ecbch v\u00e0o c\u00e1c t\u1eadp tin th\u1ef1c thi m\u00e0<br>thay v\u00e0o \u0111\u00f3 ch\u00fang \u0111\u01b0\u1ee3c bi\u00ean d\u1ecbch v\u00e0o nh\u1eefng t\u1eadp tin trung gian g\u1ecdi l\u00e0 Microsoft Intermediate<br>Language (MSIL). Nh\u1eefng t\u1eadp tin MSIL \u0111\u01b0\u1ee3c t\u1ea1o ra t\u1eeb C# c\u0169ng t\u01b0\u01a1ng t\u1ef1 nh\u01b0 c\u00e1c t\u1eadp tin MSIL<br>\u0111\u01b0\u1ee3c t\u1ea1o ra t\u1eeb nh\u1eefng ng\u00f4n ng\u1eef kh\u00e1c c\u1ee7a .NET, platform \u1edf \u0111\u00e2y kh\u00f4ng c\u1ea7n bi\u1ebft ng\u00f4n ng\u1eef c\u1ee7a<br>m\u00e3 ngu\u1ed3n. \u0110i\u1ec1u quan tr\u1ecdng ch\u00ednh y\u1ebfu c\u1ee7a CLR l\u00e0 chung (common), c\u00f9ng m\u1ed9t runtime h\u1ed7 tr\u1ee3<br>ph\u00e1t tri\u1ec3n trong C# c\u0169ng nh\u01b0 trong VB.NET.<br>M\u00e3 ngu\u1ed3n C# \u0111\u01b0\u1ee3c bi\u00ean d\u1ecbch v\u00e0o MSIL khi ch\u00fang ta build project. M\u00e3 MSIL n\u00e0y \u0111\u01b0\u1ee3c<br>l\u01b0u v\u00e0o trong m\u1ed9t t\u1eadp tin tr\u00ean \u0111\u0129a. Khi ch\u00fang ta ch\u1ea1y ch\u01b0\u01a1ng tr\u00ecnh, th\u00ec MSIL \u0111\u01b0\u1ee3c bi\u00ean d\u1ecbch<br>m\u1ed9t l\u1ea7n n\u1eefa, s\u1eed d\u1ee5ng tr\u00ecnh bi\u00ean d\u1ecbch Just-In-Time (JIT). K\u1ebft qu\u1ea3 l\u00e0 m\u00e3 m\u00e1y \u0111\u01b0\u1ee3c th\u1ef1c thi b\u1edfi<br>b\u1ed9 x\u1eed l\u00fd c\u1ee7a m\u00e1y.<br>Tr\u00ecnh bi\u00ean d\u1ecbch JIT ti\u00eau chu\u1ea9n th\u00ec th\u1ef1c hi\u1ec7n theo y\u00eau c\u1ea7u. Khi m\u1ed9t ph\u01b0\u01a1ng th\u1ee9c \u0111\u01b0\u1ee3c g\u1ecdi,<br>tr\u00ecnh bi\u00ean d\u1ecbch JIT ph\u00e2n t\u00edch MSIL v\u00e0 t\u1ea1o ra s\u1ea3n ph\u1ea9m m\u00e3 m\u00e1y c\u00f3 hi\u1ec7u qu\u1ea3 cao, m\u00e3 n\u00e0y c\u00f3 th\u1ec3<br>ch\u1ea1y r\u1ea5t nhanh. Tr\u00ecnh bi\u00ean d\u1ecbch JIT \u0111\u1ee7 th\u00f4ng minh \u0111\u1ec3 nh\u1eadn ra khi m\u1ed9t m\u00e3 \u0111\u00e3 \u0111\u01b0\u1ee3c bi\u00ean d\u1ecbch,<br>do v\u1eady khi \u1ee9ng d\u1ee5ng ch\u1ea1y th\u00ec vi\u1ec7c bi\u00ean d\u1ecbch ch\u1ec9 x\u1ea3y ra khi c\u1ea7n thi\u1ebft, t\u1ee9c l\u00e0 ch\u1ec9 bi\u00ean d\u1ecbch m\u00e3<br>MSIL ch\u01b0a bi\u00ean d\u1ecbch ra m\u00e3 m\u00e1y. Khi \u0111\u00f3 m\u1ed9t \u1ee9ng d\u1ee5ng .NET th\u1ef1c hi\u1ec7n, ch\u00fang c\u00f3 xu h\u01b0\u1edbng l\u00e0<br>ch\u1ea1y nhanh v\u00e0 nhanh h\u01a1n n\u1eefa, c\u0169ng nh\u01b0 l\u00e0 nh\u1eefng m\u00e3 ngu\u1ed3n \u0111\u01b0\u1ee3c bi\u00ean d\u1ecbch r\u1ed3i th\u00ec \u0111\u01b0\u1ee3c d\u00f9ng<br>l\u1ea1i.<br>Do t\u1ea5t c\u1ea3 c\u00e1c ng\u00f4n ng\u1eef .NET Framework c\u00f9ng t\u1ea1o ra s\u1ea3n ph\u1ea9m MSIL gi\u1ed1ng nhau, n\u00ean k\u1ebft<br>qu\u1ea3 l\u00e0 m\u1ed9t \u0111\u1ed1i t\u01b0\u1ee3ng \u0111\u01b0\u1ee3c t\u1ea1o ra t\u1eeb ng\u00f4n ng\u1eef n\u00e0y c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c truy c\u1eadp hay \u0111\u01b0\u1ee3c d\u1eabn xu\u1ea5t t\u1eeb<br>Microsoft .NET<br>15<br>Ng\u00f4n Ng\u1eef L\u1eadp Tr\u00ecnh C#<br>m\u1ed9t \u0111\u1ed1i t\u01b0\u1ee3ng c\u1ee7a ng\u00f4n ng\u1eef kh\u00e1c trong .NET. V\u00ed d\u1ee5, ng\u01b0\u1eddi ph\u00e1t tri\u1ec3n c\u00f3 th\u1ec3 t\u1ea1o m\u1ed9t l\u1edbp c\u01a1<br>s\u1edf trong VB.NET v\u00e0 sau \u0111\u00f3 d\u1eabn xu\u1ea5t n\u00f3 trong C# m\u1ed9t c\u00e1ch d\u1ec5 d\u00e0ng.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span id=\"Ngon_ngu_C\">Ng\u00f4n ng\u1eef C#<\/span><\/h2>\n\n\n\n<p><br>Ng\u00f4n ng\u1eef C# kh\u00e1 \u0111\u01a1n gi\u1ea3n, ch\u1ec9 kho\u1ea3ng 80 t\u1eeb kh\u00f3a v\u00e0 h\u01a1n m\u01b0\u1eddi m\u1ea5y ki\u1ec3u d\u1eef li\u1ec7u \u0111\u01b0\u1ee3c<br>x\u00e2y d\u1ef1ng s\u1eb5n. Tuy nhi\u00ean, ng\u00f4n ng\u1eef C# c\u00f3 \u00fd ngh\u0129a cao khi n\u00f3 th\u1ef1c thi nh\u1eefng kh\u00e1i ni\u1ec7m l\u1eadp<br>tr\u00ecnh hi\u1ec7n \u0111\u1ea1i. C# bao g\u1ed3m t\u1ea5t c\u1ea3 nh\u1eefng h\u1ed7 tr\u1ee3 cho c\u1ea5u tr\u00fac, th\u00e0nh ph\u1ea7n component, l\u1eadp tr\u00ecnh h\u01b0\u1edbng \u0111\u1ed1i t\u01b0\u1ee3ng. Nh\u1eefng t\u00ednh ch\u1ea5t \u0111\u00f3 hi\u1ec7n di\u1ec7n trong m\u1ed9t ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh hi\u1ec7n \u0111\u1ea1i. V\u00e0 ng\u00f4n ng\u1eef C# h\u1ed9i \u0111\u1ee7 nh\u1eefng \u0111i\u1ec1u ki\u1ec7n nh\u01b0 v\u1eady, h\u01a1n n\u1eefa n\u00f3 \u0111\u01b0\u1ee3c x\u00e2y d\u1ef1ng tr\u00ean n\u1ec1n t\u1ea3ng c\u1ee7a hai ng\u00f4n ng\u1eef m\u1ea1nh nh\u1ea5t l\u00e0 C++ v\u00e0 Java.<br>Ng\u00f4n ng\u1eef C# \u0111\u01b0\u1ee3c ph\u00e1t tri\u1ec3n b\u1edfi \u0111\u1ed9i ng\u0169 k\u1ef9 s\u01b0 c\u1ee7a Microsoft, trong \u0111\u00f3 ng\u01b0\u1eddi d\u1eabn \u0111\u1ea7u l\u00e0<br>Anders Hejlsberg v\u00e0 Scott Wiltamuth. C\u1ea3 hai ng\u01b0\u1eddi n\u00e0y \u0111i\u1ec1u l\u00e0 nh\u1eefng ng\u01b0\u1eddi n\u1ed5i ti\u1ebfng, trong<br>\u0111\u00f3 Anders Hejlsberg \u0111\u01b0\u1ee3c bi\u1ebft \u0111\u1ebfn l\u00e0 t\u00e1c gi\u1ea3 c\u1ee7a Turbo Pascal, m\u1ed9t ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh PC<br>ph\u1ed5 bi\u1ebfn. V\u00e0 \u00f4ng \u0111\u1ee9ng \u0111\u1ea7u nh\u00f3m thi\u1ebft k\u1ebf Borland Delphi, m\u1ed9t trong nh\u1eefng th\u00e0nh c\u00f4ng \u0111\u1ea7u<br>ti\u00ean c\u1ee7a vi\u1ec7c x\u00e2y d\u1ef1ng m\u00f4i tr\u01b0\u1eddng ph\u00e1t tri\u1ec3n t\u00edch h\u1ee3p (IDE) cho l\u1eadp tr\u00ecnh client\/server.<br>Ph\u1ea7n c\u1ed1t l\u00f5i hay c\u00f2n g\u1ecdi l\u00e0 tr\u00e1i tim c\u1ee7a b\u1ea5t c\u1ee9 ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh h\u01b0\u1edbng \u0111\u1ed1i t\u01b0\u1ee3ng l\u00e0 s\u1ef1 h\u1ed7<br>tr\u1ee3 c\u1ee7a n\u00f3 cho vi\u1ec7c \u0111\u1ecbnh ngh\u0129a v\u00e0 l\u00e0m vi\u1ec7c v\u1edbi nh\u1eefng l\u1edbp. Nh\u1eefng l\u1edbp th\u00ec \u0111\u1ecbnh ngh\u0129a nh\u1eefng<br>ki\u1ec3u d\u1eef li\u1ec7u m\u1edbi, cho ph\u00e9p ng\u01b0\u1eddi ph\u00e1t tri\u1ec3n m\u1edf r\u1ed9ng ng\u00f4n ng\u1eef \u0111\u1ec3 t\u1ea1o m\u00f4 h\u00ecnh t\u1ed1t h\u01a1n \u0111\u1ec3 gi\u1ea3i quy\u1ebft v\u1ea5n \u0111\u1ec1. Ng\u00f4n ng\u1eef C# ch\u1ee9a nh\u1eefng t\u1eeb kh\u00f3a cho vi\u1ec7c khai b\u00e1o nh\u1eefng ki\u1ec3u l\u1edbp \u0111\u1ed1i t\u01b0\u1ee3ng m\u1edbi v\u00e0 nh\u1eefng ph\u01b0\u01a1ng th\u1ee9c hay thu\u1ed9c t\u00ednh c\u1ee7a l\u1edbp, v\u00e0 cho vi\u1ec7c th\u1ef1c thi \u0111\u00f3ng g\u00f3i, k\u1ebf th\u1eeba, v\u00e0 \u0111a h\u00ecnh, ba thu\u1ed9c t\u00ednh c\u01a1 b\u1ea3n c\u1ee7a b\u1ea5t c\u1ee9 ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh h\u01b0\u1edbng \u0111\u1ed1i t\u01b0\u1ee3ng.<br><\/p>\n\n\n\n<p>Trong ng\u00f4n ng\u1eef C# m\u1ecdi th\u1ee9 li\u00ean quan \u0111\u1ebfn khai b\u00e1o l\u1edbp \u0111i\u1ec1u \u0111\u01b0\u1ee3c t\u00ecm th\u1ea5y trong ph\u1ea7n<br>khai b\u00e1o c\u1ee7a n\u00f3. \u0110\u1ecbnh ngh\u0129a m\u1ed9t l\u1edbp trong ng\u00f4n ng\u1eef C# kh\u00f4ng \u0111\u00f2i h\u1ecfi ph\u1ea3i chia ra t\u1eadp tin<br>header v\u00e0 t\u1eadp tin ngu\u1ed3n gi\u1ed1ng nh\u01b0 trong ng\u00f4n ng\u1eef C++. H\u01a1n th\u1ebf n\u1eefa, ng\u00f4n ng\u1eef C# h\u1ed7 tr\u1ee3<br>ki\u1ec3u XML, cho ph\u00e9p ch\u00e8n c\u00e1c tag XML \u0111\u1ec3 ph\u00e1t sinh t\u1ef1 \u0111\u1ed9ng c\u00e1c document cho l\u1edbp.<br>C# c\u0169ng h\u1ed7 tr\u1ee3 giao di\u1ec7n interface, n\u00f3 \u0111\u01b0\u1ee3c xem nh\u01b0 m\u1ed9t cam k\u1ebft v\u1edbi m\u1ed9t l\u1edbp cho nh\u1eefng<br>d\u1ecbch v\u1ee5 m\u00e0 giao di\u1ec7n quy \u0111\u1ecbnh. Trong ng\u00f4n ng\u1eef C#, m\u1ed9t l\u1edbp ch\u1ec9 c\u00f3 th\u1ec3 k\u1ebf th\u1eeba t\u1eeb duy nh\u1ea5t<br>m\u1ed9t l\u1edbp cha, t\u1ee9c l\u00e0 kh\u00f4ng cho \u0111a k\u1ebf th\u1eeba nh\u01b0 trong ng\u00f4n ng\u1eef C++, tuy nhi\u00ean m\u1ed9t l\u1edbp c\u00f3 th\u1ec3 th\u1ef1c thi nhi\u1ec1u giao di\u1ec7n. Khi m\u1ed9t l\u1edbp th\u1ef1c thi m\u1ed9t giao di\u1ec7n th\u00ec n\u00f3 s\u1ebd h\u1ee9a l\u00e0 n\u00f3 s\u1ebd cung c\u1ea5p ch\u1ee9c n\u0103ng th\u1ef1c thi giao di\u1ec7n.<br>Trong ng\u00f4n ng\u1eef C#, nh\u1eefng c\u1ea5u tr\u00fac c\u0169ng \u0111\u01b0\u1ee3c h\u1ed7 tr\u1ee3, nh\u01b0ng kh\u00e1i ni\u1ec7m v\u1ec1 ng\u1eef ngh\u0129a c\u1ee7a<br>n\u00f3 thay \u0111\u1ed5i kh\u00e1c v\u1edbi C++. Trong C#, m\u1ed9t c\u1ea5u tr\u00fac \u0111\u01b0\u1ee3c gi\u1edbi h\u1ea1n, l\u00e0 ki\u1ec3u d\u1eef li\u1ec7u nh\u1ecf g\u1ecdn, v\u00e0<br>khi t\u1ea1o th\u1ec3 hi\u1ec7n th\u00ec n\u00f3 y\u00eau c\u1ea7u \u00edt h\u01a1n v\u1ec1 h\u1ec7 \u0111i\u1ec1u h\u00e0nh v\u00e0 b\u1ed9 nh\u1edb so v\u1edbi m\u1ed9t l\u1edbp. M\u1ed9t c\u1ea5u tr\u00fac th\u00ec kh\u00f4ng th\u1ec3 k\u1ebf th\u1eeba t\u1eeb m\u1ed9t l\u1edbp hay \u0111\u01b0\u1ee3c k\u1ebf th\u1eeba nh\u01b0ng m\u1ed9t c\u1ea5u tr\u00fac c\u00f3 th\u1ec3 th\u1ef1c thi m\u1ed9t giao di\u1ec7n<\/p>\n\n\n\n<p>Ng\u00f4n ng\u1eef C# cung c\u1ea5p nh\u1eefng \u0111\u1eb7c t\u00ednh h\u01b0\u1edbng th\u00e0nh ph\u1ea7n (component-oriented), nh\u01b0 l\u00e0<br>nh\u1eefng thu\u1ed9c t\u00ednh, nh\u1eefng s\u1ef1 ki\u1ec7n. L\u1eadp tr\u00ecnh h\u01b0\u1edbng th\u00e0nh ph\u1ea7n \u0111\u01b0\u1ee3c h\u1ed7 tr\u1ee3 b\u1edfi CLR cho ph\u00e9p<br>l\u01b0u tr\u1eef metadata v\u1edbi m\u00e3 ngu\u1ed3n cho m\u1ed9t l\u1edbp. Metadata m\u00f4 t\u1ea3 cho m\u1ed9t l\u1edbp, bao g\u1ed3m nh\u1eefng<br>ph\u01b0\u01a1ng th\u1ee9c v\u00e0 nh\u1eefng thu\u1ed9c t\u00ednh c\u1ee7a n\u00f3, c\u0169ng nh\u01b0 nh\u1eefng s\u1ef1 b\u1ea3o m\u1eadt c\u1ea7n thi\u1ebft v\u00e0 nh\u1eefng<br>thu\u1ed9c t\u00ednh kh\u00e1c. M\u00e3 ngu\u1ed3n ch\u1ee9a \u0111\u1ef1ng nh\u1eefng logic c\u1ea7n thi\u1ebft \u0111\u1ec3 th\u1ef1c hi\u1ec7n nh\u1eefng ch\u1ee9c n\u0103ng<br>c\u1ee7a n\u00f3.. Do v\u1eady, m\u1ed9t l\u1edbp \u0111\u01b0\u1ee3c bi\u00ean d\u1ecbch nh\u01b0 l\u00e0 m\u1ed9t kh\u1ed1i self-contained, n\u00ean m\u00f4i tr\u01b0\u1eddng<br>hosting bi\u1ebft \u0111\u01b0\u1ee3c c\u00e1ch \u0111\u1ecdc metadata c\u1ee7a m\u1ed9t l\u1edbp v\u00e0 m\u00e3 ngu\u1ed3n c\u1ea7n thi\u1ebft m\u00e0 kh\u00f4ng c\u1ea7n nh\u1eefng th\u00f4ng tin kh\u00e1c \u0111\u1ec3 s\u1eed d\u1ee5ng n\u00f3.<br>M\u1ed9t l\u01b0u \u00fd cu\u1ed1i c\u00f9ng v\u1ec1 ng\u00f4n ng\u1eef C# l\u00e0 ng\u00f4n ng\u1eef n\u00e0y c\u0169ng h\u1ed7 tr\u1ee3 vi\u1ec7c truy c\u1eadp b\u1ed9 nh\u1edb<br>tr\u1ef1c ti\u1ebfp s\u1eed d\u1ee5ng ki\u1ec3u con tr\u1ecf c\u1ee7a C++ v\u00e0 t\u1eeb kh\u00f3a cho d\u1ea5u ngo\u1eb7c [] trong to\u00e1n t\u1eed. C\u00e1c m\u00e3<br>ngu\u1ed3n n\u00e0y l\u00e0 kh\u00f4ng an to\u00e0n (unsafe). V\u00e0 b\u1ed9 gi\u1ea3i ph\u00f3ng b\u1ed9 nh\u1edb t\u1ef1 \u0111\u1ed9ng c\u1ee7a CLR s\u1ebd kh\u00f4ng<br>th\u1ef1c hi\u1ec7n vi\u1ec7c gi\u1ea3i ph\u00f3ng nh\u1eefng \u0111\u1ed1i t\u01b0\u1ee3ng \u0111\u01b0\u1ee3c tham chi\u1ebfu b\u1eb1ng s\u1eed d\u1ee5ng con tr\u1ecf cho \u0111\u1ebfn khi ch\u00fang \u0111\u01b0\u1ee3c gi\u1ea3i ph\u00f3ng.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>C# l\u00e0 s\u1ef1 k\u1ebft h\u1ee3p c\u1ee7a 2 ng\u00f4n ng\u1eef C v\u00e0 java, c\u00f3 th\u1ec3 n\u00f3i C# l\u1ea5y \u00fd t\u01b0\u1edfng v\u1ec1 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":2789,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[718,724],"tags":[],"class_list":["post-2788","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ngon-ngu-c","category-ngon-ngu-lap-trinh-c"],"_links":{"self":[{"href":"https:\/\/cafe2sach.com\/index.php\/wp-json\/wp\/v2\/posts\/2788","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cafe2sach.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cafe2sach.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cafe2sach.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cafe2sach.com\/index.php\/wp-json\/wp\/v2\/comments?post=2788"}],"version-history":[{"count":1,"href":"https:\/\/cafe2sach.com\/index.php\/wp-json\/wp\/v2\/posts\/2788\/revisions"}],"predecessor-version":[{"id":2790,"href":"https:\/\/cafe2sach.com\/index.php\/wp-json\/wp\/v2\/posts\/2788\/revisions\/2790"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cafe2sach.com\/index.php\/wp-json\/wp\/v2\/media\/2789"}],"wp:attachment":[{"href":"https:\/\/cafe2sach.com\/index.php\/wp-json\/wp\/v2\/media?parent=2788"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cafe2sach.com\/index.php\/wp-json\/wp\/v2\/categories?post=2788"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cafe2sach.com\/index.php\/wp-json\/wp\/v2\/tags?post=2788"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}