Lập trình trong môi trường .NET
Visual studio.NET – Phần 2 Cài đặt dự án startup
Một điểm bạn nên nhớ là cho dù bạn có nhiều dự án trong cùng một giải
pháp, thì chỉ một trong những dự án này chạy trong một lúc. Khi bạn cho
biên dịch một giải pháp, thì tất cả cá dự án trong giải sẽ được biên dịch. Tuy
nhiên, bạn phải khai báo trong visual studio.NET biết dự án nào sẽ bắt đầu
chạy khi bạn muốn gỡ rối chương trình. Nếu bạn có một EXE và nhiều thư
viên mà EXE sẽ gọi thì đương nhiên EXE sẽ là dự án khởi động. Trong
trường hợp của chúng ta, ta có hai EXE độc lập, ta chỉ cần lần lượt gỡ rối
từng dự án.
Bạn có thể bảo Visual studio.NET dự án nào phải chạy trước, bằng cách
click phải lên tên giải pháp để hiện lên trình đơn shortcut, rồi bạn chọn click
mục set startup project để cho hiện lên khung đối thoại solution
"DemoSolution" Property Pages. Bạn có thể cho biết dự án startup hiện
hành, vì nó sẽ là dự án hiện lên in đậm trên cửa sổ Solution Explorer.
Đoạn mã ứng dụng Window:
Một ứng dụng Window chứa đoạn mã khởi động phức tạp hơn nhiều so với
một ứng dụng chạy trên console, vì tạo một cửa sổ là một tiến trình phức tạp.
Chúng tôi sẽ không đề cập chi tiết đến đoạn mã của một ứng dụng window.
Sẽ có một chương dành cho vấn đề này. Trong tạm thời, chúng tôi cho in ra
ở đây bảng liệt kê đoạn mã kết sinh bởi visual studio.NET đối với dự án
BasicForm. Bạn để ý ở đây được gọi là Form1, tượng trưng cho cửa sổ
chính.
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.textBox1 = new System.Windows.Forms.TextBox();
this.SuspendLayout();
//
// textBox1
//
this.textBox1.Location = new System.Drawing.Point(8, 8);
this.textBox1.Name = "textBox1";
this.textBox1.TabIndex = 0;
this.textBox1.Text = "textBox1";
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(292, 273);
this.Controls.AddRange(new
mới. Rõ ràng là không phải đoạn mã được quản lý, nhưng vẫn biên dịch
chạy ngoài .NET runtime. Nếu bạn yêu cầu Visual studio.NET đọc vào một
dự án cũ xưa C++, thì nó đơn giản thêm vào một tập tin solution mới và cập
nhật những tin dự án. Nó để yên các tập tin .dsm và .dsp không thay đổi để
dự án có thể chỉnh sửa bởi Visual studio 6 nếu thấy cần thiết.
Đối với Visual basic thì có vấn đề, vì nó đã được thay thế bởi
VB.NET. Trên VB6, mã nguồn phần lớn bao gồm những bộ điều khiển sự
kiện đối với những control . Đoạn mã hiện lo việc hiển lộ cửa sổ chính và tất
cả control trên ấy, không phải là thành phần của VB, nhưng lại nằm ẩn ở
bên dưới như là thành phần cấu hình của dự án. Ngược lại, VB.NET hoạt
động giống C#, bằng cách trưng ra toàn bộ chương trình mở toang như là mã
nguồn, do đó tất cả đoạn mã sẽ hiển thị cửa sổ chính và tất cả các ô control
trên ấy, đều nằm trong tập tin mã nguồn. Giống C#, VB .NET đòi hỏi mọi
việc phải thiên đối tượng và thuộc lớp, trong khi ấy VB 6 không công nhận
khái niệm lớp như đúng ý nghĩa của nó. Nếu bạn cố thử đọc một dự án VB6
với Visual studio .NET nó sẽ nâng cấp toàn bộ mã nguồn của VB6. Visual
studio.NET cũng có thể tự động thực hiện những thay đổi này và tạo một
giải pháp VB.NET mới và lúc này nó sẽ khác nhiều so với mã nguồn VB6 bị
chuyển đổi và bạn sẽ phải kiểm tra để đảm bảo dự án vẫn hoạt động đúng
đắn. Có nhiều khúc trên đoạn mã Visual studio.NET còn ghi chú những chú
giải khi nó không biết sẽ làm gì với đoạn mã này, và buộc lòng bạn phải
chỉnh sửa bằng tay.
Khảo sát và viết đoạn mã một dự án:
Folding editor:
Điều khá lý thú trên Visual studio.NET là việc sử dụng một folding editor
như là code editor mặc nhiên. Bạn thử nhìn xem hình sau đây, cho thấy đoạn
mã kết sinh bởi ứng dụng console.
Bạn có nhận thấy ở phía tay trái màn hình, những ô vuông nhỏ có dấu trừ (-)
ở trong; Những ký hiệu này cho biết một khối lệnh bắt đầu, bạn có thể click
shortcut này. Điều này rất hữu ích khi bạn muốn thêm những thành phần
COM hoặc ActiveX control không có trên toolbox theo mặc định.
Nếu bạn muốn thêm một thành phần COM lên dự án bạn có thể click thành
phần này lôi thả lên form giống như bạn đã làm với các ô control .NET. Lúc
này visual studio.NET sẽ tự động thêm đoạn mã liên thông COM cần thiết
cho phép dự án có thể gọi hàm control COM.
Bây giờ bạn muốn thấy toolbox hoạt động thế nào. Bạn muốn đặt một
textbox lên dự án BasicForm. Bạn cho hiện lên Toolbox bằng cách click lên
icon hoặc ấn Ctrl+Alt+X, hoặc ra lệnh View/Toolbox. Rồi bạn click tiếp lên
biểu mẫu đang ở chế độ Design. Bây giờ biểu mẫu mang dáng dấp như sau
Tuy nhiên, điểm lý thú là nếu ta nhìn vào đoạn mã, ta thấy IDE đã thêm
đoạn mã khởi tạo một đối tượng textbox được đặt lên biểu mẫu. Có thêm
một biến thành viên trên lớp Form1:
public class Form1 : System.Windows.Forms.Form
{
private System.Windows.Forms.TextBox textBox1;
Ngoài ra, một đoạn mã được thêm vào phương thức InitializeComponent(),
khởi gán thành phần. Hàm này sẽ được gọi bởi contructor của Form1:
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.textBox1 = new System.Windows.Forms.TextBox();
this.SuspendLayout();
//
// textBox1