Tim Murphy's .NET Software Architecture Blog

PSC

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

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

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

Full PSC Archive