Javascript VS C#

Jor*_*ris 28 javascript c#

也许是一个奇怪而又绿色的问题

有没有什么C#不能做什么javascript可以...并考虑JQuery?

除了一个是客户端,另一个是服务器端的事实?或者我现在问一个非常愚蠢的问题?

编辑: 更具体:我的意思是网络编程,实际上可能是一个更有用的问题:

>我可以做什么客户端,我不能做服务器端,反之亦然?

>如果将"server/clientside"超出范围,是否有更多理由使用这两种语言?

>一些开发人员避免使用javascript.为什么?

Cor*_*rch 24

客户端我能做什么,我不能做服务器端,反之亦然?

客户端:Javascript在没有插件的大多数浏览器中运行.C#需要像Silverlight这样的浏览器插件.即使它在客户端计算机上运行,​​Javascript也无法在那里读写文件.Silverlight中的C#可能能够读取和写入文件,具体取决于Silverlight版本以及客户端允许的内容.Javascript和C#/ Silverlight都可以与远程服务器通信.

服务器端:既然你控制了这台机器,你就可以做任何你想做的事情 - 读取文件,写文件,直接与数据库对话等等.请记住,没有什么能阻止你运行Javascript服务器端.退房的node.js.

如果您将"server/clientside"超出范围,是否有更多理由使用这两种语言?

我不会将执行环境从您的分析中删除.如果您绝对需要客户端交互并且无法保证C#将在客户端上执行,则C#不实用.同样,如果您的公司运行Windows服务器并且不想安装Javascript运行时/编译器,您将无法在服务器上使用Javascript.

一些开发人员避免使用JavaScript.为什么?

浏览器中的Javascript问题对于调试来说非常糟糕.你正在一台不受你控制的机器上运行 - 用户可能正在运行一个模糊或古老的浏览器,他们可能正在使用与你的Javascript混淆的防病毒软件,他们的浏览器插件可能会破坏你的Javascript.这个很难(硬.

然而,这是在别人的机器上做生意的成本.如果它很容易,那么美丽的客户端体验意味着更少.解决难题不适合所有人,但是当它做得好时肯定会受到赞赏.


Joe*_*orn 12

我认为你真正的问题是,如果c#可以做任何事情,你为什么要使用javascript?这里的答案是表现,无论是感知还是真实.这里的技巧是使用c#来执行通常与javascript相关联的DOM操作,浏览器必须向服务器发回额外的http请求并告诉c#代码该做什么.让我们谈谈那些额外的请求.它们分散在很多用户身上,非常快速地加起来并对您的服务器基础架构造成严重破坏."真正"的性能问题是,现在很多工作,对发生服务器,而不是用户的浏览器."感知"性能问题是,即使您拥有服务器资源来轻松处理所有其他http请求,您现在也需要花费额外的时间来等待这些http往返所带来的延迟.


Jus*_*ier 5

这两种语言都严重依赖于为不同域设计的API.

JavaScript原本打算在浏览器中运行,因此它大量使用DOM API以及其他浏览器内操作,如AJAX.C#可能对这样的API没有很好的支持,因为它从未打算直接在浏览器中执行 - 尽管Silverlight可能提供这样的操作,因为它(在某种程度上)是浏览器内的"C#Sandbox".

另一方面,C#是一种通用语言,旨在构建基本上任何应用程序,从服务器端引擎到客户端应用程序再到服务 - 你明白了......