Primeros pasos con la CTP de Visual Studio Team Edition for Database Developers

www.elbruno.com

Finalmente he terminado de configurar mi nuevo website www.elbruno.com y abandonaré a My Space que bastantes problemas me ha traído para mudar mi blog.

ElBruno.com está basado en DotNetNuke y para mi Blog, he utilizado un módulo que me da este servicio. También he agregado otro módulo que integra GoogleMaps, y desde el cual podrán ver mi posición diariamente no piensen en guarradas, mas adelante se pondrá más interesante cuando en Julio empiece a dar vueltas por Europa.

Mi amigo Ernesto me ha sugerido otras opciones como BlogSpot o WordPress, pero las he descartado como también he descartado invertir una pila infernal de €€€ por el mejor producto de este tipo Community Server 2.0 para Asp.Net con GPS incluido.

Para no descolgarme de golpe, en My Space actualizaré las entradas que agregue a mi blog para que queden de referencia.

 

Saludos

El Bruno

PD:  Obviamente my site, me da además unos eurillos cosa que My Space no hace.

Cambios en my space …


Cambios en msn Spaces … a pocos días de definitivamente empezar a probar mi propio blog, hoy me encuentro con la novedad del  cambio de my space. De la anterior url

http://spaces.msn.com/brunocapuano

a cambiado a

http://brunocapuano.spaces.msn.com

y eso que antes era

http://spaces.msn.com/members/brunocapuano

Hasta donde llegaremos hoy ???

 

Saludos

El Bruno

Asesinar todos los procesos asociados a una base de datos

Everyday hay un pequeño problema que nos da satisfacciones cuando lo podemos solucionar, el del dia de ayer, estuvo centrado en la creación dinámica de bases de datos sin utilizar ISQL y Sql scripts. Una solución fue usar SqlCommand, y ejecutar un script para el DROP y el CREATE de la Base de datos

 

DROP DATABASE MyDBPrueba

CREATE DATABASE MyDBPrueba

 

 

Sin embargo, uno de los problemas que tiene la ejecución de este script se da cuando hay algún usuario conectado a la Base de Datos; en este caso no se puede DROPPEAR la misma.

La solución a este problema puede ser este SQL script que elimina todos los procesos asociados a una base de datos.

 

USE master;

DECLARE curkillproc

CURSOR FOR SELECT

   spid,dbs.name AS dbname

 FROM

master..sysprocesses pro,

 master..sysdatabases dbs

 WHERE

 pro.dbid = dbs.dbid AND

 dbs.name = ‘MyDBPrueba’

 FOR READ ONLY

 

 DECLARE @varspid AS integer

 DECLARE @vardbname AS varchar(256)

 DECLARE @numUsers AS integer

SET @numUsers = 0

 OPEN curkillproc

 FETCH NEXT FROM

 curkillproc

 INTO @varspid, @vardbname

WHILE @@fetch_status = 0

BEGIN

 EXEC(‘kill ‘ + @varspid)

 SET @numUsers = @numUsers + 1

 FETCH NEXT FROM curkillproc

 INTO @varspid, @vardbname

 END

CLOSE curkillproc

DEALLOCATE curkillproc

 SELECT @numUsers as NumUsersDisconnected

 

Si lo traducimos a una function C#, puede quedar de la siguiente manera

 

/// <summary>

/// Disconnects the users from data base.

/// </summary>

/// <param name="sqlConnection">The SQL connection.</param>

/// <param name="databaseName">Name of the database.</param>

/// <param name="commandTimeout">The command timeout.</param>

/// <returns>The number of users disconected.</returns>

private int DisconnectUsers(SqlConnection sqlConnection, string databaseName, int commandTimeout)

{

  string query = string.Format(CultureInfo.InvariantCulture, "USE master; \r\nDECLARE curkillproc \r\nCURSOR FOR SELECT \r\n   spid,dbs.name AS dbname \r\n FROM \r\nmaster..sysprocesses pro, \r\n master..sysdatabases dbs \r\n WHERE \r\n pro.dbid = dbs.dbid AND \r\n dbs.name = ‘{0}’ \r\n FOR READ ONLY \r\n \r\n DECLARE @varspid AS integer \r\n DECLARE @vardbname AS varchar(256) \r\n DECLARE @numUsers AS integer \r\nSET @numUsers = 0 \r\n OPEN curkillproc \r\n FETCH NEXT FROM \r\n curkillproc \r\n INTO @varspid, @vardbname \r\nWHILE @@fetch_status = 0 \r\nBEGIN \r\n EXEC(‘kill ‘ + @varspid) \r\n SET @numUsers = @numUsers + 1 \r\n FETCH NEXT FROM curkillproc \r\n INTO @varspid, @vardbname \r\n END \r\nCLOSE curkillproc \r\nDEALLOCATE curkillproc \r\n SELECT @numUsers as NumUsersDisconnected \r\n", databaseName);

  SqlCommand cmd = new SqlCommand(query, sqlConnection);

  cmd.CommandTimeout = commandTimeout;

  try

  {

    return (int)cmd.ExecuteScalar();

  }

  catch

  {

    throw;

  }

}

 

 

Espero que les sea útil.

 

Saludos

El Bruno

 

PD: No hace falta que recuerde que en el caso de eliminar todas las conexiones abiertas contra una base de datos, debemos tener un cuidado especial para no reventar algún proceso importante contra la misma. Y que este codigo es un rejunte de conocimiento recolectado de diferentes artículos leidos en la Web, si puedo reuno a todas las "sources" :D.

 

Editor visual de proyectos MSBuild

Buenas, en estos momentos me encuentro completamente adicto a todos los partidos de la primera fase del mundial en las fases finales de deploy, tests y futuros mantenimientos en un proyecto; y aquí es donde se torna más indispensable MSBuild si queremos lograr un proceso estable de desarrollo.

Gracias a mi amigo John, he conocido esta herramienta que permite editar y crear visualmente archivos de proyecto MSBuild. Aquellos que se dedican a crear estos archivos editándolos a mano en VS2005 sabran de que hablo.

¡¡¡ Pues bien a utilizarla y a aprovecharla !!!

 

Saludos

El Bruno

PD: –> PrintScreen here !!!

Empezó el Mundial !!!


¡¡¡ Empezó el mundial !!! con un partidazo y 6 goles entre Alemania y Costa Rica, donde ganó el local (4-2); y después la primera sorpresa con el triunfo de Ecuador por 2 a 0 a Polonia. Hoy juega Argentina con los elefantes de Costa de Marfil en un partido muy duro, pero que seguramente dará mucho que hablar.

¡¡¡ VAMOS ARGENTINA !!!

 

Saludos

El Bruno

Visual Studio 2005 – Importacion de Errores …

El titulo suena feo, ya que no conozco a nadie que quiera importar errores, pero  lamentablemente, todos los proyectos tienen muchísimos errores. Aunque si has implementado una metodología ágil, tal vez puedas estar al tanto de los mismos mucho antes.

Por ejemplo, en estos momentos estamos trabajando en un pequeño proyecto tiene más de 500 pruebas unitarias y todas las noches, se ejecuta un Build and Test automático. Esta mañana con mis amigos Victor y Antonio nos quedamos KO cuando vimos el Rojo de la muerte

 

Excusa perfecta para abandonar y salir de tapas pero …

Después tratamos de interpretar el Log de ejecución, pero como hay tanta data casi nos reventamos tratando de interpretar de a uno los test que dieron errores (piensen en mas de 500 líneas de este tipo)

 

       

Results               Top Level Tests

——-               —————

Passed                (All/)Ejemplo.LabsTest.ConstructorTest

Passed                (All/)Ejemplo.LabsTest.GetAllTest

Failed                (All/)Ejemplo.LabsTest.UpdateTest

.. .. ..    

 

Por suerte, entre la info. que generan las compilaciones y ejecuciones de test, dentro de la carpeta TestResult, encontramos un archivito con extensión .trx, que es el que contiene el resultado de los test para ser importados dentro de Visual Studio y poder verlos en el  Test Result Panel.

Para poder importarlos simplemente seleccionamos la opción Import del panel

Y listo, todas las pruebas dentro del mismo. Ahora podremos ver en más detalle los datos de cada Test, podremos acceder al código del test, etc.

Ahora la excusa para las tapas es arreglar los errores !!!

 

Saludos

El Bruno

El dia a dia


Una de las ventajas de nuestra profesión reside en la gran posibilidad que tenemos de cambiar de proyecto cada un periodo relativamente corto de tiempo (por ejemplo cada 6 meses). Gracias a estos cambios, podemos aprender a trabajar con nuevas tecnologías, conocer nueva gente, etc. También es útil para llegar, repartir un montón de trabajo inútil por todas partes y luego irse tranquilito para casa, después seguramente alguien se acordará de nosotros.

A mí me parece muy bueno, gracias a estos cambios, he podido durante mi año en España, conocer a mucha gente y trabajar con EntLib 1.1 y EntLib 2.0, Sql 2000 y Sql 2005, Vs2003 y Vs2005, TFS, aplicar TDD utilizando VSTS, desarrollar aplicaciones Mobile, etc.; sin embargo he conocido a personas cuyo objetivo es estabilizarse en un único tipo de tarea y realizar la misma durante toda su vida.

Por un lado me parece muy bien, yo siempre dije que el día que me canse de trabajar, me buscaré un trabajo de este tipo; tal vez de heladero o de vendedor de orquídeas; pero me parece que la informática es lo suficientemente interesante como para plantearse nuevas metas / objetivos  cada día.

El problema surge al momento de trabajar con estas personas, en estos casos colisionan 2 formas de trabajo totalmente diferentes. Por ahora no he podido encontrar un equilibrio entre ambos como para lograr una productividad del 100% en estos equipos, pero seguramente algo encontraré.

Solo una reflexión personal.

 

Saludos

El Bruno


Mails: Libros de C#

Hace unos días me preguntaron por un par de buenos libros de C#, este tema que también lo habíamos tocado en las Communities de Avanade, es mas que interesante. Obviamente cada uno posee sus propios gustos y preferencias, pero mi elección personal esta en el siguiente mail.

 

Saludos

El Bruno


 

Hola Bruno,

 

 

Al final me he decidido por Practical .Net2 and C#2, que junto a  Code Complete 2 me "ayudarán" a pasar un buen veranito 😉

 

Saludos y gracias,

 

Sergi

 

On 6/5/06, Bruno Capuano <bcapuano[ at ] gmail [ dot ] com> wrote:

Hola Sergi

Estos son muy buenos

Practical .Net2 and C#2

http://www.amazon.com/gp/product/0976613220/sr=8-1/qid=1148982132/ref=sr_1_1/104-1542976-9160716?%5Fencoding=UTF8

Professional C# 2005 (Wrox Professional Guides)

http://www.amazon.com/gp/product/0764575341/sr=8-2/qid=1148981121/ref=pd_bbs_2/102-6579016-0664922?%5Fencoding=UTF8

‘CLR via C#’ (2nd edition) by Jeffrey Richter

http://www.amazon.com/gp/product/0735621632/sr=8-1/qid=1149524745/ref=pd_bbs_1/102-6579016-0664922?%5Fencoding=UTF8

 

Saludos

Bruno

From: Sergi Carrasco [mailto: sergics[ at ] gmail [ dot ] com]
Sent: lunes, 05 de junio de 2006 13:07
To:
bcapuano[ at ] gmail [ dot ] com
Subject: Recomendación libros ASP .NET y C# 2005

Hola Bruno,

Me llamo Sergi y vivo en Barcelona. Llevo unos dos años programando en C# sobretodo aplicaciones web con Visual Studio 2003,
y estoy interesado en empezar a investigar las novedades de ASP. NET 2.0 y C# 2005.
Podrías recomendarme algún libro sobre ASP .NET y C# 2005 pero que no empiece por lo básico?

Saludos y muchas gracias,

 Sergi Carrasco

 

Office2007.SuportPdf = False !!!

Q mal … ya me estaba acostumbrando a la excelente opción de grabar en formato PDF en Office 2007, pero parece que nuestros amigos de Adobe no están muy contentos con esto.

Parece ser que en la nueva versión de Office2007, se eliminará esta opción … Realmente una desgracia

 

Saludos

El Bruno

PD: hasta que no salga la versión final de Office no creeré estas noticias, pero mientras tanto sigo exportando TODO a pdf por las dudas.