3.1.1.1 Sự ra đời của .NET
Trước đõy và cả ngày nay, trong lĩnh vực phỏt triển phần mềm cú rất nhiều (hàng ngàn thậm chớ hàng vạn) ngụn ngữ lõp trỡnh được sử dụng để phỏt triển phần mềm (như Delphi, Ada, Cobol, Fortran, Basic, LISP, Prolog, Foxpro, Java, Pascal, C/C++, Visual Basic, VC++, C#...). Mỗi ngụn ngữ đều cú những ưu và nhược điểm riờng, chẳng hạn Fortran là lựa chọn số một cho cỏc tớnh toỏn khoa học; Prolog là lựa chọn rất tốt để phỏt triển cỏc phần mềm thụng minh (AI, Expert Systems…); Java cú lợi thế phỏt triển cỏc ứng dụng mạng, ứng dụng Mobile và độc lập hệ điều hành (Write One – Run Everywhere); Visual Basic tỏ ra dễ học và dễ phỏt triển cỏc ứng dụng Winform; C# vượt trội bởi sự kết hợp giữa sức mạnh của C++ và sự dễ dàng của Visual Basic…
Những ưu điểm cú tớnh đặc thự của từng ngụn ngữ là điều đó được khẳng định. Tuy nhiờn, điều mà ai cũng thấy rừ là rất khú để cú thể tận dụng được sức mạnh của tất cả cỏc ngụn ngữ lập trỡnh trong một dự ỏn phần mềm, chẳng hạn khụng thể hoặc rất khú khăn để viết một ứng dụng cú sử dụng đồng thời cả ngụn ngữ Visual Basic và Java hay Foxpro với Delphi v.v… Núi cỏch khỏc, việc “liờn thụng” giữa cỏc ngụn ngữ là gần như khụng thể.
Cũng do sự khỏc biệt giữa cỏc ngụn ngữ lập trỡnh mà việc tiếp cận hay chuyển đổi sang ngụn ngữ lập trỡnh mới sẽ tốn rất nhiều thời gian (Tuy rằng về tư tưởng và nguyờn lý cú tương tự nhau). Vỡ vậy, khi cỏc dự ỏn sử dụng ngụn ngữ lập trỡnh khỏc nhau thỡ chi phớ cho chuyển đổi, học hỏi sẽ là rất lớn, gõy lóng phớ thời gian khụng cần thiết và chất lượng phần mềm chắc chắn khụng cao.
27
Ngoài ra, cựng với sự phỏt triển như vũ bóo của Internet thỡ mụ hỡnh phỏt triển ứng dụng cũng rất khỏc xưa. Cỏc ứng dụng ngày nay khụng chỉ chạy riờng lẻ (stand-alone) trờn mỏy tớnh PC mà cũn cú thể chạy trờn mụi trường mạng, cung cấp hay truy cập cỏc dịch vụ từ xa (ứng dụng phõn tỏn). Vai trũ của phần mềm đó dần chuyển từ chỗ cung cấp cỏc chức năng (Funtional) cụ thể sang cung cấp cỏc dịch vụ (Services).
Từ những hạn chế trong quỏ trỡnh phỏt triển phần mềm như đó nờu, đũi hỏi phải cú một cỏch tiếp cận sao cho tối ưu nhất, vừa đảm bảo tốn ớt chi phớ chuyển đổi vừa đảm bảo nhiều người cú thể tham gia cựng một dự ỏn mà khụng nhất thiết phải viết trờn cựng một ngụn ngữ lập trỡnh, đồng thời ứng dụng phải hoạt động tốt trong mụi trường mạng
Internet. Đú chớnh là lý do để Microsoft cho ra cụng nghệ phỏt triển phần mềm mới .NET! Microsoft .NET là một nền tảng (Platform) phỏt triển ứng dụng mới và hoàn chỉnh nhất từ trước tới nay. Sự ra đời của Microsoft.NET cú tớnh cỏch mạng, nú đem đến cho cỏc nhà lập trỡnh một phong cỏch phỏt triển phần mềm đột phỏ, khắc phục hầu hết cỏc hạn chế trước đõy của cỏc ngụn ngữ lập trỡnh. Việc sử dụng .NET khụng chỉ giỳp phỏt triển cỏc ứng dụng đơn lẻ mà cũn cú thể phỏt triển cỏc ứng dụng phõn tỏn ở qui mụ rất lớn; .NET làm giảm thiểu thời gian phỏt triển ứng dụng, nõng cao rừ rệt chất lượng sản phẩm phần mềm.
Phiờn bản .NET đầu tiờn (v 1.0) được Microsoft đưa ra thị trường vào năm 2001.
3.1.1.2 NET Framework là gỡ.
Thụng thường, mỗi ngụn ngữ lập trỡnh đều cú một tập cỏc thư viện riờng, chẳng hạn: VC++ thỡ cú thư viện chớnh là msvcrt.dll; Visual Basic thỡ cú msvbvm60.dll …Cỏc thư viện này chứa cỏc hàm, thủ tục cơ bản của mỗi ngụn ngữ (vớ dụ hàm, thủ tục xử lý xõu, xử lý toỏn học,…). Tất cả những thứ này cú ý nghĩa logic giống nhau nhưng về cỏch sử dụng hay cỳ phỏp thỡ hầu như là khỏc nhau. Điều này khiến cho một lập trỡnh viờn C++ khụng thể ỏp dụng những kiến thức họ biết sang VB hoặc ngược lại. Hơn nữa, việc phỏt triển bộ thư viện riờng cho mỗi ngụn ngữ như vậy là quỏ dư thừa.
28
í tưởng của Microsoft đú là KHễNG xõy dựng một tập thư viện riờng biệt cho từng ngụn ngữ lập trỡnh mà sẽ xõy dựng một bộ thư viện dựng CHUNG. Tập thư viện dựng chung này hỡnh thành nờn một bộ khung (Framework) để cỏc lập trỡnh viờn viết ứng dụng trờn bộ khung sẵn cú đú. Bộ Khung này thực chất là một tập cỏc thư viện được xõy dựng sẵn, đỏp ứng mọi nhu cầu phỏt triển cỏc ứng dụng Desktop, Network, Mobile, web…
Cỏc thành phần và chức năng chớnh trong .NET Framework
Kiến trỳc của .NET Framework
Common Language Runtime (Trỡnh thực thi ngụn ngữ chung): Sau khi ứng dụng
được biờn dịch ra file “Exe” (exe này khỏc với file exe thụng thường. Nội dung của file exe này tuõn theo một chuẩn/ngụn ngữ chung, dự là viết bằng C# hay VB.NET. Ngụn ngữ này gọi là ngụn ngữ chung), tiếp theo để file exe trung gian này cú thể chạy được trờn mỏy hiện hành thỡ cần phải được biờn dịch ra mó mỏy tương ứng. Việc biờn dịch và chạy được là nhờ Chương trỡnh thực thi ngụn ngữ chung – CLR (Common Language Runtime). 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
29
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,…
Trong cỏc phiờn bản hệ điều hành Windows mới như XP.NET và
Windows 2003, CLR được gắn kốm với hệ điều hành. Điều này đảm bảo ứng dụng viết ra trờn mỏy tớnh của chỳng ta sẽ chạy trờn mỏy tớnh khỏc mà khụng cần cài đặt, cỏc bước thực hiện chỉ đơn giản là một lệnh xcopy của DOS
Base Class Library: Là tập cỏc thư viện chứa cỏc lớp cơ bản để sử dụng trong tất cả
cỏc ngụn ngữ .NET. Vớ dụ cỏc lớp xử lý xõu, xử lý toỏn học…
ADO.NET: Là tập cỏc thư viện chuyờn dành cho thao tỏc với Cơ sở 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: XML. Cỏc vớ dụ cho bộ thư viện này là SqlDataAdapter, SqlCommand, DataSet, XMLReader, XMLWriter,…
ASP.NET: Cỏc thư viện dành cho phỏt triển cỏc ứng dụng Web (webform). 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 Windows. Nú cũng cho phộp chỳng ta 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, HTMLControl, …
Windows Forms: Cỏc thư viện dành cho phỏt triển cỏc ứng dụng Windows (winform).
Việc xõy dựng ứng dụng loại này vẫn được hỗ trợ tốt từ trước tới 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
30
Common Language Specification: Phần này cú nhiệm vụ đặc tả ngụn ngữ chung để cỏc chương trỡnh viết trờn cỏc ngụn ngữ lập trỡnh khỏc nhau phải tuõn theo. Núi cỏch khỏc, biờn dịch cỏc chương trỡnh viết trờn cỏc ngụn ngữ lập trỡnh khỏc nhau về một ngụn ngữ thống nhất chung (Common Language).
Cỏc ngụn ngữ lập trỡnh.
3.1.1.3 Một số ƣu điểm chớnh của .NET framework
Tất cả cỏc ngụn ngữ đều thừa hưởng một thư viện thống nhất. Khi sửa chữa hay nõng cấp thư viện này thỡ chỉ phải thực hiện một lần.
Phong cỏch phỏt triển ứng dụng nhất quỏn và tương tự nhau giữa cỏc ngụn ngữ lập trỡnh. Cú thể chuyển đổi sang ngụn ngữ lập trỡnh .NET khỏc nhau một cỏch dễ dàng.
Viết cỏc ứng dụng webform khụng khỏc nhiều so với ứng dụng winform.
Cung cấp một tập thư viện truy xuất CSDL thống nhất (ADO.NET) cho mọi ngụn ngữ .NET.
Hỗ trợ cơ chế “Write one – Run everywhere” (Viết một lần chạy mọi nơi). Một ứng dụng viết bằng .NET cú thể chạy trờn bất cứ hệ điều hành nào mà khụng cần phải sửa lại code, miễn là mỏy đú cú cài .NET framework.
Cung cấp hệ thống kiểu chung (Common Type), do vậy đảm bảo tớnh thống nhất về kiểu dữ liệu giữa cỏc ngụn ngữ lập trỡnh.
Cho phộp sử dụng nhiều ngụn ngữ lập trỡnh trong cựng một dự ỏn.
Kết thừa và sử dụng chộo giữa cỏc ngụn ngữ lập trỡnh dễ dàng như trờn cựng một ngụn ngữ (Cú thể viết một class trờn C#, sau đú kế thừa trong VB.NET và ngược lại).
31 3.1.2 Giới thiệu ASP.Net
ASP.NET là cụng nghệ phỏt triển cỏc ứng dụng trờn nền web, thế hệ kế tiếp của ASP (Active Server Page – Trang web được xử lý bờn phớa mỏy chủ). ASP.NET là một thành phần nội tại (cú sẵn) của .NET Framework. Vỡ vậy nú tận dụng được sức mạnh của .NET Framework. ASP.NET cú một số ưu điểm chớnh:
Cú thể sử dụng để phỏt triển cỏc ứng dụng web đủ mọi kớch cỡ, từ ứng dụng nhỏ nhất cho đến ứng dụng toàn doanh nghiệp (Enterprise).
Ứng dụng viết bằng ASP.NET dễ dàng tương thớch với nhiều loại trỡnh duyệt khỏc nhau. Nhà phỏt triển khụng cần phải quan tõm nhiều đến trỡnh duyệt nào được sử dụng để duyệt website, điều này sẽ được framework tự render ra mó tương ứng.
Khi sử dụng bộ IDE của Visual Studio, cỏch thức lập trỡnh sẽ giống hệt như lập trỡnh winform.
Truy xuất dữ liệu bằng cụng nghệ ADO.NET cú sẵn của .NET Framework.
Chạy ứng dụng cực nhanh bởi cơ chế biờn dịch và Cached.
Cú thể tăng tốc ứng dụng bằng cỏch Cache cỏc điều khiển, cỏc trang.
Bảo mật vượt trội.
Tốn ớt dũng lệnh hơn so với ASP/PHP/Perl khi thực hiện cựng một cụng việc.
Dễ dàng bảo trỡ và dễ đọc hơn bởi Code và Giao diện được tỏch biệt. Điều này cũng giỳp cho tớnh chuyờn biệt húa cao hơn. (Một người chỉ lo code phần xử lý nghiệp vụ, người khỏc thỡ chỉ lo code phần giao diện v.v…).
ASP sử dụng ngụn ngữ lập trỡnh VB.NET hoặc C# hoặc cả hai để phỏt triển ứng dụng.
3.1.3 ASP.Net và Webform
3.1.3.1 Mụ hỡnh lập trỡnh phớa mỏy chủ
Trong thế giới web, tất cả cỏc giao tiếp giữa Client (trỡnh duyệt) và Server (web server) đều được thực hiện theo cơ chế “Request and Response”. Tức là, trước tiờn phớa mỏy khỏch cần phải “requesst” (gửi yờu cầu) tới Server, sau đú phớa server sẽ “response” (hồi đỏp) lại yờu cầu.
32
Mụ hỡnh lập trỡnh phớa chủ sẽ xử lý “request trang web “ từ mỏy khỏch theo cơ chế như sau :
Khi mỏy khỏch yờu cầu một trang – vớ dụ trang xyz. – thỡ mỏy chủ sẽ đọc toàn bộ nội dung của trang đú và xử lý tại Server (trước khi gửi về cho client) để đƣợc kết quả, tiếp theo lấy kết quả xử lý được gửi về cho phớa mỏy khỏch. Kết quả trả về cho mỏy khỏch cú thể chứa cỏc phần tử HTML, cỏc cõu lệnh JavaScript, cỏc định nghĩa kiểu CSS….và tiếp tục được phớa client (trỡnh duyệt) xử lý.
33 3.1.3.2 Cơ chế xử lý file asp.net phớa mỏy chủ
Đối với cỏc trang ASP.NET, thỡ cơ chế xử lý giống như đó mụ tả ở trờn, tức là theo mụ hỡnh xử lý bờn phớa server. Nhưng cú bổ sung thờm tớnh năng Compile and Cache
Giải thớch cơ chế xử lý ở trờn:
Bước 0: Người lập trỡnh phải tạo cỏc trang ASPX (giả sử tờn trang đú là abc.aspx)
và đặt nú vào trong thư mục web của web server (cú tờn là www.server.com). Trờn thanh địa chỉ của trỡnh duyệt, người dựng nhập trang www.server.com/abc.aspx. Bước 2: Trỡnh duyệt gửi yờu cầu tới server với nội dung: ”Làm ơn gửi cho tụi trang abc.aspx thỡ tốt !”.
Bước 3: web server sẽ biờn dịch code của trang aspx (bao gồm cả cỏc mó code vb.net/ c# - gọi là code behind hay code file) thành class.
34
Bước 5: trả kết quả về cho trỡnh duyệt
Riờng với ASP.NET thỡ việc biờn dịch sẽ được thực hiện “thụng minh hơn”,
3.1.3.3 Webform trong ASP.Net
Để xõy dựng ứng dụng web, ASP.NET cung cấp sẵn cho cỏc nhà lập trỡnh rất nhiều lớp ngay khi cài đặt .NET framework. Trong số này cú một lớp đặc biệt quan trọng
35
là Page. Mỗi lớp Page sẽ trỡnh bày một trang tài liệu – tương ứng với một window – và được gọi là một web form.
Web form là một cụng nghệ cho phộp xõy dựng cỏc trang web trong đú cú thể lập trỡnh được. Cỏc trang này gọi là ASP.NET web form pages hay ngắn gọn là web form.
Cỏc trang web xõy dựng bằng ASP.NET sẽ khụng phụ thuộc vào trỡnh duyệt (tức là trỡnh duyệt nào cũng cho kết quả như nhau và hiển thị giống nhau).
Một số ƣu điểm của web forms:
Web forms cú thể được thiết kế và lập trỡnh thụng qua cỏc cụng cụ phỏt triển ứng dụng nhanh (RAD).
Web form hỗ trợ một tập cỏc điều khiển (controls) cú thể mở rộng.
Bất kỳ một ngụn ngữ .NET nào cũng cú thể được dựng để lập trỡnh với web forms. Asp sử dụng trỡnh thực thi ngụn ngữ chung (CLR) của .NET framework do đú thừa hưởng mọi ưu thế của .NET Framework. Vớ dụ : Khả năng thừa kế.
36 3.1.4 Cấu trỳc trang ASP.Net
Một trang ASP.NET bao gồm cả phần giao diện người dựng và phần xử lý logic bờn trong. Giao diện người dựng chịu trỏch nhiệm hiển thị cỏc thụng tin và tiếp nhận dữ liệu từ người dựng, trong khi đú phần xử lý (lập trỡnh) đảm nhiệm việc điều khiển sự tương tỏc của người dựng với trang web. Phần giao diện người dựng bao gồm một file chứa ngụn ngữ đỏnh dấu – như HTML hoặc XML và server controls chẳng hạn. File này được gọi là một Trang (Page) và cú đuụi mở rộng là aspx.
Phần đỏp ứng cỏc tương tỏc của người dựng với trang web được thực hiện bởi một ngụn ngữ lập trỡnh chẳng hạn như Visual Basic.NET và C#. Chỳng ta cú thể thực hiện việc viết code bằng bất kỳ ngụn ngữ lập trỡnh nào được hỗ trợ bởi CLR ở ngay trong trang ASPX hoặc tỏch ra một file riờng. File tỏch riờng này được gọi là file Code
Behind hay mới đõy gọi là Code file. Đuụi mở rộng của Code file là .VB (Nếu dựng ngụn ngữ Visual Basic) hoặc .CS (nếu dựng ngụn ngữ C#).
Đặt trờn cựng 1 file
Phự hợp khi nội dung xử lý là ớt Áp dụng cho cỏc trang đơn giản.
37
Đặt trờn 2 file riờng biệt.
Cú khả năng dựng lại Sẽ dễ bảo trỡ
Chuyờn biệt húa trong nhúm lập trỡnh. Phự hợp cho dự ỏn lớn
38 3.2 Cụng cụ quản trị cơ sở dữ liệu
3.2.1 Cụng nghệ truy cập dữ liệu ADO.NET
ADO.NET là một tập cỏc lớp nằm trong bộ thư viện lớp cơ sở của .NET
Framework, cho phộp cỏc ứng dụng windows (như C#, VB.NET) hay ứng dụng web (như ASP.NET) thao tỏc dễ dàng với cỏc nguồn dữ liệu.
Mục tiờu chớnh của ADO.NET là:
Cung cấp cỏc lớp để thao tỏc CSDL trong cả hai mụi trường là phi kết nối (Disconected data) và kết nối (Connected data).
Tớch hợp chặt chẽ với XML (Extensible Markup Language)
Tương tỏc với nhiều nguồn dữ liệu thụng qua mụ tả dữ liệu chung. Tối ưu truy cập nguồn dữ liệu (OLE DB & SQL server).
Làm việc trờn mụi trường Internet (mụi trường phi kết nối – Disconnected eviroment).
Cỏc lớp của ADO.NET được đặt trong Namespace là System.Data/ System.Data.oledb
ADO.NET bao gồm 2 Provider (2 bộ thư viện) (thường dựng) để thao tỏc với cỏc CSDL là: OLE DB Provider (nằm trong System.Data.OLEDB) dựng để truy xuất đến bất kỳ CSDL nào cú hỗ trợ OLEDB; SQL Provider (nằm trong System.Data.SQLClient) chuyờn dựng để truy xuất đến CSDL SQL Server (Khụng qua OLE DB nờn nhanh hơn).
39
Từ kiến trỳc ta thấy rằng: ADO.NET là một thành phần nội tại () của .NET
framework, do vậy nú cú thể được sử dụng trong tất cả cỏc ngụn ngữ hỗ trợ .NET như C#, VB.NET… mà khụng cú sự khỏc biệt nào (Tức là cỏc chức năng cũng như cỏch sử dụng hoàn toàn giống nhau)
3.2.2 SQL Server 2000
SQL Server 2000 là một hệ thống quản lý cơ sở dữ liệu (Relational Database Management System (RDBMS) ) sử dụng Transact-SQL để trao đổi dữ liệu giữa