Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript与C#_C#_Javascript - Fatal编程技术网

Javascript与C#

Javascript与C#,c#,javascript,C#,Javascript,也许是个奇怪的绿色问题,但是 有什么是C#做不到的javascript可以做到的吗。。。 那么考虑JQuery呢 除了一个是客户端,另一个是服务器端? 还是我现在问了一个非常愚蠢的问题 编辑: 更具体地说:我指的是网络编程,实际上,一个更有用的问题是: >在客户端我能做什么,而在服务器端我不能做什么,反之亦然? >如果将“服务器/客户端”排除在范围之外,是否还有更多的理由使用这两种语言? >一些开发人员避免使用javascript。为什么?从技术上讲,没有 如果需要,您甚至可以使用Javascr

也许是个奇怪的绿色问题,但是

有什么是C#做不到的javascript可以做到的吗。。。 那么考虑JQuery呢

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

编辑: 更具体地说:我指的是网络编程,实际上,一个更有用的问题是:

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

>如果将“服务器/客户端”排除在范围之外,是否还有更多的理由使用这两种语言?

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

从技术上讲,没有

如果需要,您甚至可以使用Javascript服务器端(或者通过不同的机制使用客户端C#)


它们实际上只是完成相同工作的两种方法。

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

JavaScript最初打算在浏览器内部运行,因此它大量使用domapi以及其他浏览器内操作,如AJAX。C#可能对此类API没有很好的支持,因为它从未打算直接在浏览器中执行——尽管Silverlight可能提供此类操作,因为它(在某种程度上)是浏览器中的“C#沙盒”


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

我想你真正的问题是,如果C#可以做任何事情,为什么要使用javascript?这里的答案是表现,无论是感知的还是真实的。这里的诀窍是,要使用c来执行通常与javascript相关联的DOM操作,浏览器必须向服务器发回一个额外的http请求,并告诉c代码该做什么。让我们谈谈那些额外的要求。分布在大量用户中,他们的数量增加得非常快,对您的服务器基础设施造成了严重破坏。“真正的”性能问题是,现在很多工作必须在服务器上进行,而不是在用户的浏览器中。“感知到的”性能问题是,即使您有服务器资源来轻松处理所有额外的http请求,您的用户现在也必须花费额外的时间等待这些http往返产生的延迟。

我看到一个C#项目,其中嵌入了javascript,并且可以在C#代码中执行javascript。看看这是如何实现的

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

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

服务器端:由于您控制这台机器,您可以做任何您想做的事情——读取文件、写入文件、直接与数据库通信等等。请记住,没有任何东西可以阻止您运行Javascript服务器端。退房

是否有更多的理由同时使用这两种方法 语言,如果你保持 “服务器/客户端”超出范围

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

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

浏览器中Javascript的问题对于调试来说是绝对可怕的。你正在一台你无法控制的机器上运行——用户可能正在运行一个晦涩或陈旧的浏览器,他们可能正在使用破坏你的Javascript的反病毒软件,他们的浏览器插件可能破坏你的Javascript。这很难


然而,这是在别人的机器上做生意的成本。如果这很容易,一个漂亮的客户端体验就意味着更少。解决困难的问题并不适合所有人,但如果做得好,肯定会受到赞赏。

你可以通过Silverlight编写(我想)客户端C(如果你让人们安装插件,eugh),JS很乐意运行服务器端()。“我能在客户端做什么,而在服务器端做不到,反之亦然?”这与C#Vs.JavaScript完全不同。你可能应该编辑问题以澄清问题。如果你提供更多的上下文,这会有所帮助;知道这个问题的答案对你有什么帮助?你在考虑什么项目?当人们谈论C时,他们通常指的是C#+BCL,但开箱即用javascript的库很差。@Andry javascript的开箱即用功能可能有点弱,但很容易扩展和重用你的代码,这真的不重要。无论哪种方式,您都可以完成这项工作。我认为最流行的服务器端解决方案是node.js。它不是Azure平台的一部分。我想补充一点,在你的浏览器中加入严格的“查看”代码可以使你的服务器端代码更干净、更容易阅读。我认为值得检查一下Iron JS。它在.NETDLR上运行,因此类似于IronPython和Ruby。