Chương 1: Tổng quan 2 Báo cáo Khóa luận tốt nghiệp : CƠ SỞ LÝ THUYẾT WPF [1] 2.1 Giới thiệu Windows Presentation Foundation (viết tắt là WPF) do Microsoft phát triển, là công nghệ kế tiếp Windows Form dùng để xây dựng các ứng dụng dành cho máy trạm chạy hệ điều hành Windows. WPF được giới thiệu từ năm 2006 trong.0 (dưới tên gọi Avalon), công nghệ này nhận được sự quan tâm của cộng đồng lập trình viên bởi nhiều điểm đổi mới trong lập trình ứng dụng và khả năng xây dựng giao diện thân thiện, sinh động. Tại Việt Nam, WPF thực sự chưa phát triển so với nhánh khác là Silverlight (WPF/E). WPF sử dụng 2 thư viện lõi là PresentationCore và PresentationFramework để xử lý các điều hướng, ràng buộc dữ liệu, sự kiện và quản lý giao diện.
WPF dựa trên nền tảng đồ họa là DirectX, xử lý vector, hỗ trợ gam màu rộng, cho phép tùy biến giá trị opacity hay tạo gradient một cách dễ dàng, cho phép tạo ảnh không gian 2 chiều hoặc 3 chiều. Thư viện thực thi của WPF tự động tính toán và tận dụng tài nguyên của hệ thống một cách tối ưu để giảm tải cho CPU. Ngoài ra, WPF hỗ trợ tốt hơn Winform trong việc xử lý hình ảnh, âm thanh, video, quản lý phông chữ, quản lý hiển thị và chỉnh sửa văn bản. Các control trong WPF có thể được lồng ghép linh động để tạo ra giao diện do được viết bằng XAML.
Một ứng dụng WPF có thể được xây dựng để chạy độc lập dưới dạng mở rộng EXE hoặc đóng gói với phần mở rộng là XBAP để có thể tích hợp lên website. Thư viện thực thi WPF được tích hợp trong tất cả các hệ điều hành kể từ Windows Vista và Windows Server 2008. Chương 2: Cơ sở lý thuyết 3 Báo cáo Khóa luận tốt nghiệp 2.2 Lịch sử các phiên bản WPF Dưới đây là danh sách tóm tắt các bản WPF và ngày phát hành Bảng 2.1: Bảng danh sách các phiên bản WPF Phiên bản Ngày phát hành WPF 3.5sp1 08/2008 WPF 4 04/2010 WPF 4.3 Kiến trúc của WPF Windows Presentation Framework là một giao diện người dùng khung thế hệ tiếp theo để tạo ra các ứng dụng với một trải nghiệm người dùng phong phú. Nó là một phần của NET framework 3.
Kiến trúc WPF là một kiến trúc lớp đã được quản lý, các lớp API Không quản lý và Core như thể hiện trong hình dưới đây.1: Kiến trúc hệ điều hành WPF Chương 2: Cơ sở lý thuyết 4 Báo cáo Khóa luận tốt nghiệp 2.1 Lớp quản lý (Managed Layer) Lớp quản lý có hai thành phần chính – Presentation Framework và Presentation Core. Presentation Framework cung cấp các chức năng cần thiết mà chúng ta cần phải xây dựng các ứng dụng WPF như điều khiển, liên kết dữ liệu, kiểu dáng, hình dạng, tài liệu, chú thích, hình ảnh động và nhiều hơn nữa.dll chịu trách nhiệm cho mục đích này. Presentation Core hoạt động như một wrapper quản lý xung quanh MILCore và cung cấp giao diện công cộng cho MIL. Trình bày Core là các nhà cho WPF Visual System và cung cấp các lớp để tạo ra ứng dụng visual tree.
Hệ thống Visual tạo ra visual tree.dll chịu trách nhiệm cho mục đích này.2 Lớp không được quản lý (Unmanaged Layer) Lớp này cũng được gọi là milcore hoặc Media tích hợp Thư viện Core. MilCore được viết bằng mã không được quản lý để cho phép tích hợp chặt chẽ với DirectX. DirectX động cơ nằm bên dưới công nghệ được sử dụng trong WPF để hiển thị tất cả các đồ họa, cho phép phần cứng hiệu quả và cung cấp phần Chương 2: Cơ sở lý thuyết 5 Báo cáo Khóa luận tốt nghiệp mềm. MIL có hệ thống phần tiếp nhận hướng dẫn vẽ từ Visual hệ thống và chuyển thành dữ liệu có thể được hiểu bởi DirectX để làm cho giao diện người dùng.3 Lớp API lõi (Core API Layer) Lớp này có các thành phần cốt lõi hệ điều hành như hạt nhân, user32, GDI, điều khiển thiết bị, card đồ họa, vv Những thành phần được sử dụng bởi các ứng dụng truy cập các API mức thấp.
User32 quản lý bộ nhớ và quá trình tách.2 Ngôn ngữ lập trình C# 2.1 Giới thiệu [2] C# (hay C sharp) là một ngôn ngữ lập trình đơn giản, được phát triển bởi đội ngũ kỹ sư của Microsoft vào năm 2000. C# là ngôn ngữ lập trình hiện đại, hướng đối tượng và được xây dựng trên nền tảng của hai ngôn ngữ mạnh nhất là C++ và Java. Trong các ứng dụng Windows truyền thống, mã nguồn chương trình được biên dịch trực tiếp thành mã thực thi của hệ điều hành. Trong các ứng dụng sử dụng .NET Framework, mã nguồn chương trình (C#, VB.NET) được biên dịch thành mã ngôn ngữ trung gian MSIL (Microsoft intermediate language).
Sau đó mã này được biên dịch bởi Common Language Runtime (CLR) để trở thành mã thực thi của hệ điều hành. Hình bên dưới thể hiện quá trình chuyển đổi MSIL code thành native code. Các cú pháp, toán tử, biểu thức và cả tính năng của C# khá tương đương Java và C++ song đã qua cải tiến nên đơn giản hơn nhiều. Hiện đại: C# sở hữu nhiều khả năng như xử lý ngoại lệ, tự động trong thu gom bộ nhớ, bảo mật mã nguồn, dữ liệu mở rộng,.
Đây là tất cả những đặc điểm được mong chờ ở một ngôn ngữ lập trình hiện đại. Hướng đối tượng: C# là một trong những ngôn ngữ được đánh giá là thuần hướng đối tượng. Nó sở hữu cả 4 tính chất quan trọng, đặc trưng là tính kế thừa, tính đóng gói, tính trừu tượng và tính đa hình. Ít từ khóa: Một trong những đặc trưng cơ bản của C# là ít từ khóa.
Từ khóa được dùng trong ngôn ngữ này chỉ nhằm mục đích mô tả thông tin. Tuy ít từ khóa song C# vẫn rất mạnh mẽ. Lập trình viên có thể sử dụng nó để thực hiện mọi nhiệm vụ. Mã nguồn mở: C# là một trong những ngôn ngữ lập trình mã nguồn mở, được phát triển, điều hành một cách độc lập với Microsoft.
Đây là một trong những nét độc đáo khiến ngôn ngữ này được biết đến và ưa chuộng rộng rãi. Chương 2: Cơ sở lý thuyết 6 Báo cáo Khóa luận tốt nghiệp Đa nền tảng: C# là ngôn ngữ được sử dụng trong lập trình trên nhiều nền tảng. Các ứng dụng hoặc website được xây dựng bằng ngôn ngữ này có thể hoạt động tốt trên nhiều nền tảng như Windows, Linux và Mac. Tiến hóa: C# vẫn đang được nâng cấp và cho ra mắt các phiên bản mới với nhiều tính năng vượt trội và khả năng làm việc mạnh mẽ hơn.
Hiện C# có thể làm việc với console, điện toán đám mây, phần mềm học máy,.3 Ưu điểm [2] C# gây sốt trong giới công nghệ nhờ những ưu điểm nổi bật như: o C# gần gũi với Java và C++, nhờ vậy mà nó kế thừa được tất cả các ‘tinh hoa’ của hai ngôn ngữ này. Lập trình viên có kiến thức về hai ngôn ngữ trên có thể dùng C# dễ dàng. o Cộng đồng những người sử dụng C# đang phát triển với tốc độ chóng mặt. Lập trình viên có thể tham khảo và tìm kiếm thông tin dễ dàng.
o C# có khả năng tạo ra mọi ứng dụng và phổ biến trong giới lập trình. Đặc biệt là lập trình game.4 Ứng dụng [2] Tương tự như các ngôn ngữ lập trình khác, C# được sử dụng để tạo các chương trình và ứng dụng khác nhau. Các ứng dụng đa dạng dành cho thiết bị di động, máy tính để bàn, dịch vụ dựa trên đám mây, trang web, phần mềm doanh nghiệp hay các ứng dụng trò chơi. Ngoài ra, C# được sử dụng với ba lĩnh vực chính: Các loại ứng dụng C# bạn có thể xây dựng Có 3 loại ứng dụng chính bạn có thể tạo ra khi sử dụng ngôn ngữ lập trình C# đó là : Ứng dụng phát triển game o Ngôn ngữ lập trình C# là một lựa chọn hoàn hảo cho các trình game phổ biến nhất hiện nay như Rimworld trên Unity Game Engine.
Trong đó, Unity là một công cụ giải trí với hơn một phần ba trò chơi phổ biến nhất trong ngành đã được tạo ra. Công cụ Unity tích hợp với C# có thể sử dụng trên hầu hết mọi thiết bị di động hoặc bảng điều khiển hiện đại thông qua công nghệ đa nền tảng như Xamarin. o Một số chương trình và ứng dụng được viết bằng ngôn ngữ lập trình C# như Windows Installer XML, Microsoft Visual Studio, Paint.NET, KeePass, FlashDevelop, Banshee, NMath, Pinta và OpenRA. Ứng dụng web (Web application) o Ngôn ngữ lập trình C# được sử dụng để triển khai các trang web động đầy đủ các tính năng nâng cao dựa trên nền tảng .NET hay phần mềm mã nguồn mở.
Các trang web được xây dựng trên ngôn ngữ lập trình hướng đối tượng nên nó hoạt động rất hiệu quả, dễ dàng mở rộng và bảo trì. Ứng dụng Windows Chương 2: Cơ sở lý thuyết 7 Báo cáo Khóa luận tốt nghiệp o Ngôn ngữ lập trình C# được sử dụng phổ biến với mục đích phát triển các ứng dụng Microsoft trên máy tính để bàn. Ngoài ra, C# yêu cầu khung Windows .NET để có thể hoạt động tốt nhất và phát triển các ứng dụng hay chương trình cụ thể cho các kiến trúc nền tảng Microsoft. Ứng dụng cho thiết bị di động (Mobile application).5 Các phiên bản [3] Hình 2.2: Các phiên bản C# Phiên Đặc tả ngôn ngữ Ngày phát hành .NET Framework Visual Studio bản ECMA ISO/IEC Microsoft C# 1.0 Tháng 1 năm 2002 Tháng 1 năm 2002 .NET 2002 Tháng 12 năm 2002 Tháng 4 năm 2003 C# 1.1 Tháng 10 năm 2003 Tháng 4 năm 2003 .0 Tháng 6 năm 2006 Tháng 9 năm 2006 Tháng 9 2005[note 2] Tháng 11 năm 2005 .NET Framework Visual Studio 2008 2.0 Tháng 8 năm 2007 Tháng 11 năm 2007 .NET Framework Visual Studio 2010 3.0 Tháng 4 năm Tháng 4 năm 2010 .NET Framework 4 Visual Studio 2010 2010 C# 5.0 Trong quá trình Không Tháng 6 năm 2013 Tháng 8 năm 2012 .5 Visual Studio 2012 Visual Studio 2013 C# 6.0 Bản nháp Tháng 7 năm 2015 .6 Visual Studio 2015 Không C# 7.0 Không Tháng 3 năm 2017 .1 Không Không Không Tháng 8 năm 2017 .2 Visual Studio 2017 phiên bản 15.2 Không Không Không Tháng 11 năm 2017 .1 Visual Studio 2017 phiên bản 15.3 Tháng 5 năm 2018 Tháng 5 năm 2018 .2 Visual Studio 2017 phiên bản 15.0 Tháng 9 năm 2019 Tháng 9 năm 2019 .0 Visual Studio 2019 phiên bản 16.0 Tháng 11 năm 13 Tháng 11 năm .0 Visual Studio 2019 phiên bản 16.1 Giới thiệu Material Design là hình thức phát triển hơn của Flat Design (thiết kế phẳng) - một xu hướng ‘làm mưa làm gió’ thời gian gần đây.