viernes, 13 de mayo de 2011

COMO RECONVERTIR A BRANCHES DE TFS2010 ELEMENTOS MIGRADOS DESDE TFS2008

Buenas,

cuando realizas un updagre o una migración desde Team Foundation Server 2008 hacia Team Foundation Server 2010, un escenario muy común es que las definiciones de Branching y Merging se respeten, pero no se apliquen las nuevas capacidades que posee TFS2010 para Branching y Merging.

Por ejemplo, si vemos las propiedades de los elementos migrados en esta definición de Source Control, veremos que existen relaciones de Branching entre las ramas, pero no se aplican las new features de Team Foundation Server 2010.



Para poder explotar las nuevas capacidades de TFS2010, tenemos que:

- Identificar la rama raíz en la jerarquía de Branching

- Desplegar el menú contextual y seleccionar la opción [Branching and Merging // Convert To Branch]





- Importante: la opción [Recursively perform this conversion on all folders previously branched from this folder] debe estar seleccionada



- Done. Una vez finalizado el proceso ya podremos aprovechar las nuevas capacidades de B&M de TFS2010.




Fuente: http://geeks.ms/blogs/elbruno/archive/2011/05/11/tfs2010-howto-reconvertir-a-branches-de-tfs2010-elementos-migrados-desde-tfs2008.aspx

lunes, 10 de noviembre de 2008

Pasar datos entre paginas web en ASP.NET

Aqui enumero los posibles metodos de pasaje de datos entre paginas ASP.NET ya sea en el cliente o en el mismo servidor.

Pero espero que este breve resumen sea util (al igual que los enlaces)

  1. Pasaje con Querystring
  2. Buscando en la coleccion Request.Form
  3. Utilizando cookies
  4. Leer mediante JS en la ventanas popup
  5. Con una propiedad public dentro de la pagina de origen
  6. Buscando el control dentro de PreviousPage
  7. Utilizando las variables de session
  8. Utilizar Context

OPCION 1: Pasaje con Querystring

El mas famoso y antiguo metodo, aqui ya sabes como debe y donde debe ir las variables... en la URL
Aqui tambien se podria armar con JS (=javascript) lo que quieras con tal de enviar por la URL a la otra pagina, por ejemplo si tienes una pelicula flash que deba enviar por enlaces a otra pagina en la url o si tienes que armar un enlace para que en la llamada a su pagina de destino incluya las variables. Mas info sobre QueryString
Tiene un limite para escribir ya que algunos navegadores no permiten mas que una cierta extension de url (y hay que pensar para navegadores mas antiguos)
Tambien hay metodos para encriptar nuestro querystring, que lo puedes investigar, aqui unos enlaces

OPCION 2: Buscando en coleccion Request.Form

Aqui tambien es casi parecido a como creamos paginas anteriormente.

La idea leer las key de la coleccion Request.Form, esto es conveniente cuando las paginas estan en aplicaciones web diferentes (sitios web separados)
Es un poco (solo un poco) mas seguro que enviar parametros por URL como el anterior metodo (Querystring) aqui las variables van en el encabezado HTTP, por consiguiente podremos enviar mas datos.
Mas info sobre Request.Form

OPCION 3: Utilizando cookies

Aqui podremos guardar pequeñas porciones (y muy pequeñas de informacion) de cadenas de texto, de echo ya lo venimos utilizando con la session de ASP.NET que se guarda por defecto en una cookie
hay que tener en cuenta que es un archivo en el cliente que lo guarda el navegador por un tiempo determinado y que es susceptible al borrado. Pero en algunas ocaciones es util
Mas info: Información general sobre las cookies en ASP.NET


OPCION 4: Leer mediante JS en ventanas popup

Para la pagina previa (padre) o para la hija (el popup open)
Esta tecnica es puro JS, mediante el cual podemos leer controles html en el padre y colocarlas en la pagina hija como viceversa.

Ejemplo: Asignando un valor a un control en la pagina padre (esto es javascript)

var miValor = window.opener.document.Form1.miTextbox.value;

//Otra forma
var miValor = window.opener.document.getByElementId(‘miTextbox’).value;

Ejemplo: Asignando un valor a un control a la pagina hija

//Abriendo  una ventana hija
var winHija;
winHija = window.open(...);

//Entonces
var nombre = winHija.document.form1.txtNombre.value;
//o
var nombre = winHija.document.getElementById("txtNombre").value;



OPCION 5: Con una propiedad public dentro de la pagina origen

Y tendrias algo asi en la pagina B:

Label1.Text = PreviousPage.CurrentCity 

Aqui un articulo de Sergio Tarrilo

- Pasando variables entre paginas web ASP.NET usando Cross Page Postback (por Sergio Tarrillo)

- Pasando Valores entre Paginas (por Francisco Javier Carbajosa)

(mira el primer enlace mas abajo. Cómo: Pasar valores entre páginas Web ASP.NET)



OPCION 6: Buscando el control dentro de PreviousPage

Aqui la "magia" que hay detras de esto es el Viewstate, el gran contenedor de casi todo y alli es que "viaja" los controles y su estado.
Por eso funciona solo si esta habilitado el viewstate en los controles que necesites recuperar, y ademas que el traspaso de pagina y pagina sea a traves de elementos normales mmm por ejemplo con un popup en JS no sirve este metodo.
Esto de guardar el estado lo hace solo los webcontrol, pero igualmente podremos utilizar este “Repositorio” para guardar algo serializable, ya que se guarda una cadena. Mas info: Cómo: Guardar valores en el estado de vista

Mas info sobre ViewState:

OPCION 7: Utilizando las variables session

Es comun escuchar: "Pon dentro de una variable de session y luego lo recuperas"
Bueno ... si no te queda otra hay que hacerlo (pero tampoco es colocar todos tus colecciones de objetos).. estas ocupando memoria del servidor. Mas info sobre Session
Ademas si es por cache hay metodos para realizarlo cache mas optimizados.
Lo malo: No tiene intellisense, ups! pero podrias encapsular, algo asi la idea:

Public Class MiSession
Public Shared Function MiObjeto() as MiClase
Dim obj as MiClase
Try
obj = Ctype(Session("miobj") , MiClase)
Catch ex as Exepcion
End Try
If obj Is Nothing Then
obj = new MiClase
Session("miobj") = obj
End if
return obj
End Function
End Class




OPCION 8: Utilizar Context

Aqui la pregunta es.. que es Context?
"(..)Almacena los valores específicos de solicitud de la aplicación para que se encuentre disponible desde cualquier parte del código que participa en el procesamiento de una solicitud(..)"
Al igual que el ViewState para guardar par de valores en una colecccion y recuperarlas mediante una clave (key) en cada peticion de la pagina este coleccion Context solo es valida para la solcitud (no perdura mas alla de esa peticion) , es decir no para uso exclusivo en el servidor, no va al cliente nada.
Un ejemplo:

Code Snippet

Dim Context As HttpContext
Context = HttpContext.Current
Context.Items.Add("miEjemplo", "UnEjemplo")
Server.Transfer("Pagina2.aspx")

En la otra pagina = Pagina2.aspx

Code Snippet

Dim Context As HttpContext
Context = HttpContext.Current
If Context.Items.Contains("miEjemplo") Then
Me.lblTest.Text = CType(Context.Items("miEjemplo").ToString, String)
'o tambien:
'Me.lblTest.Text = Context.Items("miEjemplo").ToString()
Else
Me.lblTest.Text = "No existe item myItem en el Contexto"
End If

Enlaces

Fuente del Artículo:
http://geeks.ms/blogs/fernandezja/archive/2008/10/21/pasar-datos-entre-paginas-web-en-asp-net.aspx

lunes, 6 de octubre de 2008

ADO.NET Entity Framework


ADO.NET Entity Framework

La semana pasada se lanzó desde Krasis Press el primer libro que se publica en el mundo, en cualquier lengua, sobre la nueva y esperada tecnología de acceso a datos de Microsoft: Entity Framework.

¡Y qué libro! La verdad es que ha quedado una obra alucinante, escrita por tres cracks de este tema que llevan trabajando con las betas de esta tecnología, y en proyectos reales, desde hace muchos meses. Unai Zorrilla, Octavio Hernández y Eduardo Quintás.

A Unai y a Octavio ya los conocéis porque aparte de ser conocidos articulistas y MVP, son autores de la casa y autores de los libros "Modelando procesos de negocio con Workflow foundation" y "C# 3.0 y LINQ" respectivamente.

Los primeros libros sobre el tema en inglés saldrán para finales de año o principios del que viene.

La obra consta de seis capítulos más cinco apéndices, que cubren ampliamente la gran mayoría de las características de Entity Framework:

• El libro comienza con un capítulo de introducción a la tecnología, para luego centrarse en la creación de modelos conceptuales de entidades, que describe desde los apartados más básicos hasta las posibilidades más avanzadas por medio de ejemplos claros y prácticos.

• Los siguientes capítulos introducen al lector en las distintas posibilidades que la tecnología ofrece para consultar y actualizar los datos de un modelo conceptual, todo ello de una forma ordenada, tal y como se fueron concibiendo los distintos subsistemas que componen Entity Framework, y explicando las ventajas e inconvenientes de cada uno de ellos.

• Para finalizar, el último capítulo del libro ofrece una introducción a ADO.NET Data Services, una aplicación práctica de Entity Framework desarrollada por Microsoft para exponer la infraestructura que conforma esta tecnología a través de servicios REST.

Puedes descargarte el índice completo con parte del primer capítulo y los detalles de la portada y contraportada desde aquí. También puedes comprarlo desde la misma página. Los gastos de envío por mensajero van incluidos en el precio.

¡Qué lo disfrutes!


Fuente del Artículo:
http://geeks.ms/blogs/jalarcon/archive/2008/10/06/ado-net-entity-framework-primer-libro-en-el-mundo-sobre-el-tema.aspx


martes, 9 de septiembre de 2008

Novedades (SQL Server 2008)

En Microsoft SQL Server 2008, los siguientes componentes tienen características nuevas o mejoradas. Además, otras tecnologías tienen características que se integran en gran medida con SQL Server 2008.

Componentes de SQL Server

Novedades de la instalación de SQL Server

SQL Server 2008 tiene una nueva arquitectura del programa de instalación para los escenarios siguientes: instalación, actualización, mantenimiento, agrupación en clústeres de conmutación por error e instalaciones desde el símbolo del sistema.

Novedades (motor de base de datos)

Esta última versión del SQL Server Database Engine (Motor de base de datos de SQL Server) incluye nuevas características y mejoras que aumentan la eficacia y la productividad de los arquitectos, los programadores y los administradores que diseñan, desarrollan y mantienen sistemas de almacenamiento de datos.

Novedades (Analysis Services - Base de datos multidimensional)
  • Mejoras en el diseño de agregaciones.
  • Mejoras en el diseño de cubos.
  • Mejoras en el diseño de dimensiones.
  • Copia de seguridad y restauración mejoradas.
  • Extensiones de personalización de Analysis Services.
  • Nueva ubicación de los ejemplos.
Novedades (Analysis Services - Minería de datos)

La versión más reciente de Microsoft SQL Server Analysis Services presenta características nuevas y mejoras.
  • Creación de conjuntos de pruebas de exclusión.
  • Filtrar según casos de modelos.
  • Validación cruzada de varios modelos de minería.
  • Compatibilidad con complementos de minería de datos para Office 2007.
  • Mejoras del algoritmo de serie temporal de Microsoft.
  • Obtención de detalles para casos y columnas de estructura.
  • Uso de alias en columnas de un modelo de minería de datos.
  • Consultar los conjuntos de filas de esquema de minería de datos.
  • Nueva ubicación de los ejemplos.
  • Instalación simultánea con SQL Server 2005 Analysis Services.
  • Realizar una copia de seguridad y restaurar las bases de datos de Analysis Services.
Novedades (Integration Services)

Esta versión más reciente de Microsoft Integration Services presenta nuevas características y mejoras para la instalación, componentes, administración de datos, rendimiento y solución de problemas. Estas características nuevas y mejoras aumentan la eficacia y productividad de los programadores, los administradores y los trabajadores del conocimiento que desarrollan soluciones de transformación de datos.
  • Nuevas características y mejoras por área.
  • Características de instalación.
  • Mejoras de los componentes.
  • Mejoras en la administración de datos.
  • Mejoras en el rendimiento y la solución de problemas.
Novedades (Replicación)

SQL Server 2008 incluye una serie de mejoras y características nuevas relacionadas con la replicación.
  • Replicación transaccional punto a punto.
  • Monitor de replicación.
  • Mejora de la compatibilidad de la replicación transaccional con las tablas con particiones.
Novedades (Reporting Services)

Microsoft SQL Server 2008 Reporting Services (SSRS) presenta numerosas características y mejoras nuevas que aumentan las capacidades de generación de informes de los desarrolladores de soluciones de informes.
  • Novedades en la creación de informes.
  • Novedades en el procesamiento y la representación de informes.
  • Novedades en las herramientas y la arquitectura del servidor.
  • Novedades en la programación de informes.
Novedades (Service Broker)

Esta versión de SQL Server Service Broker incluye lo siguiente:

  • Compatibilidad con prioridades de conversación
  • Una nueva utilidad de símbolo del sistema para diagnosticar configuraciones y conversaciones de Service Broker
  • Un nuevo objeto y unos nuevos contadores de rendimiento
  • Compatibilidad con Service Broker en SQL Server Management Studio
  • Nuevos tutoriales
Otras tecnologías

Microsoft Sync Framework

Microsoft Sync Framework es una completa plataforma de sincronización que habilita la colaboración y el acceso sin conexión para las aplicaciones, servicios y dispositivos. Ofrece tecnologías y herramientas que habilitan la movilidad, el uso compartido y la capacidad necesaria para poner los datos fuera de conexión. Mediante Sync Framework, los programadores pueden generar ecosistemas de sincronización que integran cualquier aplicación con cualquier dato de cualquier almacén que use un protocolo a través de una red.

Sync Framework está formado por las siguientes tecnologías, las tres primeras se pueden instalar con SQL Server 2008:

  • Sync Services for ADO.NET se puede utilizar para sincronizar bases de datos en escenarios sin conexión y de colaboración.
  • Sync Services for ADO.NET puede utilizar los componentes básicos de Sync Framework con el fin de sincronizar las bases de datos y también se pueden utilizar para crear proveedores de sincronización para otros tipos de almacenes de datos.
  • Sync Services para FeedSync se puede utilizar para sincronizar fuentes RSS y Atom con los datos de un almacén local.
  • Sync Services for File Systems se puede utilizar para sincronizar los archivos y carpetas en un sistema de archivos.
  • Metadata Storage Service se puede utilizar para almacenar los metadatos de sincronización en SQL Server Compact.

El resto de este tema proporciona información general de Sync Services for ADO.NET e incluye una comparación con otras tecnologías de Microsoft. Para obtener la documentación completa de Sync Services for ADO.NET y Sync Framework, visite Microsoft Sync Framework Developer Center.

Escenario sin conexión de Sync Services

Escenario de colaboración de Sync Services

SQL Server Compact

SQL Server Compact permite crear bases de datos compactas que se pueden implementar en equipos de escritorio y dispositivos inteligentes. SQL Server Compact comparte un modelo de programación común con otras versiones de SQL Server para desarrollar tanto aplicaciones administradas como nativas. SQL Server Compact proporciona funcionalidad de bases de datos relacionales: un almacén de datos sólido, un procesador de consultas de optimización y una conectividad confiable y escalable.

Visual Studio proporciona compatibilidad para el desarrollo con SQL Server Compact. SQL Server proporciona compatibilidad para la administración de bases de datos. Para tener acceso a las bases de datos de SQL Server Compact almacenadas en un dispositivo inteligente o en un equipo de escritorio, puede usar SQL Server Management Studio en SQL Server. Puede crear aplicaciones administradas utilizando Microsoft Visual Basic o Visual C#, o puede utilizar Visual C++ para crear aplicaciones nativas.

jueves, 21 de agosto de 2008

Como consumir un servicio web que tiene certificados digitales desde una aplicacion web.

Existen muchas formas pero básicamente dos son rápidas y eficaces y dependen de la tecnología que se esté usando para invocar los servicios web. (Es decir como los está llamando), si está usando framework 2.0 lo mejor es usar Web Services Enhancements (WSE) 3.0 for Microsoft .NET, una serie de extensiones para Visual Studio que implementan mejoras significativas en seguridad, gestión de archivos como parte del mensaje, etc. Con WSE* puede usar muchas de las características más avanzadas de Web Services y hacen parte de los estándares avalados por OASIS y otras sugerencias de Microsoft, incluidos los certificados digitales, mas información de esta técnica aquí. Este complemento es gratuito, no hay que pagar nada por él y se puede descargar del sitio de Microsoft haciendo clic aquí.

Ahora si está usando el framework 3.0 puede utilizar Windows Communication Foundation (WCF) que trae incluido desde el core el soporte para esquemas de seguridad como el que menciona, Microsoft ha desarrollado una guía de mejores prácticas de seguridad para servicios de WCF. Y una guía muy completa de casos practicos (how-to) y escenarios que se puede descargar de forma gratuita haciendo clic aquí.


Fuente del Artículo:
http://geeks.ms/blogs/jkpelaez/archive/2008/08/20/como-consumir-un-servicio-web-que-tiene-certificados-digitales-desde-una-aplicacion-web.aspx

lunes, 18 de agosto de 2008

Consolidación de Scripts para mejora de rendimiento

Una de las mejoras sencillas y poco llamativas en primera instancia que ha incluido el Service Pack 1 de .NET 3.5 y Visual Studio 2008 es la consolidación de Scripts. Sin embargo es algo interesante que conviene conocer.

Se trata básicamente de evitar que el navegador tenga que descargar multitud de pequeños archivos de Script desde el servidor, sustituyéndolos de manera automática por una sola descarga combonada, que es más eficiente y rápida como demostraré enseguida.

Es la típica característica que va a pasar inadvertida para la mayoría de los programadores Web pero que es interesante, y por eso me ha apetecido contarla en detalle aquí. Para ello he desarrollado un ejemplo muy simple pero que da una idea de la utilidad de esta característica. En el siguiente vídeo muestro cómo funciona la consolidación de Scripts mediante las nuevas etiquetas CompositeScript. También muestro un control desconocido pero interesante y pensado para ayudarnos a trabajar con esta característica: el control ScriptReferenceProfiler.





Si no ves bien el vídeo pulsa aquí



Fuente del Artículo: http://www.jasoft.org/blog/PermaLink,guid,97f3be11-9306-46de-9a8e-b11c20b13de8.aspx