Category: Programming

.NET, .NET Core, C#, CSharp, Library, Programming, security

Security Code Scan – open source vulnerability patterns detector

Security Code Scan is open source (LGPL v3.0) vulnerability patterns detector for C# (including .NET Core) and VB.NET. It has two installation modes: either as VS extension or as nuget package (SecurityCodeScan). Instead of writing about types of attacks which it can detect – let’s demo it. As a test application, I created API application …

Programming, Software engineering

12 factor app

12 factor app is a set of principle used to build an app to make it as independent from hosting provider as possible with keeping software development best practices. It was created by Heroku engineers who worked on the platform and later supported thousands of customers projects on Heroku. Main appliance was SaaS however most …

Programming, SQL

SQL Server 2019 – very short intro

Today Microsoft presented SQL Server 2019 in general availability. Did you expect a lot of new features? I did not but it looks like Microsoft made a nice surprise. Most important features: Support for big data using SQL Server, Spark and HDFS Support for AI (including Python) Data virtualization – allows to use SQL Server …

.NET, C#, CSharp, Library, Programming, Tests, Unit tests

Fluent Assertions in unit tests

As a continouation of the article about unit test frameworks I would like to introduce Fluent Assertions. This framework simplifies testing by BDD style syntax. Let’s start from basic assertion. As you noticed, first is going the result, then the keyword (or rather extension method) Should() and at the end the condition (so in case …

.NET, C#, CSharp, Library, Programming

.NET unit test frameworks comparison

In .NET we have 3 dominant unit test frameworks: MS Test (v2) NUnit (3.x) xUnit (2.x) First one comes with Visual Studio, two other requires additional components installation. Initialize First difference we will find in initialization approach. In MS Test there several initialization available (by attributes): AssemblyInitialize, ClassInitialize and TestInitialize. The disadvantage is that initialization …

.NET, .NET Core, ASP.NET, C#, CSharp, Programming

Install .NET Core on Debian Linux

Microsoft prepared quite good instruction how to install dotnet runtime on Linux. I’ve been interested in Debian distro. So I went pretty smooth through the first part of the manual (system setup). However installing dotnet I had constinously an error that package cannot be found. First comment: the package name has been changed and it …

.NET, ASP.NET, AWS, C#, CSharp, Programming, REST, WebAPI

AWS Cognito – Identity Pool usage in .NET Core

Some time ago I had to implement authorization and authentication for REST (.NET Core 2.1, the latest stable nuget package version is 2.1.3) web service using JWT tokens (bearer) using AWS Cognito Identity Pools. It was pretty hard to find the updated tutorials or materials (even on AWS most of the data is about old …

C#, CSharp, Programming

JetBrains research – The State of Developer Ecosystem in 2018

JetBrains just published they current research on the state of developer ecosystem. Key facts are: Java and JavaScript are still on top (recruiters: do not mess these technologies!). Also very popular are: SQL, Python, PHP, C#, C++. It seems like Kotlin and Rust are getting more popular. That was surprised me was statistics on employment: …

C#, CSharp, Library, Programming, REST

Refit as HTTP client

This post is dedicated to my colleague – Łukasz (his blog in Polish). Today I would like to introduce Refit library (GitHub repo). It is described as The automatic type-safe REST library for .NET Core, Xamarin and .NET. In Refit the interface with methods mapped to API actions is declared. I will use HNapi (Hacker …

.NET, C#, CSharp, Mobile, Programming, Xamarin

Xamarin Live Player

Today I started playing with Xamarin Live Player. This tool allows to see the Xamarin.Forms live on device while you designing UI. It has beta version available on Test Flight. You need to register to get access to it. Unfortunately first experience was bad. I was waiting for a longer while to get information from …