MỤC LỤC
Thông thờng, mã quản lí là những mã đợc tích hợp sẵn ở trong các th viện lớp hay những mã đợc dịch bởi một chơng trình dịch tuân theo chuẩn CLS tạo ra ngôn ngữ trung gian. Mã không quản lí (unmanaged code) là những mã không đợc soạn thảo, dịch trong môi trờng .NET và không nhằm mục đích chạy trong CLR tuy nhiên CLR vẫn nạp những mã này vào chạy, nó chỉ không hỗ trợ các dịch vụ cho loại mã này.
Windows APIs, những chơng trình .NET sử dụng Windows APIs có nghĩa là nó đã sử dụng mã không quản lý.
Assembly có thể hiểu nh là một gói cả mã chơng trình, các thành phần, các tài nguyên. Thông tin về tham chiếu kiểu dữ liệu: CLR sử dụng thông tin này để tìm ra những file định nghĩ kiểu dữ liệu đó.
Metadata là tập hợp dữ liệu ở dạng nhị phân diễn tả các thành phần của chơng trình. Metadata đợc lu trữ ở file có thể thực thi ( executable hay .exe , .dll) cùng với mã.
GC thực hiện rất nhiều việc, tuy nhiên nó đợc thực thực hiện tự động bằng CLR, giảm nhẹ đi rất nhiều công việc của ngời lập trình.
Mỗi đối tợng có một giao diện để giao tiếp với các đối tợng khác và một phần dữ liệu đợc che giấu đối với các đối tợng khác. Ngoài ra, C# cúng cho phép ngời lập trình thực hiện các hoạt động sử dụng lại dữ liệu nh kế thừa, đa hình thái và kết tập.
Các lệnh throw, try, catch: các lệnh phục vụ cho quá trình quản lí lỗi trong thời gian chạy ( runtime – error ) gồm có phát ra một lỗi ( throw ), cặp lệnh try – catch đón nhận một lỗi và đa ra hành động xử lí lỗi. Nếu nh trong C, đơn vị chơng trình lớn nhất là các hàm ( modul), trong Java và C++, đơn vị chơng trình lớn nhất là các lớp ( class) thì trong C#, đơn vị chơng trình lớn nhất là không gian tên (namespace).
Hàm main phải là static và xây dựng trong một lớp, có thể trả lại giá trị Int hay không trả về giá trị.
Ví dụ, cấu trúc Rectangle lưu trữ thông tin về vị trí và kích cỡ của hình chữ nhật; lớp Pen lưu trữ thông tin về màu sắc, độ rộng đường thẳng và kiểu đường thẳng; Còn lớp Graphics có các phương thức cho dựng đường thẳng, hình chữ nhật, đồ thị và các hình hình học khác. Ngữ cảnh thiết bị và đối tượng Graphics có vai trò tương tự nhau nhưng có một số khác biệt cơ bản giữa mô hình lập trình dựa trên các handle (hay con trỏ) trong GDI và mô hình lập trình hướng đối tượng trong GDI+.
Đa luồng: chỉ tồn tại trong một ứng dụng, bao gồm các công việc của một ứng dụng đợc chạy đồng thời, chúng chia sẻ tài nguyên CPU và bộ nhớ mà hệ điều hành phân cho ứng dụng đó, chúng đợc điều khiển bởi một mô đun trong ứng dụng. Mỗi luồng có gán cho một không gian riêng trong phạm vi không gian cho ứng dụng và các luồng khác không chia sẻ các nguồn tài nguyên đó. Mô hình Apartment thì hiệu quả hơn mô hình single threading bởi vì công việc đợc phân chia giữa nhiều đối tợng trong khi mô hình free thì nhanh nhất và hữu hiệu nhất.
Nhng chế độ free ẩn chứa nhiều rủi ro bởi vì sự chia sẻ tài nguyên giữa nhiều đối tợng, ngời lập trình cần phải chú ý nhiều đến sự.
Tuy nhiên đến bớc trên luồng vẫn cha thực hiện đợc và vẫn ở trạng thái Unstarted và khi ta gọi phơng thức Start của lớp Thread thì hệ điều hành sẽ thay đổi trạng thái của luồng tới trạng thái ThreadState.Running. Phơng thức này tung ra hai lỗi ngoại lệ là ThreadSateException khi mà lời gọi cố gắng gia nhập luồng trong khi đang ở trạng thai ThreadState.Unstarted và ngoại lệ thứ hai xảy ra là ThreadInterruptException tức là luồng bị ngắt trong khi đang chờ đợi. Khi một luồng mới tạo thành nó ở trạng thái unstarted, luồng duy trì ở trạng thái này cho đến khi phơng thức Thread.Start() đặt luồng vào trạng thái bắt đầu chạy Started và lập tức chuyển điều khiển đến luồng vừa gọi.
Một luồng khi đợc tạo ra khi chạy sẽ có cài đặt mặc định mức độ u tiên Normal và các luồng sẽ chạy trên cơ sở mức độ u tiên của chúng.Thuật toán định thời gian biểu cho luồng nhằm xác định trật tự của các luồng đa ra thực hiện biến đổi theo hệ điều hành.
Cũn định dạng theo kiểu mở tức là các file nhị phân đó đã đợc chuẩn hoá .Ví dụ nh khi trình soạn thảo đọc đợc các bit 1100001 thì nó sẽ diễn giải thành số ‘97’ và tập tin nhị phân đợc chuẩn hoá còn đợc gọi là tập tin văn bản hay là mang tính chất mở. Tất cả các đoạn code đều có chỗ xác định và mang ý nghĩa trong trang HTML ví dụ nh thẻ “đánh dấu” <B> và </B> cho biết phần nội dung nằm giữa hai thẻ này phải đợc in đậm, thẻ <BR> xác định một chỗ xuống dòng. Không giống nh ngôn ngữ HTML ( HTML đợc coi là một ứng dụng của SGML bởi vì HTML đợc tạo ra dựa trên chuẩn SGML và nó kế thừa nhiều chi tiết từ SGML), XML là tập con của SGML và XML cũng đợc coi là một ‘siêu ngôn ngữ’ (ngôn ngữ có thể tạo ra các ngôn ngữ khác).
Thực thể phân tách hay còn đợc gọi là thực thể văn bản ,chứa các dữ liệu văn bản ,trờ thành một phần của tài liệu XML .Khi một trình xử lí XML phân tách các thực thể này ,nội dung của chúng xuất hiện nh một phần của tài liệu tại nơi tham chiếu thực thể .Ví dụ nh ta có khai báo nh sau : <!ENTITY E “Hello”>. Không gian tên System.Xml.Serialization cung cấp cho chúng ta khả năng chuyển đổi từ t liệu XML sang các dạng cấu trúc dữ liệu khác trên cùng một miền (Deserializing) và chuyển từ tập các đối tợng có thể tạo ra một t liệu XML chuẩn (Serializing). Ta xét ví dụ trên, ta tạo một đối tợng từ lớp Car, với các thuộc tính public và ứng với mỗi thuộc tính của đối tợng nếu ta muốn sau quá trình chuyển hoá nó đợc chuyển thành thuộc tính của thành phần của XML thì ta thêm [XmlAttribute] vào trớc đoạn code đó.
Trong .NET Framework chúng ta sử dụng một socket để kết nối hai mỏy, tiếp đến chóng ta sẽ có một NetworkStream cho phép thao tác socket giống như thao tác với các đối tượng vào ra bình thường khác. Chóng ta có được NetworkStream này từ lớp Socket thụng qua sử dụng một TcpListener giống như một server dựng để lắng nghe các yêu cầu kết nối và một TcpClient dùng giống như một client để khởi tạo kết nối. Ở các ví dụ trên chúng ta đã thấy được sự dể dàng trong việc tạo một socket kết nối cũng như việc thao tác trên các dòng tin StreamNetwork giống như chúng ta đang thao tác trên các dòng tin vào ra bình thường khác.
Phương thức ServerOneJabber.Run() là phương thức tạo một tiến trình đại diện và nó chứa đựng các nhận dạng đối với các JabberServer chỉ in ra màn hình console những gì gửi đến nó.
NET Framework SDK được thiết kế có hổ trợ Microsoft’s Internet Information Server (IIS) và hầu hết các hình thức truy cập trực tiếp đều có hổ trợ giao diện IHttpHandler trong không gian tên System.Web. Thuộc tính quan trọng nhất trong HttpContext là các đối tượng HttpRequest và HttpResponse (chú ý rằng các lớp này khác với các lớp mà được dùng tại client HttpWebRequest và HttpWebResponse). Với “headless”, chúng ta hiểu rằng WebServices không có phần giao diện người dùng (tất nhiên giao diện người dùng cuối cùng thì cũng cần thiết, nhưng nó được thiết lập bởi một số thành phần khác chứ không phải WebServices.
Cũng giống như ADO.NET hay XML thì trang ASP.NET cũng là một công nghệ được tạo nên với C#, nhưng nó không phải là một tập con ASP.NET được biên dịch thành khối các mã lệnh HTML (giống WebServices đã khai báo ở trên).
Giới thiệu ngôn ngữ lập trình C# Phụ lục Giai đoạn tìm kiếm và hiển thị buộc phải tiến hành song song vì dữ liệu từ một Website rất lớn, khó tìm hết trong thời gian ngắn, ngời dùng lại muốn nhìn thấy kết quả. Chơng trình sử dụng 2 luồng, luồng 1 chịu trách nhiệm tìm kiếm, phân tích thông tin từ Website, đa địa chỉ trang Web cùng số lần thuật ngữ xuất hiện vào một hàng, luồng 2 chịu trách nhiệm vào hàng lấy địa chỉ trang Web cùng sô lần xuất hiện ra hiển thị. Chơng trình có sử dụng một giải thuật tìm kiếm nhanh để tìm kiếm thuật ngữ.
Quá trình duyệt link trong trang Web sử dụng quá trình duyệt theo chiều rộng.