miércoles, 13 de diciembre de 2017

Entrando en .NET Core con the Windows Compatibility Pack


Una de las mayores diferencias entre .net y .net core es que este ultimo corre en Linux. Pero para aplicaciones de grandes empresas, realizar una migración en un solo paso no es factible. Por este motivo, Microsoft recomienda una transición incremental:

Migrar a ASP.NET Core
Migrar a .NET Core
Migrar a Linux
Y luego Migrar a Azure (host en linux)

Si bien eso suena bien en teoría, si falta una API crítica los proyectos no llegarán ni al paso 2. En este caso es donde entra en juego he Windows Compatibility Pack para .NET Core. Abarcando 20,000 APIs, esta colección de paquetes .net tiene como objetivo abordar las necesidades de la librerías para los desarrolladores de aplicaciones web.

Las API recientemente portadas se dividen aproximadamente en dos categorías: solo Windows y multiplataforma. Las API solo de Windows incluyen:

  • Active directory
  • Criptografia
  • Registros de eventos y contadores de rendimiento
  • File system security
  • Named pipes
  • Registry Access
  • Windows Services


En su mayor parte, están relacionados con el sistema operativo Windows, y los equivalentes de Linux a menudo tienen un diseño diferente.

Las bibliotecas multiplataforma incluyen:

  • Caching
  • ConfigurationManager 
  • DatasetExtensions (usado para acceso a base de datos sin un ORM) 
  • ODBC database access
  • System.Configuration.ConfigurationManager (MEF v1)
  • System.Drawing
  • System.IO.Packaging 
  • System.ServiceModel (i.e. WCF)
Cabe señalar que estas API se están omitiendo intencionalmente de la distribución .NET Core completa.