SlideShare uma empresa Scribd logo
1 de 14
Baixar para ler offline
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

                                                                Trung tâm Tin học-Trường ĐH Thủy Lợi

                                                       NỘI DUNG

1. Khái quát về mô hình triển khai và phát triển ứng dụng......................................2
    1.1. Sơ lược về mô hình 3 lớp................................................................................2
    1.2. Mô hình thực tế mô tả phát triển ứng dụng cụ thể...........................................3
    1.3 Mô 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 Mô hình lập trình 3 lớp....................................................................................7
       2.4.1 Mô 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 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 mô hình 3 lớp trên
                                 .NET


1. Khái quát về mô hình triển khai và phát triển ứng dụng

1.1. Sơ lược về mô 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 mô 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 mô 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à mô 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 mô hình xây dựng ứng dụng của DNN:
1.2. Mô hình thực tế mô tả phát triển ứng dụng cụ thể

Với những gì mà một mô 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.


                           Lớp thể hiện giao diện

                          Các Thành phần của Giao diện
                             (Windows User Control)




                             Lớp các thành phần
                             thực hiện công việc

                             Các Thành phần thực thi
                             (Bussiness Components )




                          Lớp truy xuất/nhập dữ liệu

                           Lớp truy nhập dữ liệu đa hình
                              Mô tả truy nhập dữ liệu
                             (Abstract Data Provider)



                           Lớp thực thi truy nhập dữ liệu
                                (Sql Data Provider)




                            Các khối truy nhập dữ liệu


                       Các đặc trưng của mô hình 3 lớp.
1.3 Mô hình các thực thể khi triển khai trên hệ thống đa người dùng



                 `
                                                  Lớp truy nhập dữ liệu
                                                          (DAL)

                                                                          Database Server


                                       Lớp Các thành phần thực thi
                                                 (BLL)




                              Các Thành phần của Giao diện
                                          (UI)




                                 `




                                                                           `


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) mô 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àm

2.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
mô 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 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. Trong phần này
chúng tôi sẽ lấy mô hình của Dotnetnuke làm hình mẫu đại diện cho mô 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 mô 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
DNN
DotNetNuke.dll
            Thư viện các thành phần Framework của DotNetNuke
Microsoft.ApplicationBlocks.Data.dll
            Thư việc các hàm làm việc trực tiếp với CSDL
DotNetNuke.SqlDataProvider.dll
            Thư viện các sqlHelper dành cho việc truy nhập cơ sở dữ liệu trên
            MS SQL server
DotNetNuke.Caching.BroadcastPollingCachingProvider.SQLDataProvider.dl
l
            Thư 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 server

Vớ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 mô hình
đã đưa ra.

2.3 Công cụ sinh mã (codesmith explorer) và các tùy biến

Codesmith 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ệc

Hai 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.

   Component Project
   Chứa các components:                       SqlDataProvider Project
   Controller class                           Bao gồm
   Info class                                 SqlDataProvider classes
   DataProvider class.                        Store Procedures.
2.4 Mô hình lập trình 3 lớp

2.4.1 Mô hình các lớp đối tượng

Chú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 đây


       Controller                                       Info
        Object                                         Object


                              DataProvide
                                   r
                                Object


                          SQLDataProvider                         Store
                              Object                            Procedure

Controller 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 Class
             Lớp mô tả các đối tượng lưu trữ thông tin
DataProvider Class
             Lớ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 mô tả truy
             nhập dữ liệu.
SqlDataProvider Class
             Đối tượng truy nhập dữ liệu thực sự
Store Procedure
             Các thủ tục ở CSDL MSSQL server được SqlDataProvider sử
             dụng
2.4.2 Triển khai cụ thể của các Components của lớp Bissiness logic

 public class NhanVienController : DotNetNuke.Entities.Modules.ISearchable,
 DotNetNuke.Entities.Modules.IPortable
 {
        public NhanVienInfo Get(string maNhanVien)
        {
               return
               (NhanVienInfo)DotNetNuke.Common.Utilities.CBO.FillObject(DataProv
               ider.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.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 mô 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.
.
Việ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:




 #region "NhanVien Methods"
 public override IDataReader GetNhanVien(string maNhanVien)
 {
      return (IDataReader)SqlHelper.ExecuteReader(ConnectionString, DatabaseOwner + ObjectQualifi
 }

 public override IDataReader ListNhanVien()
 {
      return (IDataReader)SqlHelper.ExecuteReader(ConnectionString, DatabaseOwner + ObjectQualifi
 }

 public override int AddNhanVien(string ten, bool gioiTinh, DateTime ngaySinh, string dienThoai,
 {
      return
      int.Parse(SqlHelper.ExecuteScalar(ConnectionString, DatabaseOwner + ObjectQualifier + "HT_N
 }

 public override void UpdateNhanVien(string maNhanVien, string ten, bool gioiTinh, DateTime ngayS
 {
      SqlHelper.ExecuteNonQuery(ConnectionString, DatabaseOwner + ObjectQualifier + "HT_NhanVienU
 }

 public override void DeleteNhanVien(string maNhanVien)
 {
      SqlHelper.ExecuteNonQuery(ConnectionString, DatabaseOwner + ObjectQualifier + "HT_NhanVienD
 }
  #endregion




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 template
            C# BLL Controller Class.cst
Info template
C# BLL Info Class.cst
DataProvider template
            C# DataProvider.cst

Chú ý rằng DataProvider là một lớp ảo (abstract) nhằm tách rời lớp Bussiness khỏi
các thực thể CSDL cụ thể như MS SQL (do SqlDataProvider đảm nhiệm). Việc “ảo
hóa” truy nhập CSDL này cho phép ta triển khai ứng dụng trên một nền quản trị
CSDL khác mà không phải xây dựng lại hay biên dịch lại lớp Bussiness.

Ví dụ thể hiện cho tư duy trên là ta xây dựng một OracleDataProvider độc lập (có
thể là một thư viện dll cũng được mô hình hóa giống SqlDataProvider). Sau đó gắn
nó với DataProvider ảo thông qua cơ chế Reflection (tạo ra môt thể hiện cụ thể cho
DataProvider tại thời điểm chạy thông qua thư viện dll đã được biên dịch sẵn nói
trên).

3. Gắn kết các thành phần vào một Solution cho phát triển ứng dụng
Component Project (được tạo ra với biên dịch Class Library)
      Chứa các thành phần
         Controller classes
         Info classes
         DataProvider classes
      Tên của project
         SmallStoreComponents
      Các thư viện sử dụng của DNN
         DotNetNuke.dll
         Microsoft.ApplicationBlocks.Data.dll
SqlDataProvider Project (được tạo ra với biên dịch Class Library)
      Chứa các thành phần
         SqlDataProvider class
         Các hàm thực thi của SQL: Sql store procedures
      Tên của project
         SmallStoreSql
      Các thư viện sử dụng của DNN
         DotNetNuke.dll
         Microsoft.ApplicationBlocks.Data.dll
      Thư viện phụ thuộc
         SmallStoreComponents.dll
Application Solution (solution cho ứng dụng)
Solution tạo ra để gắn kết các Projects trên và project ứng dụng của
      chúng ta
      Tên của Solution
          SmallStore
      Các thư viện sử dụng của DNN
          DotNetNuke.dll
          Microsoft.ApplicationBlocks.Data.dll
      Thư viện được xây dựng cho mô hình 3 lớp
          SmallStoreComponents.dll
          SmallStoreSql.dll

4. Trải nghiệm mô hình tích hợp ứng dụng Web-base và Winform-
based

4.1. Sự tích hợp

Sau khi đã hiểu rõ mô 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 mô 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 phát
triển đó phải tách nhau ra. Và chúng ta có có thể nói ngay 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.


                   Windows Form                           Web Form
       3              Controls                             Controls



                  Controller          DataProvider                Info
       2           Object                Object                  Object




                                   SQLDataProvider
       1                               Object


4.2 Sự đồng bộ và tương đồng của các modules lập trình

Hệ 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.
Yêu cầu                         Khởi tạo            Cấp thẻ
     đăng nhập           Xác thực     Session            nhận thực

                                                                           Truy nhập
                                                                           ứng dụng

                        Thoát ứng     Kết thúc         Kết thúc phiên
                          dụng        Session            truy nhập


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. Mục tiêu của mô hình trên là đưa ra quy trình chung nhất để có thể hợp
nhất ứng dụng web và winform. Có một sự khác biệt nhỏ là trên ứng dụng web luôn
phải trao đổi thông tin nhận thực giữa client (browser) và server, còn trên ứng dụng
winform, một khi session được khởi tạo, nó có thể được lưu giữ trong ứng dụng
desktop và việc xác thực qua mỗi thao tác chỉ là sự kiểm tra các biến session đã
được lưu này.

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:

      Phía bên phải của hình dưới đây là mô hình tương ứng giống như xây dựng
       Web-based (chỉ khác là chúng được hiểu với tư cách các Windows User
       Control).
      Phía bên trái là các thành phần bổ xung cho ứng dụng windows form. Ở đây,
       các forms của lớp UI sẽ được dựng lên từ các User Controls kế thừa từ Portal
       ModuleBase mà bên trong đã có sẵn các tham số về phiên đăng nhập, cấu
       hình module, thông tin người dùng và quyền hạn truy nhập các chức năng hệ
       thống hay quyền hạn sử dụng các thao tác CSDL.


                     FormBase                                 Portal
                                                            ModuleBase



                   MyFormBase                              MyModuleBase




                 Các forms thể hiện        Dựng             User Control
                     của lớp UI
5. Kết luận

Như vậy sau khi có được mô hình ứng dụng tích hợp, ta có thể phát triển, bảo trì,
thậm chí “du nhập” toàn phần các chức năng đã lập trình trên web cho ứng dụng
trên windows form và ngược lại. Việc làm này rút ngắn khá nhiều thời gian phát
triển ứng dụng.

Nếu các quy trình nghiệp vụ (các chức năng) được tách ra khỏi lập trình giao diện
thì ta hoàn toàn có thể triển khai những hệ thống chạy độc lập trên nền web hoặc
windows form mà vẫn sử dụng chung được các thư viện hay mã nguồn đã viết (mà
không phải sửa đổi lại). Sự thực là chúng tôi đã có một hệ thống như vậy.1




1
 Sơ đồ phân tích thiết kế cũng như thư viện dựng sẵn (không phải là mã nguồn), kèm theo các công cụ sinh
mã và templates sinh mã chúng tôi hoàn toàn có thể cung cấp cho các bạn để chạy thử.

Mais conteúdo relacionado

Mais procurados

Hdth07 ltudql02-linq-ep1
Hdth07 ltudql02-linq-ep1Hdth07 ltudql02-linq-ep1
Hdth07 ltudql02-linq-ep1Dũng Đinh
 
Trong bài viết hôm nay
Trong bài viết hôm nayTrong bài viết hôm nay
Trong bài viết hôm nayledoanduc
 
Mvc4 seminar - hoclaptrinhweb.com - Tài liệu Nhất Nghệ
Mvc4 seminar - hoclaptrinhweb.com - Tài liệu Nhất NghệMvc4 seminar - hoclaptrinhweb.com - Tài liệu Nhất Nghệ
Mvc4 seminar - hoclaptrinhweb.com - Tài liệu Nhất NghệMasterCode.vn
 
Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPT
Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPTBài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPT
Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPTMasterCode.vn
 
Bài 1: Làm quen với SQL Server 2008 - Giáo trình FPT
Bài 1: Làm quen với SQL Server 2008 - Giáo trình FPTBài 1: Làm quen với SQL Server 2008 - Giáo trình FPT
Bài 1: Làm quen với SQL Server 2008 - Giáo trình FPTMasterCode.vn
 
Hdth08 ltudql02-linq
Hdth08 ltudql02-linqHdth08 ltudql02-linq
Hdth08 ltudql02-linqDũng Đinh
 
Bai3 gioi thieu access t9
Bai3 gioi thieu access t9Bai3 gioi thieu access t9
Bai3 gioi thieu access t9Dao van Ty
 
1 giới thiệu-cài đặt oracle
1 giới thiệu-cài đặt oracle1 giới thiệu-cài đặt oracle
1 giới thiệu-cài đặt oraclehoangdinhhanh88
 
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 2
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 2Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 2
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 2pisu412
 
Cac giai phap_lap_trinh_c___final_[bookbooming.com]
Cac giai phap_lap_trinh_c___final_[bookbooming.com]Cac giai phap_lap_trinh_c___final_[bookbooming.com]
Cac giai phap_lap_trinh_c___final_[bookbooming.com]bookbooming1
 
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng webBài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng webMasterCode.vn
 
Giáo trình vb.net
Giáo trình vb.netGiáo trình vb.net
Giáo trình vb.netHung Pham
 
Các bước kết nối csdl my sql với java
Các bước kết nối csdl my sql với javaCác bước kết nối csdl my sql với java
Các bước kết nối csdl my sql với javaBrand Xanh
 
Hướng dẫn lập trình với SCSF phần I (smart client software factory)
Hướng dẫn lập trình với SCSF phần I (smart client software factory)Hướng dẫn lập trình với SCSF phần I (smart client software factory)
Hướng dẫn lập trình với SCSF phần I (smart client software factory)Minh Tri Lam
 
01 sql ddl_commands
01 sql ddl_commands01 sql ddl_commands
01 sql ddl_commandsthai
 
Dữ liệu không gian trên SQL Server - (Spatial Data in SQL Server)
Dữ liệu không gian trên SQL Server - (Spatial Data in SQL Server)Dữ liệu không gian trên SQL Server - (Spatial Data in SQL Server)
Dữ liệu không gian trên SQL Server - (Spatial Data in SQL Server)Truong Ho
 
Bài 6: Bảo mật trong SQL SERVER 2008 - Giáo trình FPT
Bài 6: Bảo mật trong SQL SERVER 2008 - Giáo trình FPTBài 6: Bảo mật trong SQL SERVER 2008 - Giáo trình FPT
Bài 6: Bảo mật trong SQL SERVER 2008 - Giáo trình FPTMasterCode.vn
 
Hướng dẫn lập trình quản lý c#
Hướng dẫn lập trình quản lý c#Hướng dẫn lập trình quản lý c#
Hướng dẫn lập trình quản lý c#An Nguyen
 

Mais procurados (20)

Hdth07 ltudql02-linq-ep1
Hdth07 ltudql02-linq-ep1Hdth07 ltudql02-linq-ep1
Hdth07 ltudql02-linq-ep1
 
Trong bài viết hôm nay
Trong bài viết hôm nayTrong bài viết hôm nay
Trong bài viết hôm nay
 
Mvc4 seminar - hoclaptrinhweb.com - Tài liệu Nhất Nghệ
Mvc4 seminar - hoclaptrinhweb.com - Tài liệu Nhất NghệMvc4 seminar - hoclaptrinhweb.com - Tài liệu Nhất Nghệ
Mvc4 seminar - hoclaptrinhweb.com - Tài liệu Nhất Nghệ
 
Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPT
Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPTBài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPT
Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPT
 
Bài 1: Làm quen với SQL Server 2008 - Giáo trình FPT
Bài 1: Làm quen với SQL Server 2008 - Giáo trình FPTBài 1: Làm quen với SQL Server 2008 - Giáo trình FPT
Bài 1: Làm quen với SQL Server 2008 - Giáo trình FPT
 
Hdth08 ltudql02-linq
Hdth08 ltudql02-linqHdth08 ltudql02-linq
Hdth08 ltudql02-linq
 
Bai3 gioi thieu access t9
Bai3 gioi thieu access t9Bai3 gioi thieu access t9
Bai3 gioi thieu access t9
 
1 giới thiệu-cài đặt oracle
1 giới thiệu-cài đặt oracle1 giới thiệu-cài đặt oracle
1 giới thiệu-cài đặt oracle
 
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 2
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 2Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 2
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 2
 
Cac giai phap_lap_trinh_c___final_[bookbooming.com]
Cac giai phap_lap_trinh_c___final_[bookbooming.com]Cac giai phap_lap_trinh_c___final_[bookbooming.com]
Cac giai phap_lap_trinh_c___final_[bookbooming.com]
 
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng webBài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
 
Giáo trình vb.net
Giáo trình vb.netGiáo trình vb.net
Giáo trình vb.net
 
Slides1
Slides1Slides1
Slides1
 
Các bước kết nối csdl my sql với java
Các bước kết nối csdl my sql với javaCác bước kết nối csdl my sql với java
Các bước kết nối csdl my sql với java
 
Hướng dẫn lập trình với SCSF phần I (smart client software factory)
Hướng dẫn lập trình với SCSF phần I (smart client software factory)Hướng dẫn lập trình với SCSF phần I (smart client software factory)
Hướng dẫn lập trình với SCSF phần I (smart client software factory)
 
01 sql ddl_commands
01 sql ddl_commands01 sql ddl_commands
01 sql ddl_commands
 
Dữ liệu không gian trên SQL Server - (Spatial Data in SQL Server)
Dữ liệu không gian trên SQL Server - (Spatial Data in SQL Server)Dữ liệu không gian trên SQL Server - (Spatial Data in SQL Server)
Dữ liệu không gian trên SQL Server - (Spatial Data in SQL Server)
 
Bai tap thuc hanh
Bai tap thuc hanhBai tap thuc hanh
Bai tap thuc hanh
 
Bài 6: Bảo mật trong SQL SERVER 2008 - Giáo trình FPT
Bài 6: Bảo mật trong SQL SERVER 2008 - Giáo trình FPTBài 6: Bảo mật trong SQL SERVER 2008 - Giáo trình FPT
Bài 6: Bảo mật trong SQL SERVER 2008 - Giáo trình FPT
 
Hướng dẫn lập trình quản lý c#
Hướng dẫn lập trình quản lý c#Hướng dẫn lập trình quản lý c#
Hướng dẫn lập trình quản lý c#
 

Semelhante a Mo hinh-3-lop

Thương mại điện tử
Thương  mại điện tửThương  mại điện tử
Thương mại điện tửgacon2009
 
Lập trình hướng đối tượng Chương 6 Design Pattern.pptx
Lập trình hướng đối tượng Chương 6 Design Pattern.pptxLập trình hướng đối tượng Chương 6 Design Pattern.pptx
Lập trình hướng đối tượng Chương 6 Design Pattern.pptxLmTrn286060
 
Lập trình hướng đối tượng Chương 6 Design Pattern.pptx
Lập trình hướng đối tượng Chương 6 Design Pattern.pptxLập trình hướng đối tượng Chương 6 Design Pattern.pptx
Lập trình hướng đối tượng Chương 6 Design Pattern.pptxLmTrn286060
 
Gt he quan_tri_csdl_ms_sql_server
Gt he quan_tri_csdl_ms_sql_serverGt he quan_tri_csdl_ms_sql_server
Gt he quan_tri_csdl_ms_sql_serveranhanh81
 
1.+tai+lieu+thiet+ke
1.+tai+lieu+thiet+ke1.+tai+lieu+thiet+ke
1.+tai+lieu+thiet+keLinh Hoang
 
Tailieu.vncty.com giao-trinh-sql-2000
Tailieu.vncty.com   giao-trinh-sql-2000Tailieu.vncty.com   giao-trinh-sql-2000
Tailieu.vncty.com giao-trinh-sql-2000Trần Đức Anh
 
Bai 1 lam quen voi sql 2008
Bai 1 lam quen voi sql 2008Bai 1 lam quen voi sql 2008
Bai 1 lam quen voi sql 2008Phương Nhung
 
Phan tich httt_bang_uml
Phan tich httt_bang_umlPhan tich httt_bang_uml
Phan tich httt_bang_umlMai Mit
 
Phan tich hệ thống thông tin bằng uml
Phan tich hệ thống thông tin bằng umlPhan tich hệ thống thông tin bằng uml
Phan tich hệ thống thông tin bằng umldlmonline24h
 
Phan tich httt_bang_uml
Phan tich httt_bang_umlPhan tich httt_bang_uml
Phan tich httt_bang_umlAxnet Dung
 
01.1-Quy trinh phat trien phan mem.pptx
01.1-Quy trinh phat trien phan mem.pptx01.1-Quy trinh phat trien phan mem.pptx
01.1-Quy trinh phat trien phan mem.pptxTunTrung15
 
Báo cáo kĩ thuật phần mềm và ứng dụng
Báo cáo kĩ thuật phần mềm và ứng dụngBáo cáo kĩ thuật phần mềm và ứng dụng
Báo cáo kĩ thuật phần mềm và ứng dụngVượng Đặng
 
Asp.net mvc framework qua cac vi du
Asp.net mvc framework  qua cac vi duAsp.net mvc framework  qua cac vi du
Asp.net mvc framework qua cac vi duKim Hyun Hai
 
Giao trinh phan tich thiet ke he thong thong tin
Giao trinh phan tich thiet ke he thong thong tinGiao trinh phan tich thiet ke he thong thong tin
Giao trinh phan tich thiet ke he thong thong tinNguyen Patrick
 
Silverlight chapter 1
Silverlight chapter 1Silverlight chapter 1
Silverlight chapter 1hthuyet
 

Semelhante a Mo hinh-3-lop (20)

Thương mại điện tử
Thương  mại điện tửThương  mại điện tử
Thương mại điện tử
 
04 de cuong
04 de cuong04 de cuong
04 de cuong
 
3250
32503250
3250
 
Lập trình hướng đối tượng Chương 6 Design Pattern.pptx
Lập trình hướng đối tượng Chương 6 Design Pattern.pptxLập trình hướng đối tượng Chương 6 Design Pattern.pptx
Lập trình hướng đối tượng Chương 6 Design Pattern.pptx
 
Lập trình hướng đối tượng Chương 6 Design Pattern.pptx
Lập trình hướng đối tượng Chương 6 Design Pattern.pptxLập trình hướng đối tượng Chương 6 Design Pattern.pptx
Lập trình hướng đối tượng Chương 6 Design Pattern.pptx
 
Gt he quan_tri_csdl_ms_sql_server
Gt he quan_tri_csdl_ms_sql_serverGt he quan_tri_csdl_ms_sql_server
Gt he quan_tri_csdl_ms_sql_server
 
1.+tai+lieu+thiet+ke
1.+tai+lieu+thiet+ke1.+tai+lieu+thiet+ke
1.+tai+lieu+thiet+ke
 
Mvc 3
Mvc 3Mvc 3
Mvc 3
 
Tailieu.vncty.com giao-trinh-sql-2000
Tailieu.vncty.com   giao-trinh-sql-2000Tailieu.vncty.com   giao-trinh-sql-2000
Tailieu.vncty.com giao-trinh-sql-2000
 
Bai 1 lam quen voi sql 2008
Bai 1 lam quen voi sql 2008Bai 1 lam quen voi sql 2008
Bai 1 lam quen voi sql 2008
 
Phan tich httt_bang_uml
Phan tich httt_bang_umlPhan tich httt_bang_uml
Phan tich httt_bang_uml
 
Phan tich hệ thống thông tin bằng uml
Phan tich hệ thống thông tin bằng umlPhan tich hệ thống thông tin bằng uml
Phan tich hệ thống thông tin bằng uml
 
Phan tich httt_bang_uml
Phan tich httt_bang_umlPhan tich httt_bang_uml
Phan tich httt_bang_uml
 
01.1-Quy trinh phat trien phan mem.pptx
01.1-Quy trinh phat trien phan mem.pptx01.1-Quy trinh phat trien phan mem.pptx
01.1-Quy trinh phat trien phan mem.pptx
 
Báo cáo kĩ thuật phần mềm và ứng dụng
Báo cáo kĩ thuật phần mềm và ứng dụngBáo cáo kĩ thuật phần mềm và ứng dụng
Báo cáo kĩ thuật phần mềm và ứng dụng
 
Mau slide
Mau slideMau slide
Mau slide
 
Asp.net mvc framework qua cac vi du
Asp.net mvc framework  qua cac vi duAsp.net mvc framework  qua cac vi du
Asp.net mvc framework qua cac vi du
 
Giao trinh phan tich thiet ke he thong thong tin
Giao trinh phan tich thiet ke he thong thong tinGiao trinh phan tich thiet ke he thong thong tin
Giao trinh phan tich thiet ke he thong thong tin
 
Chuong 1
Chuong 1Chuong 1
Chuong 1
 
Silverlight chapter 1
Silverlight chapter 1Silverlight chapter 1
Silverlight chapter 1
 

Último

kinh tế chính trị mác lênin chương hai và hàng hoá và sxxhh
kinh tế chính trị mác lênin chương hai và hàng hoá và sxxhhkinh tế chính trị mác lênin chương hai và hàng hoá và sxxhh
kinh tế chính trị mác lênin chương hai và hàng hoá và sxxhhdtlnnm
 
cac-cau-noi-tthcm.pdf-cac-cau-noi-tthcm-
cac-cau-noi-tthcm.pdf-cac-cau-noi-tthcm-cac-cau-noi-tthcm.pdf-cac-cau-noi-tthcm-
cac-cau-noi-tthcm.pdf-cac-cau-noi-tthcm-KhnhHuyn546843
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docxTHAO316680
 
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...Nguyen Thanh Tu Collection
 
PHƯƠNG THỨC VẬN TẢI ĐƯỜNG SẮT TRONG VẬN TẢI
PHƯƠNG THỨC VẬN TẢI ĐƯỜNG SẮT TRONG VẬN TẢIPHƯƠNG THỨC VẬN TẢI ĐƯỜNG SẮT TRONG VẬN TẢI
PHƯƠNG THỨC VẬN TẢI ĐƯỜNG SẮT TRONG VẬN TẢImyvh40253
 
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng Đồng
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng ĐồngGiới thiệu Dự án Sản Phụ Khoa - Y Học Cộng Đồng
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng ĐồngYhoccongdong.com
 
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...Nguyen Thanh Tu Collection
 
GNHH và KBHQ - giao nhận hàng hoá và khai báo hải quan
GNHH và KBHQ - giao nhận hàng hoá và khai báo hải quanGNHH và KBHQ - giao nhận hàng hoá và khai báo hải quan
GNHH và KBHQ - giao nhận hàng hoá và khai báo hải quanmyvh40253
 
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...Nguyen Thanh Tu Collection
 
powerpoint mẫu họp phụ huynh cuối kì 2 học sinh lớp 7 bgs
powerpoint mẫu họp phụ huynh cuối kì 2 học sinh lớp 7 bgspowerpoint mẫu họp phụ huynh cuối kì 2 học sinh lớp 7 bgs
powerpoint mẫu họp phụ huynh cuối kì 2 học sinh lớp 7 bgsNmmeomeo
 
Kiểm tra cuối học kì 1 sinh học 12 đề tham khảo
Kiểm tra cuối học kì 1 sinh học 12 đề tham khảoKiểm tra cuối học kì 1 sinh học 12 đề tham khảo
Kiểm tra cuối học kì 1 sinh học 12 đề tham khảohoanhv296
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...Nguyen Thanh Tu Collection
 
Campbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdfCampbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdfTrnHoa46
 
SLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdf
SLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdfSLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdf
SLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdfhoangtuansinh1
 
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIGIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIĐiện Lạnh Bách Khoa Hà Nội
 
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIĐiện Lạnh Bách Khoa Hà Nội
 
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...Nguyen Thanh Tu Collection
 
Các điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoáCác điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoámyvh40253
 

Último (20)

kinh tế chính trị mác lênin chương hai và hàng hoá và sxxhh
kinh tế chính trị mác lênin chương hai và hàng hoá và sxxhhkinh tế chính trị mác lênin chương hai và hàng hoá và sxxhh
kinh tế chính trị mác lênin chương hai và hàng hoá và sxxhh
 
cac-cau-noi-tthcm.pdf-cac-cau-noi-tthcm-
cac-cau-noi-tthcm.pdf-cac-cau-noi-tthcm-cac-cau-noi-tthcm.pdf-cac-cau-noi-tthcm-
cac-cau-noi-tthcm.pdf-cac-cau-noi-tthcm-
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
 
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
 
PHƯƠNG THỨC VẬN TẢI ĐƯỜNG SẮT TRONG VẬN TẢI
PHƯƠNG THỨC VẬN TẢI ĐƯỜNG SẮT TRONG VẬN TẢIPHƯƠNG THỨC VẬN TẢI ĐƯỜNG SẮT TRONG VẬN TẢI
PHƯƠNG THỨC VẬN TẢI ĐƯỜNG SẮT TRONG VẬN TẢI
 
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng Đồng
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng ĐồngGiới thiệu Dự án Sản Phụ Khoa - Y Học Cộng Đồng
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng Đồng
 
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...
 
GNHH và KBHQ - giao nhận hàng hoá và khai báo hải quan
GNHH và KBHQ - giao nhận hàng hoá và khai báo hải quanGNHH và KBHQ - giao nhận hàng hoá và khai báo hải quan
GNHH và KBHQ - giao nhận hàng hoá và khai báo hải quan
 
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
 
powerpoint mẫu họp phụ huynh cuối kì 2 học sinh lớp 7 bgs
powerpoint mẫu họp phụ huynh cuối kì 2 học sinh lớp 7 bgspowerpoint mẫu họp phụ huynh cuối kì 2 học sinh lớp 7 bgs
powerpoint mẫu họp phụ huynh cuối kì 2 học sinh lớp 7 bgs
 
Kiểm tra cuối học kì 1 sinh học 12 đề tham khảo
Kiểm tra cuối học kì 1 sinh học 12 đề tham khảoKiểm tra cuối học kì 1 sinh học 12 đề tham khảo
Kiểm tra cuối học kì 1 sinh học 12 đề tham khảo
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
 
Campbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdfCampbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdf
 
SLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdf
SLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdfSLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdf
SLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdf
 
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIGIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
 
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
 
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
 
1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf
1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf
1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf
 
Các điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoáCác điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoá
 

Mo hinh-3-lop

  • 1. 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 Trung tâm Tin học-Trường ĐH Thủy Lợi NỘI DUNG 1. Khái quát về mô hình triển khai và phát triển ứng dụng......................................2 1.1. Sơ lược về mô hình 3 lớp................................................................................2 1.2. Mô hình thực tế mô tả phát triển ứng dụng cụ thể...........................................3 1.3 Mô 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 Mô hình lập trình 3 lớp....................................................................................7 2.4.1 Mô 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 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
  • 2. 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 1. Khái quát về mô hình triển khai và phát triển ứng dụng 1.1. Sơ lược về mô 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 mô 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 mô 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à mô 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 mô hình xây dựng ứng dụng của DNN:
  • 3. 1.2. Mô hình thực tế mô tả phát triển ứng dụng cụ thể Với những gì mà một mô 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. Lớp thể hiện giao diện Các Thành phần của Giao diện (Windows User Control) Lớp các thành phần thực hiện công việc Các Thành phần thực thi (Bussiness Components ) Lớp truy xuất/nhập dữ liệu Lớp truy nhập dữ liệu đa hình Mô tả truy nhập dữ liệu (Abstract Data Provider) Lớp thực thi truy nhập dữ liệu (Sql Data Provider) Các khối truy nhập dữ liệu Các đặc trưng của mô hình 3 lớp.
  • 4. 1.3 Mô hình các thực thể khi triển khai trên hệ thống đa người dùng ` Lớp truy nhập dữ liệu (DAL) Database Server Lớp Các thành phần thực thi (BLL) Các Thành phần của Giao diện (UI) ` ` 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) mô 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.
  • 5. 2. Những người phát triển ứng dụng và công việc cần làm 2.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 mô 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 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. Trong phần này chúng tôi sẽ lấy mô hình của Dotnetnuke làm hình mẫu đại diện cho mô 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 mô 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.
  • 6. 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 DotNetNuke.dll Thư viện các thành phần Framework của DotNetNuke Microsoft.ApplicationBlocks.Data.dll Thư việc các hàm làm việc trực tiếp với CSDL DotNetNuke.SqlDataProvider.dll Thư viện các sqlHelper dành cho việc truy nhập cơ sở dữ liệu trên MS SQL server DotNetNuke.Caching.BroadcastPollingCachingProvider.SQLDataProvider.dl l Thư 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 server Vớ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 mô hình đã đưa ra. 2.3 Công cụ sinh mã (codesmith explorer) và các tùy biến Codesmith 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ệc Hai 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. Component Project Chứa các components: SqlDataProvider Project Controller class Bao gồm Info class SqlDataProvider classes DataProvider class. Store Procedures.
  • 7. 2.4 Mô hình lập trình 3 lớp 2.4.1 Mô hình các lớp đối tượng Chú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 đây Controller Info Object Object DataProvide r Object SQLDataProvider Store Object Procedure Controller 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 Class Lớp mô tả các đối tượng lưu trữ thông tin DataProvider Class Lớ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 mô tả truy nhập dữ liệu. SqlDataProvider Class Đối tượng truy nhập dữ liệu thực sự Store Procedure Các thủ tục ở CSDL MSSQL server được SqlDataProvider sử dụng
  • 8. 2.4.2 Triển khai cụ thể của các Components của lớp Bissiness logic public class NhanVienController : DotNetNuke.Entities.Modules.ISearchable, DotNetNuke.Entities.Modules.IPortable { public NhanVienInfo Get(string maNhanVien) { return (NhanVienInfo)DotNetNuke.Common.Utilities.CBO.FillObject(DataProv ider.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); } }
  • 9. 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 mô 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. .
  • 10. Việ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: #region "NhanVien Methods" public override IDataReader GetNhanVien(string maNhanVien) { return (IDataReader)SqlHelper.ExecuteReader(ConnectionString, DatabaseOwner + ObjectQualifi } public override IDataReader ListNhanVien() { return (IDataReader)SqlHelper.ExecuteReader(ConnectionString, DatabaseOwner + ObjectQualifi } public override int AddNhanVien(string ten, bool gioiTinh, DateTime ngaySinh, string dienThoai, { return int.Parse(SqlHelper.ExecuteScalar(ConnectionString, DatabaseOwner + ObjectQualifier + "HT_N } public override void UpdateNhanVien(string maNhanVien, string ten, bool gioiTinh, DateTime ngayS { SqlHelper.ExecuteNonQuery(ConnectionString, DatabaseOwner + ObjectQualifier + "HT_NhanVienU } public override void DeleteNhanVien(string maNhanVien) { SqlHelper.ExecuteNonQuery(ConnectionString, DatabaseOwner + ObjectQualifier + "HT_NhanVienD } #endregion 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 template C# BLL Controller Class.cst Info template
  • 11. C# BLL Info Class.cst DataProvider template C# DataProvider.cst Chú ý rằng DataProvider là một lớp ảo (abstract) nhằm tách rời lớp Bussiness khỏi các thực thể CSDL cụ thể như MS SQL (do SqlDataProvider đảm nhiệm). Việc “ảo hóa” truy nhập CSDL này cho phép ta triển khai ứng dụng trên một nền quản trị CSDL khác mà không phải xây dựng lại hay biên dịch lại lớp Bussiness. Ví dụ thể hiện cho tư duy trên là ta xây dựng một OracleDataProvider độc lập (có thể là một thư viện dll cũng được mô hình hóa giống SqlDataProvider). Sau đó gắn nó với DataProvider ảo thông qua cơ chế Reflection (tạo ra môt thể hiện cụ thể cho DataProvider tại thời điểm chạy thông qua thư viện dll đã được biên dịch sẵn nói trên). 3. Gắn kết các thành phần vào một Solution cho phát triển ứng dụng Component Project (được tạo ra với biên dịch Class Library) Chứa các thành phần  Controller classes  Info classes  DataProvider classes Tên của project  SmallStoreComponents Các thư viện sử dụng của DNN  DotNetNuke.dll  Microsoft.ApplicationBlocks.Data.dll SqlDataProvider Project (được tạo ra với biên dịch Class Library) Chứa các thành phần  SqlDataProvider class  Các hàm thực thi của SQL: Sql store procedures Tên của project  SmallStoreSql Các thư viện sử dụng của DNN  DotNetNuke.dll  Microsoft.ApplicationBlocks.Data.dll Thư viện phụ thuộc  SmallStoreComponents.dll Application Solution (solution cho ứng dụng)
  • 12. Solution tạo ra để gắn kết các Projects trên và project ứng dụng của chúng ta Tên của Solution  SmallStore Các thư viện sử dụng của DNN  DotNetNuke.dll  Microsoft.ApplicationBlocks.Data.dll Thư viện được xây dựng cho mô hình 3 lớp  SmallStoreComponents.dll  SmallStoreSql.dll 4. Trải nghiệm mô hình tích hợp ứng dụng Web-base và Winform- based 4.1. Sự tích hợp Sau khi đã hiểu rõ mô 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 mô 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 phát triển đó phải tách nhau ra. Và chúng ta có có thể nói ngay 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. Windows Form Web Form 3 Controls Controls Controller DataProvider Info 2 Object Object Object SQLDataProvider 1 Object 4.2 Sự đồng bộ và tương đồng của các modules lập trình Hệ 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.
  • 13. Yêu cầu Khởi tạo Cấp thẻ đăng nhập Xác thực Session nhận thực Truy nhập ứng dụng Thoát ứng Kết thúc Kết thúc phiên dụng Session truy nhập 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. Mục tiêu của mô hình trên là đưa ra quy trình chung nhất để có thể hợp nhất ứng dụng web và winform. Có một sự khác biệt nhỏ là trên ứng dụng web luôn phải trao đổi thông tin nhận thực giữa client (browser) và server, còn trên ứng dụng winform, một khi session được khởi tạo, nó có thể được lưu giữ trong ứng dụng desktop và việc xác thực qua mỗi thao tác chỉ là sự kiểm tra các biến session đã được lưu này. 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:  Phía bên phải của hình dưới đây là mô hình tương ứng giống như xây dựng Web-based (chỉ khác là chúng được hiểu với tư cách các Windows User Control).  Phía bên trái là các thành phần bổ xung cho ứng dụng windows form. Ở đây, các forms của lớp UI sẽ được dựng lên từ các User Controls kế thừa từ Portal ModuleBase mà bên trong đã có sẵn các tham số về phiên đăng nhập, cấu hình module, thông tin người dùng và quyền hạn truy nhập các chức năng hệ thống hay quyền hạn sử dụng các thao tác CSDL. FormBase Portal ModuleBase MyFormBase MyModuleBase Các forms thể hiện Dựng User Control của lớp UI
  • 14. 5. Kết luận Như vậy sau khi có được mô hình ứng dụng tích hợp, ta có thể phát triển, bảo trì, thậm chí “du nhập” toàn phần các chức năng đã lập trình trên web cho ứng dụng trên windows form và ngược lại. Việc làm này rút ngắn khá nhiều thời gian phát triển ứng dụng. Nếu các quy trình nghiệp vụ (các chức năng) được tách ra khỏi lập trình giao diện thì ta hoàn toàn có thể triển khai những hệ thống chạy độc lập trên nền web hoặc windows form mà vẫn sử dụng chung được các thư viện hay mã nguồn đã viết (mà không phải sửa đổi lại). Sự thực là chúng tôi đã có một hệ thống như vậy.1 1 Sơ đồ phân tích thiết kế cũng như thư viện dựng sẵn (không phải là mã nguồn), kèm theo các công cụ sinh mã và templates sinh mã chúng tôi hoàn toàn có thể cung cấp cho các bạn để chạy thử.