Hộp thoại này cho phép bạn chỉ định các kiểu file thực thi sẽ biên dịch Release hay Debug cùng với một số thiết lập khác cho nền hệ điều hành mà ứng dụng của bạn sẽ... TÌM HIỂU ỨNG DỤNGM
Trang 1Chương 1
MÔI TRƯỜNG PHÁT TRIỂN ỨNG DỤNG
Trang 2Nội dung chương 1
1 Môi trường phát triển ứng dụng
2 Cách tổ chức ứng dụng
Trang 31.1 Giới thiệu về NET
.NET bao gồm một bộ đầy đủ các công cụ giúp tạo và cài đặt các ứng dụng, NET bao gồm:
Trang 4Các ngôn ngữ lập trình trên nền NET
Trang 5WindowsForms
Data and XML classes
(ADO.NET, SQL, XSLT, Xpath, XML,…)
Framewok Base Class Library
(IO, string, net, security, threading, text,reflection, collection, GUI, XML/SOAP…)
Common Language Runtime
1.1.1 Giới thiệu về NET Framework
.NET framework bao gồm 3 thành phần chủ yếu:
Trang 6a Giới thiệu về CLR
dụng viết trên NET chạy
cho các ngôn ngữ lập trình khác nhau, giúp cho việc tương tác qua lại giữa các ngôn ngữ lập trình khác nhau dễ dàng hơn
VB NET Visual C#
VB NET Compiler VC# Compiler
Microsoft Intermediate Language (MSIL)
Common Language Runtime (CLR)
Native Code Just in Time (JIT) Compilers
Trang 7Các đặc điểm của CLR
Trang 8b Các lớp cơ sở của NET framework
phát triển ứng dụng
assembly
Trang 9Namespace dùng để nhóm các lớp và các interface có mối quan hệ luận lý với nhau Các namespace này có thể được dùng trong bất
cứ ngôn ngữ nào tương thích với NET Namespace được sử dụng
để hạn chế việc dùng cùng một tên cho 2 hay nhiều lớp có mục đích sử dụng khác nhau
Assembly là một đơn vị phần mềm có chứa đầy đủ các thông tin về các lớp hiện thực, các cấu trúc và các interface để hiện thực ứng dụng Assembly lưu trữ các thông tin để mô tả chính nó, thông tin này gọi là meta data
Trang 10 Windows Forms : các lớp này cho phép triển khai dễ dàng các ứng dụng Windows để bàn với những giao diện người sử dụng phong phú và uyển chuyển Các ứng dụng để bàn “cổ điển” này có tương tác với các máy tính khác trên mạng cục bộ hoặc mạng trên Internet thông qua việc sử dụng các Web services.
Web Forms : các lớp này hỗ trợ việc triển khai những trang web cũng như những web site cực mạnh và khả dĩ tăng qui mô, và đặc biệt hỗ trợ các ứng dụng ASP.NET Các ô control, được gọi là server control, đem lại nhiều tính năng mới, chẳng hạn kiểm tra hợp lệ, thao tác các trang web thông qua lập trình vận hành theo tình huống (event-driven), duy trì trạng thái,…
c Giao diện người dùng
.NET cung cấp ba loại giao diện người dùng như sau:
Trang 11 Web services : các lớp này chịu hỗ trợ việc triển khai các ứng
dụng có thể xử lý các triệu gọi hàm hành sự kiểu RPC (Remote Procedure Call), hoặc các thông điệp XML trên Internet Web services bao gồm một số lớp hỗ trợ việc triển khai những cấu kiện nhẹ cân có thể phát tán trên mạng, có thể chạy cho dù gặp phải bức tường lửa (firewall) và NAT (Network Address Translation, chuyển dịch địa chỉ mạng) Vì Web Services sử dụng chuẩn HTTP (HypertText Transfer Protocol) và SOAP (Simple Object Address Protocol) như là nghi thức truyền thông tin nằm đằng sau, các cấu kiện này hỗ trợ plug and play (cắm vào là chạy) xuyên qua cyberspace
Trang 12Ưu điểm của NET Framework
Trang 13Giới thiệu Visual Studio NET IDE
cung cấp một giao diện dùng chung để phát triển nhiều loại dự án khác nhau
Trang 15Dự án và giải pháp
ví dụ như file, thư mục
tạo nên ứng dụng Dự án được dịch ra thành file exe hoặc dll
Dự án và project
Mối quan hệ giữa project và solution được thể hiện bằng hình
Solution Project 1 Project 2
Miscellaneous Files
Project 1 Items
Project 2 Items
Trang 16Các bước tạo giao diện của các thành phần :
- Tạo giao diện cho chương trình mới
- Thiết lập thuộc tính cho từng đối tượng trong giao diện
- Viết mã chương trình
- Lưu và chạy chương trình
- Biên dịch file thực thi exe
Bước 1 Tạo giao diện cho chương trình mới
Trong trang Visual Studio NET Start Page, click New Project Visual
Studio NET hiển thị hộp thoại New Project, hình 1 Visual
Studio NET đặt dự án vào trong một thư mục của máy
Trang 17Hình 1 Hộp thoại New Project
Giao diện Visual studio NET IDE
Trang 18Hình 2 một form mới
Trang 19Menu Bar và Toolbar
Menu Bar
ToolBar
Trang 20Solution Explorer Window
Liệt kê tên solution, tên project, và tên của tất cả các form trong project.
Hình 3 Solution Explorer Window
Trang 21Property window
Dùng để hiển thị các đặc tính của một đối tượng trong NET.Các property này mặc định được nhóm theo thể loại
Trang 22Tool Box
Chứa các control để xây dựng ứng dụng trong NET
Visual Studio
2003 IDE
Visual Studio
2005 IDE
Trang 23Phía trên bên trái của cửa sổ IDE là Server
Explorer: cho phép bạn quản lý, bảo trì, kiểm tra các nối vào Cơ Sở Dữ Liệu (Database)
trong máy vi tính cục bộ hay liên mạng
Server Explorer cũng là nơi ta tạo hay xóa bỏ
Cơ Sở Dữ Liệu (Database), các tables, các mối liên hệ (relationships), các Store Procedures hay các đồ hình về Database (Database
Diagrams) cho bản báo cáo (Reports) hay tham khảo (References) Bạn sẽ tham khảo chi tiết hơn ở các bài học về Lập trình Cơ Sở Dữ Liệu
Trang 24Output view window
Chứa các thông điệp của Visual Studio NET IDE
Task list window
Chứa các lỗi phát sinh khi viết code.
Trang 25Hình 4 Thêm một control vào form
Thêm các Control vào form (giao diện ứng dụng)
Khi Visual Studio NET tạo một đề án mới, nó hiển thị một window form mới trong cửa sổ chính giữa (hình 3) Kéo các control từ Toolbox vào Windows form thả hoặc kích chuột kép vào control trên Toolbox
(hình 4)
Trang 26Bước 2 Thiết lập thuộc tính cho từng đối tượng trong giao diện
Để thiết lập thuộc tính cho từng đối tượng trong giao diện, bạn hãy chọn
đối tượng và thay đổi giá trị thiết lập cho thuộc tính trong cửa sổ
Properties (nếu cửa sổ Properties không hiện diện kích menu View >
Properties Window hoặc nhấn F4) :
Hình 5 Đặt thuộc tính cho nút nhấn
Trang 27Bước 3 Viết mã chương trình
Để thêm mã xử lý các sự kiện trong Windows form, double-click vào control Visual Studio NET hiển thị cửa sổ mã Thêm đoạn mã của bạn vào hàm xử lý sự kiện cung cấp cho control (hình 6) Ví dụ, đoạn mã sau
hiển thị "Hello World !"
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("Hello World");
}
Trang 28Đầu tiên, ta dùng lệnh using để thêm vùng tên sau :
using System.Windows.Forms;
Ta sẽ cho ứng dụng của ta thừa kế từ vùng tên Form :
Public class HandDrawnClass : Form
Bất kỳ một ứng dụng Windows Form nào cũng đều thừa kế từ đối tượng Form, ta có thể dùng đối tượng này để tạo ra các cửa sổ chuẩn như : các cửa sổ trôi (floating form), thanh công cụ (tools), hộp thoại (dialog box) … Mọi Điều khiển trong bộ công cụ của Windows Form (Label, Button, Listbox …) đều thuộc vùng tên này
Trang 29Hình 6 Thêm đoạn mã vào hàm xử lý sự kiện cho control
Trang 30Bước 4 Lưu và chạy chương trình
Lưu ý, bạn phải lưu lại đề án, Visual C# 2005 Enterprise Edition không tự
động đề án cho bạn
Hình 7 Lưu đề án
Trang 31Để chạy chương trình, nhấn F5 (hoặc kích vào nút start ) Visual Studio NET sẽ biên dịch chương trình, sau đó hiển thị form trong cửa
sổ Windows (hình 8) Khi bạn kích vào Button1, form sẽ hiển thị
"Hello World !" (hình 9)
Hình 8 Hình 9 Kích nút button1
Trang 32Bước 5 Biên dịch file thực thi exe
Để tạo một ứng dụng Windows ở dạng người dùng dễ dàng gọi thi hành, đó là những file exe mà bạn thường gặp trong Windows
File exe có thể chạy trên bất kỳ một môi trường Windows nào hỗ trợ những file cần thiết, đó là những file liên kết động DLL (Dynamic Link Library) đặc trưng của Windows, cùng với một số file cần cho môi
trường làm việc NET Framework
Trang 33Tạo file thực thi exe
1 Chọn Build > Configuration Manager từ menu Hộp thoại
Configuration Manager xuất hiện Hộp thoại này cho phép bạn chỉ định các kiểu file thực thi sẽ biên dịch (Release hay Debug) cùng với một số thiết lập khác cho nền hệ điều hành mà ứng dụng của bạn sẽ
Trang 343 Chọn Build > Build Solution từ menu Lệnh Build Solution sẽ tạo ra folder tên bin (nếu chưa có) bên trong folder chính của đề án và biên dịch toàn bộ mã nguồn của chương trình Kết quả bạn sẽ thu được file
HelloWorld.exe trong thư mục bin (hình 11)
Hình 11
Trang 352 Trình gở rối của Visual Studio Net
Trình gỡ rối của VS.Net rất mạnh hữu ích Ba kỹ năng chính yếu
Trang 36Hình 12 Dùng trình gở rối (debug)
Trang 373 Mở một đề án có sẵn
Đề án HelloWorld được lưu trữ trên đĩa (hình 13)
Hình 13 Đề án được lưu trữ
Trang 38Hình 14 Tập tin HellWord.csproj để kích hoạt đề án
Double clich vào tên đề án muốn kích hoạt trên đĩa lưu trữ (hình 14)
Trang 39Chương 2 LÀM VIỆC VỚI CÁC CONTROL
Trang 40Nội dung chương 2
I GIỚI THIỆU C#.NET
II LÀM VIỆC VỚI CÁC CONTROL
Trang 411 TÌM HIỂU ỨNG DỤNG
Một ứng dụng (hay một chương trình ) là một tập hợp các câu lệnh mà người lập trình đưa ra để máy tính thực hiện Để viết được các câu lệnh người lập trình cần một ngôn ngữ lập trình và một trình biên dịch
1.1 Quá trình xây dựng một ứng dụng
1.1.1 Ứng dụng
Một ứng dụng được tạo ra để thực hiện một công việc nào đó Muốn vậy người lập trình phải đưa ra một loạt các chỉ dẫn có thứ tự để máy tính thực hiện
Các chỉ dẫn được đưa ra phải ở dạng mã máy hay dạng nhị phân Mã máy là ngôn ngữ duy nhất mà máy tính hiểu được
Vì ở dạng nhị phân nên mã máy là một ngôn ngữ rất phức tạp Người
sử dụng không thể sử dụng mã máy để đưa ra các chỉ dẫn cho máy tính trong một chương trình lớn
I GIỚI THIỆU C#.NET
Trang 421.1.2 Ngôn ngữ lập trình
Thay vì sử dụng mã máy, người lập trình sẽ sử dụng một ngôn ngữ lập trình đơn giản hơn để đưa ra các chỉ thị Một trình biên dịch sẽ chuyển các chỉ thị ở dạng ngôn ngữ này sang dạng mã máy trước khi thực hiện
Ngôn ngữ mà người lập trình sử dụng để đưa ra các chỉ thị gọi là ngôn ngữ lập trình Các chỉ thị được đưa ra gọi là các câu lệnh Đặc điểm của một ngôn ngữ lập trình :
• Chỉ gồm một số ít các cấu trúc câu (các loại câu lệnh)
• Mỗi cấu trúc câu tuân theo một cú pháp tương ứng
• Đơn giản và gần gũi với ngôn ngữ trong cuộc sống để người lập trình
dễ sử dụng
Trang 431.1.3 Trình biên dịch
Những câu lệnh mà người lập trình đưa ra được viết bằng ngôn ngữ lập trình nhưng máy tính chỉ hiểu được mã máy nên cần phải có một trình biên dịch để chuyển các câu lệnh sang dạng mã máy trước khi máy tính có thể thực hiện
Nhiệm vụ của một trình biên dịch :
• Kiểm tra cú pháp của các câu lệnh trước khi biên dịch
• Nếu đúng cú pháp, biên dịch các câu lệnh sang dạng mã máy nếu sai, báo lỗi cú pháp cho người lập trình sửa chữa
• Các trình biên dịch luôn giữ chức năng thi hành chương trình sau khi biên dịch để người lập trình kiểm tra và sửa các lỗi thực thi, lỗi ngữ nghĩa
Có hai loại trình biên dịch :
• Biên dịch : dịch toàn bộ các câu lệnh trong ứng dụng sang dạng mã máy trước khi thi hành
• Thông dịch : chỉ dịch câu lệnh sang dạng mã máy ngay trước khi nó được thi hành
Trang 441.2 Từ khóa và cú pháp
Một ngôn ngữ lập trình chỉ gồm một số ít các cấu trúc câu, bao gồm các câu khai báo, các câu lệnh và các câu điều khiển luồng chương trình Mỗi loại câu đều phải tuân theo một cú pháp do ngôn ngữ lập trình quy định
Thành phần quan trọng đầu tiên của một ngôn ngữ lập trình là bộ các
Trang 45Ngoài các kiểu dữ liệu do ngôn ngữ lập trình định nghĩa, người lập trình
có thể khai báo các kiểu dữ liệu do chính mình định nghĩa với trình biên dịch Các kiểu dữ liệu này gọi là kiểu dữ liệu do người dùng định nghĩa
Trang 462.1.3 Giá trị
Các giá trị dạng chuỗi (text) nằm trong cặp nháy kép “ ”
Các giá trị số thập phân ghi ở dạng số như bình thường Ví dụ 12 hay 10.5
2.1.4 Biểu thức
Biểu thức là thành phần của một câu lệnh có thể tính ra giá trị Bất kỳ câu lệnh định lượng giá trị được gọi là một biểu thức (expression) Phép gán sau cũng được gọi là một biểu thức vì nó định lượng giá trị được gán (là 32)
x = 32;
vì vậy phép gán trên có thể được gán một lần nữa như sau
y = x = 32;
Sau lệnh này y có giá trị của biểu thức x = 32 và vì vậy y = 32
Biểu thức có thể chứa các biến, hàm, toán tử (số học, logic, so sánh),
Trang 48Các nhóm toán tử trong C#
Trang 49Thứ tự các toán tử
Đối với các biểu thức toán, thứ tự ưu tiên là thứ tự được qui định trong toán học Còn thứ tự ưu tiên thực hiện của các nhóm toán tửđược liệt kê theo bảng dưới đây
Thứ tự ưu tiên của các nhóm toán tử trong C#
Trang 50Toán tử tam phân
Trang 512.1.6 Lớp, đối tượng và kiểu
Đối tượng là một trị có thể được tạo ra, lưu giữ và sử dụng Trong C# tất cả các biến đều là đối tượng Các biến kiểu số, kiểu chuỗi … đều là đối tượng Mỗi một đối tượng đều có các biến thành viên để lưu giữ dữ liệu và có các phương thức (hàm) để tác động lên biến thành viên Mỗi đối tượng thuộc về một lớp đối tương nào đó Các đối tượng có cùng lớp thì có cùng các biến thành viên và phương thức
2.1.7 Phương thức
Các hành vi của một lớp được gọi là các phương thức thành viên (gọi tắt là phương thức) của lớp đó Một phương thức là một hàm (phương thức thành viên còn gọi là hàm thành viên) Các phương thức định nghĩa những gì mà một lớp có thể làm
Một phương thức đặc biệt là phương thức Main() (như hàm main() trong C++) là phương thức bắt đầu của một ứng dụng C#, có thể trả về kiểu void hay int Mỗi một chương trình (assembly) có thể có nhiều phương thức Main nhưng khi đó phải chỉ định phương thức Main() nào
sẽ bắt đầu chương trình
Trang 52Một số lớp có mối liên hệ nào đó về mặt ngữ nghĩa, ví dụ như lớp Stack, Queue, Hashtable … Như vậy có thể nhóm những lớp này thành một nhóm và thay vì phải nhớ tên các lớp thì lập trình viên chỉ cần nhớ tên nhóm, sau đó có thể thực hiện việc tra cứu tên lớp trong nhóm nhanh chóng hơn Nhóm là một vùng tên trong C#
Trang 53Một vùng tên có thể có nhiều lớp và vùng tên khác Nếu vùng tên A nằm trong vùng tên B, bạnnói vùng tên A là vùng tên con của vùng tên
B Khi đó các lớp trong vùng tên A được ghi như sau: B.A.Tên_lớp_trong_vùng_tên_A
System là vùng tên chứa nhiều lớp hữu ích cho việc giao tiếp với hệ thống hoặc các lớp công dụng chung như lớp Console, Math, Exception…
2.1.10 Từ khoá using
Nếu chương trình sử dụng nhiều lần phương thức Console.WriteLine,
từ System sẽ phải viết nhiều lần Điều này có thể khiến lập trình viên nhàm chán Bạn sẽ khai báo rằng chương trình có sử dụng vùng tên System, sau đó ta dùng các lớp trong vùng tên System mà không cần phải có từ System đi trước
2.1.11 Từ khoá static
Từ khoá static cho biết là ta có thể gọi biến, một phương thức mà không cần tạo một đối tượng
Trang 552.2 Các kiểu
C# buộc phải khai báo kiểu của đối tượng được tạo Khi kiểu được khai báo rõ ràng, trình biên dịch sẽ giúp ngăn ngừa lỗi bằng cách kiểm tra dữ liệu được gán cho đối tượng có hợp lệ không, đồng thời cấp phát đúng kích thước bộ nhớ cho đối tượng
C# phân thành hai loại: loại dữ liệu cơ bản và loại do người dùng định nghĩa
C# cũng chia tập dữ liệu thành hai kiểu: giá trị và tham chiếu Biến kiểu giá trị được lưu trong vùng nhớ stack, còn biến kiểu tham chiếu được lưu trong vùng nhớ heap
C# cũng hỗ trợ kiểu con trỏ của C++, nhưng ít khi được sử dụng Thông thường con trỏ chỉđược sử dụng khi làm việc trực tiếp với Win API hay các đối tượng COM
Trang 56Kiểu Kích thước Kiểu Mô tả - giá trị
(byte) NET
Byte 1 Byte Không dấu (0 255)
char 1 Char Mã ký tự Unicode
bool 1 Boolean true hay false
sbyte 1 Sbyte Có dấu (-128 127)
short 2 Int16 Có dấu (-32768 32767)
ushort 2 Uint16 Không dấu (0 65535)
int 4 Int32 Có dấu (-2147483647 2147483647)
uint 4 Uint32 Không dấu (0 4294967295)
float 4 Single Số thực (≈ ±1.5*10-45 ≈ ±3.4*1038)
double 8 Double Số thực (≈ ±5.0*10-324 ≈ ±1.7*10308)
decimal 8 Decimal số có dấu chấm tĩnh với 28 ký số và dấu chấm long 8 Int64 Số nguyên có dấu (- 9223372036854775808 9223372036854775807) ulong 8 Uint64 Số nguyên không dấu (0 0xffffffffffffffff.)