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
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
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ó
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ướ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
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
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
// Đâ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);
//
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