Part 1: JavaScript Application Introduction

Chris Berry Articles, Development Technologies & Tools, JavaScript, Node.js, Single-Page Application, solidfoundationsseries, Vue.js 2 Comments

Part of the Solid Foundations Learning Series
This is the introductory post to an in-depth series of articles that will tell the story of why and how a specific web application was built. In a nutshell, it is a JavaScript-based suite of single-page applications optimized for use in a microservice environment.

In this post, we will set the stage for the series and introduce the overall design and structure of this application. In future posts of this series, there will be technical discussions about certain parts of the application and there will be theory discussions for other aspects of the application.

The web application we will be talking about started its life as a simple NodeJS and Express application….

April 10: Public vs. Permissioned Blockchains with Hyperledger KC

Keyhole Software Articles, Blockchain, Educational Event, Hyperledger Leave a Comment

As organizers of the new official Hyperledger Kansas City Meetup, the Keyhole Software team is excited to host the third meetup of the group on April 10, 2019.

The topic for this event is titled “Public vs. Permissioned Blockchains.”

Attend for an in-depth introduction to permissions and identity management in blockchain networks implemented with Hyperledger Fabric. We’ll introduce the pros and cons of public blockchains when compared with permissioned blockchains…

Microservices Anti-Patterns

Dallas Monson Agile, Articles, Consulting, Microservices 1 Comment

Microservices? Yeah, you’re doing it wrong.

Microservices is a silver bullet, magic pill, instant fix, and can’t-go-wrong solution to all of software’s problems. In fact, as soon you implement even the basics of microservices all of your dreams come true; you will triple productivity, reach your ideal weight, land your dream job, win the lottery 10 times, and be able to fly, clearly.

While this sounds like a lot of hyperbole wrapped up in some BS, if you have been listening to anything around microservices recently you will most likely have heard something not too far from this exaggerated sentiment – especially if it is coming from sales folks.

As a result of this, you or someone you know will likely have been charged by management to implement a solution in microservices or refactor an existing application to take advantage of microservices to ensure that you get all the magic. With so much overinflation of the truth out there, chances are you may have also implemented a microservices antipattern. These antipatterns are actually more common in the wild than fully functional microservices architectures.

Overview
In this post we will cover the most common antipatterns that I have witnessed in the wild:

Break the Piggy Bank
Everything Micro (Except for the Data)
We are Agile! a.k.a. The Frankenstein

Each one of these results from a common misconception. We will do our best to define these patterns and their symptoms. After each, we will also show a way out of the mess so that you can recover and begin to move towards a better implementation. Let’s get started!

Lean Mean Vue Machine

Chris Berry Articles, Development Technologies & Tools, JavaScript, Vue.js Leave a Comment

The year is 2019 and Command Line Interfaces abound for many of the big name JavaScript frameworks such as Angular CLI, Create React App, and the Vue CLI.

But wouldn’t it be nice to go back to the days when you could just drop a simple script tag on a page and be able to run an application? Well, here is my attempt in trying to accomplish just that.

In this post, we create a working Vue.js web application with standard CRUD functionality and deploy it without any extra dependencies other than the actual application itself.

.NET Memory Management with dotMemory

Jason Schmidtlein .NET, .NET Core, Articles, Development Technologies & Tools 3 Comments

Given the maturity of the .NET Framework and the automated nature of its memory management, many developers are guilty of glossing over (or even outright ignoring) whether their code is optimal in terms of CPU and memory usage. Personally, I have caught myself making sure my code is maintainable, testable, and extendable while forgetting to consider memory management in terms of nonfunctional aspects.

While the .NET runtime does a great job and memory corruption is extremely rare, we should still be concerned with memory management, particularly in large-scale .NET base applications.

This concern isn’t limited to on-premise applications. It’s easy to forget about memory usage with cloud computing. Azure Functions and AWS Lambda have billing structures based upon the average memory size per second of function execution. The direct correlation between memory usage and cost couldn’t be more transparent.

Fortunately, there are many great tools to help profile and analyze your memory footprint. JetBrains has a fantastic tool called dotMemory which makes it easy to profile processes, auto detect issues, perform deep analysis, and determine traffic. dotMemory can be installed as either a stand-alone tool or as a part of the ReSharper package integrated into Visual Studio.

In this post, we’ll show how to use dotMemory to generate a memory profile and analyze a memory leak in a .NET Core application.