.NET Memory Management with dotMemory

Jason Schmidtlein .NET, .NET Core, Problem Solving, Technology Snapshot Leave a Comment

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.

Flow: A Static Type Checker for JavaScript

Lou Mauget JavaScript, Problem Solving, React, Technology Snapshot Leave a Comment

In this post, we’ll discuss the concept of types, compare static and dynamic types, and show an unobtrusive type inference package provided by Flow.org.

Facebook developed and maintains Flow. The package provides static typing to normally late-bound JavaScript code, including React code. It provides this analysis to a JavaScript application, even if it is an existing application.  Flow operates by carrying out a static abstract syntax tree (AST) analysis of type flows at build time.

Running Your Life With Emacs

Garrett Hopper Problem Solving, Programming, Technology Snapshot Leave a Comment

I program a lot, but I also do a lot of other things using a computer.

The problem is, I often want to use the same efficient key bindings I use while programming when I’m doing other tasks. I want to be writing an email or documentation and edit a code snippet in the same way I normally edit code. I want to manage Git repositories right from my editor without having to touch the mouse. I want to browse the web in my editor, so I can easily copy code examples and run them. I want to track my to-do lists and the amount of time spent on each task.

Imagine if there was a tool that could do all that and a ton more in an efficiently consistent way. That tool is Emacs…

Why Event Storming?

John Hoestje Dev Methodologies, Opinion, Problem Solving Leave a Comment

My last Event Storming blog was like a stew I made by throwing in everything from the fridge and pantry. Maybe the stew was okay, but most of the individual ingredients got lost in the mix.

This time, I’m including the points to back my position as to why you should start using Event Storming now. Although, in my opinion, choosing Event Storming doesn’t take a lot of convincing to make it sound more appealing than other techniques.

So why should Event Storming be used in place of other more established domain modeling processes?

While it isn’t beneficial to always try out the latest and greatest whiz-bang gadgets, not keeping tabs on emerging and promising trends can prevent your team from becoming more efficient…

Using Apache POI With Protected Excel Files

Jonny Hackett Java, Problem Solving, Spring Batch, Technology Snapshot 1 Comment

While working on a recent project at a client, we had the opportunity to refactor some data extracts that were using a commercial Excel writing library, which we then converted to using the Apache POI Library for Excel. These data extracts were reports that included some calculated values, and depending on the client, were required to be password protected. When completed, the reports would be emailed to the recipients configured for each client.

In this post, we discuss the challenge of delivering protected Microsoft documents via email. We introduce a Java code solution for emailing password-protected Excel files when using the Apache POI Library.

Some of the required calculations we chose to implement using Excel formulas. Implementing formulas wasn’t a hard task and worked for what was needed.