2010-02-18 36 views
8

Tôi gặp khó khăn. Đây là thiết lập của tôi: Xây dựng ứng dụng web ASP.NET/NET 3.5 sử dụng các tiêu chuẩn (lớp DB, lớp BL, v.v ...)Dịch vụ báo cáo của Microsoft. Tôi có nên sử dụng dịch vụ web dưới dạng nguồn dữ liệu không?

Tôi cần tạo một số báo cáo. Cách tiêu chuẩn để làm điều đó là có cơ sở dữ liệu truy vấn dịch vụ báo cáo trực tiếp HOẶC tôi có thể có dịch vụ báo cáo truy vấn dịch vụ web (mà tôi sẽ tạo).

Tôi thích phương pháp tiếp cận dịch vụ web vì nếu thay đổi lược đồ cơ bản, tôi chỉ cần đảm bảo rằng các dịch vụ web của mình trả lại dữ liệu chính xác. Dịch vụ báo cáo không bị ảnh hưởng.

Nếu sử dụng truy vấn trực tiếp vào cơ sở dữ liệu, cần phải cập nhật dịch vụ báo cáo.

Tôi có nên sử dụng dịch vụ web (http://msdn.microsoft.com/en-us/library/aa964129(SQL.90).aspx) hoặc truy vấn trực tiếp không?

+0

Tôi muốn nói truy vấn trực tiếp vì lợi ích của hiệu suất. –

+0

Mục tiêu của tôi là thực hiện thay đổi ở một nơi. với webservices, tôi chỉ phải đảm bảo rằng dịch vụ web trả về dữ liệu chính xác và không phải lo lắng về dịch vụ báo cáo. Ví dụ, đổi tên cột đơn giản trong cơ sở dữ liệu sẽ buộc tôi phải đi đến các dịch vụ báo cáo và thay đổi truy vấn, trong khi với các dịch vụ web, tôi không phải lo lắng về nó. Bây giờ, nếu nó là một sự thay đổi phức tạp hơn là đổi tên cột? – Chicago

+0

OData sẽ phù hợp nếu bạn có thể chờ đợi. –

Trả lời

0

Tôi nghĩ rằng cách tiếp cận tốt hơn sẽ là (nếu có thể) để sử dụng các dịch vụ làm API cho cả hai (dịch vụ ứng dụng và báo cáo). Điều đó sẽ giữ mã/logic ở vị trí trung tâm cũng như hoàn thành mục tiêu của bạn trên các dịch vụ báo cáo.

2

Sử dụng dịch vụ web giúp bảo trì dễ dàng hơn. Hiệu suất sẽ bị ảnh hưởng bởi phần cứng, thiết kế cơ sở dữ liệu, truy vấn, v.v. Tôi sẽ sử dụng dịch vụ web vì đây là cách mà các ứng dụng Adobe Flex giả sử làm và Microsoft WCF dường như đang trỏ Các nhà phát triển DotNet theo hướng các nguồn dữ liệu dịch vụ web.

Một lợi ích khác là bạn có thể sử dụng nhiều khách hàng với cùng một dịch vụ.

Các vấn đề liên quan