Tim Murphy's .NET Software Architecture Blog

Development

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 ......

Relating Umbraco Content With the Content Picker

After addressing Umbraco team development in my previous post I want to explore maintaining relationships between pieces of content in Umbraco and accessing them programmatically here. For those of us who have a natural tendency to think of data entities and their relationships working within a CMS hierarchy can be challenging. Add to that the fact that users don’t only want to query within that hierarchy and things get even more challenging. Fortunately we will see here that adding the Content Picker ......

Umbraco Team Development

The Umbraco CMS platform give you the ability to create a content managed site with the familiar development process of ASP.NET MVC. If you are the only developer things don’t get too complicated, but the moment you are sharing your solution with a team you gain a few wrinkles that have to be addressed. Syncing Content and Document Types Umbraco saves its content partially to the file system and partially to the database. This complicates sharing document types, templates and content between developers. ......

Query Application Insights REST API To Create Custom Notifications

Application Insights is one of those tools that has been around for a number of years now, but is finally getting understood as more companies move to Azure as a cloud solution. It has become an amazing tool for monitoring the performance of your application, but it can also work as a general logging platform as I have posted before. Now that you are capturing all this information how can you leverage it? Going to the Azure portal whenever you want an answer is time consuming. It would be great if ......

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 ......

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 ......

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 ......

Pay It Forward

One of my hobbies is photography (webshots, zooomr) and I was listening to The Digital Photography Show podcast where the guest was Kevin Kubota. He presents photography seminars and is offering scholarships to his seminars. The interesting part of the application is that you have to describe what charity work you do. He said that he figures if he is doing something for you then you should be doing something for your community to show that you are serious. So how does this relate to architecture ......

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 ......

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 ......

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 ......

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 ......

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 ......

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. ......

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 ......

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 ......

Project Spark Maze Making Technique

When I first started creating Project Spark worlds I would try to build a mountain and then tunnel through it to create halls and rooms. This really became a test of patients. Once you have created a narrow space with ceilings it is hard to get your camera in the right place to know which direction your tunnels are heading, how close you are to the outside of your terrain and good luck placing props. The solution is actually pretty simple. Use the Add tool with the cube brush and make your corridors ......

Project Spark Development On Windows 8 With A XBox Controller

As you may have noticed, I really enjoy building Project Spark games. Until recently you have only been able to create them on Windows 8.1. Now you have the option of playing Project Spark on XBox One with XBox 360 coming in the future. While I don’t have an XBox I have realized that there are just some things that you can’t do without a controller. The biggest one for me is manipulating the size of trigger zones around props. In order to gain this capability I picked up a second hand controller ......

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.... ......

Project Spark Beta Impressions

Many kids are addicted to Minecraft. It is a game that allows you to build the environment you play in and even create new content if you are willing to learn how to make mods. Project Spark is an offering from Microsoft which allows you to create and play top quality games. For the last couple of weeks I have been addicted to the beta of Project Spark and working with my boys to make some games. Even though it is still in beta there are some great features. It would take a tome to cover them all, ......

Windows Phone App Studio: The Social Developer Tool

Creating mobile applications is challenging, but Microsoft just made it easy for most people to create their own Windows Phone apps. People talk about Indie gaming. The Windows Phone App Studio allows people to create apps to share with their family and friends (as long as they have an App Studio account) using a WYSWYG style web site. Whether you want an app for your kid’s team, an app that introduces your company or an app for an upcoming event the App Studio can allow you to build them on your ......

How Can Project Spark Inspire Young Developers

At the BUILD conference last week there was a demonstration of Project Spark at the end of the first day’s keynote. I was amazed and inspired by the possibilities presented by this game/development environment. The inspiration came from the fact that it could teach a new generation of Minecraft hooked kids to program. It could grab their attention and hold it with amazing graphics and at the same time teach them the basics of writing code. From everything I have heard there is a drop in enrollment ......

Building apps that work Together

Writing apps that stand alone will only get yon so far. If your app can allow the user to leverage other applications and share data you Can have a real winner on your hands. Jake Sabulsky started off by explaining that you should be concentrating on the core functionality of your app and letting the framework take care of the features that users require these days. This is implemented be leveraging contracts. When Windows 8 was released it included the File, Share and Pickers contracts. With the ......

BUILD 2013 Session–Alive With Activity

Live tiles are what really add a ton of value to both Windows 8 and Windows Phone. As a developer it is important that you leverage this capability in order to make your apps more informative and give your users a reason to keep opening the app to find out details hinted at by tile updates. In this session Kraig Brockschmidt cover a wide array of dos and don’ts for implementing live tiles. I was actually worried whether I would get much out of this session when Kraig started it off with the fact ......

BUILD 2013 Session–What’s New In XAML

If ever there was a session that you felt like your head was going to explode, this one would do it. Tim Heuer proceeded to try to fit as many of the changes and additions to XAML as he could in one hour. There were a number of improvements that struck me. The first was the fact that we no longer need to put stack panels in the AppBar in order to add buttons. This has been changed to a CommandBar which at the very least makes the markup read more cleanly. Now if they would just bring this same improvement ......

What Software Architects Can Learn From Baseball Teams

My friend Larry Calrkin did a whole series on Architecture by Baseball, but after going to a recent White Sox game I got to thinking about the how baseball mirrors my experience. For me it boils down to specialization, team work and leadership. Every team member has their specialty. Infielders have great reactions and throwing accuracy. Outfielders can cover distance quickly and throw long distances. There are starting pitchers who have great control and endurance and closers who throw nasty pitches ......

Cookie Cutter Versus Custom Development

I recently had a potential client ask for an estimate of some work they wanted done. They already had a price in mind which I was pretty sure I couldn’t come close to. The reason for this is because they were comparing off the shelf, commodity type development to the custom development that it would require for my team to do the work. So does this mean that custom development can’t be the right answer if a subject area has commoditized? Not in the least. In many cases (but not all) these quick solutions ......

Reviewing Your Own Work

I am currently checking some code that I had written to be published. The process has put an exclamation point on the importance of code reviews for me. The parallels between reviewing the text, structure and examples in the book and the organization and coding structures of an application really struck home. Sometimes you just need to walk away from what you are working on for a while. You may come back an wonder what the heck was I doing. I found places that I had been writing while coding and ......

Beginning PHP On Windows 8

It is always interesting to find out what technology I will have to work with next. One of the latest that I’ve had to learn is PHP and since I am running Windows 8 I had to get it working in that environment. At first I tried just downloading the Apache server files and running that, but then you have to deal with possible collisions between Apache and IIS. In the end I found out that it is easier to setup PHP for IIS. The first thing you need to make sure that the IIS feature installed. Then you ......

Local LINQtoSQL Database For Your Windows Phone 7 Application

There aren’t many applications that are of value without having some for of data store. In Windows Phone development we have a few options. You can store text directly to isolated storage. You can also use a number of third party libraries to create or mimic databases in isolated storage. With Mango we gained the ability to have a native .NET database approach which uses LINQ to SQL. In this article I will try to bring together the components needed to implement this last type of data store and fill ......

Using BingMapsDirectionsTask In Windows Phone 7

Windows Phone has a number of great capabilities built into it for developers. The Bing APIs allows you to easily give your application mapping functionality. You may just want to give users directions to a fixed location. What happens though when you want to give a user directions from their current location to an address that they are picking from application data? This article will cover just that scenario. Since almost everything in Windows Phone development is asynchronous this can get a little ......

Reading QR Codes In Your Windows Phone App

I have recently been working on an application for a client that needs to read QR codes. This has lead to some interesting findings. There are a couple of approaches you can use. One is to take a picture and evaluate it for a code and the other is more like the Bing Vision feature. Both of them can be accomplished by leveraging theSilverlight ZXing library from Codeplex. In order to have QR code images to test I would suggest going to QRStuff.com. It is a site where you can freely generate QR images ......

Leveraging Generation App

Generation App is the place for developers to get started building solutions on the latest Microsoft technologies. I originally understood it to be for Windows 8 and Windows Phone 8 development, but you can sign up for a 30 day adventure to build web apps and framework based apps as well. When you sign up you get a list of subject areas to study in order to create the best application possible. You also get daily emails with links to content to help you progress and helpful YouTube videos. The real ......

Scratch–Programming For Kids Or Going Old School

I was watching the TED session on Scratch after seeing it linked to in the DZone newsletter. I was interested to find out what it was and see if my kids might be interested in playing with it. Of course I also needed to find a new programming language to learn for the year (ok, couldn’t resist a little dry humor). The Scratch programming environment can be downloaded from MIT’s site here if you want to give it a try. Scratch is an interesting little drag-n-drop language that is great for understanding ......

Learn A New Programming Language Every Year?

I heard someone mention the other day that they have forgotten more programming languages than most developers have learned and it made me remember all the suggestions to learn a new language every year. I have probably even made this suggestion before. As I thought about it I realized that it isn’t important for it to be a language that your learn, it is just important that you learn something new. Experiment with a new platform, study data theory, join the enemy’s camp and understand their point ......

Key Windows Phone Development Concepts

As I am doing more development in and out of the enterprise arena for Windows Phone I decide I would study for the 70-599 test. I generally take certification tests as a way to force me to dig deeper into a technology. Between the development and studying I decided it would be good to put a post together of key development features in Windows Phone 7 environment. Contrary to popular belief the launch of Windows Phone 8 will not obsolete Windows Phone 7 development. With the launch of 7.8 coming shortly ......

Review: TypeMock Isolator 7

I was recently given an opportunity to review the TypeMock Isolator v7 framework. This is a very feature rich add-in for Visual Studio which simplifies unit testing by putting all the features you need right at your finger tips. Below is an abbreviated list of features found in the product. Components AutoRunner Failed Test Analyzer Coverage Test Auto-Complete The biggest productivity feature is the unit testing dashboard which drops down from the top of your Visual Studio code window. It provides ......

Windows Phone 8 Announcement

As if the Surface announcement on Monday wasn’t exciting enough, today Microsoft announce that Windows Phone 8 will be coming this fall. That itself is great news, but the features coming were like confetti flying in all different directions. Given this speed I couldn’t capture every feature they covered. A summary of what I did capture is listed below starting with their eight main features. Common Core The first thing that they covered is that Windows Phone 8 will share a core OS with Windows 8. ......

Document Your APIs

I have been working on a Windows Phone application for the user group that I help to run and have been experiencing head ache after head ache. The problem isn’t the Windows Phone development itself. The issues are with the external web service APIs that I am trying to use for sites like SlideShare and Box.net. The main issue is that while there is a lot of documentation and examples for the output of the APIs, the input format is sketchy at best. The web service for SlideShare, for example, requires ......

Implementing Team Foundation Server 2010 In A Mixed Development Environment

Most of us spend our time in Visual Studio writing .NET code within a Visual Studio solution. Given this situation we find it very easy to integrate with Team Foundation Server for our source control and have a well known work pattern. But what happens when you want to use TFS as source control for non-Microsoft development? The most important thing to remember is that source control should be as transparent as possible to the developer. If the particular language or product does not have an Integrated ......

Wire Framing WP7 Apps With Cacoo

While looking for a free alternative to Sketchflow I landed on the Cacoo web site. Any developer who decides to use the free Visual Studio tools may find themselves doing the same search. The base functionality of Cacoo is free although there are certain features that have fees attached to them such as extended stencils and templates. Cacoo doesn’t seem to have a template for WP7. It does have templates for iOS and Android development so I started with the Android template and started modidfying ......

Ways To Pass Time On Window Phone – TouchDevelop

A co-worker was showing me an in phone scripting environment on the iPhone and I knew I had seen one mentioned for the Windows Phone before. TouchDevelop is an app from Microsoft Research that allows you to create small applications that do a wide variety of operations including using most of the capabilities of the device. So could this be a fun way for us geeks to waste some time while waiting for our oil to be change or a table to open up at your favorite restaurant? So what does this language ......

Using JSON.NET To Load Twitter Search Results In WP7

The main way that Twitter provides feeds is through JSON. Unfortunately the version of the .NET Framework that is on the phone does not include the System.Runtime.Serializatio... namespace. Rather than trying to brute force the JSON feed I have been looking into using the Newtonsoft JSON.NET library. The first thing that I ran into with JSON.NET is that the documentation is severely tilted to the serialization side with almost no mention of deserialization. This would have been my preferred approach ......

Discovering Your Project

The discovery phase of any project is both exciting and critical to the project’s success. There are several key points that you need to keep in mind as you navigate this process. The first thing you need to understand is who the players in the project are and what their motivations are for the project. Leaving out a key stakeholder in the resulting product is one of the easiest ways to doom your project to fail. The better the quality of the input you have at this early phase the better chance you ......

Full Development Archive