English  Español  Português  Français  Italiano  Deutsch  Nederlands  Svenska  Dansk  Suomi  Norsk  Русский  Polski  Română  Български  Hrvatski  Česky  中国  中國  日本語  한국어  Ελληνική  हिन्दी  العربية 
.NET
Colin Fahey

1. Definición de .NET

El término se refiere a “.NET” la siguiente colección de tecnologías:
(1) Framework Class Library (FCL)
(2) Intermediate Language (IL)
(3) Common Language Runtime (CLR)

1.1 Framework Class Library (FCL)

El Framework Class Library (FCL) es un amplio conjunto de clases de apoyo:
* Contenedores (Array, String, List, ...)
* Multithreading (hilos, hilo de las piscinas)
* La creación de redes (sockets, protocolos, clientes, servidores)
* Operaciones de archivos
* Flujos de datos
* Análisis sintáctico (expresiones regulares, XML manipulación)
* Operaciones matemáticas
* Manejo de excepciones
* Idioma características (la reflexión, la pila de rastrear, dinámica de código)
El Framework Class Library (FCL) se aplica para muchas plataformas diferentes ( Windows, Linux, MacOS, ...  ).
De este modo, un único programa que utiliza el Framework Class Library (FCL) puede desarrollarse sin grandes conocimientos de las diferencias entre plataformas.
El Framework Class Library (FCL) contiene modelos útiles de conceptos fundamentales de la ciencia de la computación (como el “hilo, socket, arroyo,” etc.)
En cierto sentido, la Framework Class Library (FCL) da a cada sistema operativo soportado un moderno, de alto nivel, interfaz de programación coherente.
El Framework Class Library (FCL) es uno de los más avanzados, amplia, de manera uniforme diseñado, bien documentado colecciones de funciones y tipos de datos disponibles para los programadores.
Por desgracia, los siguientes aspectos multimedia no forman parte de la Framework Class Library (FCL): grabación de audio, la reproducción de audio, grabación de vídeo, reproducción de vídeo, 3D, entrada de joystick, dispositivo de control ( CD/DVD, ...  ), etc
Microsoft tiene un .NET versión de la DirectX bibliotecas Windows para su sistema operativo.
Hay C# envoltorios para OpenGL, OpenAL, GLUT, SDL, etc, pero esto no es tan conveniente como tales funciones multimedia se incluyen en el núcleo Framework Class Library (FCL) y se incluirán en el usuario final “en tiempo de ejecución” bibliotecas.
Uno de los problemas de desarrollo de los programas que utilizan las bibliotecas particular es que el conjunto de los usuarios finales requieren de apoyo para las bibliotecas seleccionadas.
Si no es conveniente para descargar e instalar bibliotecas necesarias, un usuario final puede optar por no utilizar un programa que requieren las bibliotecas.
Un usuario final también podría ser reacios a esperar una biblioteca para descargar desde una ubicación en línea.
Si un programa de desarrollo requiere un usuario final a encontrar, adquirir e instalar las bibliotecas, todos, sin la ayuda de un programa en particular, entonces el usuario final puede elegir no usar el programa.
Por ejemplo, muchos de código abierto proyectos requieren los usuarios finales a encontrar, descargar e instalar, muy diferentes de otras bibliotecas de código abierto proyectos (ejemplos: openssl, zlib, libpng, libjpg, glut, ...), que ha llegado el momento que consumen, complicado, frustrante, y podría dar lugar a los usuarios finales para la elección de búsqueda de programas alternativos o productos.
El servicio “Windows Update” aparentemente ayuda a desplegar la versión 1.1 de la .NET tiempo de ejecución para las bibliotecas Windows usuarios.
Estas tiempo de ejecución se incluyen las bibliotecas con la Windows XP sistema operativo.
Por lo tanto, Windows la creación de programas que requieren .NET 1.1 parece totalmente razonable.
Por otra parte, el tiempo de ejecución para las bibliotecas Microsoft's implementaciones de la .NET Framework Class Library (FCL) puede ser redistribuido libremente, para que los desarrolladores puedan suministrar estas bibliotecas a los usuarios finales que aún no han sido las bibliotecas.
Windows Vista El sistema operativo viene con la .NET 3.0 tiempo de ejecución bibliotecas (una combinación de la .NET Framework Class Libraries y varias nuevas bibliotecas como la “Windows Presentation Foundation” (WPF)).
Por lo tanto, el despliegue de .NET 2.0 y .NET 3.0 programas para Windows Vista no exige que los instaladores para la .NET tiempo de ejecución bibliotecas.

1.2 Intermediate Language (IL)

El Intermediate Language (IL) es un pequeño conjunto de sencillo, el procesador independiente, del sistema operativo independiente de las instrucciones que sean suficientes para expresar por completo las estructuras de datos y funciones de muchos de alto nivel lenguajes de programación ( C++, C#, F#, Visual Basic, Java, Ocaml, ...  ).
El código fuente escrito en un lenguaje de alto nivel puede ser compilado en una forma “Intermediate Language” correspondiente.
Código “Intermediate Language” en una forma fácilmente puede ser combinado con otro código en un “Intermediate Language” forma.
Un programa de ordenador (también llamado “software)” puede incluir el código fuente escrito en varios de alto nivel de idiomas (por ejemplo, C#, C++, y Visual Basic).
Todo el código fuente puede ser compilado (convertidos) a un formato “Intermediate Language” para permitir el fácil combinar con otros código compilado.
Programas “Intermediate Language” en una forma por lo general se convierten a la máquina de instrucciones específicas (por ejemplo, instrucciones CPU) muy poco antes de la ejecución (por ejemplo, “Just-In-Time” (JIT) conversión de IL a CPU las instrucciones).
Sin embargo, un programa también puede llevar a cabo en el contexto de una Virtual Machine (VM) pretende interpretar Intermediate Language (IL) instrucciones.
Código escrito en varias de alto nivel ( C#, F#, Ocaml, C++, Visual Basic, ...  ) idiomas, pueden ser compilados a Intermediate Language (IL) forma apropiada utilizando un compilador en cualquier plataforma soportada ( Windows, Linux, MacOS X, ...  ), y el archivo resultante, con incrustados Intermediate Language (IL) código, es independiente de plataforma y puede ejecutar en cualquier plataforma con un aplicación de la .NET Common Language Runtime (CLR).
El Intermediate Language (IL) código generado por el compilador es básicamente independiente de la plataforma sobre la que el compilador fue ejecutado.

1.3 Common Language Runtime (CLR)

El Common Language Runtime (CLR) es el mecanismo responsable de la ejecución de código presentado en la Intermediate Language (IL) forma.
El Common Language Runtime (CLR) ofrece diversos servicios.
El Common Language Runtime (CLR) pueden convertir Intermediate Language (IL) código de instrucciones que son nativas de la plataforma (por ejemplo, CPU las instrucciones).
La conversión de la Intermediate Language (IL) a la plataforma específica (por ejemplo, CPU específica) las instrucciones que puede suceder antes de cualquier ejecución (es decir, un “Ahead-Of-Time” (AOT) conversión), o puede ocurrir gradualmente, ya que el programa se ejecuta (es decir, “Just-In-Time” (JIT) conversión) .
La conversión Just-In-Time (JIT) pueden utilizar las estadísticas sobre la evolución de la ejecución del programa para optimizar la dinámica convertido código (ejemplo: la identificación de frecuencia utilizadas bucles y ramas, y la optimización de ellos de acuerdo con el comportamiento observado (que a su vez depende de los datos actuales y eventos)).
El Common Language Runtime (CLR) gestiona la memoria asignada en nombre del programa.
Por lo tanto, la CLR asegura que el programa no deja de acceso a memoria, mientras que las referencias a este tipo de memoria persiste, y asegura que las asignaciones de memoria se anulan, y que la memoria está disponible de nuevo para las futuras asignaciones después de que el programa dispone de todas las referencias a esas asignaciones .
El Common Language Runtime (CLR) detecta cuando el programa ya no tiene una referencia a una asignación de memoria, y la asignación de memoria está marcada para deallocation.
El Common Language Runtime (CLR) utiliza cualquiera de una variedad de algoritmos de “recolección de basura” (por ejemplo: “mark-and-sweep”) para identificar y recuperar bloques de memoria ya no accesible por un programa.
El Common Language Runtime (CLR) programa se ocupa de excepciones.
El Common Language Runtime (CLR) hace cumplir las políticas de seguridad.
El Common Language Runtime (CLR) utiliza el mecanismo para “P/Invoke” plataforma de carga específicos de bibliotecas e invocar (call) funciones dentro de esas bibliotecas.

2. .NET ( FCL, IL, CLR ) implementaciones de Microsoft

2.1 Introducción

El .NET paradigma ( FCL, IL, CLR ) se ha llevado a cabo por Microsoft.
La última versión, “3.0”, fue puesto en libertad en 2006.10.
.NET 3.0 está integrado por los .NET 2.0 Framework Class Libraries y varias nuevas bibliotecas, como la “Windows Presentation Foundation” (WPF) asociados con la “Silverlight” (anteriormente WPF/E, anteriormente Sparkle, ...) plugin para el navegador Firefox y Internet Explorer.
Microsoft divide el software en .NET 2.0 a dos diferentes paquetes:
(1) .NET Framework Version 2.0 Redistributable Package
El paquete redistribuible es requerido por los usuarios finales para ejecutar programas construidos para la .NET paradigma.  Este paquete también deben ser instalados por los desarrolladores antes de instalar y utilizar los .NET Software Development Kit (SDK) se mencionan a continuación.
(2) .NET Framework Version 2.0 Software Development Kit
El kit de desarrollo de software (SDK) es requerido por los desarrolladores compilar el código fuente C# a Intermediate Language (IL) archivos de programa.
Este paquete contiene varias herramientas de desarrollo y documentación.

2.2 .NET Framework Version 2.0 Redistributable Package

El paquete redistribuible es requerido por los usuarios finales para ejecutar programas construidos para la .NET paradigma.
Este paquete también deben ser instalados por los desarrolladores antes de instalar y utilizar los .NET Software Development Kit (SDK) se mencionan a continuación.
La siguiente página de Internet es la principal .NET página de descarga:
http://msdn.microsoft.com/netframework/downloads/updates/default.aspx
La sección denominada “.NET Framework Version 2.0 Redistributable Package” tiene enlaces para tres plataformas de hardware: “Download x86 version”, “Download x64 version”, “Download IA64 version”.
Por ejemplo, tras el enlace “Download x86 version”, lleva a una página titulada “Microsoft .NET Framework Version 2.0 Redistributable Package (x86)”
(Nombre del archivo: dotnetfx.exe; Versión: RC1; Fecha de publicación: 3/22/2006; Idioma: Inglés; Tamaño de la descarga: 22.4 MB)
Localmente versión en caché (sólo para referencia; potencialmente obsoletos):
microsoft_dot_net_runtime_libraries_v2_0.exe
.NET Framework Version 2.0 Redistributable Package
23510720 bytes
MD5: 93a13358898a54643adbca67d1533462
(El nombre de archivo se ha cambiado a partir de aquí el nombre de archivo original de “dotnetfx.exe” para evitar la confusión con la versión del instalador 1.1 también llamado “dotnetfx.exe”.)

2.3 .NET Framework Version 2.0 Software Development Kit (SDK)

El kit de desarrollo de software (SDK) es requerido por los desarrolladores compilar el código fuente C# a Intermediate Language (IL) archivos de programa.
Este paquete contiene varias herramientas de desarrollo y documentación.
La siguiente página de Internet es la principal .NET página de descarga:
http://msdn.microsoft.com/netframework/downloads/updates/default.aspx
La sección denominada “.NET Framework Version 2.0 Software Development Kit” tiene enlaces para tres plataformas de hardware: “Download x86 version”, “Download x64 version”, “Download IA64 version”.
Por ejemplo, tras el enlace “Download x86 version”, lleva a una página titulada “.NET Framework 2.0 Software Development Kit (SDK) (x86)”
(Nombre del archivo: setup.exe; Versión: 2.0; Fecha de publicación: 11/7/2005; Idioma: Inglés; Tamaño de la descarga: 354.0 MB)
Localmente versión en caché (sólo para referencia; potencialmente obsoletos):
microsoft_dot_net_sdk_v2_0.exe
.NET Framework Version 2.0 Software Development Kit (SDK) (x86)
371230904 bytes
MD5: 1a52cb6000c4390b6265671e031f9d64
(El nombre de archivo se ha cambiado a partir de aquí el nombre de archivo original de “setup.exe” para evitar la confusión con todos los demás archivos de instalación llamado “setup.exe”.)

3. Microsoft Visual C#: un programa Integrated Development Environment (IDE)

3.1 Introducción

Un Integrated Development Environment (IDE) programa permite a un programador para editar el código fuente y ejecutar diversas herramientas (ejemplos: compilador, depurador, ...) dentro del contexto de un único programa unificador, llenos de útiles indicaciones visuales y controles.
“Microsoft Visual C# 2005 Express Edition” es un sin costo (sin pago) IDE disponible para su descarga desde Microsoft.
Para los que no son creación de bases de datos, es casi imposible distinguir este sin costo de productos al por menor de la contraparte, “Microsoft Visual C# 2005”.
Suelo utilizar ambos productos, profesional y recreativa, y todavía no he notado ninguna diferencia práctica entre los productos.
microsoft_vcsharp_2005_express_ide.gif

3.2 Oficial enlaces

El sitio de Internet de la página principal:
http://msdn.microsoft.com/vstudio/express
La página en relación con “Visual C# Express Edition”:
http://msdn.microsoft.com/vstudio/express/visualcsharp
Haga clic en el botón “Download Now” en la parte derecha de la página para elegir una opción de descarga.
(Un método es poner en marcha un programa de instalación que va a descargar archivos de Microsoft durante cada instalación.
Un segundo método consiste en descargar un completo CD-ROM “ISO” imagen, lo que permite a futuro la instalación fuera de línea.
La imagen ISO, “VCS.iso” (451,837,952 de bytes; CRC 55884F2C) de 32 bits x86 Inglés, puede quemarse a un CD-ROM utilizando “Nero 7 Ultra”, por ejemplo.  )

4. .NET ( FCL, IL, CLR ) aplicación de la Mono Project

4.1 Introducción

El .NET paradigma ( FCL, IL, CLR ) se ha puesto en práctica por los participantes en un grupo conocido como los Mono Project.

4.2 Oficial enlaces

Lugar del proyecto:
http://www.mono-project.com
Página de descarga de software:
http://www.mono-project.com/Downloads

4.3 Localmente versión en caché

Localmente versión en caché de la instalación (sólo para referencia; potencialmente obsoletos):
mono-1.2.4-gtksharp-2.8.3-win32-3.exe
Mono 1.2.4 with Gtk# 2.8.3 Installer for Windows 2000 and above
51323790 bytes
MD5: 95cbd476c0555a9a40f47e58e2283cbe

4.4 .NET 2.0 desarrollo con Mono

El “mcs” compilador, y la documentación, a partir de noviembre 2006, en su mayoría se refieren a C# 1.0 y FCL 1.1.
Sin embargo, la “mcs” compilador es capaz de compilar código C# 2.0 que no contiene medicamentos genéricos o genéricos basados en características, pero limita la API a 1.0.
Para hacer C# 2.0 pleno desarrollo, con FCL 2.0 bibliotecas, utiliza el compilador “gmcs”.
Véase la página siguiente Mono en el sitio:
http://www.mono-project.com/CSharp_Compiler

5. SharpDevelop: an open-source Integrated Development Environment (IDE) programa

5.1 Introducción

Un Integrated Development Environment (IDE) programa permite a un desarrollador para editar el código fuente y ejecutar diversas herramientas (ejemplos: compilador, depurador, ...) dentro del contexto de un único programa unificador, llenos de útiles indicaciones visuales y controles.
SharpDevelop es un excelente, de código abierto IDE programa para C# / .NET desarrollo.
Este IDE se asemeja mucho al Microsoft Visual C# IDE y, en algunos aspectos, la SharpDevelop IDE ha mejorado a la Microsoft producto.
Sin embargo, Microsoft Visual C# tiene algunas características (por ejemplo: la depuración) que SharpDevelop el programa no tiene (en el momento de escribir estas líneas).
sharp_develop_2_ide.gif

5.2 Oficial enlaces

El simple sitio en Internet la página principal:
http://www.sharpdevelop.com
La página en relación con “The Open Source Development Environment for .NET”:
http://www.sharpdevelop.com/OpenSource/SD/Default.aspx
La página de descarga, que contiene detalles sobre la 1.1 y 2.0 versiones de SharpDevelop:
http://www.sharpdevelop.com/OpenSource/SD/Download

5.3 Localmente versión en caché

Localmente versión en caché de la instalación (sólo para referencia; potencialmente obsoletos):
SharpDevelop2_2.0.1.1710_Setup.exe
SharpDevelop2 (2.0.1.1710)
4338287 bytes
MD5: 6626832c202a6c25a399c9e9081f20d4

6. Útil C# / .NET / IL herramientas

6.1 SciTech Software “.NET Memory Profiler”

dot_net_memory_profiler_graph.gif
dot_net_memory_profiler_table.gif
Este perfil muestra las asignaciones de memoria, y otras asignaciones de recursos, que un programa compilado .NET o el montaje hace que mientras se ejecuta.
El tiempo real gráfico permite a una persona para ver, en detalle, en qué medida las acciones del programa (como las acciones desencadenadas por las aportaciones de los usuarios u otros eventos) afectan a la asignación de memoria y recolección de basura.
El tiempo real tabla permite ver a una persona a aprender detalles sobre las asignaciones de memoria.
Este perfil del instante, y de manera espectacular, puso de manifiesto el despilfarro del uso de la memoria en tiempo real Direct3D programa me había desarrollado.
Un patrón de rampas al alza súbita y gotas (debido a “la recolección de basura)” en el uso de memoria de gráficos corresponde perfectamente con el periódico, de muy breve pausa en el dibujo 3D de mi programa.
El profiler me permitió descubrir que la asignación de los frecuentes temporales objetos fue acumulando una gran cantidad de memoria, provocando con frecuencia la recolección de basura, y teniendo el tiempo suficiente para cada recolección de basura a causa de unos períodos de dibujo se puede perder.
El perfil del tiempo real tabla de tipos de objetos asignados puesto de manifiesto los tipos de objetos que consume la mayoría de memoria, y que las asignaciones de memoria consumida en la tasa más elevada (bytes por segundo), y las asignaciones que tiene la mayor tasa de eliminación.
Estudiar el tiempo real, gráficos, y el tiempo real de los cuadros, me permitió centrarse en estudiar la forma en que ciertos tipos de datos se están utilizando en mi código.
Modificar el código para evitar frecuentes asignaciones temporales de los objetos puede reducir en gran medida la tasa global de asignación de memoria y la eliminación, y por lo tanto, puede reducir la frecuencia de recolección de basura disparo.
(“Bytes/sec” creo que es muy reveladora la estadística en tiempo real del uso de la memoria, además de “Live instances”.
) Ver todo el contenido de estos sean actualizados muy rápidamente en formato de tabla, y ser capaz de elegir cómo se ordenan las filas, y los cambios en el parámetro de clasificación en cualquier momento, hace que la experiencia de estudiar en tiempo real programa interesante y muy informativa.
Asignación de memoria las respuestas a la interacción del usuario con un programa en ejecución puede ser estudiado, y la prueba puede adaptar rápidamente a la información a reducir el número más interesante aspecto.
http://memprofiler.com/download.aspx
(Por ejemplo, la versión 2006 July tuvieron los siguientes atributos: versión 2.6.89; 4.3 MB; USA $127.00; de descarga de 14 días-límite versión, sin costo alguno, para su evaluación.)

6.2 FxCop: .NET código analizador / crítico

FxCop analiza un programa compilado .NET (o compilado de montaje) y genera un informe lista de posibles problemas con el código fuente original.
Posibles problemas de rendimiento y problemas de seguridad se identifican.
Posible convenio de codificación de violaciónes se identifican.
FxCop no requiere acceso al código fuente original para realizar el análisis.
Sólo el programa compilado .NET (que contiene IL).
No obstante, el informe ofrece FxCop hipervínculos a determinados números de línea en el código fuente original.
Si el Microsoft Visual C# 2005 IDE está activo, al hacer clic en el hipervínculo en el FxCop informe hará que el IDE se deforme a la fuente pertinente expediente y número de línea.
FxCop tiene, en mi opinión, bastante torpe manera de integrar con el Microsoft Visual C# 2005 IDE.
Sin embargo, una vez que se haya creado, FxCop produce una muy interesante y potencialmente valioso informe.
El informe contiene recomendaciones detalladas sobre la manera de mejorar el código fuente original.
Creo que vale la pena analizar un programa usando FxCop de forma periódica.
No me sorprendería si algunos proyectos de desarrollo de software o empresas de todo el código requerido por escrito por los desarrolladores para no ceder las advertencias o críticas de FxCop.
Reglamento puede ser añadido o eliminado de la base de datos FxCop, de acuerdo a las necesidades.
FxCop es un código abierto, programa gratuito.
http://www.gotdotnet.com/team/fxcop

6.3 “Reflector for .NET”: decompiler / Analyzer

Desde Lutz Roeder's sitio de Internet:
"Reflector is the class browser, explorer, analyzer and documentation viewer for .NET. Reflector allows to easily view, navigate, search, decompile and analyze .NET assemblies in C#, Visual Basic and IL."
“Reflector” puede ayudar a una persona que estudie la forma de terceros, las bibliotecas están escritos.
A veces sería muy útil para saber exactamente cómo un método en una asamblea se aplica.
Si un método se comporta de forma inesperada o de forma misteriosa, luego “Reflector” se puede utilizar para ver la aplicación.
Al ver la aplicación, el programador puede trabajar en torno a problemas causados por las implementaciones específicas de la biblioteca métodos.
Un amigo me dijo que “Reflector” le ayudó a aprender más sobre el comportamiento de mal documentados en los métodos Microsoft aplicación de la Framework Class Libraries (FCL).
“Reflector” podría ser útil cuando la documentación para una biblioteca método consiste en sólo unas pocas palabras, como “establece el valor” o “manejador de evento.”
Si una función de biblioteca que no es la invocación de una razón desconocida (cuando todos los parámetros parecen válidos), entonces usando “Reflector” para examinar la puesta en marcha de la función de biblioteca pueda revelar la razón de la falla.
“Reflector” realiza algunas “de ingeniería inversa” de un programa .NET o el montaje.
Otras empresas de servicios públicos, tales como la posible “Reflector” en sí, pueden producir el código fuente de programas o asambleas construido sobre la base de obfuscated código fuente.
Esto es obviamente una fuente de preocupación para algunos desarrolladores y sus inversores.
http://www.aisto.com/roeder/dotnet
(2006 July: Reflector.zip fue la versión 4.2.45.0)

7. Internet foros de discusión

Google buscar es la mejor manera de encontrar respuestas a preguntas concretas sobre cualquier tema, pero por debajo de los sitios en repetidas ocasiones aparecen en los resultados de la búsqueda para C# y .NET preguntas.
Los sitios a continuación son impresionantes para explorar las muchas cosas que la gente cool lo han hecho con C# y .NET.
“The Code Project” sitio cuenta con miles de interesantes y útiles artículos, para C#, C++, y otros lenguajes de programación y paradigmas.
http://www.codeproject.com
“MSDN Code Gallery” El sitio tiene muchos artículos interesantes y ejemplos de código relacionados con Microsoft tecnologías.
http://code.msdn.microsoft.com
Otros sitios de Internet relacionados con C# y .NET:
http://www.c-sharpcorner.com
http://www.dotnetfun.com
http://www.programmersheaven.com

8. Notas generales

8.1 Plataforma independencia

El Intermediate Language (IL), al igual que Java “código byte,” es independiente de la plataforma.
Cualquier .NET conformes compilador generará independiente de la plataforma Intermediate Language (IL) código para formar programas o asambleas.
Los programas ejecutables como envasados (“*.exe” archivos) debe tener alguna dependiente de la plataforma de código específico para un sistema operativo, con el fin de ser correctamente interpretado y puesto en marcha como de software ejecutable en el contexto particular del sistema operativo.
Sin embargo, el nativo ejecutable parte del software de archivo sólo sirve para invocar la .NET CLR motor, la presentación de la IL código que figura en el archivo de software para la ejecución de la CLR motor.
Microsoft ofrece una implementación de los servicios públicos .NET (compilador, ...), y una aplicación de la Framework Class Library (FCL), sólo para el sistema operativo Windows.
El Mono Project ofrece implementaciones de los servicios públicos .NET (compilador, ...), y las implementaciones de la Framework Class Library (FCL), para los siguientes sistemas operativos: Windows, Linux, MacOS X, y BSD.

8.2 La velocidad en comparación con non-CLR C / C++

El Common Language Runtime (CLR) aspecto de .NET es el contexto en el que un programa se ejecuta C#.
El CLR realiza “la recolección de basura” y permite que los programas para invocar funciones en el “manejo de” las bibliotecas (todos de las bibliotecas que no se han aplicado en Intermediate Language (IL)).
Toda la función hace más que pura matemática, pura cadena de manipulación, o la copia de memoria pura, invocará a las funciones “de manejo de” bibliotecas.
Todas las operaciones con archivos, sockets, aprovechando las operaciones, las operaciones de entrada (ratón, teclado), las operaciones de salida (consola), plataforma de operaciones de hilo, precisión temporizador operaciones, las operaciones del entorno de ventanas, etc, va a invocar a funciones “de manejo de bibliotecas.”
Por desgracia, la de invocar el mecanismo “de manejo de” las funciones de la CLR requiere una cantidad significativa de tiempo.
Por lo tanto, la velocidad global de un programa de ejecución en el contexto de la CLR es noticably más lento que un programa que puede invocar directamente las funciones de “manejo.”
Para ciertos tipos de software, la velocidad puede ser importante.
Para ciertos tipos de software, la velocidad puede hacer una diferencia importante en el subjetivo o psicológico experiencia de una persona que utilice el software.
Para ciertos tipos de software, la velocidad puede marcar la diferencia entre el logro de una meta y el fracaso.
Multithreading, el aumento de CPU velocidades, y mejoras a la CLR planta generadora de código, ayudará a la ejecución de software en el contexto de la CLR ejecutar con mayor rapidez.
Sin embargo, cualquier código que se ejecuta fuera de la CLR, e invoca las bibliotecas plataforma directamente, inevitablemente ejecutar significativamente más rápido que el software que ejecuta en el contexto de la CLR.
Las garantías formuladas por el CLR a C# software, tales como la seguridad de salvar la distancia entre código administrado y no el código, viene a un costo que es poco probable que se reduzca.
Por lo tanto, cualquier programa que es muy intensiva plataforma (ejemplos: simulación 3D o juego, archivo de procesador de servidor de red, etc) es probable que la ejecución de un orden de magnitud más rápida fuera la CLR que cuando se ejecuta dentro de esta CLR.
La diferencia es enorme.
Además, cualquier programa que lleva a cabo una cantidad significativa de bajo nivel de manipulación de datos se ejecute fuera significativamente más rápido que el CLR dentro de la CLR.
Programas de ejecución en el contexto de la CLR ejecutar con la suficiente rapidez para ser de utilidad para muchos fines prácticos.
Como CPU velocidades aumentan, y como código de mejor toma ventaja de múltiples CPUs, los programas de ejecución en el contexto de la CLR podrá ser utilizado para varias tareas que requieren una alta tasa de cómputo.
Sin embargo, en medio de 2008 la CLR todavía no es adecuada para juegos 3D de cualquier sofisticación, a menos que una muy agresivo esfuerzo para reducir el número de llamadas a funciones 3D para la biblioteca (OpenGL o Direct3D), posiblemente mediante el uso de conceptos como “shader programas” y “mostrar listas;” nada para reducir el número de llamadas a funciones.
colinfahey.com
información de contacto
English  Español  Português  Français  Italiano  Deutsch  Nederlands  Svenska  Dansk  Suomi  Norsk  Русский  Polski  Română  Български  Hrvatski  Česky  中国  中國  日本語  한국어  Ελληνική  हिन्दी  العربية