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 CTPDeberemos 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.
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.
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.