Đồ Án: Tìm Hiểu Ngôn Ngữ C# và Ứng Dụng Minh Họa - Phạm Văn Việt, Trương Lập Vĩ

Khám phá ngôn ngữ C#: Tổng quan về cú pháp, tính năng và ứng dụng thực tế. Tìm hiểu cách C# được sử dụng để xây dựng ứng dụng đa nền tảng.

Chuyên ngành

Công nghệ thông tin

Người đăng

Ẩn danh

Thể loại

Đồ án tốt nghiệp

2002

281
0
0

Phí lưu trữ

55 Point

Mục lục chi tiết

Lời cám ơn

Mục lục

1. Phần 1 Tìm hiểu ngôn ngữ C#

1. Chương 1: C# và .Net Framework

1.1. Nền tảng của .NET

2. Chương 2: Khởi đầu

2.1. Lớp, đối tượng và kiểu

2.2. Các ghi chú

2.3. Ứng dụng dạng console

2.4. Namespaces - Vùng tên

2.5. Toán tử chấm “.”

2.6. Từ khoá using

2.7. Phân biệt hoa thường

2.8. Từ khoá static

3. Chương 3: Những cơ sở của ngôn ngữ C#

3.1. Biến và hằng

3.2. Tạo vùng tên

3.3. Chỉ thị tiền xử lý

4. Chương 4: Lớp và đối tượng

4.1. Định nghĩa lớp

4.2. Tạo đối tượng

4.3. Sử dụng các thành viên tĩnh

4.4. Hủy đối tượng

4.5. Truyền tham số

4.6. Nạp chồng phương thức và hàm dựng

4.7. Đóng gói dữ liệu với property

5. Chương 5: Thừa kế và Đa hình

5.1. Đặc biệt hoá và tổng quát hoá

5.2. Sự kế thừa

5.3. Lớp trừu tượng

5.4. Lớp gốc của tất cả các lớp: Object

5.5. Kiểu Boxing và Unboxing

6. Chương 6: Nạp chồng toán tử

6.1. Cách dùng từ khoá operator

6.2. Cách hổ trợ các ngôn ngữ

6.3. Sự hữu ích của các toán tử

6.4. Các toán tử logic hai ngôi

6.5. Toán tử so sánh bằng

6.6. Toán tử chuyển đổi kiểu (ép kiểu)

7. Chương 7: Cấu trúc

7.1. Định nghĩa cấu trúc

7.2. Cách tạo cấu trúc

8. Chương 8: Giao diện

8.1. Cài đặt một giao diện

8.2. Truy xuất phương thức của giao diện

8.3. Nạp chồng phần cài đặt giao diện

8.4. Thực hiện giao diện một cách tường minh

9. Chương 9: Array, Indexer, and Collection

9.1. Câu lệnh foreach

9.2. Các giao diện túi chứa

10. Chương 10: Chuỗi

10.1. Tạo chuỗi mới

10.2. Phương thức ToString()

10.3. Thao tác chuỗi động

11. Chương 11: Quản lý lỗi

11.1. Ném và bắt biệt lệ

11.2. Đối tượng Exception

11.3. Các biệt lệ tự tạo

11.4. Ném biệt lệ lần nữa

12. Chương 12: Delegate và Event

13. Chương 13: Lập trình với C#

13.1. Ứng dụng Windows với Windows Form

14. Chương 14: Truy cập dữ liệu với ADO

14.1. Cơ sở dữ liệu và ngôn ngữ truy vấn SQL

14.2. Một số loại kết nối hiện đang sử dụng

14.3. Kiến trúc ADO

14.4. Mô hình đối tượng ADO

14.5. Trình cung cấp dữ liệu (.NET Data Providers)

14.6. Khởi sự với ADO

14.7. Sử dụng trình cung cấp dữ liệu được quản lý

14.8. Làm việc với các điều khiển kết buộc dữ liệu

14.9. Thay đổi các bản ghi của cơ sở dữ liệu

15. Chương 15: Ứng dụng Web với Web Forms

15.1. Tìm hiểu về Web Forms

15.2. Các sự kiện của Web Forms

15.3. Hiển thị chuỗi lên trang

15.4. Điều khiển xác nhận hợp

15.5. Một số ví dụ mẫu minh họa

16. Chương 16: Các dịch vụ Web

17. Chương 17: Assemblies và Versioning

17.1. Tập tin PE

17.2. Ranh giới an ninh

17.3. Số hiệu phiên bản (Versioning)

17.4. Assembly nội bộ (private assembly)

17.5. Assembly chia sẻ (shared assembly)

18. Chương 18: Attributes và Reflection

18.1. Attribute mặc định (intrinsic attributes)

18.2. Attribute do lập trình viên tạo ra

19. Chương 19: Marshaling và Remoting

19.1. Miền Ứng Dụng (Application Domains)

20. Chương 20: Thread và Sự Đồng Bộ

20.1. Race condition và DeadLock

21. Chương 21: Luồng dữ liệu

21.1. Tập tin và thư mục

21.2. Đọc và ghi dữ liệu

21.3. Bất đồng bộ nhập xuất

22. Chương 22: Lập trình .NET và COM

2. Phần 2 Xây dựng một ứng dụng minh họa

23. Chương 23: Website dạy học ngôn ngữ C#

23.1. Hiện trạng và yêu cầu

23.2. Phân tích hướng đối tượng

23.3. Thiết kế hướng đối tượng

Tóm tắt

Tóm tắt

I. Tổng Quan Ngôn Ngữ C và Nền Tảng

Ngôn ngữ C# được Microsoft phát triển như một phần của .NET Framework, tập trung vào lập trình hướng đối tượng và Internet. Mục tiêu của C# là cung cấp một ngôn ngữ lập trình đơn giản, an toàn, hiện đại, hướng đối tượng và hiệu năng cao. C# tích hợp những tinh hoa từ Java, C++, Visual Basic, tạo nên một công cụ mạnh mẽ trên nền tảng .NET. Khi học C#, cần hiểu rõ về môi trường thực thi .NET Framework để tận dụng tối đa tiềm năng của ngôn ngữ này. .NET Framework là bộ khung phát triển ứng dụng mới, cung cấp API mới cho các dịch vụ và hệ điều hành Windows. Kiến trúc DNA tích hợp COM+, ASP, XML, hỗ trợ các giao thức dịch vụ web như SOAP, WSDL và UDDL. .NET bao gồm các ngôn ngữ (như C# và Visual Basic .NET), công cụ phát triển (Visual Studio .NET), thư viện ứng dụng web và Windows, cùng với CLR (Common Language Runtime). Các dịch vụ web thương mại miễn phí và hỗ trợ các thiết bị không phải PC cũng là một phần của .NET. Các ngôn ngữ .Net cùng sinh ra mã IL, các đối tượng được tạo theo một ngôn ngữ nào đó sẽ được truy cập và thừa kế bởi các đối tượng của ngôn ngữ khác. Do đó ta có thể tạo được một lớp cơ sở trong VB.Net và thừa kế nó từ C#.

1.1. Tìm Hiểu Kiến Trúc .NET Framework Chi Tiết

Kiến trúc .NET Framework bao gồm CLR (Common Language Runtime), FCL (Framework Class Library), và các ngôn ngữ lập trình. CLR cung cấp môi trường thực thi, kiểm tra bảo mật, cấp phát bộ nhớ và thu dọn. FCL cung cấp API hướng đối tượng cho các chức năng của .NET, bao gồm các lớp cơ sở, lớp dữ liệu và XML, lớp cho dịch vụ web, web form và Windows form. Các lớp dữ liệu hỗ trợ thao tác dữ liệu trên cơ sở dữ liệu thông qua SQL và ADO.Net. Lớp XML hỗ trợ thao tác dữ liệu XML, tìm kiếm và diễn dịch XML. Ví dụ, mọi thứ trong .Net đều là đối tượng, thừa kế từ lớp gốc System.Object.

1.2. Vai Trò của MSIL Microsoft Intermediate Language

Trong .NET, chương trình không biên dịch thành tập tin thực thi, mà biên dịch thành ngôn ngữ trung gian MSIL (IL). Các tập tin IL từ C# đồng nhất với các tập tin IL từ ngôn ngữ khác. Khi chạy chương trình, IL được biên dịch bằng trình JIT (Just In Time) thành mã máy. Trình biên dịch JIT chỉ chạy khi có yêu cầu. Khi một phương thức được gọi, JIT phân tích IL và sinh ra mã máy tối ưu cho từng loại máy. Trình biên dịch JIT chỉ chạy khi có yêu cầu. Khi một phương thức được gọi, JIT phân tích IL và sinh ra mã máy tối ưu cho từng loại máy.

II. Hướng Dẫn Tạo Chương Trình Hello World Bằng C

Để làm quen với C#, chương trình "Hello World" là bước khởi đầu quan trọng. Chương trình này minh họa cách khai báo lớp, phương thức và sử dụng đối tượng Console để hiển thị thông tin. Bản chất của lập trình hướng đối tượng là tạo ra các kiểu mới (lớp). Một lớp định nghĩa một kiểu dữ liệu mới, cho phép mở rộng ngôn ngữ. Các hành vi của một lớp được gọi là phương thức. Phương thức là một hàm định nghĩa những gì một lớp có thể làm. C# có ba kiểu ghi chú: //, /*...*/, và ghi chú XML. Ứng dụng "Hello World" là một ứng dụng console, không có giao diện đồ họa, nhập xuất thông qua console chuẩn. Ví dụ như phương thức Main() viết ra màn hình dòng “Hello World”.

2.1. Cấu Trúc Cơ Bản của Một Chương Trình C

Một chương trình C# cơ bản bao gồm khai báo lớp, phương thức Main(), và sử dụng các đối tượng để thực hiện các hành động. Phương thức Main() là điểm bắt đầu của ứng dụng. Namespaces được sử dụng để tổ chức các lớp và giảm bớt lượng tên phải nhớ. Toán tử . được dùng để truy xuất dữ liệu và phương thức của một lớp. Từ khóa using cho phép sử dụng các lớp trong namespace mà không cần chỉ định đầy đủ tên. Ví dụ, đoạn mã System.Console.WriteLine("Hello World"); có thể được viết ngắn gọn hơn thành Console.WriteLine("Hello World"); nếu chúng ta sử dụng using System;.

2.2. Cách Biên Dịch và Chạy Chương Trình trên Visual Studio

Sử dụng Visual Studio .NET là cách hiệu quả để viết, biên dịch và chạy chương trình C#. Chọn File > New > Project > Visual C# > Console Application, điền tên và đường dẫn, sau đó nhấn OK. Soạn thảo mã nguồn trong cửa sổ soạn thảo. Biên dịch chương trình bằng Ctrl+Shift+B hoặc Build > Build Solution. Chạy chương trình bằng Ctrl+F5 hoặc Debug > Start Without Debugging. Trình gỡ rối của VS.Net cho phép đặt điểm ngắt, chạy từng bước và quan sát giá trị biến. Ví dụ như bấm chuột trái vào phía lề trái, tại đó sẽ hiện lên một chấm đỏ.

III. Các Cơ Sở Ngôn Ngữ C Biến Kiểu Dữ Liệu và Toán Tử

Trong C#, kiểu dữ liệu phải được khai báo rõ ràng. Trình biên dịch kiểm tra dữ liệu được gán cho đối tượng có hợp lệ không và cấp phát đúng kích thước bộ nhớ. C# phân thành hai loại: dữ liệu dựng sẵn và do người dùng định nghĩa, chia thành kiểu giá trị (lưu trong stack) và tham chiếu (lưu trong heap). C# cũng hỗ trợ con trỏ, nhưng ít sử dụng. Biến dùng để lưu trữ dữ liệu, thuộc về một kiểu dữ liệu. Hằng là biến có giá trị không thay đổi. Enum đặt tên cho các trị nguyên, làm chương trình rõ ràng hơn. Chuỗi là kiểu dựng sẵn, một chuỗi các ký tự đơn lẻ. Định danh là tên đại diện cho kiểu, phương thức, biến, hằng, đối tượng... Biểu thức định lượng giá trị. Khoảng trắng không quan trọng, trừ trong chuỗi ký tự.

3.1. Phân Loại và Sử Dụng Các Kiểu Dữ Liệu Dựng Sẵn

C# có nhiều kiểu dữ liệu dựng sẵn, ánh xạ đến các kiểu được hỗ trợ bởi CLS. Mỗi kiểu có kích thước cố định. Các kiểu số nguyên (byte, short, int, long) lưu trữ số nguyên có hoặc không dấu. Kiểu floatdouble lưu trữ số thực. Kiểu char biểu diễn ký tự Unicode. Kiểu bool lưu trữ giá trị true hoặc false. Việc chọn kiểu dữ liệu phù hợp quan trọng để tối ưu hiệu năng và tránh lỗi tràn dữ liệu. Ví dụ, nếu chỉ cần lưu số nguyên nhỏ, nên sử dụng byte thay vì int.

3.2. Các Loại Toán Tử và Thứ Tự Ưu Tiên Trong C

C# cung cấp nhiều loại toán tử để thao tác trên dữ liệu, bao gồm toán học (+, -, *, /, %), logic (&, |, ^, !, &&, ||), quan hệ (==, !=, <, >, <=, >=), gán (=, +=, -=, *=, /=, %=), tăng/giảm (++, --), dịch bit (<<, >>). Toán tử gán cho phép thay đổi giá trị của biến. Toán tử quan hệ so sánh hai giá trị và trả về kiểu bool. Thứ tự ưu tiên của các toán tử quan trọng để đảm bảo biểu thức được tính toán đúng. Ví dụ, phép nhân và chia có độ ưu tiên cao hơn phép cộng và trừ.

3.3. Tìm hiểu sâu về Vùng Tên Namespace và Chỉ Thị Tiền Xử Lý

Vùng tên tổ chức mã nguồn thành các nhóm có ngữ nghĩa liên quan, giúp tránh xung đột tên và dễ quản lý mã. Các vùng tên con được truy xuất thông qua tên vùng tên cha cách nhau bằng dấu chấm. Chỉ thị tiền xử lý được biên dịch trước các câu lệnh khác. #define định nghĩa một định danh tiền xử lý, #undef hủy một định danh, #if, #elif, #else, #endif chọn lựa xem có tiền biên dịch hay không, #region#endregion cho phép mở/đóng các ghi chú trong IDE. Ví dụ, #define DEBUG định nghĩa định danh DEBUG, cho phép biên dịch các đoạn mã gỡ lỗi.

IV. Lớp và Đối Tượng Trong C Định Nghĩa Khởi Tạo Hủy

Đối tượng là một trị có thể được tạo, lưu giữ và sử dụng. Trong C#, tất cả các biến đều là đối tượng. Mỗi đối tượng có biến thành viên (lưu trữ dữ liệu) và phương thức (tác động lên biến thành viên). Mỗi đối tượng thuộc về một lớp. Các đối tượng cùng lớp có cùng biến thành viên và phương thức. Định nghĩa lớp bằng cú pháp [attribute][bổ từ truy xuất] class định danh [:lớp cơ sở] { thân lớp }. Bổ từ truy xuất xác định thành viên nào của lớp được truy xuất từ lớp khác (public, protected, internal, private). Hàm dựng là phương thức đầu tiên được gọi khi khởi tạo đối tượng, thiết lập các tham số đầu tiên. C# cũng cung cấp bộ thu dọn rác tự động, ngầm hủy các biến khi không dùng.

4.1. Cách Tạo và Sử Dụng Hàm Dựng Constructor Trong C

Hàm dựng là phương thức đầu tiên được triệu gọi và chỉ gọi một lần khi khởi tạo đối tượng, nó nhằm thiết lập các tham số đầu tiên cho đối tượng. Tên hàm dựng trùng tên lớp; còn các mặt khác như phương thức bình thường. Nếu lớp không định nghĩa hàm dựng, trình biên dịch tự động tạo một hàm dựng mặc định. Khi đó các biến thành viên sẽ được khởi tạo theo các giá trị mặc định. Ví dụ, kiểu số (int, long, ...) có giá trị mặc định là 0, kiểu bool là false, kiểu char là '\0', và kiểu tham chiếu là null. Có thể tạo hàm dựng sao chép để sao chép toàn bộ nội dung các biến từ đối tượng đã tồn tại sang đối tượng mới khởi tạo.

4.2. Truyền Tham Số và Nạp Chồng Phương Thức Trong Lớp C

C# cung cấp các tham số ref để hiệu chỉnh giá trị của những đối tượng bằng các tham chiếu. Một hàm chỉ có thể trả về một giá trị, nhưng sử dụng tham chiếu có thể trả về nhiều kết quả. Trong C#, tất cả các biến có kiểu tham chiếu sẽ mặc định là tham chiếu. Có thể dùng tham số out để không cần khởi tạo tham số trước khi dùng. Nạp chồng phương thức cho phép có nhiều phương thức cùng tên với các tham số khác nhau. Cần kiểm tra xem một đối tượng là một thể hiện của lớp nào không bằng từ khóa is, cần ép kiểu đối tượng thì làm bằng từ khóa as.

4.3. Đóng Gói Dữ Liệu Bằng Property và Trường Chỉ Đọc Readonly

Để đọc hoặc gán giá trị cho biến thành viên, C# cung cấp property cho hàm get và set. Khai báo property không có tham số và cặp ngoặc. Trong thân property dùng get/set cho hai hành động lấy/thiết đặt giá trị thuộc tính. Trong thân set, có biến value, biến này sẽ nhận giá trị được gán cho Property. Nếu không cài đặt hàm set, property sẽ có tính chỉ đọc. C# cung cấp từ khoá readonly để khai báo các biến thành viên chỉ được gán giá trị một lần vào lúc khởi tạo qua constructor.

V. Thừa Kế và Đa Hình trong C Mở Rộng Khả Năng Tái Sử Dụng

Thừa kế cho phép tạo mới một lớp từ những lớp có sẵn, tái sử dụng mã nguồn. Trong C#, mối quan hệ chi tiết hoá là một kiểu kế thừa. Lớp cơ sở (base class) cung cấp các đặc tính chung, lớp kế thừa (derived class) thừa hưởng và chi tiết hoá. Đa hình là việc lớp B thừa kế các đặc tính từ lớp A nhưng có thêm cài đặt riêng. Đa hình là cách có thể dùng nhiều dạng của một kiểu mà không quan tâm đến chi tiết. Thừa kế không cho mang ý nghĩa chi tiết hoá mà còn mang ý nghĩa chung của tự nhiên về mối quan hệ này.

5.1. Cách Thực Hiện Kế Thừa và Gọi Hàm Dựng Lớp Cơ Sở

Trong C#, tạo lớp kế thừa bằng cách thêm dấu : và tên của lớp cơ sở. Lớp kế thừa thừa hưởng tất cả phương thức và biến thành viên của lớp cơ sở. Hàm dựng không được thừa kế, nên lớp kế thừa phải thực hiện hàm dựng riêng. Gọi hàm dựng của lớp cơ sở thông qua từ khoá base. Nếu lớp cơ sở có hàm dựng mặc định, thì hàm dựng lớp kế thừa không cần gọi tường minh.

5.2. Phương Thức Ảo Virtual và Phương Thức Ghi Đè Override trong C

Tạo phương thức đa hình, cần đặt từ khoá virtual trong phương thức của lớp cơ sở. Trong lớp kế thừa, để nạp chồng lại mã nguồn của lớp cơ sở dùng từ khoá override khi khai báo phương thức. Để gọi các phương thức của lớp cơ sở C# dùng từ khoá base. Dùng hình thức đa hình phương thức thì tuỳ kiểu khai báo của đối tượng nào thì nó dùng phương thức của lớp đó.

5.3. Lớp Trừu Tượng Abstract và Lớp Niêm Phong Sealed trong C

Phương thức trừu tượng là phương thức chỉ có tên, phải được cài đặt lại ở tất cả các lớp kế thừa. Lớp trừu tượng chỉ thiết lập một cơ sở cho các lớp kế thừa, không thể có bất kỳ một thể hiện nào tồn tại. Lớp niêm phong không cho bất kỳ lớp nào khác kế thừa nó. Dùng từ khoá sealed thay cho abstract để được lớp niêm phong.

VI. Boxing và Unboxing trong C Chuyển Đổi Kiểu Giá Trị và Tham Chiếu

Boxing và unboxing cho phép kiểu giá trị (value type) được đối xử như kiểu tham chiếu (reference type). Biến kiểu giá trị được "gói (boxed)" vào đối tượng Object, sau đó ngươc lại được "tháo (unboxed)" về kiểu giá trị như cũ. Boxing là ngầm định khi ta cung cấp một giá trị ở đó một tham chiếu đến giá trị này và giá trị được chuyển đổi ngầm định. Trả kết quả của một đối tượng về một kiểu giá trị, phải thực hiện mở tường minh nó.

6.1. Quá trình Boxing Đóng Gói Kiểu Giá Trị

Boxing là tiến trình chuyển đổi một kiểu giá trị thành kiểu Object. Boxing là một giá trị được định vị trong một thể hiện của Object. Boxing là ngầm định khi ta cung cấp một giá trị ở đó một tham chiếu đến giá trị này và giá trị được chuyển đổi ngầm định. Ví dụ, int i = 123; object o = i;

6.2. Quá trình Unboxing Mở Gói Trở Lại Kiểu Giá Trị

Trả kết quả của một đối tượng về một kiểu giá trị, ta phải thực hiện mở tường minh nó. Ta nên thiết lập theo hai bước sau: 1. Chắc chắn rằng đối tượng là thể hiện của một trị đã được box. Sao chép giá trị từ thể hiện này thành giá trị của biến.Ví dụ, int i = 123; object o = i; int j = (int) o;

Tóm tắt và mô tả trên trang này được tạo với sự hỗ trợ của AI từ nội dung tài liệu gốc; tài liệu do người dùng đóng góp và được kiểm duyệt trước khi xuất bản. Báo lỗi nội dung.

22/09/2025
Công nghệ phần mềm đồ án tìm hiểu ngôn ngữ c và ứng dụng minh họa

Trích đoạn nội dung tài liệu

Chương 1 C# và .Net Framework Mục tiêu của C# là cung cấp một ngôn ngữ lập trình đơn giản, an toàn, hiện đại, hướng đối tượng, đặt trọng tâm vào Internet, có khả năng thực thi cao cho môi trường. C# là một ngôn ngữ mới, nhưng tích hợp trong nó những tinh hoa của ba thập kỷ phát triển của ngôn ngữ lập trình. Ta có thể dể dàng thầy trong C# có những đặc trưng quen thuộc của Java, C++, Visual Basic, … Đề tài này đặt trọng tâm giới thiệu ngôn ngữ C# và cách dùng nó như là một công cụ lập trình trên nền tảng. Với ngôn ngữ C++, khi học nó ta không cần quan tâm đến môi trường thực thi.

Với ngôn ngữ C#, ta học để tạo một ứng dụng .NET, nếu lơ là ý này có thể bỏ lỡ quan điểm chính của ngôn ngữ này. Do đó, trong đề tài này xét C# tập trung trong ngữ cảnh cụ thể là nền tảng .NET của Microsoft và trong các ứng dụng máy tính để bàn và ứng dụng Internet. Chương này trình bày chung về hai phần là ngôn ngữ C# và nền tảng .NET, bao gồm cả khung ứng dụng .1 Nền tảng của .NET Khi Microsoft công bố C# vào tháng 7 năm 2000, việc khánh thành nó chỉ là một phần trong số rất nhiều sự kiện mà nền tảng .Net được công công bố.Net là bô khung phát triển ứng dụng mới, nó cung cấp một giao diện lập trình ứng dụng (Application Programming Interface - API) mới mẽ cho các dịch vụ và hệ điều hành Windows, cụ thể là Windows 2000, nó cũng mang lại nhiều kỹ thuật khác nổi bật của Microsoft suốt từ những năm 90. Trong số đó có các dịch vụ COM+, công nghệ ASP, XML và thiết kế hướng đối tượng, hỗ trợ các giao thức dịch vụ web mới như SOAP, WSDL và UDDL với trọng tâm là Internet, tất cả được tích hợp trong kiến trúc DNA.NET bao gồm bốn nhóm sau: 1.

Một tập các ngôn ngữ, bao gồm C# và Visual Basic .Net; một tập các công cụ phát triển bao gồm Visual Studio .Net; một tập đầy đủ các thư viện phục vụ cho việc xây dựng các ứng dụng web, các dịch vụ web và các ứng dụng Windows; còn có CLR - Common Language Runtime: (ngôn ngữ thực thi dùng chung) để thực thi các đối tượng được xây dựng trên bô khung này. Một tập các Server Xí nghiệp .Net như SQL Server 2000. Exchange 2000, BizTalk 2000, … chúng cung cấp các chức năng cho việc lưu trữ dữ liệu quan hệ, thư điện tử, thương mại điện tử B2B, … 2 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.Net Framework Gvhd: Nguyễn Tấn Trần Minh Khang 3. Các dịch vụ web thương mại miễn phí, vừa được công bố gần đậy như là dự án Hailstorm; nhà phát triển có thể dùng các dịch vụ này để xây dựng các ứng dụng đòi hỏi tri thức về định danh người dùng… 4.NET cho các thiết bị không phải PC như điện thoại (cell phone), thiết bị game 1.Net hỗ trợ tích hợp ngôn ngữ, tức là ta có thể kế thừa các lớp, bắt các biệt lệ, đa hình thông qua nhiều ngôn ngữ.NET Framework thực hiện được việc này nhờ vào đặc tả Common Type System - CTS (hệ thống kiểu chung) mà tất cả các thành phần .Net đều tuân theo.

Ví dụ, mọi thứ trong .Net đều là đối tượng, thừa kế từ lớp gốc System.Net còn bao gồm Common Language Specification - CLS (đặc tả ngôn ngữ chung). Nó cung cấp các qui tắc cơ bản mà ngôn ngữ muốn tích hợp phải thỏa mãn. CLS chỉ ra các yêu cầu tối thiểu của ngôn ngữ hỗ trợ. Trình biên dịch tuân theo CLS sẽ tạo các đối tượng có thể tương hợp với các đối tượng khác.

Bộ thư viện lớp của khung ứng dụng (Framework Class Library - FCL) có thể được dùng bởi bất kỳ ngôn ngữ nào tuân theo CLS.NET Framework nằm ở tầng trên của hệ điều hành (bất kỳ hệ điều hành nào không chỉ là Windows).NET Framework bao bao gồm: • Bốn ngôn ngữ chính thức: C#, VB.Net, C++, và Jscript.NET • Common Language Runtime - CLR, nền tảng hướng đối tượng cho phát triển ứng dụng Windows và web mà các ngôn ngữ có thể chia sẻ sử dụng. • Bộ thư viện Framework Class Library - FCL. Hình 1-1 Kiến trúc khung ứng dụng .Net 3 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.Net Framework Gvhd: Nguyễn Tấn Trần Minh Khang Thành phần quan trọng nhất của .NET Framework là CLR, nó cung cấp môi trường cho ứng dụng thực thi, CLR là một máy ảo, tương tự máy ảo Java. CLR kích hoạt đối tượng, thực hiện kiểm tra bảo mật, cấp phát bộ nhớ, thực thi và thu dọn chúng.

Trong Hình 1-1 tầng trên của CLR bao gồm: • Các lớp cơ sở • Các lớp dữ liệu và XML • Các lớp cho dịch vụ web, web form, và Windows form. Các lớp này được gọi chung là FCL, Framework Class Library, cung cấp API hướng đối tượng cho tất cả các chức năng của. Các lớp cơ sở tương tự với các lớp trong Java. Các lớp này hỗ trợ các thao tác nhập xuất, thao tác chuổi, văn bản, quản lý bảo mật, truyền thông mạng, quản lý tiểu trình và các chức năng tổng hợp khác … Trên mức này là lớp dữ liệu và XML.

Lớp dữ liệu hỗ trợ việc thao tác các dữ liệu trên cơ sở dữ liệu. Các lớp này bao gồm các lớp SQL (Structure Query Language: ngôn ngữ truy vấn có cấu trúc) cho phép ta thao tác dữ liệu thông qua một giao tiếp SQL chuẩn. Ngoài ra còn một tập các lớp gọi là ADO.Net cũng cho phép thao tác dữ liệu. Lớp XML hỗ trợ thao tác dữ liệu XML, tìm kiếm và diễn dịch XML.

Trên lớp dữ liệu và XML là lớp hỗ trợ xây dựng các ứng dụng Windows (Windows forms), ứng dụng Web (Web forms) và dịch vụ Web (Web services).3 Biên dịch và ngôn ngữ trung gian (MSIL) Với .NET chương trình không biên dịch thành tập tin thực thi, mà biên dịch thành ngôn ngữ trung gian (MSIL - Microsoft Intermediate Language, viết tắt là IL), sau đó chúng được CLR thực thi. Các tập tin IL biên dịch từ C# đồng nhất với các tập tin IL biên dịch từ ngôn ngữ. Khi biên dịch dự án, mã nguồn C# được chuyển thành tập tin IL lưu trên đĩa. Khi chạy chương trình thì IL được biên dịch (hay thông dịch) một lần nữa bằng trình Just In Time - JIT, khi này kết quả là mã máy và bộ xử lý sẽ thực thi.

Trình biên dịch JIT chỉ chạy khi có yêu cầu. Khi một phương thức được gọi, JIT phân tích IL và sinh ra mã máy tối ưu cho từng loại máy. JIT có thể nhận biết mã nguồn đã được biên dịch chưa, để có thể chạy ngay ứng dụng hay phải biên dịch lại. CLS có nghĩa là các ngôn ngữ .Net cùng sinh ra mã IL.

Các đối tượng được tạo theo một ngôn ngữ nào đó sẽ được truy cập và thừa kế bởi các đối tượng của ngôn ngữ khác. Vì vậy ta có thể tạo được một lớp cơ sở trong VB.Net và thừa kế nó từ C#. 4 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.Net Framework Gvhd: Nguyễn Tấn Trần Minh Khang 1.4 Ngôn ngữ C# C# là một ngôn ngữ rất đơn giản, với khoảng 80 từ khoá và hơn mười kiểu dữ liệu dựng sẵn, nhưng C# có tính diễn đạt cao. C# hỗ trợ lập trình có cấu trúc, hướng đối tượng, hướng thành phần (component oriented).

Trọng tâm của ngôn ngữ hướng đối tượng là lớp. Lớp định nghĩa kiểu dữ liệu mới, cho phép mở rộng ngôn ngữ theo hướng cần giải quyết. C# có những từ khoá dành cho việc khai báo lớp, phương thức, thuộc tính (property) mới. C# hỗ trợ đầy đủ khái niệm trụ cột trong lập trình hướng đối tượng: đóng gói, thừa kế, đa hình.

Định nghĩa lớp trong C# không đòi hỏi tách rời tập tin tiêu đề với tập tin cài đặt như C++. Hơn thế, C# hỗ trợ kiểu sưu liệu mới, cho phép sưu liệu trực tiếp trong tập tin mã nguồn. Đến khi biên dịch sẽ tạo tập tin sưu liệu theo định dạng XML. C# hỗ trợ khái niệm giao diện, interfaces (tương tự Java).

Một lớp chỉ có thể kế thừa duy nhất một lớp cha nhưng có thế cài đặt nhiều giao diện. C# có kiểu cấu trúc, struct (không giống C++). Cấu trúc là kiểu hạng nhẹ và bị giới hạn.Cấu trúc không thể thừa kế lớp hay được kế thừa nhưng có thể cài đặt giao diện. C# cung cấp những đặc trưng lập trình hướng thành phần như property, sự kiện và dẫn hướng khai báo (được gọi là attribute).

Lập trình hướng component được hỗ trợ bởi CLR thông qua siêu dữ liệu (metadata). Siêu dữ liệu mô tả các lớp bao gồm các phương thức và thuộc tính, các thông tin bảo mật …. Assembly là một tập hợp các tập tin mà theo cách nhìn của lập trình viên là các thư viện liên kết động (DLL) hay tập tin thực thi (EXE).NET một assembly là một đon vị của việc tái sử dụng, xác định phiên bản, bảo mật, và phân phối. CLR cung cấp một số các lớp để thao tác với assembly.

C# cũng cho truy cập trực tiếp bộ nhớ dùng con trỏ kiểu C++, nhưng vùng mã đó được xem như không an toàn. CLR sẽ không thực thi việc thu dọn rác tự động các đối tượng được tham chiếu bởi con trỏ cho đến khi lập trình viên tự giải phóng. 5 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Khởi đầu Gvhd: Nguyễn Tấn Trần Minh Khang Chương 2 Khởi đầu Chương này ta sẽ tạo, biên dịch và chạy chương trình “Hello World” bằng ngôn ngữ C#. Phân tích ngắn gọn chương trình để giới thiệu các đặc trưng chính yếu trong ngôn ngữ C#.

Ví dụ 2-1 Chương trình Hello World class HelloWorld { static void Main( ) { // sử dụng đối tượng console của hệ thống System.WriteLine("Hello World"); } } Sau khi biên dịch và chạy HelloWorld, kết quả là dòng chữ “Hello World” hiển thị trên màn hình.1 Lớp, đối tượng và kiểu Bản chất của lập trình hướng đối tượng là tạo ra các kiểu mới. Một kiểu biểu diễn một vật gì đó. Giống với các ngôn ngữ lập trình hướng đối tượng khác, một kiểu trong C# cũng định nghĩa bằng từ khoá class (và được gọi là lớp) còn thể hiện của lớp được gọi là đối tượng. Xem Ví dụ 2-1 ta thấy cách khai báo một lớp HelloWorld.

Ta thấy ngay là cách khai báo và nội dung của một lớp hoàn toàn giống với ngôn ngữ Java và C++, chỉ có khác là cuối khai báo lớp không cần dấu “;” 2.1 Phương thức Các hành vi của một lớp được gọi là các phương thức thành viên (gọi tắt là phương thức) của lớp đó. Một phương thức là một hàm (phương thức thành viên còn gọi là hàm thành viên).

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ