ASP.NET sử dụng .NET Framework, .NET Framework là sự tổng hợp tất các các kỷ thuật cần thiết cho việc xây dựng một ứng dụng nền desktop, ứng dụng web, web services...
ASP.NET là một nền tảng ứng dụng web (web application framework) được phát triển và cung cấp bởi Microsoft, cho phép những người lập trình tạo ra những trang web động, những ứng dụng web và những dịch vụ web. Lần đầu tiên được đưa ra thị trường vào tháng 2 năm 2002 cùng với phiên bản 1.0 của .NET framework, là công nghệ nối tiếp của Microsoft's Active Server Pages(ASP). ASP.NET được biên dịch dưới dạng Common Language Runtime (CLR), cho phép những người lập trình viết mã ASP.NET với bất kỳ ngôn ngữ nào được hỗ trợ bởi .NET language.
Trong nhiều năm qua, ASP đã được cho rằng đó thực sự là một lựa chọn hàng đầu cho web developers trong việc xây dựng những web sites trên nền máy chủ web Windows bởi nó vừa linh hoạt mà lại đầy sức mạnh. Đầu năm 2002, Microsoft đã cho ra đời một công nghệ mới đó chính là ASP.NET. Đây thực sự là một bước nhảy vượt bậc của ASP cả về phương diện tinh tế lẫn hiệu quả cho các developers. Nó tiếp tục cung cấp khả năng linh động về mặt hỗ trợ ngôn ngữ, nhưng hơn hẳn về mặt lĩnh vực ngôn ngữ script vốn đã trở nên hoàn thiện và trở thành ngôn ngữ cơ bản của các developers. Việc phát triển trong ASP.NET không chỉ yêu cầu hiểu biết về HTML và thiết kế web mà còn khả năng nắm bắt những khái niệm của lập trình và phát triển hướng đối tượng.
Tuy mang họ tên gần giống như ASP cổ điển nhưng ASP.NET không phải là ASP. Ta sơ lược ở đây vài khác biệt giữa ASP.NET và ASP để bạn có khái niệm tổng quát và sẽ trình bày thêm chi tiết khi đào sâu vào từng điểm đặc trưng (features) của ASP.NET.
KHÁC BIỆT GIỮA ASP.NET VÀ ASP
ASP.NET được phác thảo (re-design) lại từ số không, nó được thay đổi tận gốc rễ và phát triển (develop) phù hợp với yêu cầu hiện nay cũng như vạch một hướng đi vững chắc cho tương lai Tin Học. Lý do chính là Microsoft đã quá chán nãn trong việc thêm thắt và kết hợp các công dụng mới vào các kiểu mẫu lập trình hay thiết kế mạng theo kiểu cổ điển nên Microsoft nghĩ rằng tốt nhất là làm lại một kiểu mẫu hoàn toàn mới thay vì vá víu chổ này chổ nọ vào ASP. Ðó là chưa kể đến nhiều phát minh mới ra đời sau này dựa trên các khái niệm mới mẽ theo xu hướng phát triển hiện nay của công nghệ Tin Học (Information Technology) cần được đưa vào kiểu mẫu phát triển mới đó. Nhờ vậy, ta mới có thể tạm nói ASP.NET không phải là ASP. Thật vậy , ASP.NET cung cấp một phương pháp hoàn toàn khác biệt với phương pháp của ASP.
Mặc dù ASP.NET và ASP khác biệt nhau nhưng chúng có thể hoạt động vui vẽ hài hoà với nhau trong Web Server (operate side-by-side). Do đó, khi cài ASP.NET engine, chúng ta không cần lập trình lại các ứng dụng hiện có dưới dạng ASP của tuy rằng, nếu muốn, bạn có thể làm điều đó rất dễ dàng.
SỰ THAY ÐỔI CƠ BẢN ASP đã và đang thi hành sứ mạng được giao cho nó để phát triển mạng một cách tốt đẹp như vậy thì tại sao ta cần phải đổi mới hoàn toàn?
Lý do đơn giản là ASP không còn đáp ứng đủ nhu cầu hiện nay trong lãnh vực phát triển mạng của công nghệ Tin Học. ASP được thiết kế riêng biệt và nằm ở tầng phiá trên hệ điều hànhWindows và InternetInformation Server, do đó các công dụng của nó hết sức rời rạt và giới hạn.
Trong khi đó, ASP.NET là một cơ cấu trong các cơ cấu của hệ điều hành Windows dưới dạng nền hay khung .NET (.NET framework), như vậy ASP.NET không những có thể dùng các object của các ứng dụng cũ mà còn có thể sử dụng tất cả mọi tài nguyên mà Windows có.
Ta có thể tóm tắt đại khái sự thay đổi như sau:
- Tập tin của ASP.NET (ASP.NET file) có extension là .ASPX, còn tập tin của ASP là .ASP.
- Tập tin của ASP.NET (ASP.NET file) được phân tích ngữ pháp (parsed) bởi XSPISAPI.DLL, còn tập tin của ASP được phân tích bởi ASP.DLL.
- ASP.NET là kiểu mẫu lập trình phát động bằng sự kiện (event driven), còn các trang ASP được thi hành theo thứ tự tuần tự từ trên xuống dưới.
- ASP.NET xử dụng trình biên dịch (compiled code) nên rất nhanh, còn ASP dùng trình thông dịch (interpreted code) do đó hiệu suất và tốc độ phát triển cũng thua sút hẳn.
- ASP.NET yểm trợ gần 25 ngôn ngữ lập trình mới với .NET và chạy trong môi trường biên dịch (compiled environment), còn ASP chỉ chấp nhận VBScript và JavaScript nên ASP chỉ là một scripted language trong môi trường thông dịch(in the interpreter environment). Không những vậy, ASP.NET còn kết hợp nhuần nhuyễn với XML (Extensible Markup Language) để chuyển vận các thông tin (information) qua mạng.
ASP.NET yểm trợ tất cả các browser và quan trọng hơn nữa là yểm trợ các thiết bị lưu động (mobile devices). Chính các thiết bị lưu động, mà mỗi ngày càng phổ biến, đã khiến việc dùng ASP tron gviệc phát triển mạng nhằm vươn tới thị trường mới đó trở nên vô cùng khó khăn.
PHƯƠNG PHÁP LÀM VIỆC TRONG MẠNG Internet đã và đang đem lại nhiều điều kỳ diệu cho đời sống của ta. Thật vậy, nó có khả năng 'nối vòng tay lớn' mọi người trên thế giới tưởng chừng như cách biệt xa xôi ngàn dặm bổng dưng lại gần trong gang tất, kỹ thuật này đã mang lại biết bao nhiêu điều mới mẽ đến cho ta tỷ như e-mail, instant messaging hay World Wide Web (hay gọi tắc là WWW hay Web hay mạng) làm việc thông tin liên lạc trở nên dễ dàng, do đó con người cùng đời sống cũng thay đổi nhanh chóng như 'cuốn theo chiều gió' vậy.
Từ khởi đầu, việc phát triển 1 mạng hết sức là đơn giản, chỉ cần một hay vài trang trong đó ta muốn chia sẽ bất cứ thông tin gì ta thích là chắc chắn cũng có người ghé qua thăm viếng. Tuy vậy, các trang trong thời kỳ khởi nguyên của mạng rất thụ động, nó không cho phép khách vãng lai trao đổi thông tin một cách hổ tương (interact) với ta, nghĩa là thăm thì có thăm nhưng không hỏi hay chia sẽ được gì với nhau.
Dần dà, mạng phát triển thêm nhiều công dụng khác nhau gắn thêm vào nào là hình ảnh, nào là tables, forms và cuối cùng có thể trao đổi thông tin hay tâm tình với khách vãng lai qua các ứng dụng như guestbook, thăm dò ý kiến (user, customer hoặc là client poll) hay các diễn đàn với mọi tiết mục trên trời dưới đất. Sau đó, các chuyên gia phát triển mạng lại thêm thắt và trang điểm cho mạng của mình càng lúc càng đặc sắc hơn, cùng muôn mầu muôn vẽ.
Tất cả những cố gắng đó đã đem tác động hổ tương đến giữa Web Master (hay nhóm quản lý mạng) và khách vãng lai như ta được chứng kiến hiện nay, tuy vậy vẫn còn thiếu hẳn 1 phần quan trọng nhất là phần nội dung cơ động tuỳ biến (dynamic content). Do đó vai trò của phương pháp dịch vụ (server processing) được phát triển để có thể trình bày nội dung được lưu trữ trong các cơ sở dữ liệu (database) tuỳ theo yêu cầu riêng biệt cho từng cá nhân.
KIỂU MẪU RESQUEST/RESPONSE Kiểu mẫu này chính là toàn bộ phương pháp làm việc theo kiểu Client /Server hiện dùng với ASP.
Từ mới:
Client/Server - Một trường hợp đơn giản nhất là sự trao đổi thông tin giữa 2 máy vi tính để hoàn thành 1 công việc nào đó, trong đó máy server cung cấp dịch vụ theo yêu cầu của 1 máy khách hành (Client PC).
Thường thường, Server là máy vi tính lưu trữ thông tin về mạng trong đó có hình ảnh, video, những trang HTML hay ASP và Client là máy vi tính được dùng dể viếng thăm mạng. Một cách tổng quát phương pháp này gồm có 4 bước như sau:
1. Client (thông qua Internet Browser) xác định vị trí của Web Server qua 1 nối URL (Universal Resource Locator).
2. Client sẽ yêu cầu được tham khảo 1 trang trong mạng đó và thường thường là trang chủ (home page) như index.htm hay default.htm
3.Server đáp ứng bằng cách hoàn trả hồ sơ mà Client đã yêu cầu trước đây
4.Client nhận được hồ sơ gởi về và hiển thị (display) trong browser của mình
KIỂU MẪU EVENT-DRIVEN
Kiểu mẫu event-driven này dùng với ASP.NET cũng tương tợ như là kiểu mẫu event-driven mà ta vẫn thường dùng trong khi lập trình các ứng dụng với Visual Basic 6.
Trong kiểu mẫu này, Server sẽ không ngồi chơi xơi nước chờ Client yêu cầu tham khảo 1 trang nào đó trong mạng mà Server đã bố trí và kế hoạch sẵn trước tất cả mọi tình huống để có thể hành động kịp thời mỗi khi Client quyết định làm 1 điều gì đó. Ta gọi đó là 'response to your action', còn trong kiểu mẫu trước là 'response to your request', như vậy ASP.NET có thể phát hiện ra các hành động của Client để phản ứng cho thích hợp.
Ðọc tới đây chắc bạn sẽ hỏi lại ngay rằng: 'Ủa, nhưng mà làm sao một Server nào đó, có thể ở tận đâu đâu bên kia địa cầu, lại biết được là ta đang gõ vài mẫu tự trong một hộp chữ hay là đang nhấp mũi chuột (click) vào button trong phần Guestbook hay Forum
À, sở dỉ Server có thể làm được 'chuyện khó tin nhưng có thiệt đó' là dựa vào tiến trình xử lý linh động ở Client (gọi là clever client-side processing) để thực hiện kiểu mẫu event-driven này của mình. Tiến trình xử lý ở Client xảy ra khi ta bố trí nguồn mã thích hợp mà Client có thể hiểu được trong các trang ta gởi về cho Client. Lưu ý là mặc dù các trang mạng (web page) ta đều chứa ở Server nhưng nguồn mã lại có thể được thực hiện và xử lý, hoặc ở Server hoặc ở Client (Server-Side processing và Client-Side processing) tuỳ theo cách ta bố trí. Thật vậy, ASP.NET không thể nào biết được chuyện gì sẽ xãy ra ở máy vi tính của bạn (Client PC) nhưng cũng nhờ vào tiến trình xử lý linh động ở Client mà Server có thể tiến hành kiểu mẫu phát triển mạng mới theo phương pháp event-driven.
Chúng ta có thể chạy nguồn mã ở 2 chỗ khác nhau: hoặc là chạy ở Server (gọi là Server-side) hoặc là chạy ở Client (Client-side) và các nguồn mã ở 2 chỗ này hoàn toàn khác biệt và không có tác động hổ tương với nhau (no interact with each other). Ðiều đó có nghĩa là máy Client sẽ chịu trách nhiệm thi hành các nguồn mã được lập trình dành cho mình cũng như máy Server chỉ chạy các nguồn mã dành cho Server. Thông tin hay nội dung cần thiết ở Server sẽ được chuyển sang dạng HTML đơn giản (plain HTML) trước khi gởi đến cho Client, thường thì nguồn mã dành cho Client cũng được chuyển đi dưới dạng 'plain text command' để thực hiện các hiệu ứng năng động (dynamic effect) ở máy Client, tỷ như thay đổi hình ảnh (image rollover) hay hiển thị một thông điệp (message box).
ASP.NET sẽ dùng các ngôn ngữ mới có trình biên dịch (compiled languages) như C# hay VB.NET để soạn các nguồn mã trong các trang Web ở Server.
ASP.NET là một kỹ thuật phía server (server-side) dành cho việc thiết kế các ứng dụng web trên môi trường .NET.
ASP.NET là một kỹ thuật server-side. Hầu hết những web designers bắt đầu sự nghiệp của họ bằng việc học các kỷ thuật client-side như HTML, JavaScript và Cascading Style Sheets (CSS). Khi một trình duyệt web yêu cầu một trang web được tạo ra bởi các kỷ thuật client-side, web server đơn giản lấy các files mà được yêu cầu và gửi chúng xuống. Phía client chịu trách nhiệm hoàn toàn trong việc đọc các định dạng trong các files này và biên dịch chúng và xuất ra màn hình.
Với kỹ thuật server-side như ASP.NET thì hoàn toàn khác, thay vì việc biên dịch từ phía client, các đoạn mã server-side sẽ được biên dịch bởi web server. Trong trường hợp này, các đoạn mã sẽ được đọc bởi server và dùng để phát sinh ra HTML, JavaScript và CSS để gửi cho trình duyệt. Chính vì việc xử lý mã xảy ra trên server nên nó được gọi là kỹ thuật server-side.
ASP là một kỹ thuật dành cho việc phát triển các ứng dụng web. Một ứng dụng web đơn giản chỉ các trang web động. Các ứng dụng thường được lưu trữ thông tin trong database và cho phép khách truy cập có thể truy xuất và thay đổi thông tin. Nhiều kỹ thuật và ngôn ngữ lập trình khác cũng đã được phát triển để tạo ra các ứng dụng web như PHP, JSP, Ruby on Rails, CGI và ColdFusion. Tuy nhiên thay vì trói buộc bạn vào một ngôn ngữ và một công nghệ nhất định, ASP.NET cho phép bạn viết ứng dụng web bằng các loại ngôn ngữ lập trình quen thuộc khác nhau.
ASP.NET sử dụng .NET Framework, .NET Framework là sự tổng hợp tất các các kỷ thuật cần thiết cho việc xây dựng một ứng dụng nền desktop, ứng dụng web, web services.... thành một gói duy nhất nhằm tạo ra cho chúng khả năng giao tiếp với hơn 40 ngôn ngữ lập trình.
Thậm chí với những sự lý giải kỹ càng như vậy, bạn vẫn ngạc nhiên tự hỏi điều gì làm nên một ASP.NET tốt như vậy. Sự thật là có rất nhiều kỹ thuật server-side với điểm mạnh và điểm yếu riêng nhưng ASP.NET có những tính năng gần như là duy nhất.
ASP cho phép bạn sử dụng ngôn ngữ lập trình mà bạn ưa thích hoặc gần gũi với chúng. Hiện tại, thì .NET Framework hỗ trợ trên 40 ngôn ngữ lập trình khác nhau mà đa phần đều có thể được sử dụng để xây dựng nên những web sites ASP.NET. Chẳng hạn như C# (C sharp) và Visual Basic.
Nhưng trang ASP.NET được Compiled chứ không phải là Interpreted. Khác với các trang ASP được Interpreted, điều này có nghĩa là mỗi lần người dùng yêu cầu một trang, máy chủ sẽ đọc các đoạn mã vào bộ nhớ, xử lý cách thức thực thi các đoạn mã và thực thi chúng. Đối với ASP.NET, máy chủ chỉ càn xử lý cách thức thực thi một lần duy nhất. Đoạn mã sẽ được Compiled thành các files mã nhị phân cái mà được thực thi rất nhanh mà không cần phải đọc lại. Chính điều này tạo ra bước tiến nhảy vọt về hiệu suất so với ASP
ASP đã cả khả năng toàn quyền truy xuất tới các chức năng của .NET Framework. Hỗ trợ XML, web services, giao tiếp với CSDL, email... và rất nhiều các kỹ thuật khác được tích hợp vào .NET, giúp bạn tiết kiệm được công sức.
ASP cho phép bạn phân chia các đoạn mã server-side và HTML. Khi bạn phải làm việc với cả đội ngũ lập trình và thiết kế, sự tách biệt này cho phép các lập trình viên chỉnh sửa server-side code mà không cần dính dáng gì tới đội ngũ thiết kế.
ASP giúp cho việc tái sử dụng những yếu tố giao diện người dùng trong nhiều web form vì nó cho phép chúng ta lưu các thành phần này một cách độc lập.
Bạn có được một công cụ tuyệt vời hỗ trợ phát triển các ứng dụng ASP.NET hoàn toàn miễn phí, đó là Visual Web Developer, một trình soạn thảo trực quan mạnh mẽ có tính năng Code Autocompletion, Code Format, Database Integration Functionality, Visual HTML editor, Debugging...