¡Hola Mundo! en Service Fabric

Introducción

Hoy vamos a crear nuestra primera aplicación usando Service Fabric. Para ello vamos a necesitar:

Vamos al código

Lo primero que necesitamos es lanzar Visual Studio 2015 como Administrador (esto es porque necesitamos permisos de administrador para lanzar el clúster de pruebas local en el cual correremos el ejemplo).

Luego creamos nuestra aplicación, HelloWorldApplication:

Service Fabric HelloWorldApplication

Y agregamos un Stateless Service, HelloWorldService:

Service Fabric HelloWorldService

Esto nos genera una solución con dos proyectos: HelloWorldApplication para la aplicación de Service Fabric y HelloWorldService para el servicio.

Service Fabric Solution Files

Un Stateless Service simplemente tiene que heredar de StatelessService. El código que nos genera automáticamente el SDK es el siguiente:

using System;
using System.Collections.Generic;
using System.Fabric;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.ServiceFabric.Services.Communication.Runtime;
using Microsoft.ServiceFabric.Services.Runtime;
namespace HelloWorldService
{
/// <summary>
/// An instance of this class is created for each service instance by the Service Fabric runtime.
/// </summary>
internal sealed class HelloWorldService : StatelessService
{
public HelloWorldService(StatelessServiceContext context)
: base(context)
{ }
/// <summary>
/// Optional override to create listeners (e.g., TCP, HTTP) for this service replica to handle client or user requests.
/// </summary>
/// <returns>A collection of listeners.</returns>
protected override IEnumerable<ServiceInstanceListener> CreateServiceInstanceListeners()
{
return new ServiceInstanceListener[0];
}
/// <summary>
/// This is the main entry point for your service instance.
/// </summary>
/// <param name="cancellationToken">Canceled when Service Fabric needs to shut down this service instance.</param>
protected override async Task RunAsync(CancellationToken cancellationToken)
{
// TODO: Replace the following sample code with your own logic
// or remove this RunAsync override if it's not needed in your service.
long iterations = 0;
while (true)
{
cancellationToken.ThrowIfCancellationRequested();
ServiceEventSource.Current.ServiceMessage(this, "Working-{0}", ++iterations);
await Task.Delay(TimeSpan.FromSeconds(1), cancellationToken);
}
}
}
}

view raw
HelloWorldService.cs
hosted with ❤ by GitHub

Para nuestro ejemplo, modificamos la función RunAsync, insertando el siguiente código:

protected override async Task RunAsync(CancellationToken cancellationToken)
{
while (!cancellationToken.IsCancellationRequested)
{
ServiceEventSource.Current.ServiceMessage(this, "Hello World at " + DateTime.Now.ToLongTimeString());
await Task.Delay(TimeSpan.FromSeconds(5), cancellationToken);
}
}

Sólo nos queda ejecutar nuestra aplicación de manera local presionando F5. Esto lanzará el emulador local y ejecutará nuestra aplicación (paciencia, esto puede demorar varios minutos la primera vez).

Podemos ver los resultados de nuestra ejecución en la pantalla de Diagnostic Events (si no la tenemos abierta, se puede abrir desde View -> Other windows -> Diagnostic Events).

Service Fabric HelloWorldApplication Execution

¡Con esto hemos creado nuestra primera aplicación con Service Fabric! No hace nada útil, pero nos sirve para entender la estructura y cómo ejecutar las aplicaciones.

La solución completa está disponible en GitHub.

@gjbellmann

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios .