The German GAEB data format is designed to facilitate exchange in tendering and contracting, mostly aimed at the construction industry. The standard has been around for a while, dating back to a 80 characters-per-line punch card format in the 70s, with it's most recent iteration just from 2019. It's a really powerful but also complex schema. Dangl.GAEB is a suite of libraries designed to read, write and transform all known GAEB formats into a single, unified format with full change tracking, ready to be dropped into any application and be immediately usable. It's rock stable, thanks to over 345.000 unit & integration tests. These are run with multiple different frameworks on every commit, across Windows and Linux operating systems. It's not open source, but you can contact me if you're interested or try it out in the free GAEB Converter right on this site.
It's in .NET Standard and runs on any platform - Windows, Linux, Mac, Xamarin and all other platforms that support .NET Standard. All GAEB versions (90, 2000 and all XML based versions) are supported and transformed to a unified model, as well as many other formats.
View Fork on GtHubOften, you encounter the need to sort & paginate data in an Asp.Net Core Web API project. Since OData is not yet available, I've written LightQuery as a really lightweight replacement for the most common tasks. All you have to do is annotate your controllers with the [LightQuery] (or [AsyncLightQuery] if you're using EntityFramework) attribute and your API is ready to be sorted and paginated by the client.
Fork on GtHubVisual Studio Codes fan base is ever growing, but there are still benefits with using the full Visual Studio solution with all it's extensions and features. Since integrating modern web development workflows involving npm, wepback and TypeScript is not always straight forward, I've decided to blog and demonstrate about maximizing your Visual Studio experience. The tutorial walks you through everything - from setting up the development environment up to automatically testing and deploying your code to IIS or Azure.
View Fork on GtHubThe xBim Project on GitHub hosts a lot of open source code to make working with Building Information Models (BIM) in the construction industry easy. xbim-meets-angular is intended as a demonstrator for analyzing and rendering architectural models in the browser.
View Fork on GtHubHopefully, you never have to parse RTF (Rich Text Format). If you can't get around it, you're most likely using the dreaded WinForms RichTextBox. Unfortunately, this prevents your code from going full cross platform, WinForms is only available in the full .Net Framework. Dangl.TextConverter to the rescue! It's a custom built parser that translates both RTF and Html into plain text and back. It's not on GitHub due to a lot of RTF edge cases from customer specific data in it's test suite, but it's on NuGet and free to download for under a permissive license.
Build automation, continuous integration & deployment are topics I'm deeply interested in. With NUKE Build, there's a new, advanced build automation system available and it's getting more and more popular. It's offering you a full IDE integration for your build scripts and leverages the power of C#, comes with a lot of pre-defined tasks to get you going and is easily extensible.
For this, I've written multiple plugins, all of them are available on GitHub. One of the bigger ones I wrote was Nuke.CoberturaConverter. It allows you to transform code coverage reports from both the OpenCover format as well as dotCover to Cobertura reports. These can now be easily integrated in CI tools such as Jenkins, giving you easy access to all metrics and information.
It's also available as command line tool and NuGet package for direct integration.
Fork on GtHub