# Shared source

Código compartido (en inglés shared source) o fuente compartida son términos para uno de los mecanismos legales de Microsoft para la distribución de código fuente de software. La Iniciativa de Código Fuente Compartido de Microsoft, anunciada en mayo de 2001, abarca una amplia variedad de tecnologías y licencias. La mayoría de sus ofertas de código fuente están disponibles para su descarga después de que se cumplan los criterios de elegibilidad.
Las licencias relacionadas con las ofertas van desde las de código cerrado, permitiendo sólo la visualización del código de referencia, a las que permiten modificarlo y redistribuirlo tanto para fines comerciales como no comerciales.

## Descripción general

Los programas de código compartido permiten a los individuos y las organizaciones acceder al código fuente de Microsoft como referencia (por ejemplo en el desarrollo de sistemas complementarios), para revisión y auditoría desde una perspectiva de seguridad (principalmente solicitado por algunas grandes corporaciones y gobiernos), y para desarrollo (instituciones académicas, fabricantes de equipos, desarrolladores individuales).
Como parte del sistema, Microsoft publicó cinco licencias para uso general. Dos de ellas, la Licencia Pública de Microsoft y la Licencia Recíproca de Microsoft, fueron aprobadas por la Open Source Initiative como licencias de código abierto y son consideradas por la Free Software Foundation como licencias de software libre. Otras licencias de código compartido son propietarias, y permiten así que el titular de los derechos de autor mantenga un control más estricto sobre el uso de su producto.
La Iniciativa de Código Fuente Compartido de Microsoft ha sido imitada por otras empresas, como RISC OS Open Ltd.
Microsoft también utiliza licencias específicas para algunos de sus productos, por ejemplo, la licencia de Código Compartido CLI y la Licencia de Microsoft Windows Embedded CE 6.0.

## Licencias de software libre y de código abierto

Dos licencias de código fuente compartido de Microsoft son consideradas como código abierto por la Open Source Initiative y libres por la Free Software Foundation.

### Microsoft Public License (Ms-PL)

Esta es la menos restrictiva de las licencias de Microsoft y permite la distribución de código compilado ya sea para fines comerciales como no comerciales bajo cualquier licencia que cumpla con la MS-PL. La redistribución del código fuente en sí únicamente se autoriza bajo la MS-PL. Inicialmente titulada Microsoft Permissive License, fue renombrada a Microsoft Public License, mientras que se estaba revisando para su aprobación por la Open Source Initiative (OSI). La licencia fue aprobada el 12 de octubre de 2007 junto con el MS-RL. De acuerdo con la Free Software Foundation, es una licencia de software libre. Sin embargo, no es compatible con la GNU GPL.

### Microsoft Reciprocal License (Ms-RL)

Esta licencia de Microsoft permite la distribución de código derivado, siempre que los archivos fuente estén incluidos y mantengan la Ms-RL. La MS-RL permite que aquellos archivos en la distribución que no contengan código originalmente licenciado bajo la MS-RL sean licenciados de acuerdo a la elección del titular de los derechos de autor. Esto es equivalente a la CDDL, la EPL o la LGPL, (la GPL con una típica "excepción de enlace"). En un principio conocida como la Licencia Comunitaria de Microsoft, fue renombrada en el proceso de aprobación de OSI.
El 9 de diciembre de 2005, la licencia Ms-RL se presentó a la Iniciativa de código abierto, para su aprobación por John Cowan OSI se puso en contacto con Microsoft y les preguntó si querían que la OSI procediese. Microsoft respondió que no deseaba ser reactiva y que necesitaban tiempo para revisar dicha decisión.
En la Convención de Código Abierto O'Reilly en julio de 2007, Bill Hilf, director de trabajo de Microsoft en los proyectos de código abierto, anunció que Microsoft había presentado oficialmente la Ms-PL y la Ms-RL a OSI para su aprobación. Fue aprobada el 12 de octubre de 2007, junto con la MS-PL. De acuerdo con la Free Software Foundation, es una licencia de software libre. Sin embargo, no es compatible con la GNU GPL.

## Licencias de software que no es libre ni de código abierto

Las otras licencias de Microsoft Shared Source tienen diversas limitaciones que las hacen no Open Source de acuerdo con la iniciativa Open Source y no libres de acuerdo con la Free Software Foundation.

### Microsoft Reference Source License (Ms-RSL)

Esta es la más restrictiva de las licencias de código compartido de Microsoft. El código fuente está disponible sólo para verse con fines de referencia, principalmente para poder ver las clases de código fuente de Microsoft durante la depuración. Los desarrolladores no pueden distribuir o modificar el código para fines comerciales o no comerciales. La licencia ha sido anteriormente abreviada Ms-RL, pero Ms-RL ahora se refiere a la Licencia Recíproca de Microsoft.

### Microsoft Limited Public License (Ms-LPL)

Esta es una versión de la licencia pública de Microsoft en la que los derechos sólo se conceden a los desarrolladores de software basado en Microsoft Windows. Esta licencia no es de código abierto, según la definición de la OSI, ya que viola la condición de que las licencias de código abierto sean tecnológicamente neutrales.

### Microsoft Limited Reciprocal License (Ms-LRL)

Esta es la versión de la Licencia Recíproca de Microsoft en la que los derechos sólo se conceden cuando se desarrolla software para una plataforma Microsoft Windows. Al igual que la Ms-LPL, esta licencia no es de código abierto porque no es tecnológicamente neutral.

## Crítica

Dos licencias de Código Compartido específicas son interpretadas como licencias de software libre y licencias de código abierto por la FSF y OSI. Sin embargo, el presidente de OSI Michael Tiemann considera que la frase "Código Compartido" es en sí misma un término de marketing creado por Microsoft. Él sostiene que es "un término incorrecto que distrae y diluye el mensaje del código abierto mediante el uso de términos que suenan similares y la oferta promesas que suenan similares".
Otros señalan que los desarrolladores de código abierto mirando el código publicado bajo licencia de Microsoft podrían ser más tarde acusados de robarlo, si su propio código pasó a ser similar. El desarrollador de GNOME y Mono, Miguel de Icaza, advierte a los desarrolladores de código abierto que no miren código de este tipo.

## Programas y proyectos notables de código compartido
### Microsoft Enterprise Source Licensing Program

Microsoft ofrece a los clientes empresariales el acceso visual a algunas partes de algunas versiones de los sistemas operativos Microsoft Windows. El acuerdo de licencia ESLP está entre las más restrictivas de las licencias asociadas con programas de Código Compartido, no permitiendo modificaciones del código.

### Microsoft Windows Academic Program

El Programa Académico de Windows ofrece las universidades de todo el mundo con los conceptos, el código fuente del kernel de Windows, y proyectos útiles para la integración de tecnologías del núcleo de Windows en la enseñanza y la investigación.

### Microsoft Shared Source Common Language Infrastructure

El primer programa de Código Compartido de amplia distribución fue Shared Source CLI, la implementación de código compartido de la infraestructura de lenguaje común. La licencia permite la modificación no comercial y la distribución del código fuente, siempre y cuando todas las distribuciones incluyan la licencia original, o una que abarque los términos originales.
Microsoft Shared Source Common Language Infrastructure no es tampoco software libre de acuerdo a la Free Software Foundation, ni código abierto aprobado por OSI.

### Windows Installer XML (WiX)

WiX es un conjunto de herramientas que construye paquetes de Windows Installer (MSI) desde un documento XML. La primera oferta de Microsoft Shared Source en ser publicada en SourceForge, WiX está bajo la licencia Common Public License (CPL).

### ASP.Net AJAX Control Toolkit

El ASP.Net AJAX Control Toolkit es un conjunto de controles y extensores que usan tecnologías AJAX para permitir a los desarrolladores mejorar la experiencia del cliente en sus sitios web. El kit de herramientas está licenciado bajo la Licencia Pública de Microsoft (MS-PL) y está disponible en CodePlex, el portal de desarrollo de la comunidad en línea de Microsoft para proyectos de desarrollo colaborativo de software.