Phần 2 : VISUAL BASIC .NET
Chương I : TÌM HIỂU CƠ CẤU .NET
TỔNG QUAN :
VB.NET là một phần của .NET Framework [cơ cấu .NET], một nền tảng điện toán mới đơn giản hóa và hiện đại hóa tiến trình phát triển và triển khai ứng dụng trên Windows.
.NET Framework bao gồm nhiều thứ, nhưng sau đây là các khía cạnh quan trọng của nó:
Một nền tảng được thiết kế từ đầu để viết các ứng dụng biết Internet và có khả năng Internet bao hàm và chấp nhận các chuẩn mở như XML, HTTP và SOAP.
Một nền tảng cung cấp
23 trang |
Chia sẻ: huyen82 | Lượt xem: 1561 | Lượt tải: 0
Tóm tắt tài liệu Xây dựng chương trình quản lý đăng ký và xét tuyển nguyện vọng vào lớp 10 Trung học Phổ Thông ở TPHCM (SQL server), để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
một số công nghệ phát triển ứng dụng mạnh và rất phong phú, như Windows Forms, dùng để xây dựng các ứng dụng GUI cổ điển.
Một nền tảng có một thư viện lớp bao quát cung cấp phần hỗ trợ mạnh để truy cập dữ liệu (quan hệ và XML), các dịch vụ thư mục, lập hàng đợi thông điệp v.v…
Một nền tảng có một thư viện lớp cơ sở chứa hàng trăm lớp để thực hiện các công việc chung như điều tác tập tin, truy cập sổ đăng ký, bảo mật, lập sâu (threading), tìm kiếm văn bản bằng các biểu thức bình thường.
Một nền tảng tập trung lập ngôn ngữ khiến tất cả ngôn ngữ trở thành các công dân hàng đầu. Người lập trình có thể dùng ngôn ngữ mà có thể thấy thuần thục và đạt năng xuất cao và không đối mặt với bất kỳ giới hạn nào.
Một nền tảng không quên cội nguồn của nó, và có phần hỗ trợ khả năng tương hoạt tuyệt vời cho các thành phần hiện có dùng COM hoặc các DLL chuẩn.
Một nền tảng có một luồng thi hành mã độc lập và môi trừơng quản lý có tên Common Language Runtime (CLR), bảo đảm mã an toàn khi chạy, cung cấp một tầng trừu tượng trên đầu hệ điều hành, nghĩa là các thành phần của .NET Framework có thể chạy trên nhiều hệ điều hành và nhiều thiết bị.
.NET Flatform
.NET FRAMEWORK :
.NET Framework
Các công nghệ phát triển ứng dụng
(Web Services, WinForms, v.v…)
Các thư viện lớp
Các thư viện lớp cơ sở
Common Language Runtime
.NET Framework
.NET Framework bao gồm bốn mẩu chính:
Các công nghệ phát triển ứng dụng.
Các thư viện lớp.
Các thư viện lớp cơ sở.
Common Language Runtime (CLR).
Các mẩu này nằm trên đầu nhau, với mỗi tầng cao hơn sẽ vận dụng một hoặc nhiều tầng thấp hơn.
Các công nghệ phát triển ứng dụng:
Web services
Web services là các thành phần logic kinh doanh có thể lập trình, được dùng như “các hộp đen” để cung cấp khả năng truy cập công năng thông qua Internet dùng các giao thức chuẩn chẳng hạn như HTTP.
WinForms
WinForms là một thư viện lớp bao quát đưa ra công năng của Windows Common Controls dùng các khả năng hướng đối tượng diễn cảm của .NET Framework.
Các thư viện lớp:
.NET Framework có một loạt các thư viện lớp. Nó bao gồm các lớp cho :
Data Access – Các lớp truy cập dữ liệu khả năng vận hành cao để nối với SQL Server hoặc với bất kỳ trình cung cấp OLEDB nào khác.
XML Support – Phần hỗ trợ XML thế hệ kế tiếp vượt xa công năng MSXML.
Directory Services – Hỗ trợ để truy cập Active Directory/ LDAP dùng ADSI.
Regular Expression – Hỗ trợ trên và vượt quá tính năng có trong Perl 5.
Queuing Support – Cung cấp một loạt các lớp hướng đối tượng sạch để làm việc với MSXML.
Các thư viện lớp này dùng các thư viện lớp cơ sở CLR cho công năng chung.
Các thư viện lớp cơ sở:
Thư viện lớp cơ sở trong .NET Framework rất lớn. Chúng bao gồm các lĩnh vực như:
Collection – Không gian tên System.Collection cung cấp vô số các lớp sưu tập.
Thread Support – Không gian tên System.Threading cung cấp phần hỗ trợ để tạo các ứng dụng đa xâu, hiệu quả, nhanh.
Code Generation – Không gian tên System.CodeDOM cung cấp các lớp để phát sinh các tập tin nguồn bằng nhiều ngôn ngữ.
IO – Không gian tên System.IO cung cấp phần hỗ trợ để làm việc với các tập tinh và tất cả các kiểu luồng khác.
Reflection – Không gian tên System.IO cung cấp phần hỗ trợ để nạp các tập hợp, xem xét các kiểu bên trong tập hợp, tạo các minh dụ của các kiểu.
Security – Không gian tên System.IO cung cấp phần hỗ trợ cho các dịch vụ như thẩm định quyền, quyền hạn, các loạt giấy phép, các nội quy, và mật mã.sss
Common Language Runtime:
Vài ngôn ngữ có thể yêu cầu các kiểu mà ngôn ngữ khác không hỗ trợ. Để giải quyết vấn đề này, CLR có các kiểu bổ sung hỗ trợ công năng cần thiết cho các ngôn ngữ cụ thể như C#. Tuy nhiên việc chia sẻ các lớp CLR mà các ngôn ngữ khác tạo ra nó là có khả năng một lớp sẽ không dùng được trong một số ngôn ngữ nếu kiểu của nó không được hiểu rõ.
Mọi kiểu trong CLR là một đối tượng. Do mọi kiểu đều có một cơ sở chung (System.Object), nên các nhà phát triển có thể viết vài mã chung rất mạnh.
Chương II : GIỚI THIỆU ADO.NET
GIỚI THIỆU ADO.NET :
Trong 3 phiên bản trước của Visual Basic, trước khi các đối tượng truy cập dữ liệu ra đời, công nghệ DAO (Data Access Objects) cùng với Visual Basic 3.0, cho phép nhà lập trình truy cập cơ sở dữ liệu cục bộ trên định dạng JDE (Jet Database Engine)
Với DAO (Data Access Objects), ta cũng có thể truy cập dữ liệu trên trình chủ (Server), nhưng không tối ưu và tốc độ chậm, vì dao vẫn sử dụng để truy cập cơ sở dữ liệu cục bộ
Tiếp theo sau DAO, công nghệ truy cập cơ sở dữ liệu bằng đối tượng RDO và ADO ra đời. Như trình bày ở trên, công nghệ này sử dụng để truy cập cơ sở dữ liệu Client / Server (trình chủ và trình khách), cho phép truy cập dữ liệu với mô hình đa lớp (n-Tier)
Thành phần ADO.NET, được thiết kế nhằm tăng tốc độ truy cập và thao tác dữ liệu trong môi trường đa lớp (n-Tier). Hai thành phần chính của ADO.NET là đối tượng DataSet và NET Provider.
NET Provider là 1 tập các đối tượng trong thành phần. NET bao gồm Connection (Kết nối cơ sở dữ liệu), Command (Lệnh thi hành), DataReader (BỘ đọc dữ liệu), và DataAdapter (Kết nối và điều phối dữ liệu).
Bạn có thể tham khảo chi tiết từng đối tượng trong các chương kế tiếp liên quan đến Visual Basic.NET và cơ sở dữ liệu.
SO SÁNH ADO VÀ ADO.NET :
1. Từ ADO đến ADO.NET:
Nếu đã từng làm quen với Visual Basic hay Active Server Page, thì đối tượng ADO rất quen thuộc trong quá trình truy cập và sử lí dữ liệu như SQL Server hay Ms.Access, một trong những đặc điểm chính của ADO là đối tượng Recordset.
ADO Recordset rất uyển chuyển để cho phép ứng dũng điều hướng giữa các mẩu tin và ứng dụng bộ lọc cùng với đánh dấu điểm tham chiếu mẩu tin rất dễ dàng.
Ngoài ra, ADO Recordset cũng hỗ trợ các chức năng sắp xếp và phân trang tự động, nhằm tạo cho ứng dụng thân thiện và mang tính ứng dụng thực tiễn cao.
ADO Recordset còn sắp xếp dữ liệu một cách hiệu qủa thông qua nhiều lớp và ngay cả trong môi trường COM bởi vì định dạng có tính tự nhiên và cô đọng
ADO không thể sử dụng trên nhiều platform khác như Unix hay Linux chẳng hạn, chúng chỉ sử dụng trong môi trường Windows hay COM, với môi trường này ADO thể hiện được tính năng hiệu qủa của nó
Nếu làm việc trên Visual Basic hay ASP, đối tượng ADO là một phần công việc khá thú vị trong qúa trình truy cập cơ sở dữ liệu Ms.Access hay SQL Server. Với phiên bản Visual Basic.NET ra đời, ADO.NET là một khám phá cần phải thamkhảo và sử dụng cùng với những ngôn ngữ va Server Script như ASP.NET.
ADO.NET vượt xa hơn nữa :
Trung tâm của đối tượng ADO.NET là đối tượng DataSet, DataSet là kế vị của đối tượng RecordSe của ADO, với đối tượng này, chương trình lưu trữ tập dữ liệu thường trú trong bộ nhớ và trình bày chúng khi người dùng gọi đến.
Đối tượng DataSet có thể mô phỏng dữ liệu một cách hợp lí hay trừu tượng, khác với RecordSet, DataSet không những là một container để chứa đựng và kiểm soát toàn bộ mẩu tin mà còn dữ nhiều bảng dữ liệu và các quan hệ giữa chúng.
Ràng buộc (Constraint), quan hệ (Relationship) :
Không giống như ADO, ADO.NET không chỉ kết nối dữ liệu từ haibảng Products và Cateogories và trả về dữ liệu như ví dụ trên mà ta có thể kết nối dữ liệu cùng với các ràng buộc và quan hệ cuả chúng sau khi lưu vào bộ nhớ.
Ở ví dụ trên, dữ liệu được kiết xuất từ đối tượng ADO.NET. Trước tiên kết nối cơ sở dữ liệu và truy vấn dữ liệu từ cơ sở dữ liệu quan hệ, các bảng dữ liệu được thay thế bởi đối tượng DataSet, sẽ lưu trữ trong bộ nhớ bằng cách sử dụng đối tượng DataSetCommand.
DataSetCommand định rõ những bảng dữ liệu nào quan tâm, sau khi DataSet kết xuất dữ liệu xong bạn đóng kết nối, sau đó xây dựng một quan hệ cho chúng trong DataSet đối với những bảng dữ liệu vừa chỉ rõ trong DataSetCommand, bằng cách này bạn tự ràng buộc và tạo quan hệ dữ liệu ngay trong đối tượng DataSet, sau đó có thể gửi dữ liệu đến các ứng dụng hay tập tin văn bản dạng XML, hay bất kì một ứng dụng trình cách khác.
Bởi vì tập dữ liệu có thể được xây dựng từ XML, cho nên chúng ta có thể xây dựng một tập dữ liệu ứng dụng Windows hay ứng dụng Web-based.NET. Ngoài ra bạn cũng có thể làm việc trên EDI (Electronic Data Interchange) bằng cách truyền tập tin XML thông qua dịch vụ Web.
Như bạn biết, những ứng dụng client/server trước đây, không sử dụng công cụ.NET, thay vì sử dụng mô hình n-tier dừa trên mỗi nhiệm vụ hoàn thành cuả từng tier (tầng).
Trong Windows Forms bạn có thể truyền một tập tin XML, vào ứng dụng của bạn một cách dễ dàng, bởi vì dữ liệu XML với giản đồ mô tả đầy đủ nội dung chính, vì vậy bạn có thể xây dựng một dữ liệu ngay trong ứng dụng của bạn từ XML.
sau đó người dùng có thể kích hoạt hay thao tác trên ứng dụng của bạn, nếu người dùng muốn cập nhật dữ liệu (DataSource) đối tượng DataSet được xây dựng từ tập tin XML sẽ trả về cho tầng Business thông qua Intranet hay Internet.
Sự khác nhau lớn nhất giữa ADO RecordSet và ADO.NET RecordSet là DataSet ngắt kết nối từ nguồn dữ liệu. Để sử dụng DataSet bạn kết nối nguồn dữ liệu, tiếp đến thực hiện truy vấn một hay nhiêù bảng, sau đó ngắt kết nối.
DataSet chứa đựng tòan bộ dữ liệu và cho phép cuộn, kích hoạt, thao tác dữ liệu DataSet, sau khi người dùng kết thúc thao tác dữ liệu trên DataSet, đối tượng này sẽ kết nối trở lại nguồn dữ liệu và thực hiện quá trình cập nhật vào nguồn dữ liệu.
Mặt khác dữ liệu logic và giao diện người dùng hoàn toàn tách biệt nhau, trong hình trên, một tầng dữ liệu Data Tier, tầng Business Tier và tầng hiện thực Presentation Tier, các tầng này đều tách biệt, điều này cho phép hàng ngàn người dùng truy cập và xử lí trên từng tầng của ứng dụng.
So sánh ADO và ADO.NET :
Một sự khác biệt thứ hai xuất phát từ đối tượng Connection trong ADO và ADO.NET. Trong Connection của ADO.NET, không có thuộc tính CursorLocation. Trong ADO.NET không có khái niệm Cursor, thay vào đó đối tượng DataSet được xem như một con trỏ tĩnh và đối tượng DataReader như một con trỏ ADO chỉ đọc.
Trong thực tế ADO.NET không hỗ trợ Cursor trên phía Server, đó là một ngoaị lệ. Tuy nhiên đối tượng DataReader sử dụng để đọc từng mẩu tin, nhưng để sử lý trên Server thì ADO vẫn còn khả dụng.
Một ứng dụng có thể thiết lập một tập kết qủa ngay trong quản trị xử lý ứng dụng (Client side) hay trên nguồn dữ liệu phía máy chủ (Server Side)
Cursor trên Client side được hỗ trợ bởi đối tượng Dataset của ADO.NET, với con trỏ này cho phép bạn qủan lý dữ liệu như cuộn và cập nhật. Client side cursor là một chọn lựa tốt cho giap tiếp giữa người dùng và dữ liệu
Server side cursor được hỗ trợ bởi đối tượng DataReader của ADO.NET, đối với lọai cursor này bạn nên sử dụng một cách cẩn thận, bạn không thể sử dụng cuộn hay cập nhật dữ liệu trên Server side cursor, tuy nhiên để làm điều này bạn cần phải sử dụng Stored Procedure để thực hiện các thao tác trên Server.
Đặc điểm ADO ADO.NET
Sử dụng đối tượng Dataset có thể bao hàm một hay nhiều bảng hiện thực bởi đối tượng DataTable.
Hỗ trợ đối tượng DataRelation để kết nối nhiều mẩu tin trong đối tượng DataTable này với đối tượng DataTable khác.
Cho pháp duyệt không tuần tự nhiều mẩu tin trên bảng dữ liệu, cho phép định hướng một số mẩu tin trên bảng này và một số mẩu tin trên bảng khác.
Để kết nối cơ sở dữ liệu Visual Basic.NET sử dụng đối tượng Dataset Command.
Sử dụng đặc tính của XML, tự mô tả dữ liệu, đọc và ghi dữ liệu dễ dàng.
Dữ liệu thường trú trong bộ nhớ.
Quan hệ (Relationship) giữa hai hay nhiều bảng.
Truy cập dữ liệu.
Ngắt kết nối.
Lập trình.
Sử dụng đối tượng Recordset giống nhưmột bảng dữ liệu.
Kết nối dữ liệu giữa các bảng bằng phát biểu Join và kết qủa trả về một bảng dữ liệu.
Duyệt mẩu tin tuần tự trên Recordset.
Đối tượng Recordset hỗ trợ bởi đối tượng Connection gọi OLE DB Provider để kết nối với cơ sở dữ liệu.
Sử dụng đối tượng Connection để thực hiện chuyển giao câu lệnh.
Chia sẻ dữ liệu giữa các tầng hay thành phần sau khi ngắt kết nối.
Chuyển giao dữ liệu qua Firewall.
Hiệu lực.
Dùng Com để sắp xếp và chuyển giao dữ liệu(Com chuẩn).
Firewall là cấu hình ngăn ngừa yêu cầu của người dùng ở mức hệ thống như đối tượng Com hay Banary.
Cơ sở dữ liệu khóa, cơ sở dữ liệu hiệu lực kết nối trong thời gian dài.
Chuyển giao Dataset với tập tin XML.
Có vấn đề trở ngại, vì đối tượng Dataset của ADO.NET sử dụng tập tin dạng văn bản XML có thể truyền qua Firewall.
Ngắt kết nối cơ sở dữ liệu.
CÁC ĐỐI TƯỢNG CỦA ADO.NET
Các lớp .NET
Đối tượng DataSet :
Đối tượng Dataset là một đối tượng của ADO.NET, cung cấp cách thông thường nhất để trình bày và thao tác dữ liệu. Điều quan trọng là ở đây bạn không nên nghĩ đối tượng này như một cơ sở dữ liệu mà chúng là một đối tượng nhắm bắt dữ liệu từ bất kì một nguồn dữ liệu khác.
Bạn không chỉ sử dụng đối tượng Dataset để truy vấn dữ liệu mà còn di chuyển dữ liệu bất kì thời điểm nào, sau đó gửi dữ liệu thông qua XML.
Tập dữ liệu được địng dạng XML, và cũng có thể một đối tượng nhị phân, và có thể đọc hay ghi XML, trong thực tế là XML.
Trong trường hợp phân phối dữ liệu trên mạng, vì bạn có khái niệm trình bày dữ liệu bằng XML, module Target sẽ nhận XML và sử dụng chúng như cách tốt nhất để biểu diễn khối dữ liệu, tham khảo hình sau đây, dễ dàng nhận thấy sự kết hợp giữa ADO.NET và XML trên .NET Framework.
Microsoft.NET Framework
Web Service
User Interface
Data và XML
ADO.NET
Case Classes
Common Language runtime
XML .. ..
ADO.NET và XML trong .NET Framework
Đối tượng Dataset trong ADO.NET, được định nghĩa trong không gian tên System.Data, không gian tin này chứa đựng các lớp và phương thức với mục đích thao tác dữ liệu trong đối tượng Dataset, trong không gian tên System.Data bao gồm các đối tượng:
Bảng đối tượng của không gian tên System.Data
Đối tượng Diễn giải
DataSet
Datatable
DataRow
Bộ nhớ chứa đựng dữ liệu.
Dùng để truy vấn dữ liệu từ đối tượng TablesCollection cùng với đối tượng Datatable và DataSet.
Dùng để truy vấn mẩu tin từ đối tượng RowsCollection cùng với đối tượng dataRow và DataTable.
Đối tượng DataTable :
Để ADO.NET làm việc trên cơ sở dữ liệu, bạn cần phải sử dụng một số đối tượng khác, trong đó có DataTable, để thêm một đối tượng DataTable từ nguồn dữ liệu như MS SQL Server 2000 chẳng hạn, hay một DataTable đối tượng DataSet, bạn cần tham khảo một số thông tin của đối tượng này trong bảng:
Thuộc tính Diễn giải
Columns
Rows
ParentRelation
Constraints
PrimaryKey
Truy cập dữ liệu từ cột như tập hợp dữ liệu, trả về DataColumnCollection .
Truy mẩu tin trong đối tượng DataTable trả về DataRowCollection của đối tượng DataRow.
Trả về DataRelationCollection của tất cả các quan hệ giữa các bảng.
Trả về DataSet của DataTable trực thuộc.
Gán hay lấy khóa chính của bảng dữ liệu trong mảng cột của bảng.
Đối tượng DataSet và XML :
Đối tượng DataSet có thể sử dụng bất kì dữ liệu, chế độ mở của chúng thông qua định dạng XML. Như chúng tôi đã trìng bày trong phần trên của chương này, DataSet có khả năng đọc và ghi dữ liệu trên chính chúng và lược đồ như XML.
Tuy nhiên, khả năng này cho phép bạn tạo hay cập nhật dữ liệu trên tập dữ liệu sử dụng XML, hay giải pháp XML như trong SQL Server 2000.
XML là khái niệm cơ bản để trình bày dữ liệu văn bản, điều này cũng có nghĩa bạn đã truy cập thông qua Firewall, không giống như các dữ liệu nhị phân khác (như dối tượng COM, COM+) Firewall (bức tường lửa trong hệ thống mạng Internet) có thể xem xét dữ liệu XML và nhận dạng chúng như văn bản.
Chính xuất phát từ khái niệm này, dữ liệu dạng XML có thể truyền và đi ra ngòai thông qua Firewall bằng port 80 (Port chuẩn của Internet HTML).
Trong thực tế, bạn có thể kết hợp giữa XML và HTML, để có thể chuyển đổi thông qua hệ thống Internet. đây là một cơ chế được biết dưới tên SOAP (Simple Object Access Protocol) bạn có thể tham khảo cơ chế này trong chương ASP.NET và XML trong phần sau của giáo trình này.
Bảng phương thức của đối tượng DataSet
Phương thức Diễn giải
ReadXML
ReadXMLSchema
WriteXML
WriteXMLSchema
Đọc lược đồ XML và dữ liệu vào DataSet.
Đọc lược đồ XML vào DataSet.
Ghi tập tin XML từ DataSet.
Ghi lược đồ XML từ DataSet.
Đối tượng DataView :
Sử dụng đối tượng DataView, bạn có thể tạo ra nhiều View từ các bảng dữ liệu cho trước. Chẳng hạn bạn có bảng Employers với hai cột department và skills. Để tạo hai view khác nhau, một là department view và skills view (y tưởng tương tự như trong view của SQL Server). Đối tượng Dataview được thi61t kế cho Windows Forms và ngay cả Web Form như trong bảng:
Bảng thông tin của đối tượng DataView
Thuộc tính Diễn giải
Table
Sort
RowFilter
RowstateFilter
Gán hay lấy nguồn dữ liệu từ Table cho View.
Nhận hay thiết lập sắp xếp dữ liệu tăng hay giảm dần.
Gắn hay thiết lập biểu thức điều kiện lọc dữ liệu.
Gán hay nhận trạng thái của bộ lọc bao gồm các giá trị enumeration như CurrentRows, Deleted, ModifiedCurrent, None, ModifiedOriginal, New, OriginalRows, Unchanged.
MÔ HÌNH ADO.NET
Mô hình đối tượng ADO.NET cài đặt trên microsoft .NET Framework bằng không gian tên system. data và tất cả các không gian tên con của system. Data.
Mô hình ADO.NET thiết kế như một mô hình truy cập dữ liệu, cho phép đọc ghi trên mọi nguồn dữ liệu bất kỳ.
Đối tượng data provider là công cụ để sử dụng để kết nối cơ sở dữ liệu như SQL server, Email, Execl Text và một số loại cơ sở dữ liệu khác.
Mô hình đối tượng ADO.NET bao gồm các thành phần chính như connection, commend, dataAdapter, dataReader.
Connection: sử dụng để kết nối dữ liệu nguồn, đối tượng connection đại diện cho lớp Sqlconnection. Những kết nối này được mở bằng cách gọi phương thức Open và sử dụng DataAdapter.
Command: chứa đựng những thông tin trình bày dữ liệu như một truy vấn, đối tượng command đại diện cho lớp Sqlcommand và OleDbcommand. Chức năng của chúng sử dụng để truy cập dữ liệu từ dataAdapter hay truyền dữ liệu từ DataSet thông qua DataAdapter.
DataAdapter: cung cấp các phướng thức và thuộc tính để truy vấn và lưu dữ liệu, thiết lập cầu nối giữa tập dữ liệu và dữ liệu nguồn. Phương thức fill gọi phát biểu Select trong lúc phương thức Upalate gọi các phát biểu Insert, Update, Delete để cập nhật dữ liệu.
DataRaeder: cung cấp phương thức và thuộc tính để phân phối nguồn dữ liệu theo một chiều từ dữ liệu nguồn.
Đối tượng DataSet cài đặt từ dữ liệu như Table, Columns, Relationship và một số Constrains. Trong khi dataset được mệnh danh như một cơ sở dữ liệu, như dataset không thể trực tiếp tương tác với dữ liệu nguồn.
Đối tượng DataSet theo dõi sự thay đổi dữ liệu, sau đó cập nhật trở lại nguồn dữ liệu, bằng cách gọi Getchanges của đối tượng DataSet để tạo ra một dataset mới chứa đựng toàn bộ những dữ liệu thay đổi so với dữ liệu nguồn, sau đó DataSet sử dụng DataAdapter để cập nhật những dữ liệu thay đổi vào dữ liệu nguồn.
Đối tượng Dataview, cung cấp những phương thức và thuộc tính cho phép các đối tượng giao diện người dùng, như dataGrid kết hợp tập dữ liệu và hiển thị nội dung bằng nhiều góc độ khác nhau. Dataview là đối tượng rất đơn giản. Tuy nhiên bạn nhớ rằng đối tượng dataview chỉ làm việc với đối tượng dataset, không kết hợp với dataAdapter.
UI
Data Provider
DataReader
Command ExecuteReader
Connection
Mô hình đối tượng DataReader
Phương thức EcxecuteReader của đối tượng command, gởi lệnh gọi Command.CommendText đến đối tượng Connection. Sau đó đối tượng Connection xây dựng đối tượng DataReader và gởi kết quả đến UI (User Interface), thông qua luồng, như đã trình bày trong chương trước, nếu bạn muốn hiển thị dữ liệu mà không quan tâm đến cập nhật dữ kiệu nguồn hãy sử dụng đối tượng DataReader.
QUẢN LÝ CÁC PROVIDER TRONG ADO.NET
Để lấy dữ liệu từ nguồn dữ liệu (dữ liệu quan hệ, tập tin văn bản, thông tin trong email,....) bạn cần phải quản lí và sử dụng provider, để quản lí các provider cho nhiều lọai dữ liệu, bạn phải bao gồm tập hợp của lớp cho phép truy cập nhiều lọai dữ liệu.
Provider của Net Framework như một cầu nối giữa ứng dụng với cơ sở dữ liệu, chúng dùng để kết nối nguồn dữ liệu, thực hiện câu lệnh và nhận dữ liệu trả về, những dữ liệu này có thể được xử lí trực tiếp, hay lưu trữ trên đối tượng DataSet của ADO.NET.
Khi dữ liệu lưu trữ trên DataSet, chúng có thể trình bày cho người dùng với nhiều thể lọai, như kết hợp dữ liệu từ nhiều bảng hay dữ liệu truy xuất từ nhiều tầng, như trình bày ở hình trên. Provider cũng kết hợp sự thay đổi của dữ liệu trở lại nguồn dữ liệu.
ADO.NET bao gồm hai Provider như sau:
SQL Server.NET data provider: Sử dụng cho SQL Server 7.0 và các phiên bản sau.
OLE DB.NET data provider: Sử dụng cho dữ liệu kiết xuất thông qua OLE DB.
Trong khi lập trình, sử dụng hai provider ở trên về cơ bản giống như nhau, cả hai đối tượng này thuộc không gian tên system.Data, trông khác nhau bởi hai từ SQL Server và OLEDB.
Hai provider này cung cấp các chức năng tương tự nhau như trong bảng sau:
Bảng NET DataProvider
SQL Server.NET Data Provider OLE DB.NET Data Provider
SqlCommand
SqlConnection
SqlDataAdapter
SqlDataReader
SqlParameter.
OleDbCommand
OleDbConnection
OleDbDataAdapter
OleDbDataReader
OleDbParameter.
Các đối tượng provider này, chứa đựng đối tượng hiện thực cho các nguyên tố NET Provider bao gồm: Connection, Command, DataReader, DataAdapter như trong bảng sau:
Bảng danh sách đối tượng của NET Data Provider
Đối tượng Diễn giải
Connection
Command
DataReader
DataAdapter
Thiết lập kết nối cơ sở dữ liệu với nguồn dữ liệu.
Thực hiện lệnh trên nguồn dữ liệu, đặt vào các tham số và thu nhận các chuyển tác từ kết nối Connection.
Đọc luồng dữ liệu từ nguồn dữ liệu theo thuộc tính Forward-only (một chiều).
Điều phối một DataSet và giải quyết vấn đề cập nhật dữ liệu với nguồn dữ liệu.
Đối tượng DataSet Command của Provider lấy dữ liệu từ nguồn dữ liệu và truyền một tập dữ liệu, tương tự như vậy khi tập dữ liệu này có sửa đổi, con người muốn cập nhật trở lại nguồn dữ liệu gốc với dữ liệu vừa thay đổi, đối tượng DataSet Command sẽ thực hiện qúa trình này.
DataStore
DataSetCommand
DataSet
DataSetCommand là cầu nối DataSet và nguồn dữ liệu
Trước đây, xử lý dữ liệu cơ bản trên cấu trúc hai tầng và connection, trong trường hợp cấu trúc dữ liệu nhiều tầng, nhà lập trình phải sử dụng giải pháp ngắt kết nối, tạo sự uyển chuyển cho ứng dụng.
DataSetCommand cung cấp một công cụ quan trọng cho giải pháp này trong ADO.NET, như đã trình bày ở hình trên, DataSetCommand nạp đối tượng DataSet, đưa ra cầu nối giữa đối tượng này với nguồn dữ liệu, với mục đích truy vấn và cập nhật dữ liệu.
Cũng như đã giới thiệu ở trên, NET Framework bao gồm hai đối tượng SQL Server.NET Data Provider và OLE DB.NET Data Provider, trong các giáo trình của chúng tôi sử dụng SQL Server.NET Data Provider. Tuy nhiên cú pháp của OLE DB.NET Data Provider hầu như giống như SQL Server.NET Data Provider.
Đối với một số người bắt đầu lập trình trên Visual Basic.NET, họ không biết phải sử dụng Provider nào trong trường hợp này, chúng tôi khuyên bạn không nên mất thời gian cho sự chọn lựa này. Tuy nhiên có một vài đặc tính trông có vẻ khác nhau như trình bày trong bảng sau:
Bảng ghi chú giữa hai đối tượng của NET Data Provider
Provider Ghi chú
SQL Server.NET Data Provider
OLE DB.NET Data Provider
Úng dụng tầng giữa (Middle Tier) bạn sử dụng như Microsoft SQL Server 7.0 hay các phiên bản SQL Server 2000.
Úng dụng tầng đơn sử dụng cho Microsoft SQL Server 7.0 hay các phiên bản SQL Server 2000 và Microsoft DataEngine
Cho các OLE DB Provider for SQL Server với SQL Server.NET Data Provider.
Úng dụng tầng giữa (Middle Tier) bạn sử dụng như Microsoft SQL Server 6.5 hay các phiên bản của SQL Server trước đây và Oracle.
Úng dụng tầng đơn sử dụng cho Microsoft Access.
Cho các OLE.NET provider for Microsoft Access.
Chương III : DỊCH VỤ WEB
Dịch vụ Web (Web Services) được định nghĩa trong các không gian tên System.Web.Services, System.Web.Description và các không gian con của System.Web.Services, bao gồm hai không gian tên như: System.Web.Services.Discovery, System.Web.Services.Protocol…
Web servicves là một nhóm các hàm, được đóng gói và sử dụng hợp nhất thông qua hệ thống mạng. Web Services cung cấp các nghi thức truy cập thông tin bằng Internet Protocol, thông qua WSDL Contract, chúng là một đặc tả dịch vụ XML.
Web services trở thành cấu trúc của hệ điều hành trong thế hệ kế tiếp, vì chúng có:
Cấu trúc tự nhiên, web services không phụ thuộc vào quyền sở hữu riêng của địng dạng nào cả,sơ đồ hay chuẩn mở.
Tồn tại trên mọi sản phẩm, bất kì môi trường nào có hỗ trợ thì có hệ thốnh web services
Đơn giản khi tạo một web services, nhanh gọn, với giản đồ mang tính thân thiện và tự nhiên
Cho phép thao tác giữa các phần với nhau.
WEB SERVICES
Trong mọi trường hợp, trang ASP.NET đều giao tiếp với trình chủ Web (Web Server), trong đó Web Services là một dịch vụ giao tiếp với Web Server.
Web Services là một mô hình cho ứng dụng, chúng có thể cài đặt cho bất kỳ một hoạt động nào có hỗ trợ giao tiếp với Internet.
Web Services kết hợp cả hai mô hình phát triển component-based và Web. Tuy nhiên, trong trường hợp này component-based bao gồm DCOM (Distributed Component Object Model), RMI (Remote Method Invocation), và IIOP (Internet Inter-Orb Protocal)
GIỚI THIỆU WEBFORM
Webform là một phần trong công nghệ mới ASP.NET, chúng cho phép lập trình viên sử dụng nhiều ngôn ngữ lập trình để tạo ra một trang Web kết hợp với HTML form cùng với mã của kịch bản phía trên Server (Server Side). Trước khi bắt đầu tạo WebForm, phải bảo đảm rằng môi trường máy có cấu hình phần cứng lẫn phần mềm phải tương thích.
Cấu hình IIS :
Để chuẩn bị thực thi một trang WebForm bạn cần cấu hình trên IIS, dĩ nhiên đối với Windows 2000 thì IIS (Internet Information Services) được cài đặt, khi cài đặt hệ điều hành Windows 2000 (including), nhưng trong trường hợp sử dụng hệ điều hành Windows NT Server 4.0 thì IIS trong bộ đĩa Option Pack.
WebForm :
Trở lại với ASP
Như đã biết ASP là một mô hình tối ưu và dễ sử dụng trên nhiều ứng dụng web trên nền windows, chúng cho phép bạn xây dựng một web site ứng dụng có quy mô lớn, nhưng nếu bạn là người làm việc lâu năm trên ASP, bạn sẽ nhận thấy những điều thiếu sót như mã không cấu trúc rõ ràng, đôi khi bạn sử dụng các phát biểu include để chèn tập tin vào trang ASP như bạn đã phải giải qyuết nhiều việc.
Tại sao bạn phải sử dụng ASP. NET
ASP.NET sẽ được hướng các lập trình viên web vào qỹu đạo của chúng bằng các lý do sau :
Độc lập ngôn ngữ : ASP.NET cho phép bạn không biên dịch ngôn ngữ, thực hiện tối ưu với các ngôn ngữ kết hợp.
Dẽ phát triển:ASP.NET cho phép bạn sẽ khai báo và viết mã và đơn giản hóa về vấn đề này
Tách mã nội dung ra hai phần : trong mỗi webform có những thủ tục với các tên mở rộng.vb, được gọi là “code behind the page”, chứa nội dung mã nguồn trong khi webform chứa cáctượng nguồn còn webform chứa các đối tượng trực quan
(Improved scalability): cho phép quản lýtrạng thái của các session và tạo form trên hệ thống nhiều server
Hỗ trợ cho nhiều trình khách : ASP.NET control có thể tự động nhận dạng trình khách để hiển thị cho phù hợp. Chính vì vậy bạn sẽ không quan tâm phải viết mã để nhận dạng loại trình dyuệt của trình khách
Các control của webform : những control có thể xuất ra HTML3.2 trên dyuệt trình. Dĩ nhiên cho phép xuất ra tất cả các platform như wireless phone, palm pilot, pager và các thiết bị khác
Xử lí trên server side : ASP.NET thay đổi trang web như một đối tượng trên servr side, nhiều thuộc tính,phương thức đối tượng, sự kiện dễ sử dụng để tạo ra nội dung động trong mã nguồn như phát biểurunal= server
._.