C# Visual Studio Express版本-特定于Windows

C# Visual Studio Express版本-特定于Windows,c#,.net,C#,.net,我是.NET和C的初学者,我从《Pro C 6.0和.NET 4.6框架》一书开始 书中引用: 每个Express工具的局限性在于它允许您构建 仅在Windows操作系统(7、8.x或10)上运行的.NET软件。 但是,如第1章所述,.NET平台运行的平台非常广泛 各种操作系统和硬件设备。因此,如果你需要 构建一个可以运行在(例如)Android或 苹果产品,快递产品不会提供太多帮助 我很难理解这意味着什么。据我所知.NET程序集(托管代码)将独立于平台。那么,为什么IDE的Express ve

我是.NET和C的初学者,我从《Pro C 6.0和.NET 4.6框架》一书开始

书中引用:

每个Express工具的局限性在于它允许您构建 仅在Windows操作系统(7、8.x或10)上运行的.NET软件。 但是,如第1章所述,.NET平台运行的平台非常广泛 各种操作系统和硬件设备。因此,如果你需要 构建一个可以运行在(例如)Android或 苹果产品,快递产品不会提供太多帮助

我很难理解这意味着什么。据我所知.NET程序集(托管代码)将独立于平台。那么,为什么IDE的Express verions生成的代码只针对Windows?生成的CIL不应该同样适用于Linux或Mac OS X中的mono框架(假设我没有使用任何mono不支持的框架,如WPF等)吗?有人能澄清一下这是什么意思吗?提前谢谢

我很难理解这意味着什么。据我所知.NET程序集(托管代码)将独立于平台

是IDE的快速版本只能针对Windows。以及其他与VisualStudio代码配套的平台

生成的CIL不应该同样适合在mono框架上运行吗


是的,应该是这样,但它必须在mono框架中重建此版本的Visual Studio(和社区版):

包括Windows SDK的编译器和核心文件,开发人员可以 用于构建Win32应用程序

如果您构建了一个C#web应用程序,那么如果该应用程序托管在Windows服务器(或者使用Mono而不是.Net的Mac/Linux服务器)上,那么其他平台用户仍然可以访问该应用程序

对于web应用程序,您只需要确保您的html/jscript等。 与用户浏览器兼容,但服务器操作系统和web 服务器在托管web应用程序方面很重要

在这种情况下,客户端不会运行C#.NET应用程序,而是运行(Windows服务器)

但是,如果您正在为操作系统构建一个普通的C#.NET应用程序(而不是web应用程序),那么您只能为Windows开发,因为您没有其他任何编译器



关于平台独立性的旁注:您可以看到关于它的一场有趣的辩论。这个问题已经问了5年,但答案是新的(2016)。

我不明白。如果我写的托管代码是CLSCompliant,我是否还需要根据Mono framefork重新构建它,以便在那里运行它?如果是这样的话,那么C是如何与其他语言不同的,比如C++?我认为C#也是一种WORA(一次编写,在任何地方运行)语言,如Java。你可以在windows中开发应用程序Mono framwork,它也可以运行任何软件,阅读这里获取更多信息作为微软的产品,Express edition有自己的目标,只为windows开发者服务。无论您是否想要,Mono是否也支持该程序都超出了产品的范围。这就是作者的意思。如果您确实想学习Mono或Xamarin,您肯定应该去读其他书籍,或者自己应用这些知识。这本书是错误的,Express不限于托管的.NET开发。也有用于本机开发的版本。不过,Express的问题不是技术问题,而是营销问题。在你的头脑中保持这两个概念的不同是很重要的。微软人为地限制其部分软件,包括VisualStudio,以细分市场。另外,要区分用于开发软件的IDE的概念与软件本身。不可否认,作者在这方面也做得很差。托管代码是平台独立的,但您使用的库不是。WPF应用程序永远不会在Android或苹果机上运行,因为它与DirectX的结合太紧密了。唯一一种平台无关的用户界面是控制台模式的应用程序或网页。你永远不会在安卓或苹果商店里出售,用户希望应用程序使用本机工具包小部件。Xamarin利用它做了一笔生意,这本书的作者还不知道这家公司是被微软收购的。顺便说一句,我已经接受了这个答案,因为它提供了另一个stackoverflow帖子的链接。那里的答案确实回答了我的问题。非常感谢你。