Menú
Es gratis
registro
casa  /  Internet/ Descripción general de .NET. Conceptos básicos

Descripción general de .NET. Conceptos básicos

En la medida en. RED Framework es una plataforma poderosa para desarrollar aplicaciones, le permite desarrollar aplicaciones de tipos completamente diferentes.

Aplicaciones de escritorio (aplicaciones que se ejecutan en computadora local usuario);

· Aplicaciones web (aplicaciones que se ejecutan dentro de un servidor web y están disponibles para el usuario a través de un navegador dentro del protocolo HTTP / HTTPS);

· Aplicaciones web con una rica interfaz de usuario (aplicaciones que se entregan al usuario a través del protocolo HTTP / HTTPS dentro del navegador y se ejecutan en el lado del cliente);

· Servicios web (código de programa que se ejecuta en el lado del servidor y puede ser llamado desde el cliente para recibir cualquier dato o realizar una operación);

· Aplicaciones móviles (aplicaciones que se ejecutan en dispositivos móviles).

Para cada uno de los siguientes tipos de aplicaciones, el. RED Framework existen tecnologías relacionadas que te permiten crear aplicaciones. Es más, . RED El marco contiene bibliotecas comunes que se pueden usar en diferentes tipos de aplicaciones. Estas bibliotecas incluyen bibliotecas:

· Trabajar con cuerdas;

· Trabajar con funciones matemáticas;

· Trabajar con gráficos;

· Acceso a datos;

· Para trabajar con archivos y otras operaciones de entrada y salida;

· Realizar operaciones criptográficas;

· Organizar la sincronización de datos entre fuentes de datos;

· Y una gran cantidad de otras bibliotecas.

Echemos un vistazo a cada tipo de aplicación. Como se señaló anteriormente, para cada uno de los tipos de aplicaciones en la plataforma. RED Framework, hay plantillas de proyectos especiales.

Aplicaciones de escritorio difieren en que se ejecutan directamente en la computadora del usuario. Este es el tipo de aplicación más común. Las aplicaciones de escritorio suelen tener acceso a los recursos de la computadora del usuario, como HDD, equipo de sonido, etc. Las ventajas de este tipo de aplicación incluyen interactividad interfaz de usuario y la capacidad de ejecutar la aplicación independientemente de la conexión de red Internet y otros recursos. Sin embargo, para que funcionen tales aplicaciones, deben instalarse en el local computadora.

Las aplicaciones de escritorio se pueden dividir en tres tipos: aplicaciones de ventana, aplicaciones de consola y servicios. Ventanas... Las aplicaciones con ventana tienen interfaz grafica... Las aplicaciones de consola suelen adoptar la forma de una línea de comandos y interfaz estas aplicaciones están basadas en texto y no son gráficas. Finalmente, los servicios Ventanas no tiene una interfaz de usuario en absoluto, pero funciona en segundo plano.

Para construir aplicaciones GUI en ventanas dentro de la plataforma. RED Se pueden utilizar tecnologías marco Ventanas Formularios (disponibles a partir de. RED Framework 1.0) y Fundación de presentación de Windows(Disponible de. RED Marco 3.0). La última tecnología es más nueva y prometedora.


aplicaciones web difieren del escritorio en que funcionan de forma remota en un servidor web. Usuario aprovecha el poder de las aplicaciones web a través de un navegador y un protocolo HTTP/ HTTPS. La ventaja de este tipo de aplicaciones es que no es necesario instalarlas en computadora cada usuario - Apéndice necesita ser instalado en la web servidor, después de lo cual estará disponible para todos los usuarios. Sin embargo, la desventaja de tales aplicaciones es la capacidad limitada para crear interfaces de usuario. Esto se debe al hecho de que interfaz de usuario se construye sobre la base de formatos HTML, CSS y JavaScript, que son bastante limitados. Por lo tanto, la funcionalidad de las interfaces de usuario suele ser bastante limitada.

Dado que las aplicaciones web tienen un defecto grave: capacidades limitadas sobre la formación de la interfaz de usuario: ha aparecido un nuevo tipo de aplicación, que se llama ricas aplicaciones de internet o Aplicaciones de Internet enriquecidas (RIA)... La ideología de estas aplicaciones es que en navegador integra un especial adición(complemento) que es capaz de mostrar más Tipo de contenido... Después de eso, cuando usuario abre la página en el navegador, el código del programa se transmite al lado del cliente, que funciona dentro del marco de este complemento. Dado que en este caso todo el código se procesa en el lado del cliente, los desarrolladores tienen más oportunidades. sobre la formación de interfaces de usuario.

Existen varias tecnologías para construir este tipo de aplicación. Una de las tecnologías más conocidas es la tecnología de Adobe. Destello... Además, también existe la tecnología Microsoft Silverlight, que le permite integrarse de la manera más conveniente con el resto de tecnologías en el marco. RED Marco de referencia.

Otro tipo de aplicación son Servicios(o servicios web). Los servicios son un tipo de código de programa que se encuentra en el servidor y se ejecuta sobre solicitud del usuario. Por ejemplo, puede crear un conjunto de servicios sobre trabajar con datos de Base de datos almacenado en el servidor. Normalmente, otros tipos de aplicaciones (aplicaciones de escritorio, aplicaciones web, etc.) acceden a los servicios para realizar una operación en el servidor o recibir datos del servidor.

Dentro de la plataforma. RED Framework, hay una serie de tecnologías que le permiten crear servicios. Más vieja tecnología es un ÁSPID.NET Web Servicios. Te permite crear servicios web sencillos que funcionan sobre protocolo HTTP/ HTTPS. Mayor desarrollo la tecnología se ha convertido Fundación de comunicación de Windows(WCF). Esta plataforma es la herramienta más poderosa y flexible que admite varios tipos de canales ( HTTP, TCP, canalizaciones con nombre, etc.) y amplía significativamente las capacidades del desarrollador sobre creando servicios.

También hay ramas adicionales del proyecto WCF: esto es WCF Sindicación Extensiones (WCF REST) ​​y ALHARACA.NET datos Servicios. Estos proyectos están diseñados para facilitar la creación de servicios de acceso a datos.

Finalmente, el último tipo de aplicación es aplicaciones móviles... Las aplicaciones móviles funcionan dentro de los dispositivos móviles según el sistema operativo Windows Mobile... Para los dispositivos móviles, también hay una implementación de un subconjunto de las capacidades. RED Framework llamado. NET compacto Marco de referencia.

Así, toda la gama de tecnologías dentro de la plataforma. RED El marco se puede representar mediante el siguiente diagrama.

Introducción

Una PLATAFORMA es al menos un entorno de ejecución de programas y ... algo más que determina las características específicas del desarrollo y la ejecución. código de programa- Paradigmas de programación, lenguajes de programación, conjuntos de clases base.

Microsoft .NET (.NET Framework) es una plataforma de software. Contiene los siguientes componentes principales: Common Language Runtime (CLR) y la biblioteca de clases de .NET Framework (.NET FCL).

CLS (Common Language Specification) es una especificación general de lenguajes de programación. Es un conjunto de construcciones y restricciones que guían a los escritores de bibliotecas y compiladores en .NET Framework. Las bibliotecas creadas según CLS se pueden utilizar desde cualquier lenguaje de programación que admita CLS. Lenguajes compatibles con CLS (estos incluyen Visual C #, Visual básico, Visual C ++) se pueden integrar entre sí. CLS es la base para la comunicación entre idiomas dentro de la plataforma Microsoft .NET.

CLR (Common Language Runtime): entorno de ejecución o máquina virtual. Proporciona la ejecución de la compilación. Componente principal de .NET Framework. Bajo Máquina virtual comprender la abstracción de un sistema operativo administrado de alto nivel encapsulado (separado), que garantiza la ejecución del código del programa e implica la resolución de las siguientes tareas:

§ gestión de código (carga y ejecución),

§ gestión de la memoria al colocar objetos,

§ aislamiento memoria de la aplicación,

§ comprobar la seguridad del código,

§ conversión de lenguaje intermedio a código máquina,

§ acceso a metadatos (información ampliada sobre tipos),

§ manejo de excepciones, incluidas excepciones en varios idiomas,

§ interacción entre código administrado y no administrado (incluidos objetos COM),

§ soporte para servicios de desarrollo (perfilado, depuración, etc.).

En resumen, CLR es una colección de servicios necesarios para realizar una compilación. En este caso, el código de programa del ensamblaje puede ser administrado (código, cuando se ejecuta, el CLR, en particular, activa el sistema de administración de memoria) o no administrado (código de programa “antiguo”).

El CLR en sí consta de dos componentes principales: el kernel (mscoree.dll) y la biblioteca de clases base (mscorlib.dll). La presencia de estos archivos en el disco es una señal segura de que al menos ha intentado instalar .NET Framework en su computadora.

El kernel de tiempo de ejecución se implementa como la biblioteca mscoree.dll. Al vincular un ensamblado, se incrusta información especial en él, que, cuando se inicia la aplicación (EXE) o cuando se carga la biblioteca (llamando a una DLL desde un módulo no administrado, llamando a la función LoadLibrary para cargar un ensamblado administrado), conduce a cargando e inicializando el CLR. Una vez que CLR se carga en el espacio de direcciones del proceso, el kernel en tiempo de ejecución hace lo siguiente:

Encuentra la ubicación del ensamblaje,

§ carga el ensamblaje en la memoria,

§ analiza el contenido del ensamblaje (identifica clases, estructuras, interfaces),

§ analiza metadatos,

Proporciona compilación de código de lenguaje intermedio (IL) en instrucciones específicas de la plataforma (código ensamblador),

§ realiza controles relacionados con la seguridad,

§ utilizando el hilo principal de la aplicación, transfiere el control al fragmento de código ensamblador convertido en comandos del procesador.

FCL (.NET Framework Class Library) es una biblioteca orientada a objetos compatible con CLS de clases, interfaces y sistemas de tipos (tipos de valor) que se incluyen con la plataforma Microsoft .NET.

Esta biblioteca proporciona acceso a la funcionalidad del sistema y está pensada como base para el desarrollo de aplicaciones, componentes y controles .NET.

La biblioteca de clases .NET es el segundo componente CLR.

NET FCL puede ser utilizado por TODAS las aplicaciones .NET, independientemente del propósito, la arquitectura utilizada en el desarrollo del lenguaje de programación. En particular, contiene:

§ tipos integrados (elementales), representados como clases (en la plataforma .NET, todo se basa en estructuras o clases),

§ clases para el desarrollo de una interfaz gráfica de usuario (Windows Form),

§ clases para el desarrollo de aplicaciones web y servicios web basados ​​en tecnología ASP.NET (Web Forms),

§ clases para el desarrollo de protocolos XML e Internet (FTP, HTTP, SMTP, SOAP),

§ clases para desarrollar aplicaciones que trabajan con bases de datos (ADO.NET),

§ y mucho más.

La aplicación .NET es una aplicación diseñada para ejecutarse en la plataforma Microsoft .NET. Está implementado en lenguajes de programación correspondientes al CLS.

MSIL (Microsoft Intermediate Language, también conocido como IL - Intermedia Language) es un lenguaje intermedio de la plataforma Microsoft.NET. Los códigos fuente de los programas para aplicaciones .NET están escritos en lenguajes de programación que cumplen con la especificación CLS. Para los lenguajes de programación que cumplen con la especificación CLS, se puede construir un convertidor a MSIL. Por lo tanto, los programas en estos idiomas se pueden traducir a código intermedio en MSIL. Al cumplir con CLS, la traducción de código escrito en diferentes idiomas da como resultado un código IL compatible.

De hecho, MSIL es un ensamblador de procesadores virtuales.

METADATA: al convertir el código del programa a MSIL, también se forma un bloque METADATA, que contiene información sobre los datos utilizados en el programa. De hecho, se trata de conjuntos de tablas que contienen información sobre los tipos de datos definidos en el módulo, sobre los tipos de datos a los que se refiere este módulo. Anteriormente, esta información se almacenaba por separado. Por ejemplo, una aplicación puede incluir información de interfaz que se describió en Lenguaje de definición de interfaz (IDL). Los metadatos ahora son parte del módulo administrado.

En particular, los metadatos se utilizan para:

§ guardar información sobre tipos. Los archivos de cabecera y biblioteca ya no son necesarios durante la compilación. El compilador lee toda la información necesaria directamente de los módulos administrados,

§ verificación del código durante la ejecución del módulo,

§ gestión de memoria dinámica (liberación de memoria) durante la ejecución del módulo,

§ al desarrollar un programa usando herramientas estándar (Microsoft Visual Studio.NET)

§ Proporciona un mensaje dinámico (IntelliSense) basado en metadatos.

Idiomas para los que se implementa la traducción a MSIL:

y muchos otros idiomas.

Módulo ejecutable: independientemente del compilador (y el lenguaje de entrada), la traducción de una aplicación .NET es un módulo ejecutable administrado (módulo administrado). Es un archivo ejecutable portátil (PE) estándar de Windows.

Los elementos del módulo gestionado se presentan en la tabla.

Un módulo administrado contiene código administrado.

El código administrado es código que se ejecuta en CLR. El código se construye sobre la base de las estructuras y clases declaradas en el módulo fuente, que contiene declaraciones de métodos. El código administrado debe tener un cierto nivel de información (metadatos) para el tiempo de ejecución. El código C #, Visual Basic y JScript se administra de forma predeterminada. El código de Visual C ++ no se administra de forma predeterminada, pero el compilador puede generar código administrado especificando un argumento en la línea de comandos (/ clr). Una de las características del código administrado es la disponibilidad de mecanismos que le permiten trabajar con DATOS ADMINISTRADOS.

Los datos administrados son objetos que, durante la ejecución del código de un módulo, se asignan en la memoria administrada (en el montón administrado) y son destruidos por el recolector de basura CLR. Los datos de C #, Visual Basic y JScript .NET se administran de forma predeterminada. Los datos de C # también se pueden marcar como no administrados.

El ensamblaje es el componente básico de una aplicación en .NET Framework. Los módulos administrados se combinan en ensamblajes. Un ensamblado es una agrupación lógica de uno o más módulos administrados o archivos de recursos. Los módulos administrados en ensamblados se ejecutan en Runtime Environment (CLR). Un ensamblado puede ser una aplicación ejecutable (en cuyo caso se encuentra en un archivo con la extensión .EXE) o un módulo de biblioteca (en un archivo con una extensión .DLL). Al mismo tiempo, el ensamblaje no tiene nada que ver con las aplicaciones ejecutables y los módulos de biblioteca ordinarios (¡de estilo antiguo!).

Declaración de montaje (Manifiesto) - componente montaje. Otro conjunto de tablas de metadatos que:

§ identifica el conjunto en forma de nombre de texto, su versión, cultura y firma digital (si el conjunto es compartido entre aplicaciones),

§ determina los archivos incluidos en la composición (por nombre y hash),

§ indica los tipos y recursos que existen en el ensamblaje, incluyendo una descripción de los exportados del ensamblaje,

§ enumera las dependencias de otros ensamblados,

§ indica el conjunto de derechos necesarios para que el montaje funcione correctamente.

Esta información se utiliza en tiempo de ejecución para respaldar el correcto funcionamiento de la aplicación.

El procesador NO PUEDE ejecutar código IL. Y la traducción del código IL la lleva a cabo el compilador JIT (justo a tiempo, en el momento adecuado), que es activado por CLR según sea necesario y ejecutado por el procesador. En este caso, los resultados del compilador JIT se almacenan en la RAM. Se establece una correspondencia entre el fragmento del código IL traducido y el bloque de memoria correspondiente, lo que además permite que CLR transfiera el control a las instrucciones del procesador escritas en este bloque de memoria, evitando llamadas repetidas al compilador JIT.

El CLR permite la colaboración e interacción de componentes de software implementados en diferentes lenguajes de programación.

Basado en el bloque de metadatos generado previamente, CLR proporciona interoperabilidad EFECTIVA de aplicaciones .NET ejecutables.

Para CLR, todos los ensamblados son iguales, sin importar en qué lenguajes de programación se escribieron. Lo principal es que cumplen con la CLS. De hecho, CLR rompe los límites de los lenguajes de programación (interoperabilidad entre lenguajes). Así, gracias a CLS y CTS, las aplicaciones .NET resultan ser aplicaciones MSIL (IL).

El CLR resuelve muchos de los problemas que tradicionalmente han sido el foco de los desarrolladores de aplicaciones. Las funciones que realiza el CLR incluyen:

§ verificación y compilación dinámica (JIT) de código MSIL en instrucciones de procesador,

§ gestión de memoria, procesos e hilos,

§ organización de la interacción de procesos,

§ resolución de problemas de seguridad (en el marco de la política de seguridad existente en el sistema).

AppDomain es un contenedor de ensamblaje lógico que se utiliza para aislar una aplicación dentro del espacio de direcciones de un proceso. Todos los objetos creados por una aplicación se crean dentro de un dominio de aplicación específico. Pueden existir varios dominios de aplicación en el mismo proceso del sistema operativo. El CLR aísla las aplicaciones administrando la memoria dentro del dominio de la aplicación.

El código que se ejecuta en CLR (proceso CLR) es independiente de otros procesos que se ejecutan en la computadora al mismo tiempo.

El sistema inicia un proceso normal dentro del espacio de direcciones asignado al proceso. El CLR brinda la capacidad de ejecutar muchas aplicaciones administradas en UN PROCESO. Cada aplicación administrada se vincula a su propio dominio de aplicación (AppDomain para abreviar). Además del dominio principal, se pueden crear varios dominios adicionales en la aplicación.

La estructura del tiempo de ejecución de CLR se muestra en la imagen.

Propiedades del dominio:

§ los dominios están aislados entre sí. Los objetos creados dentro de un dominio no están disponibles en otro dominio,

CLR puede volcar dominios junto con todos los ensamblados asociados con esos dominios,

§ es posible una configuración y protección adicionales de dominios,

§ se implementa un mecanismo especial para el intercambio de datos entre dominios acceso seguro(clasificación).

El B.NET Framework ha desarrollado su propio modelo de componentes, cuyos elementos son ensamblados .NET (ensamblado .NET), y para compatibilidad directa y retroactiva con el modelo COM / COM +, el CLR tiene mecanismos incorporados (COM Interop) que brindan acceso a objetos COM mediante reglas .NET y a ensamblajes .NET mediante reglas COM. Al mismo tiempo, para las aplicaciones .NET, el registro de componentes en registro del sistema Windows.

Para ejecutar una aplicación .NET, basta con colocar los ensamblados relacionados con esta aplicación en un directorio. Si al mismo tiempo el conjunto se puede utilizar en varias aplicaciones, entonces se coloca y registra utilizando utilidad especial en el GAC (Global Assembly Cache).

CTS - Sistema de tipo común Sistema estándar Tipos. Compatible con todos los idiomas de la plataforma. Debido al hecho de que .NET es un elemento secundario de OOP, estamos hablando aquí de tipos, clases, estructuras, interfaces, delegados y enumeraciones elementales.

El Common Type System es una parte importante del tiempo de ejecución, define la estructura de la sintaxis, cómo declarar, usar y aplicar los tipos COMUNES del tiempo de ejecución. El CTS contiene información básica sobre el sistema de tipos GENERALES PREDEFINIDOS, sobre su uso y gestión (reglas de conversión de valores). CTS juega un papel importante en la integración de aplicaciones administradas multilingües.

Un espacio de nombres es una forma de organizar un sistema de tipos en un solo grupo. Hay una biblioteca de clases base de lenguaje común común. Y el concepto de un espacio de nombres asegura una organización y navegación eficientes en esta biblioteca. Independientemente del lenguaje de programación, el acceso a ciertas clases se proporciona agrupándolos dentro de espacios de nombres comunes.

Espacio de nombres Cita
Sistema
Datos de sistema Para acceder a las bases de datos
System.Data.Common
System.Data.OleDb
System.Data.SqlClient
Colecciones del sistema Clases para trabajar con objetos contenedores
Diagnostico del sistema Clases para rastrear y depurar código
System.Drawing Clases de soporte de gráficos
System.Drawing.Drawing2D
Sistema.Drawing.Impresión
System.IO Soporte de E / S
System.Net Soporte para transmisión de datos a través de redes.
Sistema.Reflexión Trabajar con tipos personalizados en tiempo de ejecución
System.Reflection.Emit
System.Runtime.InteropServices Soporte para interoperabilidad con "código regular": DLL, servidores COM, acceso remoto
System.Runtime.Remoting
Sistema de seguridad Criptografía, permisos
Sistema.Threading Trabajar con arroyos
System.WEB Trabajar con aplicaciones web
System.Windows.Form Trabajando con elementos Interfaz de Windows
System.XML Soporte de datos XML

Ejecución de ejecutables no administrados (común Aplicaciones de Windows) es proporcionado directamente por Windows. Los módulos no administrados se ejecutan en el entorno de Windows como procesos "simples". El único requisito que deben cumplir estos módulos es su correcto funcionamiento en el entorno Windows. Deben funcionar “correctamente” (no bloquear el sistema, evitar pérdidas de memoria, no bloquear otros procesos y utilizar correctamente los medios del propio sistema operativo para trabajar en nombre de los procesos). Es decir, cumpla con las reglas más generales para trabajar bajo Windows.

Al mismo tiempo, la mayoría de los problemas de la correcta ejecución de un módulo no administrado (problemas de interacción, asignación de memoria y liberación) son problemas de los desarrolladores de aplicaciones. Por ejemplo, la conocida tecnología COM es una forma de organizar la interacción de componentes dispares dentro de una aplicación.

Objeto: en un sentido amplio, es un área de memoria (pila o montón), asignada durante la ejecución del programa para escribir cualquier valor. Se caracteriza por un tipo (un conjunto fijo de propiedades que determinan el tamaño del área ocupada, una forma de interpretar un valor, un rango de valores, un conjunto de acciones permitidas al manipular un objeto) una ubicación en la memoria (una dirección ).

La recolección de basura es un mecanismo que permite al CLR determinar cuándo un objeto deja de estar disponible en la memoria administrada por el programa. La recolección de basura libera la memoria administrada. Para el desarrollador de aplicaciones, tener un mecanismo de recolección de basura significa que ya no tiene que preocuparse por liberar memoria. Sin embargo, esto puede requerir un cambio en el estilo de programación, por ejemplo, prestando especial atención al procedimiento para liberar recursos del sistema. Es necesario implementar métodos que desasignen los recursos del sistema gestionado por la aplicación.

Una pila es un área de memoria especialmente organizada destinada al almacenamiento temporal de valores de objeto (variables y constantes), para pasar parámetros al llamar a métodos, para almacenar la dirección de retorno. Administrar la pila es bastante sencillo en comparación con el montón. Se basa en cambiar el valor del registro correspondiente en la parte superior de la pila. Cuando se reduce el tamaño de la pila, los objetos simplemente se pierden.

Programa C #

Un programa es una secuencia de declaraciones bien formada (no objetable por el compilador de C #), sobre la base de la cual se forma un ensamblado.

En general, el programador crea un archivo que contiene declaraciones de clase, que se envía al compilador como entrada. El traductor representa el resultado de la compilación como un conjunto y lo determinan las preferencias del programador. En principio, el montaje puede ser de dos tipos:

Archivo ejecutable portátil (archivo PE con extensión .exe), adecuado para la ejecución directa del CLR,

§ El archivo de biblioteca de vínculos dinámicos (archivo DLL con extensión dll) está destinado a ser reutilizado como un componente de cualquier aplicación.

En cualquier caso, basándose en el código de entrada, el traductor crea un módulo IL, un manifiesto y forma un ensamblaje. En el futuro, el ensamblaje puede realizarse después de la compilación JIT o puede usarse como parte de otros programas.

Anotación: Iniciativa Microsoft .NET. Problemas de compatibilidad, confiabilidad y reutilización de componentes. .NET Framework. CLR de Common Language Runtime. Lenguaje pseudo-máquina CIL (manejado por ensamblador). Compilador JIT. Lenguajes de programación. Ensambles. Metadatos. Recolector de basura. Biblioteca de clases de .NET Framework

Problemas de desarrollo de los sistemas de información modernos

Problemas de integración

  • Módulos escritos en diferentes lenguajes, usando diferentes API (o versiones de API), o formato diferente presentación de datos;
  • Programas desarrollados para varias plataformas dentro de un solo paquete de software;
  • Sistemas que utilizan diferentes modelos de programación.

Los problemas de integración con el código heredado son especialmente comunes. Al resolver problemas de integración, surgen problemas de incompatibilidad.

Problemas de portabilidad

Cada vez más, se requieren programas para admitir múltiples plataformas (por ejemplo, la capacidad de trabajar con el programa en la plataforma Windows y Mac OS).

Problemas de versión

Los desarrolladores de Windows conocen un problema de compatibilidad de versiones conocido como DLL Hell. Este "infierno" ocurre cuando los componentes instalados para la nueva aplicación reemplazan a los componentes de la aplicación anterior. Como resultado, la aplicación anterior comienza a funcionar mal o deja de funcionar.

Administracion de recursos

Uno de los problemas de programación es la gestión y correcta liberación de recursos, archivos, memoria, espacio de pantalla, conexiones de red, recursos de la base de datos, etc. La gestión incorrecta de estos recursos puede llevar a una ejecución incorrecta del programa.

Tipo de seguridad

Cuando mencionan el problema de la seguridad de los tipos, se refieren al manejo incorrecto de los tipos de datos: intenta acceder a áreas de memoria fuera del límite del tipo, intenta llamar a métodos que no están presentes en un tipo o intenta llamar a un método que toma el tipo A como un parámetro y pasarlo como un objeto de parámetro de tipo B.

Manejo de colisiones

Al desarrollar aplicaciones de Windows utilizando la API de Win32, algunas funciones devuelven excepciones, otras devuelven códigos de estado y otras devuelven HRESULT. Por lo tanto, no existe un mecanismo consistente para manejar fallas y es posible ignorar algunas excepciones, lo que hace que el código sea inseguro.

Estos y otros problemas de desarrollo sistemas de información ayuda a resolver la plataforma Microsoft .NET.

Resolviendo los problemas del desarrollo de sistemas de información en .NET

Una forma de abordar el problema de la heterogeneidad es desarrollar y mantener API estándar que faciliten la migración de aplicaciones a servidores en diferentes plataformas. Sin embargo, las aplicaciones pueden utilizar bases de datos, comunicaciones y otros servicios, cuyas interfaces no son componentes del lenguaje o del entorno de programación. Otra técnica utilizada por los fabricantes para resolver el problema de la heterogeneidad es la compatibilidad con protocolos estándar. Los sistemas que admiten el mismo protocolo pueden comunicarse entre sí incluso si se basan en diferentes arquitecturas de máquinas y SO.

Tecnología. NET es un método de implementación y desarrollo de software que, utilizando estándares ampliamente utilizados como HTTP y XML, permite que los programas se comuniquen y proporciona acceso a numerosos servicios de software a través de Internet. La tecnología incluye. NET Framework: una plataforma para desarrollar y ejecutar aplicaciones que simplifica y acelera el desarrollo, admite una completa orientación a objetos. programación para la Web, corrige muchos tipos de errores de programación comunes, proporciona una API común para todos los lenguajes.

Qué hace a Microsoft .NET

NET Framework es un marco de desarrollo de aplicaciones. Sus componentes principales son Common Language Runtime y la biblioteca de clases. Biblioteca de clases de .NET Framework.

Tiempo de ejecución de lenguaje común

Common Language Runtime (CLR) es un Common Language Runtime que abstrae los servicios del sistema operativo y ejecuta aplicaciones administradas, cualquier acción de las cuales debe ser autorizada por CLR.

Todo el código para .NET framework es convertido por CLR a código intermedio CIL. Por lo tanto, los desarrolladores pueden integrar fácilmente código escrito para .NET en varios lenguajes de programación. Todo lo que se pueda hacer en un lenguaje compatible con .NET (con raras excepciones) se puede hacer en cualquier otro. El código en estos idiomas se compila en el código en un idioma: el idioma CIL.

El CLR se encuentra en la parte superior del sistema operativo y proporciona un entorno virtual para aplicaciones administradas. El código para .NET framework es ejecutado por CLR o se le otorga permiso para ejecutarse fuera de CLR.

El código para CLR son los comandos de lenguaje pseudo-máquina Common Intermediate Language (CIL). Estas instrucciones se compilan en el código de máquina del tipo de procesador apropiado bajo demanda (justo a tiempo) en tiempo de ejecución. Normalmente, un método se compila una vez, cuando se llama por primera vez. A continuación, el resultado se almacena en la memoria caché para evitar retrasos en los reintentos. El compilador JIT optimiza el código específicamente para el procesador en el que se ejecuta el código.

Al convertir las instrucciones CIL en instrucciones del procesador, el compilador JIT realiza una verificación de seguridad de tipo del código.

Es casi imposible ejecutar un comando que accede a un área de la memoria a la que el comando no tiene permiso para acceder. En una aplicación administrada, se elimina el problema de los punteros inicializados erróneamente y no se permite convertir un tipo en algo que no lo es, ya que se trata de una violación de seguridad de tipo. El CLR no permite llamar a métodos con un marco de pila destruido.

El recolector de basura recupera los recursos asignados por código administrado. En otras palabras, el programador solo asigna memoria, pero no la libera; esto lo hace CLR. El recolector de basura realiza un seguimiento de todas las referencias de objetos creadas por el programa y destruye estos objetos cuando la memoria que ocupan se necesita en otro lugar. Esto resuelve el problema de las pérdidas de memoria en las aplicaciones de código administrado.

La verificación del código también es fundamental para la capacidad de CLR de ejecutar múltiples aplicaciones dentro de un solo proceso. El proceso se divide en compartimentos virtuales: dominios de aplicación. Esto aumenta la eficiencia del uso de la memoria asignada a los procesos. Los dominios de aplicaciones son tan seguros como los procesos porque las aplicaciones administradas no pueden violar sus límites.

Biblioteca de clases de .NET Framework (FCL)

En .NET se incluyen conjuntos de bibliotecas de clases. NET Framework Class library (FCL) que contiene definiciones de varios miles de tipos, cada uno de los cuales proporciona alguna funcionalidad. Los conjuntos de tipos "relacionados" se recopilan en espacios de nombres separados. Por ejemplo, el espacio de nombres System contiene la clase base Object de la que se derivan en última instancia todos los demás tipos.

Por lo tanto, todas las entidades de. NET es un objeto con sus propios campos y métodos.

Además, el sistema contiene tipos para enteros, caracteres, cadenas, manejo de excepciones, E / S de consola, un grupo de tipos para convertir de forma segura un tipo a otro, formatear datos, generando números aleatorios y realizar operaciones matemáticas. Todas las aplicaciones utilizan tipos del espacio de nombres del sistema.

Puede crear su propio tipo derivado para modificar un tipo FCL existente. Puede crear sus propios espacios de nombres. Todo esto corresponderá claramente a los principios propuestos por la plataforma. RED

A continuación, se muestran algunos de los espacios de nombres más comunes y una breve descripción de los tipos que contienen.

Espacios de nombres FCL básicos
Espacio de nombres Contenido
Sistema Tipos de datos fundamentales y clases auxiliares
Colecciones del sistema Tablas hash, matrices de variables y otros contenedores
Datos de sistema Clases ADO .NET para acceso a datos
System.Drawing Clases para mostrar gráficos (GDI +)
System.IO Clases de E / S de archivos y secuencias
System.Net Clases para trabajar con protocolos de red por ejemplo, con HTTP
Sistema.Reflexión Clases de lectura y escritura de metadatos.
System.Runtime.Remoting Clases para aplicaciones distribuidas
System.ServiceProcess Clases para crear servicios Wndows
Sistema.Threading Clases para crear y administrar transmisiones
System.Web Clases para soporte HTTP
System.Web.Services Clases para desarrollar servicios web
System.Web.Services. Clases para desarrollar Protocolos clientes de servicios web
System.Web.UI Clases principales utilizadas por ASP .NET
System.Web.UI. WebControls Controles de servidor ASP .NET
System.Wndows.Forms Clases para aplicaciones GUI
System.Xml Clases para leer e ingresar datos XML

Todas las aplicaciones administradas usan

Buenos días. Alexey Gulynin está en contacto. En el último artículo, vimos cómo pasar argumentos a un método en C #. En este artículo, me gustaría contar una vez más (en palabras más simples) qué es plataforma. NET Framework y Visual Studio. Este artículo es una continuación de los artículos Descripción de Visual Studio y .Net Framework .NET Framework¿Es CLR (Common Language Runtime - componente principal .Net Framework), que asegura la ejecución del código administrado. El CLR administra este código. ¿Qué es el código administrado? El código escrito para .NET Framework no se compila en el código de máquina final, sino en un lenguaje intermedio (el denominado lenguaje intermedio, IL). Luego, este ensamblado se pasa al usuario (debe haber un .Net Framework en la máquina), se carga en la memoria y traduce los comandos de IL en acciones que deben realizarse.

¿Qué sentido tiene el lenguaje intermedio IL?

Primero, es independiente de la plataforma, no está vinculado a un procesador específico.

En segundo lugar, su presencia permite que CLR controle el funcionamiento de su programa, es decir, no le permita hacer nada inaceptable (por ejemplo, manipular la memoria).

Segundo componente importante después de CLR es biblioteca de clases... .NET Framework incluye una gran cantidad de clases de espacio de nombres que proporcionan toda la funcionalidad básica. Esta es la funcionalidad que su programa puede necesitar, por ejemplo, trabajar con archivos, redes, procesos, con el subsistema de gráficos.

Tercer componente Son Frameworks de desarrollo (en otras palabras, bibliotecas de desarrollo). Esto incluye bibliotecas como WPF (Windows Presentation Foundation), ASP.NET, Entity Framework, WCF (Windows Communication Foundation), Tienda de Windows y otros. De hecho, estas también son clases. La diferencia es que estas clases están diseñadas para resolver problemas específicos:

  • WPF: para trabajar con aplicaciones gráficas
  • ASP.NET: para trabajar con aplicaciones web
  • WCF: para redes y creación de aplicaciones distribuidas (cliente-servidor)
  • Entity Framework: para trabajar con una base de datos.

En el momento de escribir este artículo ultima versión es .Net Framework 4.6

El entorno de desarrollo principal recomendado por Microsoft es Visual Studio. Microsoft suele tener esta situación: como sale una nueva version.NET Framework, luego de un tiempo sale una nueva versión de Visual Studio. Qué se incluye en Visual Studio (básico):

  1. Editor de texto con resaltado de sintaxis de código
  2. Sistema de ayuda IntelliSence (llamado automáticamente o presionando Ctrl + Espacio (espacio)
  3. Compiladores de diferentes lenguajes
  4. Desarrollo rápido de aplicaciones (RAD)
  5. Diseñador visual de interfaces, diagramas
  6. Componente para trabajar con servidores, con bases de datos
  7. Opción Express de servidor web IIS y servidor SQL
  8. Depuradores, perfiladores, componentes que le permiten manejar errores
  9. Sistema de ayuda de MSDN

En el momento de escribir este artículo, la última versión es Visual Studio 2015.

Cómo funciona el concepto de programas en Visual Studio. El estudio tiene el concepto de "Proyecto" y "Solución". Un proyecto es una unidad de compilación. Consiste en un conjunto de archivos. El proyecto se compila en su totalidad, generalmente en un ensamblado (archivo exe o archivo dll). Los proyectos se pueden agrupar en Solución. Una solución es simplemente una colección de proyectos que pueden o no estar relacionados entre sí (que es lo que suele ocurrir).

Tipos de aplicaciones .NET

El lenguaje C # se puede utilizar para crear aplicaciones de consola: aplicaciones basadas en texto que se ejecutan en una ventana de DOS. Lo más probable es que estas aplicaciones se utilicen para probar bibliotecas de clases. Sin embargo, la mayoría de las veces, C # deberá usarse para crear aplicaciones que tengan acceso a muchas de las tecnologías asociadas con .NET. Este artículo proporciona una descripción general rápida de los diferentes tipos de aplicaciones que puede escribir en C #.

Creación de aplicaciones ASP.NET

El advenimiento temprano de ASP.NET 1.0 cambió fundamentalmente el modelo de programación web. ASP.NET 4 es la versión anterior del producto y se basa en avances anteriores. ASP.NET 4 presenta importantes pasos revolucionarios para ser más productivo. El objetivo principal de ASP.NET 4 es permitirle crear aplicaciones dinámicas, seguras y potentes con la menor cantidad de código posible.

Características de ASP.NET

El primero, y quizás el más importante, es que las páginas estructurado... Es decir, cada página es, de hecho, una clase heredada de Clase System.Web.UI.Page de .NET, que puede anular un conjunto de métodos llamados durante el ciclo de vida de un objeto Page. (Puede pensar en estos eventos como hermanos de eventos específicos de la página OnApplication_Start y OnSession_Start que venían en archivos global.asax en ASP clásico.) Debido a que la funcionalidad de las páginas se puede dividir en controladores de eventos para propósitos específicos, las páginas ASP.NET son mucho más fáciles de entender.

Otra ventaja de las páginas ASP.NET es que puede crearlas en Visual Sludio 2010, el mismo entorno que codifica para la lógica empresarial y los componentes de acceso a datos que utilizan esas mismas páginas ASP.NET. Un proyecto o solución de Visual Studio 2010 contiene todos los archivos asociados con una aplicación. Además, las páginas ASP clásicas se pueden depurar directamente en el editor. V viejos tiempos En relación con Visual InterDev, existía una molesta necesidad de configurar específicamente InterDev y el servidor web del proyecto para habilitar la depuración.

Para mayor claridad, la herramienta de código subyacente ASP.NET le permite extender el enfoque estructurado aún más. ASP.NET le permite aislar la funcionalidad del servidor de una página en una clase, compilar esa clase junto con otras páginas en una DLL y colocar esa DLL en un directorio debajo de la porción HTML. La directiva @Page al principio de la página asocia este archivo con la clase. Cuando un navegador solicita una página, el servidor web genera eventos en la clase que se encuentra en el archivo de clase de la página.

Por último, pero no menos importante, la propiedad ASP.NET que debe mencionarse es el aumento del rendimiento. Mientras que las páginas ASP clásicas se interpretan cada vez que se accede a la página, las páginas ASP.NET se almacenan en caché en el servidor web después de la compilación. Esto significa que todas las solicitudes posteriores de páginas ASP.NET son más rápidas que la primera.

ASP.NET también facilita la escritura de páginas que muestran formularios en el navegador que se pueden aplicar a red corporativa... La visión tradicional de las aplicaciones orientadas a formularios es que proporcionan una rica interfaz de usuario, pero son más difíciles de mantener porque se ejecutan en muchas máquinas cliente. Por esta razón, las personas solo confían en aplicaciones centradas en formularios cuando necesitan una interfaz enriquecida y pueden brindar un soporte confiable a sus usuarios.

Formularios web

Para simplificar aún más el diseño de páginas web, Visual Studio 2010 proporciona la biblioteca de formularios Web Forms. Esta herramienta le permite crear gráficamente páginas ASP.NET, al igual que las ventanas se crean en Visual Basic 6 y en C ++ Builder. En otras palabras, deberá arrastrar los controles necesarios desde la caja de herramientas a la superficie del formulario, luego ajustar ligeramente el código del formulario y escribir controladores de eventos para los controles. Cuando usa C # para crear un formulario web, crea una clase C # que hereda de la clase base Página y una página ASP.NET que representa esta clase como su código subyacente. Por supuesto, no tiene que usar C # para crear su formulario web; también puede utilizar Visual Basic 2010 o cualquier otro lenguaje orientado a .NET para hacer esto.

En el pasado, la complejidad del desarrollo web ha impedido que algunos equipos de desarrollo intenten dominarlo. Para tener éxito en el desarrollo de aplicaciones web, era necesario conocer muchos diferentes tecnologias como VBScript, ASP, DHTML, JavaScript, etc. La aplicación de los conceptos de formularios Web Forms a las páginas web ha facilitado mucho la creación de aplicaciones web.

Controles del servidor web

Los controles usados ​​en Web Forms no son controles en el mismo sentido que son controles ActiveX. En cambio, son descriptores XML que pertenecen al espacio de nombres ASP.NET que el navegador web transforma dinámicamente en descriptores HTML y scripts del lado del cliente cuando se solicita la página. Sorprendentemente, el servidor web puede representar los mismos controles lado del servidor de diversas formas, generando una transformación adecuada al navegador web específico que realizó la solicitud. Esto significa que ahora puede crear fácilmente interfaces de usuario páginas web sin preocuparse por cómo hacer que la página funcione en cualquiera de los navegadores disponibles; Web Forms se encarga de eso.

Servicios web XML

Hoy en día, las páginas HTML constituyen la mayor parte del tráfico en la World Wide Web. Sin embargo, gracias a XML, las computadoras reciben un formato independiente del dispositivo que se puede utilizar para comunicarse a través de Internet. En el futuro, las computadoras pueden usar XML para intercambiar información, en lugar de enviarse mensajes entre sí a través de líneas arrendadas en un formato propietario como EDI (intercambio electrónico de datos). Los servicios web XML están diseñados para un entorno web centrado en servicios, donde las computadoras remotas se proporcionan información dinámica entre sí que se puede analizar y reformatear antes de su presentación final al usuario. XML Web Services es una forma sencilla para que las computadoras proporcionen información en formato XML a otras computadoras en Internet.

En términos técnicos, un servicio web XML .NET es una página ASP.NET que devuelve XML en lugar de HTML cuando lo solicitan los clientes. Estas páginas se basan en archivos DLL de código subyacente que contienen clases heredadas de WebService. El IDE de Visual Studio 2010 proporciona un mecanismo que facilita la creación de servicios web.

Una empresa u organización puede elegir los servicios web XML por dos razones principales. La primera razón es que están basados ​​en HTTP; Los servicios web pueden utilizar redes existentes basadas en HTTP como intermediarios para transferir información. Otra razón es que debido a que los servicios web XML utilizan XML, el formato de los datos transmitidos es autodocumentado, abierto e independiente de la plataforma.

Crear formularios de Windows

Aunque C # y .NET están diseñados específicamente para el desarrollo web, aún admiten las llamadas aplicaciones cliente "fat", es decir. aplicaciones que deben instalarse en la máquina del usuario final, donde se realiza la mayor parte del procesamiento. Esto lo proporciona la biblioteca de formularios de Windows.

Sin embargo, si está comenzando a aprender el marco .NET, lo haría no recomendó aprende Windows Forms y pasa directamente a la última tecnología WPF.

Windows Presentation Foundation (WPF)

Uno de las ultimas tecnologias Windows Presentation Foundation (WPF) es revolucionario. WPF se basa en el uso de XAML para crear aplicaciones. XAML son las siglas de Extensible Application Markup Language - Extensible Application Markup Language. Esta nueva forma de crear aplicaciones dentro del entorno de Microsoft, introducida por primera vez en 2006, es parte de .NET Framework 3.0, 3.5 y 4. Esto significa que para ejecutar cualquier aplicación WPF, debe asegurarse de que la máquina cliente esté instalada. .NET Framework 3.0, 3.5 o 4. Las aplicaciones WPF están disponibles para Windows 7, Windows Vista, Windows XP, Servidor de windows 2003 y Windows Server 2008 (solo estos sistemas operativos le permiten instalar .NET Framework 3.0, 3.5 o 4).

XAML es una declaración XML que se usa para crear formularios que representan todos los aspectos visuales y el comportamiento de las aplicaciones WPF. Debido a que puede trabajar con la aplicación WPF mediante programación, esta tecnología representa un paso hacia la programación declarativa hacia la que se dirige la industria en la actualidad. La programación declarativa significa que en lugar de crear objetos escribiendo código en un lenguaje compilado como C #, VB o Java, todo se declara usando programación similar a XML.

Servicios de Windows

Windows Service (originalmente llamado NT Service) es un programa diseñado para ejecutarse en segundo plano bajo Windows NT / 2000 / XP / 2003 / Vista / 7 (pero no Windows 9x). Estos servicios son útiles cuando necesita organizar el funcionamiento continuo de programas que están listos para responder a eventos, sin la necesidad de iniciarlos explícitamente por iniciativa del usuario. Un buen ejemplo es el servicio World Wide Web en servidores web que escucha las solicitudes web de los clientes.

Es muy fácil desarrollar servicios en C #. En el espacio de nombres Proceso.Sistema.Servicio. Hay clases base .NET Framework disponibles que le permiten resolver la mayoría de las tareas relacionadas con plantillas asociadas con los servicios del sistema. Además, Visual Studio .NET le permite crear un proyecto de servicio de Windows C # en el que construir servicios de windows usado por fuente C #.

Windows Communication Foundation (WCF)

A medida que explora las formas en que las tecnologías de Microsoft mueven datos y servicios de un punto a otro, encontrará que tiene una amplia variedad de soluciones posibles... Por ejemplo, puede utilizar ASP.NET Web Services, .NET Remoting Technology, Enterprise Services o MSMQ. ¿Qué tecnología deberías elegir? La respuesta a esta pregunta viene dictada por lo que está tratando de lograr, ya que cada una de estas tecnologías se prefiere en una situación particular.

Con eso en mente, Microsoft realmente ha reunido todas estas tecnologías, y en .NET Framework 3.0 y su inclusión en .NET Framework 3.5 y 4, hay una única forma de mover datos: Windows Communication Foundation (WCF). La biblioteca WCF brinda la capacidad de construir inicialmente un servicio y luego entregar ese servicio de diferentes maneras (incluso a través de diferentes protocolos) con un simple cambio. archivo de configuración. WCF es una nueva herramienta muy poderosa para conectar sistemas distribuidos.

Windows Workflow Foundation (WF)

Windows Workflow Foundation (WF) se introdujo por primera vez en .NET Framework 3.0, pero ahora se ha sometido a una revisión importante que muchos considerarán mucho más útil. Verá que la experiencia de WF se ha mejorado enormemente en Visual Studio 2010, lo que facilita la creación de sus propios flujos de trabajo. También encontrará nuevos controles de flujo, la clase Flowchart y una serie de nuevas acciones como DoWhile, ForEach y ParallelForEach.