Windows Việt

Cộng Đồng Công Nghệ Thông Tin Việt

Trang ChínhTrang Chính  Sự kiện  Tìm kiếmTìm kiếm  Đăng kýĐăng ký  Đăng NhậpĐăng Nhập  

Share
 
 WPF một bước tiến mới trong hệ thống xây dựng ứng dụng windows với giao diện đẹp, chuyên nghiệp. (^_^)
Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down 
Tác giảThông điệp
changtraisitinh
Member

changtraisitinh
Member
Giới tính : Nam
Tuổi : 30
Posts Posts : 405
Coins Coins : 914
Thanked Thanked : 113
WPF một bước tiến mới trong hệ thống xây dựng ứng dụng windows với giao diện đẹp, chuyên nghiệp. (^_^) Empty

WPF một bước tiến mới trong hệ thống xây dựng ứng dụng windows với giao diện đẹp, chuyên nghiệp. (^_^) Image004yb

1. Giới thiệu

Trong thế giới phần mềm, ý tưởng kết hợp Designer và Developer để thiết kế một phần mềm tốt hơn không có gì mới lạ, tuy nhiên cho tới nay thực sự vẫn chưa có một giải pháp hoàn hảo cho sự kết hợp này. Designer có thế mạnh của họ là khả năng xây dựng giao diện bắt mắt và thu hút được người dùng vào những phần trọng tâm. Designer giống như bán cầu não phải vậy! Trong khi đó, Developer giống như bán cầu não trái thực hiện việc xây dựng các chức năng cho phần mềm. Mọi Developer đều muốn phần mềm họ xây dựng có một giao diện tốt, tuy nhiên bán cầu não trái lại không có khả năng này giống như bán cầu não phải.

Chính vì vậy, sự kết hợp giữa Designer và Developer là vô cùng cần thiết. Trong bộ sản phẩm Visual Studio 2008 của mình, Microsoft đã đưa ra rất nhiều công nghệ và tiện ích đáng chú ý như Windows Presentation Foundation (WPF), Windows Communication Foundation (WCF) và Language-Integrated Query (LINQ)… WPF và XAML có mối quan hệ mật thiết với nhau và là một điểm nhấn trong sự cộng tác giữa Designer và Developer. Tôi tin tưởng rằng trong tương lai, WPF và XAML sẽ đem lại một cuộc cách mạng trong việc xây dựng phần mềm.
Trong hai mục kế tiếp, tôi sẽ đưa ra cái nhìn tổng quan về WPF và XAML. Mục 4 và mục 5 sẽ tập trung vào vai trò của XAML và đánh giá một số công cụ soạn thảo XAML. Mục 6 sẽ là một mục khá hấp dẫn khi trình bày quá trình xây dựng một ứng dụng WPF mẫu. Phần kết sẽ là một số nhận xét cá nhân của tôi về WPF và XAML cũng như tương lai của chúng.
2. Tổng quan về WPF

Trên MSDN của Microsoft, WPF được định nghĩa là một công nghệ cung cấp nền tảng cho việc xây dựng ứng dụng với khả năng kết 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. Công nghệ này khai thác được tối đa sức mạnh máy tính của bạn cũng như các công nghệ mới trong Windows Vista.
Trước khi WPF ra đời thì 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 rất nhiều thay đổi đáng kể. Trong đó 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 liên 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á 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 conrol phức tạp như Toolbar.
Giao diện có thể khai báo: Ở mục tiếp theo bạn sẽ tìm hiểu về XAML – ngôn ngữ đánh dấu cho phép bạn định nghĩa giao diện của WPF. Với XAML bạn có thể xây dựng một window 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 thực hiện các giao tiếp đơn giản ví dụ như khi bạn di chuột qua một Label thì Label đó sẽ nhấp nháy. Tất cả đều không phải viết một dòng code C# nào cả.
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ẽ phải tạo ra một đố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ể.
3. Tổng quan về XAML

XAML (viết tắt của cụm từ Extensible Application Markup Language, phát âm là “zammel”) là một ngôn ngữ đánh dấu sử dụng để tạo ra các đối tượng trong .NET. Mặc dù XAML là một 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. Nói cách khác, XAML định nghĩa sự sắp xếp các Panel, Button, Label,… để tạo nên một window trong các ứng dụng WPF. Giống như HTML, có khá nhiều công cụ hỗ trợ việc viết XAML một cách trực quan. Mục 5 sẽ đi chi tiết hơn về các công cụ này.
Để xây dựng các ứng dụng có yêu cầu cao về giao diện thì phương pháp hiệu quả nhất là tách riêng phần thiết kế giao diện và phần viết code cho ứng dụng. Với phương pháp này, Designer và Developer có thể làm việc song song và khi hoàn thành sẽ tích hợp lại với nhau.

Trước khi WPF xuất hiện thì việc tách biệt giao diện ra khỏi code là vô cùng khó khăn. Điều này rất dễ hiểu vì với Windows Form, mọi thứ bạn tạo ra đều được định nghĩa trong code C#, VB.NET,… trong khi Designer lại thường không có kiến thức về các ngôn ngữ lập trình phức tạp này. Rất may, mọi thứ đã thay đổi khi WPF xuất hiện. Với WPF, Designer và Developer có thể làm việc hoàn toàn độc lập. Chìa khóa cho sự cộng tác tuyệt hảo giữa Designer và Developer trong các ứng dụng WPF chính là XAML. Để hiểu rõ hơn về XAML và sự kết hợp giữa XAML và WPF, ta cùng nhau tìm hiểu để trả lời 2 câu hỏi: “Tại sao lại sử dụng ngôn ngữ đánh dấu?” và “Sự khác biệt của XAML so với các ngôn ngữ đánh dấu khác?”.
3.1. Tại sao lại sử dụng ngôn ngữ đánh dấu?

Trước XAML đã có một số ngôn ngữ đánh dấu dùng để thể hiện giao diện như: HTML, XUL, SVG, WordML,… Những ngôn ngữ này đặc biệt là HTML thể hiện việc dùng ngôn ngữ đánh dấu để xây dựng giao diện là rất hợp lý. XML có cái tên khá giống XAML nhưng lại là một ngôn ngữ đánh dấu để thể hiện dữ liệu có cấu trúc.
Điểm cốt yếu cho thành công của các ngôn ngữ đánh dấu là máy tính có thể đọc được và cũng rất dễ hiểu với con người. Ở đây bạn có thể nói rằng ngôn ngữ nào chả vậy, chính bạn cũng có thể hiểu được ngôn ngữ Pascal chẳng hạn. Đúng là vậy, với Developer thì việc hiểu các ngôn ngữ hướng đối tượng hay ngôn ngữ hướng thủ tục chả có gì là khó nhưng với Designer thì đó lại là một chuyện khác. Các ngôn ngữ đánh dấu dễ học hơn ngôn ngữ hướng đối tượng hay hướng thủ tục rất nhiều. Ngoài ra, các công cụ soạn thảo trực quan cho các ngôn ngữ đánh dấu rất quen thuộc với các Designer.
XAML cũng là một ngôn ngữ đánh dấu nên nó thừa hưởng tất cả những điểm mạnh trên.
3.2. Sự khác biệt của XAML so với các ngôn ngữ đánh dấu khác?

XAML không những kế thừa những điểm mạnh của ngôn ngữ đánh dấu mà nó còn có các tính năng mới nổi bật so với các ngôn ngữ đánh dấu cũ được thể hiện ở:
Khả năng thể hiện giao diện

Sự thể hiện giao diện của XAML là rất tốt. XAML có thể thể hiện các control cơ bản như Button, Latbel, Textbox,… trong các khung như Panel, Grid,… Bảng 3.1 cho thấy sự khác nhau giữa HTML và XAML khi thể hiện một Button và một Lable.
Bảng 3.1: XAML và HTML thể hiện các Control cơ bản.

Code:
<html xmlns="http://www.w3.org/1999/xhtml" >
<body>
<center>
<input type="button" value="Click Me" /> <br>
Text here
</center>
</body>
</html>

Code:
<Window x:Class="Wpf_Test.Window1" xmlns="http://schemas.microsoft.com/-swinfx/2006/xaml/presentation"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<Grid>
<Button Margin="81,105,94,124" Name="button1">Click Me</Button>
<Label Height="23" Margin="102,0,106,88" Name="label1" VerticalAlignment="Bottom">Text here</Label>
</Grid>
</Window>


Không chỉ thể hiện được các Control cơ bản, XAML còn thể hiện được các nét vẽ phức tạp hơn bảng 3.2 thể hiện. Nhìn vào bảng 3.2, ta thấy XAML khá giống với các ngôn ngữ thể hiện ảnh vector khác. Điều này rất hữu ích cho việc convert từ các định dạng cũ sang định dạng XAML, việc tái sử dụng sẽ trở nên tốt hơn rất nhiều.
Bảng 3.2: XAML và SVG thể hiện các nét vẽ vector

Code:
<rect x="1" y="1" width="398" height="398" fill="none" />
<path d-"M 100 100 L 200 100 L 200 300 z" fill="#A3A993" stroke="A8806C" stroke-width="3" />
<Canvas HorizontalAlignment="Left" Margin="89.5,171.5,0,155.5" Width="151">
<Path Fill="#FFFFFFFF" Stretch="Fill" Stroke="#FF000000" Width="151" Height="126" Data="M90,172 C140,172 190,172 240,172 215.62013,186.62792 205.8171,221.0923 188,244 174.17704,261.77237 165.22494,280.77506 149,297 115.81233,263.81233 114.04577,208.87019 90,172 z"/>
</Canvas>

Đặc biệt, XAML còn có thể thể hiện được các cảnh 3D nhờ sự hỗ trợ của các góc nhìn khác nhau, phương chiếu sáng, mắt lưới và ma trận chuyển đổi.
Sự tách biệt công việc giữa Designer và Developer

Khả năng thể hiện giao diện của XAML là rất tuyệt vời, tuy nhiên điểm đáng chú ý nhất của XAML lại không phải nằm ở đó mà nằm ở khả năng hỗ trợ: style, trigger, template, data binding và animation. Chính những khả năng này mới giúp Developer và Designer làm việc song song với nhau một cách hiệu quả nhất trong cùng một ứng dụng.
Style: Kỹ thuật sử dụng style trong phát triển web từ trước tới nay chính là để tách việc thiết kế giao diện của các Web-Designer ra khỏi việc lập trình chức năng của các Web-Developer. Phát triển ứng dụng WPF cũng như vậy, Designer thiết kế style rồi tích hợp vào ứng dụng do Developer phát triển. Quá trình tích hợp rất dễ thực hiện do sự thống nhất của XAML.
Template: Trong WPF, có hai loại template:
Control template: Designer thiết kế giao diện trực quan của các control mà không làm thay đổi các behavior do Developer định nghĩa.
Data template: Designer sẽ định nghĩa cách thể hiện cho một loại data nào đó. Ví dụ như một số nguyên trong một Textbox sẽ có màu đen, cỡ chữ 12 và canh giữa.
Data binding: Vì trong XAML có hỗ trợ data binding nên Designer có thể thực hiện các thao tác binding cơ bản giữa giao diện và dữ liệu nhận được từ Developer.
Animation: Hệ thống animation của WPF khá đầy đủ và có thể gọi từ các trigger trong XAML. Điều này giúp Designer có thể tạo ra các hiệu ứng cho Control ví dụ như khi người dùng di chuột lên một Button thì Button đó sẽ phát sáng.
4. VAI TRÒ CỦA XAML trong quá trình CỘNG TÁC GIỮA DEsigner và developer

XAML đã đập tan bức tường ngăn cách giữa Designer và Developer. Một ứng dụng có sự kết hợp giữa Designer và Developer đều có bước tích hợp kết quả làm việc của đôi bên. Để thấy được vai trò của XAML ta hãy cùng nhau phân tích quá trình tích hợp này trong ứng dụng WPF và ứng dụng Windows Forms truyền thống:

Qua hình 4.1 và 4.2, ta có thể thấy với ứng dụng Windows Form thì công việc của cả Developer lẫn Designer đều rất nặng, yêu cầu cả 2 bên phải có hiểu biết về nhiều công cụ. Hai bên làm việc lại không có một sự thống nhất chung, chính vì vậy khi tích hợp sẽ rất khó khăn, mất thời gian và có thể phải làm lại. Còn trong quá trình phát triển ứng dụng WPF, công việc của Designer và Developer đều được giảm nhẹ, không yêu cầu phải sử dụng các công cụ thiết kế giao diện nào khác. Ngoài ra, giữa Developer và Designer còn chia sẻ với nhau đoạn mã XAML chung, chính vì vậy trong suốt quá trình xây dựng phần mềm, cả hai bên luôn có sự thống nhất cần thiết.
4.1. Các mô hình cộng tác giữa Developer và Designer trong quá trình xây dựng ứng dụng WPF

Cùng với sự xuất hiện của WPF và XAML, một mô hình mới trong quá trình xây dựng ứng dụng đã ra đời. Đó là mô hình Designer/Integrator/Developer. Tuy nhiên, xây dựng ứng dụng WPF không nhất thiết phải tuân theo mô hình này. Ta vẫn có thể áp dụng mô hình cũ: Designer/Developer. Mặc dù đây là mô hình cũ nhưng việc áp dụng nó vẫn có một chút thay đổi do sự xuất hiện của XAML. Trong bài viết này, tôi sẽ phân tích chi tiết mô hình mới còn với mô hình cũ thì chỉ giới thiệu tổng quan mà thôi. Nếu bạn muốn tìm hiểu chi tiết về mô hình Designer/Developer thì có thể tham khảo tại [You must be registered and logged in to see this link.]
Mô hình Designer/Integrator/Developer

Mô hình này có xuất hiện một vai trò mới. Đó là vai trò của Integrator. Integrator là thuật ngữ được đưa ra bởi IdentityMine. Theo lời của Paul Alexander - một lập trình viên của IdentityMine thì Integrator phải là người am hiểu yêu cầu của Developer cũng như yêu cầu của Designer qua đó đảm bảo rằng giao diện của ứng dụng luôn luôn hợp lý và đảm bảo sử dụng được hết các chức năng do Developer phát triển.

Một Integrator lý tưởng cần phải có khả năng tổ chức nội dung tốt để có thể truyền đạt yêu cầu tới Designer cũng như cần phải am hiểu về WPF và XAML. Integrator sẽ quản lý mã XAML, đảm bảo chúng luôn luôn tối ưu và thống nhất giữa Designer và Developer. Integrator chính là cầu nối giữa Designer và Developer.

Lợi ích thấy rõ của việc sử dụng Integrator là giảm tải công việc cho cả Designer lẫn Developer. Trong các ứng dụng yêu cầu thời gian ngắn, nếu Designer và Developer không có thời gian để tìm hiểu về các công cụ mới thì mô hình này là khá lý tưởng: Designer sẽ sử dụng công cụ quen thuộc (Adobe Illustrator) để thiết kế giao diện rồi xuất ra dưới dạng XAML; Integrator sẽ thực hiện các thay đổi cần thiết để tích hợp vào ứng dụng do Developer đã xây dựng các chức năng. Tuy nhiên trong các dự án lớn, thì nhiệm vụ của Integrator là khá nặng và có thể làm chậm tiến trình. Nếu sử dụng nhiều Intergrator thì sẽ rất khó quản lý và tốn nhân công.
Mô hình Designer/Developer

Mô hình này không xuất hiện vai trò mới do đó yêu cầu cả Designer lẫn Developer đều am hiểu về XAML. Mô hình này có thể chia thành hai mô hình nhỏ hơn. Đó là: “Harvest Model” và “Collaboration Model”.
Mỗi mô hình đều có ưu điểm cũng như nhược điểm của riêng mình. Tùy vào độ lớn của dự án và trình độ của các thành viên tham gia dự án mà chọn ra mô hình tối ưu. Để hiểu rõ hơn về sự cộng tác trong từng mô hình, bạn có thể tham khảo video hướng dẫn tại:
[You must be registered and logged in to see this link.] Trong đoạn video này, Martin Grayson và Paul Tallett (thuộc nhóm UK MCS User Experience) giới thiệu về kinh nghiệm của họ trong quá trình làm việc với các ứng dụng WPF thực tế cũng như các cách kết hợp giữa Designer và Developer. Họ cũng giải thích chi tiết về các mô hình mà tôi đã đề cập qua đó đánh giá mô hình nào là tốt nhất trong từng trường hợp.
[You must be registered and logged in to see this link.] Đoạn video này hướng dẫn rất chi tiết cách sử dụng bộ công cụ Expression của Microsoft (Expression Design, Expression Blend) và Visual Studio 2008 để tạo ra một ứng dụng WPF. Có tất cả 7 đoạn video chia theo từng bước. Chú ý rằng máy tính của bạn phải cài Silverlight mới xem được những đoạn video đó.
5. Một số công cụ

Để soạn thảo XAML, bạn có thể soạn thảo trực tiếp bằng notepad. Tuy nhiên, khi mà những công cụ hỗ trợ XAML đã khá hoàn thiện và cung cấp những tính năng hữu ích thì việc dùng notepad quả là một sự phung phí thời gian quá đáng. Trong số các công cụ hỗ trợ ngôn ngữ XAML thì đáng chú ý nhất là hai sản phẩm của Microsoft:
Expression Blend: Là công cụ thiết kế giao diện cho ứng dụng dựa trên XAML. Với Blend, bạn có thể tận dụng được tất cả các thế mạnh của XAML: layout, control, template, style, animation, data binding và một số hỗ trợ 3D cơ bản. Trong quá trình xây dựng ứng dụng, Designer sẽ chủ yếu sử dụng Blend để tạo giao diện cho control, style, template và các animation… Trong khi đó Developer cũng sử dụng Blend để thêm các chức năng cho giao diện nhưng chủ yếu họ vẫn dùng Visual Studio để tiện cho việc lập trình.
Visual Studio 2008: Đây là một công cụ tuyệt vời với rất nhiều tính năng thú vị: trình soạn thảo trực quan để tạo ra ứng dụng WPF, trình soạn thảo XAML với IntelliSense… Tuy nhiên, nó không có trình soạn thảo trực quan để tạo ra các style, template, animation như Blend. Blend và Visual Studio có thể cùng làm việc trên một project nên sự kết hợp giữa Designer và Developer sẽ thuận tiện hơn nhiều.
Ngoài 2 công cụ trên, còn có một số công cụ khác hỗ trợ xuất ra định dạng XAML như Microsoft Expression Design và Adobe Illustrator (bạn phải cài thêm plugin). Bảng 5.1 so sánh các công cụ hỗ trợ XAML để đưa ra cho bạn cái nhìn tổng quan nhất về các chức năng có trong từng công cụ.


Bảng 5.1: Các công cụ hỗ trợ XAML
Microsoft Expression Blend
Design

WPF một bước tiến mới trong hệ thống xây dựng ứng dụng windows với giao diện đẹp, chuyên nghiệp. (^_^) Designview

Code

WPF một bước tiến mới trong hệ thống xây dựng ứng dụng windows với giao diện đẹp, chuyên nghiệp. (^_^) Codeview


XAML Round-trip là khả năng khi thay đổi mã XAML thì giao diện thay đổi và ngược lại – khi thay đổi giao diện thì mã XAML sẽ được cập nhật. Như bảng 5.1, ta thấy chỉ có Expression Blend và Visual Studio 2008 hỗ trợ tính năng này theo 2 chiều. Còn 2 công cụ còn lại chỉ hỗ trợ theo một chiều: thay đổi giao diện thì cập nhật được mã XAML.
6. Xây dỰNG mỘT ỨNG DỤNG MẪU

Nếu bạn bắt đầu cảm thấy mệt mỏi với một đống lý thuyết trên kia? Hoặc bạn là một người coi thực hành là trên hết thì mục này chính là cái bạn cần. Trong mục này tôi sẽ chỉ xây dựng một ứng dụng WPF rất đơn giản chỉ để trình bày sự tuyệt vời của XAML trong việc kết hợp giữa Designer và Developer.

Trước tiên, mở Microsoft Expression Blend, tạo một project mới. Ở đây, tôi đặt tên project này là Designer. Vẽ một hình chữ nhập bằng công cụ Rectangle, tiếp theo dùng công cụ Pencil vẽ cái mặt người cười lên đó. Thực hiện Group chúng lại thành một Canvas, sau đó vào Tool => Make button để tạo chúng thành một control button. Như vậy là xong công việc của Designer, tùy vào năng khiếu vẽ của bạn mà hình thù cái nút nó sẽ khác nhau nhưng có lẽ nó sẽ thế này:

Trong Microsoft Expression Blend, để chuyển đổi giữa chế độ thiết kế trực quan và chế độ viết mã bạn hãy dùng phím F11 và F12. Đoạn code tương ứng với cái mặt cười trên kia:
Code 6.1: Mã XAML tương ứng


Code:
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"           xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"  x:Class="Designer.Window1" x:Name="Window" Title="Window1"  Width="640" Height="480">
   <Window.Resources>
   <Style x:Key="Button" BasedOn="{x:Null}" TargetType="{x:Type Button}">
           <Setter Property="Template">
           <Setter.Value>
           <ControlTemplate TargetType="{x:Type Button}">
   <Grid>
   <Canvas>
   <Rectangle Fill="#FFFFFFFF" Stroke="#FF000000" Width="184.5"  Height="99"/>
   <Path Fill="#FFFFFFFF" Stretch="Fill" Stroke="#FF000000"  Width="41.5" Height="28" Data="M221,260.5 C229.10603,233.55293  210.6045,233.5 257,233.5 257,243.48414 258.53347,248.74167  261.5,257.5" Canvas.Left="22" Canvas.Top="22"/>
   <Path Fill="#FFFFFFFF" Stretch="Fill" Stroke="#FF000000"  Width="47.5" Height="26.004" Data="M320,259 C327.95798,245.84724  323.04453,236.90504 344,235 367.66017,232.84908 357.03316,231.65135           366.5,259" Canvas.Left="121" Canvas.Top="22.496"/>
   <Path Fill="#FFFFFFFF" Stretch="Fill" Stroke="#FF000000"  Width="35.5" Height="1" Data="M273.5,299.5 C285,299.5 296.5,299.5  308,299.5" Canvas.Left="74.5" Canvas.Top="88"/>
   <Path Fill="#FFFFFFFF" Stretch="Fill" Stroke="#FF000000" Width="1"  Height="35.5" Data="M291.5,248.5 C291.5,260 291.5,271.5 291.5,283"  Canvas.Left="92.5" Canvas.Top="37"/>
   </Canvas>
   <ContentPresenter SnapsToDevicePixels="{TemplateBinding  SnapsToDevicePixels}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding           VerticalContentAlignment}" RecognizesAccessKey="True"/>
   </Grid>
   <ControlTemplate.Triggers>
           <Trigger Property="IsFocused" Value="True"/>
           <Trigger Property="IsDefaulted" Value="True"/>
           <Trigger Property="IsMouseOver" Value="True"/>
           <Trigger Property="IsPressed" Value="True"/>
           <Trigger Property="IsEnabled" Value="False"/>
    </ControlTemplate.Triggers>
    </ControlTemplate>
     </Setter.Value>
     </Setter>
   </Style>
   </Window.Resources>
   <Grid x:Name="LayoutRoot">
   <Button Margin="198,162,238,182" Style="{DynamicResource Button}"     Content="Button"/>
   </Grid>
</Window>


Bây giờ ta bắt đầu thực hiện công việc của một Developer: mở Visual Studio 2008 lên, mở project Designer ra bạn sẽ thấy cái mặt cười đã có sẵn. Bây giờ Developer có thể thêm bất cứ chức năng gì, để đơn giản ta sẽ thêm sự kiện click chuột vào mặt cười thì sẽ hiện ra một hộp thoại thông báo. Để thêm sự kiện này bạn có thể sử dụng ngay trình soạn thảo XAML hoặc double-click vào hình mặt cười. Sau khi thêm code xong xuôi, ấn F5 và thưởng thức kết quả:

Bạn đừng hiểu lầm rằng hai quá trình tôi mô phỏng này là tuần tự. Thực ra trong thực tế, theo mô hình này, Designer sẽ xây dựng lên một cái khung giao diện ở mức thô sơ. Sau khi xây dựng xong, Developer có thể thực hiện xây dựng các chức năng cho ứng dụng. Trong khi đó Designer sẽ thực hiện làm đẹp giao diện bằng cách thêm các hiệu ứng, vẽ lại giao diện cho đẹp hơn… Như vậy công việc của Designer và Developer thực tế là được thực hiện song song!
7. Kết luận
Khi bắt đầu tìm hiểu Visual Studio 2008, tôi thực sự ấn tượng bởi nó đem lại rất nhiều ý tưởng mới. Xây dựng ứng dụng với Visual Studio 2008 bây giờ trở nên thú vị hơn bao giờ hết. Những LINQ, WCF đã đáng chú ý nhưng có lẽ WPF và XAML mới làm tôi khoái hơn cả. Từ khi bắt đầu làm quen với .NET, tôi tiếp xúc với khái niệm xây dựng ứng dụng theo các tầng (Data Access Layer, Bussiness Layer,…) và cảm thấy hứng thú bao nhiêu thì cho tới bây giờ với Visual Studio 2008, với WPF, với XAML tôi còn cảm thấy hứng thú gấp nhiều lần. Với Visual Studio, Microsoft đã thể hiện khả năng sáng tạo, khả năng nhìn trước xu thế thời đại của họ khi với mỗi phiên bản mới, họ lại làm cả thế giới phải ngả mũ kính phục trước những công nghệ mới tạo ra những cuộc cách mạng trong ngành công nghiệp phần mềm.

Hiện tại WPF mới chỉ trong giai đoạn khởi đầu của quá trình thay đổi Windows Forms. Trong thời gian vài năm nữa, nó sẽ trở thành một hệ thống giống như User32 và GDI/GDI+.

Cá nhân tôi cho rằng, với XAML thì việc chia sẻ giao diện ứng dụng sẽ giống như chia sẽ mã HTML trên web vậy. Dần dần sẽ xuất hiện các diễn đàn chia sẻ các đoạn mã XAML hay, việc tái sử dụng cho các Designer sẽ bước lên một tầm cao mới.

WPF làm được gì?




Sưu tầm từ google.com


>>> bom


WPF một bước tiến mới trong hệ thống xây dựng ứng dụng windows với giao diện đẹp, chuyên nghiệp. (^_^) Vtc14653vtc13203nohacks

※ Bài viết cùng chuyên mục


https://windows.forumvi.com
Tác giảThông điệp
Administrator
Administrators

Administrator
 Administrators
Giới tính : Nam
Tuổi : 29
Posts Posts : 2804
Coins Coins : 5864
Thanked Thanked : 799
WPF một bước tiến mới trong hệ thống xây dựng ứng dụng windows với giao diện đẹp, chuyên nghiệp. (^_^) Empty

OMG affraid

Coi xong cái clip mới phát hiện ra miệng mình đã há hốc hồi nào không hay. Càng ngày càng thấy biển học rộng quá, bơi chưa hết mà càng ngày càng rộng thêm.

Vậy cái này hình như hoàn toàn độc lập với các ngôn ngữ trước đây của Microsoft hả changtraisitinh?


[You must be registered and logged in to see this link.]

※ Bài viết cùng chuyên mục


https://windows.forumvi.com
Tác giảThông điệp
changtraisitinh
Member

changtraisitinh
Member
Giới tính : Nam
Tuổi : 30
Posts Posts : 405
Coins Coins : 914
Thanked Thanked : 113
WPF một bước tiến mới trong hệ thống xây dựng ứng dụng windows với giao diện đẹp, chuyên nghiệp. (^_^) Empty

nó dựa trên XML đó , và có thể kết hợp với C# hoặc VB.NET .


>>> bom


WPF một bước tiến mới trong hệ thống xây dựng ứng dụng windows với giao diện đẹp, chuyên nghiệp. (^_^) Vtc14653vtc13203nohacks

※ Bài viết cùng chuyên mục


https://windows.forumvi.com
Tác giảThông điệp
Sponsored content


WPF một bước tiến mới trong hệ thống xây dựng ứng dụng windows với giao diện đẹp, chuyên nghiệp. (^_^) Empty

※ Bài viết cùng chuyên mục


 
WPF một bước tiến mới trong hệ thống xây dựng ứng dụng windows với giao diện đẹp, chuyên nghiệp. (^_^)
Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang 
Trang 1 trong tổng số 1 trang

Permissions in this forum:Bạn không có quyền trả lời bài viết
Windows Việt :: Công Nghệ Thông Tin :: Kinh nghiệm - Thủ thuật-
[Windows Việt] Deverloped by Nguyễn Gia Phú - https://windows.forumvi.com
Powered by © Forumotion.com - phpBB™ version ©phpBB2
Go to top Go to bottom