Mono 4.0 release with code import from referencesource.microsoft.com and corefx
- Made support for C # 6 by default
- Grew up in terms of improving GC and runtime
performance - Accelerated operations with float by 30-40%
- Added support for PowerPC64 LE
- And, most importantly, imported a very large piece of BCL from the .NET Framework.
Import Code List
On import, progress can still be seen here. Fully imported:
- System.Decimal
- System.Collections
- System.Collections.Concurrent
- System.Collections.Generic
- System.Collections.Specialized
- System.ComponentModel
- System.ComponentModel.Design
- System.Diagnostic.Contracts
- System.Linq
- System.Linq.Parallel
- System.Text.RegularExpressions
- System.Runtime.CompilerServices
- System.Threading.Tasks
Partial import / replacement
System:
- ArraySegment
- BitConverter
- Boolean, Byte, Char, Decimal, Int16, Int32, Int64, SByte, UInt16, UInt32, UInt64,
- Convert
- DateTime, Decimal
- Guid
- Lazy
- Random
- TimeSpan
- Version
System.Collections.Generic
- HashSet
- And generally for the most part the code has been replaced by
System.Diagnostics.Contracts
System.Globalization
- Entire calendar stack
- DaylightTime
- TextInfo
System.IO
- BufferedStream
- Stream
- MemoryStream
- StreamReader , StreamWriter, StringReader, StringWriter, TextReader, TextWriter
System.Linq.Expressions
- DynamicExpression, ExpressionVisitor
System.Net
- Cookie, CookieCollection, CookieContainer,
- FtpWebRequest
- WebClient
System.Text
- Processing of Unicode and ANSI encodings, the rest are still the old method, since the implementation from MS uses WinAPI
System.Threading (about 60%)
- System.Decimal
- System.Collections
- System.Collections.Concurrent
- System.Collections.Generic
- System.Collections.Specialized
- System.ComponentModel
- System.ComponentModel.Design
- System.Diagnostic.Contracts
- System.Linq
- System.Linq.Parallel
- System.Text.RegularExpressions
- System.Runtime.CompilerServices
- System.Threading.Tasks
Partial import / replacement
System:
- ArraySegment
- BitConverter
- Boolean, Byte, Char, Decimal, Int16, Int32, Int64, SByte, UInt16, UInt32, UInt64,
- Convert
- DateTime, Decimal
- Guid
- Lazy
- Random
- TimeSpan
- Version
System.Collections.Generic
- HashSet
- And generally for the most part the code has been replaced by
System.Diagnostics.Contracts
System.Globalization
- Entire calendar stack
- DaylightTime
- TextInfo
System.IO
- BufferedStream
- Stream
- MemoryStream
- StreamReader , StreamWriter, StringReader, StringWriter, TextReader, TextWriter
System.Linq.Expressions
- DynamicExpression, ExpressionVisitor
System.Net
- Cookie, CookieCollection, CookieContainer,
- FtpWebRequest
- WebClient
System.Text
- Processing of Unicode and ANSI encodings, the rest are still the old method, since the implementation from MS uses WinAPI
System.Threading (about 60%)
They also removed profiles 2.0 and 4.0, that is, you can run the code compiled for them, but now you can collect only under 4.5.
Regarding the question "Why, Microsoft is porting .NET on its own?" The idea is that MS is now porting (and it is not known when it is dorting) a fairly small subset of the subnet. Mono provides a desktop / server profile and will continue to provide it by integrating code from Microsoft. In the future, it is also planned to release the same subset called Mono Core, which can be used by means of DNX.
Now they have taken those pieces that in Mono sometimes worked crookedly or represented a footcloth from throw new NotImplementedException ().
So if your project on Mono did not start in connection with the jambs of something of the above, then it's time to try again.