2012-03-15 11 views
5

Tôi hiện đang xem xét các cách có thể để chúng tôi có thể tái cấu trúc codebase của mình, để làm việc dễ dàng hơn.Di chuyển từ DataSets sang EntityFramework

Ứng dụng là ứng dụng Web Asp.Net khá lớn, với tất cả cài đặt/truy xuất dữ liệu xảy ra thông qua Dịch vụ web. Hiện tại, các WebServices này trả về DataSets, chứa 1 hoặc nhiều bảng được trả về từ các thủ tục lưu sẵn. Các codebase là khá chặt chẽ kết nối, với ASP code-đằng sau gọi WebServices ở nhiều nơi, và hầu hết các logic kinh doanh xảy ra hoặc trong code-behind hoặc trong các thủ tục lưu trữ.

Trong một thời gian, chúng tôi đã xem xét các cách có thể để cập nhật ứng dụng và hiện đại hóa mã cơ sở. Chúng ta không thể (và không muốn) viết lại toàn bộ ứng dụng, nhưng nó sẽ là tuyệt vời nếu chúng ta có thể bắt đầu di chuyển nó, từng chút một, hướng tới một kiến ​​trúc mới hơn. Tôi đã xem xét kiến ​​trúc MVP, có vẻ như nó phù hợp với kiến ​​trúc hiện tại của chúng tôi - nó sẽ không liên quan đến quá nhiều lần viết lại, nhưng vẫn dẫn đến mã có thể thử nghiệm hơn (mục tiêu khác - chúng tôi hiện không có tự động thử nghiệm).

Tôi muốn biết, tuy nhiên, nếu bất kỳ ai có một số mẹo/thông tin/bài viết về việc chuyển từ DataSets sang EntityFramework. Tôi cảm thấy rằng điều này sẽ tạo ra lợi thế lớn nhất cho chúng tôi, vì nó sẽ cho phép chúng tôi lập mô hình dữ liệu của mình và thử nghiệm nó dễ dàng hơn nhiều. Thật không may, tôi chưa thể tìm thấy bất kỳ điều gì trực tuyến về loại di chuyển này. Thiết kế cơ sở dữ liệu của chúng ta khá tốt (may mắn), nhưng chúng ta sẽ phải làm việc với cả DataSets và EntityFramework trong một thời gian cho đến khi chúng ta loại bỏ DataSets - không có cách nào chúng ta có thể làm tất cả cùng một lúc.

Bất kỳ ai có thể đưa ra lời khuyên về điều này?

+1

Bạn có tiếp tục sử dụng WebServices để trả về dữ liệu hiện đang ở dạng Số liệu không? Hay ứng dụng của bạn sẽ trực tiếp chạm vào cơ sở dữ liệu thông qua EntityFramework? –

+0

@ John Tôi nghĩ rằng chúng tôi vẫn sẽ cần phải sử dụng Dịch vụ Web bằng cách nào đó. Chúng tôi sử dụng cùng một Dịch vụ Web để truy xuất dữ liệu trong Microsoft InfoPath, mà chúng tôi cũng không thể loại bỏ được. –

Trả lời

3

Có vẻ như bạn cần giải quyết hai vấn đề riêng biệt.

  1. Bạn sử dụng dịch vụ của EntityFramework bên trong dịch vụ web như thế nào.
  2. Thứ hai, cách bạn chuyển các kết quả đó đến và từ các dịch vụ web.

Đối với # 1, chúng tôi chỉ có thể đoán về các chi tiết có liên quan của việc triển khai hiện tại của bạn. Tuy nhiên, đó có thể là một thay đổi phổ biến mà bạn có thể tìm kiếm và tìm trợ giúp.

Đối với # 2, bạn có thể muốn xác định một loạt đối tượng kinh doanh đi qua lại. Dịch vụ web có thể dịch giữa chúng và các đối tượng EntityFramework. (Bạn có thể truyền trực tiếp các đối tượng EF, nhưng có thể có vấn đề phụ thuộc vào kịch bản của bạn.)

+0

Tôi tò mò về những gì bạn đang đề cập đến với "đối tượng kinh doanh". Bạn có nghĩa là serializing nó vào XML/JSON, hoặc là bạn đề cập đến cái gì khác? –

+0

@ a_m0d: "Đối tượng kinh doanh" đơn giản là các lớp có thuộc tính. Phương thức vận chuyển của họ (XML, JSON, v.v.) là một vấn đề hoàn toàn riêng biệt. –

+0

Đối tượng kinh doanh khác với lớp POCO như thế nào? –