¡Bienvenid@ a La bloguera.net! Iniciar sesión | ÚNETE a la web | Ayuda

Code Factory

Proof of Concept

Visualizar por etiquetado

Todas las etiqu... » .NET   (RSS)
WPF: Performance Tools Avaliable as Standalone MSI

Una gran noticia para todos es que las herramientas de medición y análisis de rendimiento de WPF están disponibles en un instalador independiente, por lo que ya no es necesario instalar el SDK completo para poder tener acceso a estas herramientas tan útiles y en mi opinión imprescindibles.

Además a esta gran noticia se une el hecho de que esta versión es una versión actualizada, correspondiente a la versión incluida en el SDK de .NET 3.5.

Podéis descargarlas desde estos enlaces:

X86
X64

Happy Coding!!!

Si quieres permisos... manifiestate!!

Ayer publicaba Rodrigo Corral en su blog, "Si quieres Full Trust... dímelo!!", cómo podíamos requerir al usuario que ejecute un assembly con un determinado nivel de permisos.

Me gustaría añadir otro modo alternativo a los ya comentados por él, basado en el manifest del assembly, que notifica al UAC (User Account Control de Windows Vista) cual es el nivel de permisos que necesita la aplicación para ejecutarse.

Para hacer esto solo tenemos que ir al archivo .exe.manifest de nuestra aplicación y añadir lo siguiente:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <assemblyIdentity version="1.0.0.0" processorArchitecture="X86" name="Microsoft.VisualStudio.Shell" type="win32"></assemblyIdentity>
  <description>Microsoft VisualStudio.NET</description>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type="win32" name="Microsoft.VC80.CRT" version="8.0.50608.0" processorArchitecture="x86" publicKeyToken="1fc8a5a9a1e18e3b"></assemblyIdentity>
    </dependentAssembly>
  </dependency>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="X86" publicKeyToken="6542c64144ccf1df" language="*"></assemblyIdentity>
    </dependentAssembly>
  </dependency>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type="win32" name="Microsoft.VC80.ATL" version="8.0.50608.0" processorArchitecture="x86" publicKeyToken="1fc8b1a7b1e18e3b"></assemblyIdentity>
    </dependentAssembly>
  </dependency>
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel level="requireAdministrator">
      </requestedPrivileges>
    </security>
  </trustInfo>
</assembly>

Donde el atributo level de la etiqueta requestedExecutionLevel puede tomar los valores:

  • requireAdministrator
  • highestAvaliable
  • asInvoker

Esto hará que se muestre un mensaje en pantalla como este en el caso de no cumplir con las condiciones de seguridad requeridas:

sshot-6

LOVE in MSDN Downloads

Y acorde a mi anterior post, os apunto una noticia de interés general y que creo que muchos estábamos esperando.

El domingo 12 (ayer) se puso a disposición de los suscriptores la descarga de MS Office 2007 y este viernes 17 tendremos la ansiada descarga de Windows Vista RTM.

Espero que la disfrutéis... yo llevo semanas esperando este momento.

Fuente: Blog de Jose Murillo

NET Framework 3.0 Released!!

Desde hoy ya tenemos disponible la versión final del esperado Framework 3.0, que como sabemos está formado por Framework 2.0, Workflow Foundation., WPF, WCF y CardSpace.

Si estás interesado en el desarrollo en alguna de estas tecnologías estás de enhorabuena, usa los enlaces para descargarte la versión final de los componentes de Runtime y el SDK:

  • .NET Framework 3.0 Runtime Components
  • Windows SDK for Vista and the .NET Framework 3.0 
  • Visual Studio 2005 Extensions for .NET Framework 3.0 (Windows Workflow Foundation)
  • Visual Studio 2005 Extensions for .NET Framework 3.0 (WCF & WPF), November 2006 CTP
  • Deberemos esperar un poco más por el diseñador de WPF y WCF, que aún está en versión CTP de Noviembre.

    Editado:

    También está disponible la imagen en DVD de la SDK para descarga:

    Espero que lo disfrutéis.

    Herencia de VB 6.0 en C#

    Una de las funcionalidades que más apreciaban los programadores de VB 6.0 a la hora de crear procesos y bucles muy largos era la de poder decirle al sistema que recupere el foco para poder atender otros procesos en ejecución.

    Esto se hacía mediante la instrucción DoEvents en VB 6.0, lo que permitía por ejemplo que el sistema atendiese a otros eventos como podía ser el de redibujar el contenido de una ventana mientras se ejecutaba el proceso. Esto era visible por ejemplo cuando se ejecutaba una instalación y la ventana y la barra de progreso no se redibujaban por estar ocuado el proceso de la aplicación (muchos han sido los instaladores que han sufrido este problema).

    Pues bien, en C# podemos contar con la misma funcionalidad que contábamos en VB 6.0 mediante la llamada al evento DoEvents() perteneciente al espacio de nombres System.Windows.Forms.Application.

    Un ejemplo de uso podría ser mientras esperamos a que el control Winsock realice una conexión:

    // C#
    // using System.Windows.Forms;


    do
    {
       Application.DoEvents();
    }while(Winsock.State==7);

    En un nivel más avanzado lo podremos usar en gestión multiprocesos o con la clase Timer para impedir bloqueos.

    Espero que os resulte de utilidad.

    Visual Studio Tools for Office “Cypress” o “v3”

    El día 7 de junio KD Hallman, General Manger del Equipo de Visual Studio Tools for Office anunció “Cypress”, ahora llamado Visual Studio Tools for Office v3.VSTO v3 es un Add-on para Visual Studio 2005 que nos permitirá desarrollar soluciones para Microsoft Office System 2007, en Beta 2 accesible para descarga gratuita desde: Microsoft Office 2007 System - Descarga

    Desde el Microsoft Office Developer Center se está empezando a proporcionar recursos para programadores relacionados con el futuro Add-on de forma paralela a la salida a mercado de Office System 2007.

    Actualmente “Cypress” se encuentra en CTP y su versión a día de hoy es la versión de Junio, a la que podremos acceder desde:Visual Studio Tools for Office "v3" - June Community Technology Preview (CTP)

    Además podemos encontrar varios vídeos sobre cómo desarrollar paneles de tareas en Excel 2007 y personalizar y modificar las ribbons (cintas) en PowerPoint 2007.

    Para más información:

    Microsoft Office Developer Center

    Tip: Adaptándonos al modelo de aplicaciones Office 2007

    Con el nuevo patrón de diseño de interfaces de usuario basado en Office 2007, se crea una nueva necesidad como algo común  y que deberemos tener muy presente a la hora de asignar funcionalidad a nuestras aplicaciones.

    Esta nueva necesidad es la de modificar propiedades de un formulario Hijo desde el formulario Padre y al contrario.
    Pero os preguntaréis el porqué de lo que escribo, pues os lo explico:

    Dentro de la guía de estilo de IU de Office 2007 se definen las “Main Ribbon Tabs” (o pestañas principales de “cintas”) que no son nada más que pestañas dentro del formulario principal (Parent) que contienen Ribbons (contenedores que agrupan botones (mayoritariamente) con funcionalidad común entre ellos) con botones dentro.

    Pues bien, estos botones deben afectar o cambiar el contenido del documento o formulario activo, pero también podemos necesitar hacer lo opuesto, es decir que dependiendo del contenido que estemos tratando en cada momento estos Main Ribbon Tabs se modifiquen o cambien de estado.

    Para lograr esto podemos recurrir a las siguientes líneas de código que nos permitirán acceder a las propiedades, métodos y eventos de un formulario Padre desde uno Hijo y a la inversa:

    Acceder a un formulario Padre desde el Hijo:

    frmPadre padre = (frmPadre)this.MdiParent;
    padre.Text = "Formulario Padre - Modificado";

    Acceder a un formulario Hijo desde el Padre:

    Método 1:

     

    //Nos permite recorrer la coleción de formularios hijos abiertos

    foreach (Form f in this.MdiChildren)

        {

           if (f.Text == "Formulario Hijo") f.Text = "Formulario Hijo";

        }

     

    Método 2:

     

    //Creamos una nueva instancia de un formulario hijo y cambiamos sus propiedades

    frmHijo hijo = new frmHijo();

    hijo.MdiParent = this;

    hijo.WindowState = FormWindowState.Maximized;

    hijo.Show();

     

    Método 3:

     

    //Modificamos una instancia ya creada de un formulario hijo activo

    frmHijo hijo = ((frmHijo)this.ActiveMdiChild);

    hijo.Text = "Formulario Hijo - Modificado";

     

     

    Espero que este pequeño Tip os sea de utilidad.