(Post 06/03/2007) Công nghệ mới của Microsoft
tích hợp thư viện script phía client với nền tảng phát triển phía server
của ASP.NET 2.0, cho phép phát triển ứng dụng web thế hệ mới theo kiểu
Ajax.
Sau khi được Jesse James Garret "khai sinh"
với bài viết nổi tiếng "Ajax: Giải pháp mới cho ứng dụng web"
("Ajax: A New Approach to Web Applications", Adaptive Path,
tháng 2/2005), Ajax trở nên nổi đình nổi đám trong thế giới web và ngày
càng xuất hiện nhiều website "kiểu Ajax" như Google Maps, A9.com
và Flickr. (Công nghệ Ajax cho phép tạo nên những ứng dụng web có giao
diện phong phú và có thể truy xuất dữ liệu từ server để cập nhật một phần
nội dung trang web hiện hành mà không phải nạp lại toàn bộ trang như ở
các website truyền thống. Tham khảo bài "Kỹ thuật lập trình Ajax"
- TGVT A 12/2005, tr.124)
Microsoft cũng có những ứng dụng web kiểu Ajax như MSN
Virtual Earth và Start.com. Thật
ra, Microsoft đã tham gia cuộc chơi Ajax khá sớm. Tất cả các thành phần
Ajax - DHTML, JScript và XMLHTTP đã có trong Internet Explorer 5 và Outlook
Web Access đã dùng các kỹ thuật này từ năm 1998. Trước khi Ajax trở nên
phổ biến, Microsoft đã sử dụng kỹ thuật Script Callbacks có phương thức
làm việc tương tự Ajax (nhưng tính năng hạn chế hơn) trong quá trình phát
triển ASP.NET 2.0.
Nắm bắt xu thế Ajax, tại PDC 2005 (Professional Developer
Conference - hội thảo thường niên dành cho các nhà phát triển chuyên nghiệp)
Microsoft đã công bố dự án Atlas đầy tham vọng, hứa hẹn cung cấp một nền
tảng toàn diện hơn và đơn giản hoá việc phát triển ứng dụng web kiểu Ajax.
MỤC TIÊU
Mục tiêu đầu tiên của Atlas nhằm hỗ trợ phát triển phía
máy khách (client), cung cấp các tính năng:
- Thư viện API hướng đối tượng bổ sung cho JavaScript.
- Tương thích trình duyệt tự động (hỗ trợ ứng dụng chạy với nhiều
trình duyệt).
- Thư viện API và các thành phần hỗ trợ tính năng giao diện người
dùng (UI) phong phú.
- Phát triển client kiểu khai báo (XML script) nhằm đơn giản hoá mã
lệnh chương trình.
Mục tiêu thứ hai của Atlas nhằm kết hợp việc phát triển
phía client với việc phát triển phía server. Thay vì chú trọng toàn bộ
chương trình phía client hoặc phía server, Atlas cung cấp hỗ trợ cho cả
hai, cho phép xử lý tác vụ ở nơi có ý nghĩa nhất. Phía máy chủ (server),
ASP.NET có các tính năng sau phục vụ cho ứng dụng Atlas:
- Dịch vụ web có khả năng kết hợp với ứng dụng Atlas.
- Các điều khiển (web server control) sinh mã client cần thiết cho
ứng dụng Atlas.
KIẾN TRÚC
Ở dạng đơn giản nhất, ứng dụng web sử dụng thư viện script
của Atlas phía client gọi một dịch vụ hay ứng dụng trên máy chủ web. Nhưng
với ứng dụng web phức tạp hơn, bạn sẽ phải cần đến thành phần phía server
của Atlas. Không đơn thuần là thư viện Ajax bổ sung cho ASP.NET, Atlas
được thiết kế để trở thành nền tảng phát triển hoàn chỉnh từ client, server
đến truyền thông giữa client và server. Ngoài ra, Atlas còn cung cấp nền
tảng ứng dụng - cho phép nhà phát triển "lắp ráp" các thành
phần có sẵn để tạo ứng dụng.
Thành phần client
Ở phía client, Atlas cung cấp Client Script Framework
có thể xem là mở rộng của JavaScript, hỗ trợ phát triển hướng đối tượng,
tương thích đa trình duyệt, giao tiếp với dịch vụ web và các tính năng
giao diện người dùng phong phú. Microsoft hứa hẹn Atlas Client Script
Framework sẽ làm việc với tất cả trình duyệt và với web server bất kỳ.
Nó không yêu cầu bất kỳ cài đặt nào phía client.
Thư viện script phía client của Atlas là tập các file
JavaScript (.js), gồm các thành phần sau:
- Nhân (Script Core): bổ sung đặc tính hướng đối tượng cho JavaScript
(như lớp, interface, kế thừa, xử lý sự kiện, kiểu dữ liệu...). Đây
là có thể xem là .NET CLR thu nhỏ ở phía client.
- Thư viện lớp cơ bản (Base Class Library): cung cấp các lớp và cấu
trúc cơ bản được dùng trong phát triển .NET Framework (như StringBuilder,
Debug, Event...); cung cấp thư viện API xử lý mã client dạng khai
báo (XML). Lớp này còn cung cấp hỗ trợ XMLHTTP với WebRequest và WebResponse,
cho phép gọi WebMethod ở các file .asmx và .aspx hay dịch vụ web bất
kỳ.
- Lớp mô hình thành phần và khung giao diện (Component Model và UI
Framework): định nghĩa các thành phần, cơ chế liên kết các thành phần
với nhau và các phương thức thực thi. Phần UI Framework xác định các
kiểu thành phần giao diện cùng với hành vi (như kéo-thả).
- Các điều khiển và thành phần (Controls & Components): tập các
thành phần xây dựng sẵn và các điều khiển dùng cho phát triển phía
client như Timer (bộ định thời), Counter (bộ đếm), các điều khiển
form thông thường, điều khiển gắn với dữ liệu (ListView) hay điều
khiển bản đồ (dựa trên Virtual Earth).
- Lớp tương thích trình duyệt (Browser Compatibility): xử lý tương
thích với các trình duyệt (hiện tại, Atlas có thể chạy trên IE, Safari
và Firefox).
Thành phần server
Thành phần server của Atlas được xây dựng trên ASP.NET
2.0, cơ bản gồm các dịch vụ web ASP.NET và các điều khiển server. Các
thành phần server này làm việc kết hợp với thư viện client của Atlas.
- Điều khiển server (Atlas Server Controls): thực hiện sinh mã client
(mã lệnh JavaScript và mã khai báo XML) có những đặc tính Atlas. Các
điều khiển server của Atlas tương tự như các điều khiển server của
ASP.NET, có ích cho người có kinh nghiệm phát triển phía server. Ngoài
các điều khiển thông thường như nút lệnh, ô text, ô chọn, liên kết...
còn có những điều khiển Atlas đặc biệt để xử lý những hành vi ở client
như rê và nhấn chuột... Tất cả những điều khiển này sẽ được tích hợp
vào Visual Studio để cho phép làm việc ở màn hình thiết kế giống như
các điều khiển server của ASP.NET.
- Cầu nối dịch vụ web (Web Services Bridge): cho phép mã client liên
lạc (2 chiều: gửi và nhận dữ liệu) với dịch vụ web kiểu .asmx của
ASP.NET (cũng như WebMethod được định nghĩa trên trang .aspx) và .svc
của Indigo (công nghệ SOA mới nhất dự kiến ra mắt cùng với Windows
Longhorn trong năm 2006) hay dịch vụ web bất kỳ.
- Cầu nối dịch vụ ứng dụng (Application Services Bridge): sử dụng
Web Services Bridge để cung cấp những những dịch vụ ứng dụng ASP.NET
như xác thực hay truy cập và cập nhật dữ liệu.
Thành phần client và server và mã khai báo
Mã khai báo là đặc tính thú vị của Atlas. Điều khiển
server tạo ra mã khai báo và gửi đến client trong định dạng XML. Atlas
Client Framework sẽ phân tích khai báo này để sinh mã lệnh (thể hiện và
hành vi của trang) ngay tại trình duyệt (client) lúc thực thi. Phương
thức này nhằm tránh việc tạo hàng đống mã lệnh JavaScript rồi nhúng vào
trang trước khi gửi đi từ server. Bằng cách thực hiện việc này ở phía
client, kích thước trang có thể giữ khá nhỏ và người phát triển không
cần phải bận tâm đến những đặc trưng của từng trình duyệt ở client.
Microsoft dường như chú trọng đến kiểu lập trình khai
báo này, tuy nhiên bạn vẫn có thể thực hiện kiểu mã lệnh JavaScript trực
tiếp, nhưng lưu ý những tính năng hướng đối tượng hạn chế của JavaScript.
HIỆN THỰC
Atlas vẫn còn trong quá trình phát triển. Microsoft dự
kiến sẽ ra mắt Atlas trong năm 2006 này như là thành phần bổ sung cho
ASP.NET 2.0 và nó sẽ được tích hợp với Visual Studio 2005.
Tuy nhiên, ngay từ bây giờ bạn đã có thể làm quen với
Atlas. Microsoft hiện đã có cung cấp file ASPNETAtlas.vsi để cài đặt dự
án Atlas mẫu (Atlas
Web Site Template) trên Visual
Studio 2005 hay Visual
Web Developer Express. Dự án này có đủ mọi thứ cần thiết cho dự án
web kiểu Atlas, bao gồm thư viện Atlas.
Hiện cũng đã có một số ứng dụng Atlas mẫu, bạn có thể
tham khảo ở webblog của Nikhil Kothari
- kiến trúc sư phần mềm của Microsoft, người đã thuyết trình về Atlas
tại PDC 2005. Bạn cũng có thể dễ dàng tìm thấy nhiều mẫu ứng dụng Atlas
khác trên Internet.
Ngoài ra, hiện cũng có những giải pháp khác cho phép
phát triển ứng dụng kiểu Ajax với ASP.NET 1.0 hay 2.0 như My
Ajax.Net của Jason Diamon và Ajax.NET
của Michael Schwarz.
CLIENT HAY SERVER?? |
Một trong những điểm
mấu chốt của ứng dụng kiểu Ajax đó là giảm thiểu việc truyền thông
giữa client và server. Vấn đề cần cân nhắc là gửi-nhận thông tin
gì và tác vụ nào xử lý ở đâu? Việc này liên quan đến mô hình phát
triển đặt trọng tâm phía server hay client.
Trong mô hình phát triển
đặt trọng tâm phía client, ban đầu server gửi đến client thông
tin khai báo "cách trình bày" cùng "cách thức ứng
xử" của giao diện người dùng. Khai báo giao diện này thực
thi ở client để xử lý hành vi tương tác của người dùng, gửi dữ
liệu đến server và nhận dữ liệu (không phải mã HTML) đáp trả,
và dùng dữ liệu này để sinh thể hiện và nội dung. Server đưa các
tài nguyên khác đến giao diện người dùng thông qua các dịch vụ.
Mô hình này cho phép thực
hiện hiệu quả các tình huống từ tính toán đến dữ liệu động ở client.
Mô hình này cũng cho phép xử lý tức thời những hành vi của người
dùng và có khả năng thực hiện những hiệu ứng thị giác như kéo-thả.
Cái giá của giải pháp này gồm công sức viết mã lệnh client không
nhỏ và việc chuyển luận lý giao diện từ server sang client dẫn
đến yêu cầu xây dựng và học sử dụng các công cụ mới, mô hình thiết
kế mới...
Trong mô hình phát triển
đặt trọng tâm phía server, server sẽ gửi mã HTML đến client thay
vì dữ liệu thuần tuý. Việc xử lý phía client đơn giản hơn nhiều,
chủ yếu chịu trách nhiệm gửi yêu cầu rồi nhận mã HTML đáp trả
và đặt vào đúng chỗ trong trang. Hầu hết việc xử lý tương tác
và giao diện đều nằm ở server.
Trong khi một số người
thích "đường lối" mới, nhưng một số người khác lại thích
mô hình phát triển phía server quen thuộc. Có những tính năng
bạn vẫn có thể thực hiện theo mô hình phát triển truyền thống,
nhưng những tính năng như tương tác giao diện người dùng phải
cần đến nền tảng phát triển kiểu Atlas - cho phép cân đối giữa
mô hình client phong phú với mô hình phía server hiện hữu. |
Tham khảo:
Phương Uyên
(theo PC World VN) |