.NET

C# 7.0: Out variables

C# 7.0 brings some features to out variables. These new features help us write cleaner code and handle out variables better. This blog post provides samples of these new features in C# 7.0 and as a surprise it also demonstrates what compiler is doing with these new features.

Paging with Entity Framework Core

Paging query results is timeless topic and some days ago I got question about how to do it with Entity Framework Core. Using my previous work on paging I wrote some simple extension methods that work with IEnumerable and IQueryable interfaces. There’s also method that maps entities to models.

Fallback logger for Windows 10 IoT Core

We love to use our favorite logging solutions as much as possible but if external storage or external services are involved we cannot guarantee that logging works in crisis situation. This blog post introduces wrapper logger that uses main one to log all the messages and secondary one when main logger fails. Implementation is easy but there’s a good chance that log messages doesn’t get completely lost when main logging service goes down.

Running Visual Studio Code on Linux

For my up-coming presentation “ASP.NET Core on Linux” I need Linux VM I can access with Remote Desktop to run Visual Studio Code. After hours of different problems that grew fast over my head I was able to make things work and now I have functioning VM I can use for demos. This post is short overview about what I did and it is for those readers who also want to have Linux VM with Visual Studio Code.

Azure Search Suggesters: Helping users to find search keywords

Search is important feature of many apps and web sites because it is the main way for users to find quickly the information they are looking for. Typing search keywords to search box is not the end point of search we can provide to users. Sites that have huge amount of data can also help users to find out what keywords to use. In this post I will show how to use Azure Search suggesters to help users to find out these keywords.

Writing simple REST-client for Azure Search

In my last blog post about REST-clients Why Azure REST API-s and how to prepare for using them? I introduced how to write simple base class for Azure REST API-s. In this post we will implement simple REST-client for Azure Search. This is the same code that I’m using in my beer store sample application. I also make some notes about how to use search clients in domain models.

BaseServer: Abstract class for timer based jobs

In one of my systems I’m using background process that hosts jobs that import and update some data and communicate with external services. These jobs are running after some interval or on specific moments. I generalized the common base part of these jobs so I can handle them as one in different background processes like Azure worker roles and Windows services. This blog post introduces my work and shows real-life implentation of jobs base.

Beer IoT: Visualizing sensors data using Power BI

We are eager to try out our beer cooling solution and we want to see it in action. We want to visualize our data and keep eye on temperature of cooling beer. Before doing anything more complex like building web or mobile app we make a quick shortcut and bring our data to web, desktop and mobile. This post is about Power BI in action.

Beer IoT: Reporting measurements to Azure IoT Hub

As we have now fully functioning thermal solution running on Windows 10 IoT Core it’s time to focus to other components of our beer freezing solution. Our solution measures and calculates metrics of cooling beer but it doesn’t report this data anywhere. In this blog post we will set up Azure IoT Hub for our solution so it starts reporting measurements to Microsoft Azure.

Beer IoT: Estimating beer cooling time

In my last beer IoT post we measured out cooling rate of beer. In this post we try to estimate how long it takes for beer to start freezing. It’s actually simple calculation and we add it to our beer IoT background service before we focus on data reporting and persisting questions.

Beer IoT: Making cooling rate calculation testable

My previous beer IoT post introduced how to measure cooling rate of beer. As I introduced the first calculation there I implemented it in code the way it just works and gets calculations done. Now it’s time to focus on the implementation and make some small improvements that clean up code and improve technical design.

Beer IoT: Measuring cooling rate

As thermal sensors are connected and we have code to read temperatures it’s time to get serious and start real work on supporting the cooling process of eisbock. We start with measuring temperatures, calculating cooling rate and estimating how long it takes for beer to freeze. This post focuses on cooling rate.

Beer IoT: Moving to ITemperatureClient interface

My previous blog post “Measuring temperature with Windows 10 IoT Core and Raspberry Pi” introduced you my simple solution for measuring temperatures. In this blog post we go step further and make some modifications to solution architecture so we don’t have to keep sensors connected all the time and as a result we can also emulate temperatures and situations that are not easy to produce in home or office.

Generating CSV-files on .NET

I have project where I need to output some reports as CSV-files. I found a good library called CsvHelper from NuGet and it works perfect for me. After some playing with it I was able to generate CSV-files that were shown correctly in Excel. Here is some sample code and also extensions that make it easier to work with DataTables.

Coming soon to C#: Null propagating operator

C# 6.0 introduces language feature called null propagation. It’s about avoiding all this if-else mess in most sanity checks that avoid NullReferenceException.Of course, null checks can be found also from other parts of code that doesn’t necessarily deal with sanity checks. Let’s see how new null propagation feature help us write cleaner code.

Speaking at SDC 2014

Next week I have honor to speak at Software Development Conference 2014. It is held on 01-02.12 at Arnhem, Netherlands. I have sessions on both days – in total four sessions – and here is the short overview of these. It’s all mostly about ASP.NET, ASP.NET vNext, and cloud but there’s also something about legacy code. I hope you will join me!

Previous Posts