Bài giảng Lập trình web - Chương 2: Ngôn ngữ kịch bản phía server ASP.NET - Chu Thị Hường

ASP.NET Server Technologies  Web Pages (with Razor syntax):  Mô hình lập trình đơn giản nhất, và trang web sẽ là tập hợp nhiều trang web  Sử dụng mã server-side ngay bên trong các trang web  Không có vòng đời của trang như Web Forms, nó chỉ đơn giản là xử lý mã lệnh từ trên xuống dưới  MVC (Model View Controller):  Phát triển ứng dụng theo mô hình test-driven, và áp dụng mẫu lập trình SoC (Separation of Concerns).  Không cung cấp các điều khiển được đóng gói sẵn như serverside control của ASP.NET Web Froms, thay vào đó bạn bạn phải hiểu biết sâu hơn về HTML và giao thức HTTP.

pdf43 trang | Chia sẻ: thanhle95 | Lượt xem: 432 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Bài giảng Lập trình web - Chương 2: Ngôn ngữ kịch bản phía server ASP.NET - Chu Thị Hường, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
LẬP TRÌNH WEB Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT NGÔN NGỮ KỊCH BẢN PHÍA SERVER ASP.NET 1  Một số ngôn ngữ kịch bản phía server  Tổng quan về ngôn ngữ ASP.NET  Nền tảng của ASP.NET NỘI DUNG Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT  PHP (Hypertext Preprocessor):  PHP là một kịch bản trên phía trình chủ, có các phiên bản trên hệ điều hành window và Linux.  Có thể dễ dàng nhúng vào trang HTML. PHP thường kết hợp với hệ quản trị CSDL MỘT SỐ NGÔN NGỮ KỊCH BẢN PHÍA SERVER Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT  MySQL phù hợp với các doanh nghiệp vừa và nhỏ.  PHP (Hypertext Preprocessor):  JSP là một kịch bản trên trình chủ với nền tảng dựa trên ngôn ngữ lập trình Java.  ASP.Net Framework dựa trên nền tảng ngôn MỘT SỐ NGÔN NGỮ KỊCH BẢN PHÍA SERVER Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT ngữ lập trình .NET.  Classic ASP - Active Server Pages  ASP (Active Server Page) được Microsoft giới thiệu vào năm 1996 và trở lên thông dụng từ ngày đó ASP là công nghệ cho phép các kịch bản trong TỔNG QUAN VỀ NGÔN NGỮ ASP.NET Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT  trang web được thực hiện bởi một máy chủ Internet.  Các trang có đuôi mở rộng là .asp.  ASP.NET:  ASP.NET là một thế hệ mới của ASP. Nó không tương thích với Classis ASP, nhưng ASP.NET có thể bao gồm ASP. Tăng hiệu quả lập trình thông qua các đặc điểm: TỔNG QUAN VỀ NGÔN NGỮ ASP.NET Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT   Dễ dàng lập trình  Lựa chọn ngôn ngữ đơn giản  Hỗ trợ công cụ tuyệt vời  Nhờ nền tảng vững vàng và tài nguyên phong phú của .Net Framework với hơn 5000 class (lớp) bao gồm XML, Data access, File upload  ASP.NET:  Tăng khả năng thực hiện và tính ổn định  Dễ dàng triển khai  ASP.Net cho phép ta tự động cập nhật các thành phần đã biên dịch mà không cần phải khởi động lại các Web Server. TỔNG QUAN VỀ NGÔN NGỮ ASP.NET Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT  ASP.NET Razor  Razor là một cú pháp đánh dấu mới và đơn giản để nhúng code server vào các trang web ASP.NET, giống như ASP cổ điển.  Razor có khả năng của ASP.NET truyền thống, nhưng là dễ học và sử dụng hơn.  ASP.NET Server Technologies  Web Pages (with Razor syntax):  Mô hình lập trình đơn giản nhất, và trang web sẽ là tập hợp nhiều trang web  Sử dụng mã server-side ngay bên trong các trang web  Không có vòng đời của trang như Web Forms, nó chỉ đơn giản là TỔNG QUAN VỀ NGÔN NGỮ ASP.NET Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT xử lý mã lệnh từ trên xuống dưới  MVC (Model View Controller):  Phát triển ứng dụng theo mô hình test-driven, và áp dụng mẫu lập trình SoC (Separation of Concerns).  Không cung cấp các điều khiển được đóng gói sẵn như server- side control của ASP.NET Web Froms, thay vào đó bạn bạn phải hiểu biết sâu hơn về HTML và giao thức HTTP.  ASP.NET Server Technologies  Web Forms (traditional ASP.NET):  Mô hình lập trình hướng sự kiện (event driven development)  Cung cấp nhiều các server side controls, chúng đóng gói HTML, JavaScript và CSS bên trong.  Cung cấp tính năng data binding nên bạn có thể dễ dàng phát TỔNG QUAN VỀ NGÔN NGỮ ASP.NET Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT triển các ứng dụng nặng về việc truy xuất và hiển thị dữ liệu.  Dễ dàng quản lý trạng thái của các control nhờ vào cơ chế post- back và view state  Nhược điểm: Cấu trúc của nó khiến nó khó có thể được áp dụng unit-test hoàn toàn và tách biệt lập trình viên khỏi kiến thức về CSS, HTML và mô hình lập trình state-less (không lưu giữ trạng thái của các điều khiển) truyền thống của lập trình web.  ASP.NET Development Tools:  WebMatrix  Visual Web Developer  Visual Studio  ASP.NET File Extensions TỔNG QUAN VỀ NGÔN NGỮ ASP.NET Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT  Classic ASP files có đuôi mở rộng .asp  ASP.NET files có đuôi mở rộng .aspx  ASP.NET files với Razor C# syntax có đuôi mở rộng .cshtml  ASP.NET files với Razor VB syntax có đuôi mở rộng .vbhtml .NET FRAMEWORK  .NET Framework là cơ sở hạ tầng bằng việc cung cấp cho người dùng cách thức sử dụng đa ngôn ngữ lập. Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT  ASP.NET là một phần khóa của .NET Framework, và được sử dụng để tạo server - side scripts cho các ứng dụng web. BIÊN DỊCH TRANG ASPX Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT MÔI TRƯỜNG PHÁT TRIỂN ỨNG DỤNG  Web Page Designing  Cung cấp bộ thiết kế theo hiệu ứng “What you see is What you get” Rễ cấu hình Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT   Tự động biên dịch các file  Môi trường phát triển web linh hoạt.  Nhiều đối tượng và phương thức mới. MÔI TRƯỜNG PHÁT TRIỂN ỨNG DỤNG  Các công cụ hỗ trợ Code Editor Toolbox Class views Object Browse Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT CSS styles Frameset MÔI TRƯỜNG PHÁT TRIỂN ỨNG DỤNG  Các công cụ hỗ trợ Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT MÔI TRƯỜNG PHÁT TRIỂN ỨNG DỤNG  Cấu hình ứng dụng: Trong Visual Studio chạy Web site trên một trong 3 cách sau:  Trên chính máy tính của bạn (the local file system) Một HTTP server chứa IIS và các thành phần Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT  có liên quan  FTP site (a remote file server) MÔI TRƯỜNG PHÁT TRIỂN ỨNG DỤNG  Cấu hình ứng dụng với IIS (Internet Information Services): IIS là một Web Server được phát triển bởi Microsoft để tạo host cho các websites trên một server đơn. Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT MÔI TRƯỜNG PHÁT TRIỂN ỨNG DỤNG  Cấu hình ứng dụng với IIS (Internet Information Services): IIS là một Web Server được phát triển bởi Microsoft để tạo host cho các websites trên một server đơn. Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT MÔI TRƯỜNG PHÁT TRIỂN ỨNG DỤNG  Cấu hình ứng dụng với IIS: + Mở IIS: Start\Settings\Control Panel \ Administratrive tools\IIS Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT  Right click Default Web site + Làm theo sự chỉ dẫn  Chọn thư mục gốc ứng dụng. Chọn trang mặc định Tạo thư mục ảo. MÔI TRƯỜNG PHÁT TRIỂN ỨNG DỤNG  Tạo ứng dụng:  Tạo website Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT MÔI TRƯỜNG PHÁT TRIỂN ỨNG DỤNG  Tạo ứng dụng:  Default Project files:  AssemblyInfo.cs: Là file chứa thông tin về Assembly, Version, Commpany name  Projectname.vsdisco: Là file XML chứa Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT các đường link (URL) với XML Web Service. Trang này không nhìn thấy được trong Solution Explore  Default.aspx: Chứa design interface và client side code  Default.aspx.cs: Chứa Server – side code MÔI TRƯỜNG PHÁT TRIỂN ỨNG DỤNG  Tạo ứng dụng:  Optional Project files:  Global.asax : Là file được tạo ở thư mục gốc của Project, chứa các sự kiện của ứng dụng web. File không được tạo khi trong ứng dụng không chứa các Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT handlers về Application và Session  Web.Config : Là file XML chứa các thông tin cần thiết cho Web Server, như Authentication, Security,  StyleSheet.css : là file cascading style sheet, cung cấp thông tin về các style cho web pages MÔI TRƯỜNG PHÁT TRIỂN ỨNG DỤNG  Tạo web pages: Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT MÔI TRƯỜNG PHÁT TRIỂN ỨNG DỤNG  Triển khai ứng dụng (Puslish Web Site):  Biên dịch ứng dụng và copy website đến một thư mục.  Các tập tin code behide được biên dịch thành file .dll Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT  Thao tác:  Right click , chọn Puslish Web site  Chọn thư mục sẽ chứa website publish đến  ASP.NET Web Page Code Model:  Một trang Web bao gồm hai phần:  MarkUp Code: Phần layout  Programming code: Điều khiển sự tương tác của người sử dụng và một số sự kiện NỀN TẢNG CỦA ASP.NET Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT  Web Page model ra làm hai dạng mô hình:  Single File Page  Code Behind Page  ASP.NET Web Page Code Model:  Single File Page Model:  Ưu điểm:  Dễ bảo trì khi MarkUp code và Programming trên cùng một file. NỀN TẢNG CỦA ASP.NET Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT  Dễ triển khai  Dễ đổi tên  Nhược điểm:  Single file page không được tạo trực tiếp từ VS IDE  Có nhiều hạn chế trong việc hỗ trợ Coding  Các Event Handler không được tự động tạo khi double click trên các điều khiển sự kiện.  ASP.NET Web Page Code Model:  Code Behind Page Model:  MarkUp file có đuôi mở rộng .aspx chứa các markUp code.  Class file là một file Code Behind chứa logic lập trình, có đuôi mở rộng .aspx.cs (hoặc .aspx.vb,). NỀN TẢNG CỦA ASP.NET Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT  Class “Page” : Mỗi trang web tạo ra được dẫn xuất từ lớp Page thuộc namespace "System.Web.UI”:  Thuộc tính: Page.Title = "Login" NỀN TẢNG CỦA ASP.NET Thuộc tính Mô tả Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT ID Chỉ định hoặc truy xuất đối tượng (thể hiện) của lớp Page. Định danh mặc định là ‘_Page’ Title Chỉ định hoặc truy xuất tiêu đề của trang. Server Truy xuất đến thể hiện của lớp Server (Lớp HttpServerUtility)  Class “Page” : Mỗi trang web tạo ra được dẫn xuất từ lớp Page thuộc namespace "System.Web.UI”:  Thuộc tính: Page.Title = "Login" NỀN TẢNG CỦA ASP.NET Thuộc tính Mô tả Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT Session Truy xuất đến thể hiện của lớp Session Controls Truy xuất đến thể hiện của lớp ControlCollection cho bất kỳ điều khiển server nào. ErrorPage Chỉ định hoặc truy xuất đến địa chỉ trang thông báo lối khi có ngoại lệ xuất hiện trên trang.  Class “Page” :  Methods: Cách sử dụng thuộc tính như sau: IF (Page.HasControls()) { Response.Write (“Wellcome“);} NỀN TẢNG CỦA ASP.NET Thuộc tính Mô tả Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT HasControls Kiểm tra xem có tồn tại điều khiển Server control hay không. LoadControl Load một thể hiện của lớp Control. GetValidators Trả về một tập các đối tượng Validation được chỉ định trong nhóm Validation. MapPath Trả về đường dẫn mà ánh xạ đến đường dẫn ảo Validate Chỉ dẫn các điều khiển hợp lệ tới thông tin hợp lệ được gán cho chúng.  Partial Class trong Code Behind Model : File Code Behind tự động tạo Partial Class. Từ khóa Partial chỉ định lớp này không chứa đầy đủ các thành phần mà nó được kế thừa từ lớp Page. NỀN TẢNG CỦA ASP.NET Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT  Partial Class trong Code Behind Model : File Code Behind tự động tạo Partial Class. Từ khóa Partial chỉ định lớp này không chứa đầy đủ các thành phần mà nó được kế thừa từ lớp Page. NỀN TẢNG CỦA ASP.NET Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT NỀN TẢNG CỦA ASP.NET Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT  Các chỉ dẫn (Directives): Các chỉ dẫn là các câu lệnh mô tả ứng dụng ASP.NET được biên dịch như thế nào. Các chỉ dẫn được bao trong cặp và thuộc file .aspx. NỀN TẢNG CỦA ASP.NET Chỉ dẫn Mô tả Ví dụ @Page Định nghĩa các thuộc tính cho Web page <%@ Page Language="C#" Title=“My web Page" %> Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT @Import Import một không gian miền vào trang. Cho phép sử dụng tấ cả các Classes và interfaces của không gian miền này. <%@ Import Namespace="System.Data " %> @Assembly Liên kết đến một Assemply cho trang hoặc điều khiển nào đó. <%@ Assembly Name=“MyAssembly" %> @Master Định nghĩa các thuộc tính của trang Master. <%@ Master Language="C#" %> @Reference Tham chiếu đến một trang khác. <%@ Reference Page="~/Home.aspx" %>  Các chỉ dẫn (Directives):  Chỉ dẫn Page: NỀN TẢNG CỦA ASP.NET Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT  Các chỉ dẫn (Directives):  Chỉ dẫn Chỉ dẫn @Import: Là chỉ dẫn cho phép Include vào trang web các chức năng khác nhau được khai báo trong một namespace khác. ” %> Ví dụ: NỀN TẢNG CỦA ASP.NET Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT  Điều khiển sự kiện trong Web Pages: NỀN TẢNG CỦA ASP.NET  Sự kiện (Event) là một hành động được nổ trong khi ứng dụng đang chạy.  Mỗi sự kiện được điều Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT khiển bởi một khối code được gọi là Event Handler.  ASP.NET là một mô hình lập trình sự kiện bởi vì mọi thứ xuất hiện trên trang web là sự đáp lại của một số sự kiện.  Điều khiển sự kiện trong Web Pages: NỀN TẢNG CỦA ASP.NET  Automatic Event Handling: Mỗi một Web page có một vòng đời, mỗi bước trong vòng đời xuất hiện một sự kiện. Các sự kiện được xử Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT lý tự động bởi các Event Handler tương ứng.  Init  Load  PreRender  UnLoad  Điều khiển sự kiện trong Web Pages: NỀN TẢNG CỦA ASP.NET  Page_Load là sự kiện được kích nổ bất cứ khi nào Web Page được Request. Khi một người Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT dùng Request một trang Web thì các biến và các điều khiển trong trang được khởi tạo và sau đó trang đó được load lên.  POSTBACK NỀN TẢNG CỦA ASP.NET  Trong tiến trình xử lý PostBack là thông tin được submit từ Browse đến Server.  Khi người dùng tương tác với Web Page bằng cách phát sinh một sự kiện thì trang đó được gửi quay trở lại Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT Server. Server xử lý code hiện tại trong các event handlers và sau đó trang này được tạo lại. Như vậy trang này lại trải qua một vòng đời mới với các sự kiện Init() và Load ()  Thuộc tính IsPostBack của đối tượng Page: NỀN TẢNG CỦA ASP.NET  Thuộc tính IsPostBack dùng để kiểm tra Web Page được Request lần đầu tiên hay là kết quả của một PostBack. Nếu trang đó được Request lần đầu tiên thì thuộc tính IsPostBack nhận giá trị false. Nếu trang đó được submit quay trở lại từ Server thì thuộc tính IsPostBack nhận giá Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT trị True. protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { txtFullName.Focus(); ShipDate.Text = Convert.ToString(DateTime.Now); ... } } THẢO LUẬN – CÂU HỎI Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT  Thực hành các ví dụ  Tiếp tục thiết kế giao diện cho bài tập lớn.  Tạo một Project cho bài tập lớn được phân công. BÀI TẬP Biên soạn: Chu Thị Hường – Bộ môn HTTT – Khoa CNTT