Install and Configure Octopus Server for Continuous deployments

Octopus server has become wildly popular these days for continuous deployments because of its features, extensibility and integration with continuous integration tools like Jenkins or Bamboo. It can be used to deploy applications and perform complex steps to servers located either in cloud or on-premise. It also supports latest inclusion of latest DevOps technology like containers.

In this blog post we’ll learn how to setup a Octopus server on a clean windows server machine. It supports all windows server versions starting from Windows Server 2008 SP2. For our demo, we’ll use Windows Server 2016 machine. Continue reading “Install and Configure Octopus Server for Continuous deployments”

Understanding Microsoft Build System – What is MSBuild

MSBuild is perhaps one of the most used but uncredited piece of technology. The Microsoft Build Engine or more known as MSBuild, is a platform for building applications. Chances are that if you have ever used Visual Studio or compiled a .NET based project, you have used it knowingly or un-knowingly. Visual Studio uses MSBuild, but it doesn’t depend on Visual Studio. By invoking msbuild.exe on your project or solution file, you can orchestrate and build products in environments where Visual Studio is not installed. For MSBuild to work properly, you need to use an XML schema that defines how the build platform processes and builds software.

In this blog post, we’ll learn just basics of MSBuild, understanding what it is. Through a series of upcoming posts, we’ll learn how to use the XML schema so that MSBuild can build software as per our needs.
Continue reading “Understanding Microsoft Build System – What is MSBuild”

Integration of Git and Visual Studio – Commit variations

In previous blog post, we learned how to analyze a commit. We now will proceed to understand the various stages of commit and types of them as well.

As we all know, Git has 3 places for the code:
– Working tree: The place where we can add, modify source code.
– Staging area: The contents of modified files in the working tree are temporarily stored to a staging area called the “index” with git add. A file can be reverted back, only in the index but not in the working tree, to that of the last commit with git reset HEAD — , which effectively reverts git add and prevents the changes to this file from participating in the next commit.
– Local repository: git commit (without any pathname parameter) is used to record what has been staged so far in its most basic form.
Continue reading “Integration of Git and Visual Studio – Commit variations”

Integration of Git and Visual Studio – Analyze commit objects

In previous blog post, we learned how to create a git repository and commit first using Visual Studio and then achieve the equivalent of same using the native git commands. In this blog post, we’ll learn how to see the specifics of commit or how git stores this information.

Let’s analyze commit made by using Visual Studio, using the project ConsoleApp02. If we navigate to the project directory and do a git log, we’ll see below output:

git log when added project to source control
git log when added project to source control

Continue reading “Integration of Git and Visual Studio – Analyze commit objects”

Integration of Git and Visual Studio – Create a repository and commit

I recently came across few blogs discussions where the question was whether you should be using some kind of UI tool for git or live with the command line git and which one is better. I won’t go much into the debate of which one is better, but I can say that you should know what you are doing. Each UI based implementation of git takes away all those commands and command line interface, it provides a nice usable interface to its users. However command line git can be very very powerful if you know what you are doing and you do need to have that kind of control sometime. So we need to understand what is happening behind-the-scenes.

There are a lot of articles about how git works as its a very popular version control system and about Visual Studio as well as its a very popular software IDE. However there are not much articles about how git is implemented in the Visual Studio or what is happening when you push/sync or do other things with source code repository in Visual Studio.   Continue reading “Integration of Git and Visual Studio – Create a repository and commit”

Difference between Azure Web App, Azure API App and Azure Mobile App

If you have been working with you might have seen that there are different icons for Azure Web App, API app, mobile app and logic apps in Azure Portal and wondering what is the difference between them. Which should you choose so as to get best of the benefits for your code? As of the current state of Azure, all of these are part of big umbrella term called Azure App Service. Initially, there was some difference in features offered by these services individually, but as of now difference is only limited to naming, icons and tooling.

Features of one are available in the others. There is absolutely no differences beside icons and names on the Azure Portal.  Continue reading “Difference between Azure Web App, Azure API App and Azure Mobile App”

Create azure web app with application insights using ARM template

Creating both the Azure web app and the Application Insights resources independently is no problem and should be relatively easy for anyone familiar with ARM. However, creating them fully integrated takes just a little bit more work. It’s kind of because you would want them both to be linked to each other.

If you use the Visual Studio wizard for creating an ARM template, you’ll notice that it  forces the AppInsights resource to be dependent on the web app being created. So first you need to create web app and then AppInsights resource. However, when AppInsights resource is created, it would also generate instrumentation key which you would want to put inside the application settings of the web app. So we would need to do it the other way around. In this blog post, we’ll learn how to achieve our objective and create both of them in one go. Continue reading “Create azure web app with application insights using ARM template”