Tải bản đầy đủ (.docx) (59 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (969.88 KB, 59 trang )

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

1


LỜI MỞ ĐẦU
Thế hệ kế tiếp của Internet sẽ như thế nào? Nhiều người trong
chú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ương
tá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.

2




MỤC LỤC

3


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.

4


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.

5



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
không phải là người duy nhất biết lập trình. Làm sao sử dụng l ại những
6



ứng dụng đã viết mở mở rộng thêm nhưng vẫn tương thích với những kỹ
thuật mới ?
Sun Microsystems đi đầu trong việc cung cấp các giải pháp v ới Java.
Java chạy ổn định trên các hệ điều hành Unix hay Solaris của Sun từ máy
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) đã được
xâ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ỹ
7


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ư
JIT (Just In Time compiler) để biên dịch ngay tại th ời đi ểm thi hành nh ững
đoạn lệnh IL cần thiết hay Garbage Collector giữ vai trò thu gom rác mà ứng
8


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

9


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.

10


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,
11


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
hỗ trợ đầy đủ và toàn diện cho .NET 3.0, và hơn thế nữa. Vâng, chúng ta
12


đ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ương
tá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,

13


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
họ.
Phiên bản tương thích. Với một số trường hợp ngoại lệ hiếm hoi thì
các ứng dụng được phát triển bằng cách sử dụng một phiên bản đặc bi ệt
của .NET Framework có thể chạy mà không cần sửa đổi, bổ sung một phiên
bản sau.
Thực hiện side-by-side. .NET Framework giúp giải quyết xung đột
phiên bản bằng cách cho phép nhiều phiên bảncùngchạy trên cùng m ột
máy tính. Điều này có nghĩa là nhiều phiên bản của ứng dụng cũng có th ể
cùng tồn tại, và rằng một ứng dụng có th ể chạy trên các phiên b ản c ủa
.NET Framework mà nó được xây dựng.
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

14


của .NET Framework. .NET Framework là hoàn toàn minh bạch cho người
dù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.

15


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.

16


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.

17


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, Security
engine, …

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
và các dịch vụ hệ thống khác. Những đặc tính trên là nền tảng c ơ b ản cho
những mã nguồn được quản lý chạy trên CLR.
Do chú trọng đến bảo mật, những thành phần được quản lý được
cấp những mức độ quyền hạn khác nhau, phụ thuộc vào nhi ều y ếu t ố
nguyên thủy của chúng như: liên quan đến Internet, hệ thống mạng trong
nhà máy, hay một máy tính cục bộ.


18


Đ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 được quản lýcó thể thích hợp với CTS.
Đ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.
19


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


20



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
21


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ượng
XML đượ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
• ASP.NET
Ứng dụng Web xây dựng bằng ASP.NET tận dụng được toàn bộ khả năng
của .NET Framework. Bên cạnh đó là một phong cách l ập trình m ới mà
Microsoft đặt cho nó một tên gọi là code behind. Đây là cách mà l ập trình

viên xây dựng các ứng dụng Windows based thường sử dụng – giao di ện và
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ễ
dàng. Ví dụ cho các lớp trong thư viện này là WebControl, HTML Control, …
22


• 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, …
23


24


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ười
dù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 cho
phé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 ử
25


×