57
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

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 - Giáo trình FPT - Có ví dụ kèm theo

Embed Size (px)

DESCRIPTION

1. Kiến trúc ba tầng 2. Object Data Source 3. Triển khai ứng dụng

Citation preview

Page 1: 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 - Giáo trình FPT - Có ví dụ kèm theo

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

Page 2: 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 - Giáo trình FPT - Có ví dụ kèm theo

Các nội dung đã học trong bài trướcGiớ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

Hệ thống bài cũ

Đố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 2

Page 3: 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 - Giáo trình FPT - Có ví dụ kèm theo

Mục tiêu môn học

1. Kiến trúc ba tầng

2. Object Data Source

Đố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 3

2. Object Data Source

3. Triển khai ứng dụng

Page 4: 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 - Giáo trình FPT - Có ví dụ kèm theo

Đố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 4

Page 5: 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 - Giáo trình FPT - Có ví dụ kèm theo

Hầu hết các chuyên gia pháttriển ứng dụng đều sử dụngkiến trúc ba tầng để pháttriển ứng dụng web.Kiến trúc ba tầng phân táchphần trình bày, các quy tắcnghiệp vụ, thành phần truycập CSDL của ứng dụngBa tầng:

Tầng trình bàyTầng trung gianTầng CSDL

Kiến trúc ba tầngtrong ứng dụng ASP.NET

Web FormTầngtrìnhbày

Hầu hết các chuyên gia pháttriển ứng dụng đều sử dụngkiến trúc ba tầng để pháttriển ứng dụng web.Kiến trúc ba tầng phân táchphần trình bày, các quy tắcnghiệp vụ, thành phần truycập CSDL của ứng dụngBa tầng:

Tầng trình bàyTầng trung gianTầng CSDL

Đố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 5

Lớp truy cậpCSDL

CSDL

Tầngtrunggian

TầngCSDL

Lớp nghiệp vụ

Page 6: 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 - Giáo trình FPT - Có ví dụ kèm theo

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 gianGồm các lớp truy cập dữ liệu quản lý truy cập dữ liệu ứngdụng.Có thể chứa các đối tượng nghiệp vụ và các quy tắcnghiệp vụ

Ví dụ: Đối tượng nghiệp vụ: Các lớp biểu diễn thực thể kháchhàng, sản phẩm, nhân viên…Quy tắc nghiệp vụ: Chính sách giảm giá…

Tầng CSDLCSDL của ứng dụng

Kiến trúc ba tầngtrong ứ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 gianGồm các lớp truy cập dữ liệu quản lý truy cập dữ liệu ứngdụng.Có thể chứa các đối tượng nghiệp vụ và các quy tắcnghiệp vụ

Ví dụ: Đối tượng nghiệp vụ: Các lớp biểu diễn thực thể kháchhàng, sản phẩm, nhân viên…Quy tắc nghiệp vụ: Chính sách giảm giá…

Tầng CSDLCSDL của ứng dụng

Đố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 6

Page 7: 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 - Giáo trình FPT - Có ví dụ kèm theo

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.

Lớp truy cập CSDL

Đố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 7

Page 8: 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 - Giáo trình FPT - Có ví dụ kèm theo

Đố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 8

Page 9: 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 - Giáo trình FPT - Có ví dụ kèm theo

Giống với SQL data source, Object data source cungcấp phương pháp:

Truy xuất hiển thị dữ liệu từ CSDL cho người dùngCập nhật CSDL.

KhácObject data source cho phép phát triển ứng dụng CSDLtheo kiến trúc ba tầngObject 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 manglạ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 batầng. Do đó, nên sử dụng ObjectDataSource

Object Data Source

Giống với SQL data source, Object data source cungcấp phương pháp:

Truy xuất hiển thị dữ liệu từ CSDL cho người dùngCập nhật CSDL.

KhácObject data source cho phép phát triển ứng dụng CSDLtheo kiến trúc ba tầngObject 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 manglạ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 batầng. Do đó, nên sử dụng ObjectDataSource

Đố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 9

Page 10: 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 - Giáo trình FPT - Có ví dụ kèm theo

Ứng dụng CategoryMaint hiển thị thông tin danh mụcsản phẩm trong CSDL, cho phép người dùng cập nhậtthô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ảnphẩmMột điều khiển DetailsView thiết kế ở chế độ Insert chophép người dùng thêm mới sản phẩm

Giới thiệu ứng dụng CategoryMaint

Ứng dụng CategoryMaint hiển thị thông tin danh mụcsản phẩm trong CSDL, cho phép người dùng cập nhậtthô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ảnphẩmMột điều khiển DetailsView thiết kế ở chế độ Insert chophép người dùng thêm mới sản phẩm

Đố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 10

Page 11: 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 - Giáo trình FPT - Có ví dụ kèm theo

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.aspxHai điều khiển objectDatasourceHai đ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ệpvụ CategoryTầng CSDL: CSDL Halloween lưutrong hệ quản trị SQL Server

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.aspxHai điều khiển objectDatasourceHai đ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ệpvụ CategoryTầng CSDL: CSDL Halloween lưutrong hệ quản trị SQL Server

Đố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 11

CategoryDB,Category

CSDLHallowen

Tầngtrìnhbày

Tầng trunggian

TầngCSDL

Object DataSource

Điều khiển buộc dữ liệu

Web Form

Page 12: 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 - Giáo trình FPT - Có ví dụ kèm theo

Cấu trúc thư mục của ứng dụng

Thiết kếứng dụng theo kiến trúc ba tầng

Đố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 12

Page 13: 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 - Giáo trình FPT - Có ví dụ kèm theo

Nội dung demoTạo chuỗi kết nối trong File web.configThiết kết giao diệnTạo lớp nghiệp vụ: CategoryTạo lớp truy cập CSDL:

Tạo lớp CategoryDB

Truy xuất dữ liệu từ CSDLThêm ObjectDataSource, chỉ định CategoryDB là lớp truy cậpdữ liệu cho ObjectDataSource nàyLiê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ểnKiể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...

DemoXây dựng ứng dụng ProductList

theo kiến trúc ba tầng

Nội dung demoTạo chuỗi kết nối trong File web.configThiết kết giao diệnTạo lớp nghiệp vụ: CategoryTạo lớp truy cập CSDL:

Tạo lớp CategoryDB

Truy xuất dữ liệu từ CSDLThêm ObjectDataSource, chỉ định CategoryDB là lớp truy cậpdữ liệu cho ObjectDataSource nàyLiê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ểnKiể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...Đố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 13

Page 14: 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 - Giáo trình FPT - Có ví dụ kèm theo

Tạo chuỗi kết nối trong file web.config

Chuỗi kết nối

<connectionStrings><add name="HalloweenConnectionString" connectionString="Data

Source=localhost\sqlexpress;Initial Catalog=Halloween;IntegratedSecurity=True" providerName="System.Data.SqlClient"/>

</connectionStrings>

Đố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 14

Page 15: 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 - Giáo trình FPT - Có ví dụ kèm theo

Thêm các điều khiển:GridViewDetailsViewLabel

Thiết kế giao diện

Đố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 15

Page 16: 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 - Giáo trình FPT - Có ví dụ kèm theo

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

Lớp nghiệp vụ Category

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

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(){}}

Page 17: 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 - Giáo trình FPT - Có ví dụ kèm theo

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ềukhiển ObjectDataSource

Để chỉ định CategoryDB là lớp truy cập CSDLThêm dòng [DataObject(true)] vào trước dòng khai báolớp

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ềukhiển ObjectDataSource

Để chỉ định CategoryDB là lớp truy cập CSDLThêm dòng [DataObject(true)] vào trước dòng khai báolớp

Đố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 17

Page 18: 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 - Giáo trình FPT - Có ví dụ kèm theo

Các phương thức của CategoryDBLấy chuỗi kết nối được lưu trong file web.config

private static string GetConnectionString(){

returnConfigurationManager.ConnectionStrings

["HalloweenConnectionString"].ConnectionString;

}

Truy xuất tất cả danh mục sản phẩm trong bảng Categorytrả về kiểu List[DataObjectMethod(DataObjectMethodType.Select)]

public static List<Category> GetCategories(){}

Lớp truy cập CSDL CategoryDB

Các phương thức của CategoryDBLấy chuỗi kết nối được lưu trong file web.config

private static string GetConnectionString(){

returnConfigurationManager.ConnectionStrings

["HalloweenConnectionString"].ConnectionString;

}

Truy xuất tất cả danh mục sản phẩm trong bảng Categorytrả về kiểu List[DataObjectMethod(DataObjectMethodType.Select)]

public static List<Category> GetCategories(){}

Đố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 18

Chỉ định đây là phươngthức của lớp truy cậpCSDL

Page 19: 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 - Giáo trình FPT - Có ví dụ kèm theo

Phương thức cập nhật CSDL[DataObjectMethod(DataObjectMethodType.Update)]

public static int UpdateCategory(Categoryoriginal_Category,

Category category) {}

Phương thức xóa CSDL[DataObjectMethod(DataObjectMethodType.Delete)]

public static int DeleteCategory(Categorycategory) {}

Phương thức chèn dữ liệu[DataObjectMethod(DataObjectMethodType.Insert)]

public static int InsertCategory(Categorycategory) {}

Lớp truy cập CSDL CategoryDB

Phương thức cập nhật CSDL[DataObjectMethod(DataObjectMethodType.Update)]

public static int UpdateCategory(Categoryoriginal_Category,

Category category) {}

Phương thức xóa CSDL[DataObjectMethod(DataObjectMethodType.Delete)]

public static int DeleteCategory(Categorycategory) {}

Phương thức chèn dữ liệu[DataObjectMethod(DataObjectMethodType.Insert)]

public static int InsertCategory(Categorycategory) {}

Đố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 19

Page 20: 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 - Giáo trình FPT - Có ví dụ kèm theo

Truy cập CSDL theo kiến trúc kết nối sử dụng datareader

Phương thức truy xuất dữ liệu

[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;

}Đố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 20

[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;

}

Page 21: 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 - Giáo trình FPT - Có ví dụ kèm theo

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;

}

Đố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 21

[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;

}

Page 22: 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 - Giáo trình FPT - Có ví dụ kèm theo

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;

}

Đố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 22

[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;

}

Page 23: 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 - Giáo trình FPT - Có ví dụ kèm theo

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;

}

Đố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 23

[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;

}

Page 24: 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 - Giáo trình FPT - Có ví dụ kèm theo

Thêm ObjectDataSource

Truy xuất dữ liệu từ CSDL

Đố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 24

Chọn lớp truycập CSDL

Chọn phương thức truycập CSDL trong các tab

SELECT, INSERT…

Page 25: 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 - Giáo trình FPT - Có ví dụ kèm theo

Liên kết Object DataSource với điều khiển

Truy xuất dữ liệu từ CSDL

Đố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 25

Page 26: 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 - Giáo trình FPT - Có ví dụ kèm theo

Tham khảo các thuộc tính trong SGK

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

Đố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 26

Page 27: 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 - Giáo trình FPT - Có ví dụ kèm theo

Thêm các button edit, delete cho GridViewThêm button Insert cho Details.Đặt chế độ mặc định cho DetailsView là Insert (gánthuộc tính DefaultMode = Insert)

Thêm chức năngcập nhật dữ liệu cho điều khiển

Thêm các button edit, delete cho GridViewThêm button Insert cho Details.Đặt chế độ mặc định cho DetailsView là Insert (gánthuộc tính DefaultMode = Insert)

Đố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 27

Page 28: 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 - Giáo trình FPT - Có ví dụ kèm theo

Thêm sự kiện RowUpdated, RowDeleted cho GridViewThêm sự kiện ItemInserted cho DetailsView

Kiểm soát lỗi thao tác với

Thêm sự kiện RowUpdated, RowDeleted cho GridViewThêm sự kiện ItemInserted cho DetailsView

Đố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 28

Page 29: 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 - Giáo trình FPT - Có ví dụ kèm theo

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.";

}

Đố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 29

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.";

}

Page 30: 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 - Giáo trình FPT - Có ví dụ kèm theo

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.";

}

Đố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 30

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.";

}

Page 31: 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 - Giáo trình FPT - Có ví dụ kèm theo

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;

}}

Đố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 31

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;

}}

Page 32: 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 - Giáo trình FPT - Có ví dụ kèm theo

Đố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 32

Page 33: 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 - Giáo trình FPT - Có ví dụ kèm theo

Triển khai (Deploy) là quá trình copy một ứng dụng webASP.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 XcopyTriển khai tiền biên dịchTạo Web Setup Project

Triển khai ứng dụng ASP.NET

Triển khai (Deploy) là quá trình copy một ứng dụng webASP.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 XcopyTriển khai tiền biên dịchTạo Web Setup Project

Đố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 33

Page 34: 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 - Giáo trình FPT - Có ví dụ kèm theo

Copy toàn bộ File nguồn của ứng dụng tới ServerHai cách triển khai Xcopy

Sử dụng lệnh XcopySử 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ácserver khác nhau để kiểm thử.Với ứng dụng nhỏ là phương pháp tốt nhất

Triển khai XCopy

Copy toàn bộ File nguồn của ứng dụng tới ServerHai cách triển khai Xcopy

Sử dụng lệnh XcopySử 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ácserver khác nhau để kiểm thử.Với ứng dụng nhỏ là phương pháp tốt nhất

Đố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 34

Page 35: 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 - Giáo trình FPT - Có ví dụ kèm theo

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

Demotriển khai XCopy

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

Đố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 35

Page 36: 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 - Giáo trình FPT - Có ví dụ kèm theo

Biên dịch các trang của ứng dụng, sau đó các fileassembly 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 StudioSử 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 khaiXcopy

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

Triển khai tiền biên dịch

Biên dịch các trang của ứng dụng, sau đó các fileassembly 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 StudioSử 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 khaiXcopy

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

Đố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 36

Page 37: 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 - Giáo trình FPT - Có ví dụ kèm theo

Trong Visual Studio. Chọn Publish Web Site trong menuBuild

DemoTriển khai tiền biên dịch

Chọn vị trí lưufile copy

Nếu chọn checkbox, cácfile nguồn sẽ được triểnkhai cùng các file có thể

thực thi

Đố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 37

Nếu chọn checkbox, cácfile nguồn sẽ được triểnkhai cùng các file có thể

thực thi

Page 38: 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 - Giáo trình FPT - Có ví dụ kèm theo

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

Tạo Web Setup Project

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

Đố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 38

Page 39: 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 - Giáo trình FPT - Có ví dụ kèm theo

Chọn File -> Add -> New Project để hiển thị hộp thoạiAdd New Project

DemoTạo Web Setup Project

Đố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 39

Page 40: 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 - Giáo trình FPT - Có ví dụ kèm theo

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

DemoTạo Web Setup Project

Đố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 40

Page 41: 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 - Giáo trình FPT - Có ví dụ kèm theo

Tạo chương trình cài đặt bằng cách nhấn chuột phải lênSolution Explorer chọn Build.Bộ cài tạo ra nằm trong thư mục Debug hoặc Realeasecủa Web Setup Project, gồm 2 file

Setup.exe: File chạySetup.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

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ênSolution Explorer chọn Build.Bộ cài tạo ra nằm trong thư mục Debug hoặc Realeasecủa Web Setup Project, gồm 2 file

Setup.exe: File chạySetup.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

Đố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 41

Page 42: 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 - Giáo trình FPT - Có ví dụ kèm theo

Để Client có thể truy cập đến server, các file ứng dụngphả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ằmtrong 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

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ụngphả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ằmtrong 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

Đố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 42

Page 43: 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 - Giáo trình FPT - Có ví dụ kèm theo

Các bước tạo và cấu hình thư mục ảoTạo thư mục ảo (Virtual Directory) trong IISChuyển thư mục ảo thành ứng dụngCấu hình xác thựcTạo Application PoolGán Applicaton Pool cho ứng dụngKích hoạt directory browsingThiết lập trang chạy mặc định

DemoTạ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 ảoTạo thư mục ảo (Virtual Directory) trong IISChuyển thư mục ảo thành ứng dụngCấu hình xác thựcTạo Application PoolGán Applicaton Pool cho ứng dụngKích hoạt directory browsingThiết lập trang chạy mặc định

Đố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 43

Page 44: 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 - Giáo trình FPT - Có ví dụ kèm theo

Tạo thư mục ảo trong IISMở IIS: Vào Run -> Inetmgr -> OKSite -> Default Web Site. Nhấn chuột phải chọn AddVirtual DirectoryNhậ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ạimục Physical Path

DemoTạo và cấu hình thư mục ảo trong IIS7

Tạo thư mục ảo trong IISMở IIS: Vào Run -> Inetmgr -> OKSite -> Default Web Site. Nhấn chuột phải chọn AddVirtual DirectoryNhậ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ạimục Physical Path

Đố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 44

Page 45: 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 - Giáo trình FPT - Có ví dụ kèm theo

Chuyển thư mục ảo thành ứng dụngNhấn chuột phải vào thư mục ảo trên IISChọn Convert to Application

DemoTạo và cấu hình thư mục ảo trong IIS7

Đố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 45

Page 46: 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 - Giáo trình FPT - Có ví dụ kèm theo

Cấu hình xác thựcChọn Authentication trong vùng giao diện chínhThay đổi trạng thái Enable/Disable

DemoTạo và cấu hình thư mục ảo trong IIS7

Cấu hình xác thựcChọn Authentication trong vùng giao diện chínhThay đổi trạng thái Enable/Disable

Đố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 46

Page 47: 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 - Giáo trình FPT - Có ví dụ kèm theo

Tạo Application PoolChuột phải vào Application Pools. Chọn Add ApplicaationPoolThiết lập các thông số Name, .NET Framwork version, vàManaged pinplline mode trong hộp thoại Add ApplicationPoolChọn Advanced Setting ở khung Actions bên phải. Thayđổi Identity của Application Pool thành Local System

DemoTạo và cấu hình thư mục ảo trong IIS7

Tạo Application PoolChuột phải vào Application Pools. Chọn Add ApplicaationPoolThiết lập các thông số Name, .NET Framwork version, vàManaged pinplline mode trong hộp thoại Add ApplicationPoolChọn Advanced Setting ở khung Actions bên phải. Thayđổi Identity của Application Pool thành Local System

Đố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 47

Page 48: 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 - Giáo trình FPT - Có ví dụ kèm theo

Gán Application Pool cho ứng dụngNhấn chuột phải vào tên thư mục ảo trong IISChọn Manage Application -> Advanced SettingChọn Application Pool cho ứng dụng tại mục ApplicationPool trong hộp thoại Advanced Setting

DemoTạo và cấu hình thư mục ảo trong IIS7

Đố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 48

Page 49: 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 - Giáo trình FPT - Có ví dụ kèm theo

Kích hoạt directory browsingNhấn đúp chuột vào biểu tượng Directory browsing trênvùng làm việc chínhChọn Enable trong khung Actions phía bên phải IIS

DemoTạo và cấu hình thư mục ảo trong IIS7

Đố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 49

Page 50: 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 - Giáo trình FPT - Có ví dụ kèm theo

Chạy thử ứng dụnghttp://localhost/VirtualDirectoryTest/Order.aspx

DemoTạo và cấu hình thư mục ảo trong IIS7

Đố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 50

Page 51: 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 - Giáo trình FPT - Có ví dụ kèm theo

Thiết lập trang chạy mặc địnhChọn Default Document trong vùng làm việc chínhChọn mục Add trong khung Actions ở phía bên phảiNhập tên trang thiết lập để chạy mặc định

DemoTạo và cấu hình thư mục ảo trong IIS7

Đố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 51

Page 52: 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 - Giáo trình FPT - Có ví dụ kèm theo

Chạy ứng dụng trên các trình duyệthttp://localhost/VirtualDirectoryTest/

DemoTạo và cấu hình thư mục ảo trong IIS7

Tên thư mục ảo

Đố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 52

Page 53: 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 - Giáo trình FPT - Có ví dụ kèm theo

File Web.config chứa các thông tin cấu hình của ứngdụngKhi triển khai ứng dụng, bạn phải chỉnh sửa fileweb.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.configChỉnh sửa bằng các trình soạn thảo: notepad, visualstudio…Sử dụng Web Site Administration Tool

Chọn Website -> ASP.NET configuration trong visual studio

Chỉnh sửa File Web.config

File Web.config chứa các thông tin cấu hình của ứngdụngKhi triển khai ứng dụng, bạn phải chỉnh sửa fileweb.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.configChỉnh sửa bằng các trình soạn thảo: notepad, visualstudio…Sử dụng Web Site Administration Tool

Chọn Website -> ASP.NET configuration trong visual studio

Đố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 53

Page 54: 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 - Giáo trình FPT - Có ví dụ kèm theo

Các kỹ thuật lập trình ASP.NET khácAJAX: Nhóm AJAXWebpart: Nhóm Webpart

Cung cấp các điều khiển để tạo các web site cho phép ngườidùng chỉnh sửa nội dung, giao diện, và hành vi của trangweb trực tiếp trên trình duyệt

Tạo báo cáo: Nhóm ReportingXây dựng các trang quản lý tài khoản người dùng: NhómLoginTạo các điều khiển người dùng: UserControlSử dụng EmailTạo các trang thông báo lỗiĐiều khiển back-button

Giới thiệucác kỹ thuật lập trình ASP.NET khác

Các kỹ thuật lập trình ASP.NET khácAJAX: Nhóm AJAXWebpart: Nhóm Webpart

Cung cấp các điều khiển để tạo các web site cho phép ngườidùng chỉnh sửa nội dung, giao diện, và hành vi của trangweb trực tiếp trên trình duyệt

Tạo báo cáo: Nhóm ReportingXây dựng các trang quản lý tài khoản người dùng: NhómLoginTạo các điều khiển người dùng: UserControlSử dụng EmailTạo các trang thông báo lỗiĐiều khiển back-button

Đố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 54

Page 55: 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 - Giáo trình FPT - Có ví dụ kèm theo

Kiến trúc ba tầngKiến trúc ba tầng phân tách phần trình bày, các quy tắcnghiệp vụ, thành phần truy cập CSDL của ứng dụngBa tầng:

Tầng trình bày: Gồm các trang ASP.NET quản lý giao diệnứng dụngTầng trung gian

– Lớp truy cập CSDL– Lớp nghiệp vụ

Tầng CSDL: CSDL của ứng dụng

Tổng kết

Kiến trúc ba tầngKiến trúc ba tầng phân tách phần trình bày, các quy tắcnghiệp vụ, thành phần truy cập CSDL của ứng dụngBa tầng:

Tầng trình bày: Gồm các trang ASP.NET quản lý giao diệnứng dụngTầng trung gian

– Lớp truy cập CSDL– Lớp nghiệp vụ

Tầng CSDL: CSDL của ứng dụng

Đố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 55

Page 56: 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 - Giáo trình FPT - Có ví dụ kèm theo

Object Data SourceGiống với SQL data source, Object data source cungcấp phương pháp:

Truy xuất hiển thị dữ liệu từ CSDL cho người dùngCập nhật CSDL

KhácObject data source cho phép phát triển ứng dụng CSDLtheo kiến trúc ba tầngObject 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.

Tổng kết

Object Data SourceGiống với SQL data source, Object data source cungcấp phương pháp:

Truy xuất hiển thị dữ liệu từ CSDL cho người dùngCập nhật CSDL

KhácObject data source cho phép phát triển ứng dụng CSDLtheo kiến trúc ba tầngObject 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.

Đố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 56

Page 57: 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 - Giáo trình FPT - Có ví dụ kèm theo

Triển khai ứng dụngTriển khai (Deploy) là quá trình copy một ứng dụng webASP.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 XcopyTriển khai tiền biên dịchTạo Web Setup Project

Tổng kết

Triển khai ứng dụngTriển khai (Deploy) là quá trình copy một ứng dụng webASP.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 XcopyTriển khai tiền biên dịchTạo Web Setup Project

Đố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 57