(Post 01/06/2007) Cuối tháng 5/2006, Microsoft
công bố bản beta 2 của Windows Vista cùng một số mô hình, công cụ giúp
phát triển ứng dụng trên Windows như: .NET Framework 3.0 (trước đây gọi
là WinFX), Office 2007... Trong đó các công cụ liên quan đến .NET Framework
3.0 được giới phát triển phần mềm đặc biệt quan tâm. Bài viết này mong
muốn đem đến cho bạn đọc cái nhìn cơ bản về .NET Framework 3.0 được Microsoft
công bố là thế hệ thứ 3 sau Win16 và Win32.
Mô hình lập trình trên Windows hiện nay
Trước khi tìm hiểu .NET Framework 3.0, ta hãy xem lại
mô hình phát triển phần mềm trên Windows hiện tại. Có hai dạng ứng dụng
là ứng dụng desktop (WinForm) và ứng dụng web (WebForm). Khi phát triển
một phần mềm, ta phải lựa chọn một trong hai dạng ứng dụng này mà không
thể nào có sự chia sẻ hay dùng chung. Với ứng dụng desktop theo mô hình
client-server, các thành phần của chương trình được cài đặt trên máy chủ
(server) và máy khách (client). Khi có sự thay đổi bất cứ thành phần nào
ở phía client, ta đều phải cài đặt lại thành phần ấy cho từng client.
Còn với ứng dụng web, chỉ cần cài đặt ở phía server, client sẽ truy xuất
thông qua URL, tuy nhiên, trình duyệt là công cụ duy nhất mà ta có thể
dùng để truy xuất đến ứng dụng web, thật bất tiện!
Một câu hỏi đặt ra là có cách nào chỉ viết một ứng dụng
vừa có thể chạy như ứng dụng desktop, vừa như ứng dụng web không? Vấn
đề này đã được đặt ra từ lâu nhưng đến thời gian gần đây Microsoft mới
triển khai một mô hình lập trình mới - .NET Framework 3.0 - giúp giải
quyết vấn đề trên. Với mô hình này, ta có thể viết một ứng dụng web cho
phép người dùng phía client sử dụng mà không cần thông qua trình duyệt
hoặc một ứng dụng desktop được sử dụng bởi người dùng web.
Mô hình lập trình .NET Framework 3.0
.NET Framework 3.0 là một mô hình lập trình với "mã
được kiểm soát" (managed code), được xây dựng và mở rộng dựa trên
.NET Framework 2.0, không những giải quyết những vấn đề khó khăn trong
việc phát triển phần mềm mà còn giúp tạo ra những phần mềm, dịch vụ mà
công nghệ hiện tại không thể làm được. Nó giúp lập trình viên và người
thiết kế có thể tạo ra ứng dụng có nhiều tính năng đáng tin cậy hơn, bảo
mật hơn, thông minh hơn, thẩm mỹ hơn, dễ triển khai hơn...
Ta có thể nhìn .NET Framework 3.0 qua 2 phương diện:
- Về chức năng, .NET Framework 3.0 có 3 khối chức năng là: Trình diễn
(Presentation); Dữ liệu (Data); Giao tiếp (Communication).
- Về kỹ thuật, hiện tại Microsoft giới thiệu 4 kỹ thuật mới và nổi bật
nhất là:Windows CardSpace (InfoCard), Windows Presentation Foundation
(Avalon), Windows Communication Foundation (Indigo), Windows Workflow
Foundation (Workflow).
Microsoft quyết định sử dụng .NET Framework 3.0 cho Windows
Vista nhưng đồng thời cũng hỗ trợ luôn cho Windows XP (SP2) và Windows
Server 2003 (SP1). Sau đây ta sẽ tìm hiểu lần lượt từng chức năng.
Windows CardSpace (InfoCard)
InfoCard là một kỹ thuật mới trong .NET Framework 3.0,
giúp sử dụng và chia sẻ thông tin cá nhân một cách đơn giản và an toàn
trên Internet. InfoCard giúp người dùng web không còn phải lo về việc
nhớ quá nhiều "username" (tên đăng nhập) và "password"
(mật khẩu) khi truy cập web. Ngoài ra, InfoCard còn cho phép tạo ứng dụng
web quản trị tài khoản người dùng an toàn.
Hãy tưởng tượng bạn đăng ký một tài khoản trong Yahoo,
một trong Google và là thành viên của 3 diễn đàn nào đó. Mỗi nơi bạn đều
phải có username và password, vậy bạn phải nhớ đến 5 tên đăng nhập và
5 password. Chưa kể bạn còn phải nhớ tên và password sử dụng máy tính,
sử dụng một số phần mềm nào đó trong máy tính. Quả là đau đầu phải không?
Hay bạn muốn đăng ký làm thành viên của một dịch vụ web
để khai thác dữ liệu từ website này. Thường thì bạn sẽ phải điền một số
thông tin cá nhân vào trang web mẫu đăng ký. Bây giờ bạn không cần làm
thế mà chỉ cần đưa ra một mã số (bạn có thể dùng mã số này ở bất cứ trang
web nào đòi hỏi), sau đó trang web này tự động liên kết với một trang
web khác đăng thông tin của bạn. Nếu hợp lệ, bạn có thể làm thành viên
ngay mà không cần gõ password hay khai báo thông tin gì nữa, đó chính
là InfoCard.
Như vậy, InfoCard giúp bạn có một mã số giống như là
một chứng minh nhân dân trên mạng. Khi đi đâu trên mạng bạn cứ chìa ra:
"giấy chứng minh" của tôi đây!
Windows Presentation Foundation (Avalon)
Avalon có thể xem như là hệ thống trình diễn thống nhất
dùng để thiết kế giao diện người dùng trong .NET Framework 3.0. Hệ thống
này gồm hai phần, một là bộ máy dùng cho việc thể hiện giao diện, hai
là tập công cụ giúp cho người phát triển phần mềm tạo ra ứng dụng mang
tính đồ họa và đa truyền thông tốt nhất.
Trong .NET, ta đã có một môi trường tạo giao diện người
dùng rất tốt là WinForm cho ứng dụng desktop và WebForm cho ứng dụng web,
vậy tại sao lại có một môi trường làm giao diện người dùng khác nữa làm
gì?
Ngày nay, hẳn ai trong chúng ta đều nhận thấy kiểu dáng,
giao diện của các ứng dụng desktop đã lạc hậu hơn so với các ứng dụng
web. Ứng dụng desktop luôn phải sử dụng các công cụ (control) chuẩn. Để
các control này sinh động hơn, người lập trình phải tốn rất nhiều công
sức thiết kế lại.
Từ Win16, Win32 đã có thư viện đồ hoạ GDI, rồi GDI+.
Nếu muốn làm việc với đồ hoạ tốt hơn, lập trình viên có thể dùng đến DirectX.
Trong khi đó với Avalon, ta sẽ có một thế hệ lập trình đồ họa tuyệt vời
vừa bao gồm GDI vừa hỗ trợ đồ hoạ 3D, hình động, video, xử lý và nhận
dạng âm thanh...
Trong mô hình lập trình hiện tại, lập trình viên thường
cũng là người thiết kế giao diện, còn với Avalon, người thiết kế giao
diện có thể tạo ra một giao diện độc lập trong khi người lập trình chỉ
cần viết mã lệnh bên dưới.
Windows Communication Foundation (Indigo)
Indigo là một trong ba phần của .NET Framework 3.0, nó
bao phủ toàn bộ những kỹ thuật lập trình phân tán và do đó rất được kỳ
vọng từ phía những người phát triển phần mềm.
Tính đến thời điểm hiện nay, có nhiều kỹ thuật cho hệ
thống phân tán như: ASP.NET Web Services (ASMX), Web Service Enhancements
(WSE), Microsoft Message Queue (MSMQ), Enterpise Services/COM+ và .Net
Remoting. Trong đó, mỗi kỹ thuật đều có những ưu điểm và khuyết điểm riêng.
Mỗi loại sẽ phù hợp với một ứng dụng phân tán nhất định. Tuy nhiên, khi
triển khai một ứng dụng phân tán, người phát triển phần mềm không thể
lựa chọn được nhiều kỹ thuật. Sự ra đời của Indigo với việc gói gọn phần
lớn những chức năng của từng kỹ thuật trên đã giúp cho việc phát triển
ứng dụng phân tán trở nên tiện lợi hơn.
Windows Workflow Foundation (WWF)
WWF giúp người phát triển phần mềm có thể triển khai
nhanh ứng dụng trên Windows. Nó hỗ trợ đắc lực trong việc thiết kế các
ứng dụng xử lý công việc theo từng bước, theo luồng nhất định. WWF không
những mô phỏng được xử lý luồng trong hệ thống máy tính mà còn mô phỏng
cả các luồng công việc trong thực tế đời sống.
Lấy ví dụ về việc bán hàng của một siêu thị. Một khách
hàng gọi điện đến bộ phận đặt hàng, nhân viên ghi nhận một số thông tin
cần thiết. Tiếp theo, thông tin này được đưa qua bộ phận xử lý đơn hàng
rồi chuyển sang bộ phận xuất và giao hàng nếu còn hàng. Bộ phận giao hàng
khi giao xong sẽ nhận phản hồi từ khách hàng và kết thúc quá trình mua
bán.
Ta viết chương trình xử lý quá trình bán hàng này như
thế nào? Ta cần ít nhất một cửa sổ cho nhân viên nhập thông tin khách
hàng và một cửa sổ cho việc xử lý đơn hàng, giao hàng. Trong hai cửa số
này, ta phải giúp người sử dụng quản lý theo trình tự xử lý nhất định
nào đó. Chương trình không khó để thực hiện trên các mô hình lập trình
hiện tại. Tuy nhiên, với WWF, công việc sẽ trở nên dễ dàng hơn và thực
hiện nhanh hơn nhiều.
WWF cung cấp 3 tính năng chính:
- Kỹ thuật xử lý luồng: đây là kỹ thuật cơ bản của Windows, hiện tại
có một số sản phẩm của Microsoft hỗ trợ xử lý luồng như Microsoft BizTalk
Server, Microsoft Exchange Server. Theo xu hướng phát triển, việc hỗ
trợ xử lý luồng công việc luôn là một phần của Windows.
- Mô hình xử lý cho nhiều dạng ứng dụng khác nhau: Việc hỗ trợ xử lý
luồng công việc không giới hạn trong những công việc đơn giản mà hỗ
trợ xử lý những luồng phức tạp. Hơn nữa ta có thể chia một mô hình tổng
thể thành các mô hình con để xử lý.
- Một hệ thống thống nhất với mô hình xử lý luồng công việc thực tế:
Lấy ví dụ công việc bán hàng nêu trên, tất cả những tình huống xảy ra
trong quá trình giao dịch được định sẵn và máy tính sẽ thực thi những
gì được cài đặt. Trong khi ấy, việc giao dịch thực tế lại luôn có sự
thay đổi theo hoàn cảnh (ví dụ khách hàng thay đổi đơn hàng, đưa thêm
một số ràng buộc...) mà luồng xử lý của máy tính không thể thực hiện
được. WWF sẽ giúp chúng ta phát triển phần mềm mà các luồng xử lý công
việc có thể được can thiệp giống như trong thực tế đời sống.
Kết luận
Theo đánh giá của giới chuyên môn, .NET Framework 3.0
sẽ làm thay đổi đáng kể việc phát triển phần mềm trong tương lai không
xa. Bài viết này chỉ nêu một cách tổng quát về .NET Framework 3.0. Việc
đi sâu hơn vào từng thành phần trong bốn thành phần nêu trên hy vọng sẽ
được trình bày trong dịp khác.
Tham khảo:
Hữu Giang
Công ty FCGV
(theo PC World VN)
|