0

WEB-BASED VỚI MÔ HÌNH 3 LỚP TRÊN.NET

14 1,617 10

Đang tải.... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Tài liệu liên quan

Thông tin tài liệu

Ngày đăng: 18/08/2012, 11:36

HỆ THỐNG TÍCH HỢP ỨNG DỤNG DESKTOP VÀ WEB-BASED VỚI MÔ HÌNH 3 LỚP TRÊN.NET HỆ THỐNG TÍCH HỢP ỨNG DỤNG DESKTOP VÀ WEB-BASED VỚI HÌNH 3 LỚP TRÊN.NETTrung tâm Tin học-Trường ĐH Thủy LợiNỘI DUNG1. Khái quát về hình triển khai và phát triển ứng dụng . 2 1.1. Sơ lược về hình 3 lớp . 2 1.2. hình thực tế tả phát triển ứng dụng cụ thể 3 1.3 hình các thực thể khi triển khai trên hệ thống đa người dùng 4 2. Những người phát triển ứng dụng và công việc cần làm 5 2.1 Tổng quan về ứng dụng sử dụng cho việc trình diến (demo application) . 5 2.2. Tìm hiểu sơ qua về các thành phần có thể sử dụng độc lập của DNN . 6 2.3 Công cụ sinh mã (codesmith explorer) và các tùy biến 6 2.4 Xây dựng các Projects phục vụ cho công việc . 6 2.4 hình lập trình 3 lớp . 7 2.4.1 hình các lớp đối tượng . 7 2.4.2 Triển khai cụ thể của các Components của lớp Bissiness logic . 8 2.5 Xây dựng thành phần (components) cho lớp Data Access Layer (DAL) 9 Việc sinh mã thực hiện thành công . 10 2.6 Hoàn thiện lớp triển khai (Bussiness Logic Layer-BLL) . 10 3. Gắn kết các thành phần vào một Solution cho phát triển ứng dụng . 11 4. Trải nghiệm hình tích hợp ứng dụng Web-base và Winform-based 12 4.1. Sự tích hợp 12 4.2 Sự đồng bộ và tương đồng của các modules lập trình 12 5. Kết luận . 14 Hệ thống tích hợp ứng dụng Desktop và Web-based với hình 3 lớp trên .NET1. Khái quát về hình triển khai và phát triển ứng dụng1.1. Sơ lược về hình 3 lớpNếu là một người phát triển ứng dụng web với công nghệ .NET chắc hẳn bạn đã từng nghe nói đến DotNetNuke (DNN) như là một trong những hình phát triển ứng dụng web đầy triển vọng. Cũng tương tự, CSLA.NET được cho là một trong những mẫu hình về phát triển ứng dụng tích hợp web-based và windows-based. Tuy nhiên, đã bao giờ bạn nghĩ rằng có thể tự mình xây dựng một hình phát triển các ứng dụng trên Desktop tích hợp với Web? Ý chúng tôi nói đến ở đây không chỉ là cơ sở dữ liệu dùng chung mà có cả các “components” và cơ chế chung cho phép “lai ghép” các thành phần trong cả hai môi trường phát triển web và win forms. Dĩ nhiên việc phân lớp là nói đến cả các quy trình sinh mã (code generation) nhằm giảm nhẹ khối lượng lập trình, tiết kiệm nhân công và thời gian.Trong bài viết này, chúng tôi đề xuất một giải pháp mà có thể bạn sẽ thấy rằng những quy trình và hình ứng dụng để phát triển một Portal trên web có thể triển khai một quy trình xây dựng ứng dụng đa người dùng trên nền desktop với cơ sở dữ liệu tập trung.Chúng tôi xin dẫn ra đây hình xây dựng ứng dụng của DNN:1.2. hình thực tế tả phát triển ứng dụng cụ thểVới những gì mà một hình 3 lớp thể hiện, chúng ta sẽ xây dựng một hệt thống trên phát triển ứng dụng tích hợp Web-based và Desktop trên C# với CSDL tập trung trên hệ quản trị CSDL MS SQL server.Các Thành phần của Giao diện(Windows User Control)Lớp thể hiện giao diệnCác Thành phần thực thi(Bussiness Components )Lớp các thành phần thực hiện công việcLớp truy nhập dữ liệu đa hìnhMô tả truy nhập dữ liệu(Abstract Data Provider)Lớp truy xuất/nhập dữ liệuLớp thực thi truy nhập dữ liệu(Sql Data Provider)Các khối truy nhập dữ liệuCác đặc trưng của hình 3 lớp.1.3 hình các thực thể khi triển khai trên hệ thống đa người dùngDatabase Server```Các Thành phần của Giao diện(UI)Lớp Các thành phần thực thi(BLL)Lớp truy nhập dữ liệu(DAL)DAL Data Access Layer Truy vấn CSDL.BLL Bussiness Logic Layer Lớp thực thi giao dịch.UI User Interface Layer (Presentation) Lớp giao diện người dùng.Vậy ở đây chúng ta phải quan tâm đến các vấn đề:  Ứng dũng sẽ cung cấp những gì cho người dùng cuối (lớp UI) Làm sao để xây dựng các lớp (classes) tả thông tin trên BLL. Bằng cách nào người phát triển có thể duy trì BLL và không phải lập trình lại khi mà DAL của chúng ta dựa trên các thực thể CSDL khác nhau như (Sql, Access, Oracle ) Đặc trưng nào của BLL và DAL cho phép chúng ta giảm bớt công việc lập trình bằng việc sử dụng những công cụ sinh mã (code generator)Xin có một mách nước nhỏ: chúng ta sẽ sử dụng và tùy biến những công cụ cho phép sản sinh hàng loạt các đối tượng (tại BLL và DAL). Và hiển nhiên chúng ta tiết kiệm được thời gian và công sức (tới 25%) dành cho công việc phát triển ứng dụng.2. Những người phát triển ứng dụng và công việc cần làm2.1 Tổng quan về ứng dụng sử dụng cho việc trình diến (demo application)Như vậy công việc của người phát triển (developer) là gì. Chúng ta hãy xem một hình 3 lớp cung cấp cho người phát triển ứng dụng những gì. Có lẽ nhiều hơn những gì chúng tôi và các bạn có thể tưởng tượng ra. Chúng tôi xin đi vào việc xây dựng một ứng dụng cụ thể nhỏ với CSDL và tìm hiểu các công cụ mà chúng tôi đã áp dụng. Chúng ta hãy xem xét một hình CSDL nhỏ (tạm gọi là SmallStore) tả việc quản lý đơn giản thông tin về việc bán hàng cho một cửa hàng. Trong phần này chúng tôi sẽ lấy hình của Dotnetnuke làm hình mẫu đại diện cho hình ứng dung 3 lớp.Mô hình CSDL của SmallStore.Ghi chú:Hệ thống bao gồm thông tin về các nhân viên, khách hàng, và hóa đơn trong việc bán các sản phẩm của một cửa hàng. Các thông tin có thể được truy xuất theo từng bảng, với các điều kiện lọc theo từng quan hệ (Foreign key Contraints).Tại mối lớp trong hình đã triển khai, các đặc tả về CSDL vẫn được “truyền đạt” cho đến tận lớp Presentation. Các đặc tả này có thể là: khóa chính, khóa ngoại, danh sách đối tượng, các thao tác CSDL – thêm, sửa, xóa, tìm kiếm.2.2. Tìm hiểu sơ qua về các thành phần có thể sử dụng độc lập của DNNDotNetNuke.dllThư viện các thành phần Framework của DotNetNukeMicrosoft.ApplicationBlocks.Data.dllThư việc các hàm làm việc trực tiếp với CSDL DotNetNuke.SqlDataProvider.dllThư viện các sqlHelper dành cho việc truy nhập cơ sở dữ liệu trên MS SQL serverDotNetNuke.Caching.BroadcastPollingCachingProvider.SQLDataProvider.dllThư viện các phương thức quản lý bộ lưu đệm (cache) dùng cho tối ưu hóa truy nhập CSDL với MS SQL serverVới các nhân tố trên, chúng ta bước đầu có thể bắt tay vào việc xây dựng các thành phần của ứng dụng. Chúng tôi xin trình bày về quá trình triển khai các components theo thứ tự từ dưới lên (từ lớp truy nhập dữ liệu DAL) trong hình đã đưa ra.2.3 Công cụ sinh mã (codesmith explorer) và các tùy biếnCodesmith là một phần mềm, hay đúng hơn là một môi trường phát triển mẫu (template) dành cho việc sản sinh các đoạn mã dựa trên những tham số đưa vào và CSDL đã xây dựng. Có thể tìm thấy Codesmith và tải về theo liên kết:http://www.ericjsmith.net/codesmith/ CodeSmith Explorer là một ứng dụng nhỏ và miễn phí trong bộ CodeSmith Studio (bản thương mại – không miễn phí). CodeSmith Explorer khi được cài đặt sẽ có thể tích hợp sẵn trong môi trường lập trình của Visual Studio .NET dưới dạng một Add-on. CodeSmith Explorer sử dụng các templates để sinh mã cho việc lập trình. Các mẫu dành cho phát triển module trong DNN có thể download miễn phí tại liên kết:http://lucaslabs.net/blogs/mccullochs/archive/2004/02/15/487.aspx.2.4 Xây dựng các Projects phục vụ cho công việcHai Projects cơ bản mà chúng ta cần có để phát triển ứng dụng thể hiện trên hình sau. public class NhanVienController : DotNetNuke.Entities.Modules.ISearchable, DotNetNuke.Entities.Modules.IPortable{public NhanVienInfo Get(string maNhanVien){return (NhanVienInfo)DotNetNuke.Common.Utilities.CBO.FillObject(DataProvider.Instance().GetNhanVien(maNhanVien), typeof(NhanVienInfo));}}public class NhanVienInfo{#region "Private Members"string _maNhanVien;string _ten;bool _gioiTinh;DateTime _ngaySinh;string _dienThoai;string _diaChi;string _maPB;double _heSoLuong;#endregion#region "Constructors"public NhanVienInfo(){}public NhanVienInfo(string maNhanVien, string ten , bool gioiTinh , DateTime ngaySinh , string dienThoai , string diaChi , string maPB , double heSoLuong){this.MaNhanVien = maNhanVien;this.Ten = ten;this.GioiTinh = gioiTinh;this.NgaySinh = ngaySinh;this.DienThoai = dienThoai;this.DiaChi = diaChi;this.MaPB = maPB;this.HeSoLuong = heSoLuong;}#endregion}public abstract class DataProvider {public abstract IDataReader GetNhanVien(string maNhanVien);}public class SqlDataProvider : DataProvider public override IDataReader GetNhanVien(string maNhanVien){return (IDataReader)SqlHelper.ExecuteReader(ConnectionString, DatabaseOwner + ObjectQualifier + "HT_NhanVienGet", maNhanVien);}}Component ProjectChứa các components:Controller classInfo classDataProvider class.SqlDataProvider ProjectBao gồmSqlDataProvider classesStore Procedures.2.4 hình lập trình 3 lớp2.4.1 hình các lớp đối tượngChúng ta hãy xem xét một ví dụ của việc tạo ra các lớp để có thể thao tác với đối tượng lớp nhân viên (ứng với bảng HT_NhanVien trong CSDL). Các components được tạo ra sẽ có dạng thức như sau. Trong ví dụ này, phương thức lấy thông tin của một nhân viên theo khóa chính MaNhanVien được sử dụng để cho thấy các đối tượng trong kiến trúc của DNN.Mô hình của các đối tượng được trình bày trong sơ đồ dưới đâyController ClassĐối tượng điều khiển, sự dụng các phương thức của DataProvider để truy xuất dữ liệu.Info ClassLớp tả các đối tượng lưu trữ thông tinDataProvider ClassLớp ảo (abstract) định nghĩa các phương thức truy nhập dữ liệu. Lớp ảo này cho phép phát triển độc lập các tả truy nhập dữ liệu.SqlDataProvider ClassĐối tượng truy nhập dữ liệu thực sựStore ProcedureCác thủ tục ở CSDL MSSQL server được SqlDataProvider sử dụngControllerObjectInfoObjectDataProviderObjectSQLDataProviderObjectStore Procedurepublic class NhanVienController : DotNetNuke.Entities.Modules.ISearchable, DotNetNuke.Entities.Modules.IPortable{public NhanVienInfo Get(string maNhanVien){return (NhanVienInfo)DotNetNuke.Common.Utilities.CBO.FillObject(DataProvider.Instance().GetNhanVien(maNhanVien), typeof(NhanVienInfo));}}public class NhanVienInfo{#region "Private Members"string _maNhanVien;string _ten;bool _gioiTinh;DateTime _ngaySinh;string _dienThoai;string _diaChi;string _maPB;double _heSoLuong;#endregion#region "Constructors"public NhanVienInfo(){}public NhanVienInfo(string maNhanVien, string ten , bool gioiTinh , DateTime ngaySinh , string dienThoai , string diaChi , string maPB , double heSoLuong){this.MaNhanVien = maNhanVien;this.Ten = ten;this.GioiTinh = gioiTinh;this.NgaySinh = ngaySinh;this.DienThoai = dienThoai;this.DiaChi = diaChi;this.MaPB = maPB;this.HeSoLuong = heSoLuong;}#endregion}public abstract class DataProvider {public abstract IDataReader GetNhanVien(string maNhanVien);}public class SqlDataProvider : DataProvider public override IDataReader GetNhanVien(string maNhanVien){return (IDataReader)SqlHelper.ExecuteReader(ConnectionString, DatabaseOwner + ObjectQualifier + "HT_NhanVienGet", maNhanVien);}}2.4.2 Triển khai cụ thể của các Components của lớp Bissiness logicpublic class NhanVienController : DotNetNuke.Entities.Modules.ISearchable, DotNetNuke.Entities.Modules.IPortable{public NhanVienInfo Get(string maNhanVien){return (NhanVienInfo)DotNetNuke.Common.Utilities.CBO.FillObject(DataProvider.Instance().GetNhanVien(maNhanVien), typeof(NhanVienInfo));}}public class NhanVienInfo{#region "Private Members"string _maNhanVien;string _ten;bool _gioiTinh;DateTime _ngaySinh;string _dienThoai;string _diaChi;string _maPB;double _heSoLuong;#endregion#region "Constructors"public NhanVienInfo(){}public NhanVienInfo(string maNhanVien, string ten , bool gioiTinh , DateTime ngaySinh , string dienThoai , string diaChi , string maPB , double heSoLuong){this.MaNhanVien = maNhanVien;this.Ten = ten;this.GioiTinh = gioiTinh;this.NgaySinh = ngaySinh;this.DienThoai = dienThoai;this.DiaChi = diaChi;this.MaPB = maPB;this.HeSoLuong = heSoLuong;}#endregion}public abstract class DataProvider {public abstract IDataReader GetNhanVien(string maNhanVien);}public class SqlDataProvider : DataProvider public override IDataReader GetNhanVien(string maNhanVien){return (IDataReader)SqlHelper.ExecuteReader(ConnectionString, DatabaseOwner + ObjectQualifier + "HT_NhanVienGet", maNhanVien);}}#region "NhanVien Methods"public override IDataReader GetNhanVien(string maNhanVien){return (IDataReader)SqlHelper.ExecuteReader(ConnectionString, DatabaseOwner + ObjectQualifier + "HT_NhanVienGet", maNhanVien);}public override IDataReader ListNhanVien(){return (IDataReader)SqlHelper.ExecuteReader(ConnectionString, DatabaseOwner + ObjectQualifier + "HT_NhanVienList");}public override int AddNhanVien(string ten, bool gioiTinh, DateTime ngaySinh, string dienThoai, string diaChi, string maPB, double heSoLuong){return int.Parse(SqlHelper.ExecuteScalar(ConnectionString, DatabaseOwner + ObjectQualifier + "HT_NhanVienAdd", GetNull(ten), GetNull(gioiTinh), GetNull(ngaySinh), GetNull(dienThoai), GetNull(diaChi), GetNull(maPB), GetNull(heSoLuong)).ToString());}public override void UpdateNhanVien(string maNhanVien, string ten, bool gioiTinh, DateTime ngaySinh, string dienThoai, string diaChi, string maPB, double heSoLuong){SqlHelper.ExecuteNonQuery(ConnectionString, DatabaseOwner + ObjectQualifier + "HT_NhanVienUpdate", maNhanVien, GetNull(ten), GetNull(gioiTinh), GetNull(ngaySinh), GetNull(dienThoai), GetNull(diaChi), GetNull(maPB), GetNull(heSoLuong));}public override void DeleteNhanVien(string maNhanVien){SqlHelper.ExecuteNonQuery(ConnectionString, DatabaseOwner + ObjectQualifier + "HT_NhanVienDelete", maNhanVien);} #endregion2.5 Xây dựng thành phần (components) cho lớp Data Access Layer (DAL)Để cụ thể hóa, ta xem xét tạo một phiên bản SqlDataProvider cho một bảng trong CSDL. Lúc này ta hiểu mỗi bảng CSDL như là một lớp đối tượng. Chọn Bảng trong CSDL mà ta cần triển khai hình SqlDataProvider Ghi chú:Có một số lưu ý: Các bảng được chọn sinh mã bắt buộc phải có trường khóa chính (Primary Key) trong bảng. Khi đó các phương thức của SqlDataProvider được sinh ra có thể nhận biết được các tiêu chí như thêm, sửa, xóa, cập nhật và tìm kiếm.#region "NhanVien Methods"public override IDataReader GetNhanVien(string maNhanVien){return (IDataReader)SqlHelper.ExecuteReader(ConnectionString, DatabaseOwner + ObjectQualifier + "HT_NhanVienGet", maNhanVien);}public override IDataReader ListNhanVien(){return (IDataReader)SqlHelper.ExecuteReader(ConnectionString, DatabaseOwner + ObjectQualifier + "HT_NhanVienList");}public override int AddNhanVien(string ten, bool gioiTinh, DateTime ngaySinh, string dienThoai, string diaChi, string maPB, double heSoLuong){return int.Parse(SqlHelper.ExecuteScalar(ConnectionString, DatabaseOwner + ObjectQualifier + "HT_NhanVienAdd", GetNull(ten), GetNull(gioiTinh), GetNull(ngaySinh), GetNull(dienThoai), GetNull(diaChi), GetNull(maPB), GetNull(heSoLuong)).ToString());}public override void UpdateNhanVien(string maNhanVien, string ten, bool gioiTinh, DateTime ngaySinh, string dienThoai, string diaChi, string maPB, double heSoLuong){SqlHelper.ExecuteNonQuery(ConnectionString, DatabaseOwner + ObjectQualifier + "HT_NhanVienUpdate", maNhanVien, GetNull(ten), GetNull(gioiTinh), GetNull(ngaySinh), GetNull(dienThoai), GetNull(diaChi), GetNull(maPB), GetNull(heSoLuong));}public override void DeleteNhanVien(string maNhanVien){SqlHelper.ExecuteNonQuery(ConnectionString, DatabaseOwner + ObjectQualifier + "HT_NhanVienDelete", maNhanVien);} #endregionViệc sinh mã thực hiện thành côngĐoạn mã chứa các phuơng thức của SqlDataProvider dành cho truy xuất thông tin Nhân viên, tương ứng với bảng NhanVien trong CSDL:2.6 Hoàn thiện lớp triển khai (Bussiness Logic Layer-BLL)Công việc triển khai lớp BLL cũng được thực hiện tương tự. Chúng ta sẽ sử dụng các code templates và dùng Code Smith để sinh mã cho các lớp trong BLL. Các templates này được liệt kê dưới đây:Controller templateC# BLL Controller Class.cstInfo template#region "NhanVien Methods"public override IDataReader GetNhanVien(string maNhanVien){return (IDataReader)SqlHelper.ExecuteReader(ConnectionString, DatabaseOwner + ObjectQualifier + "HT_NhanVienGet", maNhanVien);}public override IDataReader ListNhanVien(){return (IDataReader)SqlHelper.ExecuteReader(ConnectionString, DatabaseOwner + ObjectQualifier + "HT_NhanVienList");}public override int AddNhanVien(string ten, bool gioiTinh, DateTime ngaySinh, string dienThoai, string diaChi, string maPB, double heSoLuong){return int.Parse(SqlHelper.ExecuteScalar(ConnectionString, DatabaseOwner + ObjectQualifier + "HT_NhanVienAdd", GetNull(ten), GetNull(gioiTinh), GetNull(ngaySinh), GetNull(dienThoai), GetNull(diaChi), GetNull(maPB), GetNull(heSoLuong)).ToString());}public override void UpdateNhanVien(string maNhanVien, string ten, bool gioiTinh, DateTime ngaySinh, string dienThoai, string diaChi, string maPB, double heSoLuong){SqlHelper.ExecuteNonQuery(ConnectionString, DatabaseOwner + ObjectQualifier + "HT_NhanVienUpdate", maNhanVien, GetNull(ten), GetNull(gioiTinh), GetNull(ngaySinh), GetNull(dienThoai), GetNull(diaChi), GetNull(maPB), GetNull(heSoLuong));}public override void DeleteNhanVien(string maNhanVien){SqlHelper.ExecuteNonQuery(ConnectionString, DatabaseOwner + ObjectQualifier + "HT_NhanVienDelete", maNhanVien);} #endregion[...]... Winform-based.ControllerObjectInfoObjectDataProviderObjectSQLDataProviderObjectWindows Form ControlsWeb Form Controls1 3 2 Hệ thống tích hợp ứng dụng Desktop và Web-based với hình 3 lớp trên .NET1. Khái qt về hình triển khai và phát triển ứng dụng1.1. Sơ lược về hình 3 lớp Nếu là một người phát triển ứng dụng web với công nghệ .NET chắc hẳn bạn đã từng nghe nói đến DotNetNuke (DNN) như là một trong những hình phát triển ứng dụng web đầy triển vọng. Cũng... viện được xây dựng cho hình 3 lớp  SmallStoreComponents.dll SmallStoreSql.dll4. Trải nghiệm hình tích hợp ứng dụng Web-base và Winform-based4.1. Sự tích hợpSau khi đã hiểu rõ hình 3 lớp, câu hỏi: “Làm sao có thể tích hợp ứng dụng Web-based và Windows form vào cùng một hình phát triển ứng dụng?” có lẽ đã có câu trả lời. Tuy nhiên vấn đề ở đây là tính đến đâu (lớp nào) thì hai mơi trường... trung.Chúng tơi xin dẫn ra đây hình xây dựng ứng dụng của DNN: 1 .3 hình các thực thể khi triển khai trên hệ thống đa người dùngDatabase Server```Các Thành phần của Giao diện(UI) Lớp Các thành phần thực thi(BLL) Lớp truy nhập dữ liệu(DAL)DAL Data Access Layer Truy vấn CSDL.BLL Bussiness Logic Layer Lớp thực thi giao dịch.UI User Interface Layer (Presentation) Lớp giao diện người dùng.Vậy... cho là một trong những mẫu hình về phát triển ứng dụng tích hợp web-based và windows-based. Tuy nhiên, đã bao giờ bạn nghĩ rằng có thể tự mình xây dựng một hình phát triển các ứng dụng trên Desktop tích hợp với Web? Ý chúng tơi nói đến ở đây khơng chỉ là cơ sở dữ liệu dùng chung mà có cả các “components” và cơ chế chung cho phép “lai ghép” các thành phần trong cả hai môi trường phát triển web... chứa các phuơng thức của SqlDataProvider dành cho truy xuất thông tin Nhân viên, tương ứng với bảng NhanVien trong CSDL:2.6 Hoàn thiện lớp triển khai (Bussiness Logic Layer-BLL)Công việc triển khai lớp BLL cũng được thực hiện tương tự. Chúng ta sẽ sử dụng các code templates và dùng Code Smith để sinh mã cho các lớp trong BLL. Các templates này được liệt kê dưới đây:Controller templateC# BLL Controller... là sự dùng lại được áp dụng cho các lớp DAL và BLL, chỉ đến lớp ứng dụng hay UI (Presentation) ta mới phải cụ thể hóa các đối tượng giao diện trong hai mơi trường lập trình khác nhau.4.2 Sự đồng bộ và tương đồng của các modules lập trìnhHệ thống được phát triển khơng dừng lại ở việc sử dụng chung DAL và BLL. Quy trình phát triển các modules cũng được ánh xạ từ Web-based sang Winform-based.ControllerObjectInfoObjectDataProviderObjectSQLDataProviderObjectWindows... forms. Dĩ nhiên việc phân lớp là nói đến cả các quy trình sinh mã (code generation) nhằm giảm nhẹ khối lượng lập trình, tiết kiệm nhân công và thời gian.Trong bài viết này, chúng tôi đề xuất một giải pháp mà có thể bạn sẽ thấy rằng những quy trình và hình ứng dụng để phát triển một Portal trên web có thể triển khai một quy trình xây dựng ứng dụng đa người dùng trên nền desktop với cơ sở dữ liệu tập... "HT_NhanVienDelete", maNhanVien);} #endregion 2.5 Xây dựng thành phần (components) cho lớp Data Access Layer (DAL)Để cụ thể hóa, ta xem xét tạo một phiên bản SqlDataProvider cho một bảng trong CSDL. Lúc này ta hiểu mỗi bảng CSDL như là một lớp đối tượng. Chọn Bảng trong CSDL mà ta cần triển khai hình SqlDataProvider..Ghi chú:Có một số lưu ý: Các bảng được chọn sinh mã bắt buộc phải có... giao dịch.UI User Interface Layer (Presentation) Lớp giao diện người dùng.Vậy ở đây chúng ta phải quan tâm đến các vấn đề:  Ứng dũng sẽ cung cấp những gì cho người dùng cuối (lớp UI) Làm sao để xây dựng các lớp (classes) tả thông tin trên BLL. Bằng cách nào người phát triển có thể duy trì BLL và khơng phải lập trình lại khi mà DAL của chúng ta dựa trên các thực thể CSDL khác nhau như (Sql, . dụng Desktop và Web-based với mô hình 3 lớp trên .NET1 . Khái quát về mô hình triển khai và phát triển ứng dụng1.1. Sơ lược về mô hình 3 lớpNếu là một người. TÍCH HỢP ỨNG DỤNG DESKTOP VÀ WEB-BASED VỚI MÔ HÌNH 3 LỚP TRÊN.NETTrung tâm Tin học-Trường ĐH Thủy LợiNỘI DUNG1. Khái quát về mô hình triển khai và phát triển
- Xem thêm -

Xem thêm: WEB-BASED VỚI MÔ HÌNH 3 LỚP TRÊN.NET, WEB-BASED VỚI MÔ HÌNH 3 LỚP TRÊN.NET,

Hình ảnh liên quan

Hệ thống tích hợp ứng dụng Desktop và Web-based với mô hình 3 lớp trên .NET - WEB-BASED VỚI MÔ HÌNH 3 LỚP TRÊN.NET

th.

ống tích hợp ứng dụng Desktop và Web-based với mô hình 3 lớp trên .NET Xem tại trang 2 của tài liệu.
1.2. Mô hình thực tế mô tả phát triển ứng dụng cụ thể - WEB-BASED VỚI MÔ HÌNH 3 LỚP TRÊN.NET

1.2..

Mô hình thực tế mô tả phát triển ứng dụng cụ thể Xem tại trang 3 của tài liệu.
1.3 Mô hình các thực thể khi triển khai trên hệ thống đa người dùng - WEB-BASED VỚI MÔ HÌNH 3 LỚP TRÊN.NET

1.3.

Mô hình các thực thể khi triển khai trên hệ thống đa người dùng Xem tại trang 4 của tài liệu.
Chúng ta hãy xem xét một mô hình CSDL nhỏ (tạm gọi là SmallStore) mô tả việc quản lý đơn giản thông tin về việc bán hàng cho một cửa hàng - WEB-BASED VỚI MÔ HÌNH 3 LỚP TRÊN.NET

h.

úng ta hãy xem xét một mô hình CSDL nhỏ (tạm gọi là SmallStore) mô tả việc quản lý đơn giản thông tin về việc bán hàng cho một cửa hàng Xem tại trang 5 của tài liệu.
2.4 Mô hình lập trình 3 lớp - WEB-BASED VỚI MÔ HÌNH 3 LỚP TRÊN.NET

2.4.

Mô hình lập trình 3 lớp Xem tại trang 7 của tài liệu.
Để cụ thể hóa, ta xem xét tạo một phiên bản SqlDataProvider cho một bảng trong CSDL. Lúc này ta hiểu mỗi bảng CSDL như là một lớp đối tượng - WEB-BASED VỚI MÔ HÌNH 3 LỚP TRÊN.NET

c.

ụ thể hóa, ta xem xét tạo một phiên bản SqlDataProvider cho một bảng trong CSDL. Lúc này ta hiểu mỗi bảng CSDL như là một lớp đối tượng Xem tại trang 9 của tài liệu.
Thư viện được xây dựng cho mô hình 3 lớp - WEB-BASED VỚI MÔ HÌNH 3 LỚP TRÊN.NET

h.

ư viện được xây dựng cho mô hình 3 lớp Xem tại trang 12 của tài liệu.
Trên đây là quy trình xác thực với hệ thống được mô hình hóa chung cho ứng dụng tích hợp - WEB-BASED VỚI MÔ HÌNH 3 LỚP TRÊN.NET

r.

ên đây là quy trình xác thực với hệ thống được mô hình hóa chung cho ứng dụng tích hợp Xem tại trang 13 của tài liệu.
Ta sẽ bàn tới việc xây dựng mô hình module như thế nào. Tại đây ta bổ xung các thành phần phù hợp với lập trình Winform từ mô hình trên web: - WEB-BASED VỚI MÔ HÌNH 3 LỚP TRÊN.NET

a.

sẽ bàn tới việc xây dựng mô hình module như thế nào. Tại đây ta bổ xung các thành phần phù hợp với lập trình Winform từ mô hình trên web: Xem tại trang 13 của tài liệu.