1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Xác định các tiêu chuẩn để xây dựng framework

59 289 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 59
Dung lượng 1,45 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

BỘ GIÁO DỤC VÀ ĐÀO TẠO Trường Đại Học Công Ngiệp Hà Nội Khoa Công Nghệ Thông TinBáo Cáo Bài Tập Lớn Nhập Môn Công Nghệ Phần Mềm ĐỀ TÀI: Xác Định Các Tiêu Chuẩn Để Xây Dựng FrameWork... P

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO Trường Đại Học Công Ngiệp Hà Nội Khoa Công Nghệ Thông Tin

Báo Cáo Bài Tập Lớn Nhập Môn Công Nghệ Phần Mềm

ĐỀ TÀI: Xác Định Các Tiêu Chuẩn Để Xây Dựng

FrameWork

Trang 2

LỜI MỞ ĐẦU

Th h k ti p c a Internet sẽ nh th nào? Nhi u ngế ệ ế ế ủ ư ế ề ười trongchúng ta sẽ hình dung m t th gi i tr c tuy n trong đó các máy PC,ộ ế ớ ự ếserver, thi t b thông minh và các d ch v trên n n Internet có th tế ị ị ụ ề ể ươngtác khăng khít v i nhau Các doanh nghi p sẽ có th chia x d li u, tíchớ ệ ể ẻ ữ ệ

h p các quá trình nghi p v cũng nh s c l c đ đem l i các gi i phápợ ệ ụ ư ứ ự ể ạ ả

t ng h p cho khách hàng Và thông tin mà ta ho c doanh nghi p c a taổ ợ ặ ệ ủ

c n đ n sẽ luôn luôn s n sàng b t c đâu và trên b t kỳ m t n n t ngầ ế ẵ ấ ứ ấ ộ ề ả

ho c m t ng d ng nào.ặ ộ ứ ụ

Đó cũng là lý do Microsoft đ a ra NetFrameWork, n n t ng làm thayư ề ả

đ i t n g c ki u l p trình truy n th ng, làm cho t m nhìn trên hoànổ ậ ố ể ậ ề ố ầtoàn có th đ t t i và sẽ còn đ a th gi i ti n xa h n n a ể ạ ớ ư ế ớ ế ơ ữ

Trong khuôn kh c a bài báo cáo, em xin t p trung vào vi c cung c pổ ủ ậ ệ ấ

m t cái nhìn t ng quát v NetFrameWork và s d ng ngôn ng C# (Cộ ổ ề ử ụ ữShaps) đ có th hi u sâu h n v NetFrameWork.ể ể ể ơ ề

V i m t ng d ng C# có th giúp ta hi u rõ h n v th gi i c aớ ộ ứ ụ ể ể ơ ề ế ớ ủ.NetFrameWork

Trang 3

M C L C Ụ Ụ

Trang 4

PH N I: T NG QUAN V FRAMEWORK Ầ Ổ Ề1.1: Framework là gì?

Trong l p trình, framework là m t khái ni m tr u tậ ộ ệ ừ ượng ch m tỉ ộ

ph n m m cung c p các đo n mã cho các ch c năng ph bi n có th đầ ề ấ ạ ứ ổ ế ể ược

ch n l c, ghi đè ho c s d ng c th b i ngọ ọ ặ ử ụ ụ ể ở ườ ử ụi s d ng nh ng đo n mã đó,ữ ạ

t đó có th t o ra nh ng ph n m m c th Framework là m t ph n m mừ ể ạ ữ ầ ề ụ ể ộ ầ ề

t ng quát, có th đổ ể ược tái s d ng làm n n t ng cho các ph n m m, s nử ụ ề ả ầ ề ả

ph m hay gi i pháp ph n m m c th Framework thẩ ả ầ ề ụ ể ường bao g m c hồ ả ỗ

tr l p trình, biên d ch, các th vi n l p trình (code libraries), m t giaoợ ậ ị ư ệ ậ ộ

di n l p trình (Application Proramming Interface – API) và các b công cệ ậ ộ ụbao g m t t c các thành ph n khác nghau đ cho phát tri n m t d ánồ ấ ả ầ ể ể ộ ự

ho c gi i pháp ph n m m c th ặ ả ầ ề ụ ể

1.2: Các đ c đi m c a Framework ặ ể ủ

Đ o ngả ược ki m soát: Trong Framework, không gi ng nh trong cácể ố ư

th vi n, th t th c hi n không đư ệ ứ ự ự ệ ược quy đ nh b i ngị ở ười g i, mà b iọ ờFramework Có nghĩa là ngườ ử ụi s d ng Framework không được g i các hàm,ọ

th t c m t cách tùy ti n mà ph i g i đúng theo th t đủ ụ ộ ệ ả ọ ứ ự ược quy đ nh b iị ởFramework

Hành vi m c đ nh: M t Framework có m t hành vi m c đ nh Hành viặ ị ộ ộ ặ ịnày th c s h u ích đ i v i ngự ự ữ ố ớ ười dùng

Kh năng m r ng: Ngả ở ộ ười dùng có th t m r ng Framework b ngể ự ở ộ ằcách thêm các th vi n, các l p, các hàm đ th c hi n các ch c năng màư ệ ớ ể ự ệ ứmình mu n.ố

Không th s a đ i mã ngu n: Ngể ử ổ ồ ười dùng có th m r ng tùy ý, tuyể ở ộnhiên, nhìn chung không được phép s a đ i mã ngu n c a Framework.ử ổ ồ ủ

Trang 5

Framework được thi t k ra nh m m c đích t o thu n l i cho cácế ế ằ ụ ạ ậ ợnhà phát tri n ph n m m b ng cách cho phép các nhà thi t k và l p trìnhể ầ ề ằ ế ế ậviên đ dành th i gian c a h cho vi c đáp ng nhu c u c a ph n m mể ờ ủ ọ ệ ứ ầ ủ ầ ề

h n là quan tâm đ n các chi ti t n n t ng c a h th ng ph n m m, do đóơ ế ế ề ả ủ ệ ố ầ ề

gi m th i gian phát tri n t ng th ả ờ ể ổ ể

Ví d : m t nhóm phát tri n ng d ng web cho ngân hàng có th sụ ộ ể ứ ụ ể ử

d ng Framework v web đ có th t p trung vào phát tri n các tính năngụ ề ể ể ậ ể

c a ngân hàng thay vì ph i x lý c ch c a m t website nhà nủ ả ử ơ ế ủ ộ ước

Framework thường được thêm tr c ti p vào chự ế ương trình, đi u đóề

thường được g i là “code bloat” Do các ng d ng ph i đ nh họ ứ ụ ả ị ướng theo nhu

c u c a khách hàng, nên Framework thầ ủ ường ph i đả ược thay đ i, b xungổ ổsau m i s n ph m H n n a do s ph c t p c a API(Giao di n l p trìnhỗ ả ẩ ơ ữ ự ứ ạ ủ ệ ậ

ng d ng), d đ nh gi m th i gian phát tri n có th không đ t đ c do

ph i dành thêm th i gian ban đ u đ h c cách s d ng Framework Đi uả ờ ầ ể ọ ử ụ ềnày có th đúng khi s d ng Framework m i ho c dùng l n đ u tiên Tuyể ử ụ ớ ặ ầ ầnhiên t nh ng l n sau tr đi thì ngừ ữ ầ ở ười phát tri n sẽ không c n h c l i n aể ầ ọ ạ ữ

và dó th s d ng luôn Framework N u nh Framework không để ử ụ ế ư ược dùng

l i trong các s n ph m ti p theo, có th th y th i gian cho vi c phát tri nạ ả ẩ ế ể ấ ờ ệ ể

ho c h c cách dùng m t Framework m i sẽ t n chí phí h n so v i vi c choặ ọ ộ ớ ố ơ ớ ệnhân viên s d ng l i các mã quen thu c c a Framework cũ, t đó có thử ụ ạ ộ ủ ừ ể

gi m đả ược th i gian phát tri n Cũng vì v y mà nhi u l p trình viên thờ ể ậ ề ậ ường

gi b n sao ph n mã h u ích c a s n ph m mà mình vi t đ dùng chung.ữ ả ầ ữ ủ ả ẩ ế ể

Trang 6

PH N II: TÌM HI U V NET FRAMEWORK Ầ Ể Ề2.1: S ra đ i c a Net Framewok ự ờ ủ

Th p k 70, máy tính cá nhân ra đ i Kho ng 10 năm sau, các máyậ ỷ ờ ảtính đ c l p đã k t n i độ ậ ế ố ược v i nhau nh vào các công ngh m ng.ớ ờ ệ ạKho ng h n 10 năm sau đó, vào th p k 90, Internet b t đ u bung n trênả ơ ậ ỷ ắ ầ ổtoàn th gi i.ế ớ

Ngày 13/02/2002, Micorsoft chính th c gi i thi u b công c l pứ ớ ệ ộ ụ ậtrình m i - Visual Studio NET cùng v i Net FrameWork 1.0.ớ ớ

Nghành công nghi p ph n m m phát tri n r t nhanh Các ph n m mệ ầ ề ể ấ ầ ề

đ u tiên v i giao di n dòng l nh d n đầ ớ ệ ệ ầ ược thay th b ng các ph n m mế ằ ầ ềgiao di n đ h a, x lý ph c t p và t n d ng s c m nh c a ph n c ng máyệ ồ ọ ử ứ ạ ậ ụ ứ ạ ủ ầ ứtính v n đố ược coi là m i 2 năm l i tăng g p đôi Ngày nay, các ph n m mỗ ạ ấ ầ ề

ng d ng đ c dùng kh p môi n i, t các ng d ng l n trong các t p đoàn,

công ty cho t i nh ng ng d ng e-commerce tràn ng p internet hay vô vànớ ữ ứ ụ ậcác game máy tính

Trong th i đ i công ngh thông tin, d li u tr nên quan tr ng đ nờ ạ ệ ữ ệ ở ọ ế

n i ngỗ ười ta mong mu n t t c m i th nh đi n tho i di đ ng, máy tínhố ấ ả ọ ứ ư ệ ạ ộxách tay, các máy PDA (Personal Digital Assistant) đ u ph i k t n i v i nhauề ả ế ố ớ

đ chia s d li u và vi c s d ng các ph n m m đ qu n lý, s d ngể ẻ ữ ệ ệ ử ụ ầ ề ể ả ử ụ

nh ng d li u đó là không biên gi i ng d ng ph i s n sàng đ s d ng tữ ữ ệ ớ Ứ ụ ả ẵ ể ử ụ ừtrên máy tính cũng nh trên đi n tho i di đ ng 24/24 gi , ít l i, x lý nhanhư ệ ạ ộ ờ ỗ ử

và b o m t ch t chẽ.ả ậ ặ

Các yêu c u đó làm đau đ u các chuyên gia phát tri n ng d ng khiầ ầ ể ứ ụ

ph n m m ch y u vi t cho h th ng này không ch y trên m t h th ngầ ề ủ ế ế ệ ố ạ ộ ệ ốkhác b i nhi u lý do nh : khác bi t v h đi u hành, khác bi t v chu nở ề ư ệ ề ệ ề ệ ề ẩgiao ti p d li u, m ng Th i gian và chi phí càng tr nên quý báu vì b nế ữ ệ ạ ờ ở ạ

Trang 7

ch đ n các thi t b c m tay hay th m chí trên các h đi u hànhWindowsủ ế ế ị ầ ậ ệ ề

c a Microsoft Ki n trúc l p trình d a trên Java bytecode và thi hành trênủ ế ậ ựmáy o Java (JVM – Java Virtual Marchine) cho phép các ng d ng Java ch yả ứ ụ ạtrên b t c h đi u hành nào Mô hình l p trình thu n hấ ứ ệ ề ậ ầ ướng đ i tố ượng

c a Java giúp các l p trình viên tùy ý s d ng l i và m r ng các đ i tủ ậ ử ụ ạ ở ộ ố ượng

có s n Các nhà cung c p công c l p trình d a vào đây đ g n vào các môiẵ ấ ụ ậ ự ể ắ

trường phát tri n ng d ng b ngJava c a mình đ các th vi n l p trìnhể ứ ụ ằ ủ ủ ư ệ ậ

đ h tr các l p trình viên.ể ỗ ợ ậ

S c m nh c a Java dứ ạ ủ ường nh quá l n đ n n i Microsoft t ng ph iư ớ ế ỗ ừ ả

ch ng tr b ng cách lo i b Java Virtual Marchine kh i các phiên b n hố ả ằ ạ ỏ ỏ ả ệ

đi u hành Windows m i c a mình nh Windows XP Tuy nhiên,Microsoftề ớ ủ ư

th a hi n r ng dù không cung c p JVM, Sun cũng có th t cung c p cácừ ể ằ ấ ể ự ấJVM package cho nh ng ngữ ười dùng Windows Đó là lý do t i sao nhà kh ngạ ổ

l quy t đ nh b t tay xây d ng l i t đ u m t n n t ng phát tri n ngồ ế ị ắ ự ạ ừ ầ ộ ề ả ể ứ

d ng m i: Microsoft NET Framework.ụ ớ

Ra đ i khá mu n so v i Java, Net s d ng kỹ thu t l p trình thu nờ ộ ớ ử ụ ậ ậ ầ

hướng đ i tố ượng nh Java và cũng thi hành trên m t máy o là CLRư ộ ả(Common Language Runtime)

B th vi n c a Net Framework bao g m h n 5000 l p đ i tộ ư ệ ủ ồ ơ ớ ố ượng đủ

s c h tr h u h t các yêu c u t phía l p trình viên Công ngh mã ngu nứ ỗ ợ ầ ế ầ ừ ậ ệ ồ

m đở ược đ a vào Net thay cho COM và DCOM đang đư ược các l p trình viênậ

c a Microsoft s d ng V i COM, nh ng thành ph n (COMponent) đã đủ ử ụ ớ ữ ầ ượcxây d ng nh các l p th vi n hay các control ch có th s d ng l i B nự ư ớ ư ệ ỉ ể ử ụ ạ ạkhông th m r ng chúng hay vi t l i cho thích h p v i ng d ng c aể ở ộ ế ạ ợ ớ ứ ụ ủmình Trong Net, m i thành ph n đ u có th k th a và m r ng, m t kỹọ ầ ề ể ế ừ ở ộ ộ

Trang 8

thu t m i đậ ớ ược đ a ra thay cho COM là Assembly Distributed Componentưhay DCOM là kỹ thu t dùng đ ph i h p các thành ph n trên nhi u máyậ ể ố ợ ầ ềtính gi đây đờ ược thay th trong Net b i chu n công ngh m i là SOAPvàế ở ẩ ệ ớXML Web Service.

Cùng v i SOAP (Simple Objects Access Protocol), XML Web Service mớ ở

r ng kh năng c a DCOMt ch ch ph i h p các máy trong Intranet, n mộ ả ủ ừ ỗ ỉ ố ợ ằsau Firewall ra Internet Các công ty com gi đây m c s c xây d ng cácờ ặ ứ ự

ph n m m đ c l p c a mình nh ng v n có th ph i h p v i nhau đ đemầ ề ộ ậ ủ ư ẫ ể ố ợ ớ ể

t i khách hàng các d ch v e-commerce đa d ng nh ng th ng nh t.ớ ị ụ ạ ư ố ấ

XML (eXtended Markup Language) chu n l u tr và trao đ i d li uẩ ư ữ ổ ữ ệ

m i nh t, hi u qu nh t hi n nay cũng đớ ấ ệ ả ấ ệ ược Net h tr khá đ y đ Chỗ ợ ầ ủ ỉ

c n m t công c chuy n đ i đ n gi n mà th m chí b n cũng có th t vi tầ ộ ụ ể ổ ơ ả ậ ạ ể ự ế(đương nhiên khi b n đã bi t v XML), các d li u trạ ế ề ữ ệ ước kia c a b n dù ủ ạ ở

b t c d ng l u tr nào cũng có th chuy n v d ng XML đ s d ng trongấ ứ ạ ư ữ ể ể ề ạ ể ử ụcác ng d ng m i hay trao đ i v i h th ng ng d ng khác Net gi đâyứ ụ ớ ổ ớ ệ ố ứ ụ ờcũng s d ng kỹ thu t truy c p c s d li u m i là ADO.NET đ b sungử ụ ậ ậ ơ ở ữ ệ ớ ể ổcho kỹ thu tADO - trậ ước kia v n là thành ph n m nh nh t trong MDACố ầ ạ ấ(Microsoft Data Access Component g m có 3 ph n DB-Lib, OLEDB và ADO)ồ ầ

kh năng làm vi c v i d li u XML B n cũng nên bi t r ng, k t SQLả ệ ớ ữ ệ ạ ế ằ ể ừServer 2000, XML đã được h tr trong ph n m m qu n tr c s d li uổ ợ ầ ề ả ị ơ ở ữ ệ

n i ti ng nh t c a Microsoft Cùng v i XML, SOAP và Web Service đang làổ ế ấ ủ ớ

nh ng vũ khí m nh nh t mà Microsoft s d ng đ qua m t Java.ữ ạ ấ ử ụ ể ặ

Cũng không th quên CLR, máy o c a các ng d ng vi t b ng Net.ể ả ủ ứ ụ ế ằCommon Language Runtime(CLR) được s d ng đ th c hi n các đo nử ụ ể ự ệ ạ

chương trình d ng mã IL (Immediate Language) Nghĩa là dù b n l p trìnhở ạ ạ ậ

b ng ngôn ng nào b n thích, m t khi có th biên d ch sang mã IL, b n sẽằ ữ ạ ộ ể ị ạyên tâm r ng CLRsẽ thi hành nó m t cách suôn s Gi ng nh JVM c a Java,ằ ộ ẻ ố ư ủCLR bao g m trong nó nhi u thành ph n qu n lý ng d ng khi thi hành nhồ ề ầ ả ứ ụ ư

Trang 9

d ng đ sót l i nh m s d ng hi u qu b nh Ngoài ra, CLR không quênụ ể ạ ằ ử ụ ệ ả ộ ớ

h tr vi c qu n lý các ng d ng trỗ ợ ệ ả ứ ụ ước đây vi t trên kỹ thu tCOM Nó đ mế ậ ả

b o cho b n không ph i b đi nh ng gì đã dày công xây đ p trả ạ ả ỏ ữ ắ ước đây mà

v n có th ph i h p nó v i các ng d ng m i vi t trên Net.ẫ ể ố ợ ớ ứ ụ ớ ế

M t đi m n a không th b qua là thành ph n Common Languageộ ể ữ ể ỏ ầSpecification N u nh b n th c m c r ng li u mình có th s d ng Netế ư ạ ắ ắ ằ ệ ể ử ụFramework v i nhi u đi m m nh nh v y khi m i th đ u đã đớ ề ể ạ ư ậ ọ ứ ề ược xây

d ng l i t đ u Câu tr l i là có cho vi c s d ng Net c a b n và có choự ạ ừ ầ ả ờ ệ ử ụ ủ ạ

m t ngôn ng .Net B n v n sẽ dùng C++ hay Visual Basic trên .Net.ộ ữ ạ ẫCommon Language Specification trong CLR được xây d ng v i m c đích môự ớ ụ

t các yêu c u c n thi t c a m t ngôn ng đ có th s d ng trong l pả ầ ầ ế ủ ộ ữ ể ể ử ụ ậtrình và biên d ch thành mã IL M t khi đã d ng mã IL, ng d ng đã có thị ộ ở ạ ứ ụ ể

ch y trên CLR và nh th b n đã có kh năng dùng ngôn ng l p trình màạ ư ế ạ ả ữ ậmình yêu thích đ t n d ng các kh năng m ng mẽ c a Net.ể ậ ụ ả ạ ủ

Trước đây, các l p trình viên đã quen dùng Visual C++ hay VisualậBasic 6 hay Visual InterDEV m i khi c n xây d ng m t lo i ng d ng khácỗ ầ ự ộ ạ ứ ụ

ph i chuy n qua l i gi a các môi trả ể ạ ữ ường l p trình khác nhau c aVisualậ ủStudio 98 và ch t nh n ra r ng VB 6 không có đi m m nh này c a C++ ho cợ ậ ằ ể ạ ủ ặC++ không làm nhanh được các ch c năng kia c a VB 6, … sẽ c m th y nhẽứ ủ ả ấnhõm vì v i Net gi đây, m i s c m nh c a các ngôn ng l p trình đ u nhớ ờ ọ ứ ạ ủ ữ ậ ề ưnhau .Net Framework h tr m t b th vi n l p trình đ s h n 5000 l pỗ ợ ộ ộ ư ệ ậ ồ ộ ơ ớ

đ i tố ượng đ b n đ kh năng xây d ng các lo i ng d ng t ki u consoleể ạ ủ ả ự ạ ứ ụ ừ ể( ng d ng dòng l nh), ng d ng trênWindows cho t i các ng d ng Web,ứ ụ ệ ứ ụ ớ ứ ụcác service c a h đi u hành và các Web service trên Internet.ủ ệ ề

Trước khi đi vào chi ti t các thành ph n trong Net Framework, c nế ầ ầ

ph i đ c p đ n b control đ s và m i mẽ c a Net R t nhi u đi u khi nả ề ậ ế ộ ồ ộ ớ ủ ấ ề ề ể

m i đớ ược thêm vào Net Framework đ h tr cho các ng d ng có giaoể ỗ ợ ứ ụ

di n đ h a trên Windows và trên Web Nh ng công c này không ch hệ ồ ọ ữ ụ ỉ ỗ

tr chu n font ch Unicode mà còn k t h p v i kh năng xây d ng ngợ ẩ ữ ế ợ ớ ả ự ứ

Trang 10

d ng mang tính qu c t khi ngụ ố ế ườ ậi l p trình ph i đáp ng nhi u ngôn ng ,ả ứ ề ữnhi u đ nh d ng ngày gi hay ti n t khác nhau.ề ị ạ ờ ề ệ

V i r t nhi u thay đ i và m r ng m i, Microsoft đem l i m t môiớ ấ ề ổ ở ộ ớ ạ ộ

trường phát tri n ng d ng s d ng giao di n đ h a, tích h p nhi u ch cể ứ ụ ử ụ ệ ồ ọ ợ ề ứnăng, ti n ích khác nhau đ h tr t i đa cho các l p trình viên, đó chính làệ ể ỗ ợ ố ậVisual Studio.Net

.Net Framework là thành ph n quan tr ng nh t trong kỹ thu t phátầ ọ ấ ậtri n ng d ng d a trên Net Visual Studio sẽ giúp ngể ứ ụ ự ườ ậi l p trình n m b tắ ắ

và t n d ng t t h n nh ng ch c năng c a Net Framework.ậ ụ ố ơ ữ ứ ủ

Trang 11

2.2 Các phiên b n c a NET ả ủ

Ver 1.0 – phát hành năm 2002

Ngày 12/2/2002 đánh d u bấ ước quan tr ng đ u tiên trong “cu c đ i”ọ ầ ộ ờ

c a NET Framework, khi phiên b n 1.0 cùng v i Visual Studio.NET 2002ủ ả ớ

được chính th c ra m t Chính NET Framework 1.0 là đi m nh n đáng chúứ ắ ể ấ

ý nh t và làm cho Visual Studio NET 2002 khác bi t h n v i Visual Studioấ ệ ẳ ớ6.0 đã phát hành năm 1998 L n đ u tiên, Microsoft gi i thi u v “l p trìnhầ ầ ớ ệ ề ậ

h p nh t”, v i vi c l y NET Framework làm n n t ng.ợ ấ ớ ệ ấ ề ả

Ver 1.1 - phát hành năm 2003

M t năm sau ngày .NET Framework 1.0 ra đ i, ngày 24/4/2003,ộ ờMicrosoft đã có ngay b n c p nh t 1.1 ra m t cùng v i Visual Studio.NETả ậ ậ ắ ớ

2003 Không có nhi u nâng c p đáng chú ý trong l n ra m t này, đáng kề ấ ầ ắ ể

nh t là s ra đ i c a NET Compact Framework, phiên b n thu g n c a NETấ ự ờ ủ ả ọ ủFramework cho các thi t b di đ ng Đi u đáng ti c là m c dù có n n t ngế ị ộ ề ế ặ ề ả

r t t t, cùng v i s h tr m nh mẽ t Microsoft, cho đ n nay, .NETấ ố ớ ự ỗ ợ ạ ừ ếCompactFramework v n ch a phát tri n nh “lẽ ra nó ph i th ” Hi n nayẫ ư ể ư ả ế ệ

s thi t b di đ ng ch y Windows Mobile/Windows Phone khá khiêm t nố ế ị ộ ạ ố

so v i các h đi u hành (HĐH) còn l i.ớ ệ ề ạ

.NET Framework 1.1 cũng m ra m t "truy n th ng" là k t đây, cácở ộ ề ố ể ừHĐH Windows đ u đề ược cài đ t s n phiên b n NET Framework m i nh t.ặ ẵ ả ớ ấWindows Server 2003 tiên phong v i phiên b n 1.1, sau đó là Windowsớ ảVista v i NET 3.0, và g n đây nh t là Windows 7/Server 2008 v i NET 3.5ớ ầ ấ ớSP1

Ver 2.0 phát hành năm 2005

Microsoft m t đ n h n 2 năm đ phát tri n NET Framework 2.0 vàấ ế ơ ể ểVisual Studio 2005, và th i gian b ra là th t s đáng giá Tháng 11/2005,ờ ỏ ậ ựhai s n ph m này ra m t v i hàng lo t tính năng m i, trong đó đáng kả ẩ ắ ớ ạ ớ ể

nh t là vi c h tr hoàn toàn cho tính toán 64-bit, NET Micro Framework,ấ ệ ỗ ợ

Trang 12

b sung và nâng c p nhi u control c a ASP.NET và đ c bi t là h trổ ấ ề ủ ặ ệ ỗ ợGenerics .NET 2.0 hoàn toàn khác bi t so v i các phiên b n trệ ớ ả ước.

Generic cho phép chúng ta đ nh ki u an toàn (type safety) Chúng choị ểphép ta t o ra m t c u trúc d li u mà không c n ph i xác đ nh đó là ki uạ ộ ấ ữ ệ ầ ả ị ể

d li u gì Tuy nhiên khi c u trúc d li u này đữ ệ ấ ữ ệ ượ ử ục s d ng, trình biên d chị

ph i đ m b o r ng ki u d li u đả ả ả ằ ể ữ ệ ược s d ng v i nó là ki u an toàn.ử ụ ớ ểGeneric cũng tương đương v i Template trong C tuy nhiên vi c s d ngơ ệ ử ụGeneric trong NET d dàng h n nhi u so v i Template.ễ ơ ề ớ

Phiên b n 1.0 và 1.1 c a NET Framework không h tr generics.ả ủ ỗ ợThay vào đó, l p trình viên s d ng l p Object v i các tham s và thànhậ ử ụ ớ ớ ốviên sẽ ph i chuy n đ i t i các l p khác d a trên l p Object Generics mangả ể ổ ớ ớ ự ớ

đ n hai tính năng c i ti n đáng k đ i v i vi c s d ng l p Object: Gi mế ả ế ể ố ớ ệ ử ụ ớ ả

b t l i v n hành (Reduced run-time errors), Hi u su t đớ ỗ ậ ệ ấ ược c i thi nả ệ(Improved performance)

Ver 3.0 & Ver 3.5 (phát hành năm 2008)

N u nh 3 phiên b n trế ư ả ước đó, NET Framwork đ u g n li n v i m tề ắ ề ớ ộphiên b n Visual Studio nào đó, thì.NET Framework 3.0 đã “phá” truy nả ề

th ng này khi ra m t cùng v i h đi u hành Windows Vista vào cu i nămố ắ ớ ệ ề ố

2006 Ba “đi m nh n” trong l n nâng c p này là thành ph n để ấ ầ ấ ầ ược kỳ v ngọthay th Winform - Windows Presentation Foundation – WPF, WindowsếCommunitcation Foundation – WCF, Windows Workflow Foundation - WF,

và Windows Card Space

.NET Framework 3.0 không ph i là m t phiên b n m i hoàn toàn,ả ộ ả ớ

th c t là m t b n nâng c p c a NET 2.0, hay đúng h n là m t b n nângự ế ộ ả ấ ủ ơ ộ ả

c p cho th vi n c a NET 2.0 ấ ư ệ ủ

Chính vì không có Visual Studio “đi kèm”, mà NET 3.0 đành ph i “kýả

g i” vào Visual Studio 2005 v i m t b công c m r ng Ngử ớ ộ ộ ụ ở ộ ười dùng ph iả

đ i đ n tháng 11 năm 2007 m i đợ ế ớ ượ ử ục s d ng m t phiên b n Visual Studioộ ả

Trang 13

đang nói đ n VS 2008 và NET Frame work 3.5 Cũng nh phiên b n 3.0,ế ư ả.NET 3.5, là m t m r ng trên n n NET 2.0.ộ ở ộ ề

LINQ [LINQ: Language Integrated Query - đây là th vi n m r ngư ệ ở ộcho các ngôn ng l p trình C# và Visual Basic.NET (có th m r ng cho cácữ ậ ể ở ộngôn ng khác) cung c p kh năng truy v n tr c ti p d li u đ i tữ ấ ả ấ ự ế ữ ệ ố ượng,

CSDL và XML] là ph n n i b t và đáng chú ý nh t trong NET 3.5.ầ ổ ậ ấ

Ver 4.0 – phát hành năm 2010

Ngày 12/4 v a qua, Microsoft l i nâng c p NET Framework và Visualừ ạ ấStudio Đây là phiên b n đ u tiên sau NET 2.0 k t 2005, có m t CLR hoànả ầ ể ừ ộtoàn m i: CLR 4.0 Cũng c n nh c l i là c NET 3.0 và 3.5 đ u s d ng CLRớ ầ ắ ạ ả ề ử ụ2.0, và không có CLR 3.0 Vi c Microsoft chuy n th ng lên 4.0 không ch đệ ể ẳ ỉ ể

"đ ng b " phiên b n, mà còn nh m kh ng đ nh đây là m t bồ ộ ả ằ ẳ ị ộ ước ti n l n.ế ớ

2.3: ng d ng c a Net Framework Ứ ụ ủ

Qu n lý b nh Trong nhi u ngôn ng l p trình, các l p trình viênả ộ ớ ề ữ ậ ậ

ch u trách nhi m cho vi c c p phát và gi i phóng b nh và x lý vòng đ iị ệ ệ ấ ả ộ ớ ử ờ

c a đ i tủ ố ượng Trong các ng d ng NET Framework, CLR cung c p các d chứ ụ ấ ị

v này trên danh nghĩa c a ng d ng.ụ ủ ứ ụ

Ki u h th ng ph bi n Trong các ngôn ng l p trình truy n th ng,ể ệ ố ổ ế ữ ậ ề ốcác lo i c b n đạ ơ ả ược xác đ nh b i trình biên d ch, ph c t p kh năng tị ở ị ứ ạ ả ươngtác ngôn ng chéo .NET Framework là lo i c b n đữ ạ ơ ả ược xác đ nh b i hị ở ệ

th ng NET Framework và ph bi n cho t t c các ngôn ng ố ổ ế ấ ả ữ

M t th vi n l p h c r ng rãi Thay vì ph i vi t m t lộ ư ệ ớ ọ ộ ả ế ộ ượng l n các mãớngu n đ x lý các ho t đ ng l p trình ph bi n m c đ th p, các l pồ ể ử ạ ộ ậ ổ ế ở ứ ộ ấ ậtrình viên có th s d ng m t th vi n d dàng ti p c n t .NETể ử ụ ộ ư ệ ễ ế ậ ừFramework

Phát tri n các khuôn kh và công ngh NET Framework bao g m cácể ổ ệ ồ

th vi n cho vi c phát tri n ng d ng, ch ng h n nh ng d ng ASP.NET,ư ệ ệ ể ứ ụ ẳ ạ ư ứ ụ

Trang 14

truy c p d li u ADO.NET và Windows Communication Foundation cho cácậ ữ ệ

ng d ng h ng d ch v

Kh năng tả ương tác c a ngôn ng Biên d ch ngôn ng nh m làmủ ữ ị ữ ằcho NET Framework t o ra m t mã ngu n trung gian có tên là Commonạ ộ ồIntermediate Language (CIL), l n lầ ượt được biên d ch t i th i gian ch yị ạ ờ ạngôn ng chung V i tính năng này, thói quen vi t b ng m t ngôn ng cóữ ớ ế ằ ộ ữ

th truy c p vào các ngôn ng khác, và các l p trình viên có th t p trungể ậ ữ ậ ể ậvào vi c t o ra các ng d ng b ng ngôn ng l p trình ho c ngôn ng c aệ ạ ứ ụ ằ ữ ậ ặ ữ ủ

Multitargeting – Nhi u m c tiêu Nh m m c tiêu hề ụ ằ ụ ướng đ n th vi nế ư ệ

l p NET Framework di đ ng, các nhà phát tri n có th t o ra các nhóm làmớ ộ ể ể ạ

vi c trên nhi u n n t ng NET Framework, ch ng h n nh Windows 7,ệ ề ề ả ẳ ạ ưWindows 8, Windows Phone, và Xbox 360

2.4 Các đ i t ố ượ ng dùng Net Framework

2.4.1.NET Framework – Dành cho ng ườ i dùng

N u b n không ph i là ngế ạ ả ười phát tri n các ng d ng .NETể ứ ụFramework, nh ng b n l i s d ng chúng thì b n không c n ph i có b t kỳư ạ ạ ử ụ ạ ầ ả ấ

ki n th c nào v NET Framework cũng nh cách th c làm vi c, ho t đ ngế ứ ề ư ứ ệ ạ ộ

Trang 15

c a NET Framework .NET Framework là hoàn toàn minh b ch cho ngủ ạ ườidùng.

N u b n đang s d ng h đi u hành Windows thì.NET Framework cóế ạ ử ụ ệ ề

th đã để ược cài đ t trên máy tính c a b n Ngoài ra, n u b n cài đ t m tặ ủ ạ ế ạ ặ ộ

ng d ng đòi h i c n ph i có NET Framework thì trên ch ng trình cài đ t

c a ng d ng đó có th đã cài đ t m t phiên b n c th c a .NETủ ứ ụ ể ặ ộ ả ụ ể ủFramework trên máy tính c a b n Trong m t s trủ ạ ộ ố ường h p, b n cũng cóợ ạ

th th y m t h p tho i yêu c u b n cài đ t NET Framework N u b n chể ấ ộ ộ ạ ầ ạ ặ ế ạ ỉ

c g ng đ ch y m t ng d ng khi h p tho i xu t hi n yêu c u b n ph iố ắ ể ạ ộ ứ ụ ộ ạ ấ ệ ầ ạ ảcài đ t NET Framework và n u máy tính c a b n có th truy c p Internet,ặ ế ủ ạ ể ậ

b n có th đi đ n m t trang web cho phép b n cài đ t phiên b n c a NETạ ể ế ộ ạ ặ ả ủFramework

Trang 16

Nói chung, b n không nên g b b t kỳ phiên b n cài đ t nào c aạ ỡ ỏ ấ ả ặ ủ.NET Framework đã được cài đ t trên máy tính c a b n, b i vì m t ngặ ủ ạ ở ộ ứ

d ng mà b n s d ng có th ph thu c vào m t phiên b n c th và có thụ ạ ử ụ ể ụ ộ ộ ả ụ ể ểkhông th c thi đự ược n u không có NET Framework L u ý r ng có nhi uế ư ằ ềphiên b n c a NETả ủ Framework có th để ược cài đ t trên m t máy tính duyặ ộ

nh t cùng m t lúc Đi u này có nghĩa là b n không c n ph i g b cài đ tấ ộ ề ạ ầ ả ỡ ỏ ặcác phiên b n trả ước đ cài đ t m t phiên b n sau.ể ặ ộ ả

2.4.2.NET Framework– Dành cho phát tri n ể

N u b n là m t nhà phát tri n, b n có th ch n b t kỳ ngôn ng l pế ạ ộ ể ạ ể ọ ấ ữ ậtrình nào có h tr các NET Framework Đ t o ra ng d ng c a b n trênỗ ợ ể ạ ứ ụ ủ ạcác NET Framework đã cung c p cho b n các ngôn ng l p trình nh C#,ấ ạ ữ ậ ưVB.NET, J#, F#,… và kh năng tả ương tác cao giúp cho b n có th tạ ể ương tác

được v i ng d ng NET Framework và các thành ph n khác b t k ngônớ ứ ụ ầ ấ ể

ng mà chúng đữ ược phát tri n.ể

Đ phát tri n các ng d ng ho c các thành ph n NET Framework taể ể ứ ụ ặ ầlàm nh sau:ư

• Cài đ t phiên b n c a NET Framework mà ng d ng c a b n sẽ th cặ ả ủ ứ ụ ủ ạ ự

hi n trên nó Phiên b n m i nh t g n đây là NET Framework 4,5.ệ ả ớ ấ ầ

• Ch n phiên b n NET Framework và các ngôn ng mà b n sẽ s d ngọ ả ữ ạ ử ụ

đ phát tri n các ng d ng c a b n M t s ngôn ng có s n trongể ể ứ ụ ủ ạ ộ ố ữ ẵ

b Visual Studio bao g m: Visual Basic, C #, F #, và C++ t Microsoftộ ồ ừ(m t ngôn ng l p trình cho phép b n phát tri n các ng d ng choộ ữ ậ ạ ể ứ ụ.NET Framework, tuân th v c s h t ng, ngôn ng (CLI) và đ củ ề ơ ở ạ ầ ữ ặ

đi m kỹ thu t.)ể ậ

B công c Visual Studio độ ụ ược dùng cho vi c phát tri n các ng d ng c aệ ể ứ ụ ủ

b n Chi phí cho b này đạ ộ ược cung c p mi n phí ho c có phí t Microsoft.ấ ễ ặ ừ

Trang 17

2.5: C u trúc NetFramework ấ

2.5.1: H đi u hành ệ ề

.NET Framework c n đầ ược cài đ t và s d ng trên m t h đi u hành.ặ ử ụ ộ ệ ề

Hi n t i, nó ch có kh năng làm vi c trên các h đi u hành Microsoftệ ạ ỉ ả ệ ệ ềWin32 và Win64 Trong th i gian t i, Microsoft có th m r ng cho các hờ ớ ể ở ộ ệ

đi u hành khác nh Unix.ề ư

V i vai trò qu n lý vi c xây d ng và thi hành ng d ng, .NETớ ả ệ ự ứ ụFramework cung c p các l p đ i tấ ớ ố ượng (Class) đ b n có th g i thi hànhể ạ ể ọcác ch c năng mà đ i tứ ố ượng đó cungc p Tuy nhiên, l i kêu g i c a b n cóấ ờ ọ ủ ạ

được hưởng ng hay không còn tùy thu c vào kh năng c a h đi u hànhứ ộ ả ủ ệ ềđang ch y ng d ng c a b n.ạ ứ ụ ủ ạ

Các ch c năng đ n gi n nh hi n th h p thông báo (Messagebox) sẽứ ơ ả ư ể ị ộ

được NET Framework s d ng các hàm API c a Windows Ch c năng ph cử ụ ủ ứ ứ

t p h n nh s d ng các COMponent sẽ yêu c u Windows ph i cài đ tạ ơ ư ử ụ ầ ả ặMicrosoft Transaction Server (MTS) hay các ch c năng trên Web c nứ ầWindows ph i cài đ tInternet Information Server (IIS).ả ặ

Nh v y, b n c n bi t r ng l a ch n m t h đi u hành đ cài đ t vàư ậ ạ ầ ế ằ ự ọ ộ ệ ề ể ặ

s d ng NET Framework cũng không kém ph n quan tr ng Cài đ t NETử ụ ầ ọ ặFramework trên các h đi u hành Windows 2000, 2000 Server, XP, XP.NET,ệ ề

2003 Server sẽ đ n gi n và ti n d ng h n khi l p trình.ơ ả ệ ụ ơ ậ

Trang 18

2.5.2: Common Languge Runtime

Là thành ph n k t n i gi a các ph n khác trong NET Framework v i hầ ế ố ữ ầ ớ ệ

đi u hành Common Language Runtime (CLR) gi vai trò qu n lý vi c thiề ữ ả ệhành các ng d ng vi t b ng NET trên Windows.CLR sẽ thông d ch các l iứ ụ ế ằ ị ờ

g i t chọ ừ ương trình cho Windows thi hành, đ m b o ng d ng khôngả ả ứ ụchi m d ng và s d ng tràn lan tài nguyên c a h th ng Nó cũng khôngế ụ ử ụ ủ ệ ốcho phép các l nh nguy hi m đệ ể ược thi hành Các ch c năng này đứ ược th cựthi b i các thành ph n bên trong CLR nh Class loader, Just In Timeở ầ ưcompiler,Garbage collector, Exception handler, COM marshaller, Securityengine, …

Hình 2: Thành ph n c a Common Language Runtimeầ ủ

CLR(Common Languge Runtime) th c hi n qu n lý b nh , qu n lýự ệ ả ộ ớ ả

th c thi ti u trình, th c thi mã ngu n, xác nh n mã ngu n an toàn, biên b chự ể ự ồ ậ ồ ị

Trang 19

Đi u này có nghĩa r ng, m t thành ph n đề ằ ộ ầ ược qu n lý có th có hayả ểkhông có quy n th c hi n m t thao tác truy c p t p tin, thao tác truy c pề ự ệ ộ ậ ậ ậregistry, hay các ch c năng nh y c m khác.ứ ạ ả

CLR thúc đ y vi c mã ngu n th c hi n vi c truy c p đẩ ệ ồ ự ệ ệ ậ ược b o m t.ả ậ

Ví d , ngụ ườ ử ụi s d ng gi i h n r ng vi c th c thi nhúng vào trong m t trangớ ạ ằ ệ ự ộweb có th ch y để ạ ược ho t hình trên màn hình hay hát m t b n nh c,ạ ộ ả ạ

nh ng không th truy c p đư ể ậ ược d li u riêng t , t p tin h th ng, hay truyữ ệ ư ậ ệ ố

c p m ng Do đó, đ c tính b o m t c a CLR cho phép nh ng ph n m mậ ạ ặ ả ậ ủ ữ ầ ềđóng gói trên Inernet có nhi u đ c tính mà không nh hề ặ ả ưởng đ n vi c b oế ệ ả

m t h th ng.ậ ệ ố

CLR còn thúc đ y cho mã ngu n đẩ ồ ược th c thi m nh mẽ h n b ngự ạ ơ ằ

vi c th c thi mã ngu n chính xác và s xác nh n mã ngu n N n t ng c aệ ự ồ ự ậ ồ ề ả ủ

vi c th c hi n này là Common Type System (CTS) CTS đ m b o r ngệ ự ệ ả ả ằ

nh ng mã ngu n đữ ồ ược qu n lý thì đả ượ ực t mô t (self-describing).ả

S khác nhau gi a Microsoft và các trình biên d ch ngôn ng c a hãngự ữ ị ữ ủ

th ba làứ vi cệ t o raạ các mã ngu n đồ ượ qu n lýcó th thích h p v i CTS.c ả ể ợ ớ

Đi u nàyề thì mã ngu n đồ ược qu n lý có th s d ng nh ng ki u đả ể ử ụ ữ ể ược qu nả

lý khác và nh ng th hi n, trong khi thúc đ y nghiêm ng t vi c s d ngữ ể ệ ẩ ặ ệ ử ụ

ki u d li u chính xác và an toàn.ể ữ ệ

Thêm vào đó, môi trường được qu n lý c a runtime sẽ th c hi n vi cả ủ ự ệ ệ

t đ ng x lý lay out c a đ i tự ộ ử ủ ố ượng và qu n lý nh ng tham chi u đ n đ iả ữ ế ế ố

tượng, gi i phóng chúng khi chúng không còn đả ượ ử ục s d ng n a Vi c qu nữ ệ ả

lý b nh t đ ng này còn gi i quy t hai l i chung c a ng d ng: thi u bộ ớ ự ộ ả ế ỗ ủ ứ ụ ế ộ

nh và thamớ chi u b nh không h p l ế ộ ớ ợ ệ

Trong khi runtime được thi t k cho nh ng ph n m m c a tế ế ữ ầ ề ủ ương lai,

nó cũng h tr cho ph n m m ngày nay và trỗ ợ ầ ề ước đây Kh năng ho t đ ngả ạ ộqua l i gi a mã ngu n đạ ữ ồ ược qu n lý và mã ngu n không đả ồ ược qu n lý choảphép người phát tri n ti p t c s d ng nh ng thành ph n c n thi t c aể ế ụ ử ụ ữ ầ ầ ế ủCOM và DLL

Trang 20

Rutime được thi t k đ c i ti n hi u su t th c hi n M c dù CLRế ế ể ả ế ệ ấ ự ệ ặcung c p nhi u các tiêu chu n d ch v runtime, nh ng mã ngu n đấ ề ẩ ị ụ ư ồ ược

qu n lý không bao gi đả ờ ược d ch Có m t đ c tính g i là Just-in-Time (JIT)ị ộ ặ ọbiên d ch t t c nh ng mã ngu n đị ấ ả ữ ồ ược qu n lý vào trong ngôn ng máy c aả ữ ủ

h th ng vào lúc mà nó đệ ố ược th c thi Khi đó, trình qu n lý b nh xóa bự ả ộ ớ ỏ

nh ng phân m nh b nh n u có th đữ ả ộ ớ ế ể ược và gia tăng tham chi u b nhế ộ ớ

c c b , và k t qu gia tăng hi u qu th c thi.ụ ộ ế ả ệ ả ự

2.5.3: B th vi n các l p đ i t ộ ư ệ ớ ố ượ ng

Framework chính là m t t p h p hay th vi n các l p đ i tộ ậ ợ ư ệ ớ ố ượng hỗ

tr ngợ ườ ậi l p trình khi xây d ng ng d ng Có th b n đã nghe qua v MFCự ứ ụ ể ạ ề

và JFC Microsoft Foundation Class là b th vi n mà l p trình viên Visual C+ộ ư ệ ậ+ s d ng trong khi Java Foundation Class là b th v i n dành cho các l pử ụ ộ ư ệ ậtrình viên Java B n có th xem NET Framework là b th vi n dành cho cácạ ể ộ ư ệ

l p trìnhv iên NET.ậ

V i h n 5000 l p đ i tớ ơ ớ ố ượng đ g i th c hi n đ các lo i d ch v tể ọ ự ệ ủ ạ ị ụ ừ

h đi u hành, b n có th b t đ u xây d ng ng d ng b ng Notepad.exe.ệ ề ạ ể ắ ầ ự ứ ụ ằNhi u ngề ườ ầi l m tưởng r ng các môi trằ ường phát tri n ph n m mể ầ ề

nh Visual Studio 98 hay Visual Studio NET là t t c nh ng gì c n đ vi tư ấ ả ữ ầ ể ế

chương trình Th c ra, chúng là nh ng ph n m m dùng làm v b c bênự ữ ầ ề ỏ ọngoài V i chúng, b n sẽ vi t đớ ạ ế ược các đo n l nh đ các màu xanh, đ ; l iạ ệ ủ ỏ ỗ

cú pháp báo ngay khi đang gõ l nh; thu c tính c a các đ i tệ ộ ủ ố ượng được đ tặngay c a s properties, giao di n đử ổ ệ ược thi t k theo phong cách tr c quanế ế ự

Trang 21

2.5.3.1: Net Framework Class Library

NET Framework class library cung c p th vi n l p trình nh choấ ư ệ ậ ư

ng d ng, c s d li u, d ch v web…

Hình 3: Các thành ph n trong Net Framework Class Libraryầ

Base class library – th vi n các l p c s ư ệ ớ ơ ở

Đây là th vi n các l p c b n nh t, đư ệ ớ ơ ả ấ ược dùng trong khi l p trìnhậhay b n thân nh ng ngả ữ ười xây d ng NET Framework cũng ph i dùng nó đự ả ểxây d ng các l p cao h n.ự ớ ơ

Ví d các l p trong th vi n này là String, Interger, Exception ụ ớ ư ệ

2.5.3.2: ADO NET: Data and XML

Hình 4: ADO NET: Data and XML

Trang 22

B th vi n này g m các l p dùng đ x lý d li u ADO.NET thay thộ ư ệ ồ ớ ể ử ữ ệ ếADO đ trong vi c thao tác v i các d li u thông thể ệ ớ ữ ệ ường Các l p đ i tớ ố ượngXML được cung c p đ b n x lý các d li u theo đ nh d ng m iấ ể ạ ử ữ ệ ị ạ ớ

Các ví d cho b th vi n này: SqlDataAdapter, SqlCommand, DataSet,ụ ộ ư ệXMLReader, XMLWriter, …

2.5.3.3 ASP NET: Web Forms and Services

Hình 5: Thành ph n Web Forms and Servicesầ

l nh đệ ược tách tiêng Tuy nhiên, n u b n đã t ng quen v i vi c l p trìnhế ạ ừ ớ ệ ậ

ng d ng web, đây là vi c mà b n gi i phóng kh i các l nh HTML

S xu t hi n c a ASP.NET làm cân x ng gi a quá trình xây d ng ngự ấ ệ ủ ứ ữ ự ứ

d ng trên Windows và Web ASP.Net cung c p m t b các Server Control đụ ấ ộ ộ ể

l p trình viên b t s ki n và x lý d li u c a ng d ng nh đang làm vi cậ ắ ự ệ ử ữ ệ ủ ứ ụ ư ệ

v i ng d ng c a Windows Nó cũng cho phép b n chuy n m t ng d ngớ ứ ụ ủ ạ ể ộ ứ ụ

trước đây vi t ch ch y trên Windows thành m t ng d ng Web khá dế ỉ ạ ộ ứ ụ ễ

Trang 23

Web services

Web services là các d ch v đị ụ ược cung c p qua Web (hay Internet) D chấ ị

v đụ ược coi là Web service không nh m vào ngằ ười dùng mà nh m vàoằ

người xây d ng ph n m m Web services có th dùng đ cung c p các dự ầ ề ể ể ấ ữ

li u hay m t ch c năng tính toán.ệ ộ ứ

Ví d :ụ Công ty du l ch c a b n đang s d ng m t h th ng ph n m mị ủ ạ ử ụ ộ ệ ố ầ ề

đ ghi nh n thông tin v khách du l ch đăng ký đi các tour Đ th c hi nể ậ ề ị ể ự ệ

vi c đ t phòng khách s n t i đ a đi m du l ch, công ty c n bi t thông tin vệ ặ ạ ạ ị ể ị ầ ế ềphòng tr ng t i các khách s n Khách s n có th cung c p m t Web serviceố ạ ạ ạ ể ấ ộ

đ cho bi t thông tin v các phòng tr ng t i m t th i đi m D a vào đó,ể ế ề ố ạ ộ ờ ể ự

ph n m m c a b n sẽ bi t r ng li u có đ ch đ đ t phòng cho khách duầ ề ủ ạ ế ằ ệ ủ ỗ ể ặ

l ch không?ị

N u đ , ph n m m l i có th dùng m t Web service khác cung c p ch cế ủ ầ ề ạ ể ộ ấ ứnăng đ t phòng đ thuê khách s n Đi m l i c a Web service đây là b nặ ể ạ ể ợ ủ ở ạkhông c n m t ngầ ộ ười làm vi c liên l c v i khách s n đ h i thông tinệ ạ ớ ạ ể ỏphòng, sau đó v i đ các thông tin v nhi u lo i phòng ngớ ủ ề ề ạ ười đó sẽ xác đ nhị

lo i phòng nào c n đ t, s lạ ầ ặ ố ượng đ t bao nhiêu, đ hay không đ r i l iặ ủ ủ ồ ạliên l c v i khách s n đ đ t phòng Đ ng th i khách s n cũng c n có m tạ ớ ạ ể ặ ồ ờ ạ ầ ộ

ngườ ểi đ làm vi c v i nhân viên c a b n và ch a ch c h có th liên l cệ ớ ủ ạ ư ắ ọ ể ạthành công

Web service được cung c p d a vào ASP.NET và s h tr t phía hấ ự ự ỗ ợ ừ ệ

đi u hành c a Internet Information Server.ề ủ

Windows form

B th vi n v Windows form g m các l p đ i tộ ư ệ ề ồ ớ ố ượng dành cho vi c xâyệ

d ng các ng d ng Windows based Vi c xây d ng ng d ng lo i này v nự ứ ụ ệ ự ứ ụ ạ ẫ

được h tr t t t trỗ ợ ố ừ ước đ n nay b i các công c và ngôn ng l p trình c aế ở ụ ữ ậ ủMicrosoft Gi đây, ng d ng ch ch y trên Windows sẽ có th làm vi c v iờ ứ ụ ỉ ạ ể ệ ớ

ng d ng Web d a vào Web service Ví d v các l p trong th vi n này là

Form, UserControl, …

Trang 25

2.6: Namespace : phân nhóm các l p đ i t ớ ố ượ ng

NameSpace là tên g i m t nhóm các l p đ i tọ ộ ớ ố ượng ph c v cho m tụ ụ ộ

m c đích nào đó Ch ng h n các l p đ i tụ ẳ ạ ớ ố ượng x lý d li u sẽ đ t trongử ữ ệ ặ

m t namespace tên là Data Các l p đ i tộ ớ ố ượng dành cho vi c vẽ hay hi n thệ ể ị

ch đ t trong namespace tên là Drawing.ữ ặ

Hình 6: H không gian tênệ

M t namespace có th là con c a m t namespace l n h n.ộ ể ủ ộ ớ ơNamespace l n nh t trong NET Framework là System.ớ ấ

L i đi m c a namespace là phân nhóm các l p đ i tợ ể ủ ớ ố ượng, giúp ngườidùng d nh n bi t và s d ng Ngoài ra, namespace tránh vi c các l p đ iễ ậ ế ử ụ ệ ớ ố

tượng có tên trùng v i nhau không s d ng đớ ử ụ ược .NET Framework chophép b n t o ra các l p đ i tạ ạ ớ ố ượng và các namespace c a riêng mình V iủ ớ

h n 5000 tên có s n, vi c đ t trùng tên l p c a mình v i m t l p đ i tơ ẵ ệ ặ ớ ủ ớ ộ ớ ố ượng

đã có là đi u khó tránh kh i Namespace cho phép vi c này x y ra b ngề ỏ ệ ả ằcách s d ng m t tên đ y đ đ nói đ n m t l p đ i tử ụ ộ ầ ủ ể ế ộ ớ ố ượng Ví d , n uụ ế

mu n dùng l p WebControls, b n có th dùng tên t t c a nó làố ớ ạ ể ắ ủWebControls hay tên đ y đ làSystem.Web.UI.WebControls.ầ ủ

Đ c đi m c a b th vi n các đ i tặ ể ủ ộ ư ệ ố ượng NET Framework là s tr iự ả

r ng đ h tr t t c các ngôn ng l p trình NET Đi u này sẽ giúp nh ngộ ể ỗ ợ ấ ả ữ ậ ề ữ

người m i b t đ u ít b n tâm h n trong vi c l a ch n ngôn ng l p trìnhớ ắ ầ ậ ơ ệ ự ọ ữ ậcho mình vì t t c các ngôn ng đ u m nh ngang nhau Cũng b ng cách sấ ả ữ ề ạ ằ ử

Trang 26

d ng các l p đ i tụ ớ ố ượng đ xây d ng ng d ng, NET Framework bu c ngể ự ứ ụ ộ ười

l p trình ph i s d ng kỹ thu t l p trình hậ ả ử ụ ậ ậ ướng đ i tố ượng

2.7 Assembly – m t lo i DLL m i ộ ạ ớ

2.7.1 Dynamic Link Library

DLL (Dynamic Link Library) là m t lo i file th c thi trên h đi uộ ạ ự ệ ềhành Windows dùng đ ch a các th vi n l p đ i tể ứ ư ệ ớ ố ượng hay nói chung làcác Component M t component có th g m m t hay nhi u DLL.ộ ể ồ ộ ề

B ng cách t o các component và đóng gói chúng thành các DLL, l pằ ạ ậtrình viên có th t o ra các thành ph n có s n và s d ng l i chúng nhi uể ạ ầ ẵ ử ụ ạ ở ềproject khác nhau

Ví d : hai ph n m m A, B cài lên máy tính c a b n đ u s d ng DLLụ ầ ề ủ ạ ề ử ụ

là X Khi b n không dùng A n a và g b (Uninstall) nó kh i máy, đạ ữ ỡ ỏ ỏ ươngnhiên khi g b A, ph n m m sẽ h i b n có mu n xóa X kh i h th ng hayỡ ỏ ầ ề ỏ ạ ố ỏ ệ ốkhông Th nh ng b n không bi t X dùng đ làm gì và có ph n m m nàoế ư ạ ế ể ầ ềkhác dùng X n a hay không Và n u g b X, ng d ng B cũng h t s d ngữ ế ỡ ỏ ứ ụ ế ử ụ

được

Gi s r ng dung lả ử ằ ượng đĩa c ng r t nhi u và b n không g b cácứ ấ ề ạ ỡ ỏDLL kh i máy tính làm gì Nay b n l i mu n cài thêm m t ng d ng C khácỏ ạ ạ ố ộ ứ ụ

n a vào máy C là m t ph n m m m i và nó l i s d ng m t phiên b n Xữ ộ ầ ề ớ ạ ử ụ ộ ả

m i h n v a c p nh t Khi cài đ t vào máy, X m i thay th cho X cũ và c Aớ ơ ừ ậ ậ ặ ớ ế ả

và B đ u ch ng hi u gì v thành ph n X m i này nên không ch y đề ẳ ể ề ầ ớ ạ ược n a.ữ

Các l p trình viên g i trậ ọ ường h p trên là DLL Hell Khi mu n bánợ ố

ph n m m cho b n, chính h cũng lo gi i quy t v n đ này, không ch v iầ ề ạ ọ ả ế ấ ề ỉ ớriêng DLL do h vi t ra và nâng c p m i mà có khi c nh ng DLL c a ngọ ế ấ ớ ả ữ ủ ườikhác n a.ữ

V i kỹ thu t NET, Microsoft đ a ra m t đ nh nghĩa m i cho DLL vàớ ậ ư ộ ị ớcũng thay tên đ i h cho nó thành Assembly - thành ph n l p ráp DLL cũổ ọ ầ ắ

Trang 27

m i ph n m m đ u ph i cài đ t (install hay setup) vào h đi u hành Trongỗ ầ ề ề ả ặ ệ ềquá trình này, h u h t các DLL sẽ đầ ế ược copy vào th m c c a Windows d nư ụ ủ ẫ

đ n vi c cái này ghi ch ng lên cái kia hai Windows có đ th DLL trong đó.ế ệ ồ ủ ứ

Và các class trong DLL sẽ ph i đăng ký mã s c a mình (ClassID) vào m tả ố ủ ộ

m c đ Windows qu n lý g i là Registry N u trong registry b m t m tụ ể ả ọ ế ị ấ ộClassID nào đó thì Windows cũng đành ch u thua, không th qu n lý và thiị ể ảhành class tương ng đứ ược

2.7.2 Assembly

Các assembly là nh ng viên g ch n n c a NET Framework; chúngữ ạ ề ủđóng vai trò là đ n v c s c a vi c tri n khai ph n m m, qu n lý phiênơ ị ơ ở ủ ệ ể ầ ề ả

b n, dùng l i mã, t m v c kích ho t, và các c ch b o m t M t assemblyả ạ ầ ự ạ ơ ế ả ậ ộcung c p cho CLR (common language runtime) các thông tin c n thi t đấ ầ ế ể

nh n bi t cách nó đậ ế ược hi n th c Nó là m t t p h p các ki u và các tàiệ ự ộ ậ ợ ểnguyên được xây d ng đ làm vi c v i nhau dự ể ệ ớ ưới hình th c m t đ n vứ ộ ơ ị

ch c năng lu n lý.ứ ậ

• M t assembly th c thi các ch c năng sau:ộ ự ứ

o Nó ch a mã mã CLR th c thi Mã MSIL (Microsoft Intermediateứ ựLanguage - MSIL) trong m t file th c thi sẽ không độ ự ược th c thiự

n u không có m t assembly manifest tế ộ ương ng (m tứ ộassembly manifest là m t b n mô t các thành ph n c a m tộ ả ả ầ ủ ộassembly và m i quan h gi a các thà nh ph n đó).ố ệ ữ ầ

o Nó thi t l p m t ranh gi i b o m t M t assembly là m t đ nế ậ ộ ớ ả ậ ộ ộ ơ

v v i các gi i h n b o m t đị ớ ớ ạ ả ậ ược đòi h i và công nh n.ỏ ậ

o Nó thi t l p m t ranh gi i các ki u M i đ nh danh c a ki uế ậ ộ ớ ể ỗ ị ủ ểbao g m tên c a assembly ch a nó M t ki u có tên MyTypeồ ủ ứ ộ ể

được n p trong m t assembly thì không gi ng v i m t ki u cóạ ộ ố ớ ộ ểtên MyType được n p trong m t assembly khác.ạ ộ

o Nó thi t l p ph m vi các tham chi u Assembly manifest ch aế ậ ạ ế ứsiêu d li u c a assembly đữ ệ ủ ược dùng đ gi i quy t các ki u vàể ả ế ểtho mãn đòi h i tà i nguyên Nó ch đ nh các ki u và tàiả ỏ ỉ ị ể

Trang 28

nguyên đ a ra bên ngoài assembly Assembly cũng li t kê cácư ệassembly khác mà nó ph thu c.ụ ộ

o Nó thi t l p ranh gi i phiên b n Assembly là đ n v phiên b nế ậ ớ ả ơ ị ả

nh nh t trong CLR; t t c các ki u và tà i nguyên trong cùngỏ ấ ấ ả ể

m t assembly độ ược đánh phiên b n nh là m t đ n v ả ư ộ ơ ịAssembly manifest mô t s ph thu c phiên b n mà b n xácả ự ụ ộ ả ạ

đ nh đ i v i các assembly ph thu c.ị ố ớ ụ ộ

o Nó thi t l p m t đ n v tri n khai Khi m t ng d ng kh iế ậ ộ ơ ị ể ộ ứ ụ ở

đ ng ch có các assembly mà ng d ng đó kh i t o là t n t i.ộ ỉ ứ ụ ở ạ ồ ạCác assembly khác, ch ng h n nh các tài nguyên c c b hayẳ ạ ư ụ ộcác assembly ch a các l p ti n ích, có th đứ ớ ệ ể ược g i sau khi cóọyêu c u Đi u nà y cho phép ng d ng gi đầ ề ứ ụ ữ ược tính đ n gi nơ ả

và có kích thước nh khi l n đ u tiên đỏ ầ ầ ượ ọc g i.Các assembly có

th là tĩnh hay đ ng Các assembly tĩnh có th bao hà m cácể ộ ể

ki u c a NET Framework (g m các giao di n và l p), cũngể ủ ồ ệ ớ

nh các tà i nguyên Các assembly tĩnh đư ược ch a trên đĩa dứ ưới

d ng file th c thi B n cũng có th dùng NET Framework đạ ự ạ ể ể

t o các assembly đ ng, là các assembly ch y tr c ti p t bạ ộ ạ ự ế ừ ộ

nh và không đớ ượ ưc l u trên đĩa trước khi th c thi B n có thự ạ ể

l u các assembly đ ng vào đĩa sau khi chúng th c thi xong Cóư ộ ự

r t nhi u cách đ t o assembly B n có th dùng các công cấ ề ể ạ ạ ể ụphát tri n, nh Visual Studio NET, hay b n cũng có th dùngể ư ạ ểcác công c do NET Framework SDK cung c p đ t o cácụ ấ ể ạassembly v i các module đớ ược t o t các môi trạ ừ ường pháttri n khác Ngoài ra, b n có th dùng các API c a CLR, ví dể ạ ể ủ ụ

nh Reflection.Emit, đ t o các assembly đ ng.ư ể ạ ộ

• Phân lo i assemblyạ

Các assembly có th là đ n assembly (single-file assembly) hay đaể ơassembly (multifile assembly)

Trang 29

tham chi u b i các assembly khác bên ngoài th m c c a ng d ng vàế ở ư ụ ủ ứ ụkhông ph i ch u s ki m tra phiên b n Đ g cài đ t các ng d ng ch aả ị ự ể ả ể ỡ ặ ứ ụ ứassembly, b n ch đ n gi n xoá th m c ch a nó V i nhi u nhà phát tri n,ạ ỉ ơ ả ư ụ ứ ớ ề ể

m t assembly v i các ch c năng nào đó là t t c nh ng gì c n thi t đ tri nộ ớ ứ ấ ả ữ ầ ế ể ểkhai m t ng d ng.ộ ứ ụ

B n có th t o đa assembly t vài module mã và các file tài nguyên.ạ ể ạ ừ

B n cũng có th t o m t assembly có th đạ ể ạ ộ ể ược dùng chung b i nhi u ngở ề ứ

d ng M t assembly dùng chung ph i có m t strong name và có th đụ ộ ả ộ ể ượctri n khai trong global assembly cache.ể

• Các tên assembly

Tên c a m t assembly có m t tác đ ng quan tr ng trên t m v c c aủ ộ ộ ộ ọ ầ ự ủ

m t assembly và độ ược dùng b i nhi u ng d ng Các assembly dùng choở ề ứ ụ

m t ng d ng ch đòi h i m t tên duy nh t trong ng d ng đó Cácộ ứ ụ ỉ ỏ ộ ấ ứ ụassembly dùng cho nhi u ng d ng ph i có m t tên đ c bi t g i là strongề ứ ụ ả ộ ặ ệ ọname dùng c ch mã hoá khoá công c ng chu n.ơ ế ộ ẩ

M t strong name ch a m t khóa công c ng và m t ch ký s bênộ ứ ộ ộ ộ ữ ố

c nh tên c a assembly Nó đạ ủ ượ ạc t o ra thông qua file assembly dùng m tộkhóa riêng tương ng Vi c đánh d u m t assembly v i m t strong nameứ ệ ấ ộ ớ ộcho phép assembly được tri n khai trong global assembly cache N u b nể ế ạ

đ t m t assembly trong global assembly cache,CLR đòi h i tên file c aặ ộ ỏ ủassembly ph i trùng v i tên assembly (không k ph n m r ng c a tênả ớ ể ầ ở ộ ủfile) Các assembly riêng trong th m c g c c a ng d ng không đòi h iư ụ ố ủ ứ ụ ỏ

đi u này.ề

• V tr c a assemblyị ị ủ

V trí c a m t assembly xác đ nh xem CLR có th đ nh v nó khi thamị ủ ộ ị ể ị ịchi u đ n hay không, và cũng xác đ nh assembly có th đế ế ị ể ược chia s v i cácẻ ớassembly khác hay không B n có th tri n khai m t assembly trong các vạ ể ể ộ ịtrí sau:

Ngày đăng: 17/11/2017, 20:46

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w