【发布时间】:2010-10-16 02:00:19
【问题描述】:
我目前正在为学校做一个CRUD 项目,基本上他们希望我们有这种结构(3 个项目):
-
类库
- 包含所有数据访问逻辑(使用标准 ADO.NET 的 LINQ 从数据库中检索数据)。
-
网络服务
- 具有对类库的引用并提供 [WebMethod] 以访问类库中的方法
-
ASP.NET 网站
- 拥有对 Web 服务的服务引用并使用 WebMethods 检索数据
这基本上意味着我们不能直接从网站访问类库:
Website
\
\
Web Service
\
\
Class Library
当然,现在有多种解决方案可供选择,以便在 Web 服务中提供抽象以分离例如检索文章的方法和检索类别的方法(它们是两个不同的实体,并且在类中有两个单独的类库):
- 我可以做一个包含所有方法(GetAllArticles、GetAllCategories、GetArticleByID 等)的 Web 服务,并且该网站只引用这个 Web 服务。但这当然会导致所有方法都在一个类中(即一个 Web 服务)
- 或者我可以创建多个 Web 服务(
Articles.asmx、Categories.asmx等...)并从网站上引用所有这些服务,然后根据我需要检索的数据调用我需要的服务。
但我的意思是,上述解决方案并不理想,因为如果我有第一个解决方案,我将在一个类中拥有大量方法(没有任何抽象),而在第二个解决方案中,我将不得不参考网站上大约 10 种不同的网络服务(一种用于文章,一种用于分类等)
在学校,他们告诉我们使用 Web 服务(或多个 Web 服务)访问类库,然后使用 Web 方法从类库中检索数据,但我前面提到的两种解决方案似乎都有些不靠谱。
有没有更好的方法来实现这个结构?
【问题讨论】:
-
ado.net 数据服务 - msdn.microsoft.com/en-us/data/bb931106.aspx
标签: asp.net .net web-services interface