TỔNG QUAN 1.1 ĐẶT VẤN ĐỀ Công nghệ thông tin đang phát triển và được áp dụng rộng rãi ở nước ta như phát triển kinh doanh, thuận tiện trong quản lý nhân sự, quản lý đăng ký học phần, q
Trang 1LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC
XÂY DỰNG WEBSITE QUẢN LÝ ĐĂNG KÝ ĐỀ TÀI
LUẬN VĂN CỦA GIÁO VIÊN VÀ SINH VIÊN
KHOA KHOA HỌC TỰ NHIÊN
Cần Thơ, 2015
TRƯỜNG ĐẠI HỌC CẦN THƠ
KHOA CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG
BỘ MÔN TIN HỌC ỨNG DỤNG
Trang 2LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC
XÂY DỰNG WEBSITE QUẢN LÝ ĐĂNG KÝ ĐỀ TÀI LUẬN VĂN CỦA GIÁO VIÊN VÀ SINH VIÊN
KHOA KHOA HỌC TỰ NHIÊN
Cán bộ phản biện Ths Vũ Duy Linh Ths Lê Thị Diễm Luận văn được bảo vệ tại: Hội đồng chấm luận văn tốt nghiệp Bộ môn Tin học Ứng dụng Khoa Công nghệ thông tin và truyền thông, Trường Đại học Cần Thơ vào ngày 14 tháng 5 năm 2015
Mã số đề tài:
Có thể tìm hiểu luận văn tại:
-Trung tâm Học liệu, Trường Đại học Cần Thơ -Website: http://www.lrc.ctu.edu.vn/
Cần Thơ, 2015 KHOA CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG
BỘ MÔN TIN HỌC ỨNG DỤNG
Trang 3GVHD: Lê Minh Lý - 2301 Trang i SVTH: Hồ Hoàng Nha - 1111536
LỜI CẢM ƠN
Em xin chân thành cảm ơn các thầy, cô giáo trong Bộ Môn Tin Học, khoa Công Nghệ Thông Tin và Truyền Thông, trường Đại Học Cần Thơ đã truyền đạt những kiến thức, kinh nghiệm quý báu, cần thiết cho em trong những năm học tập tại trường và tạo điều kiện thực hiện đề tài luận văn này
Em xin tỏ lòng biết ơn sâu sắc đến gia đình đã tạo mọi điều kiện về vật chất, tinh thần, động viên, khích lệ và hỗ trợ trong suốt thời gian qua
Để có thể hoàn tất luận văn này em đặc biệt kính lời cảm ơn cô Lê Minh Lý, người đã tận tình hướng dẫn và giúp đỡ trong suốt thời gian thực hiện đề tài luận văn
Em cũng xin chân thành cảm ơn đến các bạn bè đã giúp đỡ tài liệu, trao đổi học thuật để có thể thực hiện đề tài luận văn
Mặc dù đã cố gắng hoàn thiện đề tài với tất cả sự nỗ lực của bản thân, nhưng chắc chắn không thể tránh khỏi những sai sót Kính mong quý thầy cô tận tình chỉ bảo
Cần Thơ, ngày 14 tháng 5 năm 2015
Sinh viên thực hiện
Hồ Hoàng Nha
Trang 4GVHD: Lê Minh Lý - 2301 Trang ii SVTH: Hồ Hoàng Nha - 1111536
LỜI CẢM ƠN i
MỤC LỤC ii
DANH MỤC HÌNH v
DANH MỤC BẢNG viii
DANH MỤC KÝ HIỆU VÀ VIẾT TẮT x
TÓM TẮT xi
ABSTRACT xii
CHƯƠNG 1 TỔNG QUAN 1
1.1 ĐẶT VẤN ĐỀ 1
1.2 LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ 1
1.3 PHẠM VI ĐỀ TÀI 1
1.4 PHƯƠNG PHÁP NGHIÊN CỨU 2
1.5 HƯỚNG GIẢI QUYẾT 3
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 4
2.1 WPF (WINDOWS PRESENTATION FOUNDATION) 4
2.1.1 Giới thiệu WPF (Windows Presentation Foundation) 4
2.1.2 Sự ra đời của WPF (Windows Presentation Foundation) 5
2.1.3 Khả năng làm việc chung giữa người lập trình viên và người thiết kế giao diện 5
2.1.4 Kiến trúc của WPF 7
2.1.5 Ưu điểm của WPF so với các chương trình tạo giao diện khác 8
2.1.6 Các đặc điểm nổi bật của WPF 10
2.1.7 XBAP 12
2.1.8 Các thành phần của WPF 15
2.1.9 Một số ứng dụng xây dựng trên WPF 18
Trang 5GVHD: Lê Minh Lý - 2301 Trang iii SVTH: Hồ Hoàng Nha - 1111536
2.1.10 Mô hình MVVM (Model – View – ViewModel) 19
2.2 TỔNG QUAN VỀ XAML (EXTENSIBLE APPLICATION MARKUP LANGUAGE) 20
2.2.1 Giới thiệu 20
2.2.2 Các thành phần XAML 20
2.2.3 XAML Compilation 20
2.2.4 Cơ bản về XAML 21
2.2.5 XAML namespaces 22
2.2.6 Cú pháp của XAML 24
2.3 SQL SERVER 2008 27
CHƯƠNG 3 NỘI DUNG VÀ KẾT QUẢ NGHIÊN CỨU 29
3.1 TỔNG QUAN VỀ HỆ THỐNG 29
3.1.1 Mô tả bài toán 29
3.1.2 Phân tích 31
3.1.3 Mô tả các ràng buộc toàn vẹn 32
3.1.4 Xây dựng bảng tầm ảnh hưởng 33
3.2 THIẾT KẾ 34
3.2.1 Sơ đồ phân rã chức năng (BFD) 34
3.2.2 Thiết kế cơ sở dữ liệu logic 37
3.2.3 Xây dựng mô hình khái niệm dữ liệu 43
3.2.4 Xây dựng các lớp thực thể 44
3.2.5 Mối quan hệ giữa các thực thể 51
3.2.6 Sơ đồ tuần tự 57
3.2.7 Mô hình cơ sở dữ liệu quan hệ 62
3.2.8 Giải thuật và lưu đồ 75
3.3 GIAO DIỆN 80
Trang 6GVHD: Lê Minh Lý - 2301 Trang iv SVTH: Hồ Hoàng Nha - 1111536
1 Kết luận 88
2 Hướng phát triển 88TÀI LIỆU THAM KHẢO 89
Trang 7GVHD: Lê Minh Lý - 2301 Trang v SVTH: Hồ Hoàng Nha - 1111536
DANH MỤC HÌNH
Hình 2 1 XAML hỗ trợ lập trình viên và người thiết kế làm việc chung 7
Hình 2 2 Kiến trúc WPF 8
Hình 2 3 Ứng dụng WPF độc lập quản lý sinh viên chạy trong cửa sổ riêng 11
Hình 2 4 Giao của cùng ứng dụng nêu trên dưới dạng một XBAP chạy trên Internet Explore 12
Hình 2 5 Cài đặt Net Framework runtime 3 từ Microsoft 13
Hình 2 6 vô hiệu hóa các Blocker Popup trong Internet Explorer 14
Hình 2 7: AMD Live 18
Hình 2 8: BBC Showcase 2007 19
Hình 3 1 Mô hình ER 31
Hình 3 2 Sơ đồ use case dành cho sinh viên 37
Hình 3 3 Sơ đồ use case dành cho giảng viên 38
Hình 3 4 Sơ đồ use case dành cho giảng viên quản lý 39
Hình 3 5 Sơ đồ lớp 43
Hình 3 6 Lớp giảng viên 44
Hình 3 7 Lớp sinh viên 45
Hình 3 8 Lớp đề tài luận văn 46
Hình 3 9 Lớp bộ môn 47
Hình 3 10 Tổ chuyên ngành 47
Hình 3 11 Lớp lớp học 48
Hình 3 12 Lớp lĩnh vực 49
Hình 3 13 Lớp ý kiến 49
Hình 3 14 Lớp tin tức 50
Hình 3 15 Quan hệ Sinh viên – Lớp 51
Trang 8GVHD: Lê Minh Lý - 2301 Trang vi SVTH: Hồ Hoàng Nha - 1111536
Hình 3 17 Quan hệ Khóa học – Lớp 52
Hình 3 18 Quan hệ Sinh viên - Đề tài luận văn 52
Hình 3 19 Quan hệ Đề tài – Giảng viên 53
Hình 3 20 Quan hệ Tin tức – Giảng viên 53
Hình 3 21 Quan hệ Đề tài – Lĩnh vực 54
Hình 3 22 Quan hệ Tổ chuyên ngành– Giảng viên 54
Hình 3 23 Quan hệ Tổ chuyên ngành– Bộ môn 55
Hình 3 24 Quan hệ Tổ chuyên ngành– Bộ môn 55
Hình 3 25 Quan hệ Học vị - Giảng viên 56
Hình 3 26 Quan hệ Học hàm – Giảng viên 56
Hình 3 27 Quan hệ Giảng viên – Chức vụ 57
Hình 3 28 Tuần tự Đăng nhập 57
Hình 3 29 Tuần tự Xem đề tài 58
Hình 3 30 Tuần tự Ra đề tài 59
Hình 3 31 Tuần tự xem kết quả đăng ký đề tài 60
Hình 3 32 Tuần tự Đăng ký đề tài 61
Hình 3 33 Mô hình CSDL quan hệ 62
Hình 3 34 Giao diện đăng nhập 80
Hình 3 35 Giao diện Admin 81
Hình 3 36 Giao diện quản lý đề tài 82
Hình 3 37 Giao diện quản lý sinh viên 83
Hình 3 38 Giao diện thống kê các đề tài còn trống 84
Hình 3 39 Giao diện thông tin giảng viên 84
Hình 3 40 Giao diện tìm kiếm đề tài 85
Hình 3 41 Giao diện đăng ký đề tài của giảng viên 86
Trang 9GVHD: Lê Minh Lý - 2301 Trang vii SVTH: Hồ Hoàng Nha - 1111536
Hình 3 42 Giao diện thông tin sinh viên 86Hình 3 43 Giao diện xem các đề tài luận văn 87Hình 3 44 Giao diện đăng ký đề tài của sinh viên 87
Trang 10GVHD: Lê Minh Lý - 2301 Trang viii SVTH: Hồ Hoàng Nha - 1111536
Bảng 2 1 Thành phần giao diện và những công nghệ cần thiết 9
Bảng 2 2 Một số loại MIME 14
Bảng 3 1 Ràng buộc toàn vẹn 32
Bảng 3 2 Phương thức lớp Giảng viên 44
Bảng 3 3 Phương thức lớp Sinh viên 45
Bảng 3 4 Phương thức lớp Đề tài luận văn 46
Bảng 3 5 Phương thức lớp Bộ môn 47
Bảng 3 6 Phương thức lớp Tổ chuyên ngành 48
Bảng 3 7 Phương thức lớp Lớp học 48
Bảng 3 8 Phương thức lớp Lĩnh vực 49
Bảng 3 9 Phương thức lớp Ý kiến 50
Bảng 3 10 Phương thức lớp Tin tức 50
Bảng 3 11 Bảng giảng viên 63
Bảng 3 12 Bảng sinh viên 64
Bảng 3 13 Bảng đề tài luận văn 65
Bảng 3 14 Bảng đăng ký đề tài luận văn 66
Bảng 3 15 Bảng lĩnh vực 67
Bảng 3 16 Bảng ý kiến 67
Bảng 3 17 Bảng chức vụ 68
Bảng 3 18 Bảng đảm nhận 68
Bảng 3 19 Bảng học hàm 69
Bảng 3 20 Bảng được học hàm 70
Bảng 3 21 Bảng học vị 70
Bảng 3 22 Bảng có học vị 71
Trang 11GVHD: Lê Minh Lý - 2301 Trang ix SVTH: Hồ Hoàng Nha - 1111536
Bảng 3 23 Bảng tin tức 71
Bảng 3 24 Bảng Bảng tổ chuyên ngành 72
Bảng 3 25 Bảng khóa học 73
Bảng 3 26 Bảng bộ môn 73
Bảng 3 27 Bảng lớp 74
Trang 12GVHD: Lê Minh Lý - 2301 Trang x SVTH: Hồ Hoàng Nha - 1111536
Trang 13GVHD: Lê Minh Lý - 2301 Trang xi SVTH: Hồ Hoàng Nha - 1111536
TÓM TẮT
Công nghệ thông tin đã có những bước phát triển mạnh mẽ theo cả chiều rộng
và chiều sâu Máy tính điện tử không còn là phương tiện quý hiếm mà đang ngày càng trở thành một công cụ làm việc và giải trí thông dụng của con người, không chỉ ở công sở mà còn ở trong gia đình Do đó việc xây dựng một trang web để việc đăng ký đề tài luận văn của giảng viên và sinh viên khoa Khoa học tự nhiên là rất cần thiết
Mục tiêu của đề tài “Xây dựng website quản lý đăng ký đề tài luận văn của
giáo viên và sinh viên khoa Khoa học tự nhiên” đáp ứng các yêu cầu:
- Sinh viên đăng ký đề tài luận văn
- Giảng viên đưa ra các đề tài luận văn
- Quản lý thông tin sinh viên, giảng viên, đề tài luận văn, lĩnh vực, lớp, tổ chuyên ngành, bộ môn, tin tức
- Quản lý đăng ký các đề tài luận văn của sinh viên cũng như giảng viên
- Thống kê các đề tài luận văn đã hoàn thành và chưa hoàn thành
Luận văn được tổ chức theo cấu trúc như sau:
Chương 1: Tổng quan trình bày về những vấn đề về hiện trạng, phạm vi,
phương pháp nghiên cứu và hướng giải quyết bài toán
Chương 2: Cơ sở lý thuyết giới thiệu về WPF Giới thiệu về ngôn ngữ XAML
và cách sử dụng ngôn ngữ XAML Tổng về về hệ quản trị cơ sở dữ liệu SQL
Server 2008
Chương 3: Nội dung và kết quả nghiên cứu, trong chương này trình bày về ba
phần: Trình bày tổng quan hệ thống bao gồm mô tả bài toán và phân tích bài toán Thiết kế và xây dựng các mô hình CSDL của bài toán Xây dựng giao diện của hệ
thống và hướng dẫn sử dụng hệ thống dành cho người dùng
Kết luận: Tổng kết các phần đã thực hiện được và các phần chưa thực hiện
được Đưa ra các hướng phát triển hệ thống
Trang 14GVHD: Lê Minh Lý - 2301 Trang xii SVTH: Hồ Hoàng Nha - 1111536
Information technology has achieved strong growth in both width and depth Electronic computer is no longer a rare thing means which is increasingly becoming a tool for work and recreation of people, not only in the workplace but also in the family So building a website for the registration of thesis students and faculty of college of natural sciences is essential
The goal of the project "Building management website registered thesis of
teachers and students of Natural Sciences" meet the following requirements:
- Students registered thesis
- Teachers launched the thesis
- Information Management of student, teacher, thesis, field, class, professional organizations, departments, news
- Management of thesis students and teachers
- Statistics of the thesis was finished and unfinished
Organized thesis is structured as follows:
Chapter 1: Overview of the issues presented on the current state, scope,
methodology and direction of solving the problem
Chapter 2: Theoretical Foundations to presents an overview of WPF
Introduce about XAML and how to use XAML Overview of management system database SQL Server 2008
Chapter 3: The contents and findings presented in this chapter presents three
parts: Presents an overview of the system consists of a problem description and problem analysis Design and construction of database model of the problem System interface and instruction for use system for users
Conclusion: Summary of section already been done and the unexecuted
section Give the system development
Trang 15GVHD: Lê Minh Lý - 2301 Trang 1 SVTH: Hồ Hoàng Nha - 1111536
CHƯƠNG 1 TỔNG QUAN
1.1 ĐẶT VẤN ĐỀ
Công nghệ thông tin đang phát triển và được áp dụng rộng rãi ở nước ta như phát triển kinh doanh, thuận tiện trong quản lý nhân sự, quản lý đăng ký học phần, quản lý sổ sách, các ứng dụng phục vụ trong công nghiệp và y học để tiết kiệm thời gian cho người sử dụng và tiết kiệm chi phí
Hiện nay, các trường đại học đã áp dụng công nghệ thông tin vào hệ thống quản lý nhằm nâng cao chất lượng đào tạo, tiết kiệm thời gian và chi phí Xây dựng môi trường làm việc, nghiên cứu và học tập thuận tiện cho các sinh viên và cán bộ
Chính vì vậy việc đăng ký đề tài luận văn của khoa Khoa học tự nhiên cũng
phải được tin học hóa để nâng cao chất lượng quản lý và nắm bắt về thời gian
Đề tài: “Xây dựng website quản lý đăng ký đề tài luận văn của giáo viên và sinh viên khoa KHTN” là ví dụ minh họa để giải quyết vấn đề trên
1.2 LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ
Do trước nay việc đăng ký đề tài luận văn của khoa Khoa học tự nhiên đều thực hiện thông qua việc gặp mặt trực tiếp hay qua các thông tin liên lạc của giảng viên và sinh viên nên khoa vẫn chưa có chương trình quản lý đăng ký đề tài luận văn
Đã có một số đề tài liên quan đến quản lý đăng ký đề tài luận văn nhưng chưa
có đề tài nào sử dụng ngôn ngữ WPF để đưa lên trình duyệt internet
Vì vậy em xây dựng website quản lý này nhằm phục vụ cho việc tương tác giữa sinh viên và giảng viên trở nên dễ dàng, tiết kiệm thời gian và độ chính xác cao hơn
Đề tài phải đảm bảo các chức năng sao:
Đối với trang quản trị
- Phân quyền người dùng
Trang 16GVHD: Lê Minh Lý - 2301 Trang 2 SVTH: Hồ Hoàng Nha - 1111536
- Cập nhật thông tin các đề tài luận văn
- Quản lý việc đăng ký đề tài luận văn của giảng viên và sinh viên
- Cập nhật lĩnh vực, bộ môn, tổ chuyên ngành, lớp
- Cập nhật tin tức – sự kiện
- Thống kê danh sách các đề tài luận văn còn trống
- Thống kê các đề tài luận văn chưa hoàn thành và đã hoàn thành
Đối với trang người dùng
- Xem thông tin chi tiết các đề tài luận văn
- Đăng ký đề tài luận văn
- Xem thông tin đăng ký đề tài luận văn
Phạm vi yêu cầu kỹ thuật
Trong quá trình sử dụng hệ thống phải đảm bảo các yêu cầu sau:
- Bảo mật thông tin hệ thống và thông tin người dùng
- Đảm bảo được tính chính xác và các ràng buộc toàn vẹn dữ liệu
- Giao diện thân thiện, chuyên nghiệp giúp người dùng thao tác dễ dàng
- Hệ thống truy xuất nhanh, dễ mở rộng và phát triển
1.4 PHƯƠNG PHÁP NGHIÊN CỨU
Về lý thuyết:
- Tìm hiểu và phân tích hệ thống thông tin
Trang 17GVHD: Lê Minh Lý - 2301 Trang 3 SVTH: Hồ Hoàng Nha - 1111536
- Tìm hiểu về mô hình ứng dụng web với WPF (Windows Presentation
Foundation)
- Tìm hiểu hệ thống bằng cách khảo sát thực tế hoạt động đăng ký các đề tài
luận văn của sinh viên và giảng viên
Về chương trình:
- Dùng phần mềm Visual Studio 2012 làm công cụ hỗ trợ phát triển ứng dụng
- Dùng IIS8 để làm máy chủ web
- Dùng phần mềm PowerDesigner 15 để vẽ sơ đồ phân tích thiết kế hệ thống
Về quản trị cơ sở dữ liệu:
- Sử dụng cơ sở dữ liệu từ SQL Sever để nhập dữ liệu ban đầu
Về thiết kế hệ thống: Thiết kế cơ sở dữ liệu, giao diện với người dùng, thiết
kế các chương trình xử lý của hệ thống, viết báo cáo kết quả làm được
Thử nghiệm: Chạy thử, chỉnh sửa các lỗi phát sinh và hoàn thiện hệ thống,
viết tài liệu hướng dẫn sử dụng
Trang 18GVHD: Lê Minh Lý - 2301 Trang 4 SVTH: Hồ Hoàng Nha - 1111536
Ở chương này, em sẽ tìm hiểu những nội dung cơ bản về hệ quản trị cơ sở dữ
liệu SQL Sever và WPF (Windows Presentation Foundation)
2.1 WPF (WINDOWS PRESENTATION FOUNDATION)
2.1.1 Giới thiệu WPF (Windows Presentation Foundation)
WPF viết tắt của Windows Presentation Foundation, là hệ thống API (giao diện lập trình ứng dụng) mới hỗ trợ việc xây dựng giao diện đồ hoạ trên nền Windows Được xem như thế hệ kế tiếp của WinForms Windows Presentation Foundation (WPF) còn được gọi dưới tên mã là Avalon, là một hệ thống thư viện con trong bộ Net Framework và được liên kết dưới dạng Extensible Application Markup Language (XAML) WPF tăng cường khả năng lập trình giao diện của lập trình viên bằng cách cung cấp các API cho phép tận dụng những lợi thế về đa phương tiện hiện đại Một ứng dụng WPF có thể được triển khai trên desktop hoặc thông qua trình duyệt web Là một bộ phận của NET Framework 3.0, WPF đã được sử dụng trong Windows Vista, Windows Server 2008, Windows Server
2003, Windows XP Service Pack 2 và trên các hệ điều hành sau này
WPF được xây dựng nhằm vào ba mục tiêu cơ bản:
Cung cấp một nền tảng thống nhất để xây dựng giao diện người dùng
Cho phép người lập trình và người thiết kế giao diện làm việc cùng nhau một cách dễ dàng
Cung cấp một công nghệ chung để xây dựng giao diện người dùng trên cả Windows và trình duyệt Web
WPF được coi như là công nghệ để tạo ra giao diện cho những ứng dụng Window của thế hệ tiếp theo
Được xây dựng trên NET Framework, WPF cung cấp môi trường phát triển ứng dụng trên hệ điều hành Windows Lợi thế với những gì có sẵn trong NET Framework của Microsoft cho phép các lập trình viên đã làm quen với công nghệ NET có thể nhanh chóng phát triển ứng dụng với WPF [4, tr.2]
Trang 19GVHD: Lê Minh Lý - 2301 Trang 5 SVTH: Hồ Hoàng Nha - 1111536
2.1.2 Sự ra đời của WPF (Windows Presentation Foundation)
WPF được phát hành chính thức vào tháng 11 năm 2006
Đi đến tương lai bằng cái nhìn từ quá khứ, vào năm 2001 Microsoft cho ra đời một tâp hợp các cộng nghệ nền tảng, được gọi với tên chung là NET Hầu hết các công nghệ này đều đưa ra các mô hình lập trình mới, hoàn toàn chưa từng xuất hiện trước đó Ví dụ như ASP.NET Web Forms đưa ra mô hình lập trình Windows truyền thống lên thế giới Web, ADO.NET định nghĩa các class tổng quát như Connection, Command, Dataset để các developer thừa kế từ chúng,…
Tuy nhiên công nghệ mà những nhà phát triển trung thành nhất của Misrosoft mong muốn nhìn thấy bước đột phá của Windows Forms lại chẳng có gì thay đổi Trước khi WPF ra đời, việc tạo giao diện người dùng theo những yêu cầu mô
tả thì đòi hỏi phải sử dụng rất nhiều công nghệ khác nhau Để tạo Form, các Control và các tính năng kinh điển khác của một giao diện đồ họa Windows, thông thường lập trình viên sẽ chọn Windows Forms, một phần của NET Framwork Nếu cần hiển thị văn bản, Windows Forms có một số tính năng hỗ trợ văn bản trực tiếp hoặc có thể sử dụng Adobe’s PDF để hiện thị văn bản có khuôn dạng cố định Đối với hình ảnh và đồ họa 2 chiều , lập trình viên sẽ dùng GDI+, một mô hình lập trình riêng biệt có thể truy nhập qua Windows Forms Để hiển thị video hay phát
âm thanh, lập trình viên lại phải sử dụng Windows Media Player, và với đồ họa 3 chiều lại phải dùng Direct3D, một thành phần chuẩn khác của Windows Tóm lại, quá trình phát triển giao diện người dùng theo yêu cầu trở nên phức tạp, đòi hỏi lập trình viên quá nhiều kỹ năng công nghệ
WPF ra đời chính là để xây dựng một nền tảng chung giải quyết những thách thức đã nêu trên WPF cung cấp nhiều tính năng lập trình giao diện trong cùng một công nghệ đơn giản nhất Điều này giúp cho quá trình tạo giao diện người dùng trở nên dễ dàng hơn
2.1.3 Khả năng làm việc chung giữa người lập trình viên và người thiết kế giao diện
Để có giao diện người thiết kế sử dụng một công cụ đồ họa để tạo ra những ảnh tĩnh về cách bố trí giao diện trên màn hình Những hình ảnh này sau đó được chuyển tới lập trình viên với nhiệm vụ tạo ra mã để hiện thực hóa giao diện đã thiết kế Đôi lúc vẽ ra một giao diện thì đơn giản với người thiết kế, nhưng để biến
Trang 20GVHD: Lê Minh Lý - 2301 Trang 6 SVTH: Hồ Hoàng Nha - 1111536
quan điểm có thể khiến lập trình viên không đáp ứng được đầy đủ yêu cầu từ người thiết kế Do vậy, cần một cách thức để hai nhóm công tác độc lập này có thể làm việc với nhau mà không làm thay đổi chất lượng của giao diện đã thiết kế
Để thực hiện được điều này, WPF đưa ra ngôn ngữ đặc tả eXtensible Application Markup Language (XAML) XAML định ra một tập các phần tử XML như Button, TextBox, Label…, nhằm định nghĩa các đối tượng đồ họa tương ứng như nút bấm, hộp thoại, nhãn…, và nhờ đó cho phép mô tả chính xác diện mạo của giao diện người dùng Các phần tử XAML cũng chứa các thuộc tính, cho phép thiết lập nhiều tính chất khác nhau của đối tượng đồ họa tương ứng
Ví dụ: đoạn mã sau sẽ tạo ra một nút bấm màu lục có nhan đề “Mau”
Trang 21GVHD: Lê Minh Lý - 2301 Trang 7 SVTH: Hồ Hoàng Nha - 1111536
Hình 2 1 XAML hỗ trợ lập trình viên và người thiết kế làm việc chung 2.1.4 Kiến trúc của WPF
WPF nằm trong NET Framework, nên các ứng dụng trong WPF có thể kết hợp các thành phần khác có trong thư viện lớp NET Framework
WPF sử dụng kiến trúc nhiểu tầng (Multilayer), tầng trên cùng tương tác với dịch vụ high-level được viết bằng đoạn mã quản lí (Managed code) như C# Sau
đó dịch các đối tượng NET thành các kết cấu Direct3D, sử dụng lower-level là milcore.dll là thành phần sinh ra mã máy trực tiếp (Unmanaged code) Milcore.dll
là unmanaged code bởi vì milcore.dll tương tác chặt chẽ với Direct3D để tăng hiệu suất xử lí nhanh chóng
Trang 22GVHD: Lê Minh Lý - 2301 Trang 8 SVTH: Hồ Hoàng Nha - 1111536
- WindowBase.dll nắm giữ các thành phần cơ bản để có khả năng bên ngoài
sử dụng lại WPF như DispatcherObject và DependencyObject
- Milcore.dll là nhân của hệ thống trình diễn (render) WPF, mặc dù là thành phần của WPF, milcore còn là thành phần cốt yếu của Windows Vista
- Direct3D là API low-level mang tất cả các đồ họa trong WPF được trình diễn ra
2.1.5 Ưu điểm của WPF so với các chương trình tạo giao diện khác
WPF cung cấp nhiều tính năng lập trình giao diện trong cùng một công nghệ đơn nhất Điều này giúp cho quá trình tạo giao diện người dùng trở nên dễ dàng hơn đáng kể
Trang 23GVHD: Lê Minh Lý - 2301 Trang 9 SVTH: Hồ Hoàng Nha - 1111536
Windows Forms
Windows Forms/GDI+
PDF Direct3D Windows Media
Bảng 2 1 Thành phần giao diện và những công nghệ cần thiết
Việc tạo ra một giao diện người dùng hiện đại không chỉ là việc hợp nhất các công nghệ sẵn có khác nhau Nó còn thể hiện ở việc tận dụng lợi điểm của card đồ họa hiện đại Để giải phóng những hạn chế của đồ họa bitmap, WPF dựa hoàn toàn trên đồ họa vector, cho phép hình ảnh tự động thay đổi kích thước để phù hợp với kích thước và độ phân giải của màn hình mà nó được hiển thị
Bằng việc hợp nhất tất cả các công nghệ cần thiết để tạo ra một giao diện người dùng vào một nền tảng đơn nhất, WPF đơn giản hóa đáng kể công việc của lập trình viên giao diện Với việc yêu cầu lập trình viên học một môi trường phát triển duy nhất, WPF góp phần làm giảm chi phí cho việc xây dựng và bảo trì ứng dụng Bằng việc cho phép tích hợp đa dạng nhiều cách biểu diễn thông tin trên giao diện người dùng, WPF góp phần nâng cao chất lượng và theo đó là giá trị công việc bằng cách thức người dùng tương tác với ứng dụng trên Windows
Trang 24GVHD: Lê Minh Lý - 2301 Trang 10 SVTH: Hồ Hoàng Nha - 1111536
Để hình dung dễ dàng giao diện người dùng (User Interface – UI), WPF giới thiệu ngôn ngữ mới dựa trên XML, được gọi là XAML XAML cho phép ứng dụng tự động phân tích cú pháp và thao tác giao diện người dùng ở một trong hai yếu tố thời gian thiết kế hoặc thời gian khởi động Nó dùng mô hình code – behind, lập trình tương tự ASP.NET, cho phép người thiết kế và người phát triển làm việc song song và liền mạch công việc của mình
WPF có nhiều đặc điểm hấp dẫn và cung cấp những thay đổi mạnh mẽ cho công nghệ lập trình giao diện Dưới đây sẽ là những hỗ trợ mà công nghệ WPF mang lại cho người lập trình viên:
Hỗ trợ video, audio: Không giống như các công nghệ trước đó như Winform
có sự hạn chế trong việc hỗ trợ để chạy các file Audio và Video WPF hỗ trợ chạy tất các file mà Window Meida Player có thể đọc được và cho phép bạn có thể chạy đồng thời một hoặc nhiều file Đặc biệt WPF cung cấp các tool cho phép bạn tích hợp các các nội dung video vào giao diện và cả các hiệu ứng 3D (ví dụ hiển thị video trên các mặt của hình hộp 3D)
Hiển thị ảnh vector thay vì ảnh bitmap mang lại cho công nghệ WPF khả năng hiện thị linh hoạt với nhiều kích thước khác nhau mà không lo làm “vỡ” hình ảnh những đối tượng đồ họa
Hiển thị văn bản linh hoạt: WPF có khả năng cung cấp những khả năng để hiện thị văn bản một cách phong phú ở bất cứ đâu Bạn có thể kết hợp văn bản với các đối tượng khác, hay có thể sử dụng các đặc điểm mới để hiện thị một lượng lớn văn bản một cách dễ đọc nhất
Đồ họa phong phú: Thay vì làm việc với những điểm ảnh, bạn được có thể làm việc trực tiếp với những đối tượng hình học cơ bản: hình chữ nhật, hình ellipese Bạn cũng có những đặc điểm mới như điều khiển độ trong suốt, độ mờ, cùng các hiệu ứng 3D
Các hiệu ứng Animation: Bạn có thể sử dụng bộ tính thời gian timer để vẽ lại hình, nhưng với WPF đặc điểm đã được tích hợp thành một phần của Framework,
từ đó bạn có thể định nghĩa những hiệu ứng chuyện động cho các đối tượng đồ họa khác nhau
Trang 25GVHD: Lê Minh Lý - 2301 Trang 11 SVTH: Hồ Hoàng Nha - 1111536
Công nghệ chung cho giao diện trên Windows và trên trình duyệt Web:
Trong thời đại bùng nổ của Internet, các ứng dụng Web ngày càng phát triển Việc trang bị giao diện người dùng có đầy đủ tính năng như một ứng dụng desktop
sẽ thu hút nhiều người dùng và do đó đã làm giá trị của doanh nghiệp Tuy nhiên,
để tạo giao diện vừa hoạt động được trên desktop và trên cả trình duyệt Web, đòi hỏi phải sử dụng nhiều công nghệ hoàn toàn khác nhau, giống như việc xây dựng
2 giao diện hoàn toàn độc lập Điều này tạo ra chí phí không cần thiết để phát triển giao diện
WPF là một giải pháp cho vấn đề này Công nghệ chung cho giao diện trên Windows và trên trình duyệt Web: Lập trình viên có thể tạo ra một ứng dụng trình duyệt XAML (XBAP) sử dụng WPF chạy trên Internet Explore Trên thực
tế, cùng đoạn code này có thể được dùng để sinh ứng dụng WPF chạy độc lập trên Windows [4,tr.7-8]
Hình 2 3 Ứng dụng WPF độc lập quản lý sinh viên chạy trong cửa sổ riêng
Trang 26GVHD: Lê Minh Lý - 2301 Trang 12 SVTH: Hồ Hoàng Nha - 1111536
Hình 2 4 Giao của cùng ứng dụng nêu trên dưới dạng một XBAP chạy trên
Internet Explore
Mỗi ứng dụng XBAP được download khi cần từ một Web server, nên nó phải tuân theo những yêu cầu về an ninh khắt khe hơn đối với một ứng dụng Windows độc lập Theo đó, XBAP chạy trong phạm vi sandbox an ninh do hệ thống an ninh truy nhập mã của NET Framework cung cấp XBAP chỉ chạy với các hệ thống Windows có cài đặt WPF và chỉ với Internet Explore phiên bản 6 và
7 trở lên
2.1.7 XBAP
Giới thiệu về XBAP
XBAP (XAML Application Browser) là một công nghệ Windows mới được sử dụng để tạo ra các ứng dụng Internet trở nên phong phú.Trong khi các ứng dụng Windows thường được biên soạn thành một tập tin exe thì các ứng dụng trình
duyệt được biên dịch với phần xbap mở rộng và có thể chạy bên trong Internet
Explorer
Các ứng dụng XBAP được chạy trong một sandbox bảo mật để ngăn chặn các ứng dụng không đáng tin cậy từ việc kiểm soát các local system resources
Trang 27GVHD: Lê Minh Lý - 2301 Trang 13 SVTH: Hồ Hoàng Nha - 1111536
Cách triển khai ứng dụng XBAP
Các yêu cầu để chạy ứng dụng XBAP
Đối với Windows: cần phải cài đặt Net Framework runtime 3 từ Microsoft để chạy XBAP
Để ứng dụng XBAP có thể chạy trên Internet Explorer:
- Tools Internet Options từ menu
- Chọn Security Tab và chọn Internet Zone
- Chọn Custom Level
- Enable Loose XAML, XAML browser applications, XPS documents
Hình 2 5 Cài đặt Net Framework runtime 3 từ Microsoft
Nếu xuất hiện lỗi "Trust not granted" khi chạy ứng dụng : cần phải vô hiệu hóa các Blocker Popup:
Trang 28GVHD: Lê Minh Lý - 2301 Trang 14 SVTH: Hồ Hoàng Nha - 1111536
Hình 2 6 vô hiệu hóa các Blocker Popup trong Internet Explorer
Triển khai ứng dụng XBAP:
Có thể triển khai các ứng dụng XBAP bằng buid > Publish command của Visual Studio 2005 trở lên Đối với các XBAP để làm việc trên các trình duyệt, cần phải chắc chắn rằng máy chủ của đã đăng ký một số loại MIME
application/manifest manifest application/x-ms-xbap xbap application/octet-stream deploy application/x-ms-application application
application/vnd.ms-xpsdocument xps application/xaml+xml xaml
Bảng 2 2 Một số loại MIME
Trang 29GVHD: Lê Minh Lý - 2301 Trang 15 SVTH: Hồ Hoàng Nha - 1111536
vụ chung cho mọi ứng dụng, chẳng hạn như các biến lưu trữ trạng thái của ứng dụng, các phương thức chuẩn để kích hoạt hay kết thúc ứng dụng
Layout và Control
WPF sắp đặt các thành phần khác nhau trên giao diện thông qua panel Mỗi panel có thể chứa các thành phần con, bao gồm các control như nút bấm hay hộp thoại, hay bản thân những panel khác
Trang 30GVHD: Lê Minh Lý - 2301 Trang 16 SVTH: Hồ Hoàng Nha - 1111536
Mỗi template tương tự như một style, và ở hai dạng:
- Template cho dữ liệu: sử dụng thành phần DataTemplate của XAML để thiết lập một nhóm thuộc tính hiển thị của dữ liệu như màu sắc, phương thức căn lề
- Template cho control: sử dụng thành phần ControlTemplate của XAML
để định ra diện mạo của một control
Text
Với WPF chất lượng text hiển thị trên màn hình tương đương trên giấy in Cụ thể, WPF hỗ trợ các font chữ OpenType chuẩn, cho phép sử dụng các thư viện font đã có WPF cũng hỗ trợ công nghệ font chữ mới ClearType, cho phép hiển thị các ký tự mịn hơn đối với mắt người, đặc biệt là trên màn hình tinh thể lỏng (LCD)
Văn bản
WPF hỗ trợ ba dạng văn bản: văn bản cố định (fixed), văn bản thích nghi (flow/adaptive) và văn bản XPS (XML Paper Specification) Kèm theo đó, WPF cũng cung cấp các dịch vụ để tạo, xem, quản lý, ghi chú, đóng gói và in ấn văn bản
- Văn bản cố định trông không đổi bất kể chúng được hiển thị trên màn hình hay in ra máy in.Trong WPF, những văn bản dạng này được định nghĩa bằng phần tử FixedDocument trong XAML và được hiển thị bằng control DocumentViewer
- Văn bản thích nghi thường chỉ dùng để đọc trên màn hình, và có khả năng
tự động thay đổi các thuộc tính hiển thị ảnh và text cho phù hợp với kích thước cửa số hay các yếu tố môi trường Để hiển thị văn bản thích nghi, WPF sử dụng một số control khác nhau, chẳng hạn như FlowDocumentPageViewer, FlowDocumentReader…
Trang 31GVHD: Lê Minh Lý - 2301 Trang 17 SVTH: Hồ Hoàng Nha - 1111536
- PS là một định dạng mở theo đặc tả XML, có khả năng sử dụng trên nhiều nền tảng khác nhau Văn bản XPS được hiển thị bằng DocumentViewer
Hình ảnh
Hình ảnh được hiển thị nhờ control Image, Control Image có thể hiển thị hình ảnh lưu trữ dưới nhiều khuôn dạng khác nhau, bao gồm JPEG, BMP, TIFF, GIF
và PNG Nó cũng có thể hiển thị hình ảnh dạng Windows Media Photo mới được
sử dụng trong Windows Vista ví dụ:
<ImageWidth="200"Source="C:\Documents and Settings \My Pictures\Ava.jpg" />
Video và Âm thanh
WPF cung cấp tính năng hỗ trợ cả hai dạng media này thông qua phần tử MediaElement Control này có thể chơi các định dạng video WMV, MPEG và AVI, và nhiều định dạng âm thanh khác nhau Việc lập trình để chạy một đoạn video trở nên khá đơn giản
Ví dụ:
<MediaElementSource="C:\Documents and Settings\My Videos\Ruby.wmv" />
Đồ họa hai chiều
Đối với đồ họa 2 chiều, WPF định ra nhóm control của các khuôn hình (shapes) mà ứng dụng có thể sử dụng để tạo nên hình ảnh, gồm:
- Line: vẽ đường thẳng qua 2 điểm
- Elllipse: vẽ ellipse
- Rectangle: vẽ chữ nhật
- Polygon: vẽ đa giác
- Polyline: vẽ đa giác mở
Trang 32GVHD: Lê Minh Lý - 2301 Trang 18 SVTH: Hồ Hoàng Nha - 1111536
cho phép ánh sáng tới từ một hướng xác định Lớp AmbientLight tạo ra ánh sáng đồng đều trên mọi vật trong cảnh PerspectiveCamera cho phép phân định khoảng cách từ vị trí nhìn tới vật thể và kiểu nhìn phối cảnh (tuân theo luật gần xa)
Móc nối dữ liệu
Trong các ứng dụng WPF, việc lưu trữ và truy xuất dữ liệu đã được thực hiện bởi các công nghệ như Microsoft SQL Server và ADO.NET Sau khi dữ liệu được truy xuất và tải vào các đối tượng quản lý dữ liệu trên ứng dụng Cơ chế móc nối
dữ liệu trong WPF còn cung cấp thêm những tính năng như xác thực tính hợp lệ, sắp xếp, lọc và phân nhóm dữ liệu Có hai công việc WPF thực hiện: [4,tr.9-15] 1) Sao chép dữ liệu từ các đối tượng quản lý dữ liệu vào các control trên giao diện, qua đó, dữ liệu có thể được hiển thị hay sửa đổi
2) Đảm bảo rằng những thay đổi trên dữ liệu từ các control được cập nhật trở lại các đối tượng quản lý dữ liệu
2.1.9 Một số ứng dụng xây dựng trên WPF
Hình 2 7: AMD Live
Trang 33GVHD: Lê Minh Lý - 2301 Trang 19 SVTH: Hồ Hoàng Nha - 1111536
Hình 2 8: BBC Showcase 2007
2.1.10 Mô hình MVVM (Model – View – ViewModel)
Kể từ khi Microsoft giới thiệu hai nền tảng phát triển ứng dụng mới là WPF và Silverlight, đã có nhiều thay đổi trong việc xử lý sự kiện và binding dữ liệu, giữa các tầng của ứng dụng với nhau Điều này làm nảy sinh ra nhu cầu phải có một mô hình phát triển ứng dụng mới phù hợp hơn
Do đó, Model – View – ViewModel (MVVM) pattern ra đời và ngày càng trở nên phổ biến
View: là phần giao diện của ứng dụng để hiển thị dữ liệu và nhận tương tác của
người dùng Một điểm khác biệt so với các ứng dụng truyền thống là View trong
mô hình này tích cực hơn Nó có khả năng thực hiện các hành vi và phản hồi lại người dùng thông qua tính năng binding, command
Model: là các đối tượng giúp truy xuất và thao tác trên dữ liệu thực sự
Trang 34GVHD: Lê Minh Lý - 2301 Trang 20 SVTH: Hồ Hoàng Nha - 1111536
để thực hiện data binding, command
Một điểm cần lưu ý là trong mô hình MVVM, các tầng bên dưới sẽ không biết được các thông tin gì về tầng bên trên nó
2.2 TỔNG QUAN VỀ XAML (EXTENSIBLE APPLICATION MARKUP LANGUAGE)
2.2.1 Giới thiệu
XAML viết tắt là eXtensible Application Markup Language, là ngôn ngữ đặc
tả dựa trên XML được dùng để định nghĩa các đối tượng và thuộc tính của chúng, mối quan hệ cũng như sự tương tác XAML đặc biệt được dùng trong công nghệ NET Framework 3.0 (trong đó có WPF) như ngôn ngữ đặc tả giao diện người dùng (User Interface – UI) nhằm mô tả cấu trúc và đặc tính của các phần tử UI, sự liên kết dữ liệu, các liên kết và các đặc tính khác XAML là mô hình có tính đột phá trong lĩnh vực tính toán trên Internet được chấp nhận rộng rãi trong hệ thống
và bởi nhiều nhà cung cấp phần mềm
2.2.2 Các thành phần XAML
Có nhiều thành phần khác trong XAML:
WPF XAML: bao gồm các yếu tố mô tả nội dung WPF, ví dụ như vecto đồ họa, control và các tài liệu, là những ứng dụng quan trọng của XAML
XPS XAML: là một phần của WPF XAML cái định nghĩa một thể hiện XML cho các tài liệu điện tử được định dạng XML Nó được xuất bản bởi tiêu chuẩn XML Paper Specification (XPS) riêng biệt
Silverlight XAML là một nhóm của WPF XAML đó là dành cho các ứng dụng Silverlight Silverlight là một plug-in trình duyệt cross-platform cho phép tạo các trang web phong phú nội dung với hai chiều đồ họa, hình ảnh động, âm thanh và video Tham khảo tại website http://silverlight.net
WF XAML bao gồm các yếu tố mô tả nội dung Windows Workflow Foundation (WF)
2.2.3 XAML Compilation
Những nhà tạo ra WPF biết rằng XAML không chỉ cần thiết để giải quyết vấn
đề về thiết kế nó cũng cần phải nhanh và mặc dù dựa trên định dạng XML linh
Trang 35GVHD: Lê Minh Lý - 2301 Trang 21 SVTH: Hồ Hoàng Nha - 1111536
hoạt và dễ dàng chuyển đổi qua các công cụ khác, các nền tảng nhưng chúng không phải lúc nào cũng hiệu quả nhất XML được thiết kế để có thể hợp lý, đọc, không phức tạp
Các thẻ của WPF sử dụng BAML (Binary Application Markup Language) BAML là một thể hiện nhị phân của XAML Khi biên dịch một WPF ứng dụng trong Visual Studio, tất cả file XAML được chuyển đổi thành BAML và sau đó được nhúng vào như là một tài nguyên vào DLL hoặc exe cuối cùng BAML là tokenized, có nghĩa là với số lược bit quá lớn của XAML được thay thế bằng thẻ ngắn hơn, làm BAML nhỏ đi đáng kể, làm tối ưu hóa cũng là một cách làm cho chương trình nhanh hơn lúc runtime
2.2.4 Cơ bản về XAML
Tất cả các element trong một document XAML ánh xạ của một class NET Tên của các elecmet chính xác với tên của lớp Ví dụ, element <Button> tạo ra một đối tượng nút nhấn
Giống như các tài liệu XML, có thể lồng một element trong một element khác, XAML linh hoạt cho mỗi class quyết định cách xử lí trong trường hợp lồng nhau, nếu có một button trong một grid, thì giao diện gồm một grid chứa một button bên trong
Bạn có thể thiết lập các property của mỗi class thông qua các attribute (thuộc tính) Tuy nhiên, trong một vài trường hợp, attribute không đủ khả năng xử lí một công việc nào đó Để giải quyết vấn đề này, chúng ta sẽ dùng một cú pháp đặc biệt
Trước khi tiếp tục, chúng ta sẽ xem qua một ví dụ cơ bản về XAML Ví dụ này
sẽ tạo ra một blank windows trong Visual Studio:
Trang 36GVHD: Lê Minh Lý - 2301 Trang 22 SVTH: Hồ Hoàng Nha - 1111536
control khác lên Có 3 loại top-level element, đó là:
Trang 37GVHD: Lê Minh Lý - 2301 Trang 23 SVTH: Hồ Hoàng Nha - 1111536
Xmlns attribute là một thuộc tính đặc biệt của XML Bạn có thể thấy trong mọi tài liệu WPF XAML bạn tạo ra đều có 2 namespace:
http://schemas.mcrosoft.com/winfx/2006/xaml/presentation là core namespace của WPF Nó chứa tất cả các class trong WPF, bao gồm các controls bạn dùng để xây dựng giao diện Trong ví dụ trên, namespace này được khai báo không có prefix, như vậy nó trở thành default namespace cho toàn bộ tài liệu Nói cách khác, mọi element đều được tự động đặt trong namespace này, ngoại trừ một vài khai báo đặc biệt do bạn thiết lập
http://schemas.microsoft.com/winfx/2006/xaml là XAML namespace Nó
bao gồm các tính năng khác nhau của XAML cho phép bạn can thiệp vào cách biên dịch tài liệu của mình Namespace này được khai báo với prefix x Nghĩa là bạn có thể áp dụng nó bằng cách đặt namespace prefix trước tên của thẻ (<x:ElementName>)
Như bạn thấy, tên của XML namespace không trùng với bất kì namespace nào trong NET Có một vài lí do để giải thích cho điều này Theo quy ước, XML namespace thường là các URls (như trong ví dụ này) Các URls này giống như đang trỏ vào một trang web nào đó, nhưng thực tế không phải vậy Chuẩn URls được sử dụng với mục đích tránh xảy ra tình trạng các tổ chức, doanh nghiệp khác
vô tình tạo ra một loại ngôn ngữ khác tuân theo chuẩn XML với namespace giống nhau Ở đây, bởi vì tên miền schemas.microsoft.com thuộc quyền sử hữu của Microsoft, do đó chỉ có Microsoft sử dụng nó để đặt tên trong XML namespace XML trong XAML lại liên kết với một namespace trong NET, bởi vì nếu điều đó xảy ra, nó sẽ làm cho XAML document của bạn trở nên cực kì phức tạp Ta thấy WPF có rất nhiều namespace (tất cả đều bắt đầu bằng System.Windows) Nếu mỗi NET namespace lại có một XML namespace khác, bạn sẽ cần phải khai báo chính xác cho namespace cho mỗi loại control mà bạn sẽ dùng, điều này có thể làm cho bạn nhầm lẫn hoặc thiếu sót
Trang 38GVHD: Lê Minh Lý - 2301 Trang 24 SVTH: Hồ Hoàng Nha - 1111536
Phần này diễn tả các cú pháp cơ bản của XAML và đưa ra một số ví dụ
Object Element & Prorperty Syntax
Một Object Element thường khai báo là phiên bản (instance) của 1 kiểu (1 class) Kiểu này được định nghĩa trong assembly để cung cấp 1 kiểu (1 class) tương đương với các Object Element trong XAML
< [Tên Object Element] [Tên Thuộc tính = "Giá trị"] />
Ở trên chỉ rõ 2 object element <Button/> nằm trong parent là <StackPanel/> Mỗi element sẽ ánh xạ đến class tương ứng được định nghĩa trong assembly Lúc bạn chọn “<” bạn đang chỉ định XAML tạo 1 phiên bản của element class được tạo sẽ gọi đến contructor mặc định nằm trong class đó trong quá trình phân tích và tải XAML
Property Element Syntax
Đối với vài thuộc tính của Object Element, khai báo cú pháp Property Syntax
là không thể bởi vì giá trị của thuộc tính không nằm trong phạm vi chuỗi giá trị thay vào đó ta phải khai báo Property Element Syntax
Collection Syntax
XAML là ngôn ngữ tối ưu hóa khả năng đánh dấu để các nhà phát triển dễ đọc hơn Một trong các điểm tối ưu hóa là nếu 1 thuộc tính đặc biệt có kiểu là collection Trong đó các Item của collection bạn có thể đánh dấu như child element vào trong giá trị đặc biệt và trở thành 1 phần của collection
Trang 39GVHD: Lê Minh Lý - 2301 Trang 25 SVTH: Hồ Hoàng Nha - 1111536
Trong trường hợp này 1 tập các child object element như là 1 giá trị được gán cho thuộc tính kiểu collection
Thuộc tính Content Property
XAML là ngôn ngữ có đặc tính đặc biệt, theo đó 1 class có thể ký hiệu chính xác 1 thuộc tính của nó là XAML conten property (nghĩa là child element của object element được dùng để gán gía trị cho thuộc tính content)
Ví dụ Border có Content Property của thuộc tính Child Sau đó ta khai báo 2 Border với mục đích giống nhau
Border thứ nhất tận dụng cú pháp đơn giản content property mà bỏ qua Border.Child (Property Element Syntax)
Border thứ 2 cho thấy rõ Border.Child
Attribute Syntax (Events)
Attribute Syntax được dùng cho các member như là 1 event hơn là 1 thuộc tính Tên của Attribute Syntax là tên của sự kiện
Trong WPF hiện thực 1 event của XAML: tên của sự kiện là tên của delegate của sự kiện xử lý
Trang 40GVHD: Lê Minh Lý - 2301 Trang 26 SVTH: Hồ Hoàng Nha - 1111536
Markup Extensions (Phần đánh dấu mở rộng)
Markup Extensions là một khái niệm của XAML, để sử dụng Markup Extensions ta dùng "{ }"
Markup Extensions được sử dụng phổ biến nhất trong WPF là Binding, được dùng để thực hiện biểu thức ràng buộc dữ liệu và các Resource Reference: Static Resource, Dynamic Resource
Bằng cách dùng Markup Extensions bạn có thể dùng Attribute Syntax cung cấp các giá trị cho các thuộc tính ngay cả khi các thuộc tính này không hỗ trợ Attribute Syntax
Markup Extensions thường dùng các kiểu biểu thức trung gian để cho phép các tính năng như trì hoãn giá trị hoặc tham chiếu đến đối tượng khác mà chỉ xuất hiện
ở thời điểm Run-time
Case Sensitive (Phân biệt hoa thường) và khoảng trắng
Tương tự như C#, XAML nhạy cảm và phân biệt chữ viết hoa và viết thường cho tất cả các khái niệm niệm trên như: Object Element, Property, Property Element,…riêng giá trị trong XAML có thể là non-case sensitive phụ thuộc vào hành vi chuyển đổi giá trị liên quan đến thuộc tính nhận giá trị hoặc kiểu giá trị của thuộc tính XAML tự động bỏ những khoảng trắng không cần thiết