Lập trình Visual Basic.Net 2005

doc 81 trang phuongnguyen 6870
Bạn đang xem 20 trang mẫu của tài liệu "Lập trình Visual Basic.Net 2005", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • doclap_trinh_visual_basic_net_2005.doc

Nội dung text: Lập trình Visual Basic.Net 2005

  1. Lập trình Visual Basic.Net 2005
  2. Mục lục Home ###Huong dan doc tieng Viet### ###Thông báo### ##Trao doi Tot Nghiep 2008 Công cụ lập trình VB.NET 2005 Cấu trúc dữ liệu Ebook tiếng việt Hỏi đáp VB.Net 2005 Java 1 Linux 2 TCTH07A TCTH34 Thực tập phần cứng máy tính VB.Net 2005 cơ bản VB.Net 2005 nâng cao VIRUS Search Lập trình Visual Basic.Net 2005 Lập trình Visual Basic.Net 2005 Feeds: Posts Comments VB.Net 2005 cơ bản VB.Net 2005 cơ bản Bắt đầu với Visual Studio 2005 Express Editions Phiên bản Visual Studio 2005 Express được Microsoft phát hành miễn phí, được đóng gói theo từng ngôn ngữ. Đặc điểm của các phiên bản này là rất nhỏ gọn, với hầu hết các tính năng cần thiết cho việc phát triển một ứng dụng bình thường. Nếu như bộ Visual
  3. Studio 2005 Professional có dung lượng lên tới khoảng 2.5GB, khi cài cũng cần rất nhiều không gian đĩa, thì các phiên bản Express có dung lượng chỉ khoảng 450MB, và yêu cầu dung lượng đĩa khi cài đặt thấp hơn nhiều. Với những đặc điểm như vậy, các phiên bản Express rất phù hợp cho những người mới bắt đầu làm quen với Visual Studio 2005. Thực tế cho thấy, nếu không phải là người lập trình chuyên sâu về VS 2005, thì hầu như không thấy được sự khác biệt giữa phiên bản Express và phiên bản Professional. Các phiên bản Express có thể tải về từ Website của Microsoft. Nếu như máy tính có kết nối Internet, thì có thể cài đặt qua mạng, còn nếu không thì có thể tải về toàn bộ nội dung đĩa theo từng ngôn ngữ. Phiên bản Visual Studio 2005 Express không bao gồm .NET Framework và SQL Server 2005 Express, do đó cần phải tải các bản này về riêng biệt. Download: Microsoft .NET Framework 2.0 (22.4 MB) Microsoft Visual Basic 2005 Express Edition (ISO File, 436 MB) Microsoft Visual C# 2005 Express Edition (ISO File, 431 MB) Microsoft Visual Web Developer 2005 (ISO File, 440 MB) Microsoft SQL Server 2005 Express Edition (54 MB) Ghi chú: - Để cài đặt được .NET Framework 2.0, Visual Studio 2005 Express Edition, SQL Server 2005 Express Edition, có thể cần phải nâng cấp Service Pack cho Windows XP và cài thêm một số bản cập nhật phụ trợ khác. - Định dạng ISO là định dạng ảnh CD chuẩn. Để mở file theo định dạng ISO, có thể cài đặt ổ đĩa CD ảo có sẵn trong các phần mềm PowerISO, Nero hoặc có thể extract bằng WinRAR. ( Phạm Quang Hoà ) Sơ lược về Visual Basic.NET 1.1 Sơ lược về lịch sử của VB.NET Ngôn ngữ BASIC (Beginner’s All Purpose Symbolic Instruction Code) đã có từ năm 1964. BASIC rất dễ học và dễ dùng. Trong vòng 15 năm đầu, có rất nhiều chuyên gia Tin Học và công ty tạo các chương trình thông dịch (Interpreters) và biên dịch (Compilers) cho ngôn ngữ làm BASIC trở nên rất phổ thông. Năm 1975, Microsft tung ra thị trường sản phẩm đầu tay Microsoft BASIC và tiếp đó Quick BASIC (còn gọi là QBASIC) thành công rực rỡ. Quick BASIC phát triển trong nền Windows nhưng vẫn khó khăn khi tạo giao diện kiểu Windows. Sau đó nhiều năm, Microsoft bắt đầu tung ra 1 sản phẩm mới cho phép ta kết hợp ngôn ngữ dễ học BASIC và môi trường phát triển lập trình với giao diện bằng hình ảnh (Graphic User Interface - GUI) trong Windows. Đó là Visual Basic Version 1.0
  4. Sự chào đời của Visual Basic Version 1.0 vào năm 1991 thật sự thay đổi bộ mặt lập trình trong Công Nghệ Tin Học. Trước đó, ta không có 1 giao diện bằng hình ảnh (GUI) với một IDE (Integrated Development Environment) giúp các chuyên gia lập trình tập trung công sức và thì gìờ vào các khó khăn liên hệ đến doanh nghiệp của mình. Mỗi người phải tự thiết kế giao diện qua thư viện có sẵn Windows API (Application Programming Interface) trong nền Windows. Điều này tạo ra những trở ngại không cần thiết làm phức tạp việc lập trình. Visual Basic giúp ta bỏ qua những hệ lụy đó, chuyên gia lập trình có thể tự vẽ cho mình giao diện cần thiết trong ứng dụng (application) 1 cách dễ dàng và như vậy, tập trung nổ lực giải đáp các vần đề cần giải quyết trong doanh nghiệp hay kỹ thuật. Ngoài ra, còn nhiều công ty phụ phát triển thêm các khuôn mẫu (modules), công cụ (tools, controls) hay ứng dụng (application) phụ giúp dưới hình thức VBX cộng thêm vào giao diện chính càng lúc càng thêm phong phú. Khi Visual Basic phiên bản 3.0 được giới thiệu, thế giới lập trình lại thay đổi lần nữa. Kỳ này, ta có thể thiết kế các ứng dụng (application) liên hệ đến Cơ Sở Dữ Liệu (Database) trực tiếp tác động (interact) đến người dùng qua DAO (Data Access Object). Ứng dụng này thưòng gọi là ứng dụng tiền diện (front-end application) hay trực diện. Phiên bản 4.0 và 5.0 mở rộng khả năng VB nhắm đến Hệ Điều Hành Windows 95. Phiên bản 6.0 cung ứng 1 phương pháp mới nối với Cơ Sở Dữ Liệu (Database) qua sự kết hợp của ADO (Active Data Object). ADO còn giúp các chuyên gia phát triển mạng nối với Cơ Sở Dữ Liệu (Database) khi dùng Active Server Pages (ASP). Lưu ý ở đây, tất cả các khái niệm và công dụng của Modules, Tools, Controls, DAO, ADO hay ASP sẽ được từ từ trình bày trong các bài học kế. Tuy nhiên, VB phiên bản 6.0 (VB6) không cung ứng tất cả các đặc trưng của kiểu mẫu ngôn ngữ lập trình khuynh hướng đối tượng (Object Oriented Language - OOL) như các ngôn ngữ C++, Java. Thay vì cải thiện hay vá víu thêm thắc vào VB phiên bản 6.0, Microsoft đã xoá bỏ tất cả làm lại từ đầu các ngôn ngữ lập trình mới theo kiểu OOL rất hùng mạnh cho khuôn nền .NET Framework. Đó là các ngôn ngữ lập trình Visual Basic.NET và C# (gọi là C Sharp). Sau đó, nhiều ngôn ngữ lập trình khác cũng thay đổi theo tỷ như smalltalk.NET, COBOL.NET, làm Công Nghệ Tin Học trở nên phong phú hơn, đa dạng hơn. Tất cả những thay đổi này nhằm đáp ứng kịp thời sự đòi hỏi và nhu cầu phát triển cấp bách trong kỹ nghệ hiện nay. 1.2 Sơ lược về Visual Basic.NET
  5. Visual Basic.NET (VB.NET) là ngôn ngữ lập trình khuynh hướng đối tượng (Object Oriented Programming Language) do Microsoft thiết kế lại từ con số không. Visual Basic.NET (VB.NET) không kế thừa VB6 hay bổ sung, phát triển từ VB6 mà là một ngôn ngữ lập trình hoàn toàn mới trên nền Microsoft ’s .NET Framework. Do đó, nó cũng không phải là VB phiên bản 7. Thật sự, đây là ngôn ngữ lập trình mới và rất lợi hại, không những lập nền tảng vững chắc theo kiểu mẫu đối tượng như các ngôn ngữ lập trình hùng mạnh khác đã vang danh C++, Java mà còn dễ học, dễ phát triển và còn tạo mọi cơ hội hoàn hảo để giúp ta giải đáp những vấn đề khúc mắc khi lập trình. Hơn nữa, dù không khó khăn gì khi cần tham khảo, học hỏi hay đào sâu những gì xảy ra bên trong hậu trường OS, Visual Basic.NET (VB.NET) giúp ta đối phó với các phức tạp khi lập trình trên nền Windows và do đó, ta chỉ tập trung công sức vào các vấn đề liên quan đến dự án, công việc hay doanh nghiệp mà thôi. Trong khóa học này, các bạn sẽ bắt đầu làm quen với kiểu lập trình dùng Visual Basic.NET (VB.NET) và dĩ nhiên, các khái niệm và thành phần cơ bản của .NET Framework. Nếu ta để ý tên của Visual Basic.NET (VB.NET), ta thấy ngay ngôn ngữ lập trình này chuyên trị tạo ứng dụng (application) dùng trong mạng, liên mạng hay trong Internet. Tuy nhiên, khi học bất cứ một ngôn ngữ lập trình mới nào, ta cũng cần ‘tập đi trước khi tập chạy’. Do đó, ta sẽ tập trung vào việc lập trình các ứng dụng (applications) trên nền Windows và đó cũng là mục tiêu chính yếu của khóa học cơ bản Visual Basic.NET 1.3 Sơ lược về .NET .NET là tầng trung gian giữa các ứng dụng (applications) và hệ điều hành (OS). Tầng .NET cung cấp mọi dịch vụ cơ bản giúp ta tạo các công dụng mà ứng dụng (application) đòi hỏi, giống như hệ điều hành cung cấp các dịch vụ cơ bản cho ứng dụng (application), tỷ như: đọc hay viết các tập tin (files) vào dĩa cứng (hard drive), Tầng này bao gồm 1 bộ các ứng dụng (application) và hệ điều hành gọi là .NET Servers. Như vậy, .NET gần như là một bộ sưu tập (collection) các nhu liệu và khái niệm kết hợp trộn lẫn nhau làm việc nhằm tạo giải đáp các vấn đề liên quan đến thương nghiệp của ta. Trong đó: Tập hợp các đối tượng (objects) được gọi là .NET Framework và Tập hợp các dịch vụ yểm trợ mọi ngôn ngữ lập trình .NET gọi là Common Laguage Runtime (CLR). Hãy quan sát thành phần cơ bản của .NET: User Applications .NET Framework .NET Servers .NET Devices Hardware Components
  6. 1.3.1 .NET Servers Mục tiêu chính của .NET là giúp ta giảm thiểu tối đa công việc thiết kế hệ thống tin học phân tán (distributed system). Đa số công việc lập trình phức tạp đòi hỏi đều được thực hiện ở hậu phương (back end) trong các máy cung cấp dịch vụ (servers). Microsoft đã đáp ứng với bộ sưu tập ‘.NET Enterprise Servers’, bộ này chuyên trị và yểm trợ mọi đặc tính (features) hậu phương cần có cho một hệ thống tin học phân tán (distributed system). Bộ sưu tập ‘.NET Enterprise Servers’ bao gồm: Server Operationg Systems: MS Windows Server, Advanced Server và Data Center Server Clustering và Load Balancing Systems: MS Application Center, MS Cluster Server Database System: MS SQL Server (SQL đọc là sư cô, à không, ’si cồ’) E-Mail System: MS Exchange Server Data-transformation engine trên cơ sở XML: MS Biz Talk Server Accessing Legacy Systems: Host Integration Server Tất cả các máy server này cung cấp mọi dịch vụ cần thiết cho các ứng dụng (application) về .NET và là nền tảng xây dựng hệ thống Tin Học cho mọi dự án lập trình. 1.3.2 .NET Framework Đối với Visual Basic.NET (VB.NET), tất cả mọi thứ đều thay đổi tận gốc rễ. Một trong những thành phần quan trọng của .NET là .NET Framework. Đây là nền tảng cho mọi công cụ phát triển các ứng dụng (application) .NET .NET Framework bao gồm: Môi trường vận hành nền (Base Runtime Environment) Bộ sưu tập nền các loại đối tượng (a set of foundation classes) Môi trường vận hành nền (Base Runtime Environment) hoạt động giống như hệ điều hành cung cấp các dịch vụ trung gian giữa ứng dụng (application) và các thành phần phức tạp của hệ thống. Bộ sưu tập nền các loại đối tượng (a set of foundation classes) bao gồm 1 số lớn các công dụng đã soạn và kiểm tra trước, tỷ như: giao lưu với hệ thống tập tin (file system access) hay ngay cả các quy ước về mạng (Internet protocols), nhằm giảm thiểu gánh nặng lập trình cho các chuyên gia Tin Học. Do đó, việc tìm hiểu .NET Framework giúp ta lập trình dễ dàng hơn vì hầu như mọi công dụng đều đã được yểm trợ.
  7. Ta xem .NET Framework như là một tầng công dụng trừu tượng cung cấp dịch vụ trên hệ điều hành (nhìn dưới khía cạnh cung cấp dịch vụ): User Applications .NET Framework Hệ điều hành (OS) Device Drivers Harware Components (Cương liệu) Để mọi ngôn ngữ lập trình sử dụng được các dịch vụ cung cấp bởi .NET Framework, Microsoft tạo ra 1 tiêu chuẩn chung cho ngôn ngữ lập trình gọi là Common Language Specifications (CLS). Tiêu chuẩn này giúp các chương trình biên dịch (compilers) làm việc hữu hiệu. Microsoft sáng chế ra Visual Basic.NET (VB.NET), Visual C++.NET và C# (đọc là C Sharp) cho nền .NET Framework và cũng không quên phổ biến rộng rãi CLS trong Công Nghệ Tin Học giúp các ngôn ngữ lập trình khác làm việc trong nền .NET, tỷ như: COBOL.NET, Smalltalk.NET, Lưu ý ở đây, mặc dù Visual Basic.NET (VB.NET), Visual C++.NET hay C# khác nhau về syntax và các công dụng phụ thuộc nhưng tất cả đều biên dịch ra cùng 1 ngôn ngữ trung gian gọi là MSIL (Microsoft Intermediate Language) và do đó, không có ngôn ngữ lập trình .NET nào hùng mạnh hơn ngôn ngữ lập trình .NET nào. Tất cả đều bình đẳng, ‘không ai bảnh hơn ai’, việc chọn ngôn ngữ lập trình nào cũng là chuyện nhỏ, tùy ý thích lập trình viên. Cài Microsoft Visual Studio.NET Bộ Microsoft Visual Studio.NET bao gồm vừa mọi công cụ yểm trợ lập trình và ngôn ngữ lập trình .NET, tỷ như: Visual Basic.NET (VB.NET), C# (C Sharp), Visual C++.NET và Visual J#.NET Tùy ý ta chọn loại ngôn ngữ lập trình nào thích hợp để cài vào máy vi tính. Không ai cấm ta cài đủ thứ vào máy nhưng dĩ nhiên cần phải có dư chỗ trong hard drive, Microsoft Visual Studio.NET sẽ tính toán và cho ta biết khả năng chứa như thế nào. Tuy nhiên, ta có thể chỉ chọn Visual Basic.NET (VB.NET) và các ứng dụng (application) liên hệ trước, nếu cần học thêm về C# hay Visual C++.NET, ta có thể cài sau cũng được vì nếu cài toàn bộ, ta sẽ cần khoãng trên dưới 1.5 GBytes trong hard drive. Microsoft Visual Studio.NET có nhiều phiên bản khác nhau. Dưới đây, ta tạm dùng phiên bản Enterprise Architecture 2003 làm thí dụ điển hình. Tùy theo phiên bản ta có, những bước cài đặt sẽ khác nhau 1 chút nhưng trên nguyên tắc, ta phải cài đầy đủ môi trường .NET yểm trợ lập trình trước khi cài Microsoft Visual Studio.NET, tỷ như: Microsoft .NET Framework Microsoft FrontPage Web Extensions Client Microsoft Access trong bộ MS Office Professional
  8. Microsoft SQL Server - sẽ hướng dẫn cài và bố trí MS SQL Server cho khóa học trong bài Cơ Sở Dữ Liệu (Database) và các ứng dụng (application) liên hệ (Microsoft Visual Studio.NET cho biết ta cần những gì) như hình trong bước thứ 3. Bước 1: Bắt đầu với dĩa 1 của bộ Microsoft Visual Studio.NET, dĩa này tự khởi động và hiển thị Windows hướng dẫn ta cài Microsoft Visual Studio.NET Setup. Nếu CD không tự khởi động được, ta cần chạy ứng dụng ’setup.exe’ trong vị trí gốc (root directory): Chạy Windows Explorer, chọn dĩa cứng chứa Microsoft Visual Studio.NET Setup dĩa 1, nhấp đôi ứng dụng ’setup.exe’ hay Khởi động (Windows Start Menu) và chọn ‘Run’, gõ hàng chữ: ‘e:\setup.exe’ (nếu CD/DVD drive của ta là drive E).
  9. Microsoft Visual Studio.NET hiển thị 4 bước cài. Bước đầu tiên là chuẩn bị môi trường lập trình .NET với ‘Visual Studio .NET Prerequisites’: Bước 2: Nhập CD tên Microsoft Visual Studio.NET 2003 Prerequisites, chọn ‘I agree’ chấp nhận điều kiện dùng nhu liệu và nhấp Continue.
  10. Bước 3: Nhấp Install Now! để cài các ứng dụng (application) liên hệ tạo môi trường .NET. Lưu ý ở đây, Microsoft Visual Studio.NET sẽ dò tìm những ứng dụng (application) cần thiết trong máy vi tính và tùy theo mỗi máy, bảng liệt kê ứng dụng có thể khác nhau. Thí dụ ở đây cho biết máy vi tính cần 4 ứng dụng phụ thuộc như hình sau:
  11. Bước 4: Chờ cho đến khi nào Microsoft Visual Studio.NET cài xong các ứng dụng phụ thuộc, nhấp nút Done.
  12. Bước 5: Tiếp tục chọn Visual Studio.NET
  13. Bước 6: Nhập dĩa 1 vào máy và nhấp nút OK. Bước 7:
  14. Ta chọn ‘I agree’ và cung cấp Product Key trước khi nhấp nút Continue. Bước 8: Ta chỉ chọn những gì liên hệ đến Visual Basic.NET (VB.NET) cho khóa học Visual Basic.NET (VB.NET) Cơ Bản. Xóa bỏ (uncheck) ngôn ngữ lập trình Visual C++.NET, Visual C#.NET, Visual J#.NET và các ứng dụng liên hệ, tỷ như: template, documetation,
  15. Bước 9: Nhấp Install Now. Microsoft Visual Studio.NET sẽ chạy ứng dụng cài và bố trí này khoãng trên dưới 1 tiếng đồng hồ tùy theo khả năng máy vi tính.
  16. Bước 10: Nhấp Done. Microsoft Visual Studio.NET sẽ hiển thị Windows cài các thông tin phụ giúp lập trình và cả thư viện để ta tham khảo khi lập trình với Visual Basic.NET (VB.NET):
  17. Bước 11: Chọn Product Documetation và nhập dĩa 3 Microsoft Visual Studio.NET (tức dĩa 1 MSDN):
  18. Bước 12: Tiếp tục với các dĩa 2, 3 MSDN cho đến hết.
  19. Như vậy, ta sẳn sàng cho việc lập trình với Visual Basic.NET (VB.NET). Bài kế hướng dẫn sơ lược cách dùng Microsoft Visual Studio.NET Integrated Development Environment (gọi tắc là IDE) cho việc tạo các ứng dụng (application) trong nền Windows. Thật ra, ta có thể dùng Notepad để soạn mã nguồn (source code) và Visual Basic.NET compiler để chạy ứng dụng (application) mà không cần Microsoft Visual Studio.NET IDE tuy nhiên trong khóa học cơ bản, chúng tôi chọn Microsoft Visual Studio.NET để việc lập trình trở nên vui thích và hấp dẫn. Giới thiệu về MS Visual Studio.NET Bộ Microsoft Visual Studio.NET bao gồm vừa mọi công cụ yểm trợ lập trình và ngôn ngữ lập trình .NET, tỷ như: Visual Basic.NET (VB.NET), C# (C Sharp), Visual C++.NET và Visual J#.NET Một trong những công cụ quan trọng là Microsoft Visual Studio.NET Integrated Development Environment (IDE). IDE giúp ta lập trình Visual Basic.NET (VB.NET) dễ dàng, thoải mái và thích thú. IDE không những cung cấp mọi công cụ lập trình cần thiết không thể tìm thấy ở một ứng dụng (application) soạn nguồn mã thông thường bằng chữ (text editors) mà còn giúp kiểm tra nguồn mã (code checking) hay tạo giao diện Windows thích hợp và hiển thị, truy tìm các tập tin liên hệ đến dự án (project) và nhiều thứ khác nữa. Lưu ý:
  20. Khi chạy Microsoft Visual Studio.NET, ta sẽ có các giao diện tương đối khác nhau tùy theo phiên bản Microsoft Visual Studio.NET được cài trong máy vi tính. Do đó, ta cần uyển chuyển khi lập trình với các phiên bản khác nhau của Microsoft Visual Studio.NET. Vấn đề ở đây là lập trình những gì ta muốn chứ không cần phải theo sát từng chỉ thị trình bày trong khóa học này. Học để hiểu, không học để bắt chước. Sau đây, ta bắt đầu làm quen với Microsoft Visual Studio.NET IDE. 3.1 Trang Tiểu Sử (Profile Page) Microsoft Visual Studio.NET IDE là môi trường tập trung mọi công cụ cần thiết giúp việc lập trình dễ dàng. Để khởi động, chọn Start, Programs, thực đơn Microsoft Visual Studio.NET 2003 và ứng dụng (application) Microsoft Visual Studio.NET 2003. Chọn phần My Profile Chọn Profile là Visual Basic Developer vì khóa này chuyên trị Visual Basic.NET (VB.NET) Microsoft Visual Studio.NET sẽ hiển thị Visual Basic 6 trong hộp chữ Keyboard Scheme và ngay cả trong hộp Windows Layout. Bố trí này giúp tổ chức các cửa sổ trong IDE như các phiên bản trước của Microsoft Visual Studio. Trong khóa này, ta chọn Visual Studio Default. Bố trí gạn lọc giúp đỡ dành riêng cho ngôn ngữ lập trình Visual Basic.NET (VB.NET) trong hộp Help Filter. Internal Help hiển thị các thông tin ngay trong cùng một IDE window, trong khi External hiển thị thông tin trong 1 window riêng biệt. Ở phần Startup, chọn Show Start Page
  21. 3.2 Trang Dự Án (Projects Page) Đây là chổ tạo dự án mới hay mở dự án đã lập trình để sửa đổi. Ta chọn New Project để tìm hiểu thêm môi trường lập trình dùng Microsoft Visual Studio.NET
  22. Ta nhấp nút New Project để hiển thị bảng liệt kê các khuôn mẫu cho ứng dụng (application). Chọn Visual Basic Project trong window Project Types Chọn Windows Application trong bảng Template Đặt tên dự án là Welcome. Lưu ý ở đây, tên của dự án cũng là tên ngăn chứa (folder) chứa phụ dự trữ dự án. Thí dụ ta nhấp nút Browse để tạo 1 ngăn chứa (folder) tên Dev ở dĩa D, Microsoft Visual Studio.NET hiển thị D:\Dev ở hộp Location nhưng project sẽ được tạo và chứa ở ngăn chứa (folder) D:\Dev\Welcome (để ý hàng phía trên phần hiển thị các nút Less, OK, ta thấy hàng chữ: ‘Project will be created at D:\Dev\Welcome) Nhấp OK
  23. Microsoft Visual Studio.NET IDE khởi động dự án mới trong phương thức thiết kế (Design Mode):
  24. 3.3 Thực đơn và thanh công cụ (Menu và Tool Bar) Trước khi đào sâu vào cách tạo ứng dụng (application) với Microsoft Visual Studio.NET IDE, thiết tưởng ta cũng cần tim hiểu sơ các thực đơn (menu) và công cụ phụ trợ lập trình như sau: 3.3.1 Thực đơn chính (Main Menu) Thực đơn (menu) của Microsoft Visual Studio.NET IDE ‘biến hóa’ tùy theo công việc đang làm nhưng tổng quát, thực đơn (menu) chính hiển thị bao gồm: File
  25. Tiêu chuẩn chung cho mọi ứng dụng (application) trong nền Windows. File dùng để mở (open) hay đóng (close) các tập tin (files) hay dự án (project). Edit Edit cung cấp các chọn lựa khi soạn nguồn mã và dùng các công cụ lập trình, tỷ như: Undo, Redo, Cut, Copy, Paste và Delete View View cung cấp sư chọn lựa hiển thị các Windows tạo môi trường của IDE, tỷ như: Solution Explorer, Properties, Output, Tool Box, Server Explorer. Nếu ta để ý sẽ thấy các Windows này thường nằm 2 bên hoặc bên dưới window thiết kế Form hay soạn nguồn mã.Các windows này cũng có thể hiển lộ hay thu kín lại nhường chổ cho window thiết kế được rộng rãi. Project Dùng để quản lý dự án (project) bằng cách thêm vào hay xóa bỏ các tập tin liên hệ. Build Một lựa chọn quan trọng trong thực đơn là Build cho phép ta xây dựng và chạy ứng dụng (application) 1 cách độc lập bên ngoài IDE. Debug Debug không những giúp phương tiện rà tìm các lỗi lập trình trong môi trường IDE mà còn giúp kiểm tra từng bước một các nguồn mã trong dự án (project). Data Giúp ta nối và sử dụng dữ kiện hay thông tin trong Cơ Sở Dữ Liệu (Database). Tools Chứa các công cụ bố trí Microsoft Visual Studio.NET IDE. Windows Tiêu chuẩn chung dùng quản lý mọi windows trong IDE. Help Cung cấp nối yêu cầu giúp đỡ với Microsoft Visual Studio.NET documentation hay từ mạng Internet.
  26. 3.3.2 Thanh công cụ (Toolbars) Cách dùng thanh công cụ sẽ được hướng dẫn tùy từng dự án (project). Tuy nhiên, 1 cách tổng quát, thanh công cụ mặc định (default) bao gồm như sau (theo thứ tự từ trái qua phải): New Project Add Item Open File Save (lưu trữ form hay module đang dùng) Save All (lưu trữ mọi forms, modules, đang dùng hay đang mở) Cut Copy Paste (sẽ hiển lộ sau khi ta nhấp nút Cut hay Copy) Undo Redo Navigate Backward (lướt lui) Navigate Forwards (lướt tới) Nút Start để chạy thử ứng dụng trong IDE Build Configuration (bố trí xây dựng ứng dụng) trong IDE. Ở đây, cho ta biết bố trí hiện dùng là Debug Truy tìm tập tin (Find in files) và cuối cùng, nút Toolbar Options để hiển thị thêm các công cụ phụ thuộc khác. 3.3.3 Hộp công cụ (Toolbox) Nhấp đơn hộp công cụ nằm phía bên tay trái window thiết kế như hình sau. Hộp công cụ bao gồm:
  27. Hộp Data Hộp Components Hộp Windows Forms Hộp Clipboard Ring Hộp Gerneral Chương trình đầu tiên Tiếp theo bài 3, sau khi cài thành công bộ Microsoft Visual Studio.NET, ta bắt đầu với dự án (project) đầu tiên để chào mừng các bạn đến với khóa học cơ bản Visual Basic.NET. Trong khi thiết kế, ta sẽ nhân cơ hội này bàn thêm về các công cụ trợ giúp lập trình.
  28. Như ta đã biết, dự án (project) Welcome được lưu trữ trong ngăn chứa D:\Dev\Welcome như hình sau: Nhấp nút OK sẽ mở ra window dùng thiết kế một form trong nền Windows. 4.1 Dự án (project) Welcome Bước 1: Microsoft Visual Studio.NET IDE khởi động dự án mới trong phương thức thiết kế (Design Mode) với 1 Windows Form nằm ở giữa, tên mặc định là Form1.vb
  29. Nếu ta không lảm gì cả mà chỉ lưu trữ bằng cách chọn File, Save All và kiểm tra ngăn chứa (folder) D:\Dev\Welcome, ta thấy Microsoft Visual Studio.NET tự động tạo ra và lưu trữ 1 số tập tin cần thiết trong đó có các tập tin Welcome.sln và Welcome.vbproj dùng đề quản lý dự án (project). Ngăn chứa (folder) bin là nơi lưu trữ dự án dưới hình thức ứng dụng (application) với phần nối thêm là .EXE (tỷ như: Welcome.exe) khi ta xây dựng dự án thành 1 ứng dụng (application) chạy ngoài IDE.
  30. Bước 2: Đổi tên Form1.vb thành Welcome.vb bằng cách nhấp vào tên form ở Solution Explorer Window (nằm phiá trên góc tay phải) hay ở hộp chữ File Name trong Properties Windows (phiá dưới Solution Explorer) Lưu ý: 1 solution có thể gồm nhiều dự án (project), 1 dự án (project) có thể gồm nhiều Forms khác nhau.
  31. Lưu ý: Khi đổi tên Form mặc định như vậy, ta phải bố trí Startup Object với tên Welcome là object ta muốn khởi động đầu tiên khi chạy dự án Welcome. Nếu không, dự án vẫn dùng Form1 và sẽ tạo lỗi vì Form1 đã đổi tên không còn hiện diện nữa. Đổi tên Form1 bằng cách chọn dự án Welcome trong Solution Explorer và chọn Properties. Chọn Welcome trong hộp chữ combo Startup Object. Nhấp nút Apply, OK Bước 3: Nhấp vào Form hiển thị trong phần thiết kế.
  32. Properties Window liên hệ thay đổi và hiển thị bảng đặc tính (properties) của Form. Bảng này sắp xếp và phân loại các đặc tính ra thành: Accessibility Appearance Behaviour nhằm giúp ta dể dàng truy cập đặc tính cần đến. Ta đổi tựa đề của Form từ Form1 ra Welcome bằng cách chọn đặc tính (property) Text và gỏ chữ Welcome.
  33. Tới đây, ta có thể nhấp nút Start để kiểm tra tựa đề của Form đã thay đổi theo ý hay không? Nút Start nằm ở Toolbar:
  34. Như vậy, ta thấy Microsoft Visual Studio.NET IDE giúp ta tạo 1 Form dễ dàng như ‘ăn cơm tấm bì sườn chả’. 4.2 Toolbox Bước 4: Từ Form ‘Welcome’ này, ta sẽ gắn: 1 nhãn hiệu (label) mang tựa ‘Enter your name:” 1 hộp chữ để nhận dữ kiện từ user 1 nút mệnh lệnh ‘Click Me’ hiển thị hàng chữ ‘Chào Mừng’ 1 nút mệnh lệnh ‘Exit’ chấm dứt ứng dụng (application).
  35. Mở Toolbox Window (nằm phía trái window thiết kế Form) và chọn công cụ Label. Hộp công cụ này chứa mọi đối tượng dùng tạo giao diện cũng như các công cụ phụ thuộc trong nền Windows. Dùng mouse kéo lê (click and drag) 1 hình chữ nhật vừa đủ rộng nhằm chứa hàng chữ ‘Enter your name:’. Nếu cần ta có thể điều chỉnh độ dài hay độ cao nhãn hiệu tùy ý.
  36. Nhấp hộp chữ Text ở Properties Window và gỏ hàng chữ Enter your name:
  37. Đặt tên nhãn hiệu này là lblName trong hộp chữ (Name) ở Properties Window: Bước 5:
  38. Lập lại thao tác này cho các công cụ sau đây bằng cách chọn công cụ trong Toolbox và sau đó vẽ (click and drag) giao diện trên Form: Công cụ Tên (Name) Text Textbox tbxName (enter your name here) Button 1 btnClickMe Click Me Button 2 btnExit Exit Cuối cùng, ta sẽ có 1 giao diện cho ứng dụng (application) Welcome như sau: 4.3 Name Convention
  39. Thông thường, công ty nào cũng có tiêu chuẩn chung về danh pháp cho các hệ thống tin học, máy vi tính, thiết bị, công cụ hay nguồn mã, Để thống nhất lập trình với Visual Basic.NET (VB.NET) trong khóa học, ta có thể ấn định danh pháp cho các công cụ lập trình như sau: Công cụ Tên đính kèm phía trước Thí dụ: Button ComboBox CheckBox Label ListBox MainMenu RadioButton PictureBox TextBox btn hoặc cmd cbo chk lbl lst mnu rdb pic tbx btnClickMe, cmdClickMe cboContactName chkOver50 lblTitle lstProduct mnuExtraOption rdbYes picVovisoft tbxName Như vậy, khi viết ngưồn mã, mỗi lần gặp công cụ có tên đính kèm phiá trước là tbx, ta biết ngay đó là Textbox. 4.4 Code Editor Bước 6: Sau khi hoàn tất phần giao diện cho ứng dụng (application), ta cần thêm nguồn mã để xử lý các tình huống đặc biệt, tỷ như: nếu user nhấp vào nút Click Me thì chuyện gì sẽ xãy ra? Code Editor sẽ giúp ta chuẩn bị nguồn mã. Thật vậy, khi ta nhấp đôi vào nút Click Me, Code Editor hiển thị nguồn mã tạo sẵn tổng quát cho mọi giao diện Windows và cho
  40. phép ta thêm mã vào phần btnClickMe_Click. Lưu ý ở đây, Click là biến cố mặc định khi user nhấp nút Click Me, Microsoft Visual Studio.NET chuẩn bị dùm ta 1 Subroutine để xử lý biến cố đó. Lưu ý chỉ gỏ phần mã in đậm như sau: Private Sub btnClickMe_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClickMe.Click ‘Display a greeting box MessageBox.Show(”Chào mừng ” & tbxName.Text & _ ” đến với Khóa Học Cơ Bản Visual Basic.NET”, “Welcome”) End Sub Nhấp tab Welcome.vb [Design]* (kế bên tab Welcome.vb * có hình con trõ) để trở lại phần thiết kế Form, nhấp đôi nút Exit và gỏ mã: ‘End the program Me.Dispose()
  41. Bước 7: Nhấp nút Run để chạy thử ứng dụng trong môi trường IDE. Nhập tên vào hộp chữ dưới hàng ‘Enter your name:’
  42. Khi nhấp nút Click Me, ứng dụng sẽ xử lý biến cố nhấp đó và hiển thị 1 window chào mừng: Như vậy, ta đã hoàn thành sứ mạng tạo 1 ứng dụng (application) đầu tiên dùng Microsoft Visual Studio.NET với ngôn ngữ lập trình Visual Basic.NET (VB.NET). Chúc mừng các bạn đã khai phá một chân trời mới về lập trình với .NET và trở thành Chuyên Gia Tin Học .NET =8-) Dùng Microsoft Visual Studio.NET Trong bài 4, ta đã thiết kế và chạy thử chương trình đầu tiên trong phạm vi Visual Studio.NET IDE. Hôm nay, ta đào sâu thêm về phương pháp làm việc với Visual Studio.NET, các ứng dụng (application) cùng các công cụ yểm trợ đã thiết kế sẳn cho việc lập trình Visual Basic.NET (VB.NET) qua một ứng dụng (application) tập làm toán cộng (tạm đặt tên là Adder). Bài tập: Dự án mới nhằm tạo ứng dụng (application) Adder trong đó ta sẽ làm một bài toán cộng 2 con số ngẫu nhiên và kiểm tra kết quả xem đúng hay sai. Ứng dụng cũng cho phép lập đi lập lại bài toán nhiều lần, do đó rất tiện dụng cho việc chuẩn bị và kiểm tra các bài tập về toán cho các trẻ em học toán. Bài tập này cũng tạo cơ hội cho ta làm quen với việc sử dụng môi trường IDE của MS Visual Studio.NET Bước 1: Tạo dự án mới 5.1 Trang khởi đầu (Start Page) Nhắc lại, khi khởi động Microsoft Visual Studio.NET, ta có một giao diện tương tư như trang web (Visual Studio Home Page/Start Page) để thiết kế việc bố trí mặc định cho môi trường lập trình MS Visual Studio.NET IDE (hay còn gọi là profile) và sau đó, chọn Get Started trang liệt kê các dự án, cho phép ta mở các dự án đã thiết kế hay khởi đầu một dự án mới (New Project). Tạo dự án mới như sau: Project Type: chọn Visual Basic Projects Templates: chọn Windows Application Name = Adder Location = D:\Dev Ta để ý, dự án Adder được tạo và lưu trữ dưới ngăn chứa D:\Dev\Adder
  43. Nhấp OK. MS Visual Studio.NET tạo một window mặc định Form1.vb ) với Solution Adder và Project Adder. Bước 2: Phân biệt Solution và Project 5.2 Solution và Project Sử dụng Solution Explorer giống như Windows Explorer trong đó MS Visual Studio.NET quản lý và tổ chức các tập tin thành từng nhóm nhỏ theo hệ thống: Phương Án (Solutions), Dự Án (Projects) rồi tới các tập tin liên hệ (Files). Như vậy, ta phân biệt một phương án có thể có nhiều dự án khác nhau, một dự án có thể có nhiều ứng dụng (application) và các thành phần (components) phụ thuộc và mỗi ứng dụng (application) như vậy đều có nhiều tập tin dùng thiết kế ứng dụng (application) đó, tỷ như: classes, forms, các references liên hệ, như trong hình dưới đây:
  44. Bước 3: Đậu bãi (Docking) và Trôi Nổi (Undocking) Mọi windows đều có thể di chuyển trôi nổi (undocking) trong môi trường IDE nhằm mục đích tạo mặt trống hay giao diện trống (space) cho việc thiết kế các forms được rộng rãi thoải mái. Ta tập docking hay undocking bằng cách dùng mouse kéo lê phần tiêu đề (Title Section) của windows Solution Explorer từ phiá bên phải IDE vào chính giữa phần thiết kế (Design Section):
  45. Ta nhận thấy Properties Window mở rộng và lấp đầy khoảng trống phiá bên phải IDE. Ta cũng có thể mở nhiều windows khác nhau qua thực đơn View là thực đơn thứ 3 trong phần thực đơn chính của IDE và tập docking hay undocking. Khi cho các windows này đậu bãi trở lại (thí dụ với Solution Window), ta cần khéo léo sao cho khung window vào đúng vị trí phiá trên của Properties Windows và trong khuôn khổ của Properties Windows, nếu không ta sẽ có 2 windows nằm chồng lên nhau chứ không phải một trên một dưới như hình bên trên.
  46. Bước 4: Dấu 1 window (Hide) hay dấu mọi windows (Hide All) Ta có thể dấu hay mở các windows phụ bằng cách chọn Hide (nút kế bên nút Đóng - Close) như hình của Toolbox window sau đây. Nút Hide có 2 hình chỉ 2 trạng thái khác nhau: Hình giống như 1 cây ghim giấy chỉ xuống tượng trưng cho việc ghim window đó để tham khảo Hình cây ghim giấy nằm ngang để dấu window này 1 cách tự động khi ta không tham
  47. khảo nữa. Ta cũng có thể dấu toàn bộ các windows với sự chọn Window, Auto Hide All:
  48. Ta sẽ thấy mọi windows đều thu gọn qua 2 bên, dành chỗ trống rộng rãi cho phần thiết kế:
  49. Bước 5: Hộp công cụ (Toolbox) và Server Explorer Bên trái phần thiết kế (Design Window) ta có hộp công cụ (Toolbox) và Server Explorer. Các windows này cũng đóng mở tự động hay dấu đi (thu gọn lại) về phiá tay trái. Hộp công cụ gồm có nhiều bảng khác nhau từ: Windows Forms: chứa các công cụ liên hệ đến việc tạo Forms Components: các thành phần yểm trợ Data: các ứng dụng liên quan đến việc nối vào Cơ Sở Dữ Liệu (Database) gồm đủ loại, tỷ như: MS Access, SQL Server, Oracle Server hay các ODBC (Open Database Connection) tương đương kể cả các mệnh lệnh dùng với ngôn ngữ lập trình database tiêu
  50. chuẩn SQL. Hình đặc trưng cho Components: Hình đặc trưng cho Data:
  51. Hình đặc trưng cho Server Explorer: cho phép ta quản lý, bảo trì, kiểm tra các nối vào Cơ Sở Dữ Liệu (Database) trong máy vi tính cục bộ hay liên mạng, chẳng hạn như trong hình, ta nhận thấy Cơ Sở Dữ Liệu (Database) sử dụng là SQL Server nằm trong máy cung cấp dịch vụ Sydney. Server Explorer cũng là nơi ta tạo hay xóa bỏ Cơ Sở Dữ Liệu (Database), các tables, các mối liên hệ (relationships), các Store Procedures hay các đồ hình về Database (Database Diagrams) cho bản báo cáo (Reports) hay tham khảo (References). Ta sẽ tham khảo chi tiết hơn ở các bài học về Cơ Sở Dữ Liệu (Database).
  52. Bước 7: Other windows Ngoài ra còn nhiều windows yểm trợ khác, tỷ như: Macro Explorer Command Window Output Window Class View Object Window (vân vân)
  53. 5.3 Class View Nhắc lại khi bàn về Solution Explorer, một dự án có thể gồm nhiều tập tin liên hệ. Các tập tin này dính dáng đến việc tạo ra classes nhưng ta không thấy chỗ nào nói về các khái niệm đó trong class, tỷ như: class Adder trong dự án Adder. Class View window được thiết kế cho phép ta thấy cấu trúc cơ bản của dự án mặc dù có thể ta không hoặc chưa dùng đến. Trong Class View, ta có thể mở rộng (expand) hay thu gọn (collapse) phần hiển thị các objects qua các dấu + hay - , như vậy tạo cơ hội tham khảo chi tiết các thành phần xác định ra class.
  54. 5.4 Object Window Nhớ là mọi thứ trong lập trình với Visual Basic.NET (VB.NET) đều là Objects và đó là thành phần cơ bản của .NET Framework. Mọi objects đều có các đặc tính (property) và methods chuyên biệt tạo dựng và yểm trợ chính nó, nhưng làm sao ta biết là gì? ở đâu mà ra? đi đâu mà tìm? May mà có em , à quên, có Object Browser nên ‘đời còn dễ thương’. Object Browser thiết kế để yểm trợ ta lập trình với objects. Ta có thể truy cập objects qua các catalogs khác nhau dẫn đến việc tham khảo từng các object một trong thư viện .NET Framework kể cả các object do dự án của ta tạo ra.
  55. 5.5 Toolbar MS Visual Studio.NET cung cấp đủ loại toolbar yểm trợ trong việc tạo giao diện hay cả việc lập trình. Chọn View, Toolbars rồi chọn thanh công cụ yểm trợ tùy ý khi pháp triển dự án, tỷ như: Table HTML Editor Image Editor
  56. (vân vân) 5.6 Trợ giúp (Help) Một ứng dụng (application) quan trọng khác trong IDE là Dynamic Help. Từ thực đơn Help, chọn Dynamic Help mở ứng dụng trợ giúp này mỗi khi ta cần truy cập cú pháp (syntax) của các mệnh lệnh liên hệ, các công dụng (functions), các đối tượng (objects) cần trong dự án, vân vân Dynamic Help cũng trình bày các thí dụ điển hình mà ta có thể áp dụng linh động vào dự án:
  57. Bước 8:
  58. Sau khi đi dạo một vòng làm quen với IDE của MS Visual Studio.NET, ta tiếp tục dự án Adder với giao diện sau: Dùng (bằng cách kéo lê - Click and Drag hay Click and Draw) các thiết bị trong hộp công cụ (Toolbox) vào Form1 và bố trí như sau: Lưu ý, ở đây chỉ hướng dẫn và trình bày chi tiết phương pháp dùng và bố trí đặc tính (property) của 1 thiết bị trong hộp công cụ mà thôi. Sau đó, các bạn áp dụng tương tự như vậy với các thiết bị khác. Thí dụ dùng và trình bày tiêu đề (lable) Toán Cộng như sau: Nhấp hộp công cụ (phía bên trái IDE) và nhấp đơn thiết bị Label (Click ) Vẽ ( and Draw) 1 hình chữ nhật trong mặt trống của Form
  59. Chọn Properties Window của Label (để ý label có được chọn hay không, nếu không, ta có thể mở nhằm properties window của một thiết bị nào khác chứ không phải thiết bị ta muốn bố trí) Chọn đặc tính (property) Text va gõ hàng chữ Toán Cộng (có thể dùng ứng dụng VPSKeys với bố trí Unicode hoặc các ứng dụng gõ tiếng Việt tương đương) Chọn và mở rộng đặc tính (property) Fonts và thay đổi cở chữ và màu tùy ý. Chọn Name và đặt tên theo tiêu chuẩn định trước, tỷ như: lblTitle với lbl là chữ viết tắc của label cộng với tên của tiêu đề. Kéo lê (Click and Drag) thiết bị này đến vị trí tùy ý trong Form, tỷ như: vị trí phía trên bên trái như hình trình bày. Áp dụng linh động hướng dẫn trên cho các thiết bị textbox, button, như sau:
  60. Công cụ Bố trí đặc tính (property) textbox1 Name = TbxNumber1 Text = (để trống ở đây) Text Align = Right BackColor = (tùy ý) textbox2 Name = TbxNumber2 Text = (để trống ở đây) Text Align = Right BackColor = (tùy ý) textbox3 Name = TbxNumber1 Text = (để trống ở đây) Text Align = Right BackColor = (tùy ý) ForeColor = Red button1 Name = cmdMore Text = More button2 Name = cmdCheckIt Text = Check It label2 Name = lblResult Text = Answers Status TextAlign = MiddleCenter Bước 9: Tuy ta có thể giữ tên mặc định Form1 trong dự án Adder nhưng có vẻ không chuyên nghiệp bằng đổi tên mặc định Form1 đó thành tên Adder thích hợp với dự án. Lưu ý: khi đổi tên Form mặc định như vậy, ta phải bố trí Startup Object với tên Adder là object ta muốn khởi động đầu tiên khi chạy dự án Adder. Nếu không, dự án vẫn dùng Form1 và sẽ tạo lỗi vì Form1 đã đổi tên không còn hiện diện nữa. Đổi tên Form1 bằng cách chọn dự án Adder trong Solution Explorer và chọn Properties. Chọn Adder trong hộp chữ combo Startup Object. Nhấp nút Apply, OK
  61. Bước 10: 5.7 Lập trình theo kiểu mẫu Event-Driven Khi dùng MS Visual Studio.NET làm môi trường lập trình với Visual Basic.NET (VB.NET), thường thường ta tạo một giao diện (dưới hình thức Form) trước và sau đó gài nguồn mã vào, tỷ như: nhấp đôi nút Check It để mở tập tin chứa nguồn mã với tên mặc định là tên của dự án. Trước tiên, MS Visual Studio.NET sẽ tạo nguồn mã mặc định với các công dụng cơ bản yểm trợ giao diện ta vừa thiết kế (Form Adder) và ta sẽ cộng thêm mã để bố trí và kế hoạch sẵn mọi tình huống có thể xảy ra hầu hành động kịp thời tùy theo biến cố mà Form nhận được (thí dụ: người dùng nhấn vào nút Check It để kiểm tra bài toán cộng trong ứng dụng Adder). Kiểu chuẩn bị với nguồn mạ định trước như vậy được gọi là lập trình theo kiểu mẫu Event-Driven. Bây giờ, ta bắt đầu thêm nguồn mã xử lý biến cố Click của nút Check It như sau: Nhấp đôi vào Form, IDE sẽ dùng Designer Code Generator tạo phần nguồn mã với tập tin Adder.vb Nguồn mã bắt đầu với Public Class Adder. Nhấp vào tab mang tên Adder.vb [Design] để trở về giao diện Form Adder. (Lưu ý hình con trỏ chỉ các tab trong IDE từ Satrt Page, Adder.vb [Design] và Adder.vb ) Nhấp đôi vào nút Check It để mở phần nguồn mã của nút này với biến cố Click Gỏ nguồn mã sau đây phía dưới hàng Private Sub cmdCheckIt_Click (nhắc lại,
  62. cmdCheckIt là tên ta đặt cho nút Check It trong phần giao diện Form Adder): mã này kiểm tra xem ta đưa 1 giải đáp với con số hay chữ vào hộp chữ tbxResult? Nếu là con số, mã sẽ so sánh con số đó với kết quả bài toán cộng và báo cáo lại trong phần nhản hiệu lblResult. Dim resultNumber As Integer If IsNumeric(tbxResult.Text) Then resultNumber = CInt(tbxNumber1.Text) + CInt(tbxNumber2.Text) If CInt(tbxResult.Text) = resultNumber Then lblResult.Text = “Correct” Else lblResult.Text = “Wrong” End If Else tbxResult.Text = “” lblResult.Text = “Answer Status” MsgBox(”Please enter your answer in number. Thanks”, MsgBoxStyle.Information, “Warning”) End If Tương tự, trở về phần thiết kế Form: Nhấp đôi vào chổ trống của Form cho nguồn mã Adder_Load Nhấp đôi vào nút More cho nguồn mã cmdMore_Click Gỏ nguồn mã cho Subroutine (sẽ học cách tạo Subroutine và Function ở các bài kế) SetRandomNumber. Mã ở đây tạo 2 con số ngẫu nhiên từ 1 đến 10000 cho bài toán cộng khi chạy ứng dụng Adder trong phần Adder_Load và trong nút More. Private Sub Adder_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load SetRandomNumber() End Sub Private Sub cmdMore_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdMore.Click SetRandomNumber() End Sub Private Sub SetRandomNumber() Dim firstNumber, secondNumber As Integer Randomize() firstNumber = CInt(Int((10000 - 0 + 1) * Rnd() + 0)) secondNumber = CInt(Int((10000 - 0 + 1) * Rnd() + 0)) tbxNumber1.Text = firstNumber
  63. tbxNumber2.Text = secondNumber End Sub Hình đặc trưng nguồn mã của dự án Adder: Bước 11: Nhấp nút Run (như hình dưới đây) để chạy ứng dụng (application) Adder trong môi trường IDE:
  64. Ta thấy bài toán cộng được hình thành với 2 số ngẫu nhiên và chờ ta gỏ vào giải đáp trong hộp chữ kế bên bút Check It. Sau đó, ta nhấp nút này để kiểm tra kết quả. Khi nào muốn làm lại bài toán cộng này, nhấp nút More: Lưu ý: MS Visual Studio.NET tạo một executable file mặc định là Adder.exe dưới một ngăn chứa cấp dưới (subfolder) BIN. Tập tin này là ứng dụng Adder tạo ra bởi dự án Adder. Bước 12: Lưu trữ mọi tập tin với thực đơn File, Save All
  65. Viêt Nhu liệu Khi bắt đầu viết bất cứ nhu liệu gì, ta cần trang bị cho ta một số nguyên tắc, một số khái niệm cơ bản về Công Nghệ Tin Học để dễ lập trình, trao đổi, bảo trì và nhất là có thể dễ dàng phát triển hay thêm thắt các công dụng trong nhu liệu. Trong bài học hôm nay, ta bàn về: Sự khác biệt giữa thông tin và dữ kiện Phương thức phát triển và giải đáp các vấn đề trong nhu liệu Biến số (Variables) Comments và chỗ trống
  66. Các loại dữ kiện (Data Type) Hằng Số (Constant) Tên quy ước (Naming Conventions) Methods Scope 6.1 Sự khác biệt giữa thông tin (Information)và dữ kiện (Data) Thông tin (Information) diễn tả một sự việc nào đó dưới nhiều hình thức khác nhau, tỷ như: tin tức trên báo, tin nhận được từ ký giả viết tay trên giấy, sự cố báo cáo trên TV, khác với dữ kiện (Data) dùng diển tả thông tin đã được kiểm tra, đối chiếu, so sánh, xếp loại theo thứ tự và quan trọng hơn cả là được tổ chức để dùng trong một ứng dụng (application) điện toán. Do đó, thông tin được ghi chú ở các sổ tay không thể là dữ kiện mà một ứng dụng (application) nào đó có thể dùng được. Nếu muốn dùng thông tin như vậy, ta phải chuyển đổi qua hình thức dữ kiện, tỷ như: rà (scan) hay nhập (enter) vào 1 trang kế toán của MS Excel để có thể phân tích kết quả thu lượm. 6.2 Phương thức phát triển và giải đáp các vấn đề trong nhu liệu Mặc dù, Công Nghệ Tin Học đã phát triển và thay đổi nhanh chóng nhưng tiến trình xử lý và phát triển nhu liệu hầu như vẫn ‘trước sau như một’, nghĩa là không đổi gì cả. Ở đây, ta muốn nói đến phương thức cơ bản cho phát triển và giải đáp vấn đề cho việc lập trình. Anh Ngữ gọi là Algorithm. Algorithm đó là: Trước khi ta viết nhu liệu giải quyết một vần đề nào đó, ta phải phân ra (phân tích) thành những phần nhỏ hơn tùy từng trường hợp một để diển tả cách giải quyết vấn đề và sau cùng tổng hợp lại. Tóm lại, đây là một phương thức phân tích tổng hợp. Nếu không áp dụng phương thức này, vấn đề xem có vẻ như ‘rối tung lên’ không thể giải quyết được. Bây giờ, tưởng tượng bạn đang làm việc cho một ông ty viển thông. Vấn đề đặt ra là làm sao cung cấp được hoá đơn tính tiền điện thoại mà khách hành đã dùng. Ta phải bắt đầu từ đâu? Làm gì truớc, làm gì sau? Hoá đơn như thế nào? Phương thức cần có là chia vấn đề thành những phần việc nhỏ và truy cập cách giải quyết phần việc đó, giả dụ như: Vào mỗi đầu tháng, ta sẽ cung cấp hoá đơn đến mỗi khách hàng. Cho mỗi khách hành, ta cần một bảng liệt kê các cú gọi đi trong tháng. Ta cần biết khoãng thời gian dùng cho mỗi cú điện thoại? lúc gọi? trong tuần hay cuối tuần? ban ngày hay ban đêm? để tính toán chi phí mỗi cú điện thoại. Trong từng hoá đơn một, ta tổng kết chi phí các cú điện thoại (dưới tiêu đề nội địa, ngoại quốc hay mobile, ). Trong các dịp lễ lạc hay khuyến mãi, bao nhiêu phần trăm hạ giá?
  67. Ta cần cộng thêm tiền thuế bán dịch vụ cho mỗi hoá đơn. Sau khi tổng hợp lại, in ra và gởi hoá đơn đến khách hàng. Như vậy, ta thấy phân tích để giải quyết vấn đề khi viết nhu liệu, ta hoàn toàn không để ý hay làm gì dính dáng tới ngôn ngữ lập trình. Thật sự, đây là mấu chốt quan trọng nhất của một chuyên gia lập trình chuyên nghiệp. Nếu không, ta chỉ là thiên lôi, ai sai đâu thì đánh đó, không thể tự mình đưa giải đáp cho các trở ngại nêu ra trong khi chuẩn bị thiết kế và phát triển một ứng dụng (application). Nên làm chuyên gia lập trình chứ đừng ngừng lại ở ‘người viết mã’ mà thôi. Việc còn lại là chọn cho mình một ngôn ngữ lập trình hùng mạnh đủ khả năng phát triển các giải đáp cho mọi trở ngại trong nhu liệu. ‘May mà có em’: Visual Basic.NET (VB.NET). Một cách tổng quát, ngôn ngữ lập trình chỉ gồm các biến số (variables) và cách thức (methods). Vấn đề là ta vận dụng như thế nào trong khi viết nhu liệu. Ngôn ngữ lập trình dù phức tạp đến đâu thì cũng được xây dựng trên các biến số và cách thức mà thôi. Do đó, ta không thể so sánh ngôn ngữ lập trình này mạnh hơn hay yếu hơn, nhất là các ngôn ngữ lập trình .NET như Visual Basic.NET (VB.NET) hay C# hay C++. Trên thực tế, các ngôn ngữ lập trình .NET đều được biên dịch ra một ngôn ngữ trung gian là MSIL (Microsoft Intermediate Language). Nhớ trở thành một chuyên gia lập trình (Programmer) chứ đừng là chuyên gia lập trình Visual Basic.NET hay chuyên gia lập trình C#, Chỉ là Chuyên Gia Lập Trình thôi, ngôn ngữ lập trình chỉ là công cụ phụ giúp công việc của ta và chắc chắn sẽ thay đổi trong tương lai. Tội nghiệp, nhiều người cứ cho mình chỉ là chuyên gia lập trình VB6 chẳng hạn, và do suy nghĩ chưa tới hay chưa chính chắn như vậy, đã không thể học tiếp tục hay chuyển sang Visual Basic.NET làm uổng phí bao công sức và tài nguyên đào tạo trước đây. 6.3 Biến số (Variables) Biến số (Variable) dùng chứa một giá trị nào đó trong phương thức lập trình (algorithm). Ta có thể làm một quyết định dựa trên giá trị đó, tỷ như: giá trị đó bằng 9 không? hay nhỏ hơn 7? hay có thể thực hiện các thuật toán trên giá trị đó như cộng, trừ, nhân, chia, Quan sát phương thức lập trình (algorithm) sau: Tạo 1 biến số đặt tên là ‘count’ Trong biến số count, chứa giá trị 35 Cộng thêm 1 vào biến số count Hiển thị giá trị của biến số count trên màn hình (monitor) Như vậy, ta phải tuyên bố biến số (variables) count, cho vào giá trị 35, cộng 1 thành 36 và hiển thị số 36 trên màn hình. Trong Visual Basic.NET (VB.NET), dùng Dim và Redim tuyên bố biến số như sau:
  68. Dim myVariable As Long Dim myArray (5) As Integer Dim yourArray ( ) As String = {”Dần”, “Thân”, “Tỵ”, “Hợi”, “Tứ Hành Xung”} Redim myArray (10) As Integer Giải thích: Dùng Dim tuyên bố (hay tuyên cáo) biến số myVariable thuộc loại dữ kiện Long. Redim để tuyên bố lại, nhất là khi thay đổi cở của Array. myArray (5) là một chuỗi biến số gồm 6 số bắt đầu từ số 0 với myARray (0), myArray (1), . đến myArray (5) loại dữ kiện số nguyên (Integer). yourArray ( ) dùng giá trị bên trong dấu { } để xác định cở (ở đây, cở = 5, chỉ số hay ‘index’ bắt đầu từ số 0, 1, 2, 3, 4). Array: Array dùng chỉ số (index) để lưu trữ nhiều giá trị dưới cùng một tên biến số (variables), tỷ như: Dim yourArray ( ) As String = {”Dần”, “Thân”, “Tỵ”, “Hợi”, “Tứ Hành Xung”} Dim strMonths ( ) As String = {”Giêng”, “Hai”, “Ba”, “Tư”, “Năm”, “Sáu”, “Bảy”, “Tám”, “Chín”, “Mười”, “Mười Một”, “Chạp”} Dim empRecords (100) 6.4 Chú thích (Comments) và khoãng trống (Whitespace) Trình biên dịch Visual Basic.NET (VB.NET Compiler) bỏ qua không biên dịch các phần comments, do đó ta có thể chú thích thêm phần dẩn giải hay phương thức giải quyết vấn đề cho từng nguồn mã. Chuyên nghiệp nhất là ghi lại algorithm của ta để các lập trình viên khác hay cả chính ta có thể hiểu mã ta đã viết từ nhiều tháng trước. Nhớ là con người cũng ‘mau quên lạ lùng’. Trên thực tế, chính ta cũng không biết ta viết . cái gì nếu đọc lại mã sau chừng vài tháng. Trong Visual Basic.NET (VB.NET), đánh dấu nơi ghi chú thích với dấu ‘ (dấu apostrophe) , tỷ như: ‘tạo biến số count và chứa giá trị 35 Dim count As Integer count = 35 ‘cộng thêm 1 vào count count = count + 1 ‘hiển thị giá trị của count MessageBox.Show (”Value of count is now ” & count) Whitespace cũng quan trọng không kém. Việc chừa các khoãng trống như vậy nhằm cho nguồn mã được đọc dễ dàng. Thường thường, ta nên chừa một hàng trống giữa các bước
  69. trong phươn gthức lập trình (algorithm) như thí dụ trình bày ở trên, ta thấy có hàng trống sau hàng count = 35. 6.5 Loại dữ kiện (Data Types) Khi dùng biến số (variables), ta cần biết và bố trí trước biến số đó lưu trữ loại dữ kiện (data types) nào, điều này giúp ích máy vi tính xử lý tài nguyên dễ dàng hơn trong lúc chạy ứng dụng (application). Tổng quát, các loại dữ kiện (data types) bao gồm: 6.5.1 Số nguyên (Number) Loại dữ kiện Cở (Size) Range Chú thích Byte 1 byte 0 tới 255 Byte = 8 bits trong hệ thống nhị phân. Byte không yểm trợ số âm (negative number). Short 2 bytes -32,768 tới 32,768 Rất tiện lợi cho các biến số (variables) lưu trữ số nguyên cở nhỏ. Integer 4 bytes -2,147,483,648 tới 2,147,483,647 Tiêu chuẩn số nguyên. Loại dữ kiện này được máy vi tính xử lý nhanh nhất và ít tài nguyên nhất. Long 8 bytes -9,223,372,036,854,775,808 tới 9,223,372,036,854,775,808 Đây là số nguyên lớn từ -9 quintillion tới 9 quintillion (-9 x 1018 tới +9 x 1018) 6.5.2 Số thực (Decimal Number) Loại dữ kiện Cở (Size) Range Chú thích Single 4 bytes Cho số âm: -3.402823 x 10-38 tới -1.401298 x 10-45. Cho số dương: 1.401298 x 10-45 tới 3.402823 x 1038. Đây là số thực vô cùng nhỏ hay vô cùng lớn. Double 8 bytes Cho số âm: -1.79769313486231 x 10308 tới -4.94065645841247 x 10- 324. Cho số dương: 4.94065645841247 x 10-324 tới 1.79769313486231 x 10308. Double còn gọi là loại dữ kiện ‘double prescision floating point’ do có thể lưu trữ số lẻ gấp đôi loại ’single’, tức là 15 số lẻ sau ‘decimal point’. 6.5.3 Chữ và hàng chữ (hay câu) Loại dữ kiện Cở (Size) Range Chú thích Char 2 bytes Một chữ Dùng lưu trữ từng chữ một. String 10 bytes + 2 bytes cho mỗi chữ (character) Hàng chữ có thể kéo dài tới 2 tỷ (billion) chữ Dùng lưu trữ một hàng chữ hay cả nguyên một cuốn sách. 6.5.4 Các loại đơn giản khác Loại dữ kiện Cở (Size) Range Chú thích Boolean 2 bytes True hoặc False VB.NET dùng 2 bytes cho số 0 (False) và 1 (True). Date 8 bytes Từ ngày 1 tháng Giêng năm 100 tới ngày 31 tháng Chạp năm 9999 Loại dữ
  70. kiện có khả năng tính toán năm nhuần. Nếu ta cộng 1 ngày vào biến số lưu trữ ngày 28/02/2000, ta sẽ có 29/02/2000 nhưng nếu cộng cho ngày 28/02/2001, ta lại có 01/03/2001. 6.6 Hằng số (Contants) Trái với biến số (variables), hằng số không thay đổi giá trị trong suốt đời sống của ứng dụng (application). Ta dùng Const để tuyên bố hằng số, tỷ như: Const PI = 3.1416 As Double Const DSN As String = “MyDatabaseName” 6.7 Tên quy ước Thông thường, ta thoả thuận một danh pháp chung khi đặt tên các biến số (variables) hay hằng số, nếu không, chính ta sau này có thể mất công tìm hiểu loại các biến số hay hằng số trong ứng dụng (application). Quy ước tổng quát khi đặt tên bao gồm 2 phần: Tiền tố (Prefix): thường dùng chữ in thường chỉ loại biến số (variables) hay hằng số (constant). Tên: chữ đầu tiên dùng chữ Hoa và tên phải đầy đủ ý nghĩa để khỏi mất công tham khảo sau này. Đề nghị tên quy ước như sau: Loại dữ kiện Tiền Tố (Prefix) Thí dụ Byte byt bytAge Short sht shtCounter Integer int intCounter Long lng lngResolution Single sng sngInterestRate Double dbl dblTotalSalesInYear Char chr chrMiddleName String str strAddress Boolean bol bolIsCompleted Date dte dteHireDate (User-defined types) (vài chữ - 2 hay 3 chữ trong tên của structure) empRecord Constant (no prefix, chữ nối nhau bằng dấu _ underscores) TAX_RATE Enumerations (vài chữ - 2 hay 3 chữ trong tên của Enumerations) dteWeekday, dowWeekday, colBackGroundColor 6.8 Methods Method là nguồn mã độc lập (self-contained) dùng để thực hiện công việc ta muốn làm trong ứng dụng (application). Method rất quan trọng vì: Phân giải (break-up) chương trình thành các phần tử nhỏ hơn, có trách nhiệm rõ ràng, đơn giản hơn và dễ hiểu. Khuyến khích dùng lại nguồn mã (reusable code) Ta phân biệt 2 loại mehods:
  71. Subroutine: với Sub End Sub Function: với Function End Function Dùng Subroutine khi ta muốn thực hiện công việc gì đó và Function khi muốn nhận kết quả trả về. Thí dụ dùng subroutine ‘SetRandomNumber’ trong bài 5: Bố trí 2 số ngẫu nhiên vào hộp chữ nhưng không trả về giá trị nào. Sub SetRandomNumber() Dim firstNumber, secondNumber As Integer Randomize() firstNumber = CInt(Int((10000 - 0 + 1) * Rnd() + 0)) secondNumber = CInt(Int((10000 - 0 + 1) * Rnd() + 0)) tbxNumber1.Text = firstNumber tbxNumber2.Text = secondNumber End Sub Thí dụ dùng Function: Cộng 2 số và trả về kết quả bài toán cộng. Function Addition (ByVal Number1 As Integer, ByVal Number2 As Integer) Addition = Number1 + Number2 End Function Tên methods: Thường thường, ta đặt tên quy ước cho methods bằng động từ chỉ công việc thực hiện và tên phải đầy đủ ý nghĩa, tỷ như: GetCustomerName OpenCustomerRecord CalculateRepaymentPerMonth ReadXMLFile GetEnvironementVariables SaveMyNetworkConfiguration 6.7 Phạm vi (Scope) Nhắc lại, method là nguồn mã chạy độc lập, do đó các biến số (variables) được tuyên bố trong một method chỉ có ý nghĩa khi dùng trong method đó mà thôi. Ta gọi là trong phạm vi method hay scope. Biến số (variables) dùng trong method này không có một chút ảnh hưởng gì đến biến số (variables) trong method khác, tỷ như: Sub DisplayMyName Dim strName strName = “Vũ Năng Hiền” MessageBox.Show(strName)
  72. End Sub Sub DisplayYourName Dim strName strName = “Đặng Quang Lương” MessageBox.Show(strName) End Sub Ta nhận thấy 2 subroutine có cùng 1 biến số (variables) strName nhưng giá trị 2 biến số (variables) này khác nhau. Thay đổi giá trị biến số strName trong subroutine DisplayMyName không làm thay đổi giá trị biến số strName trong subroutine DisplayYourName. Bài tập 1: Bài tập cho việc sử dụng Subroutine và Function để tính diện tích 1 hình chữ nhật có chiều dài 100 m và chiều cao (hay chiều sâu) 10 m. Bước 1: Tạo dự án Methods trong MS Visual Studio.NET: Bước 2: Thiết kế giao diện tính diện tích như sau:
  73. Giao diện gồm 1 nhãn hiệu (label) và 1 nút (button) để hiển thị kết quả tính nhân cho diện tích hình chữ nhật. Nhớ đặt tên theo quy ước đã định trước, tỷ như: lblCalculateRectangleArea cho nhãn hiệu, btnCalculateRectangleArea cho nút tính diện tích. Bước 3: Cách nhập nguồn mã Nhấp đôi vào nút CalculateRectangleArea và gỏ mã như sau: Private Sub btnCalculateRectangleArea_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCalculateRectangleArea.Click
  74. MessageBox.Show(”Rectangle Area = ” & CalculateRectangleArea(100, 10), “Rectangle Area”) End Sub Function CalculateRectangleArea(ByVal intWidth As Integer, ByVal intHeight As Integer) CalculateRectangleArea = intWidth * intHeight End Function Trong subroutine trên, ta dùng Function CalculateRectangleArea với 2 thông số (parameters) là 100 (metres) cho chiều dài và 10 (metres) cho chìều cao hình chữ nhật để trả kết quả tính nhân về subroutine btnCalculateRectangleArea_Click, hiển thị với đối tượng (object) MessageBox. So sánh và kiểm tra mã với hình dưới đây:
  75. Bước 4: Lưu trữ dự án trước khi chạy ứng dụng. Lưu ý: Khi lưu trữ dự án, ta cần lưu trữ dưới dạng Unicode vì có chữ Việt trong dự án như trình bày trong bài tập 2. Tuy nhiên, để khích thích và phát huy việc tự học của ta, hãy khoan tham khảo phần hướng dẫn trong bài tập 2 mà tự bạn thử truy tìm giải đáp trước. Bước 5: Chạy và kiểm tra dự án:
  76. Bài tập 2: Bài tập cho việc hiểu phạm vi (scope) của biến số (variables) trong Subroutine dùng hiển thị tên người nào đó. Bước 1: Tạo dự án Scope trong MS Visual Studio.NET: Bước 2: Thiết kế giao diện như hình sau:
  77. Bước 3: Nhấp đôi nút Display My Name và nút Display Your Name để nhập nguồn mã như trình bày trong phần 6.7 Phạm Vi (Scope). Bước 4: Khi lưu trữ (dùng Save As) Form và dự án, chọn Save with Encoding Sau đó, chọn một trong những Encoding yểm trợ Unicode, tỷ như: Unicode (UTF-8 without signature) - Codepage 65001 như sau: Bước 5: Sau khi lưu trữ, chạy chạy kiểm tra ứng dụng và nhấp vào nút Display My Name:
  78. Ta có: Bước 6: Khi nhấp vào nút Display Your Name: Ta lại có: Quả nhiên, tuy 2 subroutine khác nhau dùng chung một tên biến số (variables) strName, không biến số nào ảnh hưởng đến biến số nào.
  79. (Copy từ: diễn đàn tin học - diendantinhoc.com). Cảm ơn bạn ngoalong1987@gmail.com đã chỉ tài liệu này