Pasión por la tecnología…

Noviembre 14, 2009

Jugando con Velocity (III)!

Archivado en: .NET Framework 4.0, Velocity, Visual Studio 2010 — Juan Carlos González Martín @ 10:36 pm

Después del último post sobre Velocity, en esta ocasión os quería llamar la atención sobre una herramienta muy interesante de administración disponible en Codeplex de forma gratuita y que reemplaza a la administración out-of-the-box con PowerShell que trae Velocity. Se trata de la Microsoft Distributed Cache Admin Tool, y entre otras funcionalidades nos permite:

  • Visualizar la salida PowerShell que nos indica el estado del clúster de Velocity.
  • Visualizar en el explorador las regiones que tenemos en caché.
  • Visualizar el tamaño del cluster.
image image image

Aparte de las informaciones anteriores, la herramienta de administración nos permite realizar tareas como:

  • Añadir nuevas regiones a las cache definidas.
  • Modificar la configuración de una cierta cache.
image image

Sin duda, esta herramienta nos da una idea de la extensibilidad que tiene Velocity a nivel de administración de la caché.

Octubre 20, 2009

VS 2010 & .NET Fx 4.0: Disponible la Beta2 del Training Kit (Preview de Octubre)!

Archivado en: .NET Framework 4.0, Visual Studio 2010 — Juan Carlos González Martín @ 9:10 pm

Pues eso, que ya tenemos disponible para descarga la Beta2 del Training Kit de Visual Studio 2010 y .NET Framework 4.0 Beta2. Como siempre, el training kit viene cargadito de material para empaparse de las novedades de la Beta2 de Visual Studio 2010 y .NET Framework 4.0. Por cortesía de Jason Olson, aquí va el resumen de los contenidos :-) ….molaaaa!

Presentations

  • What’s New in .NET Framework 4
  • What’s New in Visual Studio 2010
  • Introduction to ASP.NET MVC
  • Introduction to Managed Extensibility Framework
  • Introduction to .NET RIA Services
  • Introduction to “Velocity”
  • Parallel Computing for Managed Developers
  • Web Deployment with Visual Studio 2010
  • What’s New in ASP.NET AJAX 4
  • What’s New in ASP.NET Web Forms 4
  • What’s New in C# and VB
  • What’s New in ADO.NET Data Services
  • What’s New in Entity Framework 4
  • What’s New in Windows Presentation Foundation 4
  • What’s New in Windows Workflow 4

Hands-On Labs

  • Introduction to ADO.NET Data Services
    • Exercise 1: Creating and Consuming ADO.NET Data Services
    • Exercise 2: Consuming ADO.NET Data Services using ASP.NET AJAX
    • Exercise 3: Extending Data Services with Service Operations and Interceptors
    • Exercise 4: Adding Client-Side Paging with Row Count
  • ASP.NET AJAX 4
    • Exercise 1: Leveraging a Client-Side Template
    • Exercise 2: Using the DataView Control
    • Exercise 3: Creating Custom Markup Extensions
    • Exercise 4: Declaratively Instantiating Behaviors
  • Creating Plan My Night – ASP.NET MVC Application
    • Exercise 1: Creating an ASP.NET MVC Application, Plan My Night
    • Exercise 2: Creating Entity Framework Data Model
    • Exercise 3: Adding AJAX For Searching Activities
  • Enhancing Plan My Night – ASP.NET MVC Application
    • Exercise 1: Adding Caching using “Velocity”
    • Exercise 2: Structuring an Application using MVC Areas
  • Introduction to ASP.NET Web Forms 4
    • Exercise 1: Controlling Server Control ClientIds
    • Exercise 2: Enabling Bi-Directional Routing Support
    • Exercise 3: Granular ViewState
  • Microsoft Office Programmability in C# and Visual Basic
  • Introduction to F#
    • Exercise 1: Types in F#
    • Exercise 2: Using the Let keyword
    • Exercise 3: Functions
    • Exercise 4: Lists
    • Exercise 5: Pattern Matching and Recursion
    • Exercise 6: Types and Discriminated Unions
  • Introduction to the Managed Extensibility Framework
    • Exercise 1: Using MEF To Dynamically Add Modules to an Application
    • Exercise 2: Dynamically extending a form
  • Introduction to “Velocity”
    • Exercise 1: Setting up and running “Velocity”
    • Exercise 2: Programming directly against “Velocity” as a generic object cache
    • Exercise 3: Using Velocity’s SessionState provider with ASP.NET
    • Exercise 4 (Optional): Configure “Velocity” Cache in a cluster
  • Introduction to Workflow 4
    • Exercise 1: Hello Workflow
    • Exercise 2: Refactoring Workflows
    • Exercise 3: The CodeActivity
    • Exercise 4: Dynamic Workflows with XAML
    • Exercise 5: Testing Workflows
    • Exercise 6: WorkflowApplication
    • Exercise 7: Adding If/Else Logic
    • Exercise 8: Error Handling
    • Exercise 9: Activity Designers
    • Exercise 10: Hosted Designer
  • Introduction to Parallel Extensions
    • Exercise 1: Parallelize existing algorithm using static Parallel helper class
    • Exercise 2: Create and run parallelized Tasks
    • Exercise 3: Using the Task<T> class to create and run tasks that return a value
    • Exercise 4: Parallelizing LINQ queries using PLINQ
  • Test-Driven Development in Visual Studio 2010
  • WCF Service Discovery
    • Exercise 1: Ad-Hoc Discovery
    • Exercise 2: Metadata Extensions
    • Exercise 3: Announcements
    • Exercise 4: Discovery Proxy
    • Exercise 5: Legacy Discovery
  • Web Development in Visual Studio 2010
    • Exercise 1: Using HTML Code Snippets
    • Exercise 2: Web.config Transformations
    • Exercise 3: Packaging and Deploying Web Applications
    • Exercise 4: Packaging and Deploying Web Applications for IIS
  • Building a Data-Driven Master/Detail Business Form using WPF 4
  • Multi-touch Gesture – MFC
  • Multi-touch WMTouch – MFC
  • Ribbon – MFC
  • Taskbar – MFC

Demos

  • ContosoAutomotive (Parallel Extensions + MEF + WPF)
  • AdventureWorks AJAX
  • ASP.NET AJAX Ten-In-One
  • Managed Languages Ten-In-One
  • Barrier
  • CountdownEvent
  • Hello Visual Studio 2010
  • Introduction to the Managed Extensibility Framework
  • Parallel Baby Names
  • Parallel For Loop
  • Parallel LINQ (PLINQ)
  • Parallel Tasks
  • “Velocity”

Octubre 14, 2009

ADO.NET Data Services 1.5: Como visualizar las respuestas de los servicios en formato ATOM en Internet Explorer!

Archivado en: .NET Framework 4.0, ADO.NET Data Services, Visual Studio 2010 — Juan Carlos González Martín @ 9:57 pm

Un tip muy rápido que podéis encontrar en este post del equipo de ADO.NET Data Services sobre como configurar Internet Explorer para visualizar las respuestas obtenidas en formato ATOM al realizar llamadas a servicios REST definidos con ADO.NET Data Services. Los paso son:

  • En Internet Explorer, ir a Herramientas –> Opciones de Internet.
  • En la pestaña Contenido pinchar en el botón Configuración dentro de la sección fuentes y Web Slices.
  • En la ventana que se abre, simplemente desmarcamos la opción Activar la vista de lectura de fuentes.
  • Y con esto ya podemos visualizar la respuesta de los servicios de ADO.NET Data Services en formato ATOM.

Data_Services_1

Data_Services_2

Data_Services_4

Data_Services_3

 

Octubre 11, 2009

VS 2010 & .NET Fx 4.0: Recursos de F#!

Archivado en: .NET Framework 4.0, Visual Studio 2010 — Juan Carlos González Martín @ 3:36 pm

Hace unos meses escribí un post sobre F# en Visual Studio 2010 titulado Novedades en Visual Studio 2010- Soporte de F#! en el que realizaba una pequeña introducción a las características de este nuevo lenguaje de .NET Framework. En esta ocasión os dejo una serie de recursos interesantes para continuar con la inmersión en F#:

image_thumb

Septiembre 20, 2009

Visual Studio 2010 & .NET Fx 4.0: Ayudas en el IDE (II)!

Archivado en: .NET Framework 4.0, Visual Studio 2010 — Juan Carlos González Martín @ 8:09 pm

Siguiendo con la serie de posts sobre novedades en el IDE de Visual Studio 2010 (VS 2010) que iniciamos con esta primera entrega, en esta nueva entrega vamos a ver algunas novedades más que tendremos disponibles a la hora de desarrollar con Visual Studio 2010. En esta ocasión, veremos algunas funcionalidades más relacionadas con Team System. Empecemos.

Generar diagrama de secuencia

VS 2010 nos permite generar de forma sencilla el clásico diagrama de secuencia del código que estamos generando. Para crear este diagrama de secuencia:

  • Hacemos click con el botón derecho del ratón en el IDE y pulsamos sobre Generate Sequence Diagram…
  • En la ventana que se abre especificamos las características del diagrama a generar: profundidad máxima de llamada, si queremos que sea del proyecto actual, de la solución actual o bien de la solución actual y referencias externas.
  • Tras pulsar OK, al cabo de unos segundos tendremos generado el diagrama de secuencia.
VS2010_Ayudas_IDE_1 VS2010_Ayudas_IDE_2 VS2010_Ayudas_IDE_3

Sin duda, esta característica es más que interesante para comprender de un sólo vistazo que estamos haciendo en nuestro código.

Debug History

VS 2010 dispone de una nueva capacidad de depuración: la depuración histórica. Esta nueva característica permite hacer un seguimiento paso a paso de la ejecución de nuestro código, facilitando la tarea de encontrar posibles errores en el mismo. Adicionalmente, la depuración histórica nos permite volver a evaluar porciones de código ya ejecutadas y que han quedado grabadas en el histórico. Para habilitar esta característica en VS 2010:

  • Nos vamos al menú Tools y pulsamos sobre Options.
  • En la ventana que se abre, nos vamos a la sección Historical Debugging y dentro de esta en la sección habilitamos la depuración histórica a través de poner el check de Enable Historic Debugging.
  • Podemos además escoger que se va a monitorizar para facilitar la depuración.
  • A continuación iniciamos la depuración de nuestra aplicación.
VS2010_Ayudas_IDE_4 VS2010_Ayudas_IDE_5 VS2010_Ayudas_IDE_6
  • Ponemos un punto de ruptura en nuestra aplicación y vamos haciendo un paso a paso.
  • Como podéis observar, la depuración histórica se va mostrando en la ventana Debug History. Además, podemos comprobar que si pulsamos sobre un paso grabado, tenemos disponible información relativa a la salida generada por el programa, hilo de ejecución, …
VS2010_Ayudas_IDE_7 VS2010_Ayudas_IDE_8

  • La depuración histórica genera un fichero de trazas que podemos abrir a posteriori para analizar datos relativos a la ejecución de nuestra aplicación.
VS2010_Ayudas_IDE_9 VS2010_Ayudas_IDE_10

Y hasta aquí llega este segundo post sobre ayudas en el IDE de VS 2010.

Septiembre 13, 2009

VS 2010 & .NET Fx 4.0: Algunas novedades en VB.NET 10!

Archivado en: .NET Framework 4.0, Visual Studio 2010 — Juan Carlos González Martín @ 9:18 pm

Aunque creo que estas novedades en Visual Basic .NET 10 (VB.NET 10) ya no lo son tanto (gracias a los post de El Bruno, en concreto este post, y algún otro Geek), si quería hacer un pequeño resumen de las nuevas características que vendrán con la versión 10 de VB.NET en Visual Studio 2010 y .NET Framework 4.0. Básicamente estas novedades son:

  • Inicialización rápida y sencilla de colecciones en una sola línea de código.
  • Codificación multi-línea sin tener que poner el carácter _, en VB.NET 10 y como sucede con C#, podremos utilizar múltiples líneas para codificar utilizando simplemente el intro por cada nueva línea que utilicemos, es decir, se utiliza continuidad de línea implícita.
  • Soporte de expresiones Lambda en los procedimientos de tipo Sub.

Aquí os dejo una pequeña porción de código en la que se ilustran las novedades en VB 10 anteriores.

Module Module1 

    Public Property FailureScore As Integer = 70 

    Sub Main()

        Dim scores = {42, 10, 54, 68, 85, 92, 96, 100} 

        Dim failures = scores.Where(Function(s)

                                        Return (s <= FailureScore)

                                    End Function).ToList() 

        failures.ForEach(Sub(f)

                             Console.WriteLine(f)

                         End Sub)

        Console.ReadKey() 

    End Sub 

End Module

La correspondiente salida por pantalla es la siguiente:

image

Finalmente, comentaros que la lista de novedades de VB 10 se completa con las siguientes características novedosas:

  • Soporte de propiedades autoimplementadas.
  • Integración con el DLR (Dynamic Language Runtime) lo que nos permite invocar de forma dinámica cualquier tipo de objeto desde código VB.NET.
  • Características de Co y Contravarianza.
  • Finalmente, el despliegue de aplicaciones Office sin tener que embeber los PIA (Primary Interop Assemblies) en las mismas.

Vamos, que la idea con la evolución de VB.NET es que converja en cuanto a prestaciones con las de C#:

image

Y hasta aquí llega este pequeño resumen de novedades en VB.NET 10.

Septiembre 5, 2009

VS 2010 & .NET Framework 4.0: Novedades en WF 4.0 (IV)!

Archivado en: .NET Framework 4.0, Visual Studio 2010, WF — Juan Carlos González Martín @ 9:46 pm

Continuando con la serie de posts (puedes acceder al último post de la serie desde este enlace) sobre novedades de Windows Workflow Foundation 4.0 (WF 4.0), en esta ocasión os dejo un par de recursos más que interesantes para continuar con la inmersión en la tecnología de creación de flujos de trabajo de Microsoft:

image004.png

Y hasta aquí llega este nuevo post sobre novedades de WF 4.0. Espero que os haya resultado interesante.

Septiembre 1, 2009

ADO.NET Data Services 1.5: Disponible para descarga la CTP2!

Archivado en: .NET Framework 3.5, .NET Framework 4.0, ADO.NET Data Services — Juan Carlos González Martín @ 8:47 pm

El equipo de ADO.NET Data Services acaba de anunciar la disponibilidad de la CTP 2 de ADO.NET Data Services v1.5. Como novedad de la segunda CTP de ADO.NET Data Services 1.5, descargable a través de este enlace, comentaros que se asienta sobre .NET Framework 3.5 SP1 y Silverlight 3, si bien las características incluidas formarán parte de la versión final de .NET Framework 4.0. En cuanto a las novedades en sí, os hago un resumen rápido de lo que se comenta en el post que anuncia la disponibilidad de la CTP2:

  • Soporte para proyecciones, de manera que el formato URI de ADO.NET Data Services permite trabajar en cliente y servidor con un subconjunto de las propiedades de una entidad. Además, se añade soporte a LINQ y otras capacidades de los lenguajes .NET como tipos anónimos.
  • El Data Binding se ha extendido para que soporte Two-Way Data Binding.
  • Mejoras a la hora de conocer el número total de registros para una cierta entidad.
  • Feeds amigables, a través de extender el número de elementos ATOM que se pueden mapear con propiedades de una entidad.
  • Soporte para BLOB en el lado del cliente (incluido Silverlight 3).
  • Se ha introducido una nueva interfaz Data Service Provider para habilitar los Custom Providers que terceros puedan escribir e ir de esta forma más allá de Entity Framework, LINQ To SQL o clases .NET arbitrarias.

Os recomiendo también leer las FAQ que vienen con el post.

Agosto 24, 2009

VS 2010 & .NET Fx 4.0: Novedades en WF 4.0 (III)!

Archivado en: .NET Framework 4.0, Visual Studio 2010, WF — Juan Carlos González Martín @ 9:50 pm

Siguiendo con la serie de post en torno a las novedades de Windows Workflow Foundation 4.0 (WF 4.0, puedes leer también las partes I y II), en esta ocasión voy a tratar sobre lo fácil que resulta definir argumentos y variables en Visual Studio 2010 para poder comunicarnos con un workflow de WF 4.0. Empecemos.

Diseñando el workflow

Como siempre, lo primero que vamos a hacer es diseñar el workflow de WF 4.0 con Visual Studio 2010:

  • Iniciamos Visual Studio 2010 y creamos un proyecto de workflow (de tipo secuencial).
  • En el diseñador de workflows, arrastramos una actividad de tipo Assign a la superficie de diseño.
  • Para crear argumentos y variables en un workflow de WF 4.0, disponemos en el diseñador de dos botones que nos permiten añadirlos de forma muy sencilla.
  • Por ejemplo, para añadir argumentos basta con pulsar el botón Arguments y añadir los argumentos que necesitemos. Estos pueden ser de entrada o de salida. En nuestro caso, crearemos un argumento de entrada y otro de salida.
  • A continuación, configuramos la propiedad To de la actividad Assign añadiéndole uno de estos argumentos que acabamos de crear utilizando para ello el editor de expresiones (os recuerdo que dicho editor usa sintaxis VB.NET).
image image image
  • Seguimos el mismo procedimiento para configurar la propiedad Value de la actividad Assign.

image

Codificando la gestión de los argumentos

Una vez que hemos definido los argumentos de entrada y salida del workflow, ya solo nos falta definir las clases de gestión correspondientes:

  • Clase para el argumento de entrada, en la que simplemente definiremos un constructor en el que añadimos la propiedad de entrada del workflow:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text; 

namespace WFActivitiesDemo

{

    public class SayHelloInArgs: Dictionary<string,object>

    {

        public SayHelloInArgs(string name)

        {

            this.Add("Name", name);

        }

    }

}

  • Clase para el argumento de salida, un poco más compleja que la anterior ya que tenemos que realizar la asignación del valor de la propiedad. Fijaros también que en este caso el constructor de la clase es un tipo complejo frente al caso del argumento de entrada.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text; 

namespace WFActivitiesDemo

{

    class SayHelloOutArgs

    {

        IDictionary<string, object> _outArgs = null;

        public SayHelloOutArgs(IDictionary<string, object> outArgs)

        {

            if (outArgs == null)

            {

                throw new ArgumentNullException("outArgs");

            }

            _outArgs = outArgs;

        }

        public string Greeting

        {

            get

            {

                return _outArgs["Greeting"].ToString();

            }

        }

    }

}

Probando el workflow

Una vez que hemos definido las clases de gestión de los argumentos de entrada y salida, solo nos queda probar el workflow. Para ello:

  • Modificamos Program.cs para que por una parte recoja la entrada de usuario en el argumento de entrada definido y por otra genere la salida definida y en la que se utiliza el argumento de salida.

namespace WFActivitiesDemo

{

    using System;

    using System.Linq;

    using System.Threading;

    using System.Activities;

    using System.Activities.Statements;  

    class Program

    {

        static void Main(string[] args)

        {

            AutoResetEvent syncEvent = new AutoResetEvent(false);  

            Console.Write("Introduce tu nombre: ");

            string name = Console.ReadLine();

            string greeting=null;

            WorkflowInstance myInstance = new WorkflowInstance(new Sequence1(),

                new SayHelloInArgs(name));

            myInstance.OnCompleted = delegate(WorkflowCompletedEventArgs e)

            {

                SayHelloOutArgs outArgs =

                    new SayHelloOutArgs(e.Outputs);

                greeting = outArgs.Greeting;  

                syncEvent.Set();

            };

            myInstance.OnUnhandledException = delegate(WorkflowUnhandledExceptionEventArgs e)

            {

                Console.WriteLine(e.UnhandledException.ToString());

                return UnhandledExceptionAction.Terminate;

            };

            myInstance.OnAborted = delegate(WorkflowAbortedEventArgs e)

            {

                Console.WriteLine(e.Reason);

                syncEvent.Set();

            };

             myInstance.Run();  

            syncEvent.WaitOne();  

            Console.WriteLine(greeting);

            Console.ReadLine();  

        }

    }

}

 
Finalmente, el resultado de ejecución del workflow es el siguiente:
image

Y hasta aquí llega la tercera entrega sobre novedades en WF 4.0. Espero que el post os haya resultado interesante.

Agosto 13, 2009

VS 2010 & .NET Fx 4.0: Nueva página de aprendizaje!

Archivado en: .NET Framework 4.0, Visual Studio 2010 — Juan Carlos González Martín @ 10:10 pm

Microsoft acaba de poner a nuestra disposición una nueva página pensada para facilitar el aprendizaje de Visual Studio que incluye recursos a las nuevas capacidades de Visual Studio 2010. La nueva página cuenta con secciones como:

Getting Started

    Integrated Development Environment (IDE)

      Debugging with Visual Studio

        Deploying with Visual Studio

          Extending Visual Studio

          image

          Entradas siguientes »

          Blog de WordPress.com.