II. Hệ quản trị cơ sở dữ liệu xây dựng hệ thống
2. Ưu điểm và khuyết điểm ASP: Ưu điểm :
Ưu điểm :
ASP bổ sung cho các công nghệ đã có từ trước như CGI (Common Gateway Interface), Giúp người dùng xây dụng các ứng dụng web với những tính năng sinh động. Tuy nhiên, khác với CGI, các trang ASP không cần phải hợp dịch.
Dễ dàng tương thích với các công nghệ của MicroSoft. ASP sử dụng ActiveX Data Object (ADO) để thao tác với cơ sở dữ liệu hết sức tiện lợi.
Với những gì ASP cung cấp, các nhà phát triển ứng dụng web dễ dàng tiếp cận công nghệ này và nhanh chóng tạo ra các sản phẩm có giá trị. Điều này hết sức có ý nghĩa trong điều kiện phát triển như vũ bảo của tin học ngày nay. Nó góp phần tạo nên một đội ngũ lập trình web lớn mạnh.
ASP có tính năng mở. Nó cho phép các nhà lập trình xây dựng các component và đăng ký sử dụng dễ dàng. Hay nói cách khác ASP có tính năng COM(Component Object Model)
Khuyết điểm :
ASP chỉ chạy và tương thích trên môi trường Window điều này làm ASP bị hạn chế rất nhiều.
Dùng ASP chúng ta sẽ gặp không ít khó khăn trong việc can thiệp sâu vào hệ thống như các ứng dụng CGI.
ASP không được sự hổ trợ nhiều từ các hãng thứ ba.
Các ứng dụng ASP chạy chậm hơn công nghệ Java Servlet.
Tính bảo mật thấp. Không giống như CGI hay Java servlet, các mã ASP đều có thể đọc được nếu người dùng có quyền truy cập vào web server. Có lẽ đây là lý do quan trọng nhất để người dùng không chọn công nghệ ASP.
Các đối tượng Built-in trong ASP 1. Application Object
Đối tượng Application dùng chia sẻ thông tin cho mọi người dùng. Bởi vì thông tin trong đối tượng application được dùng chung cho mọi người dùng nên nó cần một phương thức để bảo đảm tính thống nhất của dữ liệu.
Những vấn đề cần quan tâm khi sử dụng đối tượng application:
Contents: Chứa tất cả những item mà chúng ta thiết lập trong đối tượng application mà không dùng tag <OBJECT>.
Cú Pháp :
Application.Contents( Key )
Key : tên của property cần nhận về
Ví dụ: Chúng ta có thể dùng vòng lặp để nhận tất cả item trong application
<%
Dim AppItem
For Each AppItem in Application.Contents Response.write(ApplicationItem & " : " & Application.Contents(AppItem) & "<BR>") Next
%>
Lock: phương thức lock ngăn chặn các client khác thay đổi giá trị của biến dùng chung trong đối tượng applicaton. Nếu phương thức UnLock không được gọi thì server tự động thực hiện lệnh này khi xử lý xong các script hoặc time out.
Cú pháp: Application.Lock
UnLock: phương thức UnLock cho phép client thay đổi giá trị của các biến lưu trong đối tượng application đã bị lock trước kia.
Cú pháp: Application.UnLock
Application.Lock
Application("NumVisits") = Application("NumVisits") + 1 Application.Unlock
%>
Application_OnStart: sự kiện này xảy ra khi trước khi session đầu tiên được tạo, nghĩa là nó xảy ra trước sự kiện Sesion_OnStart. Trong sự kiện này chỉ tồn tại đối tượng application và session.
Application_OnEnd: sự kiện Application_OnEnd xuất hiện khi thoát ứng dụng. Nó xảy ra sau sự kiện Session_OnEnd. Trong sự kiện này chỉ tồn tại đối tượng application và session.
Cả phương thức Application_OnStart và Application_OnEnd phải được đặt trong tập tin Global.asa
Cú pháp :
<SCRIPT LANGUAGE=ScriptLanguage RUNAT=Server> Sub Session_OnEnd . . . End Sub Sub Session_OnStart . . . End Sub </SCRIPT> 2. Session
Session là đối tượng được web server tự động tạo khi một trang web đầu tiên trong ứng dụng được người dùng gọi. Session rất tiện lợi cho người phát triển
session sẽ tồn tại cho đến khi session bị hủy hoặc hết hiệu lực(time out). Khi muốn lưu item trong đối tượng session thì phải yêu cầu người dùng cho phép lưu cookies(enable cookies) trong trình duyệt web.
Cú pháp : Session.collection | property | method
Những vấn đề cần quan tâm khi sử dụng đối tượng session:
Contents: Chứa tất cả những item mà chúng ta thiết lập cho đối tượng session mà không dùng tag <OBJECT>.
Cú Pháp :
Session.Contents( Key )
Key : tên của property cần nhận về
Ví dụ: Chúng ta có thể dùng vòng lặp để nhận tất cả item trong Session
<%
Dim sessionItem
For Each sessionItem in Session.Contents Response.write(sessionItem & " : " & Session.Contents(sessionItem) & "<BR>") Next
%>
SessionID: Là một con số kiểu long được phát sinh bởi web server khi session được tạo. Mỗi người dùng sẽ có một sessionID không giống nhau. Khi web server bị stop và start trở lại thì những sessionID do web server phát sinh lần sau có thể sẽ trùng với lần trước đó. Do đó chúng ta không thể dùng ID để tạo khóa chính cho một ứng dụng cơ sở dữ liệu.
Cú pháp: Session.SessionID
Timeout: Thời gian mà đối tượng Session còn tồn tại. Giá trị này được tính bằng phút . Nếu người dùng không refresh hoặc yêu cầu một trang web của ứng dụng trong khoảng thời gian lớn hơn thời gian timeout thì session sẽ kết thúc. Giá trị mặc định là 20 phút
Cú pháp: Session.Timeout [ = nMinutes]
Abandon: Dùng để hủy đối tượng Session và giải phóng tài nguyên. Web server sẽ tự thực hiện phương thức này khi session hết hiệu lực(time out). Khi abandon được gọi, những đối tượng chứa trong session hiện hành sẽ được sắp trong một hàng đợi chờ xóa. Server sẽ xử lý tất cả các script và sau đó xóa các dối tượng trong hàng đợi này. Cú pháp: Session.Abandon Ví dụ: <% Se sesion.Abandon Session("MyName") = "Mary" Reponse.Write(Session("MyName")) %>
Ở trang này thì biến Myname vẫn còn tồn tại và sẽ bị hủy khi các lệnh script thực hiện xong.
Session_OnStart: sự kiện này xảy ra khi server tạo một Session. Server sử lý script này khi thực thi yêu cầu một trang. Sesion_OnStart
là nơi thuận lợi cho chúng ta thiết lập các biến bởi vì nó sẽ được gọi trước khimột trang được thực thi. Các đối tượng built_ in tồn tại trong sự kiện này là: Application, ObjectContext, Request, Response, Server
Session_OnEnd: sự kiện này xảy ra khi session bị hủy bởi lệnh Abandom hoặc timeout. Trong sự kiện này chỉ có các đối tượng built_in: Application, Server, Session của ASP là tồn tại.
Cả phương thức Session_OnStart và Session_OnEnd phải được đặt trong tập tin Global.asa
Cú pháp :
<SCRIPT LANGUAGE=ScriptLanguage RUNAT=Server>
Sub Session_OnEnd . . . End Sub Sub Session_OnStart . . . End Sub </SCRIPT> 3. ObjectContext Object
Đối tượng này được sử dụng cho các thao tác transaction. ObjectContext được điều khiển bởi phần mềm quản lý giao tác Microsoft Transaction Server (MTS). Khi một trang ASP chứa chỉ thị @TRANSACTION, trang này sẽ được thực hiện trong một transaction và chỉ chấm dứt xử lý khi tất cả các giao tác thực hiện xong.
Cú pháp: ObjectContext.Method
Method:
Phương thức SetComplete bỏ qua bất kỳ lệnh SetAbort đã được gọi trước đo
Cú pháp:
ObjectContext.SetComplete
SetAbort: Phương thức này khai báo tất cả các thao tác được thực hiện trong transaction sẽ không được hoàn thành và tàinguyên có thể sẽ không được cập nhật.
Cú pháp:
ObjectContext.SetAbort
OnTransactionCommit: sự kiện này xảy ra sau khi tất cả các script giao tác kết thúc. web server(IIS) sẻ xử lý hàm OnTransactionCommit nếu nó tồn tại.
OnTransactionAbort: Tương tự như sự kiện OnTransactionCommit