Cơ bản ASP.Net cho người mới bắt đầu:
ASP.NET - EM LÀ AI?
Trước hết, họ tên của ASP.NET là Active Server Pages .NET (.NET ở đây là .NET framework). Nói đơn giản, ngắn và gọn thì ASP.NET là một công nghệ có tính cách mạng dùng để phát triển các ứng dụng về mạng hiện nay cũng như trong tương lai (ASP.NET is a revolutionary technology for developing web applications). Bạn lưu ý ở chổ ASP.NET là một phương pháp tổ chức hay khung tổ chức (framework) để thiết lập các ứng dụng hết sức hùng mạnh cho mạng dựa trên CLR (Common Language Runtime) chứ không phải là một ngôn ngữ lập trình. Ngôn ngữ lập trình được dùng để diển đạt ASP.NET trong khóa này là VB.NET (Visual Basic .NET) và VB.NET chỉ là một trong 25 ngôn ngữ .NET hiện nay được dùng để phát triển các trang ASP.NET mà thôi.
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 ở từng bài học một.
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ể nói ... khơi khơ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.
Lưu ý:
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 của bạn (operate side-by-side). Do đó, khi bạn cài ASP.NET engine, bạn 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 bạn 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ành Windows và Internet Information 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ể xử dụng tất cả mọi tài nguyên mà Windows có, dễ dàng như ... ăn cơm tấm bì sườn chả vậy.
Ta có thể tóm tắc đạ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:
Client (thông qua Internet Browser) xác định vị trí của Web Server qua 1 nối URL (Universal Resource Locator) ví dụ như
www.aspvn.netClient sẽ yêu cầu được tham khảo 1 trang trong mạng đó và thường thường là trang chủ (home page) tỷ như index.htm hay default.htm
Server đáp ứng bằng cách hoàn trả hồ sơ mà Client đã yêu cầu trước đây
Client nhận được hồ sơ gởi về và hiển thị (display) trong browser của mình
Lưu ý, một khi Client đã nhận được hồ sơ rồi là quá trình trao đổi qua lại đó kết thúc ngay tức khắc. Sau đó, Server và Client trở thành ... ngưòi xa lạ, coi như là chưa từng bao giờ gặp gỡ nhau trước đây (stateless model).
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 của ASPVN.Net để gởi đi một thông điệp làm quen với ASPVN.Net?'.
À, 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.
Nhớ là 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.
SƠ LƯỢC VỀ .NET FRAMEWORK
Sở dĩ có chữ .NET trong ASP.NET là vì mọi chức năng ASP.NET có được là hoàn toàn dựa vào .NET framework, do đó ta cần phải hiểu thấu đáo kiến trúc hạ tầng của .NET framework để dùng ASP.NET một cách hiệu quả, trong đó quan trọng nhất là CLR và .NET Framework Class.
CLR (COMMON LANGUAGE RUNTIME)
CLR là môi trường được dùng để quản lý sự thi hành các nguồn mã (manage the execution of code) mà ta đã soạn ra và biên dịch (write and compile code) trong các ứng dụng. Tuy nhiên khi biên dịch nguồn mã, ta lại biên dịch chúng ra thành một ngôn ngữ trung gian gọi là Microsoft Intermediate Language (MSIL). Chính MSIL trung gian này là ngôn ngữ chung cho tất cả các ngôn ngữ .NET hiện có, do đó chắc bạn cũng đoán ra là ASP.NET cũng được biên dịch (compile) ra MSIL như mọi ai khác. Trong khi biên dịch như vậy, các ứng dụng cũng sản xuất ra những thông tin cần thiết để tự ... quảng cáo chính mình, ta gọi những thông tin này là metadata. Ðến khi ta chạy một ứng dụng, CLR sẽ tiếp quản (take-over) và lại biên dịch (compile) nguồn mã một lần nữa ra thành ngôn ngữ gốc (native language) của máy vi tính trước khi thi hành những công tác đã được bố trí trong nguồn mã đó. Ta có thể cảm thấy những việc bận rộn sau hậu trường đó khi phải chờ đợi 1 khoãng thời gian cần thiết để CLR chấm dứt nhiệm vụ của nó khi lần đầu phải biên dịch (compile) và hiển thị 1 trang Web, nhưng rồi mọi chuyện sẽ xuôi chèo mát mái, cuối cùng là ta có một trình biên dịch (compiled code) để xử dụng rất hiệu quả.
.NET FRAMEWORK CLASSES
Ðiều quan trọng nhất mà ta cần phải nhớ là mọi thứ trong .NET đều là object, tỷ như các trang ASP.NET, các hộp thông điệp (message box) hay là nút bấm (button), tất cả đều là object cả. Các object đó được tổ chức lại thành từng nhóm riêng biệt như trong một thư viện để ta dễ dàng xữ dụng. Ta gọi các nhóm như vậy là namespaces, và ta sẽ dùng những namespace này để gọi hay nhập cảng (import) các class cần thiết cho ứng dụng của mình.