miércoles, 19 de junio de 2013

Soporte de Plataforma para C#

Desde que Microsoft anunció su iniciativa (en un principio llamado Next Generation Windows Services -NGWS-) de crear una plataforma de desarrollo robusta, segura, interoperable, independiente del lenguaje, despliegue simplificado, portable, etc., y al mismo tiempo, una alternativa a las ya existentes (en caso particular, Java Platform [7]). En particular, C# es usado como lenguaje de programación para la creación de aplicaciones para esta nueva plataforma Windows [2].

- Estandarización de C# [5]:

El lenguaje C# está estandarizado a través de ECMA, en el cual se especifican los objetivos:
  • C# debe ser un lenguaje simple, robusto, moderno, de propósito general, y orientado a objetos.
  • Como lenguaje debe soportar principios de ingeniería de software como los siguientes:
    • Comprobación fuerte de tipos.
    • Comprobación de límites de arreglos y matrices.
    • Detección de uso de variables no inicializadas.
    • Colección de basura automática [3].
  • Diseño del lenguaje para despliegue de aplicaciones en ambientes distribuidos.
  • Portabilidad del código. Esto debe permitir el uso de programas escritos en C# por otros lenguajes a través de protocolos bien definidos.
  • Soporte para internacionalización.
  • Tipos de aplicaciones:
    • Sistemas embebidos [4]
    • Sistemas operativos sofisticados
    • Pequeñas utilidades
  • Uso optimizado en el consumo de recursos hardware (espacio de memoria, y tiempo de procesador) del sistema.
Es importante mencionar que este estándar -Standard ECMA-334: C# Language Specification- fue presentado por Hewlett-Packard, Intel y Microsoft en julio de 2000.

- Capacidades multiplataforma:


En la actualidad el proyecto Mono es una iniciativa para soportar el Framework .NET en otros sistemas operativos distintos a Windows. Sin embargo, el desarrollo bajo Windows predomina. Hay que agregar que si los requerimientos arquitecturales, en particular el de proveer soporte multiplataforma resulta ser el primero, la plataforma Java es apropiada para ese escenario.

- Escenarios recomendados para escribir código C# multiplataforma:
  • Escritura de código para servicios en el lado del servidor y consumibles en el cliente: papel de ASP.NET.

    Arquitectura de despliegue de ASP.NET
    Arquitectura de despliegue de ASP.NET

  • Ejecución de código C# en implementaciones de una máquina virtual (CLR) distinta la de Microsoft, por ejemplo, en Mono.
  • En clientes de aplicaciones enriquecidas para Internet: Silverlight (oficialmente soportado por Windows y Mac OS X).
Conclusiones:


Se informó acerca del empleo de C# como lenguaje de creación de aplicaciones multiplataforma. Además, de su estandarización bajo Ecma-334: principios de diseño, pertinencia para desarrollo de tipos de software, el seguimiento de principios de ingeniería de software, etc. Finalmente, un pequeño listado de escenarios apropiados para escribir aplicaciones C# multiplataforma.

Glorario:

- ASP.NET
- Ecma
- Embedded systems
- Java Platform
- NGWS

Referencias:

- [1] .NET Framework - https://en.wikipedia.org/wiki/.NET_Framework
- [2] C# 5.0 in a Nutshell by Joseph Albahari and Ben Albahari. Copyright 2012 Joseph Albahari and Ben Albahari, 978-1-449-32010-2.
- [5] Standard EMCA-334: C# Language Specification - www.ecma-international.org/publications/files/ECMA-ST/Ecma-334.pdf‎
- [6] Project Mono - http://www.mono-project.com/
- [7] Java (Software Platform) - http://en.wikipedia.org/wiki/Java_(software_platform)

No hay comentarios:

Publicar un comentario

Envíe sus comentarios, dudas, sugerencias, críticas. Gracias.