![mono运行.net4.0](https://i-blog.csdnimg.cn/blog_migrate/6727dbfb656907f4e6bb9aaa8ca3a684.png)
mono运行.net4.0
Via Gordon, I see that Tim Bray pointed to Jeff Dillon's points on cross platform .NET. Jim Blizzard chimed in as well.
通过Gordon ,我看到Tim Bray指出了Jeff Dillon在跨平台.NET上的观点。 吉姆暴雪也发出了响声。
I like Gordon's brief and complete summary:
我喜欢戈登的简短完整的摘要:
The point? If you care about cross platform .NET, there are details you need to pay attention to, and you really shouldn't do dumb things like use the registry. As for "the cost of not being able to do native system programming in pure Java" we already know that pure .NET is a myth, too. [The 80/20 Solution]
要点如果您关心跨平台.NET,则需要注意一些细节,并且您实际上不应该做一些愚蠢的事情,例如使用注册表。 至于“无法用纯Java进行本机系统编程的代价”,我们已经知道纯.NET也是一个神话。 [ 80/20解决方案]
With due respect, I'm not getting a few of Jeff's views:
在适当的尊重下,我对Jeff的看法不多:
The Java API writers have always been very careful not to introduce an API which does not make sense on all platforms. This makes Java extremely portable at the cost of not being able to do native system programming in pure Java. [Jeff Dillon]
Java API编写者一直非常小心,不要引入并非在所有平台上都有意义的API。 这使得Java具有极大的可移植性,但代价是无法用纯Java进行本机系统编程。 [杰夫·狄龙]
Which sounds just like the Least Common Denominator point I've made before. However, while the Java API writers may try to support the LCD, the Java Application Server vendors explicitly promote vendor lock-in by introducing APIS that are App Server specific. As Jeff wisely points out, there is a cost. I say it's too high for most.
听起来就像我之前提出的最小共同点。 但是,尽管Java API编写者可能会尝试支持LCD,但Java Application Server供应商通过引入特定于App Server的APIS显着促进了供应商锁定。 正如杰夫明智地指出的那样,这是有代价的。 我说对于大多数人来说太高了。
Microsoft is very open about their goals - Vendor lock-in is a good thing. Exploit the platform. Jeff says:
微软对他们的目标很开放-供应商锁定是一件好事。 利用平台。 杰夫说:
With .NET, Microsoft went ahead and wrote all kinds of APIs for accessing the registry, accessing COM objects, changing NTFS file permissions, and other very windows specific tasks. In my mind, this immediately eliminates .NET or Mono from ever being a purely system independent platform. [Jeff Dillon]
借助.NET,Microsoft继续编写了各种API,用于访问注册表,访问COM对象,更改NTFS文件权限以及其他非常特定于Windows的任务。 在我看来,这立即使.NET或Mono从纯粹的系统独立平台中消失了。 [杰夫·狄龙]
No, it really just eliminates the possibility of using a COM API on another platform. This will lead to the rise of ".NET Code - Pure Enough for Mono" , and that suits me just fine.
不,它实际上只是消除了在其他平台上使用COM API的可能性。 这将导致“ .NET代码-Mono够用了”的兴起,这对我来说很合适。
If Microsoft were to truly virtualize the machine, they would have marginalized their investment in the Windows platform. [Me]
如果Microsoft真正对计算机进行虚拟化,他们将在Windows平台上的投资边缘化。 [我]
I'm not trying to promote bad feelings. I worked at Nike getting Java over RMI on Solarious to talk to DB2 on a Mainframe - I love all religions, remember:
我不是要提倡不良情绪。 我在耐克公司工作,在Solarious上通过RMI获得Java以便在大型机上与DB2对话-我爱所有宗教,记住:
Scott's Rule of Programming 0x303b: Don't Player-Hate, Integrate.
斯科特的编程规则0x303b:不要讨厌玩家,不要整合。
I'm just trying to remind folks that, by definition, write once, run anywhere, means writing to Least Common Denominator APIS (or introducing "if (!IsMacIE)" code - You may have seen that before on a Write Once technology called HTML/ECMAScript?)
我只是想提醒人们,从定义上讲,编写一次,可以在任何地方运行,意味着写到最小公分母APIS (或引入“ if(!IsMacIE)”代码-您以前可能已经在称为HTML / ECMAScript? )
The only difference is that Mono has seen fit to raise the level of the Least Common Denominator API to a reasonable level. That, combined with common sense like there's no Registry on Linux means that apps like dasBlog can happily be ported to Mono.
唯一的区别是,Mono认为可以将最小公分母API的级别提高到合理的水平。 结合常识,例如Linux上没有注册表,意味着dasBlog之类的应用程序可以愉快地移植到Mono 。
翻译自: https://www.hanselman.com/blog/net-and-mono-the-libraries-the-framework-and-the-very-big-fish
mono运行.net4.0