3 KIẾN THỨC NỀN TẢNG
3.2.3.3 Chèn trực tiếp vào thẻ của HTML(inline style)
Inline style được sử dụng nhiều trong trường hợp một thẻ HTML nào đó cần có style riêng cho nó.
Inline style được áp dụng cho chính thẻ HTML đó, cách này sẽ có độưu tiên lớn nhất so với hai cách trên. Dưới đây là một ví dụ mà chúng ta dùng Inline style
<p style="color: sienna; margin-left: 20px"> This is a paragraph </p> 3.2.3.4 Nhiều Stylesheet Trong trường hợp mà có một số thẻ có cùng định dạng, chúng ta có thể gộp chúng lại với nhau. Giả sử như sau: h1, h2, h3 { margin-left: 10px; font-size: 150%; ... }
3.3 Sơ lược về .NET framework
Trước khi tìm hiểu về ASP.NET, chúng ta sẽ tìm hiểu 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.
Trang 26
Hình 3-2 .NET framework
3.3.1 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, các phần bên trong của CLR gồm: Class loader, Just In Time compiler, Garbage collector, Exception handler, COM marshaller, Security engine,… Khi biên dịch nguồn mã, ta 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ả.
Trang 27
3.3.2 DOTNET framework classes
Nếu phải giải nghĩa từ "Framework" trong thuật ngữ .NET Framework thì đây là lúc thích hợp nhất. Framework chính là một tập hợp hay thư viện các lớp đối tượng hỗ trợ người lập trình khi xây dựng ứng dụng. Có thể một số người trong chúng ta đã nghe qua về MFC và JFC. Microsoft Foundation Class là bộ thư viện mà lập trình viên Visual C++ sử dụng trong khi Java Foundation Class là bộ thư viện dành cho các lập trình viên Java. Giờ đây, có thể coi .NET Framework là bộ thư viện dành cho các lập trình viên .NET.
Với hơn 5000 lớp đối tượng để gọi thực hiện đủ các loại dịch vụ từ hệđiều hành, chúng ta có thể bắt đầu xây dựng ứng dụng bằng Notepad.exe!!!… Nhiều người lầm tưởng rằng các môi trường phát triển phần mềm như Visual Studio 98 hay Visual Studio.NET là tất cả những gì cần để viết chương trình. Thực ra, chúng là những phần mềm dùng làm "vỏ bọc" bên ngoài. Với chúng, chúng ta sẽ viết được các đoạn lệnh đủ các màu xanh, đỏ; lỗi cú pháp báo ngay khi đang gõ lệnh; thuộc tính của các đối tượng được đặt ngay trên cửa sổ properties, giao diện được thiết kế theo phong cách trực quan… Như vậy, chúng ta có thể hình dung được tầm quan trọng của .NET Framework. Nếu không có cái cốt lõi .NET Framework, Visual Studio.NET cũng chỉ là cái vỏ bọc! Nhưng nếu không có Visual Studio.NET, công việc của lập trình viên .NET cũng lắm bước gian nan!
3.3.3 Base class library – thư viện các lớp cơ sở
Đây là thư viện các lớp cơ bản nhất, được dùng trong khi lập trình hay bản thân những người xây dựng .NET Framework cũng phải dùng nó để xây dựng các lớp cao hơn. Ví dụ các lớp trong thư viện này là String, Integer, Exception,…
3.3.4 ADO.NET và XML
Bộ thư viện này gồm các lớp dùng để xử lý dữ liệu. ADO.NET thay thế ADO để trong việc thao tác với các dữ liệu thông thường. Các lớp đối tượng XML được cung cấp để bạn xử lý các dữ liệu theo định dạng mới: XML. Các ví dụ cho bộ thư viện này là SqlDataAdapter, SqlCommand, DataSet, XMLReader, XMLWriter,…
3.3.5 Web Service
Web services có thể hiểu khá sát nghĩa là các dịch vụ được cung cấp qua Web (hay Internet). Dịch vụ được coi là Web service không nhằm vào người dùng mà nhằm vào người xây dựng phần mềm. Web service có thể dùng để cung cấp các dữ liệu hay một chức năng tính toán. Ví dụ, công ty du lịch của bạn đang sử dụng một hệ thống phần mềm để ghi nhận thông tin về khách du lịch đăng ký đi các tour. Để thực hiện việc đặt phòng khách sạn tại địa điểm du lịch, công ty cần biết thông tin về phòng trống tại các khách sạn. Khách sạn có thể cung cấp một Web service để cho biết thông tin về các phòng trống tại một thời điểm. Dựa vào đó, phần mềm của bạn sẽ biết rằng liệu có đủ chỗ để đặt phòng cho khách du lịch không? Nếu đủ, phần mềm lại có thể dùng một Web service khác cung cấp chức năng đặt phòng để thuê khách sạn. Điểm lợi của Web service ởđây là bạn không cần một người làm việc liên lạc với khách sạn để hỏi thông tin phòng, sau đó,
Trang 28 với đủ các thông tin về nhiều loại phòng người đó sẽ xác định loại phòng nào cần đặt, số
lượng đặt bao nhiêu, đủ hay không đủ rồi lại liên lạc lại với khách sạn đểđặt phòng. Đừng quên là khách sạn lúc này cũng cần có người để làm việc với nhân viên của bạn và chưa chắc họ có thể liên lạc thành công. Web service được cung cấp dựa vào ASP.NET và sự hỗ trợ từ phía hệ điều hành của Internet Information Server.
3.3.6 ASP.NET
Bộ thư viện các lớp đối tượng dùng trong việc xây dựng các ứng dụng Web. ASP.NET không phải là phiên bản mới của ASP 3.0. Ứng dụng web xây dựng bằng ASP.NET tận dụng được toàn bộ khả năng của .NET Framework. Bên cạnh đó là một "phong cách" lập trình mới mà Microsoft đặt cho nó một tên gọi rất kêu: code behind. Đây là cách mà lập trình viên xây dựng các ứng dụng Windows based thường sử dụng – giao diện và lệnh được tách riêng. Tuy nhiên, nếu bạn đã từng quen với việc lập trình ứng dụng web, đây đúng là một sự "đổi đời" vì bạn đã được giải phóng khỏi mớ lệnh HTML lộn xộn tới hoa cả mắt. Sự xuất hiện của ASP.NET làm cân xứng giữa quá trình xây dựng ứng dụng trên Windows và Web. ASP.NET cung cấp một bộ các Server Control để lập trình viên bắt sự kiện và xử lý dữ liệu của ứng dụng nhưđang làm việc với ứng dụng Windows. Nó cũng cho phép chúng ta chuyển một ứng dụng trước đây viết chỉ để chạy trên Windows thành một ứng dụng Web khá dễ dàng. Ví dụ cho các lớp trong thư viện này là WebControl, HTMLControl, …
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.
Trang 29
3.3.6.1 Lịch Sử
Sau khi phát hành phiên bản Internet Information Service 4.0 vào năm 1997, hãng Microsoft bắt đầu nghiên cứu một mô hình ứng dụng web để giải quyết những bất tiện của ASP, đặc biệt là việc tách riêng biệt phần thể hiện và phần nội dung cũng như cách viết mã rõ ràng hơn. Mark Anders, quản lý của nhóm IIS và Scott Guthrie, gia nhập Microsoft vào năm 1997 sau khi tốt nghiệp Đại học Duke, được giao nhiệm vụđịnh hình mô hình cần phát triển. Những thiết kế ban đầu được thực hiện trong vòng 2 tháng bởi Anders và Guthrie, Guthrie đã viết mã prototype đầu tiên trong khoảng thời gian nghỉ lễ Giáng sinh năm 1997.
Trang 30
Hình 3-4 Quá trình xử lý tập tin .aspx
3.3.6.2 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.
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 bạn cài ASP.NET engine,
Trang 31 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.
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 phía 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ạc 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.
Trang 32
3.3.7 Cài đặt ASP.NET
Ðể chạy trang ASP.NET, trước hết ta cần phải cài đặt thành công:
Internet Information Server (IIS) và bố trí Virtual Directory dùng trong khóa Tự Học ASP.NET của Vovisoft.
MS Visual Studio.NET - trong trường hợp này thì MS Visual Studio.NET đã cài sẵn .NET Framework SDK cho ta dùng với ASP.NET hoặc là
.NET Framework Software Development Kit (SDK) - nếu ta không có MS Visual Studio.NET, ta có thể tải .NET Framework Software Development Kit (SDK) xuống tự do từ mạng www.microsoft.com/NET , với SDK, ta chỉ có thể dùng Notepad hoặc một Text Editor nào ta thích để phát triển trang ASP.NET mà thôi.
Nhớ là ASP.NET là kỹ thuật phát triển mạng ở phía Server, do đó ta phải cần có Internet Information Server (hay thường được gọi đơn giản hơn là Web Server) để soạn (phát triển hay lập trình) các trang về mạng cho khách vãng lai ghé thăm cũng như tham khảo các thông tin liên hệ. Nhưng khác với các trang ASP cổđiển, Web Server sẽ không hiểu các trang ASP.NET nếu như ta quên hay bỏ sót không cài .NET Framework SDK hoặc không cài MS Visual Studio.NET, chính nhờở .NET Framework SDK mà ta có đầy đủ các công dụng và các object hay classes cần thiết cho các trang ASP.NET của ta.
3.3.8 Cài Internet Infomation Server (IIS)
Internet Information Server (IIS) Version 5.0 là một sản phẩm 'cho không ... biếu không' của Microsoft khi ta mua MS Windows 2000 Professional hay MS Windows XP Professional. IIS chuyên trị về Web Server, qua đó ta có thể cung cấp các dịch vụ nói chung về mạng cho khách vãng lai, mà dịch vụ về mạng thì thiên hình vạn trạng, nhỏ xíu như từ cây kim sợi chỉ cho đến vĩđại như phi thuyền, dãy Ngân Hà hay vũ trụ, đều có thể được bố trí đầy đủ thông tin hay các ứng dụng liên hệ cần thiết để đáp ứng nhu cầu của khách vãng lai.
1. Ðể cài IIS Version 5.0 trong MS windows XP Professional, ta bắt đầu chọn:
Start, Settings, Control Panel, Add/Remove Programs và nhấp đơn (click) Add/Remove Windows Components, xong chọn Internet Information Server như sau:
Trang 33
Hình 3-5 Cài ISS
2. Nếu ta nhấp đơn nút <Details>, ta có thể tự do lựa chọn thêm hay bớt các thành phần trong IIS, tỷ như ta có thể bố trí thêm File Transfer Protocol Service (FTP Server) để quản lý một cách hiệu quả hơn việc tải lên (upload) hay tải xuống (download) các hồ sơ (documents) hay tập tin (files).
3. Nhấp nút <Next>, Windows XP Professional sẽ thu thập các thông tin liên hệ và bắt đầu tiến trình cài đặt IIS. Chỉ trong vòng vài phút là ta đã có một Web Server ngon lành trong máy vi tính.
4. Ðể xác định việc cài thành công Web Server, ta có thể thử như sau:
Mở Browser của bạn, ví dụ như Microsoft Internet Explorer và gõ hàng chữ như sau vào hộp địa chỉ (Uniform Resource Locator) http://localhost
Sau khi ta nhấp nút <Enter>, trang mặc định (default page) của IIS sẽ hiển thị.
3.3.9 Cấu hình IIS
Để cấu hình IIS, vào Control Panel| Administrative Tools|Internet Services Manager. Trên các hệ điều hành Windows 2000/XP, Microsoft sử dụng công cụ Microsoft Management Console (MMC) để làm công cụ quản lý, do đó tất cả các thao tác đều sử dụng menu ngữ cảnh bằng cách nhắp chuột phải trên mục muốn chọn. Chọn Properties của mục Default
Trang 34 Web Site, bạn có thể xem và cấu hình lại các thông tin dành cho trang web mặc định của
mình.
Hình 3-6 Cấu hình ISS - 1
Trên tab Home Directory, bạn có thể thay đổi đường dẫn đến một thư mục khác trên ổ cứng nếu muốn
Trang 35
Hình 3-7 Cấu hình ISS - 2
Trên tab Documents, bạn có thể đặt trang web mặc định sẽ hiển thị khi Web Browser không chỉ định trang web cụ thể. Bạn sẽ thấy index.htm và default.htm được liệt kê trong phần này. Đây là lý do tại sao khi bạn gõ //localhost thì Web browser lại hiển thị được trang hompage. Thực ra, //localhost tương đương với //localhost/index.htm hay //localhost/default.htm. Trong tab Directory Security, bạn có thểđịnh lại các chếđộ kiểm tra người dùng truy cập vào web site.
3.3.10 Tạo ứng dụng web trên IIS
Một Web Server có thể quản lý nhiều ứng dụng Web đồng thời. Thông thường, bạn sẽ tổ