Evento en Coruña sobre Visual Studio Team System

Bueno como nos contaba Unai ayer el 9 de octubre hay un evento en Coruña sobre Team Sytem, el evento lo impartirán Álvaro Rodríguez y Unai Zorrilla.


La agenda es la siguiente:


09:30 Registro


10:00 Bienvenida



  • Introducción a Visual Studio Team System.Gestión del Ciclo de Vida del Desarrollo de Software.

  • Introducción a Visual Studio Team System (VSTS).

  • Utilización de las herramientas de VSTS a través de múltiples Roles.

14:00 Despedida y cierre


14:00  Cierre de Seminario


Os podéis registrar aquí.


Espero veros en el evento [;)], seguro que nos cuenten muchas cosas interesantes Álvaro y Unai.

Personalizando las aplicaciones Web (II)

En el post anterior publiqué la teoría sobre los proveedores de autenticación, autorización y personalización. Y hoy toca algo práctico, para ello personalizaremos los proveedores predeterminados, aprenderemos a usar los controles «inicio de sesión» y usaremos la API que ASP.NET nos provee.

¿Dónde y cómo se configuran los proveedores?

Existen diferentes formas de uso de un proveedor, las opciones son las siguientes:

  • Uso del proveedor por defecto
  • Configurar el proveedor por defecto
  • Crear nuestro propio proveedor heredando de su clase base

ASP.NET crea su propia base de datos, se trata de la base de datos ASPNETDB.MDF, dentro de la carpeta de ASP.NET App_Data. Puede ver las tablas de esta base de datos en la siguiente figura. Por defecto usa el enlace dinámico de SQL Express. Podríamos copiar las tablas y procedimientos almacenados de la base de datos de ASP.NET y simplemente cambiarle la cadena de conexión para que se dirija a nuestra

En nuestro ejemplo configuraremos el proveedor por defecto, está configuración se debe hacer en el archivo Web.Config, siga los siguientes pasos:

1. Establezca el modo de autenticación como Forms, para ello introduzca en el nodo System.Web el siguiente fuente:

<authentication mode="Forms" />

De forma predeterminada la página donde el usuario debe ingresar las credenciales es Login.aspx, para cambiar eso debemos ampliar el nodo autentication como se muestra en el siguiente fuente:

<authentication mode="Forms"> <forms loginUrl="IngresarCredenciales.aspx" defaultUrl="Inicio.aspx" /> </authentication>

2. Para configurar el MemberShip debemos eliminar el proveedor por defecto y luego añadir el nuestro configurado para ello introduzca en System.Web el siguiente fuente:

<membership> <providers> <remove name="AspNetSqlMemberShipProvider"/> <add name="AspNetSqlMemberShipProvider" type="System.Web.Security.SqlMemberShipProvider, System.Web, Version=2.0.0.0, Culture=Neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="LocalSqlServer" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" applicationName="/Proveedores" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" passwordStrengthRegularExpression="" /> </providers> </membership>

3. Para configurar RoleProvider agregue el siguiente fuente en el nodo System.Web:

<roleManager> <providers> <remove name="AspNetSqlRoleProvider"/> <add name="AspNetSqlRoleProvider" type="System.Web.Securty.RoleProvider, System.Web, Version=2.0.0.0, Culture=Neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="LocalSqlServer" ApplicationName="/Proveedores" /> </providers> </roleManager>

4. Para configurar el Profile agregue el siguiente fuente.

<profile> <providers> <remove name="AspNetSqlProfileProvider"/> <add name="AspNetProfileProvider" type="System.Web.Profile.SqlProfileProvider, System.Web, Version=2.0.0.0, Culture=Neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="LocalSqlServer" ApplicationName="/Proveedores" /> </providers> </profile>

Es muy importante que establezcan un nombre de aplicación ya que de caso contrario puede generar problemas a la hora de la implementación del sitio.

Para establecer las propiedades del profile debe añadir un código análogo al siguiente fuente en el nodo profile que acaba de añadir.

<properties> <add name="NombreDeLaPropiedadString" type="System.String" /> <add name="NombreDeLaPorpiedadInteger" type="System.Int32"/> </properties>

Controles “Inicio de sesión

Los controles “inicio de sesión” son aquellos que usan la API de los proveedores en el Visual Studio los puede encontrar en el grupo Inicio de sesión como se muestra en la siguiente figura:

Los más importantes son:

Login: Con este control puede identificar a un usuario. Después de identificarse usará el parámetro ReturnUrl para devolver al usuario a la página donde estaba navegado. Su aspecto se muestra en la siguiente figura:

LoginView: Contiene diferentes vistas, para usuarios anónimos, identificados y para diferentes roles. Su aspecto lo podemos ver en la siguiente figura:

Como se muestra en la siguiente figura desde el panel de tareas comunes puede seleccionar cada vista. Este control permite una sencilla personalización del sitio dependiendo del rol que tenga el usuario.

LoginStatus: Se trata de un LinkButton, cuando el usuario no ha iniciado sesión permite ir a la página de acceso para poder iniciar sesión y en caso haber iniciado sesión nos permite cerrarla. Su aspecto lo muestra en la siguiente figura:

LoginName: Si el usuario ha iniciado sesión se muestra una cadena donde se sustituye la cadena {0} por el nombre de usuario. El que hemos usado para el ejemplo lo puede ver en la siguiente figura:

El resto de controles (PasswordRecovery, CreateUserWizard y ChangePassword) sirve para la gestión de las credenciales del usuario, recuperar la contraseña crear un usuario y cambiar la contraseña respectivamente.

Usando la API, MemberShip, Profile y Roles

Los controles antes citados, usan internamente la API de ASP.NET, se trata de tres clases que gracias a sus métodos compartidos puede gestionar con código los recursos y la personalización de nuestro sitio.

La case MemberShip, además de permitirle crear, eliminar y actualizar a los usuarios, le permite también consultarlos obteniéndolos con diferentes métodos, ya sea obteniendo una colección con todos los usuarios, obteniéndolo por el email o simplemente con el nombre de usuario.

Entre sus métodos los más interesantes son:

  • Membership.GeneratePassword([Número de caracteres], [Número de caracteres no numéricos]): Genera una contraseña, de hasta 128 caracteres, aleatoria.
  • Membership.GetNumberOfUsersOnline(): Devuelve el número de usuarios que han iniciado sesión que hay en ese momento.

El resto o son para obtener usuarios, validarlos o gestionarlos.

La clase Roles nos permite crear, eliminar, eliminar y obtener o agregar usuarios a un rol, además de los métodos para crear, eliminar roles y obtener o agregar usuarios a un rol, no tiene ningún método interesante.

Por último la clase Profile nos permite establecer y obtener las propiedades del usuario actual, además, nos permite, con el método GetProfile(), obtener el profile de otro usuario.

Puede obtener o establecer una propiedad como se muestra en el siguiente fuente (las propiedades son las establecidas en el Web.Config anteriormente).

Profile.NombreDeLaPropiedadString = "StringValue" Profile.NombreDeLaPorpiedadInteger = 5 Profile.Save()

Además con la clase Profile puede obtener el Profile de otro usuario como puede ver en el siguiente fuente:

Profile.GetProfile("Usuario").NombreDeLaPropiedadString = "StringValue" Profile.GetProfile("Usuario").NombreDeLaPorpiedadInteger = 5 Profile.Save()

Conclusión:

A pesar de que en el post anterior os dije que este trataría de la configuración de los proveedores y de los controles, he añadido la API debido a que en el próximo post quiero poner completo lo referente a la aplicacion de ASP.NET y si incluyese la API quedaría un post demasiado extenso, así que lo incluí en este.

El próximo tratará la configuración de la aplicación de ASP.NET y el uso para permitir el acceso a los usuarios o roles, dejando para un último mini-post la personalización con temas y el profile.

Personalizando las aplicaciones Web (I)

En esta serie de posts se explicará como configurar y usar los proveedores de ASP.NET 2.0 encargados de la autenticación, autorización y personalización usándolos posteriormente para la personalización de las aplicaciones usando los controles “inicio de sesión” y la API de estos proveedores. Con la versión 2.0 nos podemos ahorrar muchas líneas de código con respecto a las 1.x.

¿Qué son los proveedores de ASP.NET 2.0?

Los proveedores de ASP.NET 2.0 proporcionan al programador una base para el desarrollo de la personalización del sitio, además existen otros proveedores, como por ejemplo para la monitorización, eventos, etc. Pero en esta serie de post trataré solo los proveedores de Membership, Roles y Profile.

Prácticamente todos las aplicaciones Web cumplen la siguiente estructura:

  • Página inicial o de entrada
  • Páginas de acceso exclusivo a usuarios
  • Página de administración

Antes de ASP.NET 2.0 para controlar el acceso y las acciones el programador debía desarrollar todo el sistema desde cero. Pero ahora todo este sistema nos lo proporciona el propio Framework en forma de proveedores.

A parte de los proveedores, nos proporciona una API que es totalmente trasparente para el proveedor seleccionado, por lo que la capa de datos queda totalmente separada del código.

En caso de haber creado nuestro propio sistema podemos crear un proveedor para que la nueva API funcione en nuestra aplicación.

Antes de empezar con los proveedores vamos a dejar bien claros los conceptos de autenticación y autorización, siempre viene bien recordar estos dos conceptos, que normalmente son muy confundidos.

La autenticación Forms

La autenticación es la acción de identificar a un usuario en el sistema.

La autenticación Forms es tipo de autenticación, se basa en almacenar las credenciales del usuario para su posterior identificación. Las credenciales podrán ser guardadas tanto en una base de datos, como en el directorio activo o cualquier otro sistema de almacenamiento alternativo.

Autorización de acceso

Es la acción de autorizar a un usuario el acceso a los recursos.

Hay tres tipos de usuarios:

  • Anónimo: Es aquel que aún no se han identificado en el sistema
  • Identificado: Usuario que ya se ha identificado
  • Ejerciendo un rol: Tiene establecido un rol o, como Microsoft ha traducido al español, función. Como puede ser la de administrador

¿Cuáles son los proveedores que vamos a ver?

Los proveedores que vamos a ver en estos post son:

  • Membership: Gestiona las credenciales del usuario. Permite la creación, eliminación y actualización de los usuarios
  • Roles: Establece funciones a los usuarios para la futura autorización de los recursos
  • Profile: Gestiona las propiedades de los usuarios

Además existen otros proveedores como el de monitorización, eventos, navegación, etc.

Conclusión

Este primer post de la serie es el que más teoría contiene y mañana personalizaremos los proveedores predeterminados y veremos cuales son los controles de «Inicio de sesión».

Nuevo foro sobre ASP.NET Ajax Extension

En en los foros de geeks.ms acabamos de incluir un nuevo foro, se llama ASP.NET Ajax Extension.


Bueno, como su nombre indica, podéis hablar de ASP.NET Ajax Extension (Code named «Atlas»), otros componentes Ajax para ASP.NET, así como el soporte nativo de ASP.NET para los Callbacks, otros Frameworks, etc. En definitiva todo lo que se os ocurra [:P]


Podéis acceder al foro en la siguiente dirección:


http://geeks.ms/forums/124/ShowForum.aspx


Estaré encantado de responder a cualquier duda que tengáis [:)]


Un saludo a todos [;)]


Eugenio Estrada Csáký

Mejorar el rendimiento en los proyectos de Visual Basic 2005

Si desarrollamos una solución grande con Visual Basic 2005 podemos sufrir diferentes problemas de rendimiento. Entre estos problemas nos encontramos retardo al generar o volver a generar, demasiado uso de la CPU (por encima del 50%), respuesta del editor o del intellisense, entre otros.


Para optimizar el rendimiento de nuestro editor simplemente debemos crear un valor en el registro.


Es recomendable que haga una copia de seguridad antes de modificar el registro.


Para poder corregir esto simplemente debemos ir al nodo:


HKEY_CURRENT_USERSoftwareMicrosoftVisualStudio8.0VB Editor

 

Y una vez ahí crear un DWord llamado OptimizePDB con el valor 1.

 

Podéis leer la noticia en español en el siguiente link para quien tenga problemas con el inglés:

 


 

Y la noticia completa en inglés:

 


 

Saludos y espero que os sea útil [:)]

 

Tengo que agradecer a Jairo por darme a conocer esta noticia [;)]

Novedades sobre ASP.NET 2.0 Ajax Extension

Bueno, como he dicho esta mañana, contaba hoy con nuevas noticias sobre ASP.NET 2.0 Ajax Extenxion y así es y aquí os las traigo.


Primero, es muy probable que el mes que viene se haga publica la beta 1, esta beta traerá numerosos cambios en el Microsoft Ajax Library (Framework Client) con respecto a la última CTP.


ASP.NET Ajax Extension será una parte integral del .NET 3.5 (Orcas), hasta ese momento se podrá instalar como un componente externo en .NET 2.0 y .NET 3.0.


El ASP.NET Ajax Control Toolkit será un componente externo que se desarrolle sobre el ASP.NET Ajax Library (no será una parte integral de .NET).


Y por último algo que ya anuncié hace días hay nueva release de Atlas Control Toolkit y esta es la CTP de Septiembre (podéis ver la noticia completa en el blog de Scott Guthier). La podéis descargar en la página oficial del Control Toolkit.


Tan pronto tenga más noticias os las comento.

Último día de vacaciones…

Bueno… el verano se acaba y con el las vacaciones… Mañana, miércoles 20, se me acaban las vacaciones y a volver a estudiar. La verdad no me puedo quejar porque llevo desde el 23 de Junio de vacaciones. En mis tiempos libres continuaré buscando cosillas para contaros sobre ASP.NET y todo lo que encuentre sobre este mundillo.


Para finalizar las vacaciones espero tener hoy noticias sobre ASP.NET 2.0 Ajax Extension y en cuanto las tenga os las cuento [:)].


Siguiendo con el tema estrella, ASP.NET 2.0 Ajax Extension, tras la publicación de la beta 1 (probablemente en octubre) empezaré a contaros, a fondo, las novedades que trae y bueno… a explorarlo todo.


Espero seguir recibiedo vuestras consultas [;)].


Pd: Este no será mi último post en mi último día de vacaciones.

Demo de Animation Control (del Atlas Control Toolkit)

He hecho una demo del Animation Control del ASP.NET 2.0 Ajax Control Toolkit para que podáis ver que cosas podéis hacer con él.


La presentación hace lo siguiente:



  1. Redimensionamiento de un DIV
  2. Tres degradados de color del DIV
  3. Añade texto al DIV
  4. Difumina el DIV al final

La dirección es la siguiente, pero leed las indicaciones primero


http://www.vbprincipiantes.com/DemoAnimation.aspx


Indicaciones:



  1. Una vez que abráis el link estaros atentos al navegador, la animación no se repite a no ser que recarguéis el navegador.
  2. Con algunos navegadores no se ve la animación completa (con las versiones actuales de IE y FF funciona, en cambio con la 2.0 Beta 1 de FF no).

Si queréis saber el código mandadme un email y os envío por correo la página con las indicaciones de instalación.


Por último comentaros algo muy importante, es muy probable que Octubre se publique la beta 1 de ASP.NET 2.0 Ajax Extension (antes Atlas).