Tìm hiểu C# và viết chương trình ứng dụng với Webservice (C Sharp)

Tài liệu Tìm hiểu C# và viết chương trình ứng dụng với Webservice (C Sharp): ... Ebook Tìm hiểu C# và viết chương trình ứng dụng với Webservice (C Sharp)

doc75 trang | Chia sẻ: huyen82 | Lượt xem: 1738 | Lượt tải: 1download
Tóm tắt tài liệu Tìm hiểu C# và viết chương trình ứng dụng với Webservice (C Sharp), để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
LÔØI CAÛM ÔN Suoát quaù trình hoïc taäp trong tröôøng ñaïi hoïc vöøa qua, chuùng em ñaõ ñöôïc quyù thaày coâ cung caáp vaø truyeàn ñaït taát caû kieán thöùc chuyeân moân caàn thieát vaø quyù giaù nhaát. Ngoaøi ra, chuùng em coøn ñöôïc reøn luyeän moät tinh thaàn hoïc taäp vaø laøm vieäc ñoäc laäp, saùng taïo. Ñaây laø tính caùch heát söùc caàn thieát ñeå coù theå thaønh coâng khi baét tay vaøo ngheà nghieäp trong töông lai. Luaän vaên toát nghieäp laø cô hoäi ñeå chuùng em coù theå aùp duïng, toång keát laïi nhöõng kieán thöùc maø mình ñaõ hoïc. Ñoàng thôøi, ruùt ra nhöõng kinh nghieäm thöïc teá vaø quyù giaù trong suoát quaù trình thöïc hieän ñeà taøi. Sau moät hoïc kyø chuùng em taäp trung coâng söùc cho ñeà taøi vaø cuøng laøm vieäc cöïc löïc vôùi nhau, ñaëc bieät laø nhôø söï chæ ñaïo vaø höôùng daãn taän tình cuûa thaày Nguyeãn Chaùnh Thaønh cuøng vôùi caùc thaày coâ trong khoa, ñaõ giuùp cho chuùng em hoaøn thaønh ñeà taøi naøy moät caùch thuaän lôïi vaø gaët haùi ñöôïc moät soá keát quaû khaù khaû quan. Beân caïnh nhöõng keát quaû khieâm toán maø chuùng em ñaït ñöôïc, chaéc chaén khoâng traùnh khoûi nhöõng sai laàm, thieáu soùt khi thöïc hieän luaän vaên cuûa mình, kính mong thaày coâ thoâng caûm vaø tha thöù. Söï pheâ bình, goùp yù cuûa quyù thaày coâ seõ laø nhöõng baøi hoïc kinh nghieäm raát quyù baùu cho coâng vieäc thöïc teá cuûa chuùng em sau naøy. Laø sinh vieân ngaønh maùy tính, chuùng em raát töï haøo veà khoa maø mình ñang theo hoïc, töï haøo veà taát caû caùc thaày coâ cuûa mình. Hoã trôï caùc coâng cuï raát ñaày ñuû : XML,cô sôû döõ lieäu ,ASP.NET,VC++,VB.NET……. Moät laàn nöõa, chuùng em xin chaân thaønh caûm ôn coâng lao daïy doã cuûa quyù thaày coâ. Kính chuùc quyù thaày coâ maïnh khoûe, tieáp tuïc ñaït ñöôïc nhieàu thaéng lôïi trong nghieân cöùu khoa hoïc vaø söï nghieäp troàng ngöôøi. Traân troïng kính chaøo! Sinh vieân thöïc hieän Leâ Phöôùc Huøng MUÏC LUÏC Lôøi caûm ôn 1 Muïc luïc 2 Chöông I : Giôùi Thieäu 3 Phaàn 1 : .NET FrameWork 3 Phaàn 2 :Tìm Hieåu Veà Visual C# 8 Phaàn 3 : ADO.NET 22 Phaàn 4 : SQL Server 27 Phaàn 5 : Dòch Vuï Windows Services 32 Phaàn 6 : WebService vaø Caùc Coâng Ngheä Lieân Quan 36 Phaàn 7 :Giôùi thieäu XML 50 Chöông II : Phaân Tích vaø Thieát Keá heä Thoáng 59 Chöông III : Demo vaø hình aûnh 67 Chöông IV : Toång keát vaø ñaùnh giaù 71 Taøi lieäu tham khaûo 73 CHÖÔNG I : GIÔÙI THIEÄU PHAÀN 1 : .NET FrameWork .NET FrameWork laø moät neàn taûng cho theá heä maùy tính môùi ñöôïc thieát keá bôûi Microsoft nhaèm muïc ñích ñôn giaûn hoaù vieäc phaùt trieån caùc öùng duïng hieän ñaïi nhö : Nhöõng chöông trình maø öùng duïng caùch vieát theo Microsoft.NET , söû duïng giao dieän ñoà hoaï GUIs phöùc taïp phía ngöôøi duøng ñaàu cuoái. Nhöõng öùng duïng hay chöông trình söû duïng Internet. Caùc öùng duïng truy xuaát cô sôû döõ lieäu ……. Thaät ra, .NET caøi ñaët moät cheá ñoä bieân dòch nhieàu taàng : tröôùc tieân ,chöông trình seõ ñöôïc bieân dòch sang moät daïng trung gian khaû chuyeån vaø ñeán luùc ñöôïc thöïc thi ,noù seõ ñöôïc bieân dòch töùc thôøi (just-in-time Compile hay coøn goïi laø JIT compile) sang daïng thöïc thi cuoái cuøng. Coù hai thaønh phaàn chính ñoái vôùi .NET FrameWork :Moâi tröôøng thöïc thi ngoân ngöõ chung (Common Language Runtime (CLR)) vaø thö vieän caùc lôùp .NET FrameWork. Sô ñoà caáu truùc .NET FrameWork Caùc thaønh phaàn chính cuûa Microsoft.NET Framework: Sô ñoà caùc thaønh phaàn chính cuûa .NET ÖÙng duïng .NET ñöôïc chia ra laøm hai loaïi: cho Internet goïi laø ASP.NET, goàm coù Web Forms vaø Web Services vaø cho destop goïi laø Windows Forms .XML ñöôïc hoã trôï toái ña , coù hai giao thöùc ñöôïc söû duïng thoâng thöôøng nhaát trong .NET laø TCP/IP vaø HTTP Vieäc thieát keá moâi tröôøng thöïc thi ngoân ngöõ chung goàm nhöõng muïc tieâu chính sau: Vieäc trieån khai ñôn giaûn vaø nhanh hôn :ngöôøi phaùt trieån seõ daønh nhieàu thôøi gian quyeát ñònh noái nhöõng thaønh phaàn cuûa phaàn meàm naøo laïi vôùi nhau nhieàu hôn laø laäp trình thaät söï . Caùc coâng taùc thieát yeáu nhö : quaûn lyù boä nhôù ,xöû lyù thoâng tin …. ñöôïc giuùp ñôõ moät caùch töï ñoäng. Hoã trôï caùc coâng cuï raát ñaày ñuû ..XML,cô sôû döõ lieäu ,……. Caøi ñaët ñôn giaûn vaø an toaøn, hoã trôï moïi taäp tin .DLL . Söû duïng cho töø WindowsCE ñeán Destop , vaø Web. Sô ñoà moâ taû moâi tröôøng thöïc thi ngoân ngöõ chung (CLR) Sieâu döõ lieäu (Metadata): Caùc lôùp. Net laø nhöõng lôùp coù khaû naêng töï moâ taû,chuùng mang thoâng tin mieâu taû ñi cuøng vôùi mình ngay trong file ñaõ bieân dòch ra .EXE hoaëc DLL.Thoâng tin naøy ñöôïc goïi laø sieâu döõ lieäu(Metadata). Moâi tröôøng thöïc thi ngoân ngöõ chung(CLR): laø trung taâm ñieåm cuûa .NET FrameWork, maø .NET cung caáp ñeå quaûn lyù caùc lôùp managed Extensions C++ ,noù laø cô cheá ñeå chaïy caùc tính naêng cuûa .NET . Trong Net moïi ngoân ngöõ laäp trình ñeàu ñöôïc bieân dòch ra ngoân ngöõ trung gian (Microsoft Intermediate Langage(IL)) ,thöïc thi ngoân ngöõ cuaû Microsoft coù teân Microsoft Intermediate Language ,hoaëc MSIL .Sau ñoù maõ IL naøy ñöôïc bieân dòch ñuùng luùc thaønh maõ baåm sinh vaøo luùc chaïy .Ñieàu naøy coù nghóa laø ,baát keå ngoân ngöõ ban ñaàu cuûa maû nguoàn ,caùc taäp tin thi haønh vaø DLL cuûa .NET luoân ñöôïc trieån khai trong IL ,do ñoù khoâng coù ñieåm khaùc bieät naøo giöõa caùc thaønh phaàn thoaït ñaàu ñöôïc vieát baèng C# vaø nhöõng thaønh phaàn ñöôïc vieát baèng VB.NET . Nhôø baét buoäc moïi ngoân ngöõ ñeàu phaûi duøng cuøng caùc loaïi cuøng heä thoáng caùc kieåu döõ lieäu thoâng duïng (Common Type Sytem (CTS)), CLR coù theå kieåm soaùt moïi giao tieáp (interface), goïi giöõa caùc thaønh phaàn vaø cho pheùp caùc ngoân ngöõ coù theå keát hôïp vôùi nhau . Töùc trong .NET , Chöông trình VB.NET coù theå keá thöøa C# vaø ngöôïc laïi moät caùch töï nhieân . Gom Raùc : Moät trong nhöõng dòch vuï quan troïng nhaát maø CRL cung caáp laø cô cheá gom raùc [garbage collection ] .Trong C vaø C++ ,neáu moät ñoái töôïng ñöôïc laäp minh duï [instantiated ] ,boä nhôù maø noù söû duïng caàn ñöôïc giaûi phoùng tröôùc khi coù theå duøng laïi .Neáu khoâng theå thöïc hieän ñieàu nayø ,ta seõ bò “roø ræ boä nhôù ” [ memory leak ]-heä thoáng khoâng theå thu hoài boä nhôù raûnh.khaû naêng vaän haønh cuûa öùng duïng hieån nhieân bò xuoáng caáp .CRL giaûi quyeát söï coá naøy baèng caùch thöïc thi moät boä gom gaùc .Theo quaõng thôøi gian ñònh kyø (khi khoâng coøn choã teân vuøng phaân taïm [head]) ,boä gom gaùc seõ kieåm tra taát caû caùc tham chieáu ñoái töôïng ,vaø phoùng thích boä nhôù ñöôïc löu giöõ bôûi caùc ñoái ñöôïng ñaõ heát hoaït vi [spoce] vaø coù theå khoâng coøn öùng duïng truy caäp .Ñieàu naøy mieãn cho laäp trình vieân khoûi phaûi huyû caùc ñoái töôïng töôøng minh ,vaø giaûi quyeát söï coá roø ró boä nhôù . Thö vieän caùc lôùp cuûa .NET FrameWork : Laø moät thö vieän caùc lôùp höôùng ñoái töôïng cung caáp haàu heát duïng cuï vaø phöông tieän caàn thieát ñeå vieát nhieàu chöong trình öùng duïng ña daïng .Thö vieän caùc lôùp .NET FrameWork cung caáp moät taäp caùc lôùp maø coù theå söû duïng töø baát kì ngoân ngöõ .NET naøo , vì noù ñöôïc caøi ñaët ñeå laøm vieäc ôû caáp ngoân ngöõ IL . Ñaëc taû ngoân ngöõ thoâng duïng (Common Language Specification (CLS)) :laø taäp hôïp nhöõng qui taéc vaø raøng buoäc ,maø trình bieân dòch vaø thö vieän maø ngöôøi laäp trình vieát ra caàn phaûi tuaân theo ñeå baûo ñaûm cho ngoân ngöõ vaø maõ sinh ra coù theå tích hôïp ñöôïc vôùi nhöõng ngoân ngöõ .NET khaùc .CLS laø moät taäp con cuûa CTS ,vaø neáu moät ngoân ngöõ hoaëc thö vieän tuaân thuû theo CLS thì noù hoaøn toaøn töông hôïp vôùi nhöõng ngoân ngöõ thuoäc hoï.NET . Assembly(Hôïp ngöõ): ÖÙng duïng .NET xaây döïng töø caùc goùi hôïp ngöõ (assemblies) laø ñôn vò cô baûn cuûa vieäc ñoùng goùi vaø naâng caáp phieân baûn .Goùi hôïp ngöõ chöùa ñöïng maõ IL ( ngoân ngöõ trung gian),sieâu döõ lieäu duøng ñeå moâ taû goùi hôïp ngöõ vaø noäi dung cuûa noù,cuøng vôùi nhöõng file khaùc caàn cho quaù trình thöïc thi.Noù coù theå laø moät taäp tin thi haønh (.exe ),moät DLL,moät öùng duïng web ASP.NET ñöôïc bieân dòch ,hay dòch vuï web . Sô ñoà caáu truùc toång quaùt cuûa goùi hôïp ngöõ PHAÀN 2 : TÌM HIEÅU VEÀ VISUAL C# C# laø gì ? C# laø moät ngoân ngöõ hieän ñaïi höôùng ñoái töôïng, laø moät ngoân ngöõ laäp trình môùi duy nhaát phuø hôïp vôùi caùc moâi tröôøng ôû ñoù naêng suaát ,naêng löïc , vaø Internet laø quan troïng .Noù coù nguoàn goác töø trong C,C++,java ,vaø trong moät möùc ñoä giôùi haïn cuûa ngoân ngöõ Visual Basic . Vôùi C# ta coù theå taïo caùc daïng ñeà aùn khaùc nhau : Caùc öùng duïng Console ,caùc öùng duïng Windows,caùc öùng duïng ASP.NET ,caùc thaønh phaàn .NET ,vaø Web Services. Caùc ñeà aùn naøy coù theå phoái hôïp vôùi nhau ñeå thöïc thi caùc öùng duïng n taàng ,coù phaân phoái . 2. C# vaø Caùc Ngoân Ngöõ Khaùc + C# vaø Java : Chaéc chaén caùc ñoaïn maõ C# coù theå raát gioáng vôùi caùc ñoaïn maõ Java töông ñöông veà coâng naêng .Ví duï ,caû 2 ngoân ngöõ uûng hoä tính naêng maõ hoaù tron goùi [one-stop coding] ,gom nhoùm caùc lôùp ,caùc giao dieän vaø caùch thöïc thi vôùi nhau trong moät taäp tin ñeå caùc nhaø phaùt trieån coù theå hieäu chænh maõ deã daøng hôn .C# vaø Java cuõng ñieàu quaûn caùc ñoái töôïng khaù gioáng nhau : thoâng qua caùc tham chieáu thay vì caùc bieán troû . C# giöõ laïi nhieàu tính naêng maïnh cuûa C++ hôn .Ví duï ,C # söû duïng tính naêng quùa taûi toaùn töû [operator overloading] , caùc kieåu ñieåm doanh an toaøn kieåu ,caùc tính naêng maø java hoaøn toaøn boû qua . Moät khiaù caïnh maø java vöôït troäi hôn C# ñoù laø söï ñoäc laäp veà neàn taûng .Treân lyù thuyeát , vôùi bytecode java noù coù theå ñöïôc thöïc thi treân baát kyø neàn taûng naøo ñöôïc trang bò moät mayù aûo java . Trong khi C# söû duïng moät CLR (Common Language Runtime) cuõng coù tính naêng töông töï nhö maùy aoû cuûa Java nhöng CLR chæ thöïc thi treân neàn taûng Windows maø thoâi . + C# vaø VB6, VB.NET : - Nhöõng ñieãm khaùc bieät giöõa VB6 vaø VB.NET laø saâu saéc. Vôùi VB6 ,C # möôïn caùch tieáp caän cuûa VB6 ñeå thieát keá bieåu maåu ,thieát keá giao dieän ngöôøi duøng ; trong caû hai ngoân ngöõ ,caùc nhaø phaùt trieån xaây döïng caùc giao dieän ngöôøi duøng baèng caùch keùo caùc ñieàu khieån töø moät hoäp coâng cuï ,thaû chuùng leân caùc bieåu maåu ,vaø vieát caùc trình ñieàu quaûn söï kieän cho chuùng .C# khai thaùc tieán trình vôùi hieäu quaû cao ,khoâng nhöõng aùp duïng noù trong vieäc phaùt trieån caùc giao dieän ngöôøi duøng maù coøn caáu thaønh caùc ñoái töôïng doanh nghieäp .Ñaây laø ñieåm gioáng nhau thöïc söï duy nhaát giöõa C# vaø VB6 ,bôûi caùc khaû naêng ñoái töôïng cuûa VB6 khoâng theå so saùnh ñöôïc vôùi caùc khaû naêng cuûa C # . Vôùi VB.NET ,ñaây laø phieân baûn keá tieáp cuûa VB ,maëc duø ñöôïc taêng cöôøng caùc ñaëc cuï ñoái töôïng cuûa VB troâng gioáng nhö C# vôùi caùc töø khoùa khaùc.Thöïc teá ,caùc chuyeân khu treân web ñaõ cho thaáy cuøng maõ nguoàn bieân dòch baèng trình bieân dòch VB cuõng seõ bieân dòch baèng trình bieân dòch C# sau khi tay toaøn cuïc vaøi töø khoaù. Öu ñieåm noåi baät nhaát cuûa C# so vôùi VB.NET laø noù chöùa caùc khoái maõ C++ nhuùng,nhanh,hieäu quaû. Moät öu ñieåm ñaùng keå cuaû C# ñoù laø noù coù theå deã daøng thöïc hieän caùc leänh goïi Windows API. C# vaø C++ : C# vaø C++ coù lieân quan vôùi nhau .Thöïc teá ,coù theå xem C# laø moät taäp con ñôn giaûn hôn,naêng suaát hôn ,an toaøn hôn, cuûa C++. - Tính ñôn giaûn cuûa C# ñoù laø caùch tieáp caän maõ hoaù troïn goùi cuûa noù ñoái vôùi vieäc baûo trì maõ : Trong C++ ,phaàn khai baùo ñöôïc ñaët trong caùc taäp tin phaàn ñaàu (.h) aên khôùp vôùi caùc thöïc thi cuûa chuùng trong caùc taäp tin heä phuïc vuï (.cpp) .Trong khi,C# goùi rieâng phaàn ñònh nghóa vaø thöïc thi cuûa moãi lôùp vaøo moät khoái maû trong moät taäp tin C# (.cs) ñôn leõ. Ngoaøi ra,tính ñôn giaûn cuûa C# coøn theå hieän ôû caùch maø noù phaân gæai caùc söï phuï thuoäc vaøo caùc thaønh phaàn beân ngoaøi .C++ yeâu caàu caùc thaønh phaàn tham chieáu ôû 2 nôi : 1)Trong caùc caâu leänh #include trong maõ nguoàn cuûa ñeà aùn vaø 2)trong danh saùch tham chieáu cuûa ñeà aùn khaùch.Ñeå duøng moät thaønh phaàn phuïc vuï .NET töø moät heä khaùch C# ,baïn chæ caàn boå sung moät tham chieáu vaøo thaønh phaàn vôùi baèng leänh ñôn Add Reference ,hoaëc Solution Explorer .Khoâng caàn #include moät taäp tin phaàn ñaàu.Nhö vaäy ,trong caùch tieáp caän ñôn giaûn cuûa noù vôùi caùc phuï thuoäc beân ngoaøi ,C# gioáng VB6 nhieàu hôn C++. Ngoaøi vieäc ñôn giaûn hôn C++,C# cuõng an toaøn hôn-cho caû nhaø phaùt trieån laån moâi tröôøng thi haønh. C# an toaøn hôn cho nhaø phaùt trieån ôû choå vôùi noù ta vieát maõ khoù gaëp loåi hôn .Caùc ví duï veà söï an toaøn naøy bao goàm vieäc C# loaïi boû caùc thaønh ngöõ deã gaëp loåi nhö caùc macroâ tieàn xöû lyù vaø caùc caâu leänh switch … case chuoài qua,cuõng nhö söï coá chaáp cuûa trình bieân dòch buoäc caùc bieán phaûi ñöôïc khôûi taïo tröôùc khi caùc giaù trò chuûa chuùng ñöôïc tham chieáu . C# an toaøn hôn cho moâi tröôøng phaùt trieån ôû choå noù loaïi boû caùc bieán con troû vaø söï döïa caäy cuûa noù vaøo tieán trình gom gaùc caøi saún khieán khoâng coøn roø ræ boä nhôù . C# toû ra nuaâng suaát hôn so vôùi C++ ôû choå noù chaáp nhaän phöông phaùp hoäp coâng cuï /ñieàu khieån /bieåu maåu ñeå xaây döïng caùc öùng duïng GUI ,nhôø ñoù coù theå nhanh choùng hoaøn taát vieäc thieát keá giao dieän ngöôøi duøng. C# vaø Jscript : Jscript laø moät ngoân ngöû khaùc coù theå duøng ñeå laäp trình .NET.Cuù phaùp cuûa noù töông töï nhö C,song ñôn giaûn hôn. Veà cô baûn ,Jscript laø ngoân ngöõ kyù maû[scripting] duøng ñeå thöïc hieän HTML ñoäng phía khaùch ,caû Netcape Navigator laãn Internet Explorer ñeàu coù theå nhaän ra Jscript . Gioáng nhö C# ,Jscript thöøa keá moät cuù phaùp xuùc tích vaø lòch laûm töø C. Khaùc vôùi C#,Jscript yeáu veà kieåu;taát caû caùc bieán Jscript ñeàu ñöôïc khai baùo baèng töø khoaù Var vaø theo maëc ñònh coù theå chuyeån ñoåi töø gía trò naøy sang giaù trò khaùc. Do C# saïch hôn vaø maïnh hôn Jscript ,neân haàu heát caùc nhaø phaùt trieån höôùng C seõ choïn C# nhieàu hôn Jscript cho caùc öùng duïng phía phuïc vuï.Tuy nhieân , do Netcape Navigator laãn Internet Explorer ñeàu coù theå nhaän ra Jscript neân vaãn coù theå duøng Jscript ñeå phaùt trieån Caùc ñieàu khieån web phía khaùch. Chuùng Ta Coù theå Laøm gì Vôùi C #? Taïo giao dieän ngöôøi söû duïng Giao dieän ngöôøi söû duïng coù leõ laø thaønh phaàn quan troïng nhaát cuûa moät öùng duïng. Ñoái vôùi ngöôøi söû duïng, giao dieän chính laø öùng duïng ; hoï khoâng caàn chuù yù ñeán thaønh phaàn maõ thöïc thi beân döôùi. ÖÙng duïng cuûa chuùng ta coù theå phoå bieán ñöôïc hay khoâng phuï thuoäc vaøo giao dieän. Söû duïng nhöõng ñieàu khieån chuaån cuûa C# Ta duøng nhöõng ñieàu khieån ñeå laáy thoâng tin maø ngöôøi söû duïng nhaäp vaøo, vaø ñeå hieån thò keát xuaát. Nhöõng ñieàu khieån maø ta coù theå duøng trong öùng duïng bao goàm hoäp vaên baûn, nuùt leänh, vaø hoäp danh saùch,…. Nhöõng ñieàu khieån khaùc cho ta truy xuaát nhöõng öùng duïng khaùc, xöû lyù döõ lieäu cuûa noù nhö laø moät thaønh phaàn maõ trong öùng duïng cuûa baïn. Laäp trình vôùi nhöõng ñoái töôïng. Nhöõng ñoái töôïng laø thaønh phaàn chuû yeáu ñeå laäp tình Visual Basic. Nhöõng ñoái töôïng coù theå laø winform, nhöõng ñieàu khieån hay cô sôû döõ lieäu. Ñaùp öùng nhöõng söï kieän chuoät vaø baøn phím Nhöõng öùng duïng C# coù theå ñaùp öùng moät löôïng lôùn söï kieän chuoät vaø baøn phím. Ví duï form, hoäp aûnh, vaø nhöõng ñieàu khieån aûnh coù theå phaùt hieän vò trí con troû chuoät, coù theå quyeát ñònh phím traùi hay phím phaûi ñöôïc nhaán, vaø coù theå ñaùp öùng nhöõng toå hôïp cuûa phím chuoät vôùi phím Shift, Ctrl, hay Alt. Söû duïng nhöõng ñieàu khieån phím, ta coù theå laäp trình nhöõng ñieàu khieån vaø form ñeå ñaùp öùng caùc haønh ñoäng phím hoaëc phieân dòch vaø xöû lyù maõ Ascii cuûa kyù töï. Gôõ roái maõ vaø quaûn lyù loãi Ñoâi khi coù nhöõng loãi xaûy ra beân trong maõ cuûa öùng duïng. Nhöõng loãi nghieâm troïng coù theå laø nguyeân nhaân moät öùng duïng khoâng ñaùp öùng leänh, thoâng thöôøng yeâu caàu ngöôøi söû duïng khôûi ñoäng laïi öùng duïng, vaø khoâng löu laïi nhöõng gì ta ñaõ laøm. Quaù trình tìm ra vaø söûa loãi goïi laø gôõ roái. C# cung caáp nhieàu coâng cuï giuùp chuùng ta phaân tích öùng duïng laøm vieäc nhö theá naøo. Nhöõng coâng cuï gôõ roái ñaët bieät höõu ích trong vieäc tìm ra nguoàn goác loãi, nhöng chuùng ta cuõng coù theå duøng nhöõng coâng cuï naøy ñeå kieåm tra chöông trình hoaëc tìm hieåu nhöõng öùng duïng khaùc nhau laøm vieäc nhö theá naøo. Xöû lyù oå ñóa, thö muïc vaø file Khi laäp trình trong Windows, noù raát quan troïng ñeå coù khaû naêng theâm, di chuyeån, taïo môùi hoaëc xoùa nhöõng thö muïc vaø file, laáy thoâng tin veà vaø xöû lyù oå ñóa. C# cho pheùp chuùng ta xöû lyù oå ñóa, thö muïc vaø file baèng hai phöông phaùp : qua nhöõng phöông thöùc cuõ nhö laø ñieàu leänh Open, Write, vaø qua moät taäp hôïp caùc coâng cuï môùi nhö FSO (File System Object) . Thieát keá cho vieäc thi haønh vaø tính töông thích C# chia xeû haàu heát nhöõng tính naêng ngoân ngöõ trong VS.NET cho nhöõng öùng duïng, bao goàm :caùc öùng duïng Console,caùc öùng duïng Windows,caùc ñeà aùn ASP.NET,vaø caùc dòch vuï web,…. Vôùi öùng duïng Console : coâng duïng phoå bieán nhaát cuûa öùng duïng console ñoù laø traéc nghieäm caùc thaønh phaàn khaùc . Vôùi öùng duïng Windows :Khi thi haønh ,moät chöông trình WinForm hieån thò caùc cöûa soå ñeå ngöôøi duøng coù theå töông taùc baèng caùch ñieàu taùc nhieàu ñieàu khieån :hoäp lieät keâ,nuùt ,vaø hoäp vaên baûn khaùc nhau…. Caùc ñeà aùn ASP.NET : + Active Server Pages (ASP) laø moät coâng ngheä phoå duïng cuûa Microsoft ñeå taïo caùc öùng duïng goác trình duyeät.Moät öùng duïng ASP bao goàm moät loaït caùc trang ASP löu tröõ chung vôùi nhau trong moät thö muïc treân moät heä phuïc vuï Web.Moãi trang laø moät taäp tin .asp chöùa caùc khoái HTML pha troän vôùi caùc khoái VBScript hoaëc Jscript phiaù phuïc vuï.Khi moät trình duyeät yeâu caàu moät trang ASP,heä phuïc void baøn giao HTML trong trang cho trình duyeät yeâu caàu vaø xöû lyù caùc chuøm kyù maõ phía phuïc vuï maø noù gaëp khi noù phuïc vuï tö lieäu. Nhö vaäy ,trong caùc khoái kyù maõ phía phuïc vuï caùc trang ASP coù theå trieäu goïi caùc ñoái töôïng doanh nghieäp ñeå truy naïp döõ lieäu töø cô sôû döõ lieäu hoaëc ñeå thöïc hieän caùc dòch vuï khaùc ,taïo caùc trang ñoäng coù noäi dung thay ñoåi. +Vôùi ASP.NET höùa heïn taêng cöôøng ñaùng keå khaû naêng khaû naêng vaän haønh cuûa ASP baèng caùch cho pheùp caùc nhaø phaùt trieån taïo caùc trang ñöôïc bieân dòch [compiled] thay vì ñöôïc dieãn dòch [interpreted] .Ñuùng vaäy ;thay vì duøng Jscript hoaëc VBScript ñeå maõ hoaù caùc trang ñöôïc dieãn dòch laïi moãi laàn chuùng ñöôïc yeâu caàu ,ta coù theå duøng caùc ngoân ngöõ .NET coù ñaày ñuû tính naêng (keå caû C#) ñeå maõ hoaù caùc trang bieân dòch thaønh IL. Laàn ñaàu tieân khi moät trang ASP.NET nhö vaäy ñöôïc yeâu caàu ,maõ ASP.NET ñöôïc phieân dòch thaønh moät taäp tin .cs ( hoaëc moät .vb) maø seõ ñöôïc bieân dòch sau ñoù. Trình bieân dòch Just-in-Time seõ chuyeån ñoãi IL keát quûa thaønh maõ baåm sinh ,laäp cache noù ñeå phoøng tröôøng hôïp trang ñöôïc yeâu caàu laïi .Vôùi caùch tieáp caän naøy ,caùc trang ASP.NET seõ chuyeån ñaït nhanh hôn nhieàu so vôùi trang ASP tröôùc ñaây. Caùc dòch vuï Web : vôùi caùc ñeà aùn WebService ,cung caáp thoâng tin cho caùc thaønh phaàn vaø caùc öùng duïng khaùc .Noùi moät caùch ñôn giaûn ,moät dòch vuï Web laø moät lôùp coù moät trình tieàn tieâu web.Moät trang ASP.NET keát hôïp vôùi lôùp seõ cho pheùp caùc lôùp khaùc goïi caùc phöông phaùp treân lôùp ñoù qua Internet .Daïng thöùc cuûa caùc yeâu caàu,vaø daïng thöùc cuûa caùc giaù trò traû veà laø giao thöùc SOAP.Trong WWW maø Microsoft hình dung,taát caû caùc dòch vuï web khaép theá giôùi seõ cung caáp cho caùc öùng duïng khaùch taát caû caùc kieåu thoâng tin ñoäng,töø gía caû thò tröôøng chöùng khoaùn ñeán caùc baoù caùo thôøi tieát. Neùt ñeïp cuûa moät dòch vuï web ñoù laø khaû naêng deã daøng taïo ra noù. Toùm Taét Ngoân Ngöõ Bieán Bieán ñöôïc duøng ñeå löu taïm thôøi caùc giaù trò tính toaùn trong quaù trình xöû lyù chöông trình. Caùch khai baùo bieán Khai baùo moät bieán trong C# coù cuù phaùp nhö sau : Type variable-name[=initialization] ÔÛ ñaây type laø kieåu bieán ,va variable-name laø teân bieán coù theå chöùa chöõ caùi,soá,vaø daáu gaïch döôùi.Tuy nhieân teân bieán phaûi baét ñaàu baèng hoaëc laø daáu gaïch döôùi hoaëc laø chöû caùi vaø khoâng ñöôïc baét ñaàu baèng soá . Döôùi ñaây laø caùc ví duï veà khai baùo bieán : int _999 ;//hôïp leä int a_dog ;//hôïp leä int 123_go ;//khoâng hôïp leä Phaïm vi söû duïng bieán Phaïm vi söû duïng bieán tuøy thuoäc caùch ta khai baùo vaø choã ta ñaët doøng leänh khai baùo bieán. Neáu ta khai baùo trong phaàn General, bieán coù theå ñöôïc duøng ôû baát kyø ñoaïn leänh naøo trong from vaø cuõng chæ maát ñi khi from ñöôïc giaûi phoùng khoûi boä nhôù. Neáu ta khai baùo bieán trong phaàn vieát leänh cho moät söï kieän cuûa moät ñoái töôïng (töùc khai baùo giöõa daáu “{“ baét ñaàu maõ leänh vaø daáu “}” keát thuùc cuûa maõ leänh ñoù) thì bieán chæ toàn taïi vaø duøng ñöôïc trong phaïm vi daáu “{“ baét ñaàu maõ leänh vaø daáu “}” keát thuùc cuûa maõ leänh ñoù maø thoâi. Bieán nhö vaäy goïi laø bieán rieâng hay bieán noäi boä. Neáu ta duøng töø khoùa Public ñeå khai baùo bieán , bieán seõ toàn taïi trong suoát thôøi gian thöïc hieän chöông trình vaø coù theå duøng ñöôïc trong baát cöù ñoaïn leänh naøo cuûa chöông trình. Bieán nhö vaäy goïi laø bieán chung hay bieán toaøn cuïc. Caùc kieåu döõ lieäu C# C# coù hai nhoùm kieåu döõ lieäu rieâng bieät ,coù teân caùc kieåu giaù trò vaø caùc kieåu tham chieáu . Caùc kieåu gía trò goàm coù : ºCaùc kieåu ñôn giaûn (int ,char,….) ºstructs ºenums Caùc kieåu ñònh saún Teân kieåu Moâ Ta’ sbyte Nguyeân coù daáu 8-bit short Nguyeân coù daáu 16-bit Int Nguyeân coù daáu 32-bit Long Nguyeân coù daáu 64-bit Byte Nguyeân khoâng daáu 8-bit Ushort Nguyeân khoâng daáu 16-bit Uint Nguyeân khoâng daáu 32-bit Ulong Nguyeân khoâng daáu 64-bit Float Soá chaám ñoäng coù ñoä chính xaùc ñôn Double Soá chaám ñoäng coù ñoä chính xaùc ñoâi Bool Kieåu logic-true hay false Char Kyù töï Unicode Decimal soá thaäp phaân coù 28 chöû soá coù nghóa Caùc kieåu tham chieáu ñöôïc truy caäp giaùn tieáp baèng caùc bieán tham chieáu troû ñeán ñoái töôïng.Do trong C# ngaên caám caùc bieán troû neân neáu muoán duøng caùc bieán troû ta chæ coù theå thöïc hieän trong maû ‘khoâng an toøan’ (unsafe) ôû ñoù cô cheá gom gaùc khoâng hoaït ñoäng. C# cung caáp hai kieåu tham chieáu ñònh saún object vaø string.Taát caû caùc lôùp khaùc ñeàu döïa vaøo object ,cho duø chuùng khoâng ñoøi tính thöøa keá töø caùc lôùp khaùc . Caùc toaùn töû trong C# Baûng döôùi ñaây lieät keâ taát caû caùc toaùn töû hoå trôï bôûi C# : Phaïm Truø Caùc toaùn töû Soá hoïc + , - , * , / , % Loâgic & , | , ! , ^ ,~,&& ,|| Gheùp chuoãi + Gia soá vaø Giaûm soá ++ , _ _ Chuyeån bit > So saùnh = = ,!= , ,= Gaùn = ,+=,-=,*=,/=,%=,&=,|=,^= ,>= Truy caäp thaønh vieân . Laäp chæ muïc [ ] Aùp ñoåi ( ) Taoï ñoái töôïng new Caáu truùc tuyeån vaø caáu truùc laëp Caáu truùc phaùt bieåu leänh (statements) Phaùt bieåu If Cuù phaùp phaùt bieåu if nhö sau : Cuù phaùp 1 : If( conditional-expression) Phaùt bieåu leänh ñôn ; Hoaëc : If( conditional-expression){ Moät hay nhieàu caâu leänh ; } Cuù Phaùp 2 : If( conditional-expression) Phaùt bieåu leänh ñôn ; Else Phaùt bieåu leänh ñôn ; Hoaëc : If( conditional-expression){ Moät hay nhieàu caâu leänh ; }else { Moät hay nhieàu caâu leänh ; } Phaùt bieåu switch : Cuù Phaùp : Switch { ‘xeùt bieán hay bieåu thöùc naøy Case ‘Neáu bieán hay bieåu thöùc baèng caùc giaù trò naøy ‘thì thöïc hieän ñoaïn leänh naøy … break ; Case … break ; Default : ‘thì thöïc hieän ñoaïn leänh naøy … break; } Caùc caáu truùc laëp Meänh ñeà While : Cuù phaùp : While ( ){ ; } Voøng laëp do … while Cuù phaùp : Do{ ; }while() ; Meänh ñeà foreach : Cuù Phaùp : Foreach (element_type variable in expression ) Statement ; Vôùi element_type laø kieåu döõ lieäu ñöôc söû trong vieäc khai baùo bieán ,expression coù theå laø moät maûng array hay moät lôùp taäp hôïp(collection class) chöùa caùc phaàn töû coù kieåu element_type. Caâu leänh For : Cuù Phaùp : Moät caâu leänh for ñöôïc ñieàu khieån bôûi ba bieåu thöùc trong daáu ngoaëc ñôn-moät bieåu thöùc khôûi taïo [initilizer],moät bieåu thöùc ñieàu kieän ,vaø moät bieåu thöùc laäp : For(initilizer ;codition;iterator) Statement ; Goïi Caùc Thuû Tuïc (phöông phaùp): Tieán trình ñònh nghiaõ vaø goïi caùc Thuû Tuïc trong C# theo saùt moâ hình C++ /Java. Ñieàu naøy coù nghóa laø moïi thuû tuïc phaûi coù moät khai baùo tuaân thuû khuoân maåu döôùi ñaây ,ôû ñoù caùc muïc trong caùc daáu ngoaëc vuoâng laø tuøy choïn : [modifier] return-type method-name([parameterlist]) { . . . . . . } Moïi thuû tuïc phaûi coù moät kieåu traû veà ;Neáu thuû tuïc khoâng traû veà moät giaù trò ,kieåu traû veà cuûa noù laø void.Moät thuû tuïc coù theå khoâng chaáp nhaän tham soá naøo ,trong tröôøng hôïp ñoù theo sau teân thuû tuïc laø caùc daáu ngoaëc ñôn troáng . Theo sau khai baùo thuû tuïc laø thaân thuû tuïc ,coù daïng moät khoái maõ (töùc laø caùc caâu leänh chöùa trong caùc daáu “( )” . Ví duï döôùi ñaây neâu phaàn ñònh nghóa cuûa square ,chaáp nhaän moät giaù trò float vaø traû veà bình phöông cuûa noù : double square(float n) { return n*n; } Ñeå goïi moät thuû tuïc,ta duøng teân noù ,cung caáp caùc ñoái soá caàn thieát ,vaø löu giaù trò traû veà . Ví duï : Double d=square(3.0F); 4.6. Khoâng Gian Teân (Namespace) C# söû duïng khoâng gian teân hoå trôï trôï cho vieäc coâ laäp vaø vieäc ñoùng goùi caùc lôùp (class),caùc giao dieän ,vaø caùc struct coù lieân quan thaønh moät ñôn vò (unit). Kieán truùc .NET söû duïng caùc khoâng gian teân(namespace) loàng nhau xuaát phaùt töø khoâng gian teân System .Microsoft cuõng ñaõ cung caáp caùc lôùp (class) ,vaø caùc giao dieän ñöôïc ñaët döôùi khoâng gian teân (namespace) Microsoft daønh cho chöùc naêng rieâng bieät cuûa windows. Cuù phaùp cho vieäc khai baùo moät khoâng gian teân : Namesapce some-namespace-name{ //Cac1 lôùp (class),caùc giao dieän ,caùc struct ,.v.v.. } Söû duïng caùc thöïc theå beân trong moät khoâng gian teân coù theå ñöôïc thöïc hieän hai caùch khaùc nhau . Caùch deã nhaát ñeå truy caäp caùc thöïc theå beân trong moät khoâng gian teân laø söû duïng chæ thò using . Vi duï : Using System ;//söû duïng khoâng gian teân system. Söï löïa choïn thöù hai laø söû duïng teân ñaày ñuû cuûa moät thöïc theå rieâng bieät . Ví duï ,lôùp Console toàn taïi beân trong khoâng gian teân System .Thay vì söû duïng chæ thò using ,noù coù theå duøng teân ñaáy ñuû ñeå thay vaøo ,nhö ñöôïc trình bayø sau ñaây : System . ConSole.WriteLine(“ abc“); 4.7. Arrays (Maûng) : Trong C# ,Array (maûng) laø ñoái töôïng khaù ñaët bieät .Taát caû caùc ñoái töôïng kieåu maûng ñeàu ñöôïc ngaàm ñònh laø keá thöøa töø kieåu döû lieäu System.Array .Lôùp cô sôû System.Array cung caáp reát nhieàu phöông thöùc ñöôïc söû duïng trong quùa trình thao taùc treân maûng . Cuù Phaùp sau ñaây ñöôïc söû duïng ñeå caáp phaùt moät maûng caáp 1 Array-type[ ] var = new array-type [size] Maûng trong C# söû duïng chæ muïc ñeám töø 0. Maûng Array trong C# khoâng nhaát thieát laø moät chieàu .Cuù phaùp ñeå khôûi taïo caùc maûng ña chieàu laø moät phaàn môû roäng ñôn giaûn cuûa tröôøng hôïp chieàu ñôn. Caùc Maûng ña chieàu : C# hoå trôï hai kieåu maûng ña chieàu –chöû nhaät vaø raêng cöa .Trong maûng chöû nhaät ,moïi haøng coù cuøng chieàu daøi .Maëc khaùc ,moät maûng raêng cöa ñôn gæan laø moät maûng caùc maûng moät chieàu moãi maûng coù theå coù moät chieàu daøi khaùc nhau neáu muoán . Moät ví duï minh hoaï Maûng ña chieàu : Using System; Class Test { public static int main( ) { int [,] arr2 ;//khai baùo maûng chöû nhaät int [ ][ ] arr4 ; // khai baùo maûng 2 chieàu raêng cöa int [ ] [ ][] arr5; // khai baùo maûng 3 chieàu raêng cöa arr2= new int[5,5] ; arr4=new int[3][ ]; arr4[0] =new int[5]; arr4[1]=new int[3]; arr4[2]=new int[4]; arr5=new int[2][ ][ ]; arr5[0]=new int[3][ ]; arr5[0][0]=new int[3 ]; arr5[0][1]=new int[4]; return 0; } } 4.7. Caùc Lôùp Ngoaïi Leä C# cung caáp moät soá lôùp ngoaïi leä ,taát caû ñeàu thöøa keá töø lôùp System.Exception .Caùc lôùp ngoaïi leä chung maø baïn coù theå gaëp khi vieát maõ öùng duïng ñöôïc toång keát trong baûng sau : Lôùp Ngoaïi Leä Nguyeân Nhaân SystemException - Moät kieåm tra thôøi gian chaïy bò thaát baïi ;ñöôïc duøng nhö moät lôùp cô sôû cho caùc ngoaïi leä khaùc . AccessException - Khoâng theå truy caäp moät thaønh vieân kieåu, Nhö moät phöông phaùp hoaëc tröôøng. ArgumentException -Moät ñoái soá cho moät phöông phaùp khoâng Hôïp leä ArgumentNullException -Moät ñoái soá null ñöôïc truyeàn cho moät Phöông phaùp khoâng chaáp nhaän noù. ArgumentOutOfRangeException - Gía trò ñoái soá naèm ngoaøi mieàn. ArithmeticException -Söï coá traøn treân hoaëc traøn döôùi soá hoïc xaûy ra. DivideByZeroException -Ñaõ gaéng chia zero. FormatException -Daïng thöùc moät ñoái soá bò sai. IndexOutOfRangeException -Moät chæ muïc naèm ngoaøi caùc caän. NotFiniteNumberException -Moät soá khoâng hôïp leä . OutOfMemoryException -Khoâng ñuû boä nhôù ñeå thi haønh. StackOverflowException - Moät ngaên Xeáp ñaõ traøn. Ñeå chaën baét nhöõng ngoaò leä treân ,ta duøng cuù phaùp try…catch : Try { //code coù theå bò loãi }catch( System Exception se ){ //xöõ lyù moät ngoaò leä vöøa phaùt sinh. } PHAÀN 3 : ADO.NET 1. ADO. NET laø gì ? ADO.NET laø moät taäp hôïp caùc haøm API chieán löôïc cuûa Microsoft cho pheùp truy caäp döõ lieäu theo moâ hình phaân taùn hieän ñaïi treân neàn Microsoft .ADO.NET chöùa moät taäp caùc giao dieän interface vaø lôùp cho pheùp baïn laøm vieäc vôùi döõ lieäu trong moät phaïm vi raát nhieàu cô sôû döõ lieäu bao goàm SQL Server ,Oracle,Sybase,Microsoft Access,….. Nhaø cung caáp döõ lieäu (ADO.NET Data Providers): ADO.NET söû duïng khaùi nieäm nhaø cung caáp döõ lieäu cho pheùp truy caäp ñeán nhieàu cô sôû döõ lieäu khaùc nhau moät caùch hieäu quaû .Moãi nhaø cung caáp döõ lie._.

Các file đính kèm theo tài liệu này:

  • docBAOCAO.doc