- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我对 .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/
下面的说法正确吗? “人最好的 friend 是狗。” public class Mann { private BestFriend dog; //etc } 最佳答案 我想说这样
我一直在 documentation 中查看 Laravel 4 中的关系我正在尝试解决以下问题。 我的数据库中有一个名为“事件”的表。该表具有各种字段,主要包含与其他表相关的 ID。例如,我有一个“
我的表具有如下关系: 我有相互链接的级联下拉框,即当您选择国家/地区时,该国家/地区下的区域将加载到区域下拉列表中。但现在我想将下拉菜单更改为基于 Ajax 的自动完成文本框。 我的问题是,我应该有多
我正在尝试弄清楚如何构建这个数据库。我之前用过Apple的核心数据就好了,现在我只是在做一个需要MySQL的不同项目。我是 MySQL 的新手,所以请放轻松。 :) 对于这个例子,假设我有三个表,Us
MongoDB 的关系表示多个文档之间在逻辑上的相互联系。 文档间可以通过嵌入和引用来建立联系。 MongoDB 中的关系可以是: 1:1 (1对1) 1: N (1对多)
您能解释一下 SQL 中“范围”和“分配单元”之间的区别或关系吗? 最佳答案 分配单元基本上只是一组页面。它可以很小(一页)或很大(很多页)。它在 sys.allocation_units 中有一个元
我有一个表 geoLocations,其中包含两列纬度和经度。还有第二个表(让我们将其命名为城市),其中包含每对唯一的纬度和经度对应的城市。 如何使用 PowerPivot 为这种关系建模?创建两个单
我想用 SQLDelight 建模关系,尤其是 一对多关系。 我有 2 张 table :recipe和 ingredient .为简单起见,它们看起来像这样: CREATE TABLE recipe
我是 Neo4J 新手,我有一个带有源和目标 IP 的简单 CSV。我想在具有相同标签的节点之间创建关系。 类似于... source_ip >> ALERTS >> dest_ip,或者相反。 "d
我正在创建一个类图,但我想知道下面显示的两个类之间是否会有任何关联 - 据我了解,对于关联,ClassA 必须有一个 ClassB 的实例,在这种情况下没有但是,它确实需要知道 ClassB 的一个变
是否可以显示其他属性,即“hasTopping”等? 如何在 OWLViz 中做到这一点? 最佳答案 OWLViz 仅 显示类层次结构(断言和推断的类层次结构)。仅使用“is-a”关系进行描述。 OW
public class MainClass { ArrayList mans = new ArrayList(); // I'm filling in this arraylist,
我想知道“多对二”的关系。 child 可以与两个 parent 中的任何一个联系,但不能同时与两个 parent 联系。有什么办法可以加强这一点吗?我也想防止 child 重复条目。 一个真实的例子
我有一个已经创建的Grails插件,旨在支持许多应用程序。该插件具有一个Employee域对象。问题在于,当在主应用程序中使用该应用程序中的域对象时,需要将其引用回Employee对象。因此,我的主应
我有一个类(class)表、类(class)hasMany部分和部分hasMany讲座以及讲座hasMany评论。如果我有评论 ID 并且想知道其类(class)名称,我应该如何在 LectureCo
我有一个模型团队,包含 ID 和名称。所有可能的团队都会被存储。 我的模型游戏有两列 team_1 和 team_2..我需要哪种关系? 我已经测试了很多,但它只适用于一列.. 最佳答案 也许你可以试
我读了很多关于 ICE 或 Corba 等技术中使用的仆人和对象的文章。有很多资源我可以读到这样的东西: 一个仆人可以处理多个对象(为了节省资源)。 一个对象可以由多个仆人处理(为了可靠性)。 有人可
嗨, 我有一个令人沮丧的问题,我在这方面有点生疏。我有两个这样的类(class): class A{ int i; String j ; //Getters and setters} class B
class Employee { private String name; void setName(String n) { name = n; } String getNam
如果您有这样的关系: 员工与其主管员工之间存在多对一关系 员工与其部门的多对一关系 部门与其经理一对一 我会在 Employee 实体中写入: @ManyToOne (cascade=CascadeT
我是一名优秀的程序员,十分优秀!