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

Nov 10, 2017

Rest

Since the past 5 years, there has been an increasing demand to know how to build RESTful Web Services. Never had a job interview for Software Engineering failed to include at least one question about REST or RESTful Web Services and never a week passed with at least hearing one comment like “if we do x, it will not be RESTful”. Everyone seems to be on top of it, know everything about REST. But is it true? Do they really know REST? How certain can one be that her system is RESTful? Today I would like to share my point of view about REST.

Nov 04, 2017

Swagger For Aspnetcore

Building a web API is not an easy task. In order to build one easy to use, we need to consider the routes, the HTTP methods, the return results from the endpoints, the parameter used for the body of the requests, etc… Swagger is a tool which compiles all our ApI endpoints into a user friendly UI and allows us to directly test our endpoints from the UI. Today we will see how we can integrate Swagger.

DotNetCore CSharp

Oct 29, 2017

Microsoft Orleans Cluster Management

Few weeks ago we saw how to create a Silo and how to implement grains. We also saw how we could create an ASP NET Core web app to talk to the Silo. We discovered the benefits of the single threaded model in grains. Today we will see one of the other major feature of Orleans, cluster management.

DotNetCore CSharp Microsoft Orleans

Oct 13, 2017

Microsoft Orleans Application Sample

Last week I presented an overview of Microsoft Orleans. Gave an explanation on the concepts and keywords which can be found in the framework. Today I will explain how we can implement a simple Orleans application with a cluster composed by a localhost Silo and with a client within an ASP Net Core Mvc application.

DotNetCore CSharp Microsoft Orleans

Oct 07, 2017

Microsoft Orleans Introduction

Microsoft Orleans is a framework used to build scalable distributed systems. It reduces the complexity of distributed system by abstracting away concurrency issues and state management. Processes are ran on multiple instances and form a cluster, hosted on different environment and horizontally scalable on demand. Today I will give a broad overview of the concepts utilized and developed by the team behind Orleans.

DotNetCore CSharp Microsoft Orleans

Sep 28, 2017

Angular Primeng Breadcrumb Part2

Last month I showed how we could build a breadcrumb with PrimeNG in Angular (you can read it as appetizer if you are interested in implementing a breadcrumb bar). In my previous post, I suggested to have a service BreadcrumbService which would hold the crumbs and get updated in ngOnInit of the component used on the route. Since then, I always was uncomfortable with this approach as this meant that my component would know the existance of a breadcrumb, because it updates it, while I always believed it should not know and not care. This led me to figure another way to abstract away from the component the concept of breadcrumb by combining guard, resolver and route.

Angular PrimeNG