Tải bản đầy đủ (.pdf) (26 trang)

Lập trình trong môi trường .NET part 1

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (280.7 KB, 26 trang )




Visual studio.NET
Visual studio.NET là một môi trường tích hợp triển khai phần mềm(Intergrated
Development Environmet, IDE). Nó được thiết kế để lập ra một tiến trình viết mã, gỡ rối,
và biên dịch thành một assembly một cách dễ dàng. Visual studio.NET cho bạn một ứng
dụng multiple-document-interface rất tinh vi, trong đó bạn có thể liên kết mọi thứ để phát
triển đoạn mã của bạn. Nó bao gồm:
Một Text Editor : trong đó bạn có thể vi
ết đoạn mã C#. Text e ditor này thì hơi phức tạp,
và rất rành cú pháp C#. Tức là, khi bạn gõ các câu lệnh vào, nó sẽ tự động bố trí đoạn của
bạn, ví dụ như bằng cách thụt canh cột các dòng lệnh, cho khớp cặp dấu {}, và tô màu
những từ khoá. Ngoài ra, nó sẽ thực hiện kiểm tra vài cú pháp khi bạn gõ và sẽ gạch dưới
những dòng mã bị sai. Nó còn có thêm một chức năng đặc biệt là Intelliense, nó sẽ tự
độ
ng hiển thị tên của các lớp, trường hay phương thức khi bạn bắt đầu gõ chúng. Khi bạn
bắt đầu đánh các tham số cho phương thức, nó sẽ hiển thị danh sách tham số. Màn hình
bên dưới sẽ chỉ đặc trưng này với một lớp cơ sở .NET là ListBox :

Một Design view editor, nó cho phép bạn đặt giao diện người dùng và các control dữ
liệu truy cập trong dự án của bạn. Khi bạn làm như vậy, Visual studio.NET sẽ t
ự động
thêm những mã C# cần thiết cho tập tin nguồn của bạn để tạo những control này trong dự
án của bạn.
Các cửa sổ hỗ trợ cho phép bạn xem và sửa đổi những khía cạnh khác nhau trên dự án
của bạn. Ví dụ có những cửa sổ cho bạn thấy những lớp hình thành đoạn mã nguồn cũng
như các thuộc tính trên các lớp Windown Form hoặc Web Form. Bạn cũng có thể sử
dụng những cửa sổ này để khai báo các tuỳ chọn biên dịch.
Biên dịch trong lòng môi trường: Để thay cho việc chạy trình biên dịch C# từ dòng
lệnh, bạn có thể chọn một tuỳ chọn menu để biên dịch và Visual Studio.NET sẽ gọi trình


biên dịch cho bạn. Nó cũng có thể chạy một chương trình khả thi đã được biên dịch, như
vậy b
ạn có thể biết chương trình chạy tốt hay không, và bạn có thể chọn giữa hai cấu hình
xây dựng chương trình khác nhau : debug build hoặc release build.
Một Intergate Debugger hỗ trợ việc gỡ rối xuyên ngôn ngữ trong khuôn viên IDE.
Ngoài ra bạn có thể gỡ rối trong một lúc nhiều chương trình. Bạn có thể chỉnh sửa đoạn
mã ngay trong Text editor Visual tsudio.NET để sữa chữa bug, rồi cho biên dịch lại và
cho chạy lại chương trình đã được s
ửa chữa ngay tại chỗ bỏ lở vì lỗi.
Intergated MSDN help Visual studio.NET có thể gọi tài liệu MSDN cho bạn. Ví dụ như
khi bạn không biết ý nghĩa của một từ khoá thì bạn chọn nó và nhấn F1 thì nó sẽ gọi
MSDN lên để giải thích từ đó cho bạn.
Truy cập đến một chương trình khác: Nếu tất cả các tiện ích trên chưa đủ thì Visual
studio.NET có thể gọi các tiện ích khác để cho phép bạn kiểm tra và sửa đổi các khía
cạnh khác của máy tính bạn hay mạng mà bạn không phải rời khỏi môi trường phát triển.
Giữa nhiều công cụ có sẳn, bạn có thể kiểm tra việc chạy các dịch vụ, và sự kết nối dữ
liệu , và có một cửa sổ internet explorer cho phép bạn lướt Web.
Chắc chắn rằng bạn đã có kinh nghiệm trong C++ hay VB trước khi bạn làm quen với
phiên bản Visual studio.NET, do đó bạn biết rằng nhiều chức n
ăng ở trên không mới mẽ.
Tuy nhiên những gì mới trong Visual studio.NET là nó liên kết tất cả chức năng trong
môi trường phát triển của VS 6. Có nghĩa là những ngôn ngữ gì bạn sử dụng trong VS6,
bạn sẽ tìm thấy một vài chức năng mới trong Visual Studio.NET.
Từ bất kỳ nền nào, bạn sẽ tìm thấy tầm nhìn tổng thể của môi trường phát triển đã thay
đổi để điều tiết các chức năng mớ
i, những IDE xuyên ngôn ngữ đơn, và sự hợp nhất với
.NET. Có nhiều menu tuỳ chọn và thanh công cụ tuỳ chọn mới, và nhiều tiện ích khác
trong VS6 đã được đổi tên. Vì thế bạn cần bỏ một khoảng thời gian để làm quen với việc
trình bày và làm chủ trong Visual studio.NET.
Mục đích chính của Visual studio.NET là bảo đảm bạn làm quen với tất cả các khái niệm

về việc xây dựng và gỡ rối trong một ứng dụ
ng C# và có thể sử dụng các chức năng cụ
thể, điều mà không thể làm được trong môi trường phát triển của bất kỳ ngôn ngữ nào
trước.
Màn hình sau sẽ thể hiện màn hình của Visual studio.NET khi bạn viết mã:


Tạo một dự án:
Khi bạn cài đặt Visual studio.NET, bạn sẽ muốn bắt đầu dự án đầu tiên. Với Visual
studio.NET, ít khi bạn bắt đầu với một tâp tin trắng mà bạn sẽ gõ vào đoạn mã C# từ
điểm bắt đầu. Thay vào đó bạn sẽ cho Visual studio.NET biết loại dự án mà bạn muốn
tạo, sau đó nó sẽ tự động tạo ra một đoạn mã C# để tạo thành m
ột sường outline cho dự
án đó. Và bạn chỉ có việc là thêm mã của bạn vào sường đó. Ví dụ, bạn muốn viết một
ứng dụng trên Window GUI, thì Visual studio.NET sẽ bắt đầu tạo một tập tin chứa đoạn
mã nguồn C# cho phép tạo một form cơ bản. Form này có khả năng giao tiếp với
Window, và tiếp nhận những tình huống. Nó cho phép được thu nhỏ hoặc phóng to hoặc
thay đổi kích thước ... Và lúc này bạn sẽ thêm các chứ
c năng bạn mong muốn có đối với
biểu mẫu. Nếu ứng dụng của bạn được dùng theo kiểu dòng lệnh thì visual studio.NET sẽ
cho bạn một namespace cơ bản, lớp, và phương thức Main() để bắt đầu. Dĩ nhiên là nếu
bạn muốn bắt đầu từ số không, thì Visual studio.NET cũng cho bạn chọn một ứng dụng
rỗng.
Khi bạn tạo ra một dự án, nó sẽ dàn dựng nhữ
ng tuỳ chọn biên dịch cần thiết để cung cấp
cho trình biên dịch C# có hay không để biên dịch một ứng dụng dòng lệnh, một thư viên,
hay một ứng dụng Windown. Ngoài ra, những thư viện lớp cơ sở nào bạn sẽ cần. Tuy
nhiên bạn có thể sửa đổi những cài đặt này nếu bạn cần.
Khi bạn bắt đầu với visual studio.NET lần đầu tiên, bạn sẽ được thấy một
start page. Đó

là một trang HTML chứa các liên kết khác nhau để dẫn bạn đến với các trang web hữu
ích, cho phép bạn tạo dáng và cấu hình của Visual studio.NET, hoặc mở những dự án
hiện hữu hoặc khởi động dự án mới . Trên giữa màn hình start page, bạn thấy liệt kê môt
số dự án mà bạn đã làm việc gần đây nhất:

Chọn một kiểu dự án:
Bạn có thể tạo một dự án mới bằng việc click trên các liên kết thích hợp trên trang bắt
đầu, hay click trên menu file chọn New/project. Hay bạn có thể chọn các mẫu trong hộp
dialog New project.
Các hộp Dialog này sẽ hỏi bạn muốn loại loại mã sường nào cần được tạo ra, và những
tuỳ chọn biên dịch nào bạn muốn. Những trình biên dịch nào bạn muốn biên dich mã của
bạn: C#, VB.NET hay C++.
Tuy nhiên, trong sách này chỉ
đưa ra những tuỳ chọn có thể ứng dụng trong dự án C#
Nếu bạn chọn .. Bạn sẽ lấy những mã C# và tuỳ chọn biên dịch được tạo ra
Windows Application Một mẫu trống cơ bản
Class Library Một lớp .NET có thể được gọi bởi các mã khác
Windows Control
Library
Một lớp .NET có thể được gọi bởi mã khác và có một giao diện
người dùng
ASP.NET Web
Application
Một ASP.NET site web cơ sở : trang ASP.NET và lớp C# tạo ra
HTML gửi đến trình duyệt từ các trang này
ASP.NET Web Service Một lớp C# hành động như một Web service trọn vẹn
Web Control Library Một control có thể được gọi lên bởi trang ASP.NET, để tạo ra
mã HTML đưa bề mặt của một điều khiển khi thể hiện trên trình
duyệt.
Console Application Một ứng dụng chạy tại chế độ dòng lệnh hay một của sổ console

Windows Service Một dịch vụ chạy trên nền Windows NT và Windows 2000
Empty Project Không có gì hết. Bạn phải viết tất cả
Empty Web Project Như empty project nhưng các cài đặt biên dịch được cài vào cấu
Nếu bạn chọn .. Bạn sẽ lấy những mã C# và tuỳ chọn biên dịch được tạo ra
trúc trình biên dịch đê tạo mã cho trang AS.NET.
New Project In Existing
Folder
Những tập tin dự án mới cho một empty project
Các dự án console mới:
Khi ta click OK ở hộp dialog trên để tạo một ứng dụng console. Visual studio.NET sẽ
cung cấp một số tập tin, bao gồm một tập tin mã nguồn, class1.cs chứa mã sường khởi
tạo.
Hình dưới sẽ chỉ cho ta thấy những mã mà visual studio.NET viết cho ta:

Ở đây chúng ta có một chương trình C# và chưa có ý nghĩa thực thi nhưng nó chứa
những yêu cầu cơ bản của một chương trình C# như là: mộ
t namespace, một lớp chứa
phương thức main(). Đoạn mã này sẳn sàng để chạy nếu bạn nhấn f5 hay chọn
debug/start. Tuy nhiên, trước hết chúng ta phải thêm một dòng lệnh để chương trình bạn
làm gì đó.
static void Main(string[] args)
{
//
// TODO: Add code to start application here
//
Console.WriteLine("Hello from all the editors at Wrox Press");
}
Nếu bạn biên dich hay chạy dự án, bạn sẽ thấy một cửa sổ console xuất hiện và biến mất
chỉ cho bạn một thời gian nhỏ để xem một tin nhắn. Nguyên nhân của vấn đề này là
visual studio.NET nhớ những cài đặt của bạn khi tạo dự án và sắp xếp chúng lại để biên

dịch như một ứng dụng console và chạy ngay lập tức. Sau đó Windowns nhận ra rằng nó
cần ch
ạy một ứng dụng console nhưng không có một cửa sổ console để chạy. Vì thế,
Windows đã tạo ra một cửa sổ console và chạy chương trình. Ngay khi chương trình vừa
thoát thì Windowns thấy nó không cần cửa sổ console nữa và huỷ nó ngay. Đó là tất cả
tính logic của chương trình nhưng nó không thực sự giúp ta nhiều nếu ta muốn nhìn thấy
kết quả của dự án.
Một cách tốt để giải quyết vấn
đề này là chèn thêm một dòng lệnh Console.Readline()
trước khi rời khỏi phương thức main():
static void Main(string[] args)
{
//
// TODO: Add code to start application here
//
Console.WriteLine("Hello from all the editors at Wrox Press");
Console.ReadLine();
}
Theo cách này, chương trình của bạn sẽ chạy và hiển thị kết quả. Sau đó nó đọc dòng
lệnh Console.Readline() và đợi một phím để kết thúc chương trình.
Thực thi chương trình trên

Tạo những tập tin khác:
Tập tin mã nguồn class1.cs không phải là tập tin duy nhất mà visual studio.NET tạo ra
cho bạn. Nếu nhìn vào trong một thư mục nơi mà bạn yêu cầu Visual studio.NET tạo dự
án của bạn thì bạn sẽ không thấy những tập tin C# mà là một cấu trúc thư mục như sau:

Hai thư mục bin và obj chứa những tập tin biên dịch và trung giang. Những thư mục con
của obj sẽ chứa những tập tin tạm thời và trung giang sẽ được tạo ra, còn thư mục con
của bin chứa assembly được biên dịch.

Những tập tin còn lại trong thư mục main của dự án, baisicConsoleApp, chứa thông tin về
dự án và những tập tin bên trong nó. Như vậy, Visual studio.NET sẽ biết cách phải biên
dịch dự án như thế nào, và cách để đọc lại nó trong lần tiếp theo khi mở dự án.
Giải pháp(solution) và dự án(project):
Điểm quan trọng ở đây là bạn cần phân biệt giữa giải pháp và dự án:
Một dự án: là một tập hợp các tập tin mã nguồn và tài nguyên(resource) sẽ được biên
dịch đến một asembly đơn. Ví dụ như một dự án phải là một thư viện lớp hay ứng dụ
ng
Window GUI.
Một giải pháp: là một tập hợp tất cả các dự án để tạo thành một gói phần mềm cụ thể.
Muốn thấy sự khác biệt, chúng tôi thử lấy ví dụ khi bạn phân phối một ứng dụng cho một
người sử dụng, có thể nó gồm nhiều assembly hơn là chỉ là một. Thí dụ, có thể là một
giao diện người dùng; nó sẽ có vài control hay những thành phần khác được gữi
đi như là
những thư viện thuộc các phần của ứng dụng. Kể cả việc có thể có một giao diện khác
dành cho những ngừơi quản lý. Mỗi một thành phần này có thể được chứa thành những
assembly riêng lẽ, và do đó đối với Visual studio.NET như là một dự án riêng biệt. Tuy
nhiên, có thể là bạn thực hiện những dự án này song hành và phối hợp với nhau giữa các
dự án. Do đó, xem ra tiện lợi khi có kh
ả năng chỉnh sửa chúng như một đơn vị duy nhất
trong visual studio.NET. Visual studio.NET cho phép điều này bằng cách xem tất cả dự
án như là một giải pháp, và đối xử giải pháp như là một đơn vị được đọc vào và cho phép
bạn làm việc trên đó.
Đến bây giờ, ta khá lỏng lẻo về việc tạo một dự án.Trên thực tế, ví dụ ta đang làm việc,
Visual studio.NET có một giải pháp cho chúng ta- một console đặc bi
ệt chỉ chứa duy
nhất một dự án. Chúng ta có thể thấy tình trạng này trên một cửa sổ của Visual
studio.NET là Solution Explorer, nơi chứa một cấu trúc cây định nghĩa giải pháp của bạn.

Màn hình trên chỉ dự án chứa tập tin nguồn, class1.cs, và tập tin khác, assemblyInfo.cs

chứa thông tin mô tả những assembly và thông tin đến việc biên dịch dự án. Solution
explorer cho biết những assembly mà dự án tham khảo về.
Nếu bạn thay đổi các cài đặt bạn sẽ tìm thấy solution Explorer trong góc phải trên đầu
màn hình. Nếu không thấy bạn vào view/Solution Explorer để hiện nó.
Các giải pháp được mô tả bởi một tập tin với đuôi .sln. Vì thế trong trường hợp trên nó là
BasicConsoleApp.sln. D
ự án sẽ được mô tả bởi các tập tin khác nhau trong thư mục main
của dự án. Nếu bạn cố sửa những tập tin này thì bạn sẽ thấy chúng toàn là những tập tin
plain text .
Thêm dự án vào một giải pháp:
Chúng tôi muốn cho bạn thấy Visual studio.NET hoạt động như thế nào với ứng dụng
Window cũng như với ứng dụng Console.
Chúng tôi sẽ tạo ra một dự án Window mang tên BasicWindow, nhưng thay vì đưa vào
mộ
t giải pháp mới, ta yêu cầu Visual studio.NET đưa nó vào giải pháp hiện hành
BasicConsoleApp. Nghĩa là ta sẽ có một giải pháp với một ứng dụng Window và một ứng
dụng console. Đấy là cách tạo một trình tiện ích mà bạn muốn chạy trên Window hoặc
chạy trên dòng lệnh command line.
Có hai cách để thực hiện điều này. Cách thứ nhất là click phải lên tên của giải pháp trên
cửa sổ solution explorer, để cho hiện lên trình đơn shortcut rồi chọn add/new project.
Cách thứ
2 là ra lệnh file/new/new project. Cả hai cách điều hiện lên hộp thoại New
Project như sau:

Trên cửa sổ solution explorer này ta có thể thấy Visual studio.NET tự động đưa một số
tham khảo về các lớp cơ bản quan trọng đối với chức năng của biểu mẫu window nằm
trong các spacename System.Drawing, System.Windows.Forms.
Ngoài ra, bạn cũng sẽ thấy là tên của tập tin giải pháp cũng đổi thành DemoSolution.sln.
Nói chung, nếu bạn muốn thay đổi bất cứ tên tập tin nào thì solution explorer là nơi tốt
nhất để ti

ến hành những thay đổi, vì Visual studio.NET sẽ tự động cho cập nhật bất cứ
những tham khảo nào về tập tin trong tất cả các tập tin thuộc dự án. Bạn không nên sử
dụng Window Explorer để thay đổi tập tin dự án vì nó sẽ phá vỡ giải pháp.
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;

using System.Data;

namespace BasicForm
{
/// <summary>
/// Summary description for Form1.
/// </summary>
public class Form1 : System.Windows.Forms.Form
{
private System.Windows.Forms.TextBox textBox1;
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.Container components = null;

public Form1()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();

//
// TODO: Add any constructor code after InitializeComponent call
//
}

/// <summary>
/// Clean up any resources being used.
/// </summary>

protected override void Dispose( bool disposing )
{
if( disposing )

×