C C C # # # P P P r r r o o o g g g r r r a a a m m m m m m i i i n n n g g g – Phn 1: Lp trì trì nh h ng đi t ng www.bodua.com L L p p trì n n h h h h n n g g đ đ i i t t n n g g w w w w w w . . b b o o d d u u a a . . c c o o m m 1 N N N g g g u u u y y y n n n M M M a a a i i i H H H u u u y y y C Sharp và.NETframework M đu Vào nhng thp nhiên 80, 90 ca th k trc, C ri C++ là nhng ngôn ng lp trình truyn thng khá ni ting giúp cho lp trình viên phát trin ng dng ca mình rt hiu qu. Tuy nhiên nhng ngôn ng này có mt s nhc đim thng đc nhc ti nh sau: - Rt kh ó khn đ tip cn ( Nht là đi vi nhng ngi mi chp chng bc vào lnh vc lp trình ) - Tn kém nhiu thi gian và chi phí đ phát trin đi vi 1 phn mm c th - Vic h tr cho Debug chng trình không tt dn đn vic gp nhiu khó khn khi cn kim tra thut toán ca chng trình vào thi đim thc thi ca chng trình ( đây thut ng Debug dùng đ ch 1 k thut giúp cho lp trình viên có th kim tra tin trình hot đng trong b nhó đi vi chng trình ca mình, k thut này rt hiu qu khi lp trình viên cn phi xác đnh tính đúng đn đi vi thut toán đã s dng ) - Vic kt ni gia chn g trình chính vi c s d liu khá phc tp. - … Microsoft gii thiu C # ( C Sharp ) nh mt ngôn ng lp trình mi đ gii quyt nhng nhc đim ca các ngôn ng lp trình truyn thng. C# đc phát trin vi nhng mc đích chính nh : - Cho phép lp trình viên có th xây dng các chng trình ca mình mt cách đn gin mà hiu qu, có th phát trin và m rng trong tng lai vi kh nng tng thích cao trong nhng h thng có kin trúc phn cng khác nhau. - Xây dng và phát trin ng dng da trên kit trúc ca lp trình hng đi tng ( pure object-oriented architecture ). Vì th C# h tr các thành phn hng đi tng trong chng trình rt mnh. - Cho phép s dng li nhiu tính nng ch có trong C++ trc đây trong khi vn đm bo tính d dùng ( easy-of-use ) khi xây dng ng dng - … Gii thiu .NETframework & các thành phn chính .NETFramework ca Microsoft là mt “ môi trng lp trình ” tp hp các th vin, các công c phc v cho vic lp trình trên h điu hành Windows. .NETFramework cung cp nhng gii pháp thit yu cho nhng yêu cu thông thng ca các chng trình điu khin máy tính nh các gii thut s hc ( Arithmetic algorithms ), h tr cho lp trình giao din ngi dùng (GUI – Graphical User Interface ), truy cp d liu, kt ni c s d liu ( connectivity and database access ), trin khai ng dng trên trình duyt ( web application ), giao tip thông qua mng máy tính ( networking access )…. .NETframework đc gii thiu vi 2 thành phn chính nh sau: - Common Language Runtime (CLR): đ c xem nh là “ xng sng ” ca .NETFramework đ thc hin các chc nng nh: o Qun lý b nh o Thc thi mã lnh o X lý li xy ra trong quá trình biên dch và thi hành chng trình o Thu gom “rác” sinh ra trong quá trình thc t hi ng dng o … C C C # # # P P P r r r o o o g g g r r r a a a m m m m m m i i i n n n g g g – Phn 1: Lp trì trì nh h ng đi t ng www.bodua.com L L p p trì n n h h h h n n g g đ đ i i t t n n g g w w w w w w . . b b o o d d u u a a . . c c o o m m - .NETFramework Class Library (FCL): là mt th vin các lp hng đi tng có kh nng tái s dng h tr cho vic phát trin ng dng theo nhng hình thc khác nhau, t ng dng đc gi thi hành thông qua dng lnh trong môi trng textmode cho đn ng dng thc thi trong môi trng đ ha, các ng dng hot đng trên nn Web. Kin trúc ca .NETFramework.NETFramework là 1 môi trng “multi-lingual” và “multi-platform”, mt môi trng cho phép xây dng, trin khai và thc thi ng dng. Trong .NET Framework, lp trình viên có th phát trin ng dng ca mình trên các nn tng khác nhau nh: trin khai ng dng chy trên thit b di đng, máy tính đ bàn, Smartphone, … ( iu này ng vi thut ng “multi- platform”). H tr cho lp trình viên có th phát trin ng dng ca mình bng các ngông ng lp trình ni ting : Visual Basic .NET, C #, J # (“ multi-lingual ”). Kin trúc ca .NETFramework da trên 3 thành phn chính nh sau - Các ngôn ng lp trình đ c h tr bi .NETFramework - Th vic cá c lp cho phép lp trình đnh hng đi tng vi kh nng tái s dng mã lnh (.NET Framework Class Library: FCL) - Và Common Language Runtime (CLR) Các thành phn khác trong kin trúc .NETFramework • Web form: cung cp các lp phc v cho vic xây dng giao din Web • Web services : bao gm các lp cho phép xây dng các ng dng dng “Web Service”, đây ta tm hiu Web Service nh là nhng ng dng cho phép truy xut và khai thác thông tin qua mng Internet. (VD: các ng dng cung cp thông tin v thi tit, xác minh tính hp l ca th tín dng khi giao dch qua Internet, tra cu thông tin nhà đt, tin t, … ) • Windows forms: Tp hp cá c lp phc v cho vic xây dng ng dng chy trên h điu hành Windows ti máy tính cá nhân • ASP.NET: H tr phá t trin các ng dng Web chy trên trình duyt, có mã lnh đt ti phía Server • ADO.NET: Giao din cá c lp cho phép giao tip vi các ngun d liu dng ADO (VD: dùng cho các ng dng có nhu cu đc thông tin t tp tin xls ca Excel, mdb ca Access, doc ca Ms Word, …) • XML Classes : H tr thao tá c vi d liu dng XML nh tìm kim, chuyn đi và các thao tác trc tip trên các “node” ca d liu dng này 2 N N N g g g u u u y y y n n n M M M a a a i i i H H H u u u y y y C C C # # # P P P r r r o o o g g g r r r a a a m m m m m m i i i n n n g g g – Phn 1: Lp trì trì nh h ng đi t ng www.bodua.com L L p p trì n n h h h h n n g g đ đ i i t t n n g g w w w w w w . . b b o o d d u u a a . . c c o o m m • Base Framework Classes: cung cp các chc nng c bn h tr cho vic xut nhp thông tin, x lý d liu dng chui, các giao thc cho vic truyn thông trên mng cng nh c ch bo mt, … • Common Language Specification (CLS): là 1 tp các quy tc dành cho các ngôn ng lp trình đc .NETframework h tr, CLS cho phép to ra s tng thích ca chng trình gia các loi ngôn ng khách nhau trên nn tng ca .NET • Common Type System (CTS): đc xem nh h thng đnh kiu ca .NET Framework, CTS có nhim v mô t nhng d liu đc khai báo trong chng trình, cách s dng và qun lý chúng trong quá trình mà ng dng thc thi, to ra s thun li cho vic nhn dng cng nh s dng các kiu d liu trên các ngôn ng khác nhau mà .NET h tr. Microsoft Intermediate Language (MSIL) Mi ngôn ng lp trình đc h tr trong .NETFramework đu có 1 trình biên dch và 1 môi trng cho phép thc thi ng dng ng vi mã lnh đc vit bi ngôn ng tng ng. Trình biên dch có nhim v chuyn đi mã ngun ( Source code ) thành mã thc thi (executable code) đ cho phép ngi dùng có th gi thc thi ng dng khi cn. Mt trong nhng mc tiêu chính ca .NETFramework là tích hp các môi trng thc thi ng dng ( runtime environment ) ca các ngôn ng lp trình khác nhau thành 1 môi trng duy nht. ó chính là MSIL, MSIL đc xem nh mt ngôn ng trung gian cho vic chuyn đi và thc thi mã lnh đã đc biên dch t các trình biên dch ca các ngôn ng lp trình đc .NETFramework h tr trc khi thc thi ng dng trên nn ca .NET Framework. Hãy xem hình mô t di đây, chng trình có mã ngun đc vit bi mt trong các ngôn ng lp trình nh VB, C# trong môi trng .NET, sau khi biên dch bi mi trình biên dch ca ngôn ng tng ng thì phn mã lnh s đc MSIL biên dch li và sau đó ng dng có th thi hành trên nn ca .NET Framework Common Language Runtime(CLR) Common Language Runtime là mt thành phn ct lõi ca .NET Framework, nó chu trách nhim biên dch mã MSIL ca các chng trình đc xây dng trên .NETFramework thành mã máy, qun lý vic thc thi các chng trình này nh: np chng trình, to các tiu trình, cp phát và thu hi vùng nh cng nh tài nguyên cho các chng trình thi trong môi trng .NET. Nói cách khác CLR đc xem nh là “ máy o ” ca .NET Framework, nó đc s dng đ chuyn đi các mã MSIL thành ngôn ng máy đ có th điu khin CPU thi hành. Các tính nng c bn ca C#C# là 1 ngôn ng lp trình, đc thit kt đ cho phép xây dng các chng trình ng dng thc thi trên môi trng .NET. Mt s tính nng chính ca C# có th k đn nh: 3 N N N g g g u u u y y y n n n M M M a a a i i i H H H u u u y y y C C C # # # P P P r r r o o o g g g r r r a a a m m m m m m i i i n n n g g g – Phn 1: Lp trì trì nh h ng đi t ng www.bodua.com L L p p trì n n h h h h n n g g đ đ i i t t n n g g w w w w w w . . b b o o d d u u a a . . c c o o m m 4 N N N g g g u u u y y y n n n M M M a a a i i i H H H u u u y y y - C# là ngôn ng lp trình hng đi tng, ly đi tng làm tâm đim cho vic thit k và xây dng ng dng cng nh trin khai mã lnh. Chính vì th kh nng tái s dng mã ngun rt cao, gim thi gian đáng k cho vic phát trin và bo trì ng dng. - H tr c ch an toà n đi vi kiu d liu đc s dng trong chng trình( Type-savety checking ) - Cung cp c ch “ dn rác t đng ” (Garbage collection) thc hin qun lý b nh t đng theo tin trình thi gian và phm vi hot đng ca chng trình đ loi b nhng vùng nh đã cp phát quá lâu mà không còn dùng đn hoc nhng vùng nh đã cp phát bi nhng tiu trình trc đó, không còn phù hp vi thi đim hin ti - Generic types and methods ( đây tôi không dch đc cm t này nên gi nguyên ), nh chúng ta đã bit k thut Generic trong Java ( Nu bn đã bit Java ), C# cng th, đ có th đa hình hóa và s dng hiu qu các hàm, các kiu d liu trong nhiu tình hung c th khác nhau, C# cung cp k thut Generic đi vi các kiu d liu cng nh đi vi phng thc, ta có th hiu nôm na nh vic đnh ngha 1 kiu d liu chung chung ( Hoc 1 hàm chung ) đ tùy theo tình hung c th mà s dng, điu này làm tng kh nng tái s dng các kiu d liu, hàm. Lp trình viên không phi vit quá nhiu hàm khác nhau cho nhng tình hung cùng dng. Cho đn nay, C# là ngôn ng lp trình đc đa s lp trình viên a thích, so vi C++ thì C# đn gin hn rt nhiu và khá thân thin đi vi ngi s dng ( Lp trình viên ). C# có 1 s li đim nh sau: - Có th s dng mã lnh đc vit bng ngôn ng khác ( nhng ngôn ng đc .NET h tr ) trong các chng trình vit bng C# mà không cn phi vit li. - Tích hp sn các giao thc Internet thông dng do đó có th xây dng các ng dng có kh nng giao tip thông qua mng máy tính mt cách thun li - n gin khi trin khai ng dng, có th chia chng trình thành nhiu b phn nh đ phát trin bi nhiu nhóm khác nhau sau đó lp ghép li thành 1 chng trình thng nht - H tr cho vic xây dng các tài liu k thut dng XML thông qua vic to chú thích XML trong phn mã lnh ca chng trình, điu này khá thun tin cho vic bo trì chng trình sau này. - … Gii thiu Visual Studio 2008 Visual tudio 2008 là 1 b công c hoàn chnh cho vic phát trin các ng dng thi hành trên nn tng ca .NETFramework 3.5 dành cho máy tính cá nhân, các dch v dng XML Web, các ng dng dành cho thit b di đng, smartphone và các ng dng web xây dng phía server nh ASP.NET. Hn na, Visual studio 2008 cho phép đn gin hóa vic thit k chng trình theo nhóm đ phát trin các ng dng cho doanh nghip vi quy mô ln mt cách thun tin. Visual studio phiên bn 2008 là mt môi trng phát trin tích hp (IDE - intergrated development environment ) vi 4 bn chính nh sau: - Visual Studio Team system 2008 edition - Microsoft Visual Studio 2008 Professional Edition - Visual Studio 2008 Standard Edition - Visual Studio 2008 Express Edition Các ngôn ng lp trình đ c h tr trong Visual Studio 2008 - Visual C++ - Visual C# C C C # # # P P P r r r o o o g g g r r r a a a m m m m m m i i i n n n g g g – Phn 1: Lp trì trì nh h ng đi t ng www.bodua.com L L p p trì n n h h h h n n g g đ đ i i t t n n g g w w w w w w . . b b o o d d u u a a . . c c o o m m - Visual Basic - Visual J# Các thành phn chính trên giao din ca Visual Studio 2008 Solution Explorer: Mô t cu trúc chng trình ca bn di dng cu trúc File-Folder, thông qua ca s này, bn có th chn các tp tin trong chng trình ca mình đ m ra và làm vic trc tip vi nó. (Class file, aspx file, css file, …) Code Editor : vùng son tho mã lnh nm chính gia màn hình, cho phép bn vit Code cho chng trình ca mình Properties Windows: T h hin danh sách các thuc tính ca đi tng mà bn đang chn. Rt hu ích khi bn lp trình giao din, có th điu chnh các thuc tính ca đi tng mt cách trc quan, d dàng Dynamic Help: H tr cho bn đ gii quyt nhng thc mc v cú pháp, cách dùng các đi tng mà .NETFramework cung cp Biên dch và thc thi chng trình trong Visual Studio Sau khi đã vit xong 1 chng trình, điu đu tiên mà chúng ta quan tâm đn chính là làm sao đ biên dch nó và thi hành sn phm ca mình, đ t đó thy đc quá trình hot đng ca chng trình mà mình va xây dng. Trong visual studio ( i vi hu ht các phiên bn ), bn s thc hin nh sau 5 N N N g g g u u u y y y n n n M M M a a a i i i H H H u u u y y y C C C # # # P P P r r r o o o g g g r r r a a a m m m m m m i i i n n n g g g – Phn 1: Lp trì trì nh h ng đi t ng www.bodua.com L L p p trì n n h h h h n n g g đ đ i i t t n n g g w w w w w w . . b b o o d d u u a a . . c c o o m m - Biên dch chng trình bng cách chn lnh “Build <tên ng dng ca bn>” (Hoc Build solution ) trong menu Build. Lúc này Visual studio s tin hành biên dch chng trình ca bn thành file thi hành trong môi trng Windows (.exe) - thi hành chng trình ca mình, bn ch vic chn lnh “Start without debugging” có trong menu Debug hoc nhn t hp phím Ctrl+F5, hoc nhn nút có trên thanh công c. a c www.bodua.com Tài liu tha m kho : Giáo trình Aptech Microsoft Development Network 6 N N N g g g u u u y y y n n n M M M a a a i i i H H H u u u y y y . Framework Classes: cung c p c c ch c nng c bn h tr cho vi c xut nhp thông tin, x lý d liu dng chui, c c giao th c cho vi c truyn thông trên mng c ng nh c ch bo mt, … • Common. Language Specification (CLS): là 1 tp c c quy t c dành cho c c ngôn ng lp trình đ c .NET framework h tr, CLS cho phép to ra s tng thích c a chng trình gia c c loi ngôn ng khách nhau. điu chnh c c thu c tính c a đi tng mt c ch tr c quan, d dàng Dynamic Help: H tr cho bn đ gii quyt nhng th c m c v c pháp, c ch dùng c c đi tng mà .NET Framework cung c p