Introducing CI/CD

Deploying applications can be a tedious task, with people historically having to write their own scripts if they wanted to avoid long, manual processes. Every project and every organisation runs on a different infrastructure, so for a long time, there was never an easy way to automate these processes. For each deployment, the same processes would have to be repeated and so it took up a lot of time. Fortunately, the widespread adoption of cloud computing and investment in DevOps, has changed this. …

Distribution of content

Web hosting options

There are so many different ways to host a website. You can host it directly on a cloud platform, rent a server from a web hosting company, or set up your own. No matter how you build your website, all of these options work well. Often, the decision on which method you choose to host your website, depends on what factors you consider most important. Do you care about speed and scalability? Then a cloud platform is probably best for you. Do you care about cost and flexibility? You might be better off renting a web server. How about ownership…

Stratis platform
Stratis platform

Blockchain in .NET

Although blockchain is now becoming a massively popular field in software development, not many .NET blockchain projects exist. The original implementation of Bitcoin was developed in C++, which along with Python, Go, Java and JavaScript, make up the majority share of blockchain development stacks.

One of the first .NET blockchain projects was NBitcoin, a Bitcoin library implementation developed initially by Nicolas Dorier. Nicolas is well known in the blockchain world and has written a book, Programming the Blockchain in C#, which I recommend reading if you’re interested in learning the details behind the implementation of blockchains. In terms of actual…

Breaking down authorization

JSON Web Tokens (JWT) are a highly popular and widely used component of client-server authentication. The idea behind JWT is to provide a simple and secure method of exchanging data which can be verified to have been untampered and created by a known party. A JWT is made up of three parts:

  • Header — contains metadata about the token
  • Payload — this is a set of ‘claims’ about the requestor
  • Signature — a signed combination of the header, payload and secret

When talking about authentication and JWT you will encounter some jargon such as ‘claim’. …

Web farm configuration

In the setup of a web farm, the load balancer is receiving the request from the client and the web application server is receiving a request from the load balancing server, but we might need the web server to be able to access information about the original request. Information about the original request can be sent in the HTTP headers and ASP.NET Core allows us to use the following:

  • XForwardedFor — contains the IP of the client that created the initial request
  • XForwardedProto — identifies the protocol of the original request such as http or https
  • XForwardedHost — the value…

Components of a web farm

A web farm is a structure where two or more computers run on a network to serve the same web application. Incoming web requests are routed to a load balancer server, which offloads the request to one of the computers on the network serving the web application.

Adam Shirt

Software Developer based in Liverpool, United Kingdom

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store