Starting the year – Improvement through creativity

First post for 2014. I made my New Year’s resolutions, professional field, creating great software with Zgura:

  1. Learn, get certified for Web development, exams 70-480, 70-486 and 70-487 link
  2. Apply SOLID development principles
  3. Always try to improve through creativity

On 3, I’d like to comment on the ideas expressed at Fareed Zakaria GPS program, in an interview to Elon Musk GPS link, summarizing, people working at his company must not just develop technology, they must improve on what has been developed. Just doing one work is not enough, need to improve on existent work.

As such, I’d like to share on an improvement I just implemented, developing on work already done by my colleagues at Zgura:

As we develop ASP.Net MVC apps and deploy continuously from Git into Azure Websites, one website for each stage of development and branch on source control (i.e., development, test, production) we wanted to set and use configuration environment variables for between other things, connection strings to databases, in Azure Websites and get them from Environment variables, using:

public static string ConnectionString
        {
            get
            {
                return Environment.GetEnvironmentVariable("APPSETTING_ConnectionString,"varname");
            }
        }

But after implementing that, we had an issue when trying to do local debugging as the application doesn’t have access to the environment variables repository. A solution I found was to add that variables at Application_Start, under Global.asax.cs:

#if DEBUG
            Environment.SetEnvironmentVariable("APPSETTING_ConnectionString","varname");

#endif

Cheers.

P.d.

As per a comment from my friend Salvador Aguilar, I’d like to show a screenshot of deployment configuration into Azure websites.

Continuous Deployment Azure

2 thoughts on “Starting the year – Improvement through creativity

  1. Very cool indeed. So this means within GIT, you create a branch for each stage, and then move the code to each branch until you reach production.

    By the way what are you using for Continuous Deployment?

    On the Linux side of things, we are currently using Jenkins & BitBucket. So the process goes something like this.

    developer -> bitbucket GIT repo -> Jenkins -> web and app servers.

    1. Developers sends a commit & push to bitbucket repo.
    2. Bitbucket receives the commit and push, and does a HTTP POST to Jenkins letting him know: that there is a new code into the “xxxxxx” repo.
    3. Jenkins receives the POST from Bitbucket and then runs a script which deploys the new code change into all the web servers (load balancers) and the application servers.

    How does it work from your end?

Leave a Reply

Your email address will not be published. Required fields are marked *