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

Keyhole Software Earns AWS Consulting Partner Status

Keyhole Software AWS, Company News, Consulting, Keyhole Leave a Comment

We are proud to announce that Keyhole Software has earned its status as an Amazon Web Service Consulting Partner.

Keyhole Software is now a Standard Tier Consulting Partner in the Amazon Web Services (AWS) Partner Network (APN), joining an elite group of technology partners nationwide. The partner network consists of professional services firms that help customers design, architect, build, migrate and manage their workloads on AWS platforms.

Keyhole earned the APN Standard Consulting Partner designation due to a demonstrated level of expertise with the AWS platform through a combination of customer testimonials, professional certifications, and investments in employee educational programs. Companies that have gained this status have demonstrated deep expertise in delivering customer solutions on AWS…. 

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.

Create your own web bots in .NET with CEFSharp!

Matt Cunningham .NET, JavaScript, Programming, Tutorial Leave a Comment

Have you ever wanted to create an automated way to load, manipulate, and then act upon a web page?

Using CEFSharp (and some strategic JavaScript), you can create headless (no GUI) interfaces of Chrome’s parent browser, Chromium, and then instruct them to do pretty much anything a web browser can do.

This is a tutorial about using CEFSharp to accomplish some basic web functions with simple examples. We’ll create three automated bots that can simulate user web interaction and programmatically react to browser events using CEF and the CEFSharp library. You can follow along by copying the code provided or by downloading…

Creating A Blockchain In JavaScript

Vince Pendergrass Blockchain, JavaScript, Technology Snapshot Leave a Comment

Blockchain is all the buzz now. And for good reason! A distributed public ledger that is extremely secure through encryption?! Imagine the millions of applicable use cases. A blockchain can be created and maintained using any modern language.

For the purpose of this blog, let’s dive into a blockchain written in JavaScript. Hopefully, this doesn’t just serve as a simple code example but also gives a very basic understanding of how a blockchain actually works.

Do keep in mind this will be very simplist…