Lập trình trong môi trường .NET - Visual Studio.NET (Phần 2)

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.

pdf16 trang | Chuyên mục: Visual C# | Chia sẻ: dkS00TYs | Lượt xem: 2013 | Lượt tải: 1download
Tóm tắt nội dung Lập trình trong môi trường .NET - Visual Studio.NET (Phần 2), để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trê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; 
using System.Data; 
namespace BasicForm 
{ 
 /// 
 /// Summary description for Form1. 
 /// 
 public class Form1 : System.Windows.Forms.Form 
 { 
 private System.Windows.Forms.TextBox textBox1; 
 /// 
 /// Required designer variable. 
 /// 
 private System.ComponentModel.Container components = null; 
 public Form1() 
 { 
 // 
 // Required for Windows Form Designer support 
 // 
 InitializeComponent(); 
 // 
 // TODO: Add any constructor code after InitializeComponent 
call 
 // 
 } 
 /// 
 /// Clean up any resources being used. 
 /// 
 protected override void Dispose( bool disposing ) 
 { 
 if( disposing ) 
 { 
 if (components != null) 
 { 
 components.Dispose(); 
 } 
 } 
 base.Dispose( disposing ); 
 } 
 #region Windows Form Designer generated code 
 /// 
 /// Required method for Designer support - do not modify 
 /// the contents of this method with the code editor. 
 /// 
 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 
System.Windows.Forms.Control[] { 
 this.textBox1}); 
 this.Name = "Form1"; 
 this.Text = "Basic Form - Hello!"; 
 this.ResumeLayout(false); 
 } 
 #endregion 
 /// 
 /// The main entry point for the application. 
 /// 
 [STAThread] 
 static void Main() 
 { 
 Application.Run(new Form1()); 
 } 
 } 
 } 
Đọc vào các dự án Visual studio.NET 6 
Nếu bạn lập trình theo C#, rõ ràng là bạn không cần đọc đến những dự án cũ 
xưa viết trên Visual studio 6, vì C# không có trên Visual studio 6. Tuy 
nhiên, liên thông ngôn ngữ là phần chủ chốt của .NET Framework, do đó có 
thể bạn muốn đoạn mã C# của bạn làm việc chung với VB.NET hoặc C++. 
Trong tình trạng như vậy, có thể bạn cần chỉnh sửa những dự án được tạo ra 
trong Visual studio 6. 
Khi đọc vào những dự án và Workspace viết theo Visual Studio 6, Visual 
studio.NET sẽ cho nâng cấp lên thành những giải pháp visual studio.NET. 
Tình trạng lại khác so với các dự án C++, VB hoặc J++: 
 Ví dụ như trên C++, không cần thiết thay đổi đối với mã nguồn. Tất 
cả các chương trình C++ cũ xưa sẽ còn hoạt động tốt với trình biên dịch C++ 
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 
lên ký hiệu này, nó biến thành dấu cộng (+), và khối lệnh teo lại vói một ô 
hình chữ nhật với 3 dấu chấm. 
 Đây có nghĩa là khi bạn đang chỉnh sửa, bạn có thể tập trung chỉ vào vùng 
nào bạn quan tâm, cho đóng lại những phần đoạn mã nào bạn không quan 
tâm. Không chỉ thế, nhưng nếu bạn không hài lòng cách editor chọn phần 
thành khối lệnh, bạn có thể cho biết một cách khác bằng cách sử dụng những 
chỉ thị tiền xử lý C#, chẳng hạn #region và #endregion. Thí dụ, ta quyết định 
ta muốn có khả năng cho teo lại đoạn nằm trong phương thức Main(), ta 
chèn thêm #region và #endregion như hình dưới: 
 Code editor sẽ tự động phát hiện khối #region và cho đặt dấu trừ ngay hàng 
có chỉ thị #region. Cho bao một khối lệnh nằm giữa cặp chỉ thị #region và 
#endregion có nghĩa là ta muốn cho teo lại tuỳ ý khối lệnh này, như hình 
dưới. Bạn thấy dấu cộng với chú giải ta thêm vào. 
Các cửa sổ khác 
Ngoài code editor, visual studio.NET còn cung cấp một số cửa sổ khác giúp 
bạn nhìn xem dự án theo nhiều góc độ khác nhau. 
Cửa sổ Design view 
Khi bạn thiết kế một ứng dụng Window, một cửa sổ mà bạn sử dụng nhiều 
nhất là Design view. Cửa sổ cho phép bạn hình dung toàn bộ mặt mũi ứng 
dụng của bạn có thể nhìn thấy được. Thông thường, bạn sử dụng phối hợp 
cửa sổ design view với cửa sổ Toolbox. Toolbox chứa vô số thành phần 
.NET mà bạn có thể lôi thả dễ dàng lên mặt bằng form của bạn. 
Bạn có thể thêm riêng của bạn một loại control nào đó, gọi là custom 
control, vào toolbox, bằng cách click phải lên bất cứ loại nào trên toolbox 
rồi chọn mục Add Tab từ trình đơn shortcut. Bạn có thể thêm công cụ khác 
vào toolbox bằng cách chọn mục customize Toolbox cũng trên trình đơn 
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: 
/// 
 /// Required method for Designer support - do not modify 
 /// the contents of this method with the code editor. 
 /// 
 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, 268); 
 this.Controls.AddRange(new System.Windows.Forms.Control[] { 
 this.textBox1}); 
Nếu muốn, bạn cũng có thể thêm bằng tay đoạn mã như trên vào tập tin mã 
nguồn, và Visual studio.NET sẽ phát hiện ra đoạn mã của bạn và cho hiện 
lên control tương ứng. Tuy nhiên, tốt hơn hết là thêm bằng mắt những 
control trên rồi để cho Visual studio.NET lo phần còn lại là thêm những 
đoạn mã thích hợp. Việc click vào toolbox rồi click tiếp lên biểu mẫu, điều 
chỉnh vị trí và kích thước các control này xem ra là nhanh hơn là suy nghĩ và 
gõ vào các lệnh. 
Một lý do là nên thêm bằng mắt các control là vì Visual studio.NET yêu cầu 
những đoạn mã thêm vào bằng tay phải tuân thủ một số qui tắc, mà có thẻ 
bạn không tuân thủ. Đặc biệt, bạn để ý trên phương thức 
InitializeComponent() lo khởi gán textbox có dòng chú giải ở đầu cảnh cáo 
bạn là chớthay đổi. Nói thế, nhưng nếu cẩn thận, bạn cũng có thể hiệu chỉnh 
chẳng hạn giá trị của vài thuộc tính như vậy control có thể hiển thị khác đi. 
Nói tóm lại, muốn tiến hành những thay đổi như thế, bạn phải có kinh 
nghiệm dày dạn và phải cẩn thận hiểu mình muốn gì. 

File đính kèm:

  • pdf69_1638.pdf