Chương 1 TỔNG QUAN VỀ .NET VÀ C# - Tổng quan về .NetFrameWork - Các dạng ứng dụng dùng C# - Cấu trúc chương trình - Cấu trúc thư mục của ứng dụng Tổng quan về .NetFrameWork Thành phần .NetFrameWork - NET Framework là thành phần nền tảng cho mọi công cụ phát triển ứng dụng .NET - NET Framework được thiết kế nhằm hỗ trợ cho các trình ứng dụng và các service thế hệ kế tiếp - Cung cấp các lớp đối tượng (Class) để có thể gọi thi hành các chức năng mà đối tượng đó cung cấp - Cung cấp hơn 5000 lớp đối tượng để gọi thực hiện đủ các loại dịch vụ từ hệ điều hành Thành phần chính của .Net bao gồm: - CLR: Common Language Runtime - FCL: .Net FrameWork Class library Ngoài ra còn có thành phần quản lý mã: - manage code - Unmanage code Đặc điểm chính của .Net CLR FCL Common type System Metadata and Self-Describing Components Cross-Language Interperability Assemblies Application Domains Runtime Hosts Common Language Runtime (CLR) Runtime là một agent quản lý mã nguồn khi nó được thực thi Runtime cung cấp các dịch vụ : quản lý bộ nhớ , quản lý tiểu trình , quản lý từ xa Runtime đảm bảo việc thực hiện được bảo mật và mạnh mẽ Mã nguồn mà đích tới là runtime (managed code) , ngược lại (unmanaged code) -> CLR cung cấp môi trường thực thi chung cho các ngôn ngữ trên nền .NET Bằng cách nào ? 1. Khi biên dịch một ứng dụng .Net 2. Môi trường phát triển dịch mà nguồn thành mã tự quản (managed code) dưới dạng ngôn ngữ trung gian MSIL (hay IL) (Microsoft Intermediate Language) 3. Trình biên dịch phát sinh siêu dữ kiện megadata (thành viên đối tượng , kiểu , tham chiếu ,….) MSIL và megadata -> EXE file Khi thực thi mã ứng dụng (EXE file) 1. Tuỳ thuộc vào chỉ thị người dùng 2. Trình biên dịch tức thời JIT ( Just In Time ) của CLR cung cấp sẽ : Chuyển đổi mã quản lý (managed code) thành mã máy (native code) JIT cất giữ mã máy phát sinh vào bộ nhớ đệm cho các thao tác tương tự Common Type System (CTS) Mã viết bằng VB sau khi biên dịch có thể gọi mã viết bằng ngôn ngữ khác không ? Trả lời : Có (nhờ vào Hệ thống kiểu thông dụng CTS) CTS định nghĩa tập các kiểu dữ liệu chuẩn và các quy tắc tạo ra kiểu dữ liệu Có hai kiểu chính : Kiểu giá trị : integer , userdefined ,enum Kiểu tham chiếu : class , array , contrỏ , interface Gabage Collector (GC) Tôi đã làm việc trên C++ hay Visual C++ có gặp nhiều TH về lỗi thiếu bộ nhớ vậy .Net Framework xứ lý ntn ? CLR của .Net FrameWork có cung cấp Bộ Thu Gom Rác GC quản lý bô nhớ tự động GC luôn theo dõi vùng nhớ được tạo qua các nút (root) của ứng dụng giải phóng nếu không còn sử dụng Framework Class Library - FCL Là một phần trong bộ khung .Net Đóng gói những lớp Hướng Đối Tượng được cung cấp Giúp bạn dễ dàng tạo các ứng dụng trên nền Window , trên nền Web Thư viện lớp của .Net Framework được tổ chức theo cấu trúc cây dựa trên khái niệm namespace (cấu trúc cây) Có thể có nhiều lớp trùng tên nhau nhưng buộc phải nằm ở các namespace khác nhau Namespace : Microsoft.Csharp , Microsoft.VisualBasic , Microsoft.Win32 ,System Class: System.Array , System.Console , System.String , System.Math v.v… Visual Studio . Net 2005 Được thiết kế dựa trên .Net Framework Cho phép triển khai : Ứng dụng trên nhiều ngôn ngữ Visual Basic , Visual C++ , Visual C# , FoxPro Ứng dung Web và Web services Ứng dụng di động Ưu điểm : Tất cả các ngôn ngữ đều dùng chung một Môi Trường Phát Triển Tích Hợp (IDE) Lập trình ASP.Net : Truy cập CSDL hiệu quả , viết ứng dụng dễ dàng hơn 1.1.3. Các dịch vụ .Net Authentication Mesaging Personalized Experience XML 1.2. Các dạng ứng dụng dùng C# Ứng dụng Winform Ứng dụng màn hình và bàn phím Dịch vụ hệ điều hành Thư viện Điều khiển do người dùng định nghĩa Ứng dụng báo cáo Ứng dụng SQL server Ứng dụng PDA và Mobile Ứng dụng đóng gói và triển khai 1.3. Cấu trúc chương trình Mọi chương trình C# dưới dạng thi hành đều phải có điểm khởi động chính là phương thức Main. Tùy vào mỗi loại ứng dụng mà phương thức Main khác nhau Ví dụ phương thức Main trong Winform static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } Phương thức Main trong Console class Program { static void Main(string[] args) { } } 1.4. Cấu trúc thư mục ứng dụng Câu hỏi cuối chương Tìm hiểu về Common Type System(CTS) trong .NET Framework Yêu cầu: Viết khoảng 2-3 trang có hình ảnh minh họa về hệ thống CTS. Tham khảo: + http://msdn.microsoft.com/en-us/library/zcx1eb1e.aspx + http://www.csharphelp.com/2007/04/whats-so-common-about-the-c-common-type-system-cts/