Giáo trình Lập trình mạng nâng cao hướng.NET (Nghề Lập trình máy tính): Phần 1 - Tổng cục dạy nghề

86 17 0
Giáo trình Lập trình mạng nâng cao hướng.NET (Nghề Lập trình máy tính): Phần 1 - Tổng cục dạy nghề

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

(NB) Giáo trình Lập trình mạng nâng cao hướng.NET (Nghề Lập trình máy tính): Phần 2 do Tổng cục dạy nghề sẽ cung cấp cho bạn những kiến thức cơ bản về microsoft .net framework, visual studio.net và những chức năng đối tượng mới của VB.net. Mời các bạn tham khảo!

BỘ LAO ĐỘNG - THƯƠNG BINH VÀ XÃ HỘI TỔNG CỤC DẠY NGHỀ Dự án giáo dục kỹ thuật dạy nghề (VTEP) /‫ﻱﻱﻱﻱﻱﻱﻱﻱﻱﻱ‬ GIÁO TRÌNH Mơn học: LẬP TRÌNH MẠNG NÂNG CAO HƯỚNG NET Mã số: ITPGR3_13 NGHỀ : LẬP TRÌNH MÁY TÍNH Trình độ :Lành nghề bậc cao Đà Lạt - 2007 Trang Tuyên bố quyền : Tài liệu thuộc loại sách giáo trình Cho nên nguồn thơng tin phép dùng ngun trích dùng cho mục đích đào tạo tham khảo Mọi mục đích khác có ý đồ lệch lạc sử dụng với mục đích kinh doanh thiếu lành mạnh bị nghiêm cấm Tổng Cục Dạy nghề làm cách để bảo vệ quyền Tổng Cục Dạy Nghề cám ơn hoan nghênh thông tin giúp cho việc tu sửa hoàn thiện tốt tàI liệu Địa liên hệ: Dự án giáo dục kỹ thuật nghề nghiệp Tiểu Ban Phát triển Chương trình Học liệu ……………………………………………… Trang LỜI TỰA Đây tài liệu xây dựng theo chương trình dự án giáo dục kỹ thuật dạy nghề, để có đươc giáo trình dự án tiến hành theo hai giai đoạn Giai đoạn : Xây dựng chương trình theo phương pháp DACUM, kết gian đoạn khung chương trình gồm 230 trang cấp độ 170 trang cấp độ Giai đoạn : 29 giáo trình 29 tài liệu hướng dẫn giáo viên cho nghề lập trình máy tính cấp độ Để có khung chương trình chúng tơi mời giáo viên, chun gia làm việc lĩnh vực công nghệ thông tin xây dựng chương trình Trong giai đoạn viết giáo trình chúng tơi có điều chỉnh để giáo trình có tính thiết thực phù hợp với phát triển lĩnh vực công nghệ thơng tin Trong q trình biên soạn, cố gắng tham khảo nhiều tài liệu giáo trình khác tác giả khơng khỏi tránh thiếu sót hạn chế Tác giả chân thành mong đợi nhận xét, đánh giá góp ý để giáo trình ngày hồn thiện Tài liệu thiết kế theo mô đun/ môn học thuộc hệ thống mơ đun/mơn học chương trình, để đào tạo hồn chỉnh nghề Lập trình máy tính cấp trình độ lành nghề dùng làm Giáo trình cho học viên khố đào tạo, sử dụng cho đào tạo ngắn hạn cho công nhân kỹ thuật, nhà quản lý người sử dụng nhân lực tham khảo Đây tài liệu thử nghiệm hoàn chỉnh để trở thành giáo trình thức hệ thống dạy nghề Trang 8ỤC LỤC ĐỀ MỤC TRANG Lời tựa Mục lục Các hình thức học tập modun/mơn học 11 Yêu cầu đánh giá hoàn thành modun/môn học 12 Chương I : VB.NET 13 I Bài 1:Microsoft NET Framework Cài đặt Visual Studio.NET 13 Mở Samples QuickStart 16 Giới hạn Software Tools .18 Giới hạn VB6 .19 10 .NET Framework 20 11 Metadata 23 12 Hổ trợ phối hợp ngôn ngữ lập trình 23 II Bài 2.:Visual Studio.NET 13 Visual Studio.NET .25 14 Visual Studio.NET IDE 27 15 Demo Program 30 16 Walk Through Code 34 17 Biểu diển DragDrop 40 III Bài 3:NHỮNG CHỨC NĂNG ĐỐI TƯỢNG MỚI CỦA VB.NET 18 Classes Objects, nguyên tắc Abstraction 44 19 Fields, Properties, Methods Events, nguyên tắc Encapsulation .45 20 Inheritance (Thừa Kế) 47 21 Polymorphism (Đa dạng) 48 22 Tạo Class 49 23 Overloading methods 54 24 Object Lifecycle 55 25 Thừa kế 58 26 Ngăn cản Thừa kế .62 27 Thừa kế Phạm vi hoạt động 62 28 Protected Methods .63 Trang 29 Overriding Methods 64 30 Overridding Method New 69 31 Tạo BaseClasses Abstract Methods 70 32 Shared class members(Các thành viên để dùng chung class) 72 33 Early Binding hay Late Binding (Hiệu lực Sớm hay Trễ) 81 34 Thừa kế từ ngôn ngữ khác 83 35 Thừa kế hình ảnh (Visual Inheritance) 86 IV Bài 4:NHỮNG CHỨC NĂNG MỚI TRONG GIAO DIỆN CỬA SỔ CỦA VB.NET 36 Sự quan trọng Windows Forms ? 89 37 Những điểm Windows Forms ? 90 38 Kiến trúc (Architecture) Windows Forms ? .92 39 Những Controls tàn hình chứa riêng 93 40 Chọn Startup Form .94 41 Owned Forms (Forms có chủ) 95 42 Độ đậm (Opacity) Form .96 43 Form properties cho Cancel Button Default Button 96 44 Sự khác biệt Hộp Giao Thoại (Dialog Boxes) 97 45 ShowDialog thay Show vbModal 99 46 DialogResult 100 47 Property Size .102 48 Tab Oder Controls 102 49 Control Arrays 103 50 Tự động Resize định chỗ (positioning) 105 51 Anchoring (bỏ neo) .106 52 Docking (gắn vào) 108 53 Control Splitter 110 54 Các control Providers 113 55 Controls HelpProvider ToolTip .113 56 Control ErrorProvider 114 57 Menus 115 58 Context Menus 118 59 Sửa đổi Menus lúc Runtime .120 60 Duplicating Menus 122 61 MDI Forms 123 62 Toolbars 125 63 Items collection of Strings 129 64 Items Array of Objects 132 65 ComboBox 135 Trang 66 Bài 5.Data Grid 67 Giới thiệu ADO.NET 139 68 Dùng thẳng XML làm sở liệu 139 69 Tạo DataSet từ XML Schema .144 70 Dùng DataGrid 144 71 Bind DataSource DataGrid vào Dataset .144 72 Hiển thị cột data theo ý 145 73 Dùng Dataview để Filter Sort 148 74 Làm việc với Row DataGrid 151 75 Edit XML file dựa XML Schema 157 76 Typed Dataset .159 77 Dùng Dataform wizard để phát sinh form từ Dataset 160 78 Chương :II ASP.NET .164 V Bài 1:Làm Quen với ASP.NET 79 ASP.NET gì? 168 80 Phương pháp làm việc mạng 169 81 Sơ lược NET Framework 171 82 Bố trí cài đặt ASP.NET 171 83 Tạo trang ASP.NET 178 VI Bài 2:Xây Dựng Trang ASP.NET 84 Phân tích mã trang ASP.NET 186 85 Xây dựng trang ASP.NET đơn giản 188 86 Vài nhận xét dùng ASP.NET HTML 192 VII Bài 3:Giới thiệu WEB MATRIX 87 Sơ lược Web Matrix .195 88 Khác biệt Visual Studio.NET Web Matrix 196 89 Các đặc điểm Web Matrix 197 90 Cài đặt Web Matrix .198 91 Ði dạo vòng với Web Matrix .198 92 Tạo trang ASP.NET với Web Matrix  201 Trang VIII Bài 4:Dùng ASP.NET Objects với VB.NET 93 Ðối tượng (object) đặc tính (properties) 204 94 Ðối tượng ASP.NET Objects phương pháp khai 95 Phương pháp làm việc với Session Cookies 214 96 HttpCookie Object .220 97 HttpApplication Object .224 98 HttpServerUtility Object .225 IX Bài 5:ASP.NET VB.NET 99 Giới thiệu tổng quát NET Framework 229 100 Classes 238 X Phương pháp (method) lập trình tổng quát 239 111 112 Thuật ngữ chuyên môn 242 Tài liệu tham khảo 244 Trang GIỚI THIỆU VỀ MƠN HỌC Vị trí, ý nghĩa, vai trị mơn học : Đây mơn học nằm học kỳ cuối chương trình đào tạo, tảng để học sinh ứng dụng thực tiễn tốt nghiệp, ứng dụng môn học trước đểt ạo phần mềm (trang Web) hoàn chỉnh Mục tiêu môn học: Cài đặt Visual Studio.net, thao tác VB.Net ASP.net, tìm hiểu Form, cấu trúc điều khiển, cách tạo phần mềm, trang Web, gắn kết VB.net ASP.net Mục tiêu thực mô đun/môn học: Cài sử dụng VB.net ASP.net Xây dựng kiến thức VB.net, ASP.net Nắm thuộc tính, cơng dụng công cụ Cách thiết kế phần mềm, trang Web Cách trang trí, hiệu chỉnh sản phẩm Nội dung mơn học  : PHẦN I VB.NET Microsoft NET Framework Visual Studio.NET Những chức đối tượng VB.NET Những chức giao diện cửa sổ VB.NET DataGrid PHẦN II ASP.NET Làm Quen với ASP.NET Xây Dựng Trang ASP.NET Giới thiệu WEB MATRIX Dùng ASP.NET Objects với VB.NET ASP.NET VB.NET Trang .NET tầng trung gian ứng dụng (applications) hệ điều hành (OS) Tầng NET cung cấp dịch vụ giúp ta tạo công dụng mà ứng dụng (application) đòi hỏi, giống hệ điều hành cung cấp dịch vụ cho ứng dụng (application), tỷ như: đọc hay viết tập tin (files) vào dĩa cứng (hard drive), Tầng bao gồm ứng dụng (application) hệ điều hành gọi NET Servers Như vậy, NET gần sưu tập (collection) nhu liệu khái niệm kết hợp trộn lẫn làm việc nhằm tạo giải đáp vấn đề liên quan đến thương nghiệp ta Trong đó:  Tập hợp đối tượng (objects) gọi NET Framework  Tập hợp dịch vụ yểm trợ ngơn ngữ lập trình NET gọi Common Laguage Runtime (CLR) .NET Servers Mục tiêu NET 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 thực hậu phương (back end) máy cung cấp dịch vụ (servers) Microsoft đáp ứng với sưu tập '.NET Enterprise Servers', chuyên trị yểm trợ đặc tính (features) hậu phương cần có cho 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 Data Center  Clustering Load Balancing Systems: MS Application Center, MS Cluster Server  Database System: MS SQL Server  E-Mail System: MS Exchange Server  Data-transformation engine sở XML: MS Biz Talk Server  Accessing Legacy Systems: Host Integration Server Server Tất máy server cung cấp dịch vụ cần thiết cho ứng dụng (application) NET tảng xây dựng hệ thống Tin Học cho dự án lập trình .NET Framework Đối với Visual Basic.NET (VB.NET), tất thứ thay đổi tận gốc rễ Một thành phần quan trọng NET NET Framework Đây tảng cho công cụ phát triển ứng dụng (application) NET NET Framework bao gồm:  Môi trường vận hành (Base Runtime Environment)  Bộ sưu tập loại đối tượng (a set of foundation classes) Môi trường vận hành (Base Runtime Environment) hoạt động giống hệ điều hành cung cấp dịch vụ trung gian ứng dụng (application) thành phần phức tạp hệ thống Bộ sưu tập loại đối tượng (a set of foundation classes) bao gồm số lớn công dụng soạn kiểm tra trước, tỷ như: giao lưu với hệ thống tập tin (file system access) hay quy ước mạng (Internet protocols), nhằm giảm thiểu gánh nặng lập trình cho 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 công dụng yểm trợ Ta xem NET Framework tầng công dụng trừu tượng cung cấp dịch vụ hệ điều hành (nhìn khía cạnh cung cấp dịch vụ) Để ngơn ngữ lập trình sử dụng dịch vụ cung cấp NET Framework, Microsoft tạo tiêu chuẩn chung cho ngơn ngữ lập trình gọi Common Language Specifications (CLS) Tiêu chuẩn giúp chương trình biên dịch (compilers) làm việc hữu Trang hiệu Microsoft sáng chế Visual Basic.NET (VB.NET), Visual C++.NET C# (đọc C Sharp) cho NET Framework không quên phổ biến rộng rãi CLS Công Nghệ Tin Học giúp ngơn ngữ lập trình khác làm việc NET, tỷ như: COBOL.NET, Smalltalk.NET, Lưu ý đây, Visual Basic.NET (VB.NET), Visual C++.NET hay C# khác syntax công dụng phụ thuộc tất biên dịch ngôn ngữ trung gian gọi MSIL (Microsoft Intermediate Language) đó, khơng có ngơn ngữ lập trình NET hùng mạnh ngơn ngữ lập trình NET Tất bình đẳng, 'khơng bảnh ai', việc chọn ngơn ngữ lập trình chuyện nhỏ, tùy ý thích lập trình viên Visual Basic.NET (VB.NET) ngơn ngữ lập trình khuynh hướng đối tượng (Object Oriented Programming Language) Microsoft thiết kế lại từ số không Visual Basic.NET (VB.NET) không kế thừa VB6 hay bổ sung, phát triển từ VB6 mà ngơn ngữ lập trình hồn tồn Microsoft 's NET Framework Do đó, khơng phải VB phiên Thật sự, ngôn ngữ lập trình lợi hại, khơng lập tảng vững theo kiểu mẫu đối tượng ngơn ngữ lập trình hùng mạnh khác vang danh C++, Java mà dễ học, dễ phát triển cịn tạo hội hồn hảo để giúp ta giải đáp vấn đề khúc mắc lập trình Hơn nữa, dù khơng khó khăn cần tham khảo, học hỏi hay đào sâu xảy bên hậu trường OS, Visual Basic.NET (VB.NET) giúp ta đối phó với phức tạp lập trình Windows đó, ta tập trung công sức vào vấn đề liên quan đến dự án, công việc hay doanh nghiệp mà Trong khóa học này, bạn bắt đầu làm quen với kiểu lập trình dùng Visual Basic.NET (VB.NET) dĩ nhiên, khái niệm thành phần NET Framework Nếu ta để ý tên Visual Basic.NET (VB.NET), ta thấy ngơn ngữ lập trình chun trị tạo ứng dụng (application) dùng mạng, liên mạng hay Internet Tuy nhiên, học ngơn ngữ lập trình nào, ta cần 'tập trước tập chạy' Do đó, ta tập trung vào việc lập trình ứng dụng (applications) Windows mục tiêu yếu khóa học Visual Basic.NET Ta nên chuẩn bị sẵn số kiến thức lập trình hay phát triển mạng bước vào khóa học tốt hơn, bạn khơng cần phải biết ASP cổ điển (classic ASP) nhưng, chúng tơi trình bày phần FAQ trang Chào Mừng đầu khóa học, bạn cần: tham khảo viết khóa Học Microsoft NET thầy Lê Ðức Hồng để làm quen với NET framework, Visual Basic.NET, Visual Studio.NET VB.NET dùng làm ngôn ngữ mặc định (default) thí dụ, tập hay dự án khoá biết tổng quát HTML (HyperText Markup Language) ta cần trình bày trang web browser Browser dùng khoá IE6 (Internet Explorer Version 6) quen thuộc với hệ điều hành (Operating System) Windows 2000 (Professional hay Server) hay Windows XP (Home hay Professional), quen thuộc cách quản lý ứng dụng liên hệ Web Server (Personal Web Server hay Internet Information Server - IIS) sở liệu (database) MS SQL Server 2000 - xin tham khảo viết MCSE thầy Vũ Hữu Tín, thầy Tăng Vinh Tài lớp MCSE vài kiến thức XML liên quan đến việc chuyển thông tin từ chổ qua chổ khác Về XML, bạn nên tham khảo viết XML, Kỹ Thuật Nồng Cốt Tương Lai thầy Lê Ðức Hồng tự học XML Bạch Trí mạng Vovisoft này) Thật ra, ta đâu làm khó chi phải rào trước đón sau đường ta tìm hiểu ASP.NET lắt lẽo gập ghềnh Một ta phát triển mạng với ASP.NET, ta phải vận dụng tất ứng dụng liên hệ kết hợp thứ vào Ðó lý khoá học nhắm vào lập trình viên có kinh nghiệm phát triển mạng Tuy vậy, cố gắng trình bày cách đơn sơ, ngắn gọn đề cập đến ứng dụng kể học có liên quan đến để bạn (nhất bạn thích thú việc phát triển mạng làm quen với ASP.NET) dễ dàng theo dỏi tìm hiểu ASP.NET Trang 10 Trong nói Interface, class phải tự implement ICha cách độc lập phải cung cấp hai Subs VôĐề ChàoHỏi Vì thế, ta khơng có ý định dùng lại code Subs ta tạo classes ta dùng interface Ngược lại ta muốn dùng lại code SubClass theo nguyên tắc thừa kế ta nên dùng abstract base class Shared class members ( Các thành viên để dùng chung class) Mặc dù Object hiệu hữu ích, có ta muốn truy cập variables hay methods class để làm việc mà không cần phải instantiate Object Tức y khứ, viết VB6, ta dùng variables hay methods BAS Module Đại khái giống thay ký giao kèo với thầu (Object) để thực cơng trình, ta muốn mướn thợ hay chuyên viên làm việc gia công ( gọi methods) Shared Methods Trong VB.NET Class có methods properties thơng thường ta thấy - tức methods properties Object ta dùng sau Object thành hình qua trình instantiation - mà cịn có methods properties ta dùng mà không cần phải tạo instance từ Class Chúng gọi shared methods ( Trong ngơn ngữ lập trình khác methods nầy cịn gọi static methods hay class methods) Ta truy cập shared method qua Object method bình thường, phải dùng trực tiếp tên class Thí dụ sau minh họa điều nầy: Public Class Math Shared Function Add( ByVal x As Single, ByVal y As Single) As Single Return x + y End Function End Class Sau định nghĩa Class Math, ta dùng Shared Function Add mà khơng cần instantiate Object thuộc class Math sau: Dim Result As Single result = Math.Add(12.5, 36.8) Để ý thay dùng object variable ta dùng thẳng tên class Math để truy cập method Add Với method bình thường làm bị syntax error, trường hợp nầy khơng Ta overload shared methods, tức code nhiều shared methods với tên có parameter lists khác Phạm vi hoạt động bình thường (Default Scope) shared methods Public Tuy nhiên ta giới hạn việc truy cập chúng cách dùng Access Modifiers Friend, Trang 72 Protected hay Private Thật overloading shared method ta dùng scopes khác cho shared method Có thí dụ shared method từ NET system class libraries Để mở text file theo mode input, điển hình ta dùng shared method File class sau: Dim inFile As StreamReader = File.OpenText("words.txt") Dim strIn As String strIn = inFile.ReadLine() Ở khơng có object File tạo Method OpenText shared Function, mở input text file words.txt cho ta object loại StreamReader tên inFile để ta dùng sau Shared Variables Đôi ta muốn tất objects class dùng chung variable Ta thực việc với shared variables Một shared variable khai báo với keyword shared giống shared method: Public Class MyCounter Private Shared mintCount As Integer End Class Ta cho shared variable scope Public hay Private tùy ý, By Default, scope shared variables Private, khác với shared methods By Default Public Điểm quan trọng shared variables chúng dùng chung instances (objects) class Dưới thí dụ ta giữ counter có trị số tăng thêm lần có instance class MyCounter Bất lúc ta biết có objects tạo cách đọc property Count: Public Class MyCounter Private Shared mintCount As Integer Public Sub New() mintCount += End Sub Public ReadOnly Property Count() As Integer Get Trang 73 Return mintCount End Get End Property End Class Như thế, ta chạy client code hiển thị kết 3: Protected Sub Button1_Click( ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click Dim obj As MyCounter obj = New MyCounter() obj = New MyCounter() obj = New MyCounter() MsgBox(obj.Count, MsgBoxStyle.Information, "Counter") End Sub Nếu ta chạy code thêm hai lần nữa, ta có Hể ta cịn chạy chương trình counter cịn làm việc Khi ta chấm dứt chương trình counter biến Global values Một cách dùng thông dụng khác shared variable xem loại Global variable Khi dùng scope Public ta có dạng tương đương với VB6 Global variable BAS Module Thí dụ như: Public Class GlobalData Public Shared TotalCost As Single End Class Sau ta dùng variable nầy khắp nơi client code: GlobalData.TotalCost += 45.60 Trang 74 Raising Event để xử lý Project khác VB.NET không hổ trợ Events từ đời cha đến đời theo nguyên tắc thừa kế Nếu BaseClass định nghĩa Public Event ta raise event code BaseClass raise event SubClass BaseClass Khác với methods, ta overload Event, tức khơng thể dùng tên cho hai Events có parameter list khác Ta tạo Class Library Project với Class có raise Event tạo project khác có code để đón nhận xử lý Event Để thử việc nầy bạn tạo Class Library Project với tên ClassLibrary1 viết dòng code định nghĩa Class Class1 với Event TheEvent Sub LàmViệc để raise Event sau: Public Class Class1 Public Event TheEvent() Public Sub LàmViệc() RaiseEvent TheEvent() End Sub End Class Kế bạn dùng Menu command File | Add Project | New Project để thêm project với tên EventClass Để dùng Class1, bạn cần phải reference với Menu command Project | Add Reference , chọn Tab Projects click Browse để chọn ClassLibrary1.DLL từ subfolder ClassLibrary1\bin solution hình đây: Trang 75 hình 3.9 : Project | Add Reference Một referenced ClassLibrary1 với Class1 ấy, bạn doubleclick lên Form1 để code sau: Private WithEvents obj As ClassLibrary1.Class1 Private Sub Form1_Load( ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load obj = New ClassLibrary1.Class1() Trang 76 End Sub Nhớ ta phải declare variable obj thuộc loại ClassLibrary1.Class1 với WithEvents Đặt Button tên BtnLàmViệc doubleclick lên để code sau: Private Sub BtnLàmViệc_Click( ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles BtnLàmViệc.Click obj.LàmViệc() End Sub Để xử lý Event obj bạn chọn tên từ combobox phía bên trái, chọn TheEvent từ combobox bên phải hình đây: Ở ta handle Event cách hiển thị message đơn giản: Đang xử lý Event từ Class1 Bây bạn chạy program Khi bạn click Button BtnLàmViệc program hiển thị message để chứng minh từ Application ta handle event Class Project khác Trang 77 hình 3.10 : hiển thị message Ghi Nếu sau Unzip source file load project vào, bạn dùng IDE Menu command Build | Rebuild Solution để compile lại hết modules gặp error references làm sau:  Trong Solution Explorer click tree nodes references để tìm references có dấu chấm thang tam giác vàng remove chúng  Dùng Menu command Project | Add Reference để chọn *.dll lại từ \bin subfolder  Rebuild Solution hình 3.11 : lựa chọn classLibrary Nếu bạn dùng chữ Việt Unicode program nhớ set up Advanced Save Option với Menu command File hình đây: Trang 78 hình 3.12 : classLibrary Khi Dialog ra, bạn chọn Unicode (UTF-8) cho Encoding: hình 3.13 : chọn kiểu fon Nếu bạn khơng thấy có menuItem Advanced Save Option Menu File dùng menuItem Save As click lên combo box Save phía dưới, bên phải Save File As Dialog chọn Save with Encoding hình đây: Trang 79 hình 3.14 : chon kiểu save Nếu bạn quên set up Advanced Save Option trên, chữ Việt bị lưu trử dạng ANSI nên số dấu chữ Việt thay vào dấu ? Shared Events Events declared Shared Shared methods raise shared events, chúng khơng thể raise non-shared events Thí dụ như: Public Class NguồnEvent Shared Event EventDùngChoSharedMethods() Public Shared Sub DùngChung() RaiseEvent EventDùngChoSharedMethods() End Sub End Class Một shared event raised shared methods lẫn non-shared methods: Public Class NguồnEvent Public Event TheEvent() Shared Event EventDùngChoSharedMethods() Trang 80 Public Shared Sub DùngChung() RaiseEvent EventDùngChoSharedMethods() End Sub Public Sub LàmViệc() RaiseEvent TheEvent() RaiseEvent EventDùngChoSharedMethods() End Sub End Class Nếu bạn tìm cách raise non-shared event từ shared method bị syntax error Early Binding hay Late Binding (Hiệu lực Sớm hay Trễ) Early Binding có nghĩa program biết rõ từ đầu loại Object (thuộc Class nào) dùng hoàn cảnh Nó cho phép IntelliSense hiển thị cho ta thấy class members ta dùng compiler kiểm xem methods ta dùng có hữu không Early Binding code compiled IL hiệu compiler biết rõ ràng data types parameters Ngược lại Late Binding có nghĩa ta làm việc cách linh động với Object lúc run-time, tức program trước Object thuộc loại Late Binding cho ta uyển chuyển Object cung cấp method cần thiết đủ Do đó, ta khơng hưởng sang trọng IntelliSense cung cấp compiler khơng thể kiểm sốt loại Object trước dùm cho ta Mặc dầu Late Binding code chạy chậm cho ta tự giống làm việc ngồi đời, để đến chót xác nhận By Default, objects VB.NET Late Bound Visual Studio.NET IDE với Option Strict Off by default áp đặt luật Nếu muốn áp đặt Early Binding ta cần phải nhét câu Option Strict On đầu source file Dùng Object Type Ta có Late Binding compiler xác định loại Object ta gọi Ta thực điều nầy cách dùng Object Type để tuyên bố cách mơ hồ ta dùng loại Object đó, variable với Object type hold-reference-to Object Do đó, dịng code sau dùng cho Object mà Class có implement Sub CơngTácTơi không dùng parameter cả: Option Strict Off Module LateBind Public Sub LàmViệc( ByVal obj As Object) Trang 81 obj.CôngTácTôi() End Sub End Module Nếu obj passed vào Sub LàmViệc khơng có Sub CơngTácTơi chẳng dùng parameter hết program bị error lúc run-time Do đó, ta nên luôn dùng Try Structure để bắt error Thí dụ như: Option Strict Off Module LateBind Public Sub LàmViệc( ByVal obj As Object) Try obj.CôngTácTôi() Catch e As Exception ' Code để xử lý trường hợp Object khơng thích hợp Console.WriteLine("Invalid Object passed to LàmViệc") End Try End Sub End Module Dùng Function CType Dầu ta có dùng Late Binding hay khơng, nhiều tiện để ta pass reference đến object đó, từ chỗ nầy đến chỗ khác, cách dùng Data Type Object tổng qt - cần dùng ta đổi loại Object hồn cảnh Ta thực việc convert data type cách dùng Function CType, điều cho phép ta nói trước Data Type Object converted object class để gọi method theo cách Early Bound: Module LateBind Public Sub LàmViệc( ByVal obj As Object) CType(obj, TheClass).CôngTácTôi() End Sub End Module Trong thí dụ ta làm việc với variable thuộc type Object - ngun tắc có vẽ Late Bound - dùng Function CType để convert obj object thuộc class TheClass Trang 82 Kỹ thuật nầy gọi casting (đổ khuôn) Nếu ta xem TheClass khuôn, ta ép obj vào khuôn giống đổ khn obj có dạng TheClass Function CType hữu dụng ta làm việc với objects có implement nhiều interfaces, ta dùng object cho interfaces khác Giả dụ ta có object thuộc loại TheClass có implement interface tên MyInterface, ta dùng interface code sau đây: Dim obj As TheClass obj = New TheClass CType(obj, MyInterface).DoSomething() Theo cách ta gọi methods theo cách Early Bound nhiều interfaces object mà không cần phải declare variable Thừa kế từ ngôn ngữ khác VB.NET code compile IL (Intermediate Language) managed code, tức code CLR (Common Language Runtime) chạy NET Framework Mọi managed code, không cần biết compiled từ ngôn ngữ làm việc chung nhau, tức ta tạo class ngôn ngữ nầy dùng ngơn ngữ khác, kể việc thừa kế Thật ta luôn làm việc viết VB.NET Đó phần lớn NET system library viết C#, ta dùng hay thừa kế từ thường xuyên VB.NET Tạo VB.NET BaseClass Trong thí dụ thừa kế từ ngôn ngữ khác, trước hết ta thử tạo Class Library Project VB.NET tên vblib thêm vào class đơn giản tên Parent giống sau: Public Class Parent Public Sub SayHello() MsgBox("Hello from Parent Class", MsgBoxStyle.Information, "Parent Class in VB.NET") End Sub End Class Ta dùng Parent làm BaseClass để thừa kế thành SubClass C# Tạo C# SubClass Dùng File | Add Project để thêm C# Class Library project đặt tên cslib Reference vblib cách dùng Menu command Project | Add Reference chọn Tab Projects, click Browse để tìm vblib.dll vblib\bin subfolder Trang 83 Lưu ý ta vừa reference vblib.dll, assembly Class Parent, ta không đụng đến hay cần VB.NET source code Class Parent Trong C#, ta thừa kế Class Parent qua reference BaseClass vblib.dll assembly Bây code C# sau: namespace cslib { using System.Windows.Forms; using vblib; public class cSharpclass : Parent { public cSharpclass() { MessageBox.Show("Instantiating cSharpclass object, inheriting VB.NET Parent class", "CSharp Class"); } } } Code C# bên có nhiều điểm tương đồng với VB.NET Tuy nhiên C# đến từ ngơn ngữ lập trình C C++ nên có syntax khác chút:   Mọi statement C# phải chấm dứt dấu ; để đánh dấu cuối hàng Cặp dấu ngoặc cong queo { } dùng để đánh dấu đầu cuối Statement Block thay dùng End Sub  Keyword using dùng thay keyword Imports VB.NET  C# case sensitive, tức phân biệt chữ hoa, chữ thường - thí dụ obj khác với Obj  Constructor method mang tên với class thay tên New VB.NET Ta thử qua dòng code Câu thứ định nghĩa namespace cho source file Trong C#, namespace phải tuyên bố rõ ràng (explicitly declared) code module namespace cslib Kế hai câu tuyên bố ta nhập System.Windows.Forms vblib: Trang 84 using System.Windows.Forms; using vblib; Câu kế tuyên bố cSharpclass thừa kế từ class Parent, để ý cách dùng dấu : thay keyword Inherits: public class cSharpclass : Parent Sau Constructor dùng tên class: public cSharpclass() { MessageBox.Show("Instantiating cSharpclass object, inheriting VB.NET Parent class", "CSharp Class"); } Để ý cách dùng MessageBox.Show giống hệt VB.NET để hiển thị message Tạo program Client Dùng menu command File | Add Project để thêm VB.NET Windows Application project cho solution Trong project nầy ta dùng menu command Project | Add Reference để thêm references cho cslib vblib Right-click lên project Solution Explorer chọn làm Set As Startup Project để project nầy chạy ta bấm F5 Bây đặt Button tên BtnStartDemo lên Form viết code để xử lý Event Click: Private Sub BtnStartDemo_Click( ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles BtnStartDemo.Click Dim objCS As New cslib.cSharpclass() objCS.SayHello() End Sub Khi ta chạy program click button StartDemo ta thấy dialog cho biết Constructor cSharpclass gọi để instantiate object objCS: Trang 85 hình 3.15 : program Client Tiếp theo dialog thứ nhì hiển thị message từ Sub SayHello mà objCS thừa kế từ BaseClass Parent: hình 3.16 : hiển thị message từ Sub Thừa kế hình ảnh (Visual Inheritance) Cho đến ta bàn qua chức OO ngôn ngữ VB.NET, phần lớn nhắm vào đặc tính thừa kế Vì hình ảnh (Visual Components) VB.NET implemented ngôn ngữ lập trình quy khơng phải dùng cách thức khác biệt VB6 (tin tức diễn tả hình ảnh nằm phần đầu *.frm files), nên VB.NET hổ trợ Thừa kế hình ảnh (Visual Inheritance) cho Windows Forms cách tự nhiên Điều nầy có nghĩa sau làm xong Windows Form với Textboxes, Labels, Listboxes v.v ta thừa kế để vơ thêm hình ảnh khác Ta bàn vô chi tiết chuyện nầy tương lai Ta thừa kế từ hình ảnh Thí dụ ta thừa kế từ Textbox để tạo class Textbox mới, có thêm chức nhận keystrokes theo cách VNI hiển thị chữ Việt Unicode Cùng nguyên tắc thừa kế nầy Windows Forms Controls áp dụng cho Web Forms Controls, tức ta SubClass Web Forms Control, cho thêm chức overriding số chức có sẵn Trang 86 ... 10 8 53 Control Splitter 11 0 54 Các control Providers 11 3 55 Controls HelpProvider ToolTip .11 3 56 Control ErrorProvider 11 4 57 Menus 11 5... chương trình theo phương pháp DACUM, kết gian đoạn khung chương trình gồm 230 trang cấp độ 17 0 trang cấp độ Giai đoạn : 29 giáo trình 29 tài liệu hướng dẫn giáo viên cho nghề lập trình máy tính... nghiêm cấm Tổng Cục Dạy nghề làm cách để bảo vệ quyền Tổng Cục Dạy Nghề cám ơn hoan nghênh thông tin giúp cho việc tu sửa hoàn thiện tốt tàI liệu Địa liên hệ: Dự án giáo dục kỹ thuật nghề nghiệp

Ngày đăng: 19/01/2022, 10:17

Tài liệu cùng người dùng

Tài liệu liên quan