Thông tin

Nên dùng mô hình 3 lớp hay Dataset của MS?

Thảo luận về các vấn đề Công Nghệ Thông Tin chung, không thuộc các chuyên mục trên

Nên dùng mô hình 3 lớp hay Dataset của MS?

Gửi bàigửi bởi bocapit » T.Sáu 02/07/2010 10:57 am

Anh HaiPT, bác Nobi cho em hỏi là khi code thì nên dùng cái nào để xây dựng ct?
Đang cần lắm các bác trả lời hộ em nha!!
Không có định mệnh, mọi chuyện do chính ta tạo nên.
Hình đại diện của thành viên
bocapit
Thành viên trung thành
Thành viên trung thành
 
Bài viết: 222
Ngày tham gia: T.Năm 02/10/2008 6:34 am
Đến từ: C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\

Re: Nên dùng mô hình 3 lớp hay Dataset của MS?

Gửi bàigửi bởi tdat00 » T.Tư 14/07/2010 9:11 am

Mô hình n-tier. Dễ nâng cấp và sửa lỗi hơn dataset nhiều.

Với lại dùng kết hợp vẫn được mà.
Kẻ đẹp trai nhất chính là ta
Dung nham ngẫm kĩ cũng mặn mà
Hok biết ba trăm năm lẻ nữa
Thế gian ai có đẹp hơn ta

Há Há Há :)) :)) :))
Hình đại diện của thành viên
tdat00
Thành viên năng nổ
Thành viên năng nổ
 
Bài viết: 80
Ngày tham gia: T.Bảy 29/03/2008 8:18 am
Đến từ: QNgãi

Re: Nên dùng mô hình 3 lớp hay Dataset của MS?

Gửi bàigửi bởi HaiPT » T.Năm 15/07/2010 10:44 am

bocapit đã viết:Anh HaiPT, bác Nobi cho em hỏi là khi code thì nên dùng cái nào để xây dựng ct?
Đang cần lắm các bác trả lời hộ em nha!!

"Mô hình 3 lớp" và "Dataset" thuộc category khác nhau mà ??
Anh làm rõ hơn tý nhé
Mô hình 3 lớp hay n lớp là 1 trong các mô hình mẫu cơ bản để phát triển phần mềm , về cơ bản nó là nguyên lý tách bạch từng phần trong một ứng dụng để : - Dễ test và debug
- Dễ phân việc
- Dễ nâng cấp
Tất cả việc chia tách này là dựa trên các nguyên lý thiết kế hướng đối tượng cơ bản :
- Kết dính : Các thành phần, module... phải cùng hướng tới một mục đích trung tâm ( ví dụ như
dataaccess layer thì chỉ nên chứa các module thao tác với DB thôi )
- Ghép cặp :Các module phải phụ thuộc vào nhau càng ít càng tốt ( ví dụ :các trang asp.net thường có 2 file : layout và code behind (.cs) ,2 file này có liên hệ với nhau , bạn không thể sửa 1 file mà lạiko phải chỉnh file kia đc ,làm chương trình bé thì ko sao, làm chương trình lớn ắt bạn sẽ rất mệt khi phải maintain đồng thời 2 file,nhất là việc chỉnh sửa hoàn toàn ko dễ dàng , ví dụ : cùng 1 thông tin trong DB , cùng 1 bussiness nhưng chỉ khác chút về giao diện hiển thị chẳng lẽ bạn lại viết thêm code để maintain , nhất là sẽ không thể automatic test từng phần được vì UI và controler quện lẫn vào nhau :--> đơn giản nhất là dùng MVC partern để giải quyết . Tất cả các patern sinh ra cũng chỉ để làm một mục đích : tăng độ kết dính và giảm độ ghép cặp .. ;) Hình như lại hơi lý thuyết rồi .
Còn Dataset chỉ là 1 ADO.NET object hay in memory database , dataset thường được dùng để trao đổi (
transfer ) giữa các tier
, em thường thấy : DAO trả về 1 Dataset và Business obbject sẽ lại sử dụng DataSet này đồng thời trả về UI 1 Dataset , dữ liệu transfer giữa các tier được gọi là DTO ( data transfer object )thường là :
- Poco hay entity collection
- Dataset
- Typed Dataset
..etc
Tùy trường hợp mà sử dụng , poco entity collection đạt performance cao tuy nhiên take time nhiều hơn
DS thì tiện dùng support luôn serialize và hàng tá chức năng khác nhưng chậm hơn .
Em có thể thảo luận thêm để rõ hơn, có lẽ em muốn hỏi :
Kiến trúc chương trình viết bằng .NET theo 3 tiear như thế nào ?

DATASET có vai trò gì trong kiến trúc này ??
Sửa lần cuối bởi HaiPT vào ngày T.Năm 15/07/2010 10:50 am với 1 lần sửa.
Phạm Hải
Micosoft Technical Expert
FPT Software Coporation
HaiPT
VIP Group
VIP Group
 
Bài viết: 149
Ngày tham gia: T.Tư 07/09/2005 4:02 pm
Đến từ: Hải Phòng

Re: Nên dùng mô hình 3 lớp hay Dataset của MS?

Gửi bàigửi bởi HaiPT » T.Năm 15/07/2010 10:47 am

Moderator chuyển hộ topic này sang box "công nghệ phần mềm" nhé
Phạm Hải
Micosoft Technical Expert
FPT Software Coporation
HaiPT
VIP Group
VIP Group
 
Bài viết: 149
Ngày tham gia: T.Tư 07/09/2005 4:02 pm
Đến từ: Hải Phòng

Re: Nên dùng mô hình 3 lớp hay Dataset của MS?

Gửi bàigửi bởi vuathongtin » T.Năm 15/07/2010 10:49 am

Mô hình 3 lớp nghe vẫn còn trừu tượng quá, Hình như trong 4rum chưa có topic nào đề cập sâu về mô hình 3 lớp, bạn nào có tài liệu hoặc project demo thì share cho mọi người nhen. :D
“chúng ta học cách chạy xe chứ không phải học cách chạy cái xe cụ thể nào cả”
Hình đại diện của thành viên
vuathongtin
Thành viên trung thành
Thành viên trung thành
 
Bài viết: 276
Ngày tham gia: CN 02/05/2010 10:03 pm
Đến từ: Phú Yên

Re: Nên dùng mô hình 3 lớp hay Dataset của MS?

Gửi bàigửi bởi Lam Tieu Tuong » T.Sáu 16/07/2010 11:53 pm

Chắc ý của bạn ấy là cái typed Dataset trong .NET. Cái đó bạn chỉ cần kéo thả rồi nó sẽ tự động tạo ra một cái khung để bạn nối giữa presentation layer và database. Có thể nói là nó đóng vai trò vừa là Data Access Layer(chủ yếu) Và Business Layer (một chút, còn một phần sẽ phải làm ở Presentation Layer).
Nói chung Microsoft nó tạo ra cái gì cũng có lí do của nó. Với những chương trình nhỏ, không có nhu cầu refactoring nhiều thì bạn có thể dùng typed Dataset cho nhanh. Nếu kết hợp tốt với BindingSource Controls tốt thì làm cực nhanh luôn. Nhưng nếu chương trình lớn, request không rõ từ đầu thì cách tốt nhất là làm 3 lớp. Hàng của Microsoft nó khác mấy anh mã nguồn mở ở chỗ là nó hướng đến những người có nhu cầu basic và trình độ thấp trước, rồi sau đó nó sẽ mở dần lên với những người có trình độ cao. Thế nên mấy ông học Java một thời gian rồi nhảy qua học .NET dùng mấy cái làm sẵn của nó chê lên chê xuống bảo mấy cái này dành cho gà, pro phải học mấy cái của Java. Nhưng anh thích pro thì có hàng Pro cho anh. Kiểu gì cũng chiều à.
Lam Tieu Tuong
Thành viên năng nổ
Thành viên năng nổ
 
Bài viết: 59
Ngày tham gia: CN 30/03/2008 8:46 pm

Re: Nên dùng mô hình 3 lớp hay Dataset của MS?

Gửi bàigửi bởi thuccads » T.Bảy 17/07/2010 9:35 am

Có thể hàng ngày bạn vẫn code theo mô hình 3 lớp nhưng bạn lại chẳng hiẻu nó là 3 hay 4 hay n lớp. Tôi cũng sợ nhất lý thuyết, ngày trước đi phỏng vấn cũng bị hỏi cái này : Chức năng, nhiệm vụ, cách làm...tôi chỉ nhớ mỗi cái Presentation và BLL (mới đọc trước đó trên IE >:) ). Tôi nghĩ nếu muốn thảo luận vấn đề này chắc chỉ có HaiPT là support được :)) .
Hình đại diện của thành viên
thuccads
Thành viên tích cực
Thành viên tích cực
 
Bài viết: 138
Ngày tham gia: T.Hai 01/02/2010 8:35 am
Đến từ: Hà Nội--->Sài Gòn

Re: Nên dùng mô hình 3 lớp hay Dataset của MS?

Gửi bàigửi bởi thuccads » T.Bảy 17/07/2010 9:43 am

À quên, tôi có "mượn" cái này của ông anh Microsoft nhưng trình EN "abc" mà cũng lười nữa nên vẫn bỏ mốc, bạn nào có nhã hứng thì đem về tham khảo.
Tập tin đính kèm
AppArch_download.rar
(1.76 MiB) Đã tải về 50 lần.
Hình đại diện của thành viên
thuccads
Thành viên tích cực
Thành viên tích cực
 
Bài viết: 138
Ngày tham gia: T.Hai 01/02/2010 8:35 am
Đến từ: Hà Nội--->Sài Gòn

Re: Nên dùng mô hình 3 lớp hay Dataset của MS?

Gửi bàigửi bởi tdat00 » T.Bảy 17/07/2010 7:29 pm

Các bác cứ xem Gmail sẽ thấy rõ ưu điểm của mô hình 3 lớp:

+ Có nhiều giao diện khác nhau: nền web, nên điện thoại symbian, nền điện thoại java... --> lớp Presentation cần viết nhiều chương trình riêng biệt.
+ Cũng cần có nhiều lớp Business Logic khác nhau ứng với mỗi ngôn ngữ lập trình (dĩ nhiên nền symbian sẽ code khác nền java...). Tuy nhiên chúng chỉ khác nhau về code, còn chức năng, nhiệm vụ... thì phải thống nhất.
+ Lớp Data Access đơn giản hơn vì chỉ chứa những hàm cơ bản để thao tác với CSDL. Như giả sử (giả sử thôi nhé): Gmail Việt Nam lưu dữ liệu trên mySQL, còn Gmail English lưu CSDL trên Oracle --> cần thiết kế các lớp Data Access khác nhau để thao tác với từng hệ CSDL...


Các bác đọc thử quyển này đi (trong nhà sách Minh Khai ấy). Em thấy cũng hay lắm:
Hình ảnh
Kẻ đẹp trai nhất chính là ta
Dung nham ngẫm kĩ cũng mặn mà
Hok biết ba trăm năm lẻ nữa
Thế gian ai có đẹp hơn ta

Há Há Há :)) :)) :))
Hình đại diện của thành viên
tdat00
Thành viên năng nổ
Thành viên năng nổ
 
Bài viết: 80
Ngày tham gia: T.Bảy 29/03/2008 8:18 am
Đến từ: QNgãi

Re: Nên dùng mô hình 3 lớp hay Dataset của MS?

Gửi bàigửi bởi Lam Tieu Tuong » CN 18/07/2010 7:21 pm

Mệt nhỉ, bạn hỏi thì hỏi mỗi bác HaiPT và Nobi, bạn thuccats thì nói chỉ có HaiPT mới nói được vấn đề này. Đúng là mình không đủ trình để tham gia topic này rồi :D. Yếu cứ thích ra gió.
Lam Tieu Tuong
Thành viên năng nổ
Thành viên năng nổ
 
Bài viết: 59
Ngày tham gia: CN 30/03/2008 8:46 pm

Re: Nên dùng mô hình 3 lớp hay Dataset của MS?

Gửi bàigửi bởi Lam Tieu Tuong » T.Sáu 23/07/2010 10:43 pm

Chẳng có ai phản ứng gì viết thêm phát :D. Cái typed Dataset nếu bạn định dùng thì nó cũng cũ rồi. So với LINQ thì thua xa. Nếu bạn muốn làm nhanh gọn thì dùng thằng LINQ to SQL Classes nhanh hơn và cũng flexible hơn nhiều.
Lam Tieu Tuong
Thành viên năng nổ
Thành viên năng nổ
 
Bài viết: 59
Ngày tham gia: CN 30/03/2008 8:46 pm

Re: Nên dùng mô hình 3 lớp hay Dataset của MS?

Gửi bàigửi bởi boy1234 » T.Tư 01/09/2010 12:35 am

Lam Tieu Tuong đã viết:Mệt nhỉ, bạn hỏi thì hỏi mỗi bác HaiPT và Nobi, bạn thuccats thì nói chỉ có HaiPT mới nói được vấn đề này. Đúng là mình không đủ trình để tham gia topic này rồi :D. Yếu cứ thích ra gió.

vuathongtin đã viết:Mô hình 3 lớp nghe vẫn còn trừu tượng quá, Hình như trong 4rum chưa có topic nào đề cập sâu về mô hình 3 lớp, bạn nào có tài liệu hoặc project demo thì share cho mọi người nhen. :D

Cho bạn 1 bài mẫu nè! :D Cái này mình làm mô hình 3 tầng dùng Web Service. Tầng PL có 2 Project 1 dùng cho Web Form và 1 dùng cho Windows Form thích cái nào set cái đó default.

@Nhớ chạy đoạn Script(file DBbanhang.sql) tạo DB nhé (SQL Server 2005) - Các bạn thông cảm File up lên hơi nặng :D
Tập tin đính kèm
Service3Tier.rar
(5.08 MiB) Đã tải về 18 lần.
ALL FOR ONE! ONE FOR ALL
boy1234
Advance Member
Advance Member
 
Bài viết: 283
Ngày tham gia: T.Hai 13/10/2008 3:12 pm
Đến từ: Dĩ An - Bình Dương


Quay về Các vấn đề CNTT khác

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.1 khách.