Welcome to Comunidad .NET de Cd. Juárez Sign in | Join | Help

Browse by Tags

All Tags » .net framework 3.0

Video tutoriales gratis de Expression Blend y WPF

Cuando estaba preparando el taller de Windows Presentation Foundation para la Comunidad .NET de Cd. Juárez, una de las cosas que me ayudó a aprender rápidamente cómo manejar WPF usando Expression Blend fueron algunos videos gratuitos en línea.  Desde entonces me he topado algunos otros muy buenos que creo te servirían, así que aquí está la lista actualizada:

Así que ya puedes comenzar a jugar  ¡Se acabaron las excusas! smile_wink

Desempeño de WCF vs. otras tecnologías de comunicación distribuída

Una razón más para considerar WCF:

To summarize the results, WCF is 25%—50% faster than ASP.NET Web Services, and approximately 25% faster than .NET Remoting. Comparison with .NET Enterprise Service is load dependant, as in one case WCF is nearly 100% faster but in another scenario it is nearly 25% slower. For WSE 2.0/3.0 implementations, migrating them to WCF will obviously provide the most significant performance gains of almost 4x.

A Performance Comparison of Windows Communication Foundation (WCF) with Existing Distributed Communication Technologies

cnjRSSreader - Un ejemplo sencillo de una aplicación WPF

Después del ProNet CodeCamp que tuvimos el mes pasado, los asistentes quedaron bastante emocionados con las demostraciones de Windows Presentation Foundation. Así que la semana pasada me tocó dar el taller mensual sobre ese tema.

La idea en el taller era ver de una manera práctica algunos de los conceptos de WPF: contenedores, composición de controles, data binding, estilos, recursos, convertidores de valor, animaciones, etcétera. Así que la práctica consistió en hacer una aplicación sencilla que leyera y mostrara el feed de noticias de la Comunidad.



La aplicación la hicimos casi en su totalidad utilizando Expression Blend, incluyendo todo el data binding. Solo agregamos un par de elementos utlizando Visual Studio, específicamente la clase para convertir valores (que se utiliza para resaltar con rojo los posts que ha publicado Alex) y el manejador del evento SelectionChanged de la lista.

Puedes descargar la aplicación y el código fuente en este enlace:
http://comunidadnetjuarez.org/files/folders/presentaciones/entry664.aspx

Si quieres saber un poco más sobre WPF, entonces te recomiendo le eches un vistazo a los siguientes videos, que me sirvieron a mi para ir aprendiendo:

Enjoy.

Presentación y material de WCF y CardSpace disponibles

El jueves pasado me tocó dar una de las pláticas durante el ProNet CodeCamp que tuvimos junto con Microsoft en la Comunidad .NET de Cd. Juárez. El tema fue Windows Communication Foundation y Windows CardSpace.

Estuvo bastante divertido. WCF es una de las tecnologías del .NET Framework 3.0 que más me gusta porque a pesar de que es un poco abstracta, habilita la infraestructura necesaria para orientación a servicios, las nuevas especificaciones de Web Services, etcétera. De hecho tengo planeado un par de posts, o incluso un screencast para tratar el tema y compararlo con Web Services "clásicos" usando ASP.NET.

Para mi sorpresa, CardSpace fue el que pareció generar más interés y preguntas en el público, sobre todo cuando vimos el demo de cómo integrarlo a una aplicación de consola con WCF.

En fin, aún no hemos publicado una reseña del evento completo, pero por lo pronto ya están disponibles la presentación y demostraciones que utilicé en la sección de archivos del sitio de la Comunidad. Pueden descargar el material de la siguiente dirección:

http://comunidadnetjuarez.org/files/folders/presentaciones/entry575.aspx

Para que funcionen los ejemplos de CardSpace es necesario tener instalados ciertos certificados digitales en la máquina que están corriendo. Para no batallar mucho, te recomiendo correr los scripts de instalación que vienen en el .NET Framework Training Kit para WF, WCF y CardSpace. Este kit está genial porque trae demos y hands-on labs para estas tres tecnologías, y puedes ver una agenda de aprendizaje por día o por tecnología.

También aproveché la ocasión para subir la presentación y demostraciones que utilicé el año pasado en el Microsoft Developer Community Day. El tema en aquella ocasión fue Desarrollo con .NET 3.0, la evolución del .NET Framework, que es una buena introducción a lo que tiene esta versión del framework. Ese material esta disponible aquí:

http://comunidadnetjuarez.org/files/folders/presentaciones/entry574.aspx

Finalmente, alguien me pidió que si podía también poner aquí los enlaces que recomendé en las presentaciones. Aquí estan, más algunos otros que no incluí en la presentación:

Para WCF:
Para CardSpace:
Enjoy.

Finalmente, .NET Framework 3.0 está aquí

Probablemente ya te habrás enterado que el ya se liberó la versión de producción del .NET Framework 3.0 ¿No? ¿Pos en qué cueva andas metido?

www.netfx3.com es el sitio para descargarlo.

Cursos gratis de .NET Framework 3.0

No sé si te enteraste, pero de aquí al lanzamiento al público de Windows Vista (en enero), Microsoft está ofreciendo gratis 3 cursillos sobre las tecnologías principales del .NET Framework 3.0 (en inglés). Cada uno de ellos dura como 2 horas. Hay uno para Windows Presentation Foundation, otro para Windows Workflow Foundation y otro para Windows Communication Foundation.

Así que si después de la plática de ayer en el Developer Community Day te quedaste con las ganas de aprender un poco más, pues inviértele unas cuantas horas, que al fin y no pagas nada ;)

PD. ¡Gracias a Abe por su reseña del evento! (casi me chiveo con sus palabras jejeje)

Reflejando imágenes

Aunque no creo que Apple lo haya inventado, creo que es quien lo va a popularizar gracias a iTunes 7. Me refiero al efecto de reflejo de imágenes en el software. Ya casi estoy anticipando cómo la raza lo va a sobreutilizar, pero en fin. Así que si quieren estar "a la moda", ahí están un par de links que me parecieron interesantes:

El primero es una librería de javascript para obtener ese efecto en las imágenes de tus páginas web. Ridículamente sencillo de usar (quise incluir un ejemplo en este mismo post, pero Blogger hasta donde sé no te permite incluir librerías de javascript, supongo que para evitar que los hackeen con XSS). En fin, la página de la librería es suficiente para darte una idea de cómo se usa.

El otro enlace es a un artículo que muestra cómo puedes obtener el efecto utilizando Windows Presentation Foundation en tus aplicaciones Windows. Qué chido, ¿no?

Enlaces hacia los juguetes del .NET Framework 3.0 RC1

Este post de Paul Andrew contiene enlaces a todo lo que necesitas para jugar con el .NET Framework 3.0 RC1.

Dependiendo de lo que quieras calar (WF, WCF o WPF), es probable que necesites bajar hasta 6 cosas distintas.

Enjoy

Where Workflow Foundation really shines

Rocky tiene unas ideas bastante interesantes de cómo encaja Workflow Foundation en la arquitectura de un sistema. Vale la pena echarle el ojo.

De su artículo:
Today we all write these non-interactive processes in code. Maybe with a set of objects working in concert, but more often as a linear or procedural set of code. If a change is needed to the process, we have to alter the code itself, possibly introducing unintended side-effects, because there's little isolation between steps.

Personally I think this is where WF fits in. It is really good at helping you create and manage non-interactive processes.

Yes, you have to think about those non-interactive processes in a different way to use WF. But it is probably worth it, because in the end you'll have divided each process into a set of discrete, autonomous steps. WF itself will invoke each step in order, and you have the pleasure (seriously!) of creating each step as an independent unit of code.

From an OO design perspective it is almost perfect, because each step is a use case, that can be designed and implemented in isolation - which is a rare and exciting thing!

Evento de Workflow Foundation en El Paso

El Grupo de Usuarios de .NET en El Paso nos está invitando a un evento el próximo Martes 29 de Agosto, de 6pm - 8:30 pm en el Buisness Building de UTEP, room 111.

Al evento vendrá una persona de Micorosft, J Sawyer, que es un "evangelista" de .NET, para hablar sobre Windows Workflow Foundation. (más info aquí).

Si se perdieron la plática en la reunión de mayo, o si quieren conocer más sobre el tema entonces échense una vuelta. Esta plática va a durar más que la que tuvimos nosotros (como 2 horas y media).

Los que estén interesados en acudir tienen que enviarle un correo a Tiffany Cynor a más tardar este viernes 25 de agosto para confirmar su asistencia. Su correo es:

Tiffany Cynor tmcynor@hotmail.com

Sopa de CTPs y Betas

Estuve intentando descifrar cuáles eran las versiones más recientes de WF y WCF con las que quiero jugar, y ya estaba a punto de quedarme vizco cuando me topé con este post de Tom Archer, el product manager del Windows SDK.

Así que antes de arrancarse la greña en frustración y quedarse pelones, chequen la matriz que viene en el artículo.

Y si no fuera yo tan obstinado e impaciente, me esperaría hasta que salieran las versiones finales y me ahorraría los reniegos.

Nah. Eso sería demasiado facil.

Tarde pero sin sueño

Por razones de espacio, nunca se subió la presentación que dí en la reuión de mayo de la Comunidad .NET, "Introducción Workflow y WinFX". Así que aquí la tienen.

PD. Como que el MSN Groups comienza a suckear tiempo grande, pero en fin, es gratis. You get what you pay for, como dicen los gringos.

Ahorita estamos evaluando el poner otro sitio de foros para la comunidad--y desarrolladores .NET en general--usando Community Server. Personalmente, soy fan de este producto, no solo porque tienen una versión "Express" (osea, de a grapa), sino porque mi compa el Rocky Lhotka así como algunos sitios de Microsoft también lo usan. Y ya rascándole un poco pueden encontrar paquetes de hosting desde $25 dlls al mes. Bastante decente. Luego les aviso qué pasa con esto.

La vida es cambio

Sí, ya lo sé. Pasan muchas cosas en dos meses. Cambio de proyecto en el trabajo... cambio de ciudad, de casa y hasta cambio de morra (novia pues).

Así que finalmente se me remordió la consciencia lo suficiente como para postear algo breve que los entretenga mientras tengo chanza de bajar los CTPs nuevos y tratar de aportar algo:

Hay una versión Release Candidate 2 de todo el choro de workflow, atada al último CTP del .NET Framework 3.0. Esto incluye versiones actualizadas de los Hands-On Labs.

.NET Rocks TV (DNRTV) sacó 4 videos muy buenos sobre Workflow Foundation, que los pueden ayudar bastante para comenzar [video1, video2, video3, video4].

Y por aquí hay más videos con tópicos un poco más avanzados.

Enjoy.

Aprendiendo a ser un buen anfitrión para workflow

Si le echaron un vistazo al mapa, se habrán dado cuenta de los 3 conceptos principales que hay que entender: host, actividades y workflow.

En esta entrada, hablaré un poco sobre el primero: ¿qué se necesita para que mi aplicación pueda utilizar Windows Workflow Foundation?

Muy sencillo: la aplicación debe tener la capacidad de ser el anfitrión (host) para el ambiente de ejecución de los workflows.

Ahora, en la vida real, ser un buen anfitrión pudiera requerir de mucho dinero o amigos--después de todo, hay que tener chelas en la casa para cuando caen los compas, y tener listos los teléfonos de las amigas teiboleras en caso de una fiesta de emergencia, ya saben... digo... ejem... ¿En qué estaba? Ah si, hablando de una aplicación de .NET en realidad solo necesitas hacer 2 cosas:
  1. Crear el ambiente de ejecución de workflow (runtime engine)
  2. Instanciar y arrancar el workflow

// asumiendo que se tienen referencias a los 
// siguientes assemblies:
// 
// System.Workflow.Activities,
// System.Workflow.ComponentModel y
// System.Workflow.Runtime
 
using System.Workflow.Runtime;
using System.Workflow.Runtime.Hosting;
 
namespace WorkflowApplication
{
  class MyProgram
  {
    static void Main(string[] args)
    {
      // crear el ambiente de ejecución de para 
      // los workflows (runtime)
      WorkflowRuntime runtime = new WorkflowRuntime();
 
      // TODO:
      // agregar servicios y/o suscribirse a 
      // eventos del runtime antes de arrancar 
      // la ejecución del workflow
 
      // instanciar e iniciar la ejecución del workflow.
      // en este caso, "MyWorflow" es el nombre 
      // de la clase que representa mi workflow
      WorkflowInstance instance =
        runtime.CreateWorkflow(typeof(MyWorkflow));
      instance.Start();
 
      // no olvidar destruir el runtime cuando 
      // ya no se necesite!
    }
  }
}

Y eso es todo. Esto implica que cualquier "ejecutable" de .NET puede ser un anfitrión--desde una vulgar aplicación de consola, como en el ejemplo, hasta una aplicación de Windows Forms o incluso ASP.NET. El runtime correrá dentro del proceso de tu ejecutable. El runtime sigue el patrón sigleton, por lo que solo se permite una instancia del runtime por aplicación.

Ahora, hay algo que sí hay que cuidar desde un inicio: el threading. Sobretodo en ASP.NET, es importante, ya que el runtime tomará "prestado" el thread de ejecución de la aplicación. De eso platicamos luego, en otra entrada...

Por default, los workflows son iniciados de manera asíncrona por el runtime, así que tendrás que tomar medidas para asegurar que la aplicación host no termine antes de que tu workflow. Esto se hace con algunas de las clases de System.Threading, como en el siguiente ejemplo:

using System.Threading;
using System.Workflow.Runtime;
using System.Workflow.Runtime.Hosting;
 
namespace WorkflowApplication
{
  class Program
  {
    static void Main(string[] args)
    {
      // crear el runtime
      using (WorkflowRuntime runtime = new WorkflowRuntime())
      {
        AutoResetEvent waitHandle = new AutoResetEvent(false);
 
        // estos son eventos del runtime a los cuales nos podemos 
        // "suscribir". en este caso se utilizan para señalar 
        // cuando el workflow terminó de ejecutarse
        runtime.WorkflowCompleted +=
          delegate(object sender, WorkflowCompletedEventArgs e)
          {
            waitHandle.Set();
          };
 
        runtime.WorkflowTerminated +=
          delegate(object sender, WorkflowTerminatedEventArgs e)
          {
            Console.WriteLine(e.Exception.Message);
            waitHandle.Set();
          };
 
        // instanciar y arrancar el workflow
        WorkflowInstance instance =
          runtime.CreateWorkflow(typeof(MyWorkflow));
        instance.Start();
 
        // el thread se queda esperando hasta que reciba una señal
        // debido a algún Set()
        waitHandle.WaitOne();
      }
    }
  }
}

Un mapa a Windows Workflow Foundation

Ayer me tocó hablar de Windows Workflow Foundation en la reunión de la Comunidad .NET de Juárez, y alguien me hizo la pregunta: “si quiero comenzar a jugar con Windows Workflow Foundation, ¿por dónde comienzo?”

Mi respuesta fue: sepalaching… digo, ejem… pues por el principio.

Lo que recomiendo es lo siguiente:
  1. Conocer los conceptos fundamentales de Workflow Foundation
  2. Bajar e instalar los componentes (beta) en algún ambiente de prueba donde puedan jugar.
  3. Jugar un rato con ellos

Conceptos fundamentales de Windows Workflow Foundation

Para ahorrarme las más de 1000 palabras, aquí les va una imagen (den clic para ampliar):


Un buen punto de inicio, creo que es la ayuda que viene cuando instalan los componentes. También está disponible en línea aquí.

Otro sitio útil es windowsworkflow.net.

Incluso hay un libro anaranjado por ahí que sacaron con el Beta 1 de WinFX/WF, pero le eché una ojeada en el Barnes&Noble local y sinceramente no me ayudó. Aparte que entre Beta y Beta, las cosas pueden cambiar bastante. Pero, si ustedes tienen $30 dlls que les sobren, pues puede ayudarles.


Bajar e instalar los componentes


Actualmente tienen 2 opciones: El Beta 2 de los componentes o el Beta 2.2

Si únicamente quieren desarrollar con Workflow Foundation, recomiendo usen la versión Beta 2.2, para ello solo necesitan los Componentes Runtime y Extensiones de Worflow Foundation Beta 2.2 para Visual Studio 2005. Esta es una descarga como de unos 70Mb solamente.

Ahora, que si quieren desarrollar con otras cosas de WinFX aparte de Workflow (como Windows Communication Foundation, Windows Presentation Foundation u Office 12 Beta 1 Technical Refresh), entonces necesitarán forzosamente conseguir los componentes de la Beta 2:

Runtime de WinFX, February CTP (para correr ejecutar sus componentes)
+ WindowsSDK correspondiente (para desarrollar)
+ Extensiones de Windows Workflow Beta2 para Visual Studio 2005 (para diseñar/desarrollar workflows)

Esta descarga es de arriba de 1Gb (!)

Ahora, recuerden que estos componentes están en Beta, lo cual—como ya deben saber—significa que no se recomienda instalarlos en una máquina en la que dependan, o un ambiente de producción. Lo que hice yo fue poner una Virtual PC con Visual Studio 2005 y ahí le ataqué los componentes.


Jugar un rato con Workflow Foundation

Soy de los que cree que toda la teoría del mundo no sirve de nada sin la práctica y viceversa—hay que usar los 2 hemisferios cerebrales.

Así que mientras pienso en algunos ejemplos qué poner en línea, pueden comenzar a practicar con los Hands-On Labs para Windows Workflow Foundation Beta 2, que contienen 10 “laboratorios” o prácticas. Estos labs contienen instrucciones paso a paso para que hagan sus primeros pininos con WF.

Enjoy.