¿Qué es un marco C#? ¿Qué es MVC? ¿Qué es un modelo de fábrica? ¿Qué son los patrones de diseño? ¿Qué es una arquitectura de tres niveles? No sé cuándo lo escucho todos los días.
Proporcionar un entorno de programación orientado a objetos consistente ya sea que el código de destino se almacene y ejecute localmente, se ejecute localmente pero se distribuya a través de Internet o se ejecute de forma remota.
Proporcionar un entorno de ejecución de código que minimice los conflictos entre la implementación del software y el control de versiones.
Proporcionar un entorno de ejecución de código para garantizar la ejecución segura del código (incluido el código creado por terceros desconocidos o que no son totalmente confiables).
Proporcionar un entorno de ejecución de código que pueda eliminar problemas de rendimiento en entornos de script o de interpretación.
Permite a los desarrolladores tener una experiencia consistente al enfrentar diferentes tipos de aplicaciones, como aplicaciones basadas en Windows y aplicaciones basadas en Web.
Generar todas las comunicaciones de acuerdo con los estándares de la industria para garantizar la base. NET framework se puede integrar con cualquier otro código.
. NET framework tiene dos componentes principales: Common Language Runtime y . NET framework biblioteca de clases. El tiempo de ejecución del lenguaje común es. NET marco. Puede pensar en el tiempo de ejecución como un agente que administra su código mientras se ejecuta. Proporciona servicios básicos como gestión de memoria, gestión de subprocesos y comunicación remota, y también aplica una estricta seguridad de tipos y otras formas de precisión del código para garantizar la seguridad y la confiabilidad. De hecho, el concepto de gestión de código es un principio fundamental del tiempo de ejecución. El código que tiene como destino el tiempo de ejecución se denomina código administrado, mientras que el código que no tiene como destino el tiempo de ejecución se denomina código no administrado. Otro componente importante de. NET framework es una biblioteca de clases, una colección completa de tipos reutilizables orientados a objetos. Puede utilizarlo para desarrollar una variedad de aplicaciones, desde aplicaciones tradicionales de línea de comandos o de interfaz gráfica de usuario (GUI) hasta las últimas aplicaciones innovadoras basadas en ASP.NET, como formularios web y servicios web XML.
. NET framework puede hospedarse en componentes no administrados que cargan Common Language Runtime en sus procesos y comienzan a ejecutar código administrado, creando un entorno de software que puede aprovechar funciones administradas y no administradas. de. NET Framework no solo proporciona varios hosts de ejecución, sino que también admite el desarrollo de hosts de ejecución de terceros.
Por ejemplo, el tiempo de ejecución administrado de ASP.NET proporciona un entorno de servidor escalable para código administrado. ASP.NET utiliza el tiempo de ejecución directamente para habilitar aplicaciones de formularios web y servicios web XML (ambos se analizan más adelante en este tema).
Internet Explorer es un ejemplo de una aplicación no administrada que tiene un tiempo de ejecución administrado (en forma de extensiones de tipo MIME). El uso de Internet Explorer para alojar el tiempo de ejecución le permite incrustar componentes administrados o controles de Windows Forms en documentos HTML. Es posible habilitar el código móvil administrado (similar a los controles Microsoft ActiveX) hospedando el tiempo de ejecución de esta manera, pero con mejoras significativas que solo el código administrado puede proporcionar, como una ejecución confiable incompleta y almacenamiento de archivos independiente y seguro. p>
El siguiente diagrama muestra la relación entre Common Language Runtime y las bibliotecas de clases con la aplicación y el sistema general
entorno NET Framework
Las siguientes secciones describen los componentes y características principales. NET Framework con más detalle
Funciones de Common Language Runtime
Common Language Runtime La biblioteca administra la memoria, la ejecución de subprocesos, la ejecución de código, la verificación de seguridad del código, la compilación y otros sistemas. servicios Estas funciones son inherentes al código administrado que se ejecuta en Common Language Runtime.
En cuanto a la seguridad, depende del código incluido y depende de una serie de factores, incluido el origen del componente administrado. como Internet, la red corporativa o la computadora local), los componentes administrados reciben diversos grados de confianza, lo que significa que los componentes administrados no necesariamente son confiables incluso si se usan dentro de la misma aplicación activa. Capacidad para realizar operaciones de acceso a archivos. operaciones de acceso al registro u otras funciones que requieren un uso cuidadoso.
El tiempo de ejecución aplica la seguridad de acceso al código. Por ejemplo, los usuarios pueden confiar en que los archivos ejecutables incrustados en las páginas web se reproduzcan en la pantalla, pero sin que se reproduzcan. acceso a sus datos personales, sistemas de archivos o redes. De esta manera, las características de seguridad del tiempo de ejecución hacen que el software legítimo implementado en Internet sea particularmente rico en funciones.
El tiempo de ejecución también se denomina infraestructura de verificación de tipo estricta y de verificación de código. para Common Type System (CTS) para mejorar la confiabilidad del código CTS garantiza que todo el código administrado sea autodescriptivo. Varios compiladores de lenguajes de Microsoft y de terceros generan código administrado compatible con CTS. Esto significa que el código administrado puede usar otros tipos e instancias administrados. aplicar estrictamente la fidelidad y la seguridad de tipos.
Además, el entorno administrado del tiempo de ejecución elimina muchos problemas comunes del software, como el procesamiento automático de objetos en tiempo de ejecución y la gestión de referencias a ellos, liberándolos cuando ya no se utilizan. .
Esta gestión automática de la memoria soluciona dos de los errores de aplicación más comunes: pérdidas de memoria y referencias de memoria no válidas.
El tiempo de ejecución también aumenta la productividad del desarrollador. Por ejemplo, los programadores pueden escribir aplicaciones en el lenguaje de desarrollo de su elección y aun así aprovechar los tiempos de ejecución, las bibliotecas de clases y los componentes escritos por otros desarrolladores en otros lenguajes. Cualquier proveedor de compiladores que decida centrarse en el tiempo de ejecución puede hacerlo. Una especie de focalización. NET framework escrito en este lenguaje se puede utilizar. NET Framework, lo que reduce en gran medida la carga de trabajo del proceso de migración de aplicaciones existente.
Si bien el tiempo de ejecución está diseñado para software futuro, también admite software actual y anterior. La interoperabilidad entre el código administrado y no administrado permite a los desarrolladores continuar usando los componentes COM y las DLL necesarios.
El tiempo de ejecución está diseñado para mejorar el rendimiento. Aunque Common Language Runtime proporciona muchos servicios de ejecución estándar, nunca interpreta el código administrado. Una característica llamada compilación justo a tiempo (JIT) permite que todo el código administrado se ejecute en el idioma nativo del sistema en el que se ejecuta. Al mismo tiempo, el administrador de memoria elimina la posibilidad de fragmentación de la memoria y aumenta el área de referencia de la memoria para mejorar aún más el rendimiento.
Finalmente, el tiempo de ejecución se puede implementar mediante una aplicación del lado del servidor de alto rendimiento como Microsoft. ¿Servidor SQL? y Servicios de información de Internet (IIS). Esta infraestructura le permite escribir lógica empresarial utilizando código administrado mientras disfruta del rendimiento superior de los mejores servidores empresariales de la industria con soporte para alojamiento en tiempo de ejecución.
Biblioteca de clases de NET Framework
. NET Framework es una colección de tipos reutilizables que están estrechamente integrados con Common Language Runtime. Esta biblioteca de clases está orientada a objetos y proporciona tipos de los cuales su propio código administrado puede derivar funciones. Esto no sólo hace. NET Framework son fáciles de usar y también reducen el tiempo necesario para aprender nuevas funciones. NET marco. Además, se pueden integrar componentes de terceros con . NET marco.
Por ejemplo, en. NET Framework implementan un conjunto de interfaces que se pueden utilizar para desarrollar sus propias clases de colección. Su clase de colección funcionará con . NET marco.
Como es de esperar de una biblioteca de clases orientada a objetos. NET framework le permiten completar una variedad de tareas de programación comunes, incluida la administración de cadenas, la recopilación de datos, las conexiones de bases de datos y el acceso a archivos. Además de estas tareas comunes, la biblioteca de clases también incluye tipos que admiten una variedad de escenarios de desarrollo especializados. Por ejemplo, puedes usar . NET Framework para desarrollar los siguientes tipos de aplicaciones y servicios:
Aplicaciones de consola.
Aplicación script o aplicación alojada.
Aplicación GUI de Windows (Windows Forms).
Aplicación ASP.NET.
Servicio Web XML.
Servicio Windows.
Por ejemplo, las clases de Windows Forms son un conjunto completo de tipos reutilizables que simplifican enormemente el desarrollo de GUI de Windows. Si desea escribir una aplicación de formularios web ASP.NET, puede utilizar clases de formularios web.
Desarrollo de aplicaciones cliente
En la programación basada en Windows, las aplicaciones cliente son las más cercanas a las aplicaciones tradicionales. Estos son tipos de aplicaciones que muestran ventanas o formularios en el escritorio para que los usuarios puedan realizar tareas. Las aplicaciones cliente incluyen aplicaciones como procesadores de texto y hojas de cálculo, así como aplicaciones comerciales personalizadas, como herramientas de entrada de datos y herramientas de generación de informes. Las aplicaciones cliente suelen utilizar ventanas, menús, botones y otros elementos de la GUI, y tienen acceso a recursos locales (como el sistema de archivos) y dispositivos periféricos (como impresoras).
Otra aplicación cliente es un control ActiveX tradicional (ahora reemplazado por un control alojado de Windows Forms) implementado como una página web a través de Internet. Esta aplicación es muy similar a otras aplicaciones cliente: se ejecuta localmente, tiene acceso a recursos locales y contiene elementos gráficos.
En el pasado, los desarrolladores utilizaban C/C++ y entornos Microsoft Foundation Classes (MFC) o Rapid Application Development (RAD) (como Microsoft? ¿Visual Basic?) para crear este tipo de aplicaciones. de. NET framework combina las características de estos productos existentes en un entorno de desarrollo único y consistente, lo que simplifica enormemente el desarrollo de aplicaciones cliente.
Clases de Windows Forms contenidas en su interior. NET Framework está diseñado para el desarrollo de GUI. Puede crear fácilmente ventanas de comandos, botones, menús, barras de herramientas y otros elementos de pantalla con la flexibilidad de adaptarse a las necesidades cambiantes del negocio.
Por ejemplo, en. NET framework proporciona propiedades simples para ajustar las propiedades visuales asociadas con un formulario. En algunos casos, el sistema operativo subyacente no admite cambios directos en estas propiedades. NET framework recreará automáticamente el formulario. Esto es. NET framework integra una interfaz de desarrollador para hacer la codificación más simple y consistente.
A diferencia de los controles ActiveX, los controles de Windows Forms tienen un acceso de confianza incompleto a la computadora del usuario. Esto significa que el código binario o el código que se ejecuta localmente puede acceder a algunos recursos del sistema del usuario (como elementos de la GUI y acceso restringido a archivos), pero no puede acceder ni dañar otros recursos. Gracias a la seguridad de acceso al código, muchas aplicaciones que antes debían instalarse en el sistema de un usuario ahora se pueden implementar de forma segura a través de la web. Cuando se implementa como una página web, su aplicación puede implementar la funcionalidad de una aplicación nativa.
Desarrollo de aplicaciones de servidor
En el mundo del hosting, las aplicaciones del lado del servidor se implementan a través del hosting en tiempo de ejecución. Las aplicaciones no administradas alojan Common Language Runtime, lo que permite que el código administrado personalizado controle el comportamiento del servidor. Este modelo le brinda toda la funcionalidad de las bibliotecas de clases y de Common Language Runtime, al mismo tiempo que obtiene el rendimiento y la escalabilidad de un servidor principal.
El siguiente diagrama muestra la estructura de red básica para ejecutar código administrado en diferentes entornos de servidor. Servidores como IIS y SQL Server pueden realizar operaciones estándar al ejecutar la lógica de la aplicación a través de código administrado.
Código alojado del lado del servidor
ASP.NET es un entorno de alojamiento que permite a los desarrolladores utilizarlo. NET marco. Sin embargo, ASP.NET es más que un simple servidor de ejecución; es la estructura completa de sitios web y objetos distribuidos a través de Internet desarrollados utilizando código administrado. Tanto los formularios web como los servicios web XML utilizan IIS y ASP.NET como mecanismo de publicación de la aplicación, y ambos funcionan. NET marco.
Como desarrollo importante basado en la tecnología web, los servicios web XML son un componente de aplicación distribuido del lado del servidor similar a un sitio web normal. Sin embargo, a diferencia de las aplicaciones basadas en Web, los componentes del servicio Web XML no tienen interfaz de usuario y no están expuestos a navegadores como Internet Explorer y Netscape Navigator. En cambio, los servicios web XML contienen componentes de software reutilizables diseñados para otras aplicaciones, como aplicaciones cliente tradicionales, aplicaciones basadas en web e incluso otros servicios web XML. Por lo tanto, la tecnología de servicios web XML está impulsando rápidamente el desarrollo y la implementación de aplicaciones en entornos de Internet altamente distribuidos.
Si ha utilizado versiones anteriores de la tecnología ASP, notará inmediatamente las mejoras proporcionadas por ASP.NET y Web Forms.
MVC es la abreviatura de tres palabras: modelo, vista y controlador de control. El propósito del patrón MVC es realizar la división funcional del sistema web. La capa de modelo implementa la lógica empresarial en el sistema, que generalmente se puede implementar mediante JavaBean o EJB. La capa de vista se utiliza para interactuar con los usuarios y generalmente se implementa mediante JSP. La capa del controlador es el puente entre el modelo y la vista. Envía la solicitud del usuario y selecciona la vista adecuada para su visualización. Al mismo tiempo, puede interpretar la entrada del usuario y asignarla a operaciones ejecutables en la capa del modelo.
El resto son patrones de diseño. La arquitectura de tres niveles incluye una capa de acceso a datos, una capa de lógica empresarial y una capa de acceso a páginas.
Si quieres aprender, puedes aprender C# primero. Para proyectos, puedes consultar petshop. Para proyectos mvc, puedes consultar oxite.