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ó:
o 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.
23 trang |
Chia sẻ: vietpd | Lượt xem: 2035 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Tìm hiểu về Visual basic .net, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
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 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