Tải bản đầy đủ (.doc) (68 trang)

Tìm hiểu công nghệ .Net Compact Framework

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 (3.02 MB, 68 trang )

Tìm hiểu công nghệ .Net Compact Framework 16/4/2008
Mục Lục
Chương 1. Công nghệ .Net Compact Framework.............................................................................................................
1.1. Giới thiệu .Net Compact Framework....................................................................................................................
1.2. Kiến trúc của .Net Compact Framework.............................................................................................................
Chương 2. Phát triển ứng dụng với Windown Form.......................................................................................................
2.1. Các điều khiển không được hỗ trợ trong .Net Compact Framework..................................................................
2.2. Các hàm không được hỗ trợ trong .Net Compact Framework.............................................................................
2.3. Thiết kế Form với Visual Studio .Net..................................................................................................................
2.4. Sự khác nhau giữa các nền tảng Windows Form.................................................................................................
2.5. Làm việc với điều khiển Form.............................................................................................................................
2.6. Điều khiển Button.................................................................................................................................................
2.7. Điều khiển Textbox..............................................................................................................................................
2.8. Điều khiển Label...................................................................................................................................................
2.9. Điều khiển RadioButton.......................................................................................................................................
2.10. Điều khiển CheckBox.........................................................................................................................................
2.11. Điều khiển ComboBox.......................................................................................................................................
2.12. Điều khiển ListBox ...........................................................................................................................................
2.13. Các điều khiển khác............................................................................................................................................
Chương 3. Kết nối cơ sở dữ liệu trong .Net Compact Framework.................................................................................
3.1. ADO.Net trên .Net Compact Framework.............................................................................................................
3.2. Lập trình với Microsoft SQL Server CE ............................................................................................................
1
Tìm hiểu công nghệ .Net Compact Framework 16/4/2008
Chương 1. Công nghệ .Net Compact Framework
1.1. Giới thiệu .Net Compact Framework
Như chúng ta đã biết, trước đây việc phát triển ứng dụng cho các thiết bị cầm tay
đòi hỏi các kĩ năng lập trình đặc biệt, tài nguyên làm việc cho các thiết bị luôn bị hạn chế
và đòi hỏi các kĩ năng thiết kế đặc biệt để xây dựng một ứng dụng tốt mà có thể làm việc
trên một màn hình có kích thước bé hơn rất nhiều so với kích thuớc của desktop. Chính vì
vậy những người phát triển ứng dụng cho các thiết bị cầm tay gặp rất nhiều khó khăn. Tuy


nhiên, ngày nay với .Net Compact Framework và Smart Device Extension(SDE) được tích
hợp sẵn trong Visual Studio .Net, Microsoft đã cung cấp những kĩ năng phát triển phần
mềm mới phù hợp cho những người phát triển phần mềm trên desktop và trên mobile.
Những người đã có kĩ năng làm việc tốt với .Net Framework đầy đủ trong Visual Studio
.Net có thể dễ dàng phát triển ứng dụng cho các thiết bị cầm tay bằng cách sử dụng môi
trường làm việc tương tự, các ngôn ngữ lập trình tương tự và các lớp thư viện là tập con
của thư viện đầy đủ.
1.1.1. Sơ lược về lịch sử của các thiết bị Smart Mobile Computing
.Net Compact Framework hỗ trợ cho các thiết bị có một số đặc điểm dưới đây:
• Có một CPU có khả năng xử lý thông tin tốt
• Có Ram để lưu trữ chương trình và dữ liệu
• Có bộ nhớ ngoài
Các đặc điểm trên được xem như đặc điểm của một thiết bị thông minh. Tuy nhiên, đây
không phải là một định nghĩa về một thiết bị thông minh. Do đó cũng có người phát biểu
rằng một thiết bị thông minh là thiết bị có kích thước màn hình nhỏ, có khả năng kết nối
với mạng máy tính và chạy các chương trình. Một số mobile phone thực hiện gửi thông
điệp và có khả năng truy cập vào nội dung Web thông qua Wap hoặc i-mode, nhưng các
thiết bị mobile này ít hoặc không hỗ trợ chạy các ứng dụng khách hàng. Các thiết bị smart
mobile mà chạy trên nền tảng .Net Compact Framework có khả năng đó hơn so với các
thiết bị mobile phone.
a. Sự khởi đầu của máy tính xách tay
Máy tính xách tay đầu tiên là Osbone 1, được giới thiệu tại West Coast Computer
Fair vào tháng 4 năm 1981. Osbone có màn hình CRT nhỏ kích thước 5-inch, màn hình
này chỉ hiển thị được 52 ký tự nhưng nó có khả năng di chuyển sang trái và phải để hiển
thị các dòng văn bản dài(Hình 1.1). Osbone cũng có thể chạy được một số phần mềm như
Basic, WordStar, SuperCalc.
2
Tìm hiểu công nghệ .Net Compact Framework 16/4/2008
Hình 1.1. Máy tính xách tay đầu tiên
Giá của mỗi chiếc Osbone1 là $1,795 và nó được bán với tốc độ 10.000 chiếc một

tháng. Đến năm 1982 máy Compact ra dời, nó nặng 28 pounds, sử dụng bộ xử lý 8088,
Ram 128 kb, có một đĩa mề 5.25 inch. Nó được bán với giá $3.000.
Một vài năm sau xuất hiện một số máy xách tay khác như Epson -HX 20, Commodore SX-
64, Radio Shack TRS-80 Model 100. Trong đó Radio Shack TRS-80 được xem là máy
notebook đầu tiên.
b. Các phát minh của PSION
Tại cuộc họp vào năm 1984, công ty công nghệ Psion của Mỹ đã định nghĩa về
máy Personal digital assistant (PDA). Họ đã cho ra đời Psion1. Psion1 dựa trên công nghệ
8-bit, có màn hình hiển thị LCD 16 ký tự, một clock/calendar, một có sở dữ liệu với một
chức năng tìm kiếm.
Psion1 được nâng cấp lên Psion II và đầu những năm 1990, 500.000 chiếc Psion II
đã được sản xuất. Năm 1993, Series 3a ra đời, phá vỡ khoảng cách về địa lý với khả năng
kết nối với máy tính, truyền, biến đổi và đồng bộ dữ liệu giữa 2 môi trường của nó.
Khoảng 2 năm sau đó, vị trí của Psion trên thị trường PDA đã được khẳng định. Năm
1997, Psion cho ra đời Series 3c và Series 5 32-bit.
c. Phát triển thị trường PDA
Tên Personal Digital Assistant được đặt đầu tiên bởi Apple CEO John Sculley
trong một bài phát biểu tại Winter Consumer Show vào năm 1992. Năm 1993 Apple’s
Newton MessagePad ra đời (hình 1.2). Tính chất đổi mới của thiết bị này là sử dụng bút để
nhập thông tin vào và thừa nhận các chữ viết tay, có thể quản lý thông tin cá nhân (PIM) và
có khả năng liên lạc. Apple’s Newton chỉ thành công trong một thời gian vì ngay sau đó
xuất hiện sự cạnh tranh của một số công ty như Amstrad PenPad, the Casio and Tandy
Zoomer, the Sony MagicLink, and the IBM/Bell South Simon.
3
Tìm hiểu công nghệ .Net Compact Framework 16/4/2008
Hình 1.2. Máy Newton Apple
d. Microsoft và các thiết bị cầm tay
Cùng với sự phát triển của thị trường PDA, Microsoft cũng đã cho ra đời các hệ hệ
điều hành như Window CE (1996) và Pocket PC 2000, vWindow Mobile 2005. Hiện nay
trên thị trường có rất nhiều sản phẩm sử dụng hệ điều hành Window CE, Pocket PC 2000

và Window Mobile 2005 của Microsoft như:
O
2
: Đây là nhãn hiệu nổi tiếng nhất trong dòng Pocket PC trên thị trường Việt
Nam. Một số sản phẩm loại này đang có mặt tại Việt Nam như là O
2
XDA, O
2
XDAII, O
2
XDAII mini, O
2
XDAIIs, O
2
XDAIIi. Những sản phẩm loại này được hỗ trợ rất tốt trong
việc nâng cấp hệ điều hành. Chúng có thể dễ dàng nâng cấp từ hệ điều hành nguyên bản
lên Windows Mobile 2005

HP iPq hx 4700: Đây là sản phẩm của hãng Hewlett Packard. Sản phẩm này nổi
bật với hệ điều hành Windows Mobile 2003 SE, bộ vi xử lý XScale thế hệ thứ hai của Intel
và màn hình VGA rộng. Ngoài ra màn hình còn được hỗ trợ giao diện 3D của hệ điều hành
Windows CE 4.21.
4
Tìm hiểu công nghệ .Net Compact Framework 16/4/2008
Asus P505: Là sản phẩm đầu tiên của Asus trên thị trường Pocket PC. Sử dụng hệ
điều hành Windows Mobile 2003 Second Edition, P505 hoạt động trên 3 băng tần GSM
900/1.800/1.900 MHz và được hỗ trợ GPRS Class B. Asus đã thiết kế cho máy một bàn
phím bật (flip) có nút điều khiển 2 chiều lên xuống, rất thuận tiện cho việc sử dụng các ứng
dụng của Pocket PC.
Axim X51v: Nét nổi bật của sản phẩm này là chạy hệ điều hành Windows Mobile

5.0, nhiều tính năng tiện dụng, màn hình chất lượng cao. Máy có bộ nhớ trong lớn (ROM
256 MB), 2 khe cắm thẻ nhớ và jack cắm tai nghe tiêu chuẩn 3,5 mm.
5
Tìm hiểu công nghệ .Net Compact Framework 16/4/2008
iPaq rw6828: là thiết bị hỗ trợ cá nhân đầu tiên sử dụng hệ điều hành Windows
Mobile 5 hỗ trợ chức năng push-email của hãng Hewlett Packard. Do chạy hệ điều hành
Windows Mobile 5 nên thiết bị cũng được cài đặt sẵn các ứng dụng văn phòng như: MS
Word, Excel, Power Point, Internet Explorer và Outlook 2002.
Ngoài ra còn có một số sản phẩm khác như Mio 168RS sử dụng hệ điều hành
Windows Mobile 2003 Second Edition, Atom Exec của hãng O
2
sử dụng hệ điều hành
Windows Mobile 5.0, Siemens SX66 sử dụng hệ điều hành Windows Mobile 2003 Second
Edition v…v.
1.1.2. Những nét mới trong .Net Compact Framework
.NET Compact Framework là nền tảng dữ liệu cho các ứng dụng Visual Studio
.NET được phát triễn cho các thiết bị di động sử dụng hệ điều hành Windows CE hoặc
Windows Mobile. Nó là phiên bản nhỏ của phiên bản đầy đủ .Net Framework, nó bao gồm
một tập con các lớp thư viện cơ bản của .Net Framework và một số lớp thư viện mới được
thiết kế đặc biệt để sử dụng cho các thiết bị mobile. Ngoài ra .Net Compact Framework
còn có sự bổ sung mới cho CLR để cho phép các ứng dụng có thể chạy tốt trên các thiết bị
nhỏ mà bị hạn chế về cả năng lượng của bộ nhớ và CPU.
Các ngôn ngữ lập trình truyền thống như C, C++, Pascal, v..v, thường sử dụng một
trình biên dịch để chuyển trực tiếp mã nguồn sang mã máy hiểu được. Với cách làm này,
đòi hỏi những người lập trình phải tập trung vào việc quản lý các chi tiết ở mức thấp như
việc phân hoạch bộ nhớ và việc tương tác với các mã thư viện bên ngoài. Các mã thư viện
này bao gồm cả các file DLL của hệ điều hành Window. Các chương trình có thể tương tác
với hệ điều hành bằng cách gọi trực tiếp đến API của hệ điều hành hoặc bằng cách sử dụng
một trong các hàm thư viện như MFC, Borlands’OWL.
Khả năng di chuyển giữa các nền tảng bằng cách sử dụng native code thường khó

khăn bởi vì API của các hệ điều hành về cơ bản thường khác nhau. Thậm chí việc tương
tác giữa các thành phần trong các ngôn ngữ lập trình khác nhau trên cùng một hệ điều hành
cũng gặp khó khăn vì các ngôn ngữ lập trình khác nhau sử cách biểu diễn nhị phân khác
nhau cho các cấu trúc dữ liệu. Tóm lại, sự tương tác là khó khăn giữa các hệ điều hành,
giữa các kiểu CPU trên cùng một hệ điều hành và giữa các ngôn ngữ lập trình khác nhau
chạy trên cùng một máy.
6
Tìm hiểu công nghệ .Net Compact Framework 16/4/2008
Khi Visual Studio 7.1 ra đời cùng với .Net Compact FrameWork tất cả các vấn đề
khó khăn trên đã được giải quyết. Visual Studio 7.1 với Smart Device Extensions và những
đặc điểm quan trọng dưới đây đã giúp những người phát triển các ứng dụng cho các thiết
bị chạy trên các hệ điều hành Window CE và Pocket PC nhanh hơn và dễ dàng hơn so với
trước đây:
• Hai ngôn ngữ lập trình C# và Visual Basic .Net được hỗ trợ bởi Smart Device
Extension có khả năng tương tác giữa các thành phần rất dễ dàng bởi vì cả hai đều
được biên dịch sang cùng một định dạng bytecode và đều cung cấp sự truy cấp đến
các đối tượng dữ liệu bên trong .Net Compact Framework.
• Một số ngôn ngữ mà chạy trên .Net Compact Framework có thể trao đổi các đối
tượng từ .Net Compact Framework với các ngôn ngữ khác mà cũng có sự hỗ trợ
của .Net Compact Framework.
• Trình biên dịch cho các ứng dụng là tương tự nhau, không quan tâm đến kiến trúc
xử lý bên dưới. Những người lập trình có thể xây dựng một ứng dụng và triển khai
nó trên phần cứng chạy hệ điều hành Pocket PC hoặc Window CE.
• .Net Compact Framework cung cấp một định dạng chung cho API để những người
lập trình có thể viết ứng dụng trên nhiều ngôn ngữ khác nhau được hỗ trợ bởi .Net
Compact Framework.
• .Net Compact Framework cũng hỗ trợ phát triển Window Forms giúp nhanh chóng
đưa ra giao diện người dùng cho ứng dụng.
• .Net Compact Framework cung cấp các lớp truy cập dữ liệu, các lớp thao tác XML,
tập các kiểu dữ liệu cơ sỏ, cho phép dễ dàng sử dụng sự hỗ trợ của networking và

nhiều hơn nữa.
• .Net Compact Framework và Common language runtime (Ngôn ngữ thực thi
chung) cung cấp khả năng thu gom rác
• .Net Compact Framework cung cấp kiểu chuỗi mà không cần phải hiểu sự phức tạp
của việc tạo thành các chuỗi trực tiếp từ hệ điều hành.
• Nhiều phiên bản của .Net Compact Framework có thể hoạt động cùng nhau. Các
ứng dụng sẽ hướng tới các phiên bản mà chúng biết là chúng tương thích với phiên
bản đó.
1.1.3. Smart Device Extension và .Net Compact Framework
a. Yêu cầu hệ thống
Smart Device Extensions là môi trường phát triển tích hợp (IDE) mà các nhà phát
triển nhằm vào .NET Compact Framework. Nó là một thành phần củaVisual Studio .NET
version 7.1 hoặc mới hơn.
Để chạy được các công cụ trên, yêu cầu tối thiểu về cấu hình như sau:
7
Tìm hiểu công nghệ .Net Compact Framework 16/4/2008
Lĩnh vực Yêu cầu
Operating system and
RAM
Windows 2000 Professional; 96MB RAM, 128MB
đề nghị Windows 2000 Server; 192MB RAM,
256MB đề nghị Windows XP Professional; 192MB
RAM, 256MB đề nghị Windows XP Home; 96MB
RAM, 256MB đề nghị Windows .NET Server 2003;
192MB RAM, 256MB đề nghị
Hard disk space Ít nhất 900MB trên ổ chứa hệ điều hành và khoảng
4.1GB để cài Micorsoft Visual Studio .Net
Processor speed Tối thiểu Pentium II 450MHz hoặc tương đương;
Pentium III 600MHz hoặc lớn hơn
Device connectivity ActiveSync 3.5 hoặc mới hơn

Bảng 1.1. yêu cầu hệ thống cho Visual Studio .NET 2005
b. Sử dụng Smart Device Extension trong quá trình phát triển
Cách dễ nhất để phát triển .NET Compact Framework là sử dụng Smart Device
Extensions trong Visual Studio .NET 7.1. Nó đơn giản là mở rộng của Visual Studio 7.1,
Smart Device Extensions đưa ra các kiểu tạo ứng dụng, cho phép chúng ta tập chung vào
các thiết bị sử dụng Windows CE hỗ trợ .NET Compact Framework, như là Pocket PC.
Điều này có nghĩa là sử dụng Smart Device Extensions để phát triển các ứng dụng trên
Windows CE như phát triển các ứng dụng trên Windows 2000 or XP.
Tạo ứng dụng cho các thiết bị Pocket PC
Chúng ta sẽ tạo một ứng dụng đơn giản “Hello World” bằng ngôn ngữ C#.
Bước 1: Khi chúng ta chạy Visual Studio .NET lần đâu, sẽ hiển thị Start Page, như hình
1.3. Để tạo ứng dụng mới, bấm vào nút có nhãn New Project gần phía dưới của màn hình.
Hoặc vào menu File -> New -> Project hoặc sử dụng Ctrl+ Shift +N.
8
Tìm hiểu công nghệ .Net Compact Framework 16/4/2008
Hình 1.3. Start Page được hiển thị khi chạy Visual Studio .NET.
Bước 2: Sau khi chọn New Project, một hộp thoại xuất hiện cho phép chúng ta chọn kiểu
dự án, nền tảng và mẫu ứng dụng. Lựa chọn như hình 1.4. Điền tên dự án vào mục Name,
và nơi chứa dự án vào mục Localtion. Trong hộp thoại này có 2 phần:
- "Project types": Phần này cho phép chúng ta chọn kiểu thiết bị mà chúng ta muốn phát
triển trên nó. Chúng ta sẽ chọn nền tảng Pocket PC, điều này có nghĩa ứng dụng của
chúng ta sẽ chạy trên tất cả các thiết bị hỗ trợ hệ điều hành Pocket PC.
- "Templates": Device Application, Class Library, Control Library và Empty Project.
Chúng ta sẽ chọn Device Application. Kiểu dự án này thiết lập form chính tự động và cung
cấp môi trường thiết kế đồ họa giúp dễ dàng thêm các điều khiển vào ứng dụng.
9
Tìm hiểu công nghệ .Net Compact Framework 16/4/2008
Hình 1.4. Hộp thoại tạo một Visual C# Smart Device Application
10
Tìm hiểu công nghệ .Net Compact Framework 16/4/2008

Bước 3. Sau khi lựa chọn xong ta nhấn vào nút OK ta được màn hình như hình 1.5
Hình 1.5. Thiết kế Form xuất hiện sau khi dự án được tạo
Bước 4. Bên trái của phần thiết kế Form, là nhãn Toolbox. Bấm vào đó đưa đến cho chúng
ta hộp công cụ Toolbox, như hình 1.6.
11
Tìm hiểu công nghệ .Net Compact Framework 16/4/2008
Hình 1.6. Hộp công cụ Toolbox cho dự án Smart Device Application
Bước 5: Tất cả các điều khiển trong hộp công cụ đều có thể sử dụng trong các dự án .NET
Compact Framework. Kéo một số điều khiển vào Forms như hình 1.7.
12
Tìm hiểu công nghệ .Net Compact Framework 16/4/2008
Hình 1.7. Sau khi kéo một số điều khiển vào Forms.
Bước 7: Bấm đúp vào nút có nhãn button1, IDE đưa đến phần soạn thảo mã nguồn và con
trỏ sẽ nhấp nháy ở trong phương thức button1_Click. Chúng ta sẽ đưa vào một số dòng
lệnh như hình 1.8.
13
Tìm hiểu công nghệ .Net Compact Framework 16/4/2008
Hình 1.8. Visual Studio hiển thị mã lệnh khi nút trong Form được bấm đúp.
Bước 8: Bây giờ chúng ta có thể biên dịch và triển khai trên thiết bị. Để triển khai trên
thiết bị và chạy ứng dụng, chọn Debug, Start Without Debugging. Trước tiên Visual Studio
biên dịch mã nguồn và đưa cho chúng ta hộp thoại Deploy SmartDeviceApplication như
hình 1.9.
14
Tìm hiểu công nghệ .Net Compact Framework 16/4/2008

Hình 1.9. Trước khi triển khai ứng dụng trên thiết bị, Visual Studio
đưa ra hộp thoại.
Bước 9: Để chạy thử ứng dụng trên máy tính Desktop, chúng ta chọn Pocket PC 2002
Emulator. Nếu muốn chạy thử trên thiết bị thực, chúng ta chọn Pocket PC Device. Phải
đảm bảo rằng thiết bị đã được kết nối thông quan đường ActiveSync trước khi triển khai

ứng dụng trên thiết bị. Sau đó chọn Deploy.
Bước 10: Visual Studio cài đặt .NET Compact Framework và chạy ứng dụng. Nếu chúng
ta bấm vào nút Button1, chúng ta nhận được thông báo “Hello World” như hình 1.10.
15
Tìm hiểu công nghệ .Net Compact Framework 16/4/2008
Hình 1.10. Thiết bị emulator chạy ứng dụng hello world.
1.1.4. Các nền tảng của .Net Compact Framework
Phiên bản đầu tiên của .Net Compact Framework hỗ trợ cho Windows-powered
Pocket PCs và các thiết bị chạy hệ điều hành Windows CE.Net
a. Các nền tảng mà .Net Compact Framework hỗ trợ
Phiên bản 1 của .Net Compact Framework hỗ trợ nền tảng sau của Microft:
- Pocket PC 2000: Các thiết bị này có thể mua được từ một số hãng sản xuất và nó
sử dụng các bộ xử lý ARM, MIPS, SH3 hoặc SH4. .Net Compact Framework được
hỗ trợ trên tất cả các bộ xử lý đó.
16
Tìm hiểu công nghệ .Net Compact Framework 16/4/2008
- Pocket PC 2002 : Pocket PC 2002 ra đời từ sự nâng cấp hệ điều hành Pocket PC
mà sử dụng bộ xử lý ARM.
- Pocket PC 2002 phone edition: Đây là hệ điều hành Pocket PC 2002 với sự thêm
vào việc hỗ trợ cho một số chức năng bên nghành điện thoại.
- Window CE.Net 4.1 và các phiên bản sau đó
b. Các nền tảng mà .Net Compact Framework không hỗ trợ
.Net Compact Framework không được hỗ trợ trên một số nền tảng sau của
Microsoft:
- Các phiên bản 3.0 và sớm hơn của Windows CE: Pocket PC 2000 và Pocket PC
2002 được xây dựng dựa trên Window CE 3.0. Tuy nhiên chúng chỉ là dẫn xuất từ
Window CE 3.0 nên vẫn được hỗ trợ.
- Handheld PC 2000 và các phiên bản trước đó: Các thiết bị Handheld PC có màn
hình lớn hơn các thiết bị Pocket PC nhưng có bàn phím tiện lợi hơn và nguồn năng
lượng lâu hơn. Handheld PC 2000 cũng được xây dựng trên Window CE 3.0 nhưng

nó và các phiên bản sớm hơn không được hỗ trợ bởi .Net Compact Framework.
- Microsoft Smartphone 2002: Smartphone 2002 được xây dựng dựa trên nền tảng là
hệ điều hành Pocket PC 2002, nó có thể chạy được trên các thiết bị có kích thước
nhỏ hơn và màn hình có tính cảm ứng so với các thiết bị chạy trên Pocket PC.
1.2. Kiến trúc của .Net Compact Framework
.Net Compact Framework không tồn tại đơn lẻ, nó tồn tại dựa trên 3 tầng công
nghệ: Common Language Runtime, trình biên dịch Just-in-time và hệ điều hành Window
CE. Hình 1.1 là sơ đồ kiến trúc mô tả một ứng dụng tương tác với .Net Compact
Framework và các tầng bên dưới như thế nào:
17
Tìm hiểu công nghệ .Net Compact Framework 16/4/2008

Hình 2.1: Sơ đồ mô tả kiến trúc .Net Compact Framework
Trong sơ đồ trên, tầng đầu tiên chính là các thành phần phần cứng bao gồm có
CPU, bộ nhớ , video, màn hình, thành phần kết nối mạng, v..v.
Tất cả các thành phần phần cứng đó được điều khiển bởi tầng thứ 2, hệ điều hành Window
CE.
1.2.1. Common Language Runtime (ngôn ngữ thực thi chung)
Tầng bên trên hệ điều hành Window CE là Common Language Runtiem hay còn
gọi là CLR. Common Language Runtime (CLR) là trung tâm điểm của .NET Framework.
Đây là một "hầm máy" để chạy các tính nǎng của .NET. Nó được xem là nền tảng để quản
lý các ứng dụng đích. Các ứng dụng “native” là các ứng dụng được biên dịch trực tiếp sang
18
Tìm hiểu công nghệ .Net Compact Framework 16/4/2008
ngôn ngữ máy mà CPU hiểu được. Ngược lại, các ứng dụng “managed” là các ứng dụng
được biên dịch sang ngôn ngữ trung gian bytecode hay còn gọi là mã IL.
Mã được biên dịch sang mã IL được gọi là mã “managed”. Một yếu tố quan trọng
nhất của mã managed là nó không được thực thi trực tiếp bởi CPU mà nó phải chuyển sang
mã native đầu tiên để được thực thi.
Công việc của CLR là thực thi mã managed. Để làm được việc này, mã managed phải

được chuyển sang mã native. CLR thực hiện 3 bước cơ bản sau để chuyển từ mã managed
sang mã native và thực thi nó:
• Đưa mã IL vào bộ nhớ
• Một phần hoặc toàn bộ mã IL được chuyển sang mã native để được thực thi bởi
CPU
• Nếu mã IL là một phần của mã trong file DLL thì DLL phải được xác định và đưa
vào bộ nhớ. Sau đó DLL được chuyển sang mã native và thực thi.
1.2.2. Biên dịch mã Managed sang mã Native bởi trình biên dịch Just-
In-Time
Trình biên dịch Just-in-time có nhiệm vụ chuyển mã managed sang mã native để
một chương trình managed có thể được thực thi. Có 2 trình biên dịch JIT trong .Net
Compact Framework đó là "SJIT" và "IJIT.".
IJIT là trình biên dịch sẵn có với mọi CPU mà được hỗ trợ bởi .Net Compact
Framework: ARM, MIPS, SHx, và x86. Trình biên dịch IJIT biên dịch mã managed sang
mã máy nhanh hơn trình biên dịch SJIT nhưng mã máy được biên dịch ra không tốt bằng
với mã được sinh ra từ trình biên dịch SJIT.
SJIT là trình biên dịch chỉ có sẵn đối với bộ xử lý ARM. Các thiết bị chạy trên nền tảng
Pocket PC thường sử dụng bộ xử lý ARM.
19
Tìm hiểu công nghệ .Net Compact Framework 16/4/2008
Chương 2. Phát triển ứng dụng với Windown Form
Trong chương này chúng ta sẽ tìm hiểu về:
 Các điều khiển không được hỗ trợ trong .Net Compact Framework
 Thiết kế Form với Visual Studio .Net
 Làm việc với điều khiển Form
 Làm việc với các điều khiển Windows Forms
.Net Compact Framework cung cấp rất nhiều các hàm để cho phép chúng ta xây
dựng giao diện đồ họa người dùng. Tuy nhiên các hàm này là tập con của các hàm được
cung cấp bởi .Net Framework. Trước khi chúng ta đi vào tìm hiểu các điều khiển được hỗ
trợ trong .Net Compact Framework, chúng ta sẽ đi tìm hiều những điều khiển không được

hỗ trợ trong nó.
2.1. Các điều khiển không được hỗ trợ trong .Net Compact Framework
.Net Compact Framework cung cấp một tập con các điều khiển sẵn có trong .Net
Framework.
Dưới đây là danh sách bao gồm các điều khiển không được hỗ trợ trong .Net
Compact Framework:
• CheckedListBox
• ColorDialog
• ErrorProvider
• FontDialog
• GroupBox
• HelpProvider
• LinkLabel
• NotificationBubble
• NotifyIcon
• All Print controls
• RichTextBox
• Splitter
20
Tìm hiểu công nghệ .Net Compact Framework 16/4/2008
2.2. Các hàm không được hỗ trợ trong .Net Compact Framework
Dưới đây là danh sách các hàm không được hỗ trợ trong .Net Compact Framework:
• AcceptButton
• CancelButton
• AutoScroll
• Anchor
• Multiple Document Interface (MDI)
• KeyPreview
• TabIndex
• TabStop

• Drag and drop
• All printing capabilities
• Hosting ActiveX controls
2.3. Thiết kế Form với Visual Studio .Net
Visual Studio .Net cho phép chúng ta có thể tạo giao diện người dùng cho ứng
dụng bằng cách kéo thả các điều khiển lên bề mặt form cần thiết kế. Khi một điều khiển đã
nằm trên form, chúng ta có thể xác định vị trị của điều khiển trên form một cách trực quan,
xác định tập các thuộc tính của các điều khiển thông qua cửa sổ Propertise và tạo các sự
kiện cho các điều khiển.
2.3.1. Cửa sổ thiết kế Form
Khi chúng ta tạo một dự án Smart Device Extension (SDE), là một ứng dụng cửa
sổ, Visual Studio .NET sẽ mở dự án trong phần hiển thị thiết kế. Chúng ta có thể lựa chọn
thiết kế từ menu View để đưa vào khung nhìn của dự án. Hình 3.1 đưa đến cho chúng ta
Form Designer của dự án SDE Pocket PC trong khung nhìn Designer.
Chú ý thành phần mainMenu1 ở phía dưới của cửa sổ thiết kế. Đây là vùng thiết kế
dành riêng cho các điều khiển mà không có sự thể hiện trực quan như là điều khiển
MainMenu, điều khiển ContextMenu, điều khiển Timer, và còn nhiều điều khiển khác.
21
Tìm hiểu công nghệ .Net Compact Framework 16/4/2008
Hình 2.1. SDE Pocket PC trong màn hình Designer view
Khi Form Designer được sử dụng để xây dựng ứng dụng, phương thức
InitializeComponent chứa mã nguồn để xây dựng giao diện của ứng dụng. Mã nguồn này
có ảnh hướng rất lớn đến quá trình thực hiện nếu trên form chứa một số điều khiển ẩn.
Trên .NET Compact Framework yêu cầu các cửa sổ được tạo theo hướng từ trên xuống. Ví
dụ, nếu một panel được đặt trên form và panel đó chứa một số điều khiển, panel đó sẽ
được thêm vào form trước, và sau đó các điều khiển mới được thêm vào panel. Điều này
khác với cách thiết kế form trong Visual Studio .Net. Trong Visual Studio .Net, các cửa sổ
được thiết kế theo hướng từ dưới lên. Ví dụ của đoạn mã thiết kế được sinh ra trong Visual
Studio .Net và .Net Compact Framework dưới đây sẽ cho chúng ta thấy điều này:
Mã được sinh ra trong Visual Studio .Net:

// Đây là đoạn mã được sinh ra từ Form thiết kế trong Visual Studio //.Net. Ở đây
form được xây dựng theo hướng từ dưới lên
// Button thêm vào Panel...Panel thêm vào Form
this.panel1.Controls.Add(this.button1);
this.panel1.Location = new System.Drawing.Point(16,
16);
this.panel1.Size = new System.Drawing.Size(208, 168);
22
Tìm hiểu công nghệ .Net Compact Framework 16/4/2008
//
// button1
//
this.button1.Location = new System.Drawing.Point(8,
16);
this.button1.Size = new System.Drawing.Size(72, 24);
this.button1.Text = "button1";
//
// Form1
//
this.Controls.Add(this.panel1);
this.Menu = this.mainMenu1;
this.Text = "Form1";
Mã được sinh ra trong .Net Compact Framwork:
// Form được thiết kế theo hướng từ trên xuống
// Panel thêm vào Form...Button thêm vào Panel...
this.panel1.Location = new System.Drawing.Point(16,
16);
this.panel1.Size = new System.Drawing.Size(208, 168);
this.Controls.Add(this.panel1);
//

// button1
//
this.button1.Location = new System.Drawing.Point(8,
16);
this.button1.Size = new System.Drawing.Size(72, 24);
this.button1.Text = "button1";
//
// Form1
//
this.panel1.Controls.Add(this.button1);
this.Menu = this.mainMenu1;
this.Text = "Form1";
23
Tìm hiểu công nghệ .Net Compact Framework 16/4/2008
2.3.2. Cửa sổ ToolBox
Cửa sổ ToolBox bao gồm tất cả các điều khiển của .NET Compact Framework mà
chúng ta có thể thêm vào ứng dụng. Để thêm một điều khiển vào ứng dụng vào lúc thiết kế
rất dễ, chúng ta có thể thực hiện bằng cách kéo một điều khiển từ ToolBox và thả vào
Forms của ứng dụng trong cửa sổ Form Designer. Hình 3.2
Hình 2.2. Cửa sổ ToolBox cho dự án SDE Pocket PC.
2.3.3. Cửa sổ Propertises
Cửa sổ thuộc tính bao gồm tất cả các thuộc tính public của điều khiển đang được
lựa chọn trong cửa sổ Form Designer. Chúng ta có thể thay đổi thuộc tính của điều khiển
bằng cách đưa giá trị vào điều khiển TextBox bên cạnh các tên thuộc tính. Nếu thuộc tính
có số lượng giá trị giới hạn thì hộp drop-down chứa các giá trị có thể của thuộc tính được
hiển thị bên cạnh tên thuộc tính đó. Nếu giá trị của thuộc tính là một tập hợp các đối tượng
hoặc một đối tượng phức tạp,thì ở đó có thể là dấu 3 chấm nằm bên cạnh tên thuộc tính.
Khi click chuột vào dấu 3 chấm đó sẽ hiển thị một hộp thoại cho phép chúng ta sửa đổi giá
giá trị của thuộc tính. Hình 3.3 hiển thị cửa sổ thuộc tính khi một điều khiển TextBox được
chọn.

24
Tìm hiểu công nghệ .Net Compact Framework 16/4/2008
Hình 2.3. Cửa sổ Properties của một điều khiển TextBox
2.3.4. Thêm vào các bộ bắt sự kiện
Khi một điều khiển bị tác động, nó sẽ sinh ra một sự kiện để thông báo cho ứng
dụng rằng trạng thái của điều khiển đã bị thay đổi. Để bắt sự kiện được sinh ra bởi điều
khiển, trước hết cần tạo một phương thức chứa đoạn mã thực thi khi sự kiện xảy ra. Sau đó
gắn phương thức đó với sự kiện sinh ra bởi điều khiển. Việc này có thể thực hiện được
thông qua cửa sổ Propertises.
Cửa sổ Propertises chứa danh sách các sự kiện được sinh ra bởi một điều khiển.
Click vào nút Events nằm phía trên cửa sổ Propertises chúng ta sẽ thấy danh sách các sự
kiện đó.Hình 3.4 là hình ảnh của cửa sổ thuộc tính hiển thị các sự kiện được sinh ra bởi
điều khiển Button
25

×