Posts

"Proof" for the period of a simple pendulum using only dimensional analysis

This is not a mathematical proof for the period of a simple pendulum. For that you can find the basics in any first year physics book. This is just a thought experiment which I think illustrates the power of simple dimensional analysis. Take the following Simple Pendulum. Its Period (t) is the time …

Exploring Stowage

I originally came across Stowage on the blog aggregator Awesome .NET. Its github repo has a description which reads “Stowage is a bloat-free .NET cloud storage kit that supports at minimum THE major cloud providers.” That caught my attention because I’d been contemplating how best …

JsonEnvelopes .NET Standard Library

Description # JsonEnvelopes is a simple .NET Standard library which utilizes a concrete implementation of JsonCovnverter<T> (System.Text.Json) to serialize and deserialize objects in a way that allows message receivers to be agnostic with respect to message type. Messaging in .NET # Any …

Comparing Performance of gRPC, Web API and WCF Services

I started paying attention to gRPC about a year ago. Almost every gRPC advocate and evangelist I came across touted its performance capabilities as a significant value-add over other available service technologies. The release of .NET Core 3.0 came with a new gRPC project template so I dove right …

Configuration in Blazor Client (WASM)

I’ve been working with Blazor Client (WASM) a fair amount recently and a couple of days ago someone asked me about how to load configuration from a file. I’d never had the need for that type of configuration before but it got me curious about what was possible. After a little searching I …

Exploring LiteDB

Last year I saw a reference to LiteDB on Awesome .NET. It described itself as “An embedded NoSQL database for .NET”. That drew my attention. A short examination of their documents further peaked my interest. LiteDB describes its target scenarios in the Where to use section of the GitHub …

.NET Core configuration, a deeper dive

In my previous post .NET Core Configuration Files I discussed a simple and resilient method of accessing configuration data with .NET Core. In this post I’ll explore .NET Core configuration options in greater depth. For this discussion let’s start with the following appsettings.json …

An Early Exploration of Blazor

My first exposure to Blazor was prior to it having a name. In late 2017 I watched a recording of Steve Sanderson’s NDC Oslo 2017 presentation Web Apps can’t really do that, can they? He discussed four emerging web technologies being supported by the major browser manufacturers. One of those …

Vue.js

Several months ago I found myself contemplating the creation of yet another HTML client, this time to help in prototyping a larger application concept I was working on. I wanted the client to be responsive and I didn’t want to put a lot of work into it. There’s a wide variety of …

My year with a MacBook

I’m primarily a .NET developer but for a year I worked exclusively on a MacBook using Boot Camp to run Windows 10. Like many software companies the one I work for provides its development staff with options for their working computers. My options were a MacBook Pro or a Dell. I’d used …

F# / C# Project Comparison

My first look into F# was in 2011 when I read Programming F#. I enjoyed working through that book and I realized that F# had opened the door to functional programming in .NET but at the time C# was vastly superior in both available information and developer experience. I set F# aside. Recently I …

My Latest Exploratory Application, TrackIt

Every couple of years I settle on the general design for a full-stack application which I then use to explore various technologies and architectural patterns. I refer to these as my exploratory applications. In my 2014 post RecipeBox is Live I discuss the public release of one such application. A …

Getting Squirrelly...again

Previously # I first investigated Squirrel.Windows as a technology for Windows application deployment two years ago during a search for an alternative to ClickOnce (my 2 cents). I documented some of those efforts in my post ClickOnce, Squirrel and Nuts. In that post I expressed a very favorable …

Comparing Data Stores

Background # I’ve found myself trying to quantify differences between available data store options in .NET many times over the last decade. Historically I’ve performed such comparisons using a simple Console Application project in Visual Studio. I’d write test methods to provide …

Scheduling Azure WebJobs

Scheduled Azure WebJob Options # I had a need to understand the options for scheduling Azure WebJobs. I quickly found the Azure documentation article Run background tasks with WebJobs which provides two possible methods for scheduling the execution of a WebJob, CRON expression and the use of Azure …

Azure App Service deploy from VS with Fiddler running

Yes I did. I attempted to deploy to an Azure Web App from VS2015 while Fiddler was running. Of course it failed. More importantly I received a very generic connection error. This is exactly what you’d expect from such a simple “attack”. Azure App Service +1

.NET Core Configuration Files

For this discussion let us assume we wish to store configuration in the file config.json. { "epicswords": { "stormbringer": "elric", "excalibur": "arthur" } } If you start investigating configuration for .NET Core you’ll discover reading from .json files …

Azure App Service Editor

I recently stumbled across an item under Azure App Service’s Development properties called “App Service Editor (preview)”. It can be found in the Development Tools section of any Azure App Service application’s properties. Of course I clicked it. I found this. I’ve been …

My First Ghosting

I’m trying out Ghost for the first time. I’ve wanted to find an alternative to Blogger for a while now but just hadn’t put the effort into it. Blogger is tremendously easy to blog with but the presentation of the blog itself really shows its age. I wanted to find something with the …

A Walk Through Azure Functions

A Rocky Start # I saw the initial announcement for Azure Functions in one of the Azure newsletters. I watched two channel9 videos and read what documentation I could find. I even emailed a friend about it. I was pretty excited. My first experience with Azure Functions was a couple months back. It …

Node Development on Windows

Until the long file name issue is fixed node.js development on a Windows machine is going to continue to suck. That is all.

Azure Resource Naming

On several occasions I’ve had issues with the naming of my Azure resources. The most annoying of these issues was when I’d created a resource for prototyping in one subscription, deleted it and then attempted to recreate it with the same name under a different subscription only to discover that the …

ClickOnce, Squirrel and Nuts

Background # In a post two years ago I expressed my admiration of ClickOnce. At the time we’d experienced years of tremendous success using it as our client application’s primary deployment mechanism and since that time it has not faltered. I now regret to say that over the last year …

Inital thoughts on Visual Studio 2015 RTM: Not Ready for Prime Time

I’m a HUGE fan of Visual Studio. In my opinion it is the best IDE available by a wide margin. I’ve been a heavy user of every version since VS2003 and I dabbled in several previous to that. I’ve anxiously awaited each new release and then migrated immediately and I’d always …

Microsoft Build 2015

Pre-Build # Just as last year my flight from Portland to San Francisco was delayed due to foggy conditions in the bay area (note to self: no further morning flights to SFO). This year my wife Lynda accompanied me and we finally landed in SFO around 1:00 PM only an hour late. The flight was smooth …

Handy Windows Shortcut

In File Explorer hold Shift+Right-Click on any selected item or group of items and you’ll find the context menu item “Copy as path”. Selecting this will add the path strings for the selected items to your clipboard. For example the image below shows a folder and two files selected …

Comparison of Empty Versus Web API ASP.NET Web Application Templates (VS 2013)

A quick comparison of the complexity of Web API versus Empty templates in ASP.NET Web Application creation. Values were recorded through inspection of the projects and the project folders after a successful debug compile. Empty template, Web API core references NuGet Packages: 5 References: 22 …

Azure SQL Performance Level Comparison

Abstract Currently Azure SQL allows you to configure your database in one of three service tiers, i.e. Basic, Standard and Premium. The service tiers each allow you to select one of several performance levels. In all you have eight possible performance levels; Basic, S0, S1, S2, S3, P1, P2, P3. The …

Boeing's Big Data

I recently attended the seminar CloudFest Azure Workshop at the Microsoft offices in downtown Portland, OR. The event was hosted by Northwest Cadence and the Marquam Group and had two tracts, Dev/Ops and Azure Active Directory. I attended AAD and ended up leaving half way through the day very …

RecipeBox is Live

I spend time most weekends programming, typically in the evenings over a craft beer at my favorite pub. During these sessions I occasionally perform pressing tasks for my job but most often I use the time to explore and further my craft. Sometimes I watch videos, others I read but mostly I write …

First Azure Database

Getting my feet wet with Azure SQL tonight and I just created my first ever database on the platform. The first step was to create a new server instance since I did not yet have a hosting server. The second page of the creation prompts you to provide credentials for the new server. With no …

Travels on the Source Control Highway

Whether you love your source control system or it drives you completely mad there’s no denying it’s one of the most important tools you have as a software developer. Over the years I’ve used several source control software packages, even going so far as to dabble with writing one …

Microsoft Build 2014 (#bldwin)

Pre-Build # I left home for Build 2014 on the morning of April Fool’s Day after only a couple hours of sleep. I arrived at PDX around 09:00 with my flight to San Francisco scheduled to leave at 11:40. I got through security and settled in at the gate ready to read wile away the remaining …

Visual Studio 2013 HTML Editor...AAARRRRRGGG!

The first version of Visual Studio I used heavily was VS 2003 and since then I’ve used every version typically installing them immediately upon RTM, sometimes even before. I’ve loved every version and each one has become progressively better IMO. Historically I’ve spent very little …

Lenovo Thinkpad X1 Carbon follow-up

I’ve had my Lenovo Thinkpad X1 Carbon for almost exactly a year now so I thought I post a quick follow-up to the original entry I posted last year. First, the keyboard. Within a matter of hours using the original keyboard the enter key started sticking. A new keyboard was ordered and installed …

Early Impressions of TypeScript

I’ve been playing around with TypeScript for several weeks now and, overall, my early impressions are quite favorable. The typing system and its integration with Visual Studio are very nice and seem quite natural to me after working with C# for the last several years. I also like that it …

ng-conf 2014

I spent two days last week sitting in on the online stream of ng-conf 2014 the first ever AngularJS conference. There was a ton of presentations and, as is always the case at these things, some were great and some were lacking. Overall I continue to be impressed with Angular and what it brings to …

Early Impressions of AngularJS

Understand first, I’ve only been working with Angular in my free time over the last couple weeks. With that said I must admit I’m REALLY impressed! Very exciting framework. I dove into Knockout quite extensively a while back and I have high regard for that framework. However, I’m …

ASP.NET Web API doesn't play nice with Entity Framework's dynamic proxy classes.

I have a Web API project which leverages an SQL database through Entity Framework. Pretty standard Microsoft technology stacks I’ve been using for years. When using EF I’ve historically disabled lazy loading and proxy generation due to lack of need for those features. This project I left …

The Death of FitTrack

While working on the MVC implementation for my FitTrack application I googled “cottage cheese” to cross reference a menu item entry. This is what I got. That search was essentially the death of my FitTrack application. Notice the variants of cottage cheese you get if you select the drop …

How HTML5 destroyed my CSLA dream

Let me start by stating, emphatically, I love CSLA.NET! I first became aware of this excellent framework in 2008 when my boss dropped Rocky’s book Expert C# 2008 Business Objects on my desk. In very short order I recognized the enormous benefits CSLA could provide to developers like myself who …

Developing one step forward and two steps back.

I think most developers will probably relate with this frustration. I don’t know how many times I’ve gone to add some cool new feature to an application only to find that it requires an update to some dependent project or another. Almost without fail such an update requires further …

Windows Application Menus Left or Right?

Until recently I didn’t know that menus in Windows applications (File, Tools, Help, etc.) could be presented in more than one way. I discovered this little feature because my new Lenovo X1 Carbon came with the setting set to right-handed which is the opposite of my previous dozen plus Windows …

Lenovo Thinkpad X1 Carbon

After almost five years with my previous laptop I was finally given a new one at work. My old HP has been an absolute work horse and I’ve been very happy with it but it was showing its age in a big way. The battery (my third) was quickly dying, the original hard drive died a couple months back …

Microsoft Patterns & Practices Symposium 2013

I spent three days last week at the 2013 P&P Symposium on the Microsoft campus in Redmond WA. I had high hopes going in that I’d take home a lot of new and interesting knowledge. I ended up being pretty disappointed. This is a list of the sessions along with the immediate impressions note …

JavaScript I Can Live With

I’ve never been a fan of JavaScript. Not because of the language itself. Syntactically it’s a lot like C# (which I love) and functionally it provides a wealth of features for web programming. My issue has always been with actually writing the code. Due to the fact that JavaScript …

Implicit Type Conversion and Arrays

I came across something I found sort of interesting a week or two ago. I had an array of integers that I wanted to use in populating a ComboBox for a tool I was working on. I started to call the ComboBox.Items.AddRange method which simply takes an array of objects. To my surprise I received the …

Visual Studio 2012

I installed Visual Studio 2012 about two weeks ago and I’ve been spending time experimenting with it whenever possible. I have to admit I had more than a few doubts about VS2012 going in. I disliked how Microsoft removed all colors from everything in the UI and the accents like the ALL CAP …

ClickOnce For My 2 Cents

Let me be clear; I love Microsoft’s ClickOnce. I’ve found it to be an absolutely fantastic deployment methodology for many scenarios. It allows developers to create full featured applications and deploy them to end users with little or no pain. Essentially ClickOnce allows for a thick …

I have a dream.

No not “that” dream. The dream I’ve had for several years concerns the future of my personal computer. I envision a time when my “PC” is really just my smart-phone except that it’d have a fully functional desktop OS and everything digital that I need. I want to do …

Browser Wars

My first experience with a “browser” was Mosaic around 1994 in the Washington State University computer labs. I viewed it as a novel and somewhat intriguing toy but I wasn’t overly impressed. Within a year I was sitting in a physics lab on the WSU campus browsing early web sites …

Documentation? Oh my.

I’m at work near the end of a long day. I spent almost the entire day writing documentation. As a developer I understand the absolute necessity of good documentation but good lord it’s boring to write. I do derive a certain satisfaction out of a job well done when it’s complete but …

Silverlight, oh how I'll miss thee.

I’ve fought it. I’ve kicked and screamed. I’ve ranted and raved. But all to no avail. It’s over. Silverlight is dead. More’s the pity. If only it could have gained more traction. If only Apple, Google and the other unknown forces would have adopted change more readily. …

That pesky enum (part 2)

This is part 2 of my previous That pesky enum post. You should read part 1 first. In part 1 I defined the enum Beers and a static class BeersMockEnum and illustrated their use. Now, I make modifications to these types by inserting a new item (Bitter) in the Beers enum and the BeersMockEnum class as …

That pesky enum

The .NET enum, such a simple concept. At the most basic level an enum is a collection of key/value pairs with a restricted string key and an integer value. However, the enum can trick you. It would seem logical that when you define a new enum it’d obey the same rules as would any class you …

The woes of Silverlight binding to a decimal type.

I came across something that grabbed my attention the other day. I was working with a Silverlight application and had bound TextBox controls to two separate decimal properties of a ViewModel class. I was using the default formatting for display and was quite perplexed when I found that even though …

So much code so little time.

EOM

Good UI Designers Rock!

I’ve been playing around with xaml technologies for several years now and it’s given me the utmost respect for truly good UI designers. In the era up to and including Win Forms I’d always thought of myself as a competent UI designer but xaml has change all that. Quite simply there …

A legacy of legacy.

When I first started developing software professionally I remember occasionally finding older code and thinking “how could someone design something so poorly?” I’ve been writing software for the same company now for more than a decade. A few years back I first came across a piece …

Quandary

This week my job duties shifted significantly. I’ve gone from doing primarily hands on development to researching development issues for upcoming projects or current problem processes and then presenting possible solutions to the project’s shareholders. In practical terms this means …

The holy trinity?

Programming, a good craft beer and some down-tempo music.

My first blog post ever

I read an article a while back written by an senior developer at Microsoft in which he advocated that EVERY serious developer should blog. It was some time back so I don’t remember the details but I remember being convinced the idea was not entirely without merit. So here I am. Tonight …