En un artículo anterior vimos una pequeña introducción de los objetos en JavaScript en el que se mostraron algunas características esenciales de los objetos en sí mismos. Continuamos ahora hablando de objetos y profundizando un poco en algunos conceptos.
Como ya sabemos, en la programación orientada a objetos (POO) es habitual tratar con los conceptos de encapsulación, herencia y polimorfismo. Puede que haya autores, y por qué no, también lectores, que tengan sus reservas a la hora de considerar JavaScript como un lenguaje totalmente orientado a objetos. La intención de este artículo no es entrar en este tipo de polémicas, pero lo que si podemos considerar es que JavaScript, como hemos visto anteriormente, soporta objetos y hace una simulación muy personal de otros conceptos como clases o herencia.
JavaScript no tiene una notación formal de clase y rec...
[More]
Bueno, para terminar el año operativo de este blog que mejor que un artículo de los facilitos. No es cuestión ya en estas fechas de complicarse la vida. Jejeje...que disculpas me pongo ;-)
Vamos a implementar con ASP.NET MVC la funcionalidad mínima para que un sitio web sea privado a todos los usuario no registrados. Utilizaremos la autentificación de usuarios por formulario y veremos como podemos aprovechar parte del código de la plantilla de aplicación que viene por defecto cuando creamos un nuevo proyecto ASP.NET MVC. Por otra parte crearemos un filtro personalizado que será el encargado de gestionar que usuarios tienen acceso para ejecutar un controlador o método de acción, o lo que es lo mismo, que usuarios tienen permiso para visualizar una vista concreta.
Paso 1. Creamos un nuevo proyecto ASP.NET MVC de tipo Internet Application
Seguramente el lector ya iniciado conocerá de sobra que esta pla...
[More]
Los desarrolladores que venimos de lenguajes OO podemos encontrarnos con algunos detalles desconcertantes a la hora de trabajar con objetos JavaScript, dado que estos objetos difieren bastante de los conceptos que estamos acostumbrados a tratar. En primer lugar vamos a dar una definición más o menos formal y después veremos algunos ejemplos que explicarán mejor esta definición.
"Los objetos de JavaScript son colecciones de propiedades cada una con un nombre y un valor. Este valor puede ser otro objeto, por lo tanto, podemos decir también que los objetos JavaScript son contenedores para otros objetos JavaScript".
Crear objetos
En JavaScript no disponemos del concepto de clases, como tal, que nos permitan crear un contenedor o firma para nuestros objetos. En JavaScript los objetos se crean dinámicamente bajo demanda. Veamos unos ejemplos.
//Creamos un objeto Cliente var cliente = new Object();...
[More]
Con la llegada de JQuery a Visual Studio también llegó un archivo con la extensión vsdoc.js con toda la documentación necesaria para disfrutar de intellisense al escribir nuestro código cliente. Es algo muy sencillo, pero a veces estas cosas se pasan por alto.
Intellisense en páginas HTML
Si nos vemos en la obligación de escribir bloques de script en las propias páginas HTML, para disfrutar del intellisense de JQuery bastará con añadir una referencia al archivo de documentación con la extensión "vsdoc.js".
Como podemos apreciar en la imagen, al añadir la referencia al archivo mencionado, tenemos a nuestra disposición información sobre la función JQuery representada por el símbolo $.
Es importante mencionar dos aspectos. En primer lugar, cuando trabajemos en un proyecto ASP.NET MVC podemos vernos tentados de utilizar la siguiente sentencia.
<scrip...
[More]
Cuando formamos parte de un proyecto en el que participan varios desarrolladores, puede suceder si no se tiene una fuerte política de nombrado (desde luego algo poco usual) en las acciones y los métodos, que cada desarrollador elija el nombre que mejor le parezca en ese momento.
De esta forma en un mismo proyecto o solución, podemos encontrarnos para especificar acciones que conceptual y funcionalmente representan lo mismo sobre diferentes entidades, nombres como GetCustomerById, LoadProductById, DeleteProduct, UserDelete. De esta forma tendríamos URLs de navegación de esta forma:
/Customer/GetCustomerById
/Product/LoadProductById
/Product/DeleteProduct o /User/UserDelete
En mi opinión creo que este modo de proceder tiene algunas desventajas.
Como desventaja para nosotros, los que tenemos que picar código o leer el de otros compañeros, está el hecho de que sería más c&oa...
[More]