发布于 2014-09-09 02:17:11 | 247 次阅读 | 评论: 0 | 来源: 网友投递

这里有新鲜出炉的精品教程,程序狗速度看过来!

Mono 跨平台的 .NET 运行环境

Mono是一个由Novell公司(由Ximian发起,并由Miguel de lcaza领导的,一个致力于开创.NET在Linux上使用的开源工程。它包含了一个C#语言的编译器,一个CLR的运行时,和一组类库,并实现了 ADO NET和ASP NET。能够使得开发人员在Linux用C#开发程序。)主持的项目.该项目的目标是创建一系列符合标准ECMA (Ecma-334和Ecma-335)的.Net 工具, 包括C #编译器和共同语言(CL 即 Common Language)执行平台(Platform).与微软的.Net不同, Mono项目不仅可以运行于Windows系统内,还可以运行于Linux, FreeBSD, Unix, Mac OS X和Solaris。


Mono 3.8.0 发布,此版本包括 711 个 commits,从 3 月 28 日开始有 61 位贡献者参与,修复了 58 个 bug。

Mono是一个由Novell公司(由Ximian发起,并由Miguel de lcaza领导的,一个致力于开创.NET在Linux上使用的开源工程。它包含了一个C#语言的编译器,一个CLR的运行时,和一组类库,并实现了 ADO NET和ASP NET。能够使得开发人员在Linux用C#开发程序。)主持的项目.该项目的目标是创建一系列符合标准ECMA (Ecma-334和Ecma-335)的.Net 工具, 包括C #编译器和共同语言(CL 即 Common Language)执行平台(Platform).与微软的.Net不同, Mono项目不仅可以运行于Windows系统内,还可以运行于Linux, FreeBSD, Unix, Mac OS X和Solaris。

值得关注的更新:

  • 整个运行时的重要性能提升和伸缩性性改进

  • 完成对 Windows 64 位的支持

  • usb 连接的调试器有线协议优化

在调试器方面:

  • Updated wire protocol better handles high latency connections such as those found when doing USB debugging.

  • Client library now aggressively caches information and batches requests. Under one test scenario single stepping packets transmitted dropped from 2233 to only 16, which the latency going from seconds to 20 milliseconds.

性能:

  • The JIT now better handle long remainders by powers of two, generating significantly better code.

  • Over 10x faster code is generated for delegates that only invoked once. C# features such as async and LINQ produces a lot of those delegates, so this improvement will impact everyone.

  • Improved alias analysis can now handle second order aliases and eliminate null checks.

  • The runtime now has a concurrently readable hashtable that can makes reflection heavy workloads significantly faster and more scalable.

垃圾回收:

  • Optimized one of the core data structures of the garbage collector should result in 5 to 10% reduction in collection times.

Bug 修复:

运行时:

  • Fix the leaking of mach ports introduced by 98bbf8512aec0fa01b4426583280f6d231d22187. Fixes #22068

  • Fix Process.PrivateMemorySize64 etc. on ios. Fixes #21882

  • Fix enum->int casts in gsharedvt code. Fixes #21893

  • Avoid making generic calls from gsharedvt methods normally, go through the rgctx infrastructure instead. Fixes #21677

  • Fix another native-types problem. Hopefully fixes #21670 and #21636

  • Use alias information to eliminate explicit null checks. Fixes #21645

  • Initialize fields in MonoField:GetFieldOffset () if needed. Fixes part of #21604

  • Properly handle rethrow outside of catch blocks. Fixes #20412

  • Disable runtime unit tests on linux, because it cannot be linked due to circular dependencies between libraries. Fixes #21520

  • When parsing a method header, ensure we pass any available generic context. Fixes #21388

  • Added new mono_domain_set_config function; used to fix ConfigurationErrorsException in #10468

  • Only apply the maverick stack size hack to the main thread. Fixes #10096

  • Don't hardcode the temp dir to /tmp, use g_get_tmp_dir instead. Fixes #20894

  • Explicit thread GC data around instead of relying on TLS storage. Fixes #20360

  • Make WaitForPendingFinalizers () really wait for the finalizers added by a previous GC. Fixes #20503

  • Fix the marshal7.cs test, longs can be aligned to 4 bytes on 32 bit linux, and the runtime no longer aligns structure sizes to 8 bytes. Fixes #20788

  • Fix the popping of LMF frames during unwinding. Fixes #20616

  • Fix the marshalling of ByValTStr types which have a size specified. Fixes #20674

  • Fix the decoding of MonoJitInfo. Fixes #16439

  • Make it possible to create views to magic zero size files such as /dev/zero. Fixes #19460

  • Free static bound delegate wrappers of dynamic methods. Fixes #19058

  • Don't perform double accounting of offset for named memory segments. Fixes #20591

  • Avoid joining attached threads. Fixes #19343

  • Fix support for custom marshallers defined in other assemblies. Fixes #20020

  • Fix a jit assertion on a class which contains an empty struct as a static field. Fixes #20349

  • Applied patch from Kyle Edwards kyleedwardsny@gmail.com. Fix isinf () check with clang. Fixes #20244

  • Fix constrained type unwrap for enum types. Fixes #18371

类库

  • Handle quoted filename value. Fixes #21960

  • Correctly handle partial chunk sizes. Fixes #20583

  • Tweak Dictionary initial capacity to be more conservative. Fixes #21375

  • Handle closed-over-null delegates created with IL when using InvokeDynamic. Fixes #21196

  • Fix a race in a Task test. Fixes #20921

  • Contract the values array when decoding an array with a negative number and a trailer that evals to zero. Fixes #20456

  • Fixes issue with expression columns and IsNull. Fixes #20925

  • Array qsort without head allocation. Fixes #20922

  • Enum::TryParse ignores leading whitespaces. Fixes #20870

  • Fix disposing of DelegatingHandler. Fixes #20818

  • Fix digest authentication (bug #18799)

  • Only recycle ServicePoints from the idle timer (fixes #19823)

  • Changed ConcurrentDictionary.Contains(KeyValuePair) to also compare value. Fixes #16990

  • Add System.ServiceModel.Security assembly. Fixes #20108

  • Removed NET_2_1 conditional blocks from FileInfo. Fixes #19862

C# 编译器

  • Update codegen for boolean loads. Fixes #21685

  • Effective base class can include inherited types. Fixes #21390

  • Handle duplicate resume point registration. Fixes #21387

  • Arguments can be empty when reporting missing params argument. Fixes #21215

  • Flow analysis of moved arguments. Fixes #20983

  • Run new initializer await checks only in async context. Fixes #20614[system.data] Parse numeric expressions using invariant culture. Fixes #20582

  • Reachability analysis should ignore local variables declarations. Fixes #20603

  • Check for missing dependencies of container types. Fixes #20382

  • Resolve event expression when testing left side expression. Fixes #20493

  • Flow analysis of binary expressions not using logical operators. Fixes #20515

MSBuild

  • Add 4.5.1 framework. Fixes #20827

  • Parsing conditions with property references. Fixes #20634

  • Implements property functions using constructor syntax. Fixes #12999

调试器

  • Avoid clearning event requests if they reference an assembly which is unloaded. Instead, remove the assembly reference from the event request so it stays active. Fixes #9924.

Mono 是一个由Novell 公司主持的项目。该项目的目标是创建一系列符合ECMA 标准(Ecma-334 和Ecma-335)的.NET 工具,包括C# 编译器和共通语言执行平台。与微软的.NET Framework 不同,Mono 项目不仅可以运行于Windows 系统上,还可以运行于Linux,FreeBSD,Unix,Mac OS X 和Solaris。

Mono 的开发工具 MonoDevelop

微软开发了一个称为共享源码公共语言基础(Shared Source Common Language Infrastructure,Shared Source CLI)的可用于 FreeBSD,Windows 和 Mac OS X 的 .NET 实现版本。微软的共享源码协议并不是开源软件协议,且可能对于社区来说也是不足够的(它明文禁止了对软件的商业用途)。我们还可以见到另外一个 .NET 实现版本,Portable.NET 项目,该项目与 Mono 项目有着很多相同的目标。

Mono 虚拟机包含一个实时编译引擎,该引擎可用于如下处理器:x86,SPARC,PowerPC,ARM,S390(32位模式和64位模式),x86-64,IA64 和64位模式的 SPARC。该虚拟机可以将代码实时编译或者预先编译到原生代码。对于那些没有列出来的系统,则使用的是代码解释器。

下图是MONO的体系结构图

 



历史版本 :
Mono 5.0.1.1 发布,开源跨平台 .Net 框架
Mono 5.0.0.36 发布,开源跨平台 .Net 框架
Mono 4.8.0.459 发布,开源跨平台 .Net 框架
Mono 4.0 发布,开源跨平台 .Net 框架
Mono 发布 4.0 的发行说明,支持 C# 6.0
Mono 3.10.0 发布,跨平台 .NET 运行环境
Mono 3.8.0 发布,跨平台的 .NET 运行环境
Mono 3.6 发布,跨平台的 .NET 运行环境
最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务