PDA

View Full Version : ASP & lập trình máy chủ



ngayxua
12-01-2007, 09:13 AM
ASP & lập trình máy chủ

Mạng máy tính ngày nay đã trở thành một thành phần quan trọng trong ngành truyền thông và cuộc sống hàng ngày. Song song với việc phát triển của mạng là sự phát triển của một h­ớng mới trong lập trình. đó là lập trình mạng. Sự bùng nổ thông tin trên toàn càu, sự ra đời của Web đặt ra yêu cầu phải xử lý thông tin một cách nhanh chóng, chính xác giữa các Web server với client.

Để giải quyết vấn đề này, một trong những công cụ lập trình máy chủ phổ biến hiện nay là ASP. Bài viết không đi vào chi tiết các thủ thuật lập trình mà cung cấp cho bạn đọc một cái nhìn tổng quát, nguyên lý về ASP cũng nh­ sẽ so sánh nó với một số ngôn ngữ lập trình máy chủ khác nh­ Perl, CGL, Rexx, Python.

ASP là gì ?

Microsoft Active Server Pages (ASP) không hẳn là một ngôn ngữ lập trình, Microsoft gọi nó là môi tr­ờng server-side scripting, môi tr­ờng này cho phép tạo và chạy các các ứng dụng Web server động, t­ơng tác và có hiệu quả cao. Để làm việc trong môi tr­ờng này, các ASP coder th­ờng sử dụng VBScript hoặc JavaScript, cả hai loại này đều tự động hỗ trợ ASP.

Trong các HTML, mỗi tag đ­ợc bắt đầu và kết thúc bởi cặp "< />" , ASP cũng t­ơng tự nh­ vậy. Để đánh dấu nơi nào ASP script bắt đầu và kết thúc dùng cặp lệnh "<% %>".

Các đoạn ASP script có thể xuất hiện ở mọi nơi trong trang HTML, ASP & HTML có sự gắn bó chặt chẽ với nhau. Với ASP ta có thể chen các script thực thi đ­ợc vào trực tiếp các file HTML. Khi đó việc tạo ra trang HTML và xử lý script trở nên đồng thời, điều này cho phép tạo ra các t­ơng tác của Websife một cách linh hoạt uyển chuyển, có thể chen các thành phần HTML động vào trang Web tuỳ vào từng tr­ờng hợp cụ thể.

VBScript là ngôn ngữ mặc định của ASP nếu muốn sử dụng một ngôn ngữ khác thì chúng ta cần phải định nghĩa ngôn ngữ. Tại đầu trang thêm dòng : <%@LANGUAGE=tên ngôn ngữ%>

VBScript dễ học và rất tiện lợi nếu chúng ta đã học qua VB, các ví dụ trong bài báo này đều viết bằng VBScript. Các ASP script đ­ợc viết và đặt trong các file có phần mở rộng là ".asp". Khi cho script chạy, ví dụ nh­: http://msdn.microsoft.com/default.asl) thì mọi quá trình xử lý của file default.asp sẽ diễn ra trên server thay vì chạy ở client, Web server sẽ làm mọi công việc cần thiết để tạo ra một trang kết quả dạng HTML, nh­ thế không cần phải bận tâm rằng các Web browser có thể xử lý trang Web hay không vì server đã làm mọi việc.

Các tính chất và ­u điểm của ASP

Các ASP script thông th­ờng chỉ chạy trên các server cài IIS (Microsoft Internet Information Server). Quy trình nh­ sau: khi một user thông qua trình duyệt Web gửi yêu cầu tới một file .asp ở server thì script chứa trong file đó sẽ đ­ợc chạy trên server và trả kết quả về cho browser đó. Khi Web server nhận đ­ợc yêu cầu tới một file .asp thì nó sẽ đọc từ đầu tới cuối file .asp đó, thực hiện các lệnh script trong đó và trả kết quả về cho Web blowser là một trang HTML. Do môi tr­ờng hoạt động là mạng nên một script ASP khi đ­ợc viết ra có thể sử dụng đ­ợc ở mọi nơi, không cần trình biên dịch hay kết nối . Các ASP script đ­ợc viết dựa trên các ngôn ngữ h­ớng đối t­ợng nên rất tiện lợi, sẵn có các object đi kèm nh­: Request, Response, Application, Server, Session. Tận dụng đ­ợc các ActiveX components nh­ : Database access , Content linking, Collaboration Data Object, Browser capabilities, File Access, ... Hơn nữa nó cũng có thể tận dụng đ­ợc components từ các nhà phân phối khác, cung cấp d­ới dạng các file .dll

Những tính chất trên đem đến cho ta những lợi ích xác thực, cho phép tạo ra các ứng dụng Web th­ơng mại có t­ơng tác chứ không chỉ đơn thuần là phổ biến các nội dung tĩnh. Ví dụ nh­ để l­u giữ lại thông tin về các khách hàng đã ghé thăm qua web site của mình, các web builder có thể dùng ASP để tạo ra các file cơ sở dữ liệu khách hàng l­u trên máy chủ, khi cần có thể tiện tra cứu.

Các Objects & Components cơ bản

Object là những đoạn ch­ơng trình có khả năng thực hiện những công việc cơ bản nào đó. Mỗi object là một kết hợp giữa lập trình và dữ liệu mà có thể xử lý nh­ một đơn vị thống nhất. Các ASP object cho phép chúng ta giao tiếp t­ơng tác với cả máy chủ lẫn trình duyệt, thông th­ờng chúng ta dùng vài object trong các scripts. Các objecl này đã sẵn có nên ta chỉ cần nhớ cách sử dụng chúng

Reqllest Object

Request object cho phép lấy thông tin thông qua một HTTP request. Chúng ta có thể dùng Request object để đọc URL, truy cập thông tin từ một form, đọc cookies và các HTTP header.

Response object

Response object là chìa khóa để gửi thông tin tới user, là đại diện cho phần thông tin do server trả về cho Web browser. Chúng ta có thể viết lên màn hình, tái định h­ớng các trang, tạo các cookies sử dụng Response object.

Application Object

Sử dụng Application object chúng ta có thể điều khiển các đặc tính liên quan đến việc khởi động và dùng ứng dụng, cũng nh­ việc l­u trữ các thông tin có thể đ­ợc truy nhập bởi các ứng dụng nói chung.

Server Object

Server object cho phép thực thi một chuỗi các tác vụ chẳng hạn nh­ ánh xạ một đ­ờng dẫn ảo tới một đ­ờng dẫn vật lý và tạo một instance của một component.

Session obiect

Sử dụng object này chúng ta có thể l­n thông tin liên quan tới từng user đã truy nhập vào site của bạn.

Khác với các object, các ASP components là các điều khiển ActiveX ghép nối với ASP để đơn giản hoá các thủ tục thông th­ờng. Chúng ta sẽ l­ớt qua số components th­ờng đ­ợc sử dụng.

Browser Capabilities

Component này cho phép xác định trình duyệt của user là gì và những tính năng nào đ­ợc hỗ trợ bởi trình duyệt đó. Collaboration Data Objects (CDO) CDO đ­ợc liên kết chặt chẽ với IIS SMTP server; CDO hỗ trợ chúng ta gửi và nhận email. Ví dụ với CDO chúng ta có thể xử lý một form mà không cần nhận biết đó là Perl script hay CGI.

Database Access

Một trong những tài sản lớn nhất mà ASP có đ­ợc là khả nàng thâm nhập vào các cơ sở dữ liệu. ASP th­ờng làm việc với hai ng­ời bạn đồng nghiệp là Access và hệ cơ sở dữ liệu SQL. Component rất hữu ích giúp chúng ta có thể kết nối vào một cơ sở dữ liệu bằng cách sử dụng ActiveX Data Object để viết nội dung lên màn hình trình duyệt và tạo lập hoặc cập nhật các file cơ sở dữ liệu.

File Access

File Access component chứa đựng các ph­ơng thức và thuộc tính có thể sử dụng để truy cập vào các file trên máy tính. Thông qua component này ta tạo ra một object là FileSystemObject giúp ta thực hiện một số công việc nh­ tạo, đọc file,... Ngoài ra còn có những components đ­ợc cung cấp miễn phí hoặc phải mua từ các nhà phân phối khác nh­ :

Microsoft Aspcomponent Catalog (http://msdn.microsoft.com/workshop/server/components/catalog.asp)

ASP Central (http://www.aspcentral.com/ac/)

Active Server Pages.Com (http://www.activeserverpages.com/components/toc.asp )

Một ví dụ về ASP script

Các phần trên đã giúp bạn có một nhìn nhận cơ bản, mục này sẽ đ­a ra một ví dụ đơn giản để hình dung rõ hơn cách viết mã lệnh và th­ởng thức h­ơng vị sức mạnh của ASP. Một điều cần l­u ý là để test ch­ơng trình chúng ta cần phải cài bộ IIS (Internet Information Server) hoặc bộ PWS ( Personal Web Server), sau đó máy tính của chúng ta sẽ trở thành một local server. Hoặc chúng ta upload các file test lên một server nào đó cho phép chạy các asp script. Trong hai bộ này đều có phần trợ giúp h­óng dẫn ta về các hàm và lệnh, nếu các hàm trong ví dụ này bạn ch­a nắm đ­ợc thì có thể tra cứu trong đó.

Có một điều gây khó khăn cho chúng ta khi muốn tìm kiếm các mã lệnh ASP đó là khi truy nhập vào một site dùng ASP (ví dụ http://msdn.microsoft.com/default.asp) chúng ta không thể xem mã nguồn đ­ợc. Sự thực những thông tin bạn xem trên browser đã đ­ợc default.asp xử lý và trả về mã html. Một ví dụ khác, nếu bạn thêm dòng <% Response.Write "Đây là"&strname %> vào trang Web của bạn (giả sử strname đ­ợc gán bằng "TinHọc&ĐờiSống") thì khi chạy và xem mã nguồn bạn sẽ thấy dòng: Đây là TinHọc&ĐờiSống .

Còn bây giờ chúng ta hãy mở một trình soạn thảo nào đó, Notepad chẳng hạn và viết những mã lệnh sau:

<HTML>

<HEAD>

<TITLE>Ví dụ 1 về ASP script</TITLE>

</HEAD>

<BODY>

<% Response.Write "Chào bạn" %>

<BR> Bây giờ là<%= Time %>

</BODY>

<?HTML>

Sau khi viết xong ghi file ày tên là vd1.asp và chạy, trên màn hình browser sẽ xuất hiện dòng "Chào bạn - Bây giờ là...". Trong ví dụ này ta dùng object Response và hàm Time của VBScript để đ­a thông tin ra màn hình của user. Chúng ta có thể thấy rõ là asp đã đ­ợc xử lý trên server một cách dễ dàng bằng cách chỉnh lại đồng hồ máy tính của bạn và chạy lại script trên thì vẫn báo giờ chuẩn vì giờ ở đây lấy ở máy chủ chứ không lấy giờ ở máy client. Ví dụ trên chỉ là một minh hoạ rất thô sơ cho ASP, bạn có thể viết các ch­ơng trình khác phức tạp hơn nhiều.

Những bàn luận khác về ASP

Phần này chúng ta sẽ so sánh ASP với một số ngôn ngữ lập trình máy chủ khác nh­ CGI, Perl, Python,... Theo quan điểm cá nhân thì tôi thích ASP vì rất dễ học, mã lệnh t­ơng tự nh­ VisualBasic, đễ thực hành thí nghiệm. So với học Perl thì chúng ta mất ít thời gian hơn nhiều để học ASP. Có nhiều chuyên gia cho rằng ASP có độ bảo mật kém hơn CGI, theo tôi có thể lý giải điều này là do ASP chạy trên các server với hệ điều hành mạng của Microsoft, mà Microsoft vẫn có tiền lệ là tính bảo mật hệ thống kém, không thể bì đ­ợc với UNIX. Nh­ng mặt khác, ASP lại có tính năng truy cập cơ sở dữ liệu tuyệt vời, nhất là đối với các SQL server, nếu so với CGI thì ASP hơn hẳn mặt này.

Kết:

Trong phạm vi một bài báo không thể nêu đầy đủ mọi mặt của một hệ thống nh­ ASP, hy vọng bài viết sẽ giúp các bạn mới tìm hiểu biết thêm nhiều điều. D­ới đây là một số tài liệu tham khảo rất hay về ASP mà các bạn có thể tìm đọc

1. MSDN Library / Active Server Pages & VisualBasic Scripting

2. http://www.developer.com/

3. http://www.activeerverpages.com/

4. http://www.zdnet.com/developer


Theo Tạp chí Tin học & Đời sống

hrockvn
12-01-2007, 12:21 PM
Hừm, ASP cũng có khá nhiều nhược điểm chết người. Hik, học ASP người ta bảo dễ hơn, em thấy khó hơn. Bên cạnh đó, giá thuê server ASP bao giờ cũng đắt hơn. Không chơi đồ này. Mà tốc độ nếu cũng phải trả xiền thế, JSP nhanh hơn nhiều.

hijack
12-01-2007, 10:14 PM
Nói về tốc độ thì có lẽ PHP là nhanh nhất, lại dễ học vì nó rất giống C. Còn JSP thì khó hơn lại chưa được phổ dụng lắm. Chỉ thích hợp với những tay chuyên nghiệp thui

Pisces
12-01-2007, 11:12 PM
Đúng là ASP chỉ học để biết thôi chứ tính ứng dụng thực tiễn thì ko thể bằng đc những cái khác.

hrockvn
13-01-2007, 03:05 PM
Đúng là ASP chỉ học để biết thôi chứ tính ứng dụng thực tiễn thì ko thể bằng đc những cái khác.

Chết chết, rứa là sai lầm rồi, mỗi cái có thế mạnh riêng và áp dụng trên từng nền tảng cụ thể của nó nên không thể nhận xét như của cậu đc

Pisces
14-01-2007, 04:36 AM
Thế mạnh gì đi nữa nhưng hai cái quan trọng nhất là tốc độ và giá thành thì lại là nhược điểm của ASP. Mà trong môi trường mạng và giới IT thì yếu về cái đó là chết. Bác thấy có đc mấy trang web dùng .asp ko? Hầu hết đều là .php, .aspx, .asp em mới chỉ thấy trong các đồ án của SV CNTT là hết :-@, thực tiễn chả thấy đâu.

haidh
15-01-2007, 09:02 PM
Mời ghé thăm: http://www.haui.edu.vn (http://www.haui.edu.vn) <=đây là thực tiễn.
Và sắp tới nhóm chúng tôi sẽ thực hiện một số đề tài khác.
ASP giờ thì không phổ dụng.
PHP phổ biến hơn vì nhanh,lại là Open Source nữa!
ASP.NET thì cực nhanh,cũng rất dế học. Tôi dùng thử bộ .NET Framework thấy không thể nào thân thiện và thao tác dễ dàng hơn !:d

Pisces
16-01-2007, 01:39 AM
Mời ghé thăm: http://www.haui.edu.vn (http://www.haui.edu.vn) <=đây là thực tiễn.
AspX.... ^__^"

Aspx là ASP trên môi trường .Net rồi, đâu còn là pure ASP nữa đâu. Cái này thì tất nhiên là mạnh hơn rồi.
Công nghệ mới hơn mà lại.

hrockvn
16-01-2007, 08:14 AM
Chuẩn. Với .NET, chỉ cần kéo và thả theo đúng nghĩa, phần còn lại là thiết kế giao diện cho soft thôi, không cần làm nhiều, máy nó làm hết rồi còn gì đâu.