Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.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
C# 我可以通过Javascript与.NET库交互吗?_C#_.net_Php_Javascript - Fatal编程技术网

C# 我可以通过Javascript与.NET库交互吗?

C# 我可以通过Javascript与.NET库交互吗?,c#,.net,php,javascript,C#,.net,Php,Javascript,我们构建了一组.NET库(在C#中),用于与外部资源交互。外部资源提供Java和.NET中的绑定,因此有必要使用其中一种语言构建我们的库,我们正式成为Windows商店 我们的许多前端web应用程序也使用PHP/Javascript。这些PHP/Javascript web应用程序是否可以与我们的.NET库交互?如果有区别的话,我们有IIS和Apache web服务器。通信需要双向进行。最明显的方法是在web服务器(IIS或Apache/Mono)上公开.NET库。这允许JS和PHP使用相同的服

我们构建了一组.NET库(在C#中),用于与外部资源交互。外部资源提供Java和.NET中的绑定,因此有必要使用其中一种语言构建我们的库,我们正式成为Windows商店


我们的许多前端web应用程序也使用PHP/Javascript。这些PHP/Javascript web应用程序是否可以与我们的.NET库交互?如果有区别的话,我们有IIS和Apache web服务器。通信需要双向进行。

最明显的方法是在web服务器(IIS或Apache/Mono)上公开.NET库。这允许JS和PHP使用相同的服务端点(JS通过AJAX、PHP与web服务调用)


如果极端性能是一个问题——例如,您的PHP应用程序需要像本地应用程序一样对.NET库进行大量调用,那么web服务可能不是最好的方法。为此,您可能需要考虑为您的.NET库和。

您可以通过AJAX调用传递数据,通过JSON与客户端进行通信。对于客户端来说,数据集操作是一个很好的库,用于对JSON对象执行Linq查询


如果您正在寻找一个开始使用web服务的好地方,那么DaveWard的JSON和ASP.NETWebForms确实是一流的

尽管Ajax是常用的方法,但如果它可能有所帮助,您的另一个想法是在客户端使用Silverlight。这样,您就可以将.NET类嵌入到Silverlight应用程序中,然后将其下载到客户端,在浏览器中运行。Silverlight应用程序可以轻松地与JavaScript以及远程资源进行双向交互


例如,您可以使用
[ScriptableMember]
属性标记一个.NET方法,这将向JavaScript公开该方法。

如果您谈论的是在web浏览器中运行的JavaScript,那么您只需描述在.NET中编写的每个AJAX应用程序。如果您正在谈论从JS调用.NET程序集,而JS正通过Windows脚本主机在服务器上运行,那么请告诉我们。问题是“如何”javascript可以与C#DLL“对话”。我希望有一种不使用web服务的方法。虽然我认为我们可以编写web方法来公开相同的功能,并在运行应用程序的每台服务器上运行它们,使用它们来最小化延迟。我确实有点喜欢这个想法,然而,我询问PHP的原因是因为我们有很多PHP开发人员可以利用。使用Silverlight意味着卸载服务器并将一些逻辑推送到客户端。您仍然可以使用PHP构建web页面;这两种技术是兼容的(您甚至可以从Apache提供Silverlight应用程序;它不需要IIS)。仅使用PHP+Ajax,您仍然需要为服务器上的.NET库构建web服务包装器。这将您与服务器端的Windows联系在一起(不一定是件坏事),并且不排除仍然需要编写一些新的.NET代码。