The week in .NET – .NET Architecture: Microservices & Containers, On .NET with Omer Raviv on OzCode, Sprache

Previous posts:

.NET Architecture – Microservices & Containers

We recently added an Architecture Guidance page on the .NET Website. This new page pulls together architecture related resources for building different types of applications with .NET. We’ll be adding and updating content as it becomes available.

The Microservices & Containers section of the page provides some great resources for building and deploying microservices with .NET. Cesar De la Torre has authored two eBooks, one on designing and building microservices, and the other on deploying and maintaining them in production. You’ll also find the eShopOnContainers sample application, that shows all the concepts in action.

Visit the Architecture Guidance page to get these resources, and more.

On .NET: Omer Raviv – OzCode

During the Microsoft Build conference, we recorded interviews with some of the attendees. This week, we’re publishing the one we did with Omer Raviv, with a fantastic demo of OzCode, a debugging extension for Visual Studio that makes it a lot easier to debug Linq expressions, displays variable values right in the code editor, and much, much more. This is recommended watching for anyone who spends a lot of time in the debugger.

Package of the week: Sprache

Parsing text is one of the most common tasks in computer science. Whether you need to build a small DSL, use an exotic data format, or use formatted input from your users, you’ll need to describe how to transform text into a data structure.

There are fully-featured toolsets such as ANTLR to perform such tasks, and many language grammars are defined with ANTLR, but for smaller parsing needs, they can be massively overkill.

Sprache is a lightweight package to build simple parsers in C#. You can stop using regular expressions right now, and start building maintainable parsers instead 😉

Parser<string> identifier =
    from leading in Parse.WhiteSpace.Many()
    from first in Parse.Letter.Once()
    from rest in Parse.LetterOrDigit.Many()
    from trailing in Parse.WhiteSpace.Many()
    select new string(first.Concat(rest).ToArray());

var id = identifier.Parse(" abc123  ");

Assert.AreEqual("abc123", id);

Meetup of the week: F# for your day job in Durham, NC

If you’ve read a little about F# but haven’t given it a serious try yourself, you might get the impression that it’s good for people writing massively distributed systems or machine learning algorithms, but doesn’t help with the kind of code you trudge through from 9 to 5. In fact, F# excels at expressing clean, simple solutions to the everyday problems encountered when developing business applications.

TRINUG.NET welcomes you on Wednesday, June 21 at 6:00PM to give you a tour of the distinctive features of F#, discovering each one by starting with a realistic example.

.NET

ASP.NET

C#

F#

There is more content available this week in F# Weekly. If you want to see more F# awesomeness, please check it out!

VB

Xamarin

Azure

UWP

Data

Game development

And this is it for this week!

Contribute to the week in .NET

As always, this weekly post couldn’t exist without community contributions, and I’d like to thank all those who sent links and tips. The F# section is provided by Phillip Carter, the gaming section by Stacey Haffner, the Xamarin section by Dan Rigby, and the Azure and UWP section by Michael Crump.

You can participate too. Did you write a great blog post, or just read one? Do you want everyone to know about an amazing new contribution or a useful library? Did you make or play a great game built on .NET?
We’d love to hear from you, and feature your contributions on future posts. Please add your posts, it takes only a second.

We pick the articles based on the following criteria: the posts must be about .NET, they must have been published this week, and they must be original contents. Publication in Week in .NET is not an endorsement from Microsoft or the authors of this post.

This week’s post (and future posts) also contains news I first read on The ASP.NET Community Standup, on Weekly Xamarin, on F# weekly, and on The Morning Brew.