C# quản lý mã nguồn theo cấu trúc cây gần giống với cấu trúc thư mục và bao gồm hai cấp độ cơ bản: Project và Solution.
Trong nội dung thực hành của bài cài đặt Visual Studio, chúng ta đã tạo ra một project thuộc loại Console App bên trong một solution. Theo đó solution được đặt tên là BOOKMAN, còn project đặt tên là ConsoleApp.
Trong suốt giai đoạn học lập trình C# cơ bản chúng ta sẽ chỉ xây dựng ứng dụng với giao diện dòng lệnh (Console App). Đây là loại ứng dụng đơn giản nhất thường sử dụng trong việc học lập trình cơ bản.
Project trong C# là gì?Solution và Project trong C#
Project (dự án) là cấp độ quản lý mã nguồn quan trọng nhất của C#. Mỗi project sau khi biên dịch sẽ tạo ra một chương trình.
Mỗi project mặc định đều chứa:
- các file mã nguồn: là các file văn bản có phần mở rộng .cs (viết tắt của C sharp);
- các file cấu hình của chương trình: là file xml có phần mở rộng .config;
- các thư viện được tham chiếu tới (References): là danh sách các file thư viện chuẩn của .NET framework, hoặc thư viện từ các hãng thứ ba, hoặc chính các project khác, chứa các class được sử dụng bởi các class trong project này.
- các thuộc tính (Properties): bao gồm nhiều loại thông tin khác nhau quyết định những tính chất quan trọng của project, như phiên bản của .NET framework được sử dụng, loại chương trình mà dự án này sẽ được dịch thành, các tài nguyên được sử dụng trong project, cấu hình của ứng dụng, v.v.. Visual Studio cung cấp giao diện đồ họa để có thể dễ dàng quản lý các thông tin này. Giao diện này mở ra khi click đúp vào mục Properties của project.
Tất cả các thành phần của một project đều đặt chung trong một thư mục cùng tên với project.
Solution trong C# là gì?
Solution (giải pháp) là cấp độ quản lý mã nguồn cao nhất trong C# cho phép quản lý tập trung nhiều project.
Mỗi solution trong C# có thể chứa nhiều project. Nếu solution không chứa project nào, nó gọi là Empty Solution. Tại mỗi thời điểm Visual Studio chỉ có thể mở một solution.
Trên giao diện Visual Studio, solution và các project của nó được hiển thị trong một cửa sổ riêng gọi là Solution Explorer. Cửa sổ này hiển thị tất cả các thành phần trong dự án C# theo cấu trúc cây, với solution làm gốc, các project là các nhánh trực tiếp xuất phát từ gốc này.
Ngoài ra, để tiện lợi trong việc quản lý các project thành viên, solution cho phép tạo thêm các thư mục, gọi là Solution Folder, trong đó lại có thể chứa các project khác. Cấu trúc quản lý này cho phép quản lý một số lượng lớn project một cách dễ dàng. Các project trong cùng một solution thường có quan hệ nhất định với nhau.
Nếu vô tình đóng cửa sổ Solution Explorer có thể mở lại bằng cách chọn View => Solution Explorer hoặc bấm tổ hợp Ctrl + Alt + L.
Quy ước đặt tên solution và project của C#
Đối với solution, quy tắc đặt tên tương tự như đối với file và thư mục trong windows.
Tuy nhiên, theo “truyền thống” của C#, tên solution nên đặt theo quy ước: (1) bắt đầu bằng chữ hoa, (2) sử dụng PascalCasing (viết hoa chữ đầu mỗi từ) nếu chứa nhiều từ, (3) không nên chứa dấu cách hoặc số.
Đối với project, quy tắc đặt tên chặt chẽ hơn vì tên project mặc định sẽ được sử dụng làm namespace (không gian tên – xem trong phần tiếp theo) của tất cả các file mã nguồn của project đó. Tuy nhiên, Visual Studio có thể tự động chuyển đổi tên cho phù hợp quy tắc.
Một trong những quy ước thường được sử dụng để đặt tên project là: (1) chứa tên solution; (2) đặt tên riêng của project và phân tách với phần solution bằng một dấu chấm; (3) tuân thủ các quy ước đặt tên solution ở trên.
Quy ước đặt tên solution và project này rất có ích vì nó giúp tự động tạo ra cấu trúc namespace (xem dưới đây) phù hợp cho các file mã nguồn.
Cấu trúc file/thư mục của C# project
Nếu ở giai đoạn tạo project chúng ta đánh dấu lựa chọn “Create directory for solution”, Visual Studio sẽ tạo ra một thư mục có tên được xác định trong mục “Solution name”. Mỗi project được tạo ra sẽ đặt trong một thư mục con của thư mục solution và có cùng tên với project. Tất cả file của một project sẽ nằm trong thư mục này.