Introduction to Service Fabric (Lab) – Part 1

This post was authored by Todd Abel, a Program Manager on the Azure Service Fabric team.

Since a common ask was for more hands-on labs, we’ve created a lab with an end-to-end development flow for Service Fabric applications (SF Lab Part I). In this lab you’ll create a stateless service containing a single page application that allows voting on anything. You’ll  learn to use configuration, monitor health reports and perform a no downtime upgrade of a stateless service. The exercise will use Visual Studio’s Service Fabric tooling as well as the Service Fabric Explorer.

We plan to have three labs in this series, and this is the first of those. We estimate 60-90 minutes to complete this lab. We’d love to hear from you on your experience with the lab, and which topics you’d like to have labs for in the future. 

Comments (13)

  1. Sean Feldman says:

    What’s the plan for these labs? Is there a list of things that would get covered?
    Are you taking suggestions for the topics?
    Thank you.

    1. mfussell says:

      We started building these labs to teach other teams and people in Microsoft and of course post online for everyone to use.. We will cover the developer platform on the whole including building stateful services, guest executables, container deployment and really try to focus on best practices. Mostly the labs are a way to bring together a more complete picture of how to use the platform, given that individual doc articles can sometimes be fragmented.

      We are completely opened to all ideas and topics that you would like to cover to please comment on what you would like to see.


  2. John Garland says:

    I recently went through Lab 1 – a few notes:
    – First off, the Voting demo – nice simple concept. Helps illustrate the ideas without getting in the way of itself – a new variant on the ubiquitous “To-Do list” demo.
    – For the instructions that are along the lines of “do this three times”, spell out the code change…at 24 pages already, there’s no sense being stingy on the line count.
    – When pasting large blocks of code or HTML markup – steps 17 & 19, for example, be sure to spend a few lines explaining what the code does. Sure, we can read through the code and “do the math”, but let us focus on learning what you’re trying to teach, not deciphering the intent of the code.
    – One of the problems I have faced with SF labs is that they almost *all* tend to run against the local Fabric, which “works just like the remote/Azure deployment”, except when it doesn’t. (How many Console-app demos are there out there for how to work with the Actor Model?) I very much like that in Part 3 you apparently intend to do a “OK, now let’s put this up in Azure for real, and see what happens.”

    Overall, nice entry point – I’m interested in seeing where parts 2 & 3 lead.

    1. Todd Abel says:


  3. codematrix says:

    Simple and touches on a lot of good parts of sf.

  4. Hue Holleran says:

    This lab is exactly what is needed to help learn SF – many thanks to the author/s – and we look forward to future labs.

  5. It is now November… when can we expect to see parts 2 & 3 of the lab? What other training resources can be found? I keep checking Channel 9, MVA, Pluralsight, etc, but haven’t found anything yet that talks about building a psuedo-real-world application with various service types that also talks about why one service type was chosen over another for the various components, how they all fit/work together, etc.

    1. An unofficial follow up on this post has been created by Max Knor over @

      Direct link:

      Haven’t tested it myself so can’t really say how good (or bad) this sequel is.

  6. V. Brandt says:

    Thanks very much for the fine tutorial. I worked through. Most works fine. One problem seems to be in the index.html. There is a old or broken link. I changed the last line of the 3rd party libraries to .

    At the end of part 1 you announces a 2nd part.
    When will you publish this one?

  7. Kyle says:

    Hi Guys, When can we expect the next labs? Lab 1 was really good! Great job!

  8. Mike says:

    Very good labs, where can I find version 2 and 3

  9. Vaibhav says:

    Hi Team,
    Thanks for this hands on lab series. This does help a lot.
    One doubt though:
    In my case the demo stops working post code package upgrades due to hard coded version here.
    string path = string.Format(@”..\VotingServicePkg.Code.1.0.0\{0}”, file);
    What is the best way to get this version number in controller code other than as a route parameter like api/v{version/?

Skip to main content