Mono 4.0.0 Notas de la Versión

Reflejos que se de notan

  • Adopción de código fuente abierto de Microsoft
  • C # 6.0
  • Flotante optimizaciones de punto
  • Dejamos caer el apoyo a los 2.0, 3.5 y 4.0 asambleas
  • Actualizado IKVM
  • Más claro sobrecarga depurador
  • Soporte básico PowerPC64 LE

Floating Point Optimizactions
Mono ha elegido históricamente para utilizar la máxima precisión posible para todas las operaciones de punto flotante. Esto significa que tanto en matemáticas de 64 bits y 32 bits de matemáticas se realizaron con la máxima precisión posible.
Pero código sensible rendimiento que podrían no necesitar de alta precisión se vio afectado negativamente.
Con este lanzamiento estamos introduciendo el apoyo para la realización de operaciones flotantes de 32 bits que utilizan 32 bits de matemáticas. Esto produce un código más rápido a expensas de la fidelidad. Este modo de funcionamiento se puede activar con el -O = float32 opción.

C
Compilador de C # de Mono como valor predeterminado C # 6.0
El compilador ahora evitará generar un GUID cada vez que se construye, generando idéntica construye a través de recopilaciones. Siguiendo los pasos de nuevo defecto de Roslyn.

Código Fuente Microsoft Adopción
Esta es la primera versión de Mono que sustituye a diversos componentes del Mono con código que fue lanzado por Microsoft bajo la licencia MIT en uno de tres lugares:

  • Caída ReferenceSource de Microsoft
  • De Microsoft CoreFX
  • De Microsoft CoreCLR

Mientras que Microsoft está trabajando para .NET Core: una versión redistribuible y re-imaginada de .NET, el proyecto sigue siendo un trabajo en progreso. Mono en este punto continúa proporcionando una API que rastrea la versión de escritorio de .NET / servidor.
Esto significa que la mayor parte del código que hemos integrado proviene de la caída ReferenceSource. En el futuro, vamos a entregar un “Mono Core” a lo largo de las mismas líneas de .NET Core para permitir el uso del tiempo de ejecución Mono con el nuevo sistema de distribución de la biblioteca que se está desarrollando con CoreFX.
En esta versión, tenemos componentes bien portados que estaban incompletos o con errores en Mono y eran relativamente fáciles de portar a Mono. Hay mucho más por hacer en este ámbito. Si usted está interesado en el seguimiento de esos esfuerzos, compruebe el estado del proyecto:
Proyecto Aqui
Barcos Mono ahora con un subconjunto de la referencesource que se han ajustado para trabajar con bibliotecas de clases del Mono o han sido actualizados para ser multiplataforma.

Decimal
Hemos reemplazado aplicación System.Decimal de Mono con la versión de Microsoft. Esto fija un par de errores de formato. Si bien el código del Mono no tiene ningún error grave, la implementación de Microsoft es más eficiente y es mantenido activamente. Corrigiendo errores en System.Decimal siempre fue difícil.

Clases de Microsoft surtidos importados
Estos son algunos aspectos destacados de código importados de Microsoft (bits más pequeños como atributos, enumeraciones, argumentos del evento, excepciones o otros bits simples no se muestran):
Los siguientes espacios de nombres han sido del todo, o casi totalmente sustituido por un código ReferenceSource:

  • 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

Cambios parciales:

  • Sistema:
  • ArraySegment
    • BitConverter
    • Boolean, Byte, Char, Decimal, Int16, Int32, Int64, SByte, UInt16, UInt32, UInt64,
    • Convertir
    • DateTime, Decimal
    • Guid
    • Perezoso
    • Al Azar
    • TimeSpan
    • Versión
  • System.Collections.Generic
    • HashSet
    • Mayormente reemplazado
  • System.Diagnostics.Contracts
  • System.Globalization
    • Pila calendario completo
    • DaylightTime
    • TextInfo (sustituye tablas de categorización de texto, lo reemplaza con .NET que es la mitad del tamaño)
  • System.IO
    • BufferedStream
    • Corriente
    • MemoryStream
    • StreamReader, StreamWriter, StringReader, StringWriter, TextReader, TextWriter
  • System.Linq.Expressions
    • DynamicExpression, ExpressionVisitor
  • System.Net
    • Galleta, CookieCollection, CookieContainer,
    • FtpWebRequest
    • WebClient
  • System.Text
    • Traiga la página del codificadores no de código
  • System.Threading (alrededor de 60% sustituido)

También las System.Numerics se ha actualizado para utilizar ReferenceSource (se utilizó un Microsoft más viejos abrir la versión de origen de la biblioteca en el pasado)

Recolector De Basura
El equipo de rendimiento Xamarin ha sido puesta a punto SGEN recolector de basura del Mono.

Soporte Abandonado por Marcos Antiguos
Ya no construimos o conjuntos de referencia paquete para .NET 2.0, .NET 3.5 o .NET 4.0 API. Sólo se admite ahora los .NET 4.5 asambleas, así como los perfiles basados en móviles.
Las asambleas de referencia 4.0 se incluyen por el bien de los desarrolladores que utilizan Mono para construir bibliotecas que deben ser desplegadas en sistemas que utilizan 4.0. Estas asambleas sólo contienen metadatos; no deben ser desplegadas ya que han sido despojados de todo el código CIL.

Más claro Overhead depurador
FIXME: añadir una descripción SeqPoint

Otras Características

  • Nuevo código de interrupción (FIXME: completar los detalles)
  • Añadido guiones LLDB para ayudar a los desarrolladores a depurar el tiempo de ejecución con LLDB
  • Método y clases MonoIO utiliza ahora SafeHandles
  • System.Net.NetworkInformation implementa más características en más plataformas

Descargar este artículo en PDF

Lo sentimos, esta opción solo está disponible para los socios. Más información de nuestro grupo de socios.


Angel Sanchez on FacebookAngel Sanchez on GithubAngel Sanchez on GoogleAngel Sanchez on InstagramAngel Sanchez on LinkedinAngel Sanchez on Twitter
Angel Sanchez
CEO en Azul Web
Fundador de Azul Web amante de la tecnología, me gusta compartir mis conocimientos y apoyar a las demás personas que desean tener un mejor desarrollo profesional. Toda persona que tenga un sueño y este luchando por él tiene mi respeto y mi apoyo.

Déjanos un comentario:

Deja un comentario