Open Source
Blazor Blocks
Blazor Blocks is a WYSIWYG block editor for Blazor.
There are quite a few "simple" WYSIWYG editors, but I was missing a way of laying out and creating fully responsive pages,
not just blocks of text and images.
Blazor Blocks introduces the concept of a block, which is a self contained type of content rendered,
which can be placed in columns and rows of your own design. It's a bit like a page builder, but for Blazor.
Some examples of blocks are normal WYSIWYG editors, images, titles, code, quotes, video links, embeddable content and more.
The entire project is built with 0 dependencies, which means that while it comes with a default set of row and column
definitions, it is easy to substitute them for your own.
While the project isn't on Nuget quite yet, you can find the source code at GitHub.
The project is actively taking Pull Requests and contributions.
Deepgram .NET SDK
Deepgram is a speech-to-text service that is easy to use and has a great free tier.
What they didn't have was a great .NET API; what they had was basically a direct port of their NodeJS API,
which was not very .NET friendly and didn't follow common design patterns in .NET.
Me and a few others have, with Deepgrams blessing, worked on creating a new SDK for using Deepgram from .NET.
You can find the official repository at GitHub.
String.Until / String.SubstringOrShorter
A small and simple package available on Nuget.
String.Until is an extension method for the string class which will look for a character or substring and then return everything up to that point.
If nothing is found, it returns the full string.
String.SubstringOrShorter is an extension method that works like Substring but won't throw an exception if the requested string length is outside of the strings length.
Both of these are very simple to implement yourself, but also annoying to keep doing over and over.
Find the Thindal.Strings package on nuget.org, or look in your packages.
Extensions
Don't Doxx Yourself
It's easy to mess up when streaming, presenting or showing code.
Lower the risk by hiding your configuration values until you actually decide to show them.
This extension hides all values in xml and json files.
You can click a button to toggle the boxes so you can edit the values,
but if you close & reopen the file the values are hidden again.
The schema is always visible even when the values are hidden.
Get NoDoxx at the Visual Studio Marketplace
or contribute to the project on GitHub.
Conference Sessions and Talks
The road taken; from Framework to .NETx
Do you have a .NET Framework project out there that's really looking to be updated to dotnet?
Have a look at the path we chose when upgrading a production web shop running on WebForms with
every imaginable anti pattern, into a modern framework with a MVC public site and a Blazor administration interface.
On this trip we will go through subjects like analysis, planning, architecture, some best practices and what will you
need to do to move it from on premise or Infrastructure As A Service to a fully managed Platform hosted solution.
Find the slides
and the Demo application on GitHub.
From Chaos to Order - Using the Repository Pattern the Right Way
If you've ever struggled with your data access being a mess, hard to follow, and even harder to test,
perhaps using the tried and true Repository pattern might be the right choice for you!
In this beginner-friendly and code heavy session, we will break down the principles behind the repository
pattern and how combining it with other patterns like Unit Of Work will make sure that you keep our data consistent, robust and testable.
In the end, we will dive into some code examples and have a working, basic implementation of a repository
with the necessary plumbing for your next application.
Find the slides
and the Demo application on GitHub.
Turning the Dynamic Static
While it's easy to host dynamic websites with different SPA frameworks and Azure Function calls,
a static HTML website will often come out ahead when it comes to loading speed and SEO since they are
smaller and do not require any backend calls.
By using open-source tools and Blazor with the right render mode, you can build a dynamic website hosted
on your development computer or homelab server. Once the site is built, it can be exported to pure HTML,
removing the need for dynamic server calls, making the website lightweight and SEO-friendly.
This combination of Blazor and static HTML provides the best of both worlds: dynamic content during development and fast,
static pages for the end-user.
And even keep some dynamic content too!
This is how I constructed my personal website supporting daily updates and dynamic content, using minimal dynamic logic.
Angular & Blazor — A Comparative Guide to Key Features and Functionalities
There are a lot of options when it comes to front end frameworks in your .NET stack. Let’s take a closer look at two very popular options, Blazor and Angular. We are going to walk through some demos live for how to do very basic things like routing, event and data binding, and deferred loading. Once the basics are covered we’ll move on to more complicated and exciting horizons, like SSR, Hydration, and Partial Hydration.
Alyssa Nicoll is a Senior Developer Advocate at Progress and a Google Developer Expert for Angular who is passionate about bridging gaps in technology, specializing in web development, particularly in Angular, .NET MAUI, and UI/UX Design.
Eric Johansson is... Me!
Specific Angular & Blazor topics we will cover:
Architecture
Routing
Control Flow
Data & Event Binding
Deferred Loading
SSR (Server Side Rendering) 🔥
Hydration & Prerendering
Other projects
Dotnet Bacon
Do you like bacon and/or eggs? If that feels like you, then you might like this project.
Learn how to build a .NET tool, how to execute LUA code and how to write a source generator in the tastiest way possible. With bacon!
To use the tool yourself, you can install it from the terminal with
dotnet tool install -g dotnet-bacon
Follow up with running the tool with either dotnet bacon
or for some extra tasty,
use dotnet bacon egg
.
If it's not obvious, this is a gag project for testing some technology, but it is published and fully working,
and you can find the source for dotnet bacon on GitHub.
Swetugg
Swetugg is a conference for .NET developers, by .NET developers. Held twice per year, once in Stockholm
and once in Gothenburg, it reaches hundreds of developers in the Nordics and beyond.
For Swetugg, I am a part of the groups responsible for selecting speakers & scheduling, the website and the afterparty.
Read more, book your tickets and take part of two wonderful days in one (or both!) of Swedens largest cities
filled to the brim with knowledge, facts, fun and networking. And there's food, entertainment and other silly things too!