首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linq To SQL、WebServices、Websites -全部计划

Linq To SQL、WebServices、Websites -全部计划
EN

Stack Overflow用户
提问于 2010-07-07 07:56:21
回答 4查看 205关注 0票数 3

我的项目的几个“部分”(exmaple的WinForms应用程序)使用了我基于L2SQL编写的DAL。我想加入几个WebApps,但问题是DAL“提供”的数据比WebApps需要的多得多。多得多。

如果我将网站所需的数据打包在web服务中,而不是直接连接到DAL,它将通过web服务访问DAL,这样可以吗?

我觉得这会增加很多开销,但另一方面,我绝对不喜欢知道WebApps拥有访问比实际需要多得多的数据的“能力”的感觉。

我们将非常感谢您的任何意见。非常感谢你的帮助。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-07-07 07:58:30

您可以创建web服务,也可以添加一个仅表示应用程序所需数据的repository层。存储库还有一个额外的好处,那就是它是一个解耦层,可以更容易地对应用程序进行单元测试(通过提供模拟存储库)。

如果您计划最终创建不同的前端(例如,web UI和WPF或Silverlight UI),则web服务非常有意义,因为它们提供了一个公共的数据基础来构建,并且可以跨层访问。

票数 2
EN

Stack Overflow用户

发布于 2010-07-07 07:58:53

如果您的数据访问层将所有数据都提取为IQueryable,那么您将能够更精确地查询DAL和深入挖掘db调用。

请参阅我使用Linq to SQL编写的关于存储库和服务层的非常简短的blog entry。我的文章是围绕MVC构建的,但是存储库和服务层的概念可以很好地与WebForms、WinForms、Web Services等一起工作。

同样,这里的关键是让您的存储库或Dal返回一个对象AsQueryable,这样您就可以等到最后可能的时刻才实际提交请求数据。

您的结构将如下所示

代码语言:javascript
复制
Domain Layer
    Repository Layer (IQueryable)
        Service layer for Web App
            Website
        Service layer for Desktop App
            Desktop App
        Service layer for Web Services 
            Web Service

在您的服务层内部,您可以根据为其开发的应用程序自定义特定的调用。这允许在每个应用程序的基础上实现更高的安全性和配置,同时维护一个完整的存储库,该存储库在您换出ORM之前不需要修改(如果您决定需要换出ORM)

票数 1
EN

Stack Overflow用户

发布于 2010-07-07 08:00:01

在这种情况下,拥有超过你需要的东西本身并没有什么错。整个.NET 4客户端配置文件包含超过50MB的程序集、类等。我可能会在整个职业生涯中使用其中的5%。这并不意味着我不喜欢它的全部,以防我需要它。

如果您计划将DAL提供给不应该访问部分数据的开发人员,请编写包装器或派生新的DAL。我会避免使用服务路由,除非您有信心可以承担开销。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3191015

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档