Explicando la Arquitectura ASP.NET MVC para Principiantes

Introducción

Este artículo intenta proporcionar conceptos y fundamentos básicos del flujo de información de la arquitectura ASP.NET MVC (Modelo – Vista – Controlador) a principiantes.

MVC es la abreviatura para Modelo – Vista – Controlador. ASP.NET MVC es la arquitectura para desarrollar aplicaciones web ASP.NET de forma diferente al desarrollo web ASP.NET tradicional. Las aplicaciones web desarrolladas con ASP.NET MVC incluso son más amigables con los motores de búsqueda, lo que contribuye a mejorar el SEO de un sitio web.

Para desarrollar aplicaciones ASP.NET MVC se necesita Microsoft .NET Framework 3.5 o superior.

La interacción de MVC con el Navegador

Como en una interacción normal con un servidor web, una aplicación MVC también acepta solicitudes y responde al navegador web de la misma manera.

asp net mvc 01

Dentro de la Arquitectura MVC

Toda la arquitectura ASP.NET MVC está basada en el Microsoft .NET Framework 3.5 y con la adición de utilizar LINQ para SQL Server.

¿Qué es un Modelo?

  • Un modelo MVC es básicamente una clase C# o VB.NET.
  • Un modelo es accesible por el controlador y la vista.
  • Un modelo puede ser utilizado para pasar datos del controlador a la vista.
  • Una vista puede utilizar el modelo para mostrar datos en una página.

¿Qué es una Vista?

  • Una vista es una página ASPX sin tener un archivo de código detrás de ella.
  • Toda generación y formato específico HTML de página se puede hacer dentro de la vista.
  • Uno puede utilizar código inline (etiquetas del servidor) para desarrollar páginas dinámicas.
  • Una solicitud a una vista (página ASPX) sólo puede ser hecha desde un método de acción de un controlador.

¿Qué es un Controlador?

  • Un controlador es básicamente una clase C# o VB.NET, la cual ha heredado system.mvc.controller.
  • Un controlador es el corazón de la arquitectura MVC.
  • Dentro de la clase Controlador los métodos de acción pueden ser implementados para ser responsables de responder al navegador o llamar a las vistas.
  • Un controlador puede acceder y utilizar una clase Modelo para pasar datos a las vistas.
  • El controlador utiliza ViewData para pasar cualquier dato a una vista.

asp net mvc 02

Estándares MVC para la estructura y nombres de archivos

MVC utiliza una estructura de directorio y nomenclatura de archivos estándar la cual es una muy importante parte del desarrollo de una aplicación MVC.

Dentro de la carpeta Raíz de la aplicación, deben haber 3 carpetas para el modelo, la vista y el controlador.

Aparte de esos 3 directorios, debe existir un archivo Global.asax en la carpeta raíz, y un web.config igual que en una aplicación ASP.NET tradicional.

  • Raíz [carpeta]
    • Controlador [carpeta]
      • Archivos código fuente del Controlador
    • Modeloss [carpeta]
      • Archivos código fuente del Modelo
    • Vistas [carpeta]
      • Archivos aspx/ascx de la Vista
    • Global.asax
    • Web.config

Ciclo de Vida ASP.NET MVC

A continuación veamos como es que la arquitectura MVC ejecuta las solicitudes al navegador y las interacciones de un objeto con otro.

El proceso paso a paso es explicado en la siguiente imagen:

asp net mvc 03

Solicitud del navegador – Paso 1

El navegador solicita una URL específica. Vamos a asumir que el usuario ingresa la URL siguiente:

[xyz.com]/home/index/

El trabajo de Global.asax – ruteo MVC – Paso 2

La URL indicada es interpretada por el método application_start() dentro del archivo Global.asax. Desde la URL solicitada, también interpretamos el Controlador, la Acción y el ID.

De modo que para [xyz.com]/home/index/:

Controlador=home

Acción= index()

ID=vacío, no hemos indicado ID en [xyz.com]/home/index/, de modo que se considera vacío

Métodos del Controlador y de Acción – Paso 3

MVC ahora encuentra la clase controlador home en la carpeta Controlador. Una clase controlador contiene diferente métodos de acción.

Puede haber más de un método de acción, pero MVC sólo invocará el método que ha sido interpretado desde la URL, en nuestro caso es index().

De modo que algo como: homeControlador.index() sucederá dentro de la clase controlador MVC.

Ínvocar el método de acción puede retornar un texto o HTML generado utilizando una vista.

Llamar a una vista – Paso 4

Invocando la vista retornará vista(). Una llamada a la vista accederá a la página ASPX en particular dentro de la carpeta Vistas y generará el HTML desde ASPX y responderá de vuelta al navegador.

En nuestro caso, el controlador fue home y la acción fue index(). De modo que llamando view() retornará un HTML generado desde la página ASPX localizada en /vistas/home/index.aspx.

Eso es, todo el proceso, espero se entienda y es como funciona la arquitectura MVC.

Como Saber Si Una Tabla Existe en la Base de Datos [SQL Server]

Esto puede parecer fácil, pero cuando trabajas con cientos de tablas, la memoria no es de gran ayuda. ¿Cómo verificar si una tabla existe en una base de datos de SQL Server? Pues hay tres métodos, entre obvios y algo complicados:

1. Utilizar SQL Server Management Studio, navegar hasta el nodo de la base de datos, expandir el nodo de Tablas y chequear la lista visualmente.

2. Seleccionar con una consulta:

SELECT * FROM sys.objects
WHERE object_id = OBJECT_ID(N'[dbo].[TuTabla]') AND type in (N'U')

3. Utilizar el intelisense dentro de SSMO, escribiendo “SELECT * FROM TuTabla” y verificar que sugerencia muestra el editor.

Descarga Debian Linux 7 Wheezy

La versión 7.0 de Debian GNU/Linux Wheezy ha sido liberada (haz clic aquí para descargar ) después de muchos meses de desarrollo constante y está disponible para descarga en distinto tipo de formatos. Debian 7.0 es un sistema operativo gratuito que incluye varias nuevas características tales como soporte multiarco, algunas herramientas especificas para desplegar nubes privadas, un instalador mejorado, y un completo conjunto de codecs multimedia y pantallas que eliminan la necesidad de repositorios de terceros.

Fig.01: Debian Linux 7.0 Desktop

Fig.01: Escritorio de Debian Linux 7.0

¿Qué hay de nuevo en Debian v7.0?

  • Soporte multiarco permite instalar paquetes de múltiples arquitecturas en la misma computadora. Esto significa que puedes ahora, por primera vez, instalar software de 32 y 64 bits en la misma máquina y tener todas las dependencias relevantes correctamente resueltas, automáticamente.
  • Debian Wwheezy viene con un mejorado soporte multimedia: ffmpeg ha sido reemplazada por la librería libav fork (libav-tools), la cual es considerada una característica más conservadora para realizar un proceso de versionado más conservador y que se acomoda mejor a las necesidades de Debian. Proporciona todas las bibliotecas y prepara una ruta para actualizaciones para los paquetes de aplicaciones existentes. Las librerías libav llenas de características y pantallas que incluyen por ejemplo a mplayer, mencoder, vlc y transcode. Soporte adicional de codec es proporcionado a traves de lame for MP3 audio encoding, xvidcore for MPEG-4 ASP video encoding, x264 for H.264/MPEG-4 AVC video encoding, vo-aacenc for AAC audio encoding y opencore-amr y vo-amrwbenc for Adaptive Multi-Rate Narrowband y Wideband encoding y decoding, respectivamente. Para la mayoría de casos, la instalación de paquetes desde repositorios de terceros no deberían ser necesarios nunca más. Los tiempos de soporte multimedia problemáticos están terminando finalmente!
  • Muchos paquetes Debian han sido construidos ahora con las hardening flags habilitadas del compilador gcc.
  • Debian 7.0 soporta el sistema AppArmor Mandatory Access Control.
  • Debian 7.0 incluye la OpenStack suite también como la Xen Cloud Platform (XCP), permitiendo a los usuarios distribuir su propia infraestructura de nube.

Una lista de software actualizado:

  1. Apache 2.2.22
  2. Asterisk 1.8.13.1
  3. GIMP 2.8.2
  4. Gnome 3.4
  5. GNU Compiler Collection 4.7.2
  6. Iceweasel 10 (una versión sin marca de Mozilla Firefox)
  7. KDE Plasma Workspaces y KDE Applications 4.8.4
  8. kFreeBSD kernel 8.3 y 9.0
  9. LibreOffice 3.5.4
  10. Linux kernel 3.2
  11. MySQL 5.5.30
  12. Nagios 3.4.1
  13. OpenJDK 6b27 and 7u3
  14. Perl 5.14.2
  15. PHP 5.4.4
  16. PostgreSQL 9.1
  17. Python 2.7.3 y 3.2.3
  18. Samba 3.6.6
  19. Tomcat 6.0.35 y 7.0.28
  20. Xen Hypervisor 4.1.4
  21. Xfce 4.8
  22. X.Org 7.7

Descargar Debian 7

Debian proporciona todos los paquetes en CD / DVD, imágenes vivas y el tamaño total es alrededor de 32GB+ para todos los archivos de medios. Sólo necesitas descargar el primer CD / DVD e instalar el sistema base. Una vez descargado, utiliza el internet para instalar cualquier paquete.

Debian Linux 7 Versión de 32 bit vs 64 bit

  • Para casi todas las computadoras utiliza la versión de 32 bit. Por ejemplo la mayoría de equipos con procesadores Intel/AMD.
  • Elige la versiómn de 64 bits para tomar ventaja de computadoras basadas en la arquitectura AMD64 o EM64T (por ejemplo, Athlon64, Opteron, EM64T Xeon, Core 2 duo).
  • Puedes tratar de iniciar Debian como un sistema “vivo” desde un CD, DVD o USB sin instalar algún archivo en la computadora. Cuando te sientas listo, puedes ejecutar el instalador incluido.

Descargar Debian 7 CD ISO

Hay un total de 8 imágenes ISO, sugiero las siguientes:

Descargar imágenes DVD de Debian

Hay un total de 3 imágenes para DVD:

 

Descargar imágenes de CD y DVD de Debian con BitTorrent

Puedes necesitar utilizar un cliente Linux BitTorrent client tal como Deluge para obtener las imágenes de CD o DVD:

¿Como actualizo a Debian v7 por medio de internet?

Puedes actualizar desde Debian 6.x.x a 7.0.x simply following these instructions.

Lista de sitios espejo para descargar Debian Linux 7

Revisa la lista de sitios espejos para descargar Debian y la página de la versión para mayor información.

FIDO Alliance: Identificándonos sin Contraseña

image

Lo que es seguro es que ninguna contraseña es segura. Siempre habrá modo de romper una contraseña, de alguna u otra forma, incluso esas super organizaciones militares super secretas se siguen rompiendo la cabeza para encontrar una forma de asegurar lo que sea que tienen almacenado.

Sin ir a esos extremos, los passwords que utilizamos dependen siempre de lo que pensemos que es seguro y eso no es tan seguro, por eso es que diversas empresas de tecnología como Google, Lenovo y Paypal se han asociado en la FIDO Alliance, un sistema para identificarnos sin necesidad de una contraseña.

¿Cómo podríamos identificarnos sin una contraseña? Primero, FIDO se propone superar la falta de interoperabilidad entre los diversos dispositivos que utilizamos, que son una de las causas de la dificultad para crear y recordar múltiples nombres de usuarios y contraseñas.

La solución de FIDO consiste en varias opciones e incluyen reconocimiento facial, retinal y de voz a través de webcams y micrófonos estándar, contraseñas que se usan una sola vez y se cambian automáticamente, y tecnologías más moderna como una llave física, que debe conectarse por USB a la computadora antes de permitirnos el acceso, y la llamada “comunicación de campo corto” que es capaz de detectar las señales en un radio de un metro.

HIW

¿Y dónde estaría entonces tu información de autentificación? La sugerencia de Google es que los usuarios lleven puesto un anillo y dentro de él un chip requerido para identificarse. FIDO es compatible con una amplia variedad de dispositivos de seguridad por lo que la idea es no estar atado a un solo proveedor. De todas maneras la decisión final la tienen los usuarios y organizaciones que escogen los dispositivos de seguridad que más se ajusten a sus necesidades.

Como Escribir una Chrome App para tu Sitio Web en 5 minutos

Parece dificil pero en realidad es muy fácil escribir una aplicación para Chrome en menos de 5 minutos. Vamos a crear una simple Chrome App que lo que hace es agregar un ícono en la página de Nueva Pestaña de Chrome, y que al hacer clic en el ícono nos lleve a nuestra página. Es básicamente un marcador.

También como ejemplo vamos a ver como se construye una extensión para Chrome, la cual ofrece más funcionalidad, desde ella se puede buscar en un sitio web determinado o mirar las publicaciones más recientes. La extensión tampoco demora en hacerse.

Chrome es ahora uno de los navegadores más populares y esto tiene algo de sentido para tener alguna clase de presencia en la Chrome Store. Afortunadamente, como vamos a ver, necesitas pocos conocimientos de HTML, CSS y Javascript para crear una Chrome App.

Como Crear una Chrome App para tu Sitio Web

Es fácil. Descarga el archivo chrome-app.zip en tu escritorio, extrae los archivos y abre el archivo manifest.json file en el Bloc de Notas o cualquier editor de textos. Necesitas hacer unos cuantos cambios al archivo.

Agrega el nombre de tu sitio web en la línea número 2, pon una pequeña descripción del mismo en la línea 3 (menos de 132 caracteres) y reemplazar www.webwindowslinux.com en las líneas 5 y 7 con la URL de tu sitio web. Asegúrate que eres el propietario de esos sitios web y que has verificado la propiedad utilizando Google Webmaster Tools.

image

Guarda el archivo manifest.json. Ahora crea una imagen de 128×128 pixeles con el logo de tu sitio web (puedes utilizar MS Paint) y guardar el archivo con el nombre icon.png en la misma carpeta donde está el archivo manifest.json. Para ahorrar tiempo, puedes utilizar el archivo de ejemplo incluido.

Como Publicar tu Web App en la Chrome Store

Nuestra primera Chrome app está ahora lista y necesitamos publicarla en la Chrome Store. Crea un nuevo archivo zip con los archivos icon.png y manifest.json.

Luego ve al Chrome Dashboard y sube tu archivo zip. En la siguiente pantalla, elige una categoría para tu App (para tu sitio web puedes elegir Noticias y Tiempo => Cobertura informativa), agrega una descripción detallada (lo cual ayuda en SEO), algunas capturas de pantalla, elige un idioma por defecto y publica tu app. Eso es todo.

Necesitas pagar una tarifa de registro única de $5 a Google utilizando Google Wallet para activar tu cuenta de desarrollador. Esto es opcional si estás desarrollando una Chrome app /extension para tu instalación local de Chrome y no deseas publicar la aplicación en la Chrome web store.

Como crear una Chrome Extension para tu sitio web

Escribir una extensión básica de Chrome para tu sitio web es igual de sencillo.

Descarga el ejemplo chrome-extension.zip y extrae el contenido. Cambia el archivo manifest.json para incluir el nombre de tu extensión y la descripción.

image

Luego abre el archivo webwindowslinux.js e incluye la URL de tu feed RSS.

image

Pon todos los archivos en un archivo zip y subelos a tu Chrome Dashboard. Agrega la metadata apropiada, y dentro de algunos minutos, tu extensión estará funcionando en la Chrome store en todo el mundo.

Las Placas Base Más Caras del Mundo

supermicro-x7qce

A continuación la lista de las placas madre, motherboards o placas base más caras del mundo:

Para datacenters:

Supermicro X7QCE (24 FB-DIMM DDR2 memory slot, 4 x Socket 604 processor) $1,079

Para servidores o estaciones de trabajo de alto nivel:

Tyan Thunder n4250QE S4985G3NR-SI (16 DDR2, 4 PCIe, 4 Socket F processor) $1,171.50

Para propósitos especiales:

MSI Computer MSI Big Bang Xpower II (Military Class 3 components) $950

Para HPC/High Density:

ASUS Z9PH-D16/FDR (16 DDR3 memory slot, 8 SATA port) $870

Para los jugadores:

ASUS Rampage IV Extreme LGA 2011 Intel X79 $550

Fuentes:

http://www.costcentral.com/proddetail/SU…
http://www.costcentral.com/proddetail/Ty…
http://www.costcentral.com/proddetail/MS…
http://www.costcentral.com/proddetail/AS…
http://www.amazon.com/Rampage-IV-Extreme…

¿Porqué Falla el Internet en mi Computadora u Ordenador?

Este es un problema frecuente, fácilmente encuentras una persona que tiene problemas con su conexión a WiFi. Ahora me han preguntando que tienen ese problema y pasa cuando la computadora sale del estado de suspensión, Windows comunica que hay un problema en la conexión y que no se puede solucionar, lo que se hace simplemente es reiniciar el ordenador para que vuelva a funcionar. Entonces vuelve a funcionar con normalidad ¿hay alguna solución para que no tenga que estar siempre reiniciando el ordenador?

Lo primero que hay que hacer es conectarse con otra computadora o con un móvil o una tablet para comprobar si el problema es la conexión WiFi o el problema es la computadora.

Si el problema es el router contacta con la empresa de la línea que tengas contratada, y si el problema es la computadora o el ordenador pueden ser varias cosas:

  • Posiblemente tengas un virus
  • Problema de espacio en disco
  • La tarjeta de red está fallando (configuración o físicamente)

Entonces:

  • Puede que tengas que hacer limpieza en el ordenador con un antivirus
  • Desfragmentar el disco duro o liberar el espacio, es sencillo.
  • Verificar o resetear la configuración de la tarjeta de red
  • Reemplazar la tarjeta de red

Si sospechas de la tarjeta de red:

Ve a Equipo, Propiedades , Administrador de dispositivos, ahí buscas tu red WiFi, haces clic con el botón derecho y vas a la pestaña del Administrador de Energía, y desactivas la casilla Permitir Apagar el Dispositivo, es probable que cuando se suspenda el equipo la tarjeta se apaga, y sólo se vuelve a encender cuando lo apagas y vuelves a encender el equipo.

Recientes

Ultimos 3 en Visual Basic & Sql Server

Ultimos 3 en Sistemico en Apuros