Tim Murphy's .NET Software Architecture Blog

PSC

Starting An Umbraco Project

As I have been documenting Umbraco development I realized that people need a starting point. This post will cover how to start an Umbraco project using an approach suitable for ALM development processes. The criteria I feel a maintainable solution include are a customizable development project which can be easily in source control with a robust and replicatable database. Of course this has to fall within the options available with Umbraco. For mean this means an ASP.NET web application and a SQL ......

Logging To Application Insights In Azure Functions

In my last post I covered logging in Azure Functions using TraceWriter and log4net. Both of these work, but Application Insights rolls all your monitoring into one solution, from metrics to tracking messages. I have also heard a rumor that in the near future this will be an integrated part of Azure Functions. Given these factors it seem wise to start give it a closer look. So how do you take advantage of them right now? If you go to GitHub there is a sample written by Christopher Anderson, but let ......

Sketchnotes: Microsoft Windows 10 Creator Update Event

On October 26, 2016 Microsoft had an event to show off the future of Windows 10 and some new hardware. The following sketchnotes summarize the announcements from that event ......

Cloud Battles: Azure vs AWS–The Video

Earlier this month Norm Murrin and I gave a talk at the Chicago Coder Conference. We learned a lot about how the offerings of each company compares during our preparation. In the end we come to the conclusion that there is no clear winner except those of us who are leveraging the resources. Check out this video posted by the conference do get the blow-by-blow details ......

Implementing Logging In Azure Functions

Logging is essential to the support of any piece of code. In this post I will cover two approaches to logging in Azure Functions: TraceWriter and log4net. TraceWriter The TraceWriter that is available out of the box with Azure Functions is a good starting point. Unfortunately it is short lived and only 1000 messages are kept at a maximum and at most they are held in file form for two days. That being said, I would not skip using the TraceWriter. Your function will have a TraceWriter object passed ......

Building Azure Functions: Part 3 – Coding Concerns

In this third part of my series on Azure Function development I will cover a number of development concepts and concerns. These are just some of the basics. You can look for more posts coming in the future that will cover specific topics in more detail. General Development One of the first things you will have to get used to is developing in a very stateless manner. Any other .NET application type has a class at its base. Functions, on the other hand, are just what they say, a method that runs within ......

Building Azure Functions: Part 2–Settings And References

This is the second post in a series on building Azure Functions. In this post I’ll continue by describing how to add settings to your function and reference different assemblies to give you more capabilities. Settings Functions do not have configuration files so you must add app settings and connection strings through the settings page. The settings are maintained at an Function App level and not individual functions. While this allows you to share common configuration values it means that if your ......

Building Azure Functions: Part 1–Creating and Binding

The latest buzz word is serverless applications. Azure Functions are Microsoft’s offering in this space. As with most products that are new on the cloud Azure Functions are still evolving and therefore can be challenging to develop. Documentation is still being worked on at the time I am writing this so here are some things that I have learned while implementing them. There is a lot to cover here so I am going to break this topic into a few posts: Creating and Binding Settings and References Coding ......

Application Integration: Azure Functions Vs WebJobs

[Updated]UI development gets all the attention, but application integration is where the real work is done. When it comes to application integration in the Azure ecosystem you better learn how Functions and WebJobs are developed and under what conditions you should use each. In this post I will try to answer those questions. For me it is important that a solutions is reasonably maintainable, deployable through environments and can be easily managed under source control. Both products are built on ......

A TFS Developer In A GitHub World

Git and GitHub have been around for a few years now. They are becoming more popular by the day. I finally got around to looking at them more closely over the last few months and decided to summarize the experiences. My first experience with GitHub was not the most pleasant. I was using Visual Studio 2013 which doesn’t seem to have the best integration story (or at least didn’t when I tried it). The fact that it required that an existing repository be cloned via the GitHub desktop before Visual Studio ......

Increase Cloud Application Responsiveness With Azure Queues and WebJobs

This post is based on the presentation I gave at Cloud Saturday Chicago. In a mobile first world services need to be able to process high volumes of traffic as quickly as possible. With the certification and deployment process which native mobile apps have to go through being long and sometimes uncertain, we find ourselves looking for ways to make improvements without changing the device code. The flexibility of Azure and other cloud platforms gives developers the ability to easily implement changes ......

IDEs For Developing Node.js In A Windows Environment

Node.js has become one of the most predominant JavaScript based solution frameworks over the last couple of years. As with most ideas that start in the open source community it has crept its way into the Microsoft based platforms. For those of us who make our living in the Windows ecosystem it is beneficial to know what tools are available to add Node.js components to our solution landscape. This post will briefly introduce four of the development environments to build Node.js projects on the Windows ......

BUILD 2016 Thoughts: Home Sweet Windows

It is that time of year again where Microsoft developers gather in San Francisco to hear the direction that Microsoft is moving and the tools they are offering to get us there. The big theme this year has been “Windows is home for developers”. So what did Microsoft have in store for us? How Far Have We Come There were a lot of stats that showed up during the keynotes. A couple that stood out for me were that there are currently over 270 million users on Windows 10 and that Cortana is answering over ......

Do You Know How Much Your Azure VM Costs?

You go through the Azure price calculator and figure out everything you think are going to need for your Azure VM and how much each resource will cost you on a monthly basis. You then pick a template from the marketplace and implement it assuming you know what services are being stood up. Do you really know? What you may not realize is that if you didn’t go through the pricing calculator thuroughly you may be in for some surprises on your bill. Not only do you get charged for the hardware that you ......

No Excuse For Not Developing For Windows Phone

Ok, I’m biased. Let’s get that out of the way up front. I am a fan of the Windows Phone and it’s user interface. I think the live tiles, informative lock screen and application contracts offer a far superior experience to Android and iOS. Regardless of my preference I believe that at this point it is inexcusable for all but the smallest companies to ignore Windows Phone. There has been one big reason for the lack of adoption Windows Phone: Apps! About 75% (not a scientific number) of the people that ......

Open Live Writer Released

YES! Windows Live Writer has been my blog writing tool of choice since it first came out. When Microsoft announced that it would no longer support and upgrade the product I was understandably disappointed. Some time ago we heard (I believe from Scott Hansleman) that they were looking at open sourcing the tool. While anyone who reads my blog knows OS is not my first choice I anticipated the change because I don’t want to lose this productive and flexible tool. Now it is here. No more worrying about ......

Azure Sketchnote Collection: Part 2

This is the second in a series of sketchnotes documenting different aspects of Azure and related technologies. Hopefully you find a few gems that lead to a better understanding of Azure. Why Azure Azure For Developers Azure Redis Cache Power BI Hybrid Cloud ......

Azure Application Component Deployment

One of the aspects of Azure development that I have found the least amount of information written about is the deployment of your application components. This is especially the case when it comes to ALM (Application Lifecycle Management) approaches are considered. As with most things you get the WSYWG demo, but not how things should actually be done in an enterprise environment. This post will try to cover as many deployment approaches as possible. While it won’t be comprehensive it will give you ......

Can Sketch Noting Help You Keep Up With Technology?

I saw a post from someone who had created a Sketchnote of one of Scott Hanselman’s talks. It was the first time I had seen this as an defined process for note taking. As I get older and technology moves faster I am finding that it is getting harder to keep up and remember everything I need to learn. This approach looks like it could be part of the solution. This post documents my findings as I start to use sketchnoting. One of the things I noticed as I learned more about sketchnotes is that I have ......

Azure Sketchnote Collection: Pt 1

I recently started sketchnoting to better understand topics with as many new technologies and languages come out every day. This post is simply a collection of Azure related sketchnotes that I created. It is meant as a quick overview of some of the key components and concepts around Azure. I’ll post more in a future post. I hope at least a few people find them helpful and I invite feedback. AzureCon 2015 Containers DocumentDB Azure Security Center Azure Machine Learning ......

Earn Your Playing Time

It is aggravating being a coach and a parent watching other parents complain that their child doesn’t get their fair share of playing time. I could have done this with my own son this season, but instead I told him to work harder and he is now a starter. Those who show effort and willingness to learn will earn their playing time. We do our children a disservice by expecting someone to give them a role they haven’t put in the work for or don’t have the skill to perform. We have to realize this applies ......

Learning The Azure Cloud

The cloud is everywhere around us and if you are building systems in the Microsoft space the cloud means Azure. So how do you get started. To my way of thinking you need to understand the front end, batch processing and storage offerings along with the toolset. This post will outline some of the resources that I have found are helpful to getting started. Trial Azure Subscription The first thing anyone who is interested in Azure should do is sign-up for a free trial subscription. If you are lucky ......

What Should Your Goals Be When Developing

This post was prompted by a number of Twitter posts that were discussing if developers thought about who would be maintaining the code they wrote. Of course the answer is “it depends” as any good consultant will tell you. No two developers are the same. Some are more aware of the consequences of their decisions than others. The real question is what should your goals be as you are developing? The main trade off we struggle with are speed to market versus maintainability. Every project is under time ......

Azure Utilities You Should Have In Your Toolbox

Developing applications that leverage Azure resources can be challenging. The Azure portal give you limited view into your account resources. It shows you the basic structure of you storage accounts, but it doesn’t let you upload and download blobs. When it comes to your Azure SQL DB about all you have is the ability create and import a database. So what are the best tools to be productive? The first tool that you might want to look at is the Azure Storage Explorer. It allows you to view what is ......

Review: Chicago Coder Conference

On May 14th and 15th, 2015 the Chicago Coder Conference was held at the UBS building in downtown Chicago. PSC Group was a sponsor of the event and had a fair sized contingency in attendance. This post will review the good, the bad and the ugly of the conference. Let’s start with the bad and the ugly so that we can end on a high note. The overall organization of the conference was really bad. It started with the keynote. They had a venture capitalist talk about how the funding process works. Given ......

Advice For Speakers: Know Your Point

It has happened to all of us. You go to a conference and sit down in a session that has a great title and abstract only to sit through a long winded talk that has nothing to do what you were sold. As a speaker myself I find that this is a good reminder of the questions that you need to ask yourself as you prepare your material. Each session we put together has a limited amount of time. Review your content to make sure that every point you make has some bearing on your stated subject. Is each example ......

Build 2015: Day 2 Keynote

As with any second day keynote, day two of Build had less fan fare and new announcements than yesterday. Today it was all about doubling down on the message and showing a little more. The one message that I think went horribly wrong was the opening video. It was all about how Microsoft in the past hasn’t been open and companies didn’t think they could trust them, but now a new leaf has been turned over and they are who companies want to work with. While there has been some of that viewpoint in the ......

Build 2015: Day 1 Keynote

Build is always one of the most exciting Microsoft conferences. Have of the fun is trying to guess what will and won’t be announced. Will the analysts be right or will there predictions be off in left field? So what happened day 1 this year? Of course that depends who you ask, since no one goes to the same sessions or sees things through the same filter. This post will cover the keynote and a future post will cover the day 1 sessions. Keynote The keynote is always a rollercoaster. Anticipation. Surprises. ......

Frankentechtures

Monsters are an exciting thing to see in a movie. They are not so thrilling in your application architecture. I recently came up with (or at least I think I came up with) a term for architectures that are put together with mismatching parts and in ways the software gods never intended: Frankenstein Architectures. A co-worker then evolved that to Frankentechture. Of course the designer of a framework or an application platform can’t envision every possible use of their creation. How do you know then ......

Creating Azure WebJobs With The WebJobs SDK

The move to the cloud of many applications means that we have to learn new approaches to solving old problems. One common problem that most developers face at one point or another is background processing for web sites. In the past the solution would have often been to build a Windows Service and install it on a machine. Of course if you are using Azure Web Sites to host you application you do not have access to install services. Depending on what you need to accomplish WebJobs are the solution. ......

Everything Isn’t Fixed With Another Layer Of Abstraction

Many developers say with a sarcastic tone “You can fix any problem with another layer of abstraction”. The question is if there is any truth to this. While abstraction can increase reuse, flexibility and testability it comes with a cost of complexity in readability and maintainability. If a developer has to spend a week learning how all the pieces of an application are put together there better be a payoff. Always ask yourself “what do we gain” when adding a new factory or dependency injection? Is ......

Windows 10 – Going Backwards

I’m not sure how, but I seem to be an outlier in this point of view. I am finding that almost everything they are doing to Windows 10 to make it more acceptable to the masses is taking away features that I preferred in Windows 8. It isn’t that I thought everything was great and didn’t need to be improved, but these are features that I found at the very least useful and in most cases efficient. I’m just going to hit on the big ones here. Let’s start with the left swipe gesture. In Windows 8 this gave ......

Rejuvenate Your Career

We can all get in a rut after years in this industry. We get comfortable doing what we know. The problem is that technology does not stand still. If we don’t keep reinventing ourselves then we will eventually find that we don’t have the skills that the industry requires. This is so important an issue that I often ask prospective employment candidates how they keep up with technology. So what is my answer to rejuvenate your career? Because I spend most of my time developing solutions for the Microsoft ......

Windows 10 Tech Preview–First Impressions

This post is my impressions of Windows 10 after a couple of weeks of use. First let me set the stage though. I have been using Windows 8 since the RC. So I am very comfortable with it. At the end of my first 30 minutes with the Windows 10 Technical Preview I was screaming at my Surface Pro “What idiot asked for these features”. Of course after using it for a while that has subsided. The upgrade worked seamlessly on my generation 1 Surface Pro. All my apps showed up, both Store and desktop apps. There ......

Teaching Old Dogs New Tricks

Old developers can easily get set in their ways especially if they work in one environment for a dozen years or more. So how do you overcome the “that is the way it has always been done” mentality that sets in? The first thing you have to do is be patient. Don’t try to force them to change all at once. Too much change at one time can be a shock to anyone’s system. Gradually introduce new ideas and new techniques. The next thing you need to do is to make sure that you demonstrate examples and explain ......

Getting Started With WiX

Up until this week I had not even heard of WiX (Windows Installer XML Tools). As with most open source projects I found myself spending a large amount of time trying to find resources to explain how to use this tool. I figured if I was struggling there might be a few others that could use some help. In this post I will cover a number of topics to get you started with WiX. First thing you need is the toolset itself. You can get it here. Once you run the install be sure to restart your machine so that ......

Enhancing Your Model In MVC 5

Simple views in ASP.NET MVC 5 are simple, but once you start getting a lot of conditional content formatting in the view things can get very messy. Once you get to the point where your Razor code has way to many if/else blocks and they start repeating you have to come up with a way to abstract and simplify your code. I looked at functions and partial views as possible solutions. Both of these have their place but an alternative that you may want to entertain is implementing your model as more than ......

Presenting Project Spark At Chicago Code Camp

It is conference time again and this year I am speaking at the Chicago Code Camp on my latest addiction: Project Spark. This is the game that is currently in beta on Windows 8 and XBox One which doubles as a game development environment. Come and see how you can enjoy this and even spend more time with your kids and subliminally teach them how to code. Register at the link below. http://www.chicagocodecamp.... ......

How Software Architecture Is Like Photography

I have found over the years that many of the IT people that I work with have photography as a hobby. Recently I stopped and realized how similar the skill of a good architect are similar to those used in photography. Below I explore what I see as common traits. First and most important to both endeavours is the ability to see both the big picture and the details. Photographers observer both the individual subject such as a bird and the surroundings that it is interacting with. A beautiful bird alone ......

Visual Studio 2013 Launch Thoughts

Every new version of Visual Studio adds new features that make it easier to build apps in a maintainable way with best practices. Yesterday we got to see the latest enhancements in Visual Studio 2013 during the virtual launch event. I appreciated that yesterday’s event was live streamed, but even more that they didn’t stop the streaming when they left the keynote session. This made it much easier to go back and catch tid-bits that I missed the first time through. One of my favourite announcements ......

Getting Requirements Right

I had a meeting with a stakeholder who stated “I bet you wish I wasn’t in these meetings”. She said this because she kept changing what we thought the end product should look like. My reply was that it would be much worse if she came in at the end of the project and told us we had just built the wrong solution. You have to take the time to get the requirements right. Be honest with all involved parties as to the amount of time it is taking to refine the requirements. The only thing worse than wrong ......

What Is A Software Architect’s Job Today?

It was 2001 when a project manager first put my job title as architect on a statement of work. A lot has changed over the last twelve years. The concepts around what an architect is has evolved. In the early days I would have said that they just rebranded the role of the system analyst. Now we have a multitude of architect titles: application, solution, IT, data, enterprise. Whatever the title the goals are the same. An architect takes the business needs and maps them to the solutions that are needed ......

Carriers Holding Your OS Updates Hostage

Just a small rant here. Today the Windows Phone 8 GDR2 update finally became available for Nokia handset users. Now I’m not sure that it is AT&T fault entirely that Samsung and HTC users got their updates two months ago and we are just finally seeing it. It may have something to do with the Nokia Amber update. But every Windows Phone update on AT&T from 7.1 on seems to have been delayed. How is it that the premiere Windows Phone carrier is always the last one to release updates? Smart phone ......