首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用linq-to-sql的2层(客户端-服务器)桌面应用程序的良好体系结构

使用linq-to-sql的2层(客户端-服务器)桌面应用程序的良好体系结构
EN

Stack Overflow用户
提问于 2010-02-16 02:03:35
回答 4查看 1.1K关注 0票数 7

我们目前的架构- UI,BusinessLayer,DAL(generated linq-to-sql).In DAL层,我们已经在部分类中添加了实体的验证逻辑。在businesslayer(这是一堆类-类\表单).Also中,我们直接使用由linq-to-sql生成的实体,在这些bll类中,我们创建linq-to-sql查询。

我觉得我们可以在MVP模式方面更好地对应用程序进行分层,并使用linq-to- you提供数据的服务类。我应该考虑存储库模式吗?这是不是有点夸大其词了?

EN

回答 4

Stack Overflow用户

发布于 2010-02-16 07:10:06

这是个好主意!

您的选择取决于您的应用程序,但以下是许多问题:

1)对象数据库模型和对象模型应用程序之间的转换可能要困难得多。在这种情况下,不可能在应用程序的模型上实现过滤器,以便将结果查询传输到SQL中。

2)通常,由于采样的结果需要获得连接(JOIN)多个表的结果,而不仅仅是来自一个表的数据

3)并不是所有的SQL操作和函数在LINQ中都有等价物

那么Entity Framework呢?请不要接触实体框架。它是笨重而缓慢的东西!:)

我更喜欢通过存储过程访问经典数据和从MS Enterprise Library访问数据。我可以在自己的业务实体中使用SQL的强大功能和灵活性。当然还有性能!奖牌的反面是更多的工作。我使用一些工具自动生成数据访问对象,然后根据需要修复它们。

祝你好运!

票数 1
EN

Stack Overflow用户

发布于 2010-02-16 11:10:31

所有值得思考的事情都是好的,但是当你开始走这条路时,我相信你会有更多的问题而不是答案!

当您提到Desktop和Linq- to -SQL时,我将假设您使用的是Windows窗体,这将给您在实现MVP模式等方面带来一些挑战。

虽然有一些针对WinForms的预先定制的MVP框架(想到了MVC#),但如果你不是在开发大规模的应用程序,那么你可能想要温和地开始,并使用你自己的代码来实现一些概念。

Jeremy Miller的优秀Build Your Own CAB系列文章在这里是一个很好的资源,因为您可以从中吸取一些最初的想法,并在表单(表示)和业务逻辑(呈现者和服务类)之间进行一些关注点的分离。

Jeremy在他的工作中主要使用了Supervising设计(这是我喜欢的),但它值得看看其他模式,如被动视图和模型-视图-视图模型(它被嵌入到WPF的工作方式中,所以值得理解),看看你觉得最舒服的是什么。

至于您关于服务类或存储库的问题,我认为您需要的主要两层逻辑是Presenter或ViewModel实体,然后是包含Linq-To-SQL查询等内容的下面的服务实体。因此,您可能已经有了服务层的大部分逻辑,但更重要的是将其重构为一致的形式。

票数 1
EN

Stack Overflow用户

发布于 2010-02-16 23:50:41

MVP对于开发人员来说可能很难理解,但你可以试一试。

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

https://stackoverflow.com/questions/2267928

复制
相关文章

相似问题

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