android – MVC网站调用WCF更好或者MVC调用数据库操作直接更好
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了android – MVC网站调用WCF更好或者MVC调用数据库操作直接更好,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2380字,纯文字阅读大概需要4分钟。
内容图文
![android – MVC网站调用WCF更好或者MVC调用数据库操作直接更好](/upload/InfoBanner/zyjiaocheng/894/00c76dc855d14a40afe836559aaa5d11.jpg)
我们需要开发一个可以从桌面浏览器浏览的网站.我们还需要为同一个网站开发一个Android应用程序.我们正在考虑使用C#,Microsoft SQL Server和Windows Communication Foundation,Linq To Entity with Repository Framework来使用ASP.NET MVC.
WCF将使用Repository Framework使用Linq to Entity访问数据库并返回JSON.
问题1
Android应用程序将调用WCF服务.我们的想法是否正确?
问题2
ASP.NET MVC网站将调用WCF服务.使ASP.NET MVC应用程序调用WCF服务更好或者ASP.NET应用程序直接与数据库通信而不在中间使用WCF更好?
我的想法是仅将WCF用于Android应用程序,并使用linq到实体框架直接与数据库进行交互,使用中间没有WCF的存储库模式.这会是一个好方法吗?
问题3
如果ASP.NET MVC网站将调用WCF服务,我在哪里需要实现DI.我认为它必须在存储库框架和WCF服务之间,并且DI将在ASP.NET MVC和WCF之间无关.对?
这可能是一个简单的问题,但我想知道其他人如果有相同的要求,他们是如何做的.喜欢网站和Android应用程序.我不熟悉DI以及如何使用它.我一直在阅读关于DI的内容并没有得到它.所以我想知道DI会存在哪里?
解决方法:
>您的Android应用无法直接调用您的数据库,因此您需要一个服务.这可以是WCF或其他流行的选项是ASP.NET Web API.
>您不应该让您的MVC应用程序通过WCF服务间接与数据库通信,除非确实需要这样做(例如,由于安全性或组织问题),因为这个额外的间接层会降低性能.与WCF通信有很多开销,但这似乎并不一定.
>如果您决定让您的MVC应用程序调用WCF服务,则MVC和WCF应用程序都会获得自己的Composition Root.这意味着它们每个都有自己的DI配置和它们自己的注入依赖关系的方式.他们可能会分享很多,但这不是必须的.
我希望你可能会发现我的答案令人不安.您可能担心同时具有与数据库通信的WCF服务和MVC应用程序的开发开销,而不是仅具有与数据库通信的WCF服务.
但事实并非如此.事实上,这个SHOULDNOT就是这样.当你这样做时,你做错了. WCF服务本身应该只是业务层之上的一个非常薄的层.您的MVC应用程序使用的业务层.实际上,在应用正确的抽象时,您可以在几分钟内将MVC应用程序从使用数据库交换到使用WCF服务.
您可以通过将业务操作置于通用抽象之后并使用基于消息的体系结构来实现此目的.在这种情况下,您的WCF服务(或Web API)可以简单地排除这些消息并将它们转发到业务层.如果您正确地执行此操作,您将发现您可以以免维护的方式编写WCF服务或Web API服务,这意味着:您不必在系统增长时更改它们;何时将新业务操作添加到系统中.
我建议你阅读以下文章:
> Meanwhile… on the command side of my architecture
> Meanwhile… on the query side of my architecture
> Writing Highly Maintainable WCF Services.
如果您在阅读这些文章之后 – 对如何实现这一点存在疑问,请查看Highly Maintainable Web Services project.这是一个参考架构应用程序,它展示了如何使用WCF和Web API应用这些概念.
内容总结
以上是互联网集市为您收集整理的android – MVC网站调用WCF更好或者MVC调用数据库操作直接更好全部内容,希望文章能够帮你解决android – MVC网站调用WCF更好或者MVC调用数据库操作直接更好所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。