c#-设计:网站在同一台计算机上调用Web服务
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c#-设计:网站在同一台计算机上调用Web服务,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2627字,纯文字阅读大概需要4分钟。
内容图文
![c#-设计:网站在同一台计算机上调用Web服务](/upload/InfoBanner/zyjiaocheng/688/aa10b2bda16246ad8e80f72751ac2f08.jpg)
更多关于设计/概念的问题.
在工作中,决定通过Web服务调用我们的数据访问层.因此,我们的网站将调用Web服务以获取往返数据库的任何/所有数据.网站和这些Web服务将位于同一台机器上(因此,无需跨线路),但是数据库位于另一台机器上(因此,无论如何都需要跨线路).这些都是内部的,网站,Web服务和数据库都在同一公司内(AFAIK,Web服务不会被另一方重复使用).
据我所知:该网站将打开Web服务的端口,然后Web服务将依次打开另一个端口并通过电线连接到数据库服务器以获取/提交数据.不可避免地会发生跨网旅行,但是我担心Web服务位于中间.
我确实同意功能之间需要有不同的层(例如业务层,数据访问层等),但这对我来说似乎过于复杂.我还感觉到了一些性能问题.
在我看来,直接在解决方案中引用(DAL)组件会更好,这样可以消除第一个端口到端口的连接.
支持和反对这个想法的任何想法(或链接)将不胜感激
附言我们是.NET商店(从vb迁移到C#3.5)
编辑/更新
他将Dathan标记为答案,但我还是没有完全被卖掉(我仍然有点不知所措,尽管倾斜它可能不会像我担心的那样糟糕),他提供了一个经过深思熟虑的答案.我感谢所有反馈.
解决方法:
两种设计(应用程序到Web服务到数据库;应用程序到DAL到数据库)都是非常标准的.与客户端接口时,通常使用Web服务来标准化数据访问的语义.与基础持久性存储相比,Web服务通常能够更准确地表示数据模型的语义,从而通过抽象和封装IO特定问题来帮助系统的可维护性. Web服务还具有另外的目的,即通过跨防火墙通常可访问的协议为数据提供公共接口(尽管“公共”可能仍然意味着公司内部).当使用DAL直接连接到DB时,可以用类似的方式封装数据IO问题,但是最终您的客户端必须直接访问数据库.通过将IO限制为定义明确的语义(通常为CRUD查询),可以增加一层安全性.不过,这对您来说并不重要,因为您正在运行Web应用程序-所有数据库访问均已通过可信代码完成.但是,Web服务确实提高了抵御SQL注入的健壮性.
除了所有Web服务理由之外,真正的问题是:
将使用多少?网站/ Web服务/数据库格式的确在Web服务器上增加了一些开销-如果网站受到重创,则在将另一服务放置在同一台计算机上之前,您需要考虑很长时间.否则,增加的低效率可能不是什么大问题.另一方面,如果站点受到重创,则您可能无论如何都希望水平扩展,并且应该能够同时扩展Web服务.
您获得多少?拥有Web服务的主要原因之一是提供对客户端代码的数据可访问性-特别是在需要支持多个可能的应用程序版本时.由于您的Web应用程序是唯一使用Web服务的客户端,因此不必担心-单独对应用程序进行版本控制实际上可能会花费更少的精力.
您是否想扩展?您说它可能永远不会被单个Web应用程序以外的任何客户端使用,但是这些东西都有增加规模的方法.如果您的Web应用有可能在范围或受欢迎程度上有所增长,请考虑使用Web服务.通过围绕Web服务进行设计,您已经将目标对准了模块化的多主机解决方案,因此您的应用程序可以轻松地进行扩展.
万一您无法猜到,我是Web服务迷.但是以上也是我对此主题的诚实(如果有些偏见)的观点.如果您确实采用了Web服务路线,请确保使其简单-将应用程序逻辑保留在应用程序中,并将服务逻辑保留在服务中,并在扩展两者时尝试在它们之间画一条明线.并设计您的服务以提高效率并配置主机,以使其尽可能平稳地运行.
内容总结
以上是互联网集市为您收集整理的c#-设计:网站在同一台计算机上调用Web服务全部内容,希望文章能够帮你解决c#-设计:网站在同一台计算机上调用Web服务所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。