Feb 22, 2018

Serilog With Aspnetcore

At each stages of an application development cycle, good logs are necessary to debug and fix bugs efficiently. Serilog is a logging framework allowing developers to log structured logs into different ouput platforms.

DotNetCore CSharp

Feb 16, 2018

Oauth 2.0 Openid Connect And Identity Server

When it comes to authentication and authorization, the most used standard is OAuth 2.0 with OpenID Connect (OIDC). Few weeks ago I discussed Resource owner password and Implicit flows focusing mainly on implementations with Identity Server. There is a lot of confusion revolving around OAuth 2.0 and OIDC, what they are, how they differ and even what Identity Server is and what is it used for. Today I will give more insights on what is OAuth 2.0 and OIDC are and how Identity Server relates to them.

DotNetCore CSharp OIDC

Feb 08, 2018

Free Ssl With Letsencrypt

Few months ago I explained briefly how SSL could be setup with CloudFlare. Today I would like to share another way to get a SSL certificate for free via a browser based implementation of Let’s Encrypt.

Let's Encrypt

Feb 01, 2018

Angular Router Params Inheritance

Few weeks ago I discussed about Angular router, how we could make sure our data are loaded before accessing a component. If you aren’t familiar with Angular router, I suggest you have a look at my previous blog post where I introduced the router. The example was loading data from the store (ngrx store) to check if data were loaded. But it would have been difficult if we needed to load data from the route params. Today we will see the problem faced when taking params from the route and how it can be resolve with a newly introduced feature in Angular router since 5.2.x.

Angular

Jan 27, 2018

Run Batch Files From Csharp In Dotnet Core

Being able to run batch during the lifecycle of an application is always useful. It gives a way to programmatically interact with any programs which implements a CLI. Today we will see how we can start processes from C# on .NET Core applications and how it can be useful in a real scenario.

DotNetCore CSharp

Jan 20, 2018

Dotnet Core And Dotnet Standard

Lot of things have changed from the past few years in the DotNet ecosystem. In many occasions, I have seen people get confused with the differences between DotNet Core, DotNet Standard and DotNet Framework and how do they all relate to ASP Net Core. I don’t blame them, so many new keywords that it is quite confusing to first look at. Today, I would like to explain the differences in term of project templates. What is the difference between DotNet Standard library or DotNet Core library, what is the difference between DotNet Core application or DotNet Framework application, etc…

DotNetCore CSharp

Jan 13, 2018

Steps Toward Leadership

As a Software Engineer, I have gone through many managements, different countries, different companies, different projects which all left me with a bitter taste. After years of reflection, I realized that half of the feeling came from my inexperience while the other half was meant to be fulfilled by the management under which I was working. This management was meant to provide me, a Software Engineer, the direction, vision and ideology to carry on my work. Management composed of line managers, higher management, directors and company, I expected them to lead me to success. It is incredibly hard to find the right way to get a Software Engineering team to work well. Most of the challenges aren’t well understood by those coming from different backgrounds. Not that it is harder or easier, it is just different. Tasks aren’t easily measured, it is hard to make KPI, goals aren’t easily defined and set, and many more issues. We have seen that giving management responsabilities to someone without a Software Engineer background can be challenging, if not harmful. But we also seen the opposite whereby giving management responsabilities to a Software Engineer by elevating her as leader caused equal harm to the team. Not all of us are equipped with the tools and mentality to manage more individuals then just ourselves.

Jan 06, 2018

Environments Setup For Aspnetcore And Angular Applications

Last week we saw how we could use angular cli and dotnet cli to pack and publish our application with simple commands. The application had no settings therefore there wasn’t a need to differentiate multiple deployments. But if we do need different settings, how should we handle it? Today I will amswer this question by explaining how we can setup targets and environments for our application.

DotNetCore CSharp Angular

Dec 22, 2017

Save Array In Entity Framework Core

EntityFramework is a ORM where R stands for Relational (database). Relational databases operate with tables, rows and columns. If we have an object containing an array of objects, by default, it would translate to two tables and a JOIN between the two tables. This behaviour is great if our initial model has links to other objects but not so great when the array inside of model is only composed by primitive type values, like strings. Today we will see how we can store array of values as property of our model and prevent having to create two tables with a JOIN.

DotNetCore CSharp

Dec 16, 2017

Microsoft Orleans Warnings And Logs

Microsoft Orleans is a framework which helps building distributed system by implementing the actor model together with the concept of virtual actors, taking care of availability and concurrency. If you are unfamiliar with Microsoft Orleans, you can look at my previous blog post explaining the benefits of Microsoft Orleans. Even though Orleans promises to abstract the distributed system problems, there are instances where errors arise without us being able to understand what is going on. Lucky us, the logs are well documented… but only for those who can decrypt them. Today I will go through some of the errors and warnings which can be seen from silo and client so that you too can undestand what is going on. Enjoy!

DotNetCore CSharp Microsoft Orleans

Dec 07, 2017

Aspnetcore Ci Cd With Gitlab

In any application, Continuous Integration and Continous Deployment environments are important to setup to remove respectively the risking of breaking your application while pushing code to master branch and having to manually deploy your application each time you need to either test it or deliver it. GitLab comes with a set of features to integrate quickly CI/CD to your application for free! Today we will see how we can setup CI/CD by leveraging the free services from GitLab.

Angular GitLab

Dec 02, 2017

Angular Primeng Data Table

In every web application there is a need to display data in a tabular form. If the amount of data is small, a simple combination of HTML with Bootstrap is enough. But when the data is large, or more advanced functionalities are needed like sort or pagination, a more elaborated table needs to be used. If you followed me, you must have noticed that I am a huge fan of Prime NG and once again, Prime NG saves us the burden of implementing a complex data table by providing an Angular component fully featured.

Angular PrimeNG

Nov 25, 2017

Aspnetcore And Angular Input Validation

Validation is an important part of the application development. There are two parts where validation is required, the API level and the frontend. The API validation is meant to prevent any malformed input to corrupt our data while the frontend validation is meant to guide the user to fill in a form by providing interactive feedback on her input. ASP NET Core for the backend and Angular for the frontend both ship with validation mechanisms fulfilling are requirements. Today we will see how we can implement validation in ASP NET Core using data annotation and inline validation with Angular reactive form.

DotNetCore CSharp Angular

Nov 18, 2017

Aspnetcore Patch With Json Patch

When building web APIs, most of the HTTP methods are implemented, GET, POST, PUT, PATCH and DELETE. While GET, POST and PUT are easily implemented, PATCH functionality is slightly different as it allows to change one or more properties of the resource. It is used to patch the resource. One way to do it is to use a protocol called JSON Patch. Today we will see how we can use JSON Patch through the ASP NET Core implementation and how we can construct the request from the frontend.

DotNetCore CSharp