1er Podcast de Superneurona

Agrega esta liga en el i-tunes para descargar el podcast

http://feeds.feedburner.com/superneurona

Hoy he terminado la edición del Primer Podcast que realice en esta ocasión para presentar el mismo y platicarles de que va a tratar.

Adicionalmente hable de los Dev Days 2006 y también comente sobre el próximo evento de la comunidad.

Pero mejor escúchenlo y me comentan que les pareció.

Saludos

http://feeds.feedburner.com/superneurona

Dev Days 2006

Hoy tuve la oportunidad de estar presente en Dev Days 2006. La verdad he de comentarles que el evento estuvo bastante bueno. En todos los temas la presentación estuvo llena de información técnica, lo cual lo hizo aun más interesante.

El tema que mas me llamo la atención fue el de Win FX. Si bien ya había tenido contacto con información al respecto. Me quede asombrado de lo fácil que será en el futuro armar herramientas visualmente agradables que además cuenten con la funcionalidad que es nuestro trabajo generar.

Win FX es la siguiente generación de API’s administradas que provee microsoft para facilitar algunas tareas que antes llevarían demasiado tiempo desarrollar o que por su complejidad seria incosteable realizar

Win FX esta formado de 3 partes principales:
*Windows Presentation Fundation
*Windows Comunication Fundation
*Windows WorkFlow Fundation

En próximos post les explicare de qué se trata cada uno a detalle.

Sobre este tema pueden encontrar más información en:
http://msdn.microsoft.com/winfx/

También pueden realizar algunas pruebas sobre el tema en:
http://msdn.microsoft.com/virtuallabs/wcf
http://msdn.microsoft.com/virtuallabs/windowsworkflows

Otro tema muy interesante fue el de Modelado de Amenizas y Programación segura donde se hablo de la manera en que se tiene que evaluar la seguridad al realizar tus desarrollos.

Sobre este tema pueden encontrar mas información en el blog del presentador en:
http://team.intellekt.ws/blogs/misael
Adicionalmente se hablo de la forma en la que el gobierno federal, en conjunto con Microsoft está trabajando por medio del modelo PROSOFT con el fin de crear una industria sólida de software en México.

Pero para que se empapen mas de tema que mejor que facilitarles muchas de las ligas de las que se trataron en el evento con el fin de que les sea fácil llegar a la información, y se documenten un poco mas sobre estos temas.

Les envió muchos saludos.

www.kuali.com.mx
www.software.com.mx
www.microsoft.com/partner/program
www.microsoft.com/partner/isv
www.microsoft.com/isvbuddy
www.ms-unidos.com

Seguridad en ASP.NET 2005

Hoy grabamos el último programa del pozo técnico. Y lo hicimos utilizando toda la tecnología a nuestro alcance. Carlos que es el dueño del changarro me invito para que platicáramos de este tema. Y pues la verdad nos quedo muy padre.

Para aquellos que no tengan la fortuna de conocer este espacio para desarrolladores lo pueden encontrar en http://pozotecnico.carlosmadrigal.com

En ese podcast hablamos de las razones por las que queremos utilizar seguridad.Y yo lo resumiría en lo siguiente, si no queremos que cualquiera entre a la información que estamos manejando necesitamos implementar un herramienta que nos brinde la posibilidad de limitar el acceso a nuestras aplicaciones.

Cuando hablo de seguridad en este articulo solo me voy a referir al concepto de Autenticación y Autorización. Ya que la seguridad es un tema mucho mas amplio. Que no podría ser abarcado en una sola entrada de un blog.

Hasta hace unos meses hablar de seguridad en una página web implicaba una de cuatro posibles soluciones.

1.- No te preocupabas por ella.

2.- Le encargabas el problema al IIS y a la seguridad basada en roles de windows.

3.- Programabas una y otra vez la seguridad cada que surgía la necesidad.

4.- Programabas tu seguridad a patita y de una u otra manera tratabas de reutilizar el código para no hacerlo una y otra vez

Fue entonces que se empezaron a crear patrones de aquellas cosas que se realizaban una y otra vez par crear la seguridad y es en la última versión del framework de .NET cuando Microsoft genera una clase abstracta que facilita la tarea a todos los programadores. En algunos casos ya algunos programadores habíamos hecho la tarea y teníamos algo similar.

Pero el hecho de que Microsoft haya generado una base para trabajar con la seguridad facilita las cosas sobre todo para aquellos que van empezando y que no han tenido que lidiar con este tema o inclusive para aquellos que han tenido que lidiar con el y sufrían una y otra vez con este tema.

La manera en que fue aplicado este patrón en la versión 2.0 de .NET es por medio del espacio de nombres system.Web.Security.Membership y entre las tareas que te permite hacer están las siguientes:

Crear usuarios

Validar si el usuario (Autentificación)

Cambiar passwords

Eliminar al usuario

Es importante mencionar que la clase Membership es la que te permite gestionar la seguridad, pero no trabaja de forma independiente, sino que aprovecha otras clases para realizar diversas actividades como son la clase MembershipUser, RoleProvider que se encargan de los usuarios y los roles respectivamente.

Entonces para realizar cada una de las funciones que mencione con anterioridad existen métodos que te permiten realizarlas. (Si no sabes que es un método revisa el artículo anterior). Te daré algunos ejemplos. Pero no son todos y como la lista es amplia. Puedes leer más de este tema en las ligas al final de este blog.

CREAR UN USUARIO es igual a usar el método

CreateUser (username, password, email, passwordQuestion,

passwordAnswer, isApproved, providerUserKey, status)

devuelve MembershipUser


VALIDAR EL USUARIO es igual a usar el método

ValidateUser (username, password)

devuelve verdadero o false


CAMBIAR PASSWORDS es igual a usar el método

ChangePassword(username,oldPassword, newPassword)

devuelve true o false


ELIMINAR AL USUARIO es igual a usar el método

DeleteUser(username, deleteAllRelatedData)

devuelve true o false

 

Y bueno para que sirve todo esto.

Pues que al final existen unos bellos objetos de arrastrar y soltar que puedes utilizar con Visual Studio 2005 que te permiten aprovechar todo lo anterior. Sin tener que escribir código adicional. Y lo que es mejor aún. Sin tener que escribir código a menos de que tu así lo decidas. Por lo tanto si quieres realizar una actividad adicional. Puedes utilizar los eventos que realizan los nuevos objetos para aplicar la funcionalidad.

Los nuevos objetos son:

Login

LoginView

PasswordRecovery

Login Status

LoginName

CreateUserWizard

Y con estos ahora la seguridad se reduce a unos cuantos sencillos pasos.

Y bueno para aquellos que seguro se preguntan como configuro este asunto.

Tienen que abrir el archivo de web.config que se encuentra en la carpeta raíz del proyecto y copian el siguiente código en XML no olvidando adecuar los parámetros que necesiten cambiar.



    
         
               connectionString="Data Source=MySqlServer;
  Initial Catalog=aspnetdb;
  Integrated Security=SSPI;" />

    

    name=".ASPXFORMSAUTH" /> 




   userIsOnlineTimeWindow="15"> 


         type="System.Web.Security.SqlMembershipProvider" 
   connectionStringName="MySqlConnection" 
   applicationName="MyApplication" 
   enablePasswordRetrieval="false" 
   enablePasswordReset="true" 
   requiresQuestionAndAnswer="true" 
   requiresUniqueEmail="true" 
   passwordFormat="Hashed" />



Para cuando lleguen a este paso, es necesario que creen la base de datos que utilizara la clase Membership para guardar los usuarios.

Para mas información sobre este tema pueden revisar el link siguiente:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpag2/html/paght000014.asp

En la liga anterior podrán encontrar un Paso a Paso de lo que tienen que hace para aplicar la seguridad.

Saludos

Actualización febrero 21: Paulo Arancibia nos hace llegar esta liga a un webcast que él hizo y cae como anillo al dedo con este tema

Muchas gracias Paulo

Aprende a hacer objetos YA

Muchos de los que me leen, no podrán creer la cantidad de personas que andan por el mundo presumiendo que son programadores y que no saben Orientación a Objetos.

Lo que es peor muchos de ellos están pidiendo trabajo el día de hoy sin comprender la importancia de este tema.

O peor aún que sin comprenderlo están seguros de poder realizarlo.

Tampoco les he de negar que me he topado en el camino con amigos que teniendo su título universitario en la mano, no serían capaces de armar ni el objeto más sencillo.

Pero he empezado este tema con un fin, que si andas por ahí buscando ser un mejor programador, te empapes de este tema.

Con el tiempo nos iremos elevando poco a poco, (sirve que voy juntando lectores en el camino) ya verán que llegara un momento en el cual las cosas se pondrán color de hormiga.

Iniciemos de una buena vez.

Para cuando me enseñaron programación orientada a objetos en la universidad yo ya llevaba 5 años programando en lenguaje estructurado. Empecé con un Atari utilizando Basic y poco a poco fui aprendiendo a programar.

En esas épocas el goto era muy utilizado y hacer desarrollos sencillos con muchas líneas de código era de lo más común.

Un día a alguien se le ocurrió que podíamos programar emulando la manera en que describimos las cosas a nuestro alrededor.

Y la forma que encontraron fue por medio de objetos.

Los objetos son un conjunto de propiedades, métodos y eventos. Así de sencillo.

Vamos a utilizar un ejemplo que la mayoría de nuestros lectores entenderá. LOS AUTOS.

¿Quién podría dudar que un Auto no es un objeto?. Y un objeto que en muchas ocasiones nos quita muy buena parte de nuestros ingresos. Pero más en serio.

Un auto tiene características que lo distinguen que llamaremos propiedades.

Dichas propiedades pueden ser el color, la marca, el modelo, el cilindraje, los caballos de fuerza.

También un auto tiene Métodos o actividades que puede realizar.

Por ejemplo un auto puede encenderse, apagarse, acelerar, frenar, etc…

Y como todo objeto un auto también tiene eventos. Que se disparan cuando sucede una situación con el mismo.

Como podrían ser los siguientes.

Al frenar, Al arrancar, Al acabarse la gasolina, Al Chocar, etc…

Por lo tanto podríamos describir este objeto de la siguiente manera, en programación cuando nos refiramos a los objetos en realidad nos referimos a ellos como clases, y esto es porque una clase es la abstracción de un objeto en particular.

Por ejemplo la clase Auto sería la abstracción de un objeto Golf, o de un Objeto Mercedes o un objeto BMW.

Todos estos objetos tienen características comunes que pueden ser descritas en un lugar, y esa abstracción que hagamos le llamaremos clase.

Un objeto seria en ejemplo concreto mientras que la clase seria una abstracción de dicho objeto

Pero no se preocupen, que si no le entendieron siempre tendrán este blog para volver a leerlo.

Para nombrar una clase necesitamos declararlo

public class Auto
{

}

Perfecto ya has declarado tu primera clase. Como sabrás todo aquello que va entre los corchetes, es parte de la clase auto.

Ahora vamos a describir el mismo y esto lo haremos con las propiedades.

‘Propiedades
Public sting Color
{
get
{}
set
{}
}

El comando get sirve para responder las peticiones cuando un algoritmo fuera de la clase desea saber que valor contiene dicha propiedad y el comando set sirve para asignarle un valor a la propiedad.

Los métodos son aquellas operaciones que deseamos permitir que realice la clase, en el caso del carro podría ser, encender y apagar. En el caso del brazo de un robot podría ser Moverse hacia arriba o hacia abajo

‘métodos
public Boolean Encender()
{
}
public bool Apagar()
{
}

Recuerden que dentro de los corchetes va el código que desean ejecutar.

Por último van los eventos, que son aquellas cosas que deseamos avisar al programa cuando suceden.

‘EVENTOS
public event EventHandler AlFrenar;
public event EventHandler AlArrancar;
public event EventHandler AlAcabarceLaGasolina;
public event EventHandler AlChocar;

Así es como finalmente quedaría, el esqueleto de una clase en C# y mas o menos igual en Visual Basic.

Se que aun me faltan muchas mas cosas por explicar pero creo que es suficiente por hoy.

Saludines y como diria bob ross felices trazos.

Bienvenidos a mi blog

Listo…

Esta es la primera entrada de mi blog y quiero aprovecharla para enviarles a todos ustedes un caluroso saludo desde la Ciudad de México.

El objetivo primordial de bloggear (si es asi como se le puede llamar a este acto comunitario de transmitir ideas) es para mi un acto en el cual los hago participe de ideas personales, las cuales no pretendo imponer, si no poner al juicio de los demas para que sean discutidas, aplaudidas o simplemente comentadas. COn el fin de crear ideas superiores que nos hagan mejores tanto a ustedes como a mi.

Sin mas sean bienvenidos y a bloggear.