Roundup #34: Channels, ring buffers and logs | The Creeping IT Apocalypse | dotnet-format | Right Tool for the Job | Fixing Random | Microsoft Graph

Here are the things that caught my eye this week in .NET.  I’d love to hear what you found most interesting this week.  Let me know in the comments or on Twitter.

Channels, ring buffers and logs

If you’re developing applications in .NET, you probably heard about all the new shiny part of the framework, like Pipelines which enable you to process IO-related processing with more IO awareness, still leaving your code on quite high level. Another part of the framework that is mentioned recently are channels that are used to pass data between parties. In this post I discuss various approaches used for data passing.

Link: https://blog.scooletz.com/2019/01/28/channels-disruptors-and-logs/

Cloud Irregular: The Creeping IT Apocalypse

So apparently AWS is working on a clandestine low-code/no-code product codenamed “AWS for Everyone”. It’s useless to speculate on this without concrete info (though that didn’t stop Geekwire), but hopefully this isn’t just another half-baked attempt to simplify the process of application development past all recognition. An awful lot of smart people have been trying to make graphical interfaces to help non-programmers code since – what, pre-Visual Basic? – and those projects always seem to get bogged down by a) fundamental limitations of usefulness or b) horrifying snarls of technical debt, or c) both of the above.

Link: https://forrestbrazeal.com/2019/01/16/cloud-irregular-the-creeping-it-apocalypse/

dotnet-format

Link: https://github.com/dotnet/roslyn/blob/master/src/Tools/dotnet-format/README.md

The myth of the right tool for the job

The phrase “the right tool for the job” is one we’ve all heard in software development and we’ve all most likely said it at some point. However when you stop and think about what such a phrase actually means you begin to realise it’s actually quite a problematic one, it makes too many assumptions.

Link: http://josephwoodward.co.uk/2019/01/myth-of-right-tool-for-the-job

Fixing random, part 1

The C# design team tries hard to make the language a “pit of success”, where the natural way to write programs is also the correct, elegant and performant way. And then System.Random comes along; I cringe every time I see code on StackOverflow that uses it, because it is almost always wrong, and it is seldom easy to see how to make it right.

Link: https://ericlippert.com/2019/01/31/fixing-random-part-1/

Exploring the Microsoft Graph SDK

Microsoft Graph is a gateway to the data and intelligence in Microsoft 365. It provides a unified programming model that you can use to take advantage of the data in Office 365, Enterprise Mobility + Security, and Windows 10.

In this episode we’re joined by Darrel Miller (@darrel_miller), PM for Microsoft Graph developer tooling. Darrel gives us an overview of what Microsoft Graph is, and also shows us how to get started with the .NET SDK.

Link: https://www.youtube.com/watch?v=1ytDvWdOMpI

Enjoy this post? Subscribe!

Subscribe to our weekly Newsletter and stay tuned.

Roundup #33: Securing SPAs, Razor Pages First Impressions, .NET OSS, Networker

Here are the things that caught my eye this week in .NET.  I’d love to hear what you found most interesting this week.  Let me know in the comments or on Twitter.

An alternative way to secure SPAs (with ASP.NET Core, OpenID Connect, OAuth 2.0 and ProxyKit)

You might have noticed the recent public discussions around how to securely build SPAs – and especially about the “weak security properties” of the OAuth 2.0 Implicit Flow. Brock has written up a good summary here.
The whole implicit vs code flow discussion isn’t particularly new – and my stance was always that, yes – getting rid of the tokens on the URL is nice – but the main problem isn’t how the tokens are transported to the browser, but rather how they are stored in the browser afterwards.

Link: https://leastprivilege.com/2019/01/18/an-alternative-way-to-secure-spas-with-asp-net-core-openid-connect-oauth-2-0-and-proxykit/

My ASP.NET Core Razor Pages First Impressions

Recently, I’ve been given the opportunity to rebuild an existing web site that is important, but not technically complex. The website has a few content-focused pages, some forms, and a single funnel. The goal with the redesign is to simplify the backend code and leverage more frontend technologies. Given the requirements, I thought it would be a perfect chance to try Razor Pages. In this post, I’ll give my first impressions, what I love about Razor Pages, and what I think could use improvement.

Link: https://www.khalidabuhakmeh.com/my-asp-net-core-razor-pages-first-impressions

Open Source .NET – 4 years later

A little over 4 years ago Microsoft announced that they were open sourcing large parts of the .NET framework and as this slide from New Features in .NET Core and ASP.NET Core 2.1 shows, the community has been contributing in a significant way

Link: https://mattwarren.org/2018/12/04/Open-Source-.Net-4-years-later

Networker

A simple to use TCP and UDP networking library for .NET, designed to be flexible, scalable and FAST.

Link: https://github.com/MarkioE/Networker

Enjoy this post? Subscribe!

Subscribe to our weekly Newsletter and stay tuned.

Roundup #32: System.IO.Pipelines, Libraries vs Frameworks, Performance Profiling in Rider, Cyclomatic Complexity, Lessons from the Birth of Microservices

Here are the things that caught my eye this week in .NET.  I’d love to hear what you found most interesting this week.  Let me know in the comments or on Twitter.

High Performance IO with System.IO.Pipelines

Pipelines was born from the work the .NET Core team was doing to make it easier to do high performance IO in .NET.

In this episode, Pavel Krymets (@pakrym) and David Fowler (@davidfowl) come on the show to give us an overview of how the Pipelines programming model works, as well as give show us a few demos on how to use the API.

Link: https://www.youtube.com/watch?v=1koWtKkKb_o

Libraries vs Frameworks w/ Dennis Doomen

Dennis Doomen is on an everlasting quest for better solutions that will significantly improve the efficiency, the quality and the productivity of your software development teams.

And among other things he is the author of Fluent Assertions, an API for asserting the results of unit tests in .NET.

Link: https://6figuredev.com/podcast/episode-074-libraries-vs-frameworks-w-dennis-doomen/

Performance Profiling in Rider

If you’re an active Rider 2018.3 user or just follow our blog, you probably know that Rider just got an integrated performance profiler based on JetBrains dotTrace. Though we’ve already reviewed the profiler features on the EAP stage, the release version brings some important changes, especially concerning profiling session configuration. Read this post to learn more about the changes.

Link: https://blog.jetbrains.com/dotnet/2019/01/17/performance-profiling-rider-2018-3-whats-new/

Rider Cyclomatic Complexity Plugin

Link: https://plugins.jetbrains.com/plugin/10395-cyclomaticcomplexity

What We Got Wrong: Lessons from the Birth of Microservices

Ben Sigelman talks about what Google got wrong about microservices, the lessons learned along the way and how to apply those lessons today.

Link: https://www.youtube.com/watch?v=-pDyNsB9Zr0

Enjoy this post? Subscribe!

Subscribe to our weekly Newsletter and stay tuned.