使用Asp.Net进行异步编程的最佳方法

前端之家收集整理的这篇文章主要介绍了使用Asp.Net进行异步编程的最佳方法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
目前似乎有几种方法可以用asp.net进行异步/推式编程.但我有点困惑的是什么是最好的,什么提供最开发人员友好的方法.我已经遇到的事情是,

的NodeJS

SignalR

Using PushStreamContent (Web API) and something like KnockoutJS

虽然是SignalR is deemed to make it to asp.net 4.5,但我对NodeJs within MS(特别是Azure)非常感兴趣.任何人都可以了解差异(至少NodeJs和SignalR)?

解决方法

SignalR是“.NET的客户端和服务器端库,它通过持久连接提供消息传递和抽象.”这并不奇怪地使您的代码异步 – 它只允许您的服务器异步调用客户端(包括用户的浏览器中运行的JavaScript).

但是,.NET 4.5& C中出现的C#5.0. Visual Studio 2012(以及Mono 2.11)允许您通过使用新的async& amp编写/修改代码以实现异步.等待关键字.

如果您已经是.NET开发人员,那么C#async& await和SignalR非常易于上传,学习和运行,使您可以构建高度可扩展的高性能系统.

Node.js使您能够用JavaScript编写代码并将其托管在应用服务器中.

Node目前受到了很多关注,但是如果你来自.NET开发背景,那么在迁移到服务器上的JavaScript时,值得注意的一些事情可能会让你感到惊讶/烦恼:

> JavaScript是一种非常强大且极其灵活的动态类型语言.然而,在你学会了许多缺陷以及如何克服它们之前,这种灵活性可能是非常危险和有问题的.如果您必须执行JavaScript代码,请考虑使用TypeScriptCoffeeScript等语言编写源代码,这些语言可以编译为JavaScript,但可以避免许多JavaScript的危险.
>虽然node提供了出色的异步调度功能,但其代码执行性能可能比执行C#慢得多.如果您的代码很少/不处理数据,您可能不会注意到这个问题.但是,如果您的代码进行了大量的数据处理/计算/分析等,您可能会发现节点的JavaScript性能不可接受.
>节点是单线程的!如果您的代码必须执行一些繁重的处理,例如,对大量数据执行复杂的计算,它将阻止单个节点实例在每个处理操作完成之前提供其他传入请求.因此,您需要计划启用node clustering(当前是实验性功能),或者,如果您在Windows上托管节点,则使用IIS& IISNode] @L_403_7@使用(真棒)IIS&处理节点实例管理. Windows进程激活基础结构.>与典型的.NET开发人员的调试经验相比,在节点下运行的调试代码现在是一个缓慢而繁琐的过程.为此,您需要使用node-inspector和Chrome Web浏览器来调试代码,但体验很差:断点不会在运行时保留;不支持条件断点;显示调用栈很浅;等等

猜你在找的asp.Net相关文章