Layout

Giới thiệu

a. Ở các phiên bản .NET 1.x, Windows Form cung cấp một hệ thống layout gốc với các controls được đặt cố định theo tọa độ, điều này gây khó khăn trong việc sử dụng các nội dung động. Phiên bản .NET 2.0 đã điền vào chỗ khuyết này với 2 layout container là: FlowLayoutPanel và TableLayoutPanel cho phép thao tác dễ dàng hơn với các nội dung động, tạo các modules interface và định vị ứng dụng. Tuy nhiên, các layout panel này chỉ giống như một add-on cho hệ thống layout của Windows Form – vốn dĩ là đặt cố định theo tọa độ (coordinate-based layout)

Layout trong WPF thì ngược lại so với mô hình trong .NET 2.0. Ở .NET 2.0 là layout cố định theo tọa độ – tùy chọn thêm flow-based layout panels; còn trong WPF thì flow-based layout là chuẩn, trong khi layout cố định theo tọa độ chỉ được hỗ trợ ở mức sơ đẳng.

WPF sử dụng các dạng panel khác nhau để bố trí các phần tử đồ họa trên giao diện người dùng. Điều này kế thừa từ ý tưởng trong .NET 2.0, kết hợp công nghệ giao diện mạnh như Windows Forms, với layout của trình duyệt, tạo interface như web, nhằm nâng cao tính linh hoạt trong việc bố trí các phần tử trên giao diện.
Read more

WPF/E

WPF Everywhere (WPF/E) là codename của một công nghệ web presentation được tạo ra để hoạt động trên tất cả các platform, tất cả các browser và được cài đặt dưới dạng một browser plug-in. Khi người sử dụng đến thăm một trang web có control được viết bằng WPF/E, browser plug-in sẽ chạy, thực thi code và render ra giao diện tại vị trí mà control được nhúng trong trang web. WPF/E cung cấp môi trường giàu đồ họa hơn nhiều so với những trang web sử dụng HTML và JavaScript truyền thống. Sử dụng WPF/E một cách có điều độ, có nghệ thuật, developer hoàn toàn có thể gây ấn tượng mạnh với khách hàng bằng mức độ tương tác đồ họa tuyệt vời, sử dụng những hiệu ứng vector, hiển thị hình ảnh, phát âm thanh và chơi các đoạn video.

Những lời quảng cáo trên nghe có vẻ quen quen, đơn giản là trước khi WPF/E ra đời vào năm 2006 (bản Community Tech Review), đã tồn tại rất nhiều công nghệ dạng plug-in tương tự, và chúng đã đáp ứng được phần nào nhu cầu về đồ họa trên World Wide Web, có thể kể ra một vài cái tên như Java, ActiveX, Shockwave và thành công nhất là Adobe Flash. Tất cả những công nghệ này vẫn còn được sử dụng cho đến ngày hôm nay, nhưng chưa có công nghệ nào được phát triển thành một nền tảng thống trị cho việc lập trình ra những ứng dụng web đa phương tiện. Hầu hết chúng đều chưa giải quyết được các vấn đề liên quan một cách triệt để, ví dụ như:

  • Sự khó khăn khi cài đặt.
  • Công cụ lập trình và thiết kế nghèo nàn.
  • Không tương thích với các browser và các hệ điều hành khác nhau.

Read more

XAML

XAML là gì?

  • 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 được sử dụng để tạo ra các đối tượng trong .NET.
  • Ta có thể tạo ra các phần tử đồ họa (UI) với những khai báo thông qua thẻ trong XAML. Sau đó ta có thể dùng file mã lệnh tách biệt của nó (code-behind) để trả về những sự kiện và điều khiển những đối tượng mà ta đã định nghĩa trong XAML.
  • Mặc dù XAML là một công nghệ có thể ứng dụng trong nhiều lĩnh vực khác nhau 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.Để 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 giữa Designer và Developer trong các ứng dụng WPF chính là XAML.

Read more

MultiPoint

MultiPoint SDK là một bộ thư viện miễn phí được Microsoft phát triển, hỗ trợ kết nối và sử dụng nhiều con chuột ngay trên một máy tính duy nhất. Với việc sử dụng bộ SDK này ta có thể viết những ứng dụng WPF mà trong đó có sự tham gia của nhiều người dùng, mỗi người điều khiển một con trỏ trên màn hình để tương tác. Tên đầy đủ của bộ công cụ này là Microsoft MultiPoint SDK và tránh lầm lẫn với các định nghĩa Multipoint khác có thể gặp ở lĩnh vực mạng máy tính.

Sơ lược nguồn gốc

MultiPoint là một công nghệ rất mới, mới được khởi xướng năm 2005 và được nghiên cứu, ứng dụng trong thời gian gần đây. MultiPoint cũng là một công nghệ rất được chú ý trong cuộc thi Imagine Cup năm 2009 của Microsoft.

Bộ công cụ này phát xuất từ thực tế nghiên cứu tình hình dạy vi tính cho học sinh ở Ấn Độ. Với việc thiếu thốn máy tính, thông thường phải để nhiều em sử dụng chung một máy, thường là 5 em. Và khi dùng chung thì xảy ra tình trạng tranh giành, và thường có 1 vài em chuyên giành phần, làm giáo viên phải luân phiên đổi người điều khiển máy trong từng nhóm để các em đều được sử dụng. Tình trạng này là cản trở đối với việc đào tạo.

Read more

Giới thiệu WPF

Những ngày xưa

Đi đến tương lai bằng cái nhìn từ quá khứ, 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 đó. Lấy ví dụ:

1. ASP.NET Web Forms đưa mô hình lập trình Windows truyền thống lên thế giới Web, biến Web từ môi trường state-less (client và server tách biệt hoàn toàn) thành một môi trường thống nhất: state-full Web.

2. ADO.NET định nghĩa ra các class tổng quát như Connection, Command, DataSet để các developer thừa kế từ chúng, mở rộng khả năng tiếp cận với nhiều loại RDMS (Relational Database Management System) khác nhau như SQL Server, Access, Oracle, MySql…, đồng thời nâng cao khả năng debug khi thao tác với database.

3. Common Language Runtime làm thư viện nền tảng giúp programmer sử dụng nhiều ngôn ngữ lập trình khác nhau có thể cùng làm việc với nhau trong một project. Có thể kể ra C#, J#, F#, VB.NET, Delphi.NET, C++.NET, IronRuby, IronPython…

Thật đáng tiếc, công nghệ mà những developer trung thành nhất của Microsoft mong muốn nhìn thấy bước đột phá – Windows Forms – lại chẳng mảy may thay đổi. Đã hơn một thập kỷ rồi, kể từ khi Windows 95 ra đời, người ta vẫn phải tạo giao diện cho desktop application bằng cách gọi các hàm Windows API. Windows Forms tuy khoác bên ngoài giao diện kéo thả nhưng thực chất bên dưới nó vẫn bị phụ thuộc vào các lời gọi API, nên nó không có gì là đặc sắc.
Read more

MultiTouch luôn hấp dẫn – new tech clip

Chẳng nghi ngờ gì nữa khi MultiTouch và touch screen sẽ là công nghệ của tương lai, nó cũng rõ ràng như sự xuất hiện của con chuột máy tính ngày xưa, nhưng giải quyết vấn đề với MultiTouch thì phức tạp hơn nhiều so với con chuột máy tính.

Chợt may mình gặp được một clip demo màn hình MultiTouch rất mượt, mượt nhất mình từng coi trước giờ. Tên clip thì nói new tech, nhưng mình cũng băn khoăn, không rõ là do new tech thật hay do kĩ năng của người demo nhỉ. Vì nhìn vào clip thì không xảy ra hiện tượng giật ngược (hiện tượng khi zoom hình ra, thả tay ra khỏi màn hình thì hình bị thu nhỏ lại một chút).

Sau đây là clip :

Fault Tolerance

Trong thiết kế nói chung, tùy thuộc vào mức độ quan trọng, tính chất sống còn của hệ thống, đòi hỏi người thiết kế phải bảo đám tính liên tục trong hoạt động của hệ thống. Một vài dụ dễ thấy như hệ thống điều khiển bay, hệ thống cơ sở dữ liệu của các ngân hàng, hệ thống active-directory của một doanh nghiệp… Tính sẵn sàng (High Availability) của hệ thống phụ thuộc vào nhiều quá trình, bao gồm quá trình thiết kế, quá trình cài đặt, quá trình vận hành, quá trình phục hồi sau khi có sự cố. Để một hệ thống có độ sẵn sàng cao, người thiết kế phải quan tâm đến Fault Tolerance, tạm dịch là khả năng chịu đựng lỗi.
Những đặc điểm cơ bản mà một hệ thống fault-tolerance đòi hỏi:

  • Hệ thống có thể tiếp tục hoạt động khi một thành phần của nó bị sự cố
  • Hệ thống có thể tiếp tục hoạt động trong khi một thành phần nào đó đang được sửa chữa
  • Khả năng cách ly lỗi khỏi thành phần bị lỗi (yêu cầu phải có cơ chế riêng để xác định lỗi cho mục đích cách ly)
  • Khả năng cô lập lỗi (để không gây phản ứng dây chuyền tới những thành phần khác trong hệ thống)
  • Khả năng roll-back lại hệ thống khi gặp lỗi.

Read more

Twitter

Chuyển qua sử dụng Window Live được vài tuần, sau khi add Window Live team’s network thì hay nhận được update thường xuyên từ Twitter, ban đầu ko để ý lắm nhưng hôm nay tò mò vào thử, phát hiện ra Twitter khá thú vị.

Twitter là 1 dạng Micro-blogging, dịch vụ này cho phép phát những tin nhắn ngắn tối đa là 140 kí tự (giống SMS hay status của Yahoo Messenger, Window Live Messenger, … chỉ khác là các status này đươc tập hợp và lưu lại trên trang Twitter của bạn).  Chẳng hạn như http://twitter.com/windowslive ở trên là một VD. Hay bạn có thể vào xem và add những người nổi tiếng như Bill Gates (http://twitter.com/billgates) , không thích người nổi tiếng thì add các tổ chức, công ty hay bạn bè của bạn. Sau khi add, mỗi lần họ cập nhật status thì trang Twitter của bạn sẽ hiện lên. Read more

TCO – Total Cost of Ownership

Khi một doanh nghiệp có ý định đầu tư vào một hệ thống IT để tăng cường năng lực sản xuất của doanh nghiệp đó thì một trong những chỉ số được quan tâm hàng đầu là TCO – Total Cost of Ownership. TCO phản ánh tổng chi phí mà doanh nghiệp phải bỏ ra trong toàn bộ quá trình sử dụng hệ thống, bao gồm việc triển khai phần cứng, phần mềm, bảo trì, vận hành… Nó khác hẳn với tư tưởng cố hữu đầu tư là chỉ tính đến việc mua các thiết bị phần cứng, mua bản quyền phần mềm, cài đặt chúng là xong. Nếu thật vậy thì công việc của những người theo lĩnh vực IT Pro vô cùng nhàn hạ và không đầy áp lực như trong thực tế.

Nó đóng vai trò tối quan trọng trong việc ra quyết định của doanh nghiệp trong đầu tư hạ tầng công nghệ thông tin.Chúng ta luôn biết rằng Linux thì miễn phí, vậy tại sao lại có nhiều doanh nghiệp lại chọn đầu tư vào các hệ thống Windows? Theo thống kê thì chì chi phí dành cho bản quyền phần mềm chỉ chiếm khoảng 6% TCO, và chi phí chiếm tỷ trọng cao nhất trong TCO là chi phí dành cho việc quản trị và vận hành hệ thống, với 60%. Với sự phổ biến của hệ điều hành Windows, các doanh nghiệp hoàn toàn dễ dàng trong việc tuyển dụng nhân sự có khả năng quản trị và vận hành hệ thống Windows Server. Điều này ngược lại với Linux.

Read more

K2C6 Team giành chức vô địch BKIT Quiz 09

BKIT Quiz là cuộc thi học thuật nằm trong nội dung của tuần lễ BKIT Week của Đại học Bách khoa tpHCM. Cuộc thi gồm nhiều đội chơi từ 3 trường đh: CNTT, KHTN, BK; mỗi đội khoảng 5 người, nội dung các câu hỏi và phần chơi là kiến thức CNTT, KHTN, KHXH,… trong đó kiến thức CNTT là chủ đạo.

Mỗi trận đấu có 3 đội tham gia. Đội nào đạt điểm cao nhất sẽ tiếp tục bước vào vòng trong.

Sau khi vượt qua 2 vòng đấu bảng và vòng bán kết, 3 đội họp mặt trong trận chung kết là 3 đội đến từ 3 trường đh tham gia, đây là một sự tình cờ thú vị. Read more