martes, 24 de marzo de 2009

Renombrar un objeto de una base de datos desde el Server Explorer del Visual Studio

Por si alguno no se ha dado cuenta, les comento un pequeño truco muy útil.

Desde la venta del Server Explorer del Visual Studio no se pueden renombrar directamente ciertos objetos de la base datos con la que se está trabajando. 
Por ejemplo, no se puede renombrar una tabla desde esta ventana.

Sin embargo podemos realizar esta tarea de manera muy sencilla a través de un Database Diagram.

Para ello si no tenemos ningún diagrama creamos uno nuevo y editamos las propiedades de los objetos desde la ventana de propiedades del Visual Studio.

Una vez terminadas las modificaciones,  guardamos el diagrama y actualizamos el listado de objetos de la base de datos y listo, los cambios se han realizado.

Espero que les sea de utilidad.

Un saludo.

lunes, 12 de enero de 2009

Incluir UserControl de Windows.Forms en WPF

Hola a todos y Feliz 2009!!



En ocasiones nos puede resultar interesante incluir un control de usuario que ya tenemos desarrollado y funcionando en nuestra aplicación WPF. esta y otras características de integración entre ambos mundo de UI permiten ir adentranos en el mundo de WPF poco a poco realizando las migraciones por pasos puesto que ambas conviven sin problemas.


Pasos para incluir UserControl de Windows.Forms en WPF:


  • Incluir las referencias a:

    -System.Windows.Forms.dll.
    -WindowsFormsIntegration.dll.

    Cae por (..Archivos de programa\Reference Assemblies\Microsoft\Framework\v3.0\)

  • Incluir la referencia al namespace desde el XAML.:

    Integración
    xmlns:wfi="clr-namespace:System.Windows.Forms.Integration;assembly=WindowsFormsIntegration"

    Control de usuario
    xmlns:my="clr-namespace:WindowsFormsControlLibrary1;assembly=WFCLTest"

  • Por fin incluir el tag WindowsFormsHost necesario para poder embeber a los controles. Sin este control como wrapped recibiriamos un error de compilación, puesto que el control de usuario de WinForm no es un 'UIElement'




Es posible también, (lo veremos en otro post) inclur un control WPF en un formulario Windows.

Un saludo.


miércoles, 10 de diciembre de 2008

Como incluir un fichero en el resultado de una prueba unitaria en Visual Studio 2008

Existen ocasiones en las que nos puede interesar que una prueba unitaria incluya un determinado recurso. Esto ocurre cuando el código que deseamos testear cuenta con la existencia , por ejemplo, de un determinado fichero de texto, una hoja de cálculo o una Service-based Database (.mdf)

Como sabrán, el resultado del proceso de test genera una nueva carpeta (TestResults) donde incluye el resultado de cada generación. Si dicho resultado cuenta con una referencia relativa (la mejor manera de hacerlo) hacia un recurso pues ya la tenemos liada...

Pero como siempre (o casi) la solución es más facil de lo que parece. Existe un decorador especialmente creado para esta necesidad. Basta con colocar sobre el método que deseamos incluya el recurso el item de despliegue de la siguiente manera:

[TestMethod()]
[DeploymentItem(@".\fichero.xls")]

public int EjemploTest()
{

...

(.\ si está en la raiz claro...)

Por supuesto los más inquietos ya se estarán preguntando como evitar tener que incluir este decorador en todos los métodos (especialmente interesante si se trata de una Service-based Database (mdf)).

Pues para esto también existe una facil solución. Basta con incluir el recurso en el fichero LocalTestRun.testrunconfig dentro del elemento Deployment con la siguiente sintaxis:


\[Nombre del proyecto]\[Nombre del recurso]

y ya podemos quitar el decorador.

Como siempre, espero que les sea de utilidad.

Un saludo.

Extra ball:
Si desean incluir un fichero Service-based Database (mdf)  en una prueba unitaria y referenciarlo con un connection string del estilo: "..AttachDbFilename=|DataDirectory|.." asegurense que tienen instalado el SP1 de VisualStudio 2008.  Si este, la referencia se realiza directamente contra en .Net Framewok y no encontrará el recurso.


lunes, 1 de diciembre de 2008

WPF Binding del control al propio DataContext

Alguna vez me han proguntado como se puede relacionar el propio objeto del DataContext en un Binding. Esto que en principio puede parecer un poco raro suele ser muy habitual a la hora de establecer Converters en WPF (IValueConverter).

Bueno pues el tema es de lo más simple. Supongamos que deseamos hacer un Binding del objeto del contexto a la propiedad Text de un TextBlock:

Text="{Binding Mode=OneWay, Converter={StaticResource andoniBlogConverter}}

*Notese que no se establece Path ni por propiedad ni a través de la sobrecarga del constructor de la clase Binding

Por supuesto se necesitaría un converter puesto que el objeto del contexto no es de tipo string (necesario para la propiedad Text seleccionada)

Por supuesto necesitariamos el Static Resource:

andoniNamespace:AndoniBlogConverter x:Key="andoniBlogConverter"


y la referencia al namespace en la declaración del UserControl:

xmlns:andoniNamespace="clr-namespace:Andoni.blog.ExampleConverter"

Espero que les sea de ayuda.

Bueno, un saludo



lunes, 29 de septiembre de 2008

Microsoft + JQuery ! (con el MVC la Santa Trinidad)

jQuery va a formar parte de la plataforma oficial de desarrollo de Microsoft.

Por cierto, jQuery es una librería de Javascript que permite simplificar la gestión de manipulación de documentos HTML a través del D.O.M. gestión y manejadores de eventos, animaciones...

Esta unión va a permitir que jQuery se distribuya con el Visual Studio. La idea es incluirla sin modificaciones (a ver si es verdad!!) de tal manera que se permita al equipo de desarrollo de jQuery continuar su propio avance de manera independiente.

Además los desarrolladores de Visual Studio podrán disponer de intellisense para jQuery (hay rumores que comentan que estará disponible como una descarga gratuita independiente en unas semanas)

Personalmente he desarrollado algunos proyectos con jQuery y la experiencia ha sido positiva por lo que me parece una conjunción positiva.

Un saludo.