TỔNG QUAN VỀ XAML (EXTENSIBLE APPLICATION MARKUP

Một phần của tài liệu 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 (Trang 34)

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

GVHD: 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:

GVHD: 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à:

- Windows.

- Page (tƣơng tự nhƣ Windows nhƣng dùng để chuyển đổi giữa các ứng dụng).

- Application (định nghĩa các application resources và thiết lập khởi động). Mặc định đuôi file mở rộng của XAML là (.xaml), một file xaml chỉ một top- level element, trong ví dụ này là Window và thẻ </Window> để xác nhận kết thúc file xaml.

2.2.5 XAML namespaces

Lúc biên dịch các XAML parser cần biết namespace đƣợc sử dụng mà các namespace trong XAML tƣơng đƣơng với các khai báo namespace trong .NET., ví dụ nhƣ class Window có thể có mặt ở nhiều nơi, có thể thấy nó ở class System.Windows hoặc có thể ở class Window trong một component của một hãng thứ ba hoặc do bạn định nghĩa nên nó trong ứng dụng, chỉ ra class mà cần muốn tham chiếu, parser XAML kiểm tra namespace XML đƣợc áp dụng cho element.

Thuộc tính xmlns là một thuộc tính đặc biệt trong XML đƣợc dành riêng cho khai báo namespace. Đoạn mã lệnh trên khai báo hai namespace cái mà có thể tìm thấy trong mỗi tài liệu WPF XAML mà do bạn tạo ra:

xmlns=”http://schemas.mcrosoft.com/winfx/2006/xaml/presentation” xmlns=http://schemas.microsoft.com/winfx/2006/xaml

XML namespace đƣợc định khai báo nhƣ cách khai báo attributes. Các attribute này có thể đƣợc đặt bên trong bất cứ thẻ bắt đầu nào. Tuy nhiên, quy tắc là tất cả các namespace mà bạn sử dụng trong tài liệu nên đƣợc khai báo trong thẻ đầu tiên. Một khi đã khai báo namespace rồi, bạn co thể sử dụng nó bất kì trong tài liệu nào.

GVHD: 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. (adsbygoogle = window.adsbygoogle || []).push({});

GVHD: 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.

GVHD: 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ý.

GVHD: 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.

GVHD: Lê Minh Lý - 2301 Trang 27 SVTH: Hồ Hoàng Nha - 1111536

2.3 SQL SERVER 2008

Trong một thế giới dữ liệu ngày nay, dữ liệu và các hệ thống quản lý dữ liệu đó cần phải luôn luôn đƣợc bảo đảm và ở trạng thái có sẵn. SQL Server 2008 cho phép các nhà phát triển giảm đƣợc sự phức tạp của cơ sở hạ tầng trong khi đó vẫn bảo đảm cung cấp một nền tảng dữ liệu doanh nghiệp có khả năng bảo mật, khả năng mở rộng và quản lý tốt hơn, cùng với thời gian chết của ứng dụng giảm. SQL Server 2008 cho phép các tổ chức có thể chạy hầu hết các ứng dụng phức tạp của họ trên một nền tảng an toàn, tin cậy và có khả năng mở rộng. Bên cạnh đó còn giảm đƣợc sự phức tạp trong việc quản lý cơ sở hạ tầng dữ liệu. SQL Server 2008 cung cấp một nền tảng tin cậy và an toàn bằng cách bảo đảm những thông tin có giá trị trong các ứng dụng đang tồn tại và nâng cao khả năng sẵn có của dữ liệu. SQL Server 2008 giới thiệu một cơ chế quản lý cách tân dựa trên chính sách, cơ chế này cho phép các chính sách có thể đƣợc định nghĩa quản trị tự động cho các thực thể máy chủ trên một hoặc nhiều máy chủ. Thêm vào đó, SQL Server 2008 cho phép thi hành truy vấn dự báo với một nền tảng tối ƣu.

QL Server 2008 cho phép các chuyên gia phát triển khai thác triệt để và quản lý bất kỳ kiểu dữ liệu nào từ các kiểu dữ liệu truyền thống đến dữ liệu không gian địa lý mới. (adsbygoogle = window.adsbygoogle || []).push({});

SQL Server 2008 cùng với .NET Framework đã giảm đƣợc sự phức tạp trong việc phát triển các ứng dụng mới. ADO.NET Entity Framework cho phép các chuyên gia phát triển phần mềm có thể nâng cao năng suất bằng làm việc với các thực thể dữ liệu logic đáp ứng đƣợc các yêu cầu của doanh nghiệp thay vì lập trình trực tiếp với các bảng và cột. Các mở rộng của ngôn ngữ truy vấn tích hợp (LINQ) mới trong .NET Framework đã cách mạng hóa cách các chuyên gia phát triển truy vấn dữ liệu bằng việc mở rộng Visual C# và Visual Basic .NET để hỗ trợ cú pháp truy vấn giống SQL vốn đã có. Hỗ trợ cho các hệ thống kết nối cho phép chuyên gia phát triển xây dựng các ứng dụng cho phép ngƣời dùng mang dữ liệu cùng với ứng dụng này vào các thiết bị và sau đó đồng bộ dữ liệu của chúng với máy chủ trung tâm.

GVHD: Lê Minh Lý - 2301 Trang 28 SVTH: Hồ Hoàng Nha - 1111536 Những lệnh dùng để quản lý các thuộc tính của một database nhƣ định nghĩa các hàng hoặc cột của một table, hay vị trí data file của một database..., thƣờng có dạng nhƣ sau:

- Create object_Name - Alter object_Name - Drop object_Name

Trong đó object_Name có thể là một table, view, stored procedure, indexes...

Ví dụ:

Lệnh Create sau sẽ tạo ra một table tên Importers với 3 cột CompanyID, Contact

CompanyName.

USE Northwind - - sử dụng cơ sở dữ liệu Northwind

CREATE TABLE Importers(CompanyID int NOT NULL, CompanyName varchar(40) NOT NULL,Contact varchar(40) NOT NULL

)

Những lệnh phổ biến dùng để xử lý data nhƣ Select, Update, Insert, Delete.

Ví dụ:

USE Northwind

SELECT CustomerID, CompanyName, ContactName FROM Customers

WHERE (CustomerID = 'alfki' OR CustomerID = 'anatr') ORDER BY ContactName

GVHD: Lê Minh Lý - 2301 Trang 29 SVTH: Hồ Hoàng Nha - 1111536

CHƢƠNG 3. NỘI DUNG VÀ KẾT QUẢ NGHIÊN CỨU 3.1 TỔNG QUAN VỀ HỆ THỐNG

3.1.1 Mô tả bài toán

Trang web đƣợc xây dựng nhằm phục vụ cho việc đăng ký đề tài luận văn thuận tiện hơn thông qua mạng internet dành cho sinh viên và giảng viên khoa Khoa học tự nhiên.

Hệ thống đăng ký đề tài luận văn trực tuyến hỗ trợ đầy đủ các chức năng chính cho công việc đăng ký đề tài nhƣ:

- Quản lý thêm, sửa, xóa, có thể in các báo cáo dữ liệu dƣới dạng các tập tin Word, Excel, XML, Acrobat Reader...

 Hệ thống menu giúp ngƣời dùng lựa chọn nhanh chóng.

 Tự cảnh báo khi có thao tác sai lệch.

 Hệ thống báo cáo rõ ràng, đa dạng.

- Quản lý các đề tài luận văn: mã đề tài, tên đề tài, số lƣợng sinh viên tối đa, số lƣợng sinh viên đăng ký, thời gian đƣa ra đề tài, thuộc lĩnh vực nào, đề tài của giảng viên nào.

 Lĩnh vực đề tài: mã lĩnh vực, tên lĩnh vực

- Quản lý đăng ký đề tài luận văn: thời gian đăng ký, đề tài đăng ký (mã đề tài), sinh viên đang ký (mã sinh viên).

 Giảng viên có quyền thêm mới, cập nhật đề tài nếu xảy ra lỗi hoặc trùng đề tài, xóa thông tin các đề tài luận văn nếu chƣa có sinh viên đăng ký đề tài đó.Nếu muốn xóa đề tài luận văn đã có sinh viên đăng ký cần phải thông qua ngƣời quản trị. Ngoài ra giảng viên có thể xem thông tin các sinh viên đã đăng ký các đề tài luận văn của mình.

 Hệ thống sẽ đƣa ra danh sách các đề tài để sinh viên tìm kiếm và đăng ký nếu thấy phù hợp.

 Số sinh viên đăng ký phụ thuộc vào số lƣợng sinh viên tối đa của mỗi đề tài và giảng viên theo quy định. (adsbygoogle = window.adsbygoogle || []).push({});

 Sinh viên chỉ có thể đăng ký những đề tài phù hợp với số điểm tích lũy do giảng viên đƣa ra.

 Sinh viên có số tín chỉ tích lũy nhỏ hơn 100, đã đăng ký hoặc đã hoàn thành luận văn sẽ không đƣợc phép đăng ký nữa.

GVHD: Lê Minh Lý - 2301 Trang 30 SVTH: Hồ Hoàng Nha - 1111536 nào, có học hàm và học vị nào.

 Chức vụ: mã chức vụ, tên chức vụ.

Một phần của tài liệu 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 (Trang 34)