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

tìm hiểu về windows presentation foundation (thiết lập trình diễn windows) trong microsoft visual studio 2008

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 (417.21 KB, 21 trang )

TÌM HIỂU VỀ WINDOWS PRESENTATION
FOUNDATION
(THIẾT LẬP TRÌNH DIỄN WINDOWS)
TRONG MICROSOFT VISUAL STUDIO 2008
LỜI MỞ ĐẦU
Trong quá trình học tập và rèn luyện tại khoa Khoa Học Máy Tính – Trường ĐH
Kinh Tế Quốc Dân, chúng em đã được trang bị những kiến thức cần thiết dưới sự
hướng dẫn và dạy bảo của thầy cô trong bộ môn. Đến nay, khi sắp kết thúc 4 năm
học chúng em chuẩn bị ra trường và làm việc, nhà trường đã tạo điều kiện cho
chúng em được tiếp cận thực tế, từ đó kết hợp với lý thuyết mỡnh đó học ứng
dụng vào thực tế thông qua 4 tháng thực tập.
Để có kiến thức và kết quả thực tế như ngày hôm nay, trước hết em xin chân thành
cảm ơn các thầy cô giáo trong Bộ môn Công Nghệ Thông Tin đã giảng dạy và
trang bị cho em những kiến thức cơ bản, đồng thời tận tình hướng dẫ em trong quá
trình thực tập. Bên cạnh đó, em cũng xin gửi lời cảm ơn chân thành đến toàn thể
các anh chị bên Công ty Cổ Phần Phần Mềm Quản Lý Hiện Đại, đã tận tình giúp
đỡ và tạo điều kiện cho em hoàn thành tốt quá trình thực tập của mình.
Trong thời gian thực tập, em nghiên cứu và tìm hiểu về một phương thức “Thiết
lập trình diễn Windows” – Windows Presentation Foundation hoàn toàn mới,
được ứng dụng trong Windows Vista và Windows 7. Với phương thức trình diễn
Windows này cho phép dễ dàng tạo ra những ứng dụng tương tác với người dùng
hiệu quả hơn với một giao diện phong phú và hoàn toàn mới. Đây cũng là một để
tài mới nên em cũng nhận được sự giúp đỡ tận tình từ các anh chị bên Công ty Cổ
phần Phần mềm Quản lý Hiện Đại.
Trong quá trình thực tập và làm báo cáo, do còn thiếu nhiều kinh nghiệm thực tế
nên không tránh khỏi những sai sót. Em mong nhận được sự chỉ bảo của các thầy
cô để em có thể hoàn thành và đạt kết quả tốt hơn. Em xin chân thành cảm ơn!
Chương I: Phương pháp luận nghiên cứu
I. Tổng quan về đơn vị thực tập
1. Giới thiệu về đơn vị thực tập
Trong khoảng thời gian 15 tuần thực tập tại Công ty Cổ phần Phần mềm Quản lý


Hiện Đại, được sự giúp đỡ của ban lãnh đạo công ty và các anh chị cán bộ, nhân
viên công ty cùng với sự hướng dẫn nhiệt tình của thầy giáo Đặng Minh ẤT, em
đã hoàn thành được bài báo cáo thực tập của mình.
Sau đây em sin trình bày tổng quan về công ty nơi em thực tập:
TÊN CÔNG TY
CÔNG TY CỔ PHẦN PHẦN MỀM
QUẢN LÝ HIỆN ĐẠI
TÊN VIẾT TẮT HIENDAI SOFTWARE COMPANY
GIÁM ĐỐC Nguyễn Hồng Vinh
ĐỊA CHỈ
Trụ sở chính: Phòng 901, nhà CT1-
2, KĐT Mễ Trì Hạ
Từ Liêm, Hà Nội
HOMEPAGE

E-MAIL
;

ĐIỆN THOẠI
+84–(0)4–787 5266; 04 210 7136
FAX +84–(0)4–787 5266
Công ty Cổ phần Phần mềm Quản lý Hiện Đại là một công ty chuyên về cung cấp
các phần mềm quản lý, phát triển các giải pháp dựa trên công nghệ của Microsoft.
Công ty có hai bộ phận chính:
• Phòng Giải pháp Thư viện: Chuyên nghiệp trong việc phát triển và cung
cấp các sản phẩm phần mềm và hỗ trợ cho các vấn đề quản lý thông tin tư
liệu thư viện ngày nay.
• Phòng Giải pháp Doanh nghiệp tập trung phát triển các sản phẩm phần
mềm và dịch vụ hỗ trợ cho các doanh nghiệp
Mục tiêu của công ty:

• Cung cấp các giải pháp phần mềm có chất lượng cao thỏa mãn mục tiêu
kinh doanh của khách hàng
• Chuyên sau về thiết kế và phát triển các ứng dụng phục vụ cho thư viện,
các giải pháp quản lý tri thức, giải pháp quản lý doanh nghiệp tổng thể.
• Trở thành một trong những công ty phần mềm hàng đầu của Việt Nam
trong lĩnh vực phát triển các giải pháp phần mềm phục vụ đào tạo và quản
lý doanh nghiệp.
2. Sơ đồ tổ chức
Công ty Cổ phần Phần mềm Quản lý Hiện Đại được thành lập từ tháng 9 năm
2004 với nòng cốt nhân lực từ nhóm kỹ sư thuộc tập đoàn thông tin Châu Á
IGroup chuyên nghiệp trong việc cung cấp thông tin và các giải pháp cho thư viện.
Sơ đồ tổ chức của công ty:
Nhân sự của HIENDAI hiên nay gồm 15 nhân viên, độ tuổi trung bình là 25. Cỏc
nhõn việc của HIENDAI đều có trình độ cao, và 90% tốt nghiệp Đại học. Và tất cả
đều có kinh nghiệm trong lĩnh vực hoạt động của mình.
II. Tính cấp thiết của đề tài
Năm 2004, với sự ra đời của bộ Visual Studio 2005, Microsoft đã khẳng định
được những tính năng vượt trội so với bộ Visual Studio 2003: cho phép tăng tốc
code, giao diện được thiết kế với khả năng tùy biến theo hệ điều hành giúp cho
ứng dụng giảm bớt sự khô cứng, môi trường thiết kế ứng dụng được hệ thống lại
giúp cho việc thiết kế trở nên dễ dàng hơn… đến nay Microsoft đưa ra một sản
phẩm mới mang nhiều bước tiến vượt bậc hơn so với bộ VS 2003, VS 2005 đú
chớnh là sản phẩm Visual Studio 2008. Đây là sản phẩm được cho là tốt hơn hết
so với những phiên bản Visual Studio trước đây.
Mới đây khi Windows Vista, Windows 7 ra đời với một dòng giao diện hoàn toàn
mới, mở ra thời kì của các ứng dụng với giao diện phong phú, linh hoạt, đồ họa
3D, thân thiện và bắt mắt người dùng hơn… Cùng lúc đó là sự ra đời của bộ
Visual Studio 2008 cung cấp môi trường để tạo ra các ứng dụng đáp ứng được yêu
cầu về giao diện mới, bên cạnh đú nó cũn chứa các tính năng đột phá giúp cho
việc thiết kế được thuận lợi hơn. Visual Studio 2008 hướng tới sự phát triển trong

môi trường .Net Framework bản 2.0, 3.0 và 3.5. Visual Studio 2008 có rất nhiều
điểm đặc biệt hơn Visual Studio 2005. Trong bộ sản phẩm Visual Studio 2008,
Microsoft đã đưa ra rất nhiều công nghệ và tiện ích đáng chú ý như: WPF
(Windows Presentation Foundation), XAML - Extensible Application Markup
Language(là trình thiết kế căn bản), LINQ to SQl (dung để mô tả các kiểu ánh xạ
và sự đóng gói của đối tượng cho dữ liệu của SQL Sever)… trong đó đáng chú ý
nhất có thể kể đến là WPF và XAML. Hai khái niệm này gắn kết với nhau và được
cho là trong tương lai chúng sẽ đem lại một cuộc cách mạng trong việc xây dựng
phần mềm. Giờ đây việc xây dựng các ứng dụng cả WinForm và WebForm trở
nên dễ dàng hơn, thuận tiên hơn. Nhờ bộ công cụ trình diễn Win mới cho phép ra
đời một thế hệ lập trình đồ họa tuyệt vời bao gồm GDI vừa hỗ trợ đồ họa 3D, hình
động, video, xử lý nhận dạng âm thanh… Tất cả đều có trong hai khái niệm
Windows Presentation Foundation và Extensible Application Markup Language
(XAML) . Trong báo cáo thực tập này, tôi xin đưa ra các nghiên cứu về phương
thức trình diễn Windows mới (Windows Presentation Foundation). Công nghệ này
cung cấp nền tảng cho việc xây dựng ứng dụng với khả năng kế hợp các thành
phần giao diện ứng dụng, tài liệu dưới dạng văn bản và các nội dung media. WPF
cũng cho phép khai thác tối đa được sức mạnh của máy tính cũng như các công
nghệ mới trong Windows Vista.
Chương 2: Tổng quan về đề tài
I. Microsoft Visual Studio 2008
1. Sơ lược lịch sử phát triển của Visual Studio
Trở về những năm 1997, thời điểm phiên bản đầu tiên, Visual Studio được chia
thành các IDE (Intergrated Development Environment – môi trường phát triển tích
hợp) nhỏ bao gồm Visual C++, Visual Basic, Visual J++, một công cụ có tên
InterDev và MSDN Library. Đây là môi trường hỗ trợ các nhà lập trình viên trong
việc phát triển phầm mềm.
Tiếp đến vào tháng 6 năm 1998 Microsoft cho ra đời Visual Studio 6.0 cải thiện
thêm cho Visual Studio 97. Đây cũng là phiên bản cuối cùng chạy trên nền tảng
Win9x. Nó có những nâng cấp rõ rệt đối với Visual J++, Visial InterDev. Phiên

bản này là một cơ sở, một nền tảng mà Microsoft phải mất tớ 4 năm để phát triển
lên một môi trường mới mà giờ đây người ta gọi là .NET Framework.
Năm 2002, 2003 Microsoft trình làng cặp sản phẩm mang tính đột phá Visual
Studio .NET 2002 và Visual Studio .NET 2003, đó là một sự thay đổi lớn trong
công nghệ phát triển phần mềm. Microsoft đã giới thiệu một môi trường phát triển
“code được quản lý” (managed code) sử dụng .NET Framework, là một IDE đa
năng, là môi trường mà bạn có thể viết ứng dụng bằng bất kì ngôn ngữ nào, từ C+
+, Visual Basic cho đến J++ hay C#, chỉ cần duy nhất một IDE bạn có thể làm chủ
tõt cả từ giao diện cho đến soạn thảo mã lệnh, tất cả đều thật dễ dàng.
Ba năm sau là sự ra đời của Visual Studio 2005, nó giỳp cho nhà phát triển làm
việc nhóm dễ dàng và hiệu quả, cũng như giảm bớt công sức và thời gian trong
quá trình phát triển. Và giờ đây được cho là tốt hơn tất cả các phiên bản trước đây
Visual Studio 2008 ra đã ra đời.
Visual Studio 2008 cung cấp một bộ công cụ mạnh mẽ để xây dựng phần mềm
cho Windows, Web, các thiết bị di động và Microsoft Office. Visual Studio 2008
nâng cao hiệu quả của nhà phát triển bằng cách cung cấp công cụ để họ viết mã
nhanh hơn, đơn giản hóa những tác vụ liên quan đến việc phát triển phần mềm
khác. Bộ công cụ này cho phép tăng tốc quá trình biến ý tưởng ban đẩu của nhà
phát triển thành hiện thực.
Visual Studio 2008 được thiết kế để hỗ trợ các dự án phát triển nhắm đến nền tảng
web (bao gầm ASP.NET, AJAX), Windows Vista, Windows Sever 2008, hệ thống
2007 Microsoft Office, SQL Sever 2008 cùng với các thiết bị nền Windows
Mobile. Phiên bản Visual Studio này gồm các công cụ phát triển với .Net
Framework 3.0. Các công cụ này đã được thiết kế kéo thả cho các giao diện sử
dụng người dung (GUI) Windows Presentation FrameWork và các công cụ thiết
kế cho engine luồng công việc Windows WorkFlow Foundation. Mặt khác, Visual
Studio 2008 cung cấp ngôn ngữ truy vấn tích hợp - Language Integrated
Query(LINQ), các mở rộng trong cở sở dữ liệu và dữ liệu XML. Số lượng nền
tảng hệ thống mà các nhà phát triển nhắm đến để đáp ứng nhu cầu thương trường
ngày càng gia tăng rất nhanh. Visual Studio 2008 cung cấp bộ công cụ tích hợp để

đáp ứng mọi nhu cầu này thông qua việc cung cấp một tập hợp khổng lồ các chức
năng, đặc tính hoàn toàn mới.
2. Tính năng vượt trội của Microsoft Visual Studio 2008 so với các phiên
bản trước
Như đã nói, Visual Studio 2008 chính là một bộ công cụ để xây dựng phần cho
Windows, Web, các thiết bị di động và Microsoft Offoce. Được cho là phiên bản
tốt hơn hết so với các phiên bản Visual Studio trước đây, Visual Studio 2008 tích
hợp những tính năng có thể làm thỏa mãn bất kỳ nhà phát triển ứng dụng nào.
Visual Studio 2008 được đánh giá cao qua những điểm nổi trội sau:
• Thứ nhất, Visual Studio 2008 tích hợp phiên bản chính thức .NET
Framework 3.5 và môi trường đồ họa động mới nhất Silverlight. Visual
Studio cũn cú thờm một công cụ mới Popfly Explorer. Đây là công cụ cho
phép nhà phát triển xây dựng các ứng dụng dịch vụ Web trên nền tảng
Silverlight mới ra mắt của Microsoft. Một nền tảng tương tự như Adobe
Flash
• Thứ 2, Visual Studio 2008 giờ cũng đã tích hợp khả năng hỗ trợ nhiều ngôn
ngữ động như IronRuby và IronPython. Và cuối cùng là Visual Studio 2008
được Microsoft tích hợp thêm LINQ (Language Integrated Query – Ngôn
ngữ truy vấn tích hợp). Tính năng này cho phép ngôn ngữ lập trình .NET có
thể truy vấn dữ liệu thông qua Lexicon tương tự như SQL nhưng không cần
phải thông qua các bộ xử lý dữ liệu như ADO.
• Thứ ba, công cụ Sync Framework tích hợp sẵn giúp mở rộng khả năng hỗ
trợ đồng bộ hóa của Visual Studio 2008 cho phép tạo ứng dụng phối hợp
ngoại tuyến hoặc ngang hang. Microsoft tuyên bố Sync Framework là nền
tảng đưa dịch vụ Web và cơ sở dữ liệu từ trên mạng xuống dưới PC, hỗ trợ
đồng bộ hóa ngang hang bất kỳ loại tệp tin nào theo bất kỳ thủ tục truyền
tải, loại dữ liệu hoặc hình thức lưu trữ nào.
Tóm lại Visual Studio 2008 ra mắt những ưu điểm chính cho các chuyên gia phát
triển phầm mềm thể hiện trong 3 lĩnh vực chính:
• Cải thiện khả năng sản xuất

• Quản lý chu trình phát triển ứng dụng
• Triển khai các công nghệ mới nhất
Những đặc điểm này ta có thể thấy rõ nó đó tạo ra một bước tiên lớn.
a. Về cải thiện khả năng sản xuất:
Với mỗi phiên bản, Microsoft luôn cố gắng cải thiện Visual Studio để sao cho
luôn có thể đặt được hiệu suất làm việc ngày càng cao hơn. Chính vì vậy mà
Visual Studio 2008 đã đi sâu vào giải quyết những vấn đề phức tạp của công việc
phát triển phần mềm:
• Vấn đề truy xuất dữ liệu: Có thể nói những thây đổi về truy xuất dữ liệu
trong Visual Studio 2008 là một cuộc các mạng. Ở phiên bản này,
Microsoft giới thiệu LINQ (Language Integrated Query – Ngôn ngữ truy
vấn tích hợp) giúp cho nhà pháp triển có thể tương tác với dữ liệu dựa trên
một mô hình hoàn toàn mới với rất nhiều hỗ trợ cho hai ngôn ngữ C# và
Visual Basic. Xử lý dữ liệu luôn là trở ngại chính mà các nhà phát triển
thường phải đối mặt, đặc biệt là quá trình làm việc với những dữ liệu mang
tính trao đổi cao như XML (Extensible Makeup Language – Ngôn ngữ
đánh dấu mở rộng). Nhưng với LINQ, mọi thứ dường như được giải tỏa,
bởi đúng như tên gọi của nó, LINQ được tích hợp vào ngay bản thân ngôn
ngữ lập trình. Với dự hỗ trợ sâu về việc kết hợp ngôn ngữ truy vấn tích
hợp .NET (LINQ to SQL) bên trong các ứng dụng Web ASP.NET, Visual
Studio tạo lên sự sang tạo dữ liệu cho các Website, làm cho chúng trở nên
năng suất hơn và cũng hiệu quả hơn. Các chuyên gia có thể sử dụng các
ngôn ngữ lập trình quen thuộc để truy cập và tất cả các nguồn dữ liệu trong
theo cách hợp nhất
• Thiết kế giao diện nhanh, hiệu quả: Với Visual Studio 2008, chỉ với một
IDE duy nhất, chúng ta có thể làm việc được với tất các phiên bản của
.NET Framework từ phiên bản mới nhất cho đến phiên bản mới nhất 3.5
đến phiên bản cũ hơn 3.0 hay thậm chí là 2.0. Đặc biệt Windows Form
designer của Visual Studio 2008 được tích hợp chặt chẽ với WPF
(Windows Presentation Foundation), giúp nhà phát triển có được một giao

diện thật bắt mắt nhưng lại chẳng tốn nhiều thời gian và công sức.
• Tạo các ứng dung Microsoft Office hiệu quả: Tích hợp chặt với Microsoft
Office thông qua bộ công cụ Visual Studio Tool for Office(VSTO). Visual
Studio cho phép các chuyên gia phát triển phần mềm có thể tùy chỉnh
Word, Excelđ, PowerPoint, Outlook, Visiođ, InfoPathđ, và Project để cải
thiện năng suất người dùng và tận dụng nhiều cải thiện trong hệ thống
Offỡce 2007 của Microsoft.
• Xây dựng các ứng dụng Windows Vista hiệu quả: Visual Studio cung cấp
công cụ cho phép các chuyên gia xây dựng ứng dụng giàu kinh nghiệm
nhanh chóng và dễ dàng. Các công cụ này gồm có một bộ thiết kế và bộ
soản thảo XAML, các mẫu dự án và hỗ trợ gỡ rồi, hỗ trợ triển khai…
Không chỉ hỗ trợ về mảng thiết kế giao diện trực quan thông qua Windows
Form Designer, Visual Studio 2008 còn hỗ trợ nhà phát triển can thiệp sâu
vào XAML để xây dựng giao diện cho các ứng dụng dựa trên nền WPF.
Ngoài ra, theo Microsoft thì Visual Studio 2008 còn hỗ trợ tới trên 8000
API (Application Programming Interface) dành riêng cho Windows Vista.
Thậm chí, Visual Studio 2008 còn hỗ trợ cả WWF (Windows Workflow
Foundation) giúp nhà phát triển dễ dàng hơn khi triển khai dứng dụng, có
thể không cần viết một dũng mó nào.
b. Về quản lý chu trình phát triển ứng dụng ta có thể thấy những ưu điểm
sau trong Visual Studio 2008:
Bằng việc hỗ trợ các định dạng chung (như XML) và cho phép nhân viên thiết kế
kiểm soát trực tiếp hơn với Layout, các Control và sự ràng buộc dữ liệu của giao
diện ứng dụng người dùng (UI), Visual Studio làm cho các thiết kế viên hòa nhập
vào quá trình phát triển dễ dàng hơn. Visual Studio hỗ trợ đầy đủ sự cộng tác
luồng công việc, cho phép các thiết kộ viờn và chuyên gia phát triển phần mềm
được quản lý công việc trước/sau và công ciệc song song. Ngoài ra, các thiết kế
viên cà chuyên gia phát triển phần mềm cũng có thể xây dụng các thư viện thành
phần, định dạng và các thiết kế giao diện người dùng chung để dễ dàng quản lý và
sử dụng lại.

Ngoài ra, sự triển khai ClickOnce trong Visual Studio 2008 hiện còn hỗ trợ cho cả
trình duyệt Firefox và cung cấp việc ký độc lập Location và gỏn nhón khỏch hang.
Thêm vào đó, ClickOnce hiện còn hỗ trợ triển khai thông qua các máy chủ proxy
được thẩm định và cho phép các chuyên gia phát triển phần mềm phân phối được
ứng dụng của họ nhiều công ty từ một vị trí trung tâm.
Microsoft Synchronization Services cho ADO.NET cung cấp một giao diện lập
trình ứng dụng (API) giúp đồng bộ hóa dữ liệu giữa các dịch vụ dữ liệu và kho dữ
liệu cục bộ. Synchronization Services API được mô hình hóa sau khi các giao diện
lập trình ứng dụng truy cập dữ liệu Ado.NET và cho một cách trực giác để đồng
bộ dữ liệu. Nó làm cho việc xây dựng các ứng dụng trong môi trường kết nối
không thường xuyên được mở rộng về mặt logic, nơi có thể phụ thuộc vào sự nối
mạng nhất quán.
c. Về triển khai cỏc cụng nghờ mới nhất thể hiện ở những đặc điểm sau:
Cho phép chuyên gia phát triển phần mềm Web lập trình các giao diện Web tương
tác người dùng “AJAX - style”. Visual Studio cung cấp cho các chuyên gia phát
triển các công cụ và sự hỗ trợ Framework cần thiết để tạo ra các ứng dụng Web
hấp dẫn, nhiều ý nghĩa và cho phép AJAX.
Dễ dàng sử dụng các dịch vụ Windows Communication Foundation(WCF): các
chuyên gia có thể sử dụng các công cụ RAD để tạo nhanh chóng và dễ dàng kết
nối mỏy khỏc và proxy đến các dịch vụ đang tồn tại, kiểm tra chúng mà không cần
viết mã. Thêm vào đó các chuyên gia phần mềm có thể sử dụng cùng công nghệ
và công cụ cho các dịch vụ WCF dự chỳng có được đặt ở đâu đi nữa.
Thực thi dịch vụ dược tích hợp với thiết kế luồng công việc: Visual Studio cho
phép chuyên gia phát triển phần mềm soạn thảo lại các hành vi trong toàn bộ các
dịch vụ với Windows Workflow Foundation để hình dung, tạo, soạn thảo và gỡ rối
các nhiệm vụ luồng công việc và các thành phần phụ thuộc.
Sự kết hợp của WPF, XAML đem lại cuộc cách mạng trong quá trình xây dựng
phần mềm. Visual Studio 2008 hỗ trợ toàn bộ cho việc lập trình giao diện đồ họa
với WPF. Đây là một công cụ tuyệt vời, hỗ trợ kéo thả và viết mã nguồn XAML là
đồng bộ với nhau. XAML là công nghệ có thể ứng dụng trong nhiều lĩnh vực khác

nhưng vai trò chính của nó là để xây dựng giao diện trong các ứng dụng WPF.
II. Windows Presentation Foundation
1. Khái niệm về WPF
Windows Presentation Foundation (WPF) trước đây được gọi là code Avalon, là
một hệ thống đồ họa con trong môi trường .NET Framework 3.0, trong đó sử dụng
ngôn ngữ đánh dấu ứng dụng mở rộng (Extensible Application Markup Language)
XAML cho việc phát triển giao diện người dùng phong phú, đa dạng. WPF có
trong Windows Vista và Windows Sever 2008, và cũng có sẵn trong Windows XP
Service pack 2 hoặc các phiên bản sau và Windows Sever 2003.
Hình 1: Một phần hệ thống con trong môi trường .NET Framework 3.0
WPF cung cấp một mô hình lập trình nhất quán để xây dựng những ứng dụng và
đưa ra sự phân chia rõ ràng giữa giao diện người dùng và logic nghiệp vụ. Một
ứng dụng WPF có thể được triển khai trên máy tính để bàn hoặc lưu trữ trên máy
chủ của một trình duyệt web. Nó cũng cung cấp những điều khiển phong phú, thiết
kế và phát triển những giao diện trực quan cho các chương trình Windows, nhằm
mục đích thống nhất một số các dịch vụ ứng dụng: giao diện người dung (UI), đồ
họa 2D và 3D, những tài liệu thích ứng, nâng cao kĩ thuật typography (kỹ thuật tạo
chữ), vector đồ họa, đồ họa raster, hình ảnh động, ràng buộc dữ liệu, âm thanh và
video. Mặc dù Winform sẽ tiếp tục được sử dụng rộng rãi và Microsoft mới chỉ
đưa ra vài ứng dụng WPF nhưng Microsoft cũng đang quảng bá WPF cho dòng
sản phẩm các ứng dụng doanh nghiệp.
Trước khi WPF ra đời, những Developer chủ yếu sử dụng Windows Forms để xây
dựng ứng dụng. WPF bắt đầu xuất hiện từ phiên bản .NET Framework 3.0 và
mang đến nhiều thay đổi đáng kể. trong đso có 5 thay đổi mang lại sự vượt trội
của WPF so với Windows Forms:
• Tốc độ: các ứng dụng WPF đều sử dụng DirectX để thực hiện các thao tác
lien quan tới drawing. Chính vì vậy mà ứng dụng có thể tận dụng triệt để
sức mạnh của video cards.
• Không phụ thuộc vào độ phân giải: tính linh động của WPF là rất cao, nó
cho phép ứng dụng của bạn có thể phóng to, thu nhỏ tùy thuộc vào cấu hình

màn hình của bạn.
• Giao diện các Control hoàn toàn tùy biến: khi xây dụng ứng dụng với
Windows Forms thì việc tùy biến giao diện của các Control là khác phưc
tạp. Còn trong WPF, mọi Control đều có thể tùy biến hoàn toàn từ một
Control đơn giản như Rectangle tới một Control phức tạp như Toolbar
• Giao diện có thể khai báo: cùng với sự kết hợp chặt chẽ với XAML – Ngôn
ngữ đánh dấu cho phép định nghĩ giao diện của WPF. XAML cho phép xây
dựng một Windows mà không cần dùng code. Đặc biệt, XAML không chỉ
giới hạn ở các Control tĩnh mà còn cung cấp một số tính năng cho phép bạn
thực hiện các giao tiếp đơn giản (Ví dụ: khi di chuột qua một Label thì
Label đó sẽ nhấp nháy). Tất cả điều không phải viết một dòng code nào.
• Object – based drawing: mọi hành động drawing đều thực hiện trờn cỏc đối
tượng. Nghĩa là bạn sẽ không thực hiện vẽ từng điểm ảnh một mà bạn sẽ
tạo ra các đối tượng Shape sau đó định nghĩa chúng. WPF sẽ thể hiện đối
tượng đó theo cách tốt nhất có thể
2. Cấu trúc của Windows Presentation Foundation
Hình 2: Kiến trúc của WPF
WPF sử dụng một kiến trúc đa tần, ở phía trên ứng dụng của bạn sẽ tương tác với
một tập các dịch vụ ở mức cao. Cấu trúc của Windows Presentation Foundation
xoanh quanh hai thành phần “code được quản lý” (Managed code) và mó mỏy.
Các hàm thư viện API dùng chung chỉ có thể thực thi thông qua Managed code.
Trong khi phần lớn WPF đều là ở managed code, thì công cụ để tạo ra ứng dụng
WPF là một thành phần riêng. Nó được gọi là MIL (Media Integration Layer - Lớp
tích hợp truyền thông) và được lưu trữ trong milcore.dll.
MIL giao tiếp trực tiếp với DirectX và cung cấp hỗ trợ cơ bản cho các bề mặt đồ
họa 2D và 3D, thao tác kiểm soát thời gian những nội dung của một bề mặt với
một cái nhìn tổng quan để trình diễn những Animation (hình ảnh động) được xây
dựng ở mức cao hơn và kết hợp những phần tử đơn lẻ của một ứng dụng WPF để
cuối cùng tạo thành một hoạt cảnh 3D - chính là giao diện người dùng của ứng
dụng và từ đó đưa ra màn hình. Các media codec (những chương trình có khả năng

mã hóa và giải mã một dòng dữ liệu hoặc tín hiệu) được thực thi ở “mó không
được quản lý” (unmanaged code), và được lưu trữ trong windowscodecs.dll.
Trong môi trường được quản lý, PresentationCore (presentationcore.dll) cung cấp
một “trình bao bọc được quản lý” (managed wrapper) cho lớp MIL và thực thi các
dịch vụ cốt lõi cho WPF. Nó bao gồm một hệ thống thuộc tính, cho phép nhận biết
những phụ thuộc giữa người thiết lập và người dùng thuộc đó, và bao gồm một hệ
thống gửi tin nhắn theo nghĩa là một đối tượng Dispatcher để thực thi một hệ
thống sự kiện đặc biệt và những dịch vụ cho phép thực thi một hệ thống layout
như là thước đo cho những phần tử UI.
PresentationFramework (presentationFramework.dll) thực thi những chức năng
trình diễn người dùng cuối, bao gồm bố trớ(layout), thời gian phụ thuộc(time-
dependent), Animations, và ràng buộc dữ liệu (data binding).
WPF đưa ra một hệ thống đặc tính cho các đối tượng kế thừa từ
DependencyObject (đối tượng phụ thuộc). Đối tượng này nhận thức được sự phụ
thuộc giữa những người dùng thuộc tính và có thể kích hoạt các hoạt động dựa vào
những thay đổi của các thuộc tính. Các thuộc tính này có thể là những giá trị mã
hóa cứng hay những biểu thức mà cụ thể là những biểu thức đánh giá cho ra một
kết quả. Tuy nhiên, trong phiên bản đầu tiên, tập hợp các biểu thức được hỗ trợ
đều đóng. Giá trị của thuộc tính cũng có thể được kế thừa từ những đối tượng cha.
Các thuộc tính WPF hỗ trợ những thông báo thay đổi. Nó gọi ra xử lý ràng buộc
bất cứ khi nào một vài thuộc tính của phần tử bị thay đổi. Những xử lý tùy chỉnh
có thể được sử dụng để đưa một thông báo thay đổi thuộc tính thông qua một tập
các đối tượng WPF. Điều đó có được bởi việc sử dụng hệ thống layout để kích
hoạt sự tính toán lại của việc bố trí trong những thay đổi thuộc tính. Như vậy khi
trình bày một phương thức lập trình khai báo cho WPF, hầu như tất cả mọi thứ, từ
cài đặt màu sắc, vị trí tới những phần tử động có thể đạt được bằng các cài đặt
thuộc tính. Điều này cho phép các ứng dụng trên WPF có thể được viết bằng
XAML - một ngôn ngữ đánh dấu khai báo (declarative mark-up language), bằng
việc ràng buộc khóa và thuộc tính trực tiếp tới những thuộc tính và lớp trong WPF.
Các phần tử UI của một ứng dụng WPF có thể tồn tại như là một lớp của những

đối tượng Visual(những đối tượng trực quan). Những đối tượng Visual cung cấp
một giao diện được quản lý cho mụt cõy thành phần. Cây thành phần này là có
trong lớp tích hợp truyền thông (MIL). Mỗi một phần tử của WPF tạo ra và thêm
vào một hoặc nhiều nút trong cõy đú. Những nút thành phần này chứa những chỉ
thị như là những chỉ thị slipping (cắt) và transformation (chuyển đổi), cùng với
những thuộc tính Visual khác. Vì vậy, toàn bộ ứng dụng được biểu diễn như là
một tập hợp những nút thành phần, mà nó được lưu trữ trong bộ đệm của hệ thống.
Theo định kì MIL sẽ duyệt cây và thực thi những chỉ lệnh trong mỗi nút, theo cách
đó kết hợp mỗi phần tử vào một bề mặt đồ họa DirectX rồi sau đó trả ra màn hình.
MIL sử dụng thuật toán painter, nơi mà tất cả các thành phần được đưa ra màn
hình, nó cho phép những hiệu ứng phức tạp như là hiệu ứng“trong suốt” có thể đạt
được một cách dễ dàng. Quá trình xử lý này được tăng tốc phần cứng bằng cách sử
dụng GPU(Graphics Processing Unit – Đơn vị xử lý đồ họa). Cây thành phần
được lưu trử bởi MIL, tạo một chế độ “giữ lại” đồ họa, vì thế nếu có bất cứ thay
đổi nào tới cây thành phần thì chỉ cần được giao tiếp với MIL. Điều này cho phép
giải phóng cho trình ứng dụng quản lý “vẽ” lại màn hình. Những Animation có thể
được triển khai như là những sự thay đổi thời gian kích hoạt tới cây thành phần.
Về phía người sử dụng, những Animation được định rõ bằng cách cài đặt một vài
hiệu ứng hình ảnh động cho các thành phần thông qua một đặc tính và thời gian
xác định. Mã ẩn (code-behind) cập nhập những nút cụ thể của cây thông qua các
đối tượng Visual, để trình diễn cả trạng thái trung gian ở những khoảng thời gian
nhất định cũng như trạng thái cuối cùng của thành phần. MIL sẽ trả ra những thay
đổi tới phần tử một cách tự động.
Tất cả những ứng dụng WPF bắt đầu với hai chuỗi: một cho việc quản lý UI và cỏi
khỏc cho việc quản lý trình diễn và vẽ lại. Việc trình diễn và vẽ lại được quản lý
bởi chính WPF mà không cần bất kì sự can thiệp nào của người phát triển. Các
chuỗi giao diện người dùng lưu trữ trong Dispatcher (thông qua một mẫu của
DispatcherObject), nó duy trì một hàng đợi những thao tác UI trong lúc đợi được
thực thi (như là một cây đối tượng Visual), và được sắp xếp theo độ ưu tiên. Các
sự kiện UI ( bao gồm thay đổi thuộc tính) ảnh hưởng đến sự bố trí và các sự kiện

tương tác người dùng được xếp hàng đợi trong Dispatcher. Dispatcher đưa ra trình
quản lý cho các sự kiện. Microsoft đã đề rằng các sự trình xử lý sự kiện chỉ cập
nhập các đặc tính để phản ánh nội dung mới cho việc hồi đáp ứng dụng. Nội dung
mới này sẽ được phát sinh hoặc khôi phục trong chuỗi nền. Chuỗi trình diễn chọn
ra một bản sao của cây Visual và duyệt cõy, cỏc thành phần của nó sẽ được hiển
thị và trình diễn chúng ở bề mặt Direct3D. Các chuỗi trình diễn cũng được lưu trữ
trờn cõy Visual. Vì vậy, chỉ những thay đổi tớ cây thành phần mới được được
giao tiếp, đó là những thay đổi mà kết quả đưa ra là việc cập nhập pixel được thay
đổi. WPF cung cấp một mô hình bố trí mở. Sự bố trí này được chia thành hai giai
đoạn: sắp xếp và đo lường. Giai đoạn đo lường sẽ gọi đệ quy đến các phần tử và
quyết định kích thước của nó. Trong giao đoạn sắp xếp, các phần tử con được sắp
xếp đệ quy từ chính phần tử cha của nó bằng cách gọi ra thuật toán bố trí của
module bố trí đang dùng.
3. Tính năng trong WPF
Sau đõy là một số những tớnh năng tạo bước tiến trong công nghệ WPF.
a. Hệ thống dịch vụ đồ họa:
Tất cả các đồ họa (bao gồm những sản phẩm máy tính để bản giống như windows)
đều là những ứng dụng đồ họa Direct3D. Điều này nhằm mục đích cung cấp một
đại lộ thống nhất cho trình diễn các graphic, cũng như các tính năng đồ họa nâng
cao hơn.
Định tuyến đồ họa thông qua Direct3D, cho phép Windows chuyển một số tác vụ
đồ họa cho GPU(đơn vị xử lý đồ họa) có trong card đồ họa của máy tính. Điều này
làm giảm khối lượng công việc trên bộ xử lý của máy tính. Hỗ trợ những đồ họa
vector cơ sở và hỗ trợ vẽ mụ cỏc mô hình 3D và tương tác trong ứng dụng 2D. Nội
dung tương tác 2D có thể được phủ lên bề mặt 3D một cách tự nhiên.
b. Tính tương tác giữa các thành phần
• WPF cung cấp thao tác với các hàm windows API: thông qua
hosting, ta có thể sử dụng WPF bên trong mã Win32 có sẵn, hoặc ta
có thể sử dụng mã Win32 bên trong WPF.
• Thao tác với Windows Forms cũng có thể thông qua việc sử dụng

những lớp ElementHost và WindowsFormsHost.
c. Hệ thống dịch vụ truyền thông:
WPF cung cấp những hình dạng gốc cho đồ họa 2D cùng với bộ công cụ cài đặt
sẵn: brush, pen, geometry(hỡnh học) và transform(phép biến đổi).
Các kỹ thuật 3D trong WPF là một nhúm cỏc chức năng đầy đủ cung cấp bởi
Direct3D. Tuy nhiên, WPF cung cấp sự tích hợp chặt chẽ hơn với các chức năng
khác như là UI, tài liệu, phương tiện truyền thông. Chính điều này làm cho nó có
thể có giao diện đồ họa 3D, tài liệu 3D, và truyền thông 3D.
WPF hỗ trợ các định dạng hình ảnh phổ biến nhất, cung cấp mặc định những định
dạng video .wmv, .mpeg và một số tập tin .avi.
WPF hỗ trợ những ảnh động dựa trên thời gian, nó ngược với phương pháp ảnh
động dựa trên khung. Điều này tách riêng tốc độ của ảnh động với việc hệ thống
trình diễn như thế nào.
d. Ảnh động – Animation
• Ảnh động dựa trên thời gian. Việc vẽ lại các scene (hoạt cảnh) được
kích hoạt thời gian.
• Việc trình diễn thời gian được khởi tạo và quản lý trong WPF.
• Những thay đổi scene được điều phối bằng cách sử dụng StoryBoard.
• Ảnh động có thể được kích hoạt bởi các sự kiện bên ngoài, bao gồm cả
hành vi của người dùng.
• Hiệu ứng ảnh động có thể được định nghĩa trên từng đối tượng cơ sở,
cái mà có thể trup cập trực tiếp từ ngôn ngữ đánh dấu XAML.
e. Ràng buộc dữ liệu – Data binding
• WPF xây dựng sẵn một tập dịch vụ dữ liệu để cho phép người phát triển
ứng dụng có thể ràng buộc và thao tác với dữ liệu trong ứng dụng.
• Những truy vấn LINQ(Language Integrated Query-ngụn ngữ truy vấn
tích hợp) cũng có thể hoạt động như là nguồn dữ liệu cho ràng buộc dữ
liệu
• Ràng buộc dữ liệu ko phát sinh trong khi trình diễn. WPF cung cấp
những dữ liệu mẫu để kiểm soát việc trình diễn dữ liệu.

• Một bộ các control được cài đặt sẵn được cung cấp như là một phần của
WPF, chứa các mục như là: button, menu, grids và list box.
• Một khái niệm mạnh mẽ trong WPF đó là sự phân chia logic của một
control với hình thức của chính nó.
o Một mẫu của control có thể bị ghi đè để thay đổi hoàn toàn sự
hình thức trực quan của chính nó
o Một control có thể chứa bất kì control hoặc layout khác nào đó,
từ đó cho phép tạo những control mới.
• Chức năng cho phép dùng lại những mô hình đồ họa, vì thế cho phép
ứng dụng không phải quan tâm đến việc tạo lại các trình diễn.
f. Hình ảnh – Image
WPF có thể truy nhập dễ dàng vào mã WIC(Windows Imaging Component) và
các hàm API cho phép người phát triển viết codec hình ảnh (bộ mó húa-giải mó)
cho những định dạng tập tin hình ảnh cụ thể.
g. Hiệu ứng – Effect
WPF cung cấp những hiệu ứng ảnh bitmap. Tuy nhiờn, chỳng được biểu diễn
trong phần cứng ở .NET Frameword 3.5 SP1 hoặc mới hơn. Tính năng GPU(đơn
vị xử lý hình ảnh) giống như pixel shaders không được sử dụng đối với hiệu ứng
ảnh bipmap. Những hiệu ứng đặc biệt như Dropshadows và blurring được cài đặt
sẵn.
h. Tài liệu - Document
• WPF hỗ trợ sẵn những tài liệu được đánh số. Nó cung cấp một lớp
DocumentReader. Lớp này sử dụng cho việc đọc những tài liệu đã
fixed. Lớp FlowDocumentReader cung cấp các chế độ xem khác nhau
như là: từng trang hoặc có thể dùng thanh cuộn…
• Hỗ trợ sẵn các tài liệu XML Paper Specification(Đặc tả văn bản XML)
• Hỗ trợ đọc và viết những tài liệu tự đánh số sử dụng Open Packaging
Convention .
i. Văn bản – Text
WPF bao gồm một số những chức năng vẽ và in văn bản mà chúng không có trong

GDI. Đõy là giao diện lập trình Windows đầu tiên sử dụng những chức năng
OpenType cho những nhà phát triển phần mềm, hỗ trợ cả các font như: OpenType,
TrueType và open CFF (Compact Font Format). Trong OpenType bao gồm các
chức năng như: ghép chữ, những biến Swash, phõn số, chỉ số trên và chỉ số dưới,
tô màu kí tự….
WPF xử lý văn bản trên Unicode. Xõy dựng những font chữ quốc tế từ những font
chữ phức hợp bằng cách sử dụng một nhóm các font chữ ngôn ngữ đơn đưa vào
những font chữ phức hợp. Thông tin nối font và lưu font được lưu trữ trong một
tệp XML. Các tệp XML đã được mở rộng thành .CompositeFont.
Công cụ văn bản trong WPF cũng hỗ trợ sẵn chức năng spell-checking. Nó cũng
hỗ trợ một số chức năng như tự động gión các dòng, tách từ, hiệu ứng ảnh bitmap,
các phép biến đổi, hiệu ứng chữ (như quay, tạo bóng, tạo mờ…), căn lề… Những
văn bản động cũng được hỗ trợ. Ngoài ra, WPF sử dụng công nghệ ClearType.

×