gpt4 book ai didi

c# - .NET 与 Windows 内核/操作系统和其他操作系统的关系是什么

转载 作者:IT老高 更新时间:2023-10-28 23:13:52 25 4
gpt4 key购买 nike

我对 .NET 究竟是什么感到困惑。我是一名计算机科学专业的学生,​​使用 C++ 完成了大量 Win32 (WinAPI) 编程,并且非常了解 Win32 函数如何与 COM 和 Windows 内核本身交互。

但是 .NET 在哪里适合这一切呢?

  • 具体来说,如果 Win32 是用 C 编写的 API,那么 .NET 是什么?它也是用 C 编写的 API 吗?是否只能在 Win32 等 Windows 操作系统上运行?

  • .NET 是否在 Win32 API 之上运行?例如,.NET 函数 showWindow() (显然是我编造的)在幕后调用 Win32 函数来显示窗口,还是直接进入内核执行此操作?还是 .NET 就像 Java 虚拟机?

  • .NET 是否直接与 Windows 内核交互(如 Win32)并与 COM 对象交互? .NET 是否在沙盒中运行并且不允许对某些操作系统区域进行某些访问?

  • 我可以使用 Win32 API 以不同的语言编写代码,例如 c/c++、VB、Perl。我可以在 .NET 中编写哪些语言?

  • 这才是真正让我难过的地方。我听说过用 .NET 编写的 Web 应用程序?什么,怎么,什么?它是用什么语言写的? .NET 是否在 IE 之上运行? .NET Web 应用程序可以在 Firefox 或 Safari(MacOS) 上运行吗?是像 java 小程序一样的 .NET Web 应用程序,您是否也获得了 .NET 驱动程序。

最佳答案

一些简短的答案让你继续前进:

Specifically, if Win32 is an API written in C, what is .NET? Is it an API written in C also?

.NET 由多个部分组成。一部分称为 CLR。该部分是用 C++、C++/CLI 和一些程序集编写的。这负责运行 .NET 应用程序。即时 (JIT) 编译器是其中的重要组成部分。

然后是包含的库。这些主要是用 C# 编写的,但其中一些可能有部分是用 C++/CLI 编写的。您实际上可以获得许多包含库的源代码。

Does it only run on Windows OS like win32?

也没有,有一个在 Linux 上运行的端口(称为 Mono),有在 WIndows Phone 7 上运行的版本,然后是在 Mac 上也运行的 Silverlight....

Does .NET run ontop of the win32 API?

在很大程度上,是的,尽管在某些地方它开始取代常规的 WinAPI(它肯定是微软在某个阶段尝试对大部分或全部 WinAPI 进行 .Net 化的计划)。不过我不会用它编写驱动程序,你仍然会使用常规的 C/C++ 接口(interface)来连接内核 API。

这些库确实调用了 win32 API 的许多不同部分。这是与其他 Windows 应用程序顺利互操作所必需的。

Does .NET interact with ... COM objects?

是的,使用 COM 互操作。

Does .NET run in a sandbox & not allow some access to certain OS areas?

运行时的某些变体可以被沙盒化(Silverlight、WPF XBAP)。拥有 UnmanagedCode 权限的 .Net 应用程序也可以调用用非托管 C++ 编写的代码,并且可以完全不受限制地访问系统(尽管您仍然必须遵守文件 ACL 之类的小麻烦)。

I can code in different languages using the win32 API such as c/c++, VB, Perl. What languages can I code in .NET?

.Net 是一个带有 JIT 编译的运行时库。您可以使用许多构建在框架之上的语言。 JIT 编译也不是强制性的 - 您仍然可以编译您的应用程序以针对特定的 CPU 架构。

I hear about web applications written in .NET? What, how, wha? What language is it written in? Does .NET run ontop of IE? Does .NET webapps work on Firefox or on Safari(MacOS)?

这些应用程序可以用任何 .Net 语言编写,尽管实际上它们中的大多数将使用 C# 和 VB.Net。你一定听说过 ASP 吧?嗯,ASP.NET(及其姊妹 ASP.NET MVC)是下一代——它在服务器上运行并像许多其他服务器端语言一样呈现 HTML + javascript。您还可以选择在客户端上运行 Silverlight,它可以在浏览器内外运行。 Silverlight 绝对适用于 Firefox、Safari 和 Chrome。

关于c# - .NET 与 Windows 内核/操作系统和其他操作系统的关系是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7428974/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com