Bài 7: Đối tượng Data Source -Đóng gói ứng dụng - Giới thiệu các kĩ thuật lập trình ASP.NET nâng cao

Similar documents
Cài đặt và cấu hình StarWind iscsi trên Windows. iscsi SAN là gì?

HƯỚNG DẪN CÀI ĐẶT PHẦN MỀM DIỆT VIRUS AVIRA

HƯỚNG DẪN SỬ DỤNG HỆ THỐNG CẬP NHẬT CHỨNG THƯ SỐ HOTLINE:

Tài liệu hướng dẫn: Stored Procedure

Bộ môn HTMT&TT, Khoa Công Nghệ Thông Tin và TT, ĐH Cần Thơ

Bộ môn MMT&TT, Khoa Công Nghệ Thông Tin và TT, ĐH Cần Thơ

Khối: Cao Đẳng nghề và Trung Cấp Năm 2009

HƯỚNG DẪN SỬ DỤNG PLESK PANEL

TÀI LIỆU THỰC HÀNH MÔN CƠ SỞ DỮ LIỆU NÂNG CAO

Chương 6. Transport Layer. Tài liệu : Forouzan, Data Communication and Networking

LINQ TO SQL & ASP.NET

Internet Protocol. Bởi: Phạm Nguyễn Bảo Nguyên

BÀI TẬP THỰC HÀNH LẬP TRÌNH WINDOWS C#

CẤU TRÚC DỮ LIỆU NÂNG CAO

Chương 5. Network Layer. Phần 1 - Địa chỉ IPv4. Tài liệu : Forouzan, Data Communication and Networking

Nội dung chính của chương. Các công nghệ đĩa cứng Cấu tạo vật lý của đĩa cứng Cấu tạo logic của đĩa cứng Cài đặt đĩa cứng như thế nào?

Entity Framework (EF)

Bài Thực hành Asp.Net - Buổi 1 - Trang: 1

TỔNG QUAN VỀ.NET VÀ C#

Tình huống 1: PPPoE với Username và Password

Hướng dẫn cài đặt FPT

CHƯƠNG 2: CÁC ĐẶC ĐIỂM VỀ MÔI TRƯỜNG PHÁT TRIỂN (IDE)

Tạo Project với MPLAB

Giáo trình này được biên dịch theo sách hướng dẫn của Sun Light. Vì là hướng dẫn kỹ thuật, trong này những thuật ngữ kỹ thuật bằng tiếng Anh tôi chỉ

BÀI 1: VBA LÀ GÌ? TẠO MACRO, ỨNG DỤNG CÁC HÀM TỰ TẠO (UDF), CÀI ĐẶT ADD-INS VBA là gì?

Chương 5. Network Layer 19/09/2016 1

LẬP TRÌNH WINDOWS FORM VỚI CÁC CONTROL NÂNG CAO (Các control trình bày dữ liệu dưới dạng danh sách)

Cụ thể những công việc mà AndroidManifest.xml thực hiện: - Đặt tên cho Java package của ứng dụng.

Lab01: M V C Lưu ý: Để thực hành, các bạn phải cài Visual Studio 2013 trở lên mới hỗ trợ MVC5.

SIMULATE AND CONTROL ROBOT

Nhấn nút New để tạo 1 biến mới Trang 17

LÂ P TRI NH WEB ASP.NET

BELGIUM ONLINE APPOINTMENT

BẢO MẬT TRONG SQL SERVER

Online Appointment System will work better with below conditions/ Hệ thống đặt hẹn online sẽ hoạt động tốt hơn với điều kiện sau đây:

GIẢI THUẬT ĐỊNH TUYẾN (ROUTING ALGORITHM)

HƯỚNG DẪN SỬ DỤNG DỊCH VỤ CDN

HƯỚNG DẪN CÁCH SỬ DỤNG WINDOWS MOVIE MAKER

MỤC LỤC. Giáo trình Thiết kế web Trang 1

SIEMENS INDUSTRIAL NETWORKS

HƯỚNG DẪN SỬ DỤNG DỊCH VỤ CDN

BÀI 6 LÀM VIỆC VỚI THÀNH PHẦN MỞ RỘNG CỦA CSS3

ĐỌC, GHI XML VỚI C# TRONG ADO.NET --- SỬ DỤNG VISUAL STUDIO

HƯỚNG DẪN SỬ DỤNG ĐẦU GHI H.264 DVR VISION VS (4CH - 8CH - 16CH)

GV: Phạm Đình Sắc or

Tìm hiểu Group Policy Object và các ví dụ

Khoa KH & KTMT Bộ môn Kỹ Thuật Máy Tính

I. Hướng Dẫn Đăng Nhập:

PHÁT TRIỂN ỨNG DỤNG WEB

Bài tập lớn số 1. Giả lập bộ định thời

HƢỚNG DẪN TRIỂN KHAI KASPERSKY - MOBILE DEVICE MANAGEMENT

TÀI LIỆU HƯỚNG DẪN SỬ DỤNG HOSTING PLESK PANEL

Môn Học: Cơ Sở Dữ Liệu 2. Chương 3 LẤY DỮ LIỆU TỪ NHIỀU NGUỒN

Ôn tập Thiết bị mạng và truyền thông DH07TT - Lưu hành nội bộ (không sao chép dưới mọi hình thức)

Bài 10: Cấu trúc dữ liệu

Dọn "rác" Windows 7 vào dịp cuối năm

Mạng máy tính - Computer Network: Hệ. Giao thức - Protocol:

NHÚNG. Vi ñiều khiển BM Kỹ Thuật ðiện Tử - ðh Bách Khoa TP.HCM 2

Chương 7. Application Layer. Tài liệu : Forouzan, Data Communication and Networking

STACK và QUEUE. Lấy STACK

Mô hình dữ liệu quan hệ (Relational data model)

Phần 2. SỬ DỤNG POWERPOINT ĐỂ CHUẨN BỊ NỘI DUNG TRÌNH BÀY

FCAPS. nhìn từ quan điểm ITIL. Công cụ ManageEngine và ứng dụng khung ITIL trong các tổ chức, doanh

dụng một chính sách, điều này giúp dễ dàng quản lý và cung cấp tính năng Load Balancing (cân bằng tải) phục vụ tốt hơn các yêu cầu của tổ chức.

Lập trình chuyên nâng cao. Lập trình phân tán (Distributed computing

Lecture 12. Trees (1/2) Nội dung bài học:

Parallels Cloud Server 6.0

BÀI LAB ĐỔI TÊN DOMAIN

HỢP ĐỒNG MUA BÁN HÀNG HÓA QUỐC TẾ GV: NGUYỄN THỊ BÍCH PHƯỢNG

Kỹ thuật thu nhỏ đối tượng trong Design (Layout)

Bài tập căn bản Visual Basic.Net Vòng lặp. txtn. txtketqua. btntinh. txtn. txtketqua. btntinh. Trang 1

NHẬP MÔN LẬP TRÌNH KHOA HỌC DỮ LIỆU. Bài 10: Thư viện Pandas (2)

B5: Time to coding. Tới thư mục src/example.java và thay đổi nội dung file như sau: Mã: package at.exam;

Tạo repository mới. The working tree. The staging index. Lệnh git init tạo một repository loại git. tại thư mục hiện tại: $ git init

Tröôøng Ñaïi Hoïc Baùch Khoa Tp.HCM LẬP TRÌNH MINICHAT. Bài giảng 3. Trang1. Khoa Khoa Học Và Kỹ Thuật Máy Tính

Khối: Cao Đẳng nghề và Trung Cấp Năm 2009

Chủ đề 7: Triển khai và Bảo trì. COMP1026 Introduction to Software Engneering CH7-1 HIENLTH

KIẾN TRÚC MÁY TÍNH. Giảng viên: ThS. Phan Thanh Toàn. v

HƯỚNG DẪN QUẢN TRỊ HỆ THỐNG

MA NG MA Y TI NH (Computer Networks)

Câu 1: (2 điểm) So sách giữa 2 đối tượng Response và Request. Cho ví dụ minh hoạ.

1 Bước 1: Test thử kit LaunchPad.

Kích hoạt phương thức xa (RMI- Remote Method Invocation )

BÀI GIẢNG CHƯƠNG 3 GIAO TIẾP KẾT NỐI SỐ LIỆU

PHÁT TRIỂN ỨNG DỤNG DI ĐỘNG NÂNG CAO

ĐỀ CƯƠNG CHI TIẾT HỌC PHẦN

Cập nhật ResultSet trong JDBC

BÀI THỰC HÀNH SỐ 1. Quản trị tập tin: 1/ Tạo các thư mục sau: Bài tập thực hành linux Linuxlab. bt1 bt11 bt111. bt121. bt12. bh1 bh11 bh111.

Bài 10. Cấu trúc liên nối. khác nhau được gọi là cấu trúc liên nối. nhu cầu trao đổi giữa các module.

Time Picker trong Android

Phần 1: Hướng dẫn sử dụng PictureBox tạo Slide Show

ỨNG DỤNG AJAX. <input id="xuat" size="" style="width: 184px" type="button" value="xử LÝ" onclick ="Xuly_xuat();" />

Bài thực hành 1: Chỉ mục trong SQL Server

Cấu hình Router FTTH ---X---

Khoa Công Nghệ Thông Tin Trường Đại Học Cần Thơ. Những hỗ trợ tiên tiến khác của SQL. Đỗ Thanh Nghị

Đa ngôn ngữ (Internationalization) trong Servlet

Bài 13: C++11. EE3490: Kỹ thuật lập trình HK1 2017/2018 TS. Đào Trung Kiên ĐH Bách khoa Hà Nội

Hướng Dẫn Thực Hành Tập tin & Thư mục

Qu n ả tr h ố g t p ậ tin

Các kiểu định địa chỉ họ MSC-51

Transcription:

Bài 7: Đối tượng Data Source -Đóng gói ứng dụng - Giới thiệu các kĩ thuật lập trình ASP.NET nâng cao

Hệ thống bài cũ Các nội dung đã học trong bài trước Giới thiệu các điều khiển hiển thị dữ liệu Điều khiển GridView Điều khiển DetailsView 2

Mục tiêu môn học 1. Kiến trúc ba tầng 2. Object Data Source 3. Triển khai ứng dụng 3

4

Kiến trúc ba tầng trong ứng dụng ASP.NET Hầu hết các chuyên gia phát triển ứng dụng đều sử dụng kiến trúc ba tầng để phát triển ứng dụng web. Kiến trúc ba tầng phân tách phần trình bày, các quy tắc nghiệp vụ, thành phần truy cập CSDL của ứng dụng Ba tầng: Tầng trình bày Tầng trung gian Tầng CSDL Tầng trình bày Tầng trung gian Tầng CSDL Web Form Lớp nghiệp vụ Lớp truy cập CSDL CSDL 5

Kiến trúc ba tầng trong ứng dụng ASP.NET Tầng trình bầy: Gồm các trang ASP.NET quản lý giao diện ứng dụng. Tầng trung gian Gồm các lớp truy cập dữ liệu quản lý truy cập dữ liệu ứng dụng. Có thể chứa các đối tượng nghiệp vụ và các quy tắc nghiệp vụ Ví dụ: Đối tượng nghiệp vụ: Các lớp biểu diễn thực thể khách hàng, sản phẩm, nhân viên Quy tắc nghiệp vụ: Chính sách giảm giá Tầng CSDL CSDL của ứng dụng 6

Lớp truy cập CSDL Cung cấp phương thức truy xuất dữ liệu từ CSDL. Phương thức chèn, cập nhật, xóa dữ liệu sử dụng các kĩ thuật truy cập CSDL như ADO.NET. Nên đặt trong folder App_Code. 7

8

Object Data Source Giống với SQL data source, Object data source cung cấp phương pháp: Truy xuất hiển thị dữ liệu từ CSDL cho người dùng Cập nhật CSDL. Khác Object data source cho phép phát triển ứng dụng CSDL theo kiến trúc ba tầng Object data source truy cập dữ liệu qua lớp truy cập dữ liệu. SQL data source truy cập CSDL trực tiếp. Với các ứng dụng nhỏ, sử dụng SQL data source mang lại nhiều lợi ích, không phải viết code C#. Với các ứng dụng lớn, nên thiết kế theo kiến trúc ba tầng. Do đó, nên sử dụng ObjectDataSource 9

Giới thiệu ứng dụng CategoryMaint Ứng dụng CategoryMaint hiển thị thông tin danh mục sản phẩm trong CSDL, cho phép người dùng cập nhật thông tin danh mục sản phẩm Ứng dụng gồm: Một điều khiển GridView hiển thị danh sách phân loại sản phẩm Một điều khiển DetailsView thiết kế ở chế độ Insert cho phép người dùng thêm mới sản phẩm 10

Thiết kế ứng dụng theo kiến trúc ba tầng Tổ chức ứng dụng trên theo kiến trúc ba tầng, sử dụng điều khiển ObjectDataSource để thao tác với CSDL Tầng trình bày: Web Form Default.aspx Hai điều khiển objectdatasource Hai điều khiển buộc dữ liệu (drop-down list và datalist) Tầng trung gian: Lớp truy cập CSDL ProductDB, lớp nghiệp vụ Category Web Form Tầng CSDL: CSDL Halloween lưu Điều khiển buộc dữ liệu Tầng trong hệ quản trị SQL Server trình bày Tầng trung gian Tầng CSDL Object DataSource CategoryDB, Category CSDL Hallowen 11

Thiết kế ứng dụng theo kiến trúc ba tầng Cấu trúc thư mục của ứng dụng 12

Demo Xây dựng ứng dụng ProductList theo kiến trúc ba tầng Nội dung demo Tạo chuỗi kết nối trong File web.config Thiết kết giao diện Tạo lớp nghiệp vụ: Category Tạo lớp truy cập CSDL: Tạo lớp CategoryDB Truy xuất dữ liệu từ CSDL Thêm ObjectDataSource, chỉ định CategoryDB là lớp truy cập dữ liệu cho ObjectDataSource này Liên kết ObjectDataSource với các điều khiển Thêm chức năng cập nhật dữ liệu cho điều khiển Kiểm soát lỗi thao tác với CSDL Viết mã xử lý sự kiện cho các sự kiện ItemInserted... 13

Chuỗi kết nối Tạo chuỗi kết nối trong file web.config <connectionstrings> <add name="halloweenconnectionstring" connectionstring="data Source=localhost\sqlexpress;Initial Catalog=Halloween;Integrated Security=True" providername="system.data.sqlclient"/> </connectionstrings> 14

Thiết kế giao diện Thêm các điều khiển: GridView DetailsView Label 15

Lớp nghiệp vụ Category Khai báo các thuộc tính tương ứng với các cột lấy từ CSDL và các hàm get, set của các thuộc tính này public class Category { private string categoryid; private string shortname; private string longname; public string CategoryID { get { return categoryid; } set { categoryid = value; } } public string ShortName { get { return shortname; } set { shortname = value; } } public string LongName { get { return longname; } set { longname = value; } } public Category() Đối{}tượng Data Source - Đóng gói ứng dụng - Các kĩ thuật lập trình ASP.NET nâng cao } 16

Lớp truy cập CSDL CategoryDB Cung cấp các phương thức truy xuất, thêm, cập nhật, xóa dữ liệu và trả về kiểu đối tượng DataObject cho điều khiển ObjectDataSource Để chỉ định CategoryDB là lớp truy cập CSDL Thêm dòng [DataObject(true)] vào trước dòng khai báo lớp 17

Lớp truy cập CSDL CategoryDB Các phương thức của CategoryDB Lấy chuỗi kết nối được lưu trong file web.config private static string GetConnectionString() { return ConfigurationManager.ConnectionStrings ["HalloweenConnectionString"].ConnectionString; } Truy xuất tất cả danh mục sản phẩm trong bảng Category trả về kiểu List [DataObjectMethod(DataObjectMethodType.Select)] public static List<Category> GetCategories() {} Chỉ định đây là phương thức của lớp truy cập CSDL 18

Lớp truy cập CSDL CategoryDB Phương thức cập nhật CSDL [DataObjectMethod(DataObjectMethodType.Update)] public static int UpdateCategory(Category original_category, Category category) {} Phương thức xóa CSDL [DataObjectMethod(DataObjectMethodType.Delete)] public static int DeleteCategory(Category category) {} Phương thức chèn dữ liệu [DataObjectMethod(DataObjectMethodType.Insert)] public static int InsertCategory(Category category) {} 19

Phương thức truy xuất dữ liệu Truy cập CSDL theo kiến trúc kết nối sử dụng data reader [DataObjectMethod(DataObjectMethodType.Select)] public static List<Category> GetCategories() { List<Category> categorylist = new List<Category>(); SqlConnection con = new SqlConnection(GetConnectionString()); string sel = "SELECT CategoryID, ShortName, LongName " + "FROM Categories ORDER BY ShortName"; SqlCommand cmd = new SqlCommand(sel, con); con.open(); SqlDataReader dr = cmd.executereader(commandbehavior.closeconnection); Category category; while (dr.read()) { category = new Category(); category.categoryid = dr["categoryid"].tostring(); category.shortname = dr["shortname"].tostring(); category.longname = dr["longname"].tostring(); categorylist.add(category); } dr.close(); return categorylist; } 20

Phương thức thêm dữ liệu vào CSDL [DataObjectMethod(DataObjectMethodType.Insert)] public static int InsertCategory(Category category) { SqlConnection con = new SqlConnection(GetConnectionString()); string ins = "INSERT INTO Categories " + " (CategoryID, ShortName, LongName) " + " VALUES(@CategoryID, @ShortName, @LongName)"; SqlCommand cmd = new SqlCommand(ins, con); cmd.parameters.addwithvalue("categoryid", category.categoryid); cmd.parameters.addwithvalue("shortname", category.shortname); cmd.parameters.addwithvalue("longname", category.longname); con.open(); int i = cmd.executenonquery(); con.close(); return i; } 21

Phương thức cập nhật CSDL [DataObjectMethod(DataObjectMethodType.Update)] public static int UpdateCategory( Category category) { SqlConnection con = new SqlConnection(GetConnectionString()); string up = "UPDATE Categories " + "SET ShortName = @ShortName, " + "LongName = @LongName " + "WHERE CategoryID = @original_categoryid " ; SqlCommand cmd = new SqlCommand(up, con); cmd.parameters.addwithvalue("shortname", category.shortname); cmd.parameters.addwithvalue("longname", category.longname); cmd.parameters.addwithvalue("original_categoryid", category.categoryid); con.open(); int updatecount = cmd.executenonquery(); con.close(); return updatecount; } 22

Phương thức xóa CSDL [DataObjectMethod(DataObjectMethodType.Delete)] public static int DeleteCategory(Category category) { SqlConnection con = new SqlConnection(GetConnectionString()); string del = "DELETE FROM Categories " + "WHERE CategoryID = @CategoryID " + "AND ShortName = @ShortName " + "AND LongName = @LongName "; SqlCommand cmd = new SqlCommand(del, con); cmd.parameters.addwithvalue("categoryid", category.categoryid); cmd.parameters.addwithvalue("shortname", category.shortname); cmd.parameters.addwithvalue("longname", category.longname); con.open(); int i = cmd.executenonquery(); con.close(); return i; } 23

Truy xuất dữ liệu từ CSDL Thêm ObjectDataSource Chọn phương thức truy cập CSDL trong các tab SELECT, INSERT Chọn lớp truy cập CSDL 24

Truy xuất dữ liệu từ CSDL Liên kết Object DataSource với điều khiển 25

Mã aspx của Object data source <asp:objectdatasource ID="ObjectDataSource1" runat="server" ConflictDetection="CompareAllValues" DataObjectTypeName="Category" DeleteMethod="DeleteCategory" InsertMethod="InsertCategory" OldValuesParameterFormatString="original_{0}" SelectMethod="GetCategories" TypeName="CategoryDB" UpdateMethod="UpdateCategory"> </asp:objectdatasource> Tham khảo các thuộc tính trong SGK 26

Thêm chức năng cập nhật dữ liệu cho điều khiển Thêm các button edit, delete cho GridView Thêm button Insert cho Details. Đặt chế độ mặc định cho DetailsView là Insert (gán thuộc tính DefaultMode = Insert) 27

Kiểm soát lỗi thao tác với Thêm sự kiện RowUpdated, RowDeleted cho GridView Thêm sự kiện ItemInserted cho DetailsView 28

Phương thức xử lý sự kiện RowUpdated protected void GridView1_RowUpdated( Object sender, GridViewUpdatedEventArgs e) { if (e.exception!= null) { lblerror.text = "A database error has occurred.<br /><br />" + e.exception.message; if (e.exception.innerexception!= null) lblerror.text += "<br />Message: " + e.exception.innerexception.message; e.exceptionhandled = true; e.keepineditmode = true; } else if (e.affectedrows == 0) lblerror.text = "Another user may have updated that category." + "<br />Please try again."; } 29

Phương thức xử lý sự kiện RowDeleted protected void GridView1_RowDeleted( object sender, GridViewDeletedEventArgs e) { if (e.exception!= null) { lblerror.text = "A database error has occurred.<br /><br />" + e.exception.message; if (e.exception.innerexception!= null) lblerror.text += "<br />Message: " + e.exception.innerexception.message; e.exceptionhandled = true; } else if (e.affectedrows == 0) lblerror.text = "Another user may have updated that category. " + "<br />Please try again."; } 30

Phương thức xử lý sự kiện ItemInserted protected void DetailsView1_ItemInserted( object sender, DetailsViewInsertedEventArgs e) { if (e.exception!= null) { lblerror.text = "A database error has occurred.<br /><br />" + e.exception.message; if (e.exception.innerexception!= null) lblerror.text += "<br />Message: " + e.exception.innerexception.message; e.exceptionhandled = true; } } 31

32

Triển khai ứng dụng ASP.NET Triển khai (Deploy) là quá trình copy một ứng dụng web ASP.NET từ hệ thống phát triển ứng dụng tới server chạy ứng dụng. Ba phương pháp triển khai ứng dụng: Triển khai Xcopy Triển khai tiền biên dịch Tạo Web Setup Project 33

Triển khai XCopy Copy toàn bộ File nguồn của ứng dụng tới Server Hai cách triển khai Xcopy Sử dụng lệnh Xcopy Sử dụng lệnh Copy Web site trong Visual Studio Phương pháp này thực hiện khá dễ Thường dùng để tạo bản copy của ứng dụng trên các server khác nhau để kiểm thử. Với ứng dụng nhỏ là phương pháp tốt nhất 34

Demo triển khai XCopy Mở website trong visual studio. Chọn Copy Web Site trong menu Website Click vào Button Connect để mở hộp thoại Open Web Site để chọn vị trí copy file đến Chọn các File muốn copy và sử dụng button -> để copy file 35

Triển khai tiền biên dịch Biên dịch các trang của ứng dụng, sau đó các file assembly tiền biên dịch được copy tới server. Hai cách triển khai tiền biên dịch Sử dụng lệnh Publish Web Site trong Visual Studio Sử dụng lệnh aspnet_compiler từ cửa sổ dòng lệnh Triển khai tiền biên dịch có nhiều ưu điểm hơn triển khai Xcopy Tăng hiệu năng của người dùng đầu tiên truy cập đến site. Bảo mật hơn vì file nguồn không được copy tới server 36

Demo Triển khai tiền biên dịch Trong Visual Studio. Chọn Publish Web Site trong menu Build Chọn vị trí lưu file copy Nếu chọn checkbox, các file nguồn sẽ được triển khai cùng các file có thể thực thi 37

Tạo Web Setup Project Phương pháp này tạo ra một bộ cài theo chuẩn Windows, sử dụng để cài đặt ứng dụng Web lên một IIS Server. Sử dụng khi triển khai một ứng dụng trên nhiều server Phiên bản Visual Web Developer Express không hỗ trợ phương pháp triển khai này. 38

Demo Tạo Web Setup Project Chọn File -> Add -> New Project để hiển thị hộp thoại Add New Project 39

Demo Tạo Web Setup Project Trong cửa sổ Solution Explorer, nhấn chuột phải vào Web Setup Project chọn Add -> Project Output 40

Tạo Web Setup Project Tạo chương trình cài đặt bằng cách nhấn chuột phải lên Solution Explorer chọn Build. Bộ cài tạo ra nằm trong thư mục Debug hoặc Realease của Web Setup Project, gồm 2 file Setup.exe: File chạy Setup.msi: Chứa tất cả các file được cài đặt Để cài đặt ứng dụng Web, Copy file Setup.exe và Setup.msi tới server và chạy file setup.exe 41

Tạo và cấu hình thư mục ảo trong IIS Để Client có thể truy cập đến server, các file ứng dụng phải được copy đến thư mục gốc của Web server (C:\inetpub\wwwroot) Để Client có thể truy cập đến một website không nằm trong thư mục gốc, ta tạo một thư mục ảo trong IIS để trỏ tới thư mục chứa các file của website 42

Demo Tạo và cấu hình thư mục ảo trong IIS7 Các bước tạo và cấu hình thư mục ảo Tạo thư mục ảo (Virtual Directory) trong IIS Chuyển thư mục ảo thành ứng dụng Cấu hình xác thực Tạo Application Pool Gán Applicaton Pool cho ứng dụng Kích hoạt directory browsing Thiết lập trang chạy mặc định 43

Demo Tạo và cấu hình thư mục ảo trong IIS7 Tạo thư mục ảo trong IIS Mở IIS: Vào Run -> Inetmgr -> OK Site -> Default Web Site. Nhấn chuột phải chọn Add Virtual Directory Nhập tên thư mục ảo tại mục Alias. Chọn đường dẫn chỉ đến thư mục gốc của Web site tại mục Physical Path 44

Demo Tạo và cấu hình thư mục ảo trong IIS7 Chuyển thư mục ảo thành ứng dụng Nhấn chuột phải vào thư mục ảo trên IIS Chọn Convert to Application 45

Demo Tạo và cấu hình thư mục ảo trong IIS7 Cấu hình xác thực Chọn Authentication trong vùng giao diện chính Thay đổi trạng thái Enable/Disable 46

Demo Tạo và cấu hình thư mục ảo trong IIS7 Tạo Application Pool Chuột phải vào Application Pools. Chọn Add Applicaation Pool Thiết lập các thông số Name,.NET Framwork version, và Managed pinplline mode trong hộp thoại Add Application Pool Chọn Advanced Setting ở khung Actions bên phải. Thay đổi Identity của Application Pool thành Local System 47

Demo Tạo và cấu hình thư mục ảo trong IIS7 Gán Application Pool cho ứng dụng Nhấn chuột phải vào tên thư mục ảo trong IIS Chọn Manage Application -> Advanced Setting Chọn Application Pool cho ứng dụng tại mục Application Pool trong hộp thoại Advanced Setting 48

Demo Tạo và cấu hình thư mục ảo trong IIS7 Kích hoạt directory browsing Nhấn đúp chuột vào biểu tượng Directory browsing trên vùng làm việc chính Chọn Enable trong khung Actions phía bên phải IIS 49

Demo Tạo và cấu hình thư mục ảo trong IIS7 Chạy thử ứng dụng http://localhost/virtualdirectorytest/order.aspx 50

Demo Tạo và cấu hình thư mục ảo trong IIS7 Thiết lập trang chạy mặc định Chọn Default Document trong vùng làm việc chính Chọn mục Add trong khung Actions ở phía bên phải Nhập tên trang thiết lập để chạy mặc định 51

Demo Tạo và cấu hình thư mục ảo trong IIS7 Chạy ứng dụng trên các trình duyệt http://localhost/virtualdirectorytest/ Tên thư mục ảo 52

Chỉnh sửa File Web.config File Web.config chứa các thông tin cấu hình của ứng dụng Khi triển khai ứng dụng, bạn phải chỉnh sửa file web.config phù hợp với môi trường server. Ví dụ: Sửa chuỗi kết nối CSDL Phương pháp chỉnh sửa file web.config Chỉnh sửa bằng các trình soạn thảo: notepad, visual studio Sử dụng Web Site Administration Tool Chọn Website -> ASP.NET configuration trong visual studio 53

Giới thiệu các kỹ thuật lập trình ASP.NET khác Các kỹ thuật lập trình ASP.NET khác AJAX: Nhóm AJAX Webpart: Nhóm Webpart Cung cấp các điều khiển để tạo các web site cho phép người dùng chỉnh sửa nội dung, giao diện, và hành vi của trang web trực tiếp trên trình duyệt Tạo báo cáo: Nhóm Reporting Xây dựng các trang quản lý tài khoản người dùng: Nhóm Login Tạo các điều khiển người dùng: UserControl Sử dụng Email Tạo các trang thông báo lỗi Điều khiển back-button 54

Tổng kết Kiến trúc ba tầng Kiến trúc ba tầng phân tách phần trình bày, các quy tắc nghiệp vụ, thành phần truy cập CSDL của ứng dụng Ba tầng: Tầng trình bày: Gồm các trang ASP.NET quản lý giao diện ứng dụng Tầng trung gian Lớp truy cập CSDL Lớp nghiệp vụ Tầng CSDL: CSDL của ứng dụng 55

Tổng kết Object Data Source Giống với SQL data source, Object data source cung cấp phương pháp: Truy xuất hiển thị dữ liệu từ CSDL cho người dùng Cập nhật CSDL Khác Object data source cho phép phát triển ứng dụng CSDL theo kiến trúc ba tầng Object data source truy cập dữ liệu qua lớp truy cập dữ liệu. SQL data source truy cập CSDL trực tiếp. 56

Tổng kết Triển khai ứng dụng Triển khai (Deploy) là quá trình copy một ứng dụng web ASP.NET từ hệ thống phát triển ứng dụng tới server chạy ứng dụng. Ba phương pháp triển khai ứng dụng: Triển khai Xcopy Triển khai tiền biên dịch Tạo Web Setup Project 57