Progressive Web App Tips and Tricks

John Boardman CSS & HTML, HTML5, Problem Solving Leave a Comment

PWA (Progressive Web App) is a powerful solution to multiple problems. Prior to PWA, there were some browser-specific implementations to some of the problems solved by PWA, but PWA is much more elegant while solving more problems at the same time.

In this post, we’ll cover the problems PWA was created to solve, some of the solutions PWA replaced, tools that make PWA development faster and more flexible, and tips to get the most out of PWA development.

Using C#, XAML + Uno Platform to Build One Codebase, Cross-Platform Apps

Rukesh Shrestha C#, Mobile, Problem Solving, Technology Snapshot Leave a Comment

For more than a decade, we have been developing applications with C# and XAML. Throughout that time, the pair has really only been known for Desktop (WPF) and UWP applications.

Later came Xamarin, which utilizes C# as a unified language to share between all platforms. Then Xamarin.Forms was introduced, which was different in that it utilized XAML to develop the user interface with a single codebase for cross-platform (iOS, Android, UWP).

This progression has excited all the WPF developers out there. The only remaining platform left was web development. At one time, Silverlight was the option, but it was deprecated because of heavy loading and security concerns of browser plug-in solutions.

Then came the WebAssembly [also known as Web Assembly Modules (WASM)] that web browsers can directly execute without having to parse a source file.

In this post, we will discuss how to create a rich user browser interface using the cross-platform Uno Platform and WebAssembly technology. The example application will walk through building Models, ViewModel and View under a shared project that is common to all different platform-specific projects.

Spring Boot and React: Happily Ever After

Matt McCandless Problem Solving, React, Spring Boot, Technology Snapshot Leave a Comment

So you have mastered Spring Boot and started toying around with React. Now you want React to talk to your Boot app as your back-end API. That’s fabulous. You probably already know how to do this, but there is a kicker. You want to package them and start both of them as just one project.

Well, you’re in luck! This blog is going to take a couple of simple projects and combine them into one project. Lace up your boots and get ready to React!

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