lunes, 25 de agosto de 2008

Error mostrando reportes en el Team Site, cuando el Team Foundation Server es instalado en un servidor diferente al WSS

Cuando se tiene el siguiente escenario:
  • Team Foundation Server instalado en el servidor ServerA
  • Windows Sharepoint Services (WSS) instalado en el servidor ServerB
  • Reporting Services instalado en el servidor ServerC (o en ServerA o cualquier otro servidor diferente a ServerB)

Asumamos que el Uri donde se crea el sitio del Team Project usado por TFS, es http://ServerB/Sites

Si se crea un Team Project, que usa WSS 3.0 (puede funcionar si se usa WSS 2.0), y cuando se intenta ver algun reporte que usa Reporting Services en el sitio, se puede obtener el siguiente mensaje de error:

The following registry key is not set: HKLM\Software\Microsoft\VisualStudio\9.0\TeamFoundation\ReportServer\80\Sites for Uri /Sites/[ProjectName]/_layouts/tfsredirect.aspx?IsReport=1&ReportName=Remaining+Work

Esto es porque ServerB, donde esta instalado el WSS necesita conocer el Uri del Report Server y de esta forma, poder redirigir el reporte de la página hacia este servidor. En este caso, se necesita hacer lo siguiente en el servidor ServerB(donde esta instalado el WSS):

1. Crear una clave de registro con la siguiente ruta:

  • HKLM\software\Microsoft\VisualStudio\9.0\TeamFoundation\ReportServer\80\Sites

2. Crear los siguientes String Values dentro de la clave creada anteriormente :

  • BaseReportsUrl con el valor http://ServerC/Reports
  • ReportsService con el valor http://ServerC/reportServer

Adicionando estas claves con estos valores, el problema se resuelve.

La razón para que este problema ocurra, es porque WSS intenta redireccionar el reporte hacie el servidor donde esta instalado el Report Server, y por eso necesita esta clave para saber hacia donde redirigirlo.

jueves, 21 de agosto de 2008

Conectar Visual Studio 2005 con Team Foundation Server 2008

Probando Team Foundation Server 2008, encontré la necesidad de manejar proyectos creados con Visual Studio 2005 y no con Visual Studio 2008 , pero se encontró un problema tratando de usar Team Foundadion Server 2008 on Visual Studio 2005.

Cuando se intenta crear un Team Project desde VS 2005 al TFS 2008 se encuentra el siguiente mensaje:

Plugin error text: "The language id specified in the process template does not exist on the WSS server"

Buscando en la Web, encontré una solución de como se puede configurar Visual Studio 2005 para trabajar con TFS 2008, solo haciendo lo siguiente:

1. Instalar el Team Explorer 2005, descargandolo desde microsoft en la siguiente dirección : Team Explorer 2005

2. Instalar (o reinstalar si ya se tenia instalado) el VS 2005 Service Pack 1 el cual va a instalar el Team Explorer 2005 SP 1 tambien.

3. El ultimo paso es instalar un hotfix de Visual Studio 2005, con el cual, VS 2005 podrá comunicarse con Sharepoint 3.0, el hotfix es VS80sp1-KB932544-X86-ENU.exe

La razón de este problema es que VS 2005 viene hecho para comunicarse con SharePoint 2.0, pero no con la versión 3.0, lo cual se corrige unicamente con el hotfix que se aplica sobre el VS 2005 SP 1, pero cuando se instala el Team Explorer 2005, se desactualizan algunas librerías y por eso no es posible aplicarle el hotfix hasta que no se haya instalado (o reinstalado) el VS 2005 Service Pack 1.

Igual, si se aplica el hotfix antes de instalar el Team Explorer, al instalar este último se desactualizan las librerias que actualizó el hotfix, y no se puede aplicar nuevamente este hotfix hasta que no se haya aplicado nuevamente el VS SP 1.

Eso es todo.

Cambiar version de SQL sin necesidad de desinstalar

Si requiere cambiar de version de SQL, (por ejemplo, de SQL Express Edition a la version SQL Standar), se puede realizar esto sin necesidad de desinstalar la versión anterior. Esto da la ventaja de no necesitar restaurar las bases de datos y volver a crear los permisos y la configuración que ya se tenia, para esto, hay que hacer lo siguiente:

1. Poner el DVD de la version SQL que se va a instalar, si se va a hacer desde un directorio ubicarse alli.

2. Iniciar la instalacion desde la línea de comandos(Supongamos que el DVD de instalación esta en e:\) usando la siguiente línea:

e:\setup SKUUPGRADE=1

3. Seguir las instrucciónes de instalación. Si la instancia a ser actualizada es una instancia nombrada, como myserver\sqlinstance, use este mismo nombre la para instalación que esta haciendo, sino, no se reemplazará la anterior.

4. Cuando aparece el resumen de la instalación que se va a realizar, debe aparecer que se va a hacer un UPGRADE, despues de que la instalación termine, usted necesita instalar todos los Service Pack para SQL, puesto que quedan desintalados.

Esto es todo, solo es revisar y observara que las bases de datos quedan activas y configuradas como estaban.

Usar Google maps para mostrar una ruta

Voy a demostrar como usar Google Maps para mostrar una ruta en un sitio Web.

1. Ir a http://code.google.com/apis/maps/ para obtener una clave para el sitio Web y de esta forma poder usar Google Maps. Se necesita una cuenta de Google Mail para poder obtener la clave y ademas proporcionar el URL principal de su sitio Web, si esta trabajando localmente, es recomendable proporcionar un URL como http://mycomputername/, esto para poder ver el sitio web desde otros computadores en la red, porque si se usa http://localhost/, solo se podra mostrar la pagina localmente . Si esta usando un sitio web público, use una dirección como http://mywebsite/


2. Con su clave, adicionar las siguientes lineas entre el tag head de su pagina web:
<head>
<
script src="http://maps.google.com/maps?file=api&v=2&key=mykey" type="text/javascript"> < / script>

Note en el código key=mykey, donde mykey es la clave que se obtuvo de google maps

3. Adicionar el siguiente escript entre el tag head tambien de su pagina web:
<script type="text/javascript">
function initialize()
{
var map;
//Verify if the browser is compatible
if (GBrowserIsCompatible()) {
//Create the map object, for the div with id map_canvas
map = new GMap2(document.getElementById("map_canvas"));
//Set the center of the map and the initial zoom
map.setCenter(new GLatLng(5.971217,-74.95697), //Center
6 // zoom from 1 to 15
);
//Create the line secuence
var polyline = new GPolyline([
new GLatLng(6.252507, -75.583191),
new GLatLng(6.342597, -75.555725),
new GLatLng(6.247046,-75.421143),
new GLatLng(6.118708, -75.187683),
new GLatLng(5.971217,-74.95697),
new GLatLng(5.807292, -74.602661),
new GLatLng(5.20857,-74.742737),
new GLatLng(4.646920, -74.093170)], //Line points array
"#ff0000", //Color for the line
5 //width
);
map.addOverlay(polyline); //Add the line to the map
//Add mark for the start
map.addOverlay(new GMarker(new GLatLng(6.252507, -75.583191)));
//Add mark for the end
map.addOverlay(new GMarker(new GLatLng(4.658555, -74.100037)));
//Create the map control to show diferent type of the map
var mapControl = new GMapTypeControl();
//Add the control to the map
map.addControl(mapControl);
//Add zoom in/out control
map.addControl(new GLargeMapControl());
}
}
< /script>


4. Asignar al evento onload del tag body, la funcion Initialize:

<body onload="javascript:initialize();">


5. Adicionar el siguiente Div dentro del body, la propiedad size del div será el tamaño de la ventana del mapa en la pagina web:

<div id="map_canvas" style="width: 500px; height: 300px">< /div>


Note que el div id, es el mismo usado cuando se creó el objeto map.

Esto es todo, explore su página web y disfrute de google maps.