A couple years ago I decided to stop using Windows Live Writer for authoring blog posts and build my own publishing tools using markdown and VSCode. Live Writer was a fantastic tool during its heyday, but some features started to feel cumbersome. Adding ... more
Previously on OdeToCode I posted about tracking down an AspNetCore build error. Once I realized the access denied message came from the ProgramData\Microsoft\Crypto\RSA\MachineKeys folder, I went searching for reasons why this might happen, and to find ... more
UseNodeModules is a NuGet package I put together a few years ago. The package gives you an easy way to install middleware for serving content directly from the node_modules folder in an ASP.NET Core project. public void Configure(IApplicationBuilder ... more
Today's release of .NET Core 3 is significant. By supporting Windows desktop development and dropping support for the full .NET framework, v3 makes a statement - not only is .NET Core here to stay, but .NET Core is the future of .NET. Included in all ... more
Here are some questions, with answers, from my interview session at Pluralsight LIVE!. How did you get started in .NET programming? I was working for a Microsoft shop when Microsoft first released .NET. At the time I was writing COM components in C++. ... more
I've been in the guts of an ASP.NET MVC 5 application lately and have some more perspective on the improvements we take for granted in ASP.NET Core. Tag helpers are far easier to read and write compared to HTML helpers. There were days when I wanted ... more
There are hundreds of performance testing tools for the web. The tool I’ve been using the most for the last 10 years is a part of the web test tools in Visual Studio. Microsoft officially deprecated these tools with the 2019 release. The deprecation ... more
In a previous opinion, we looked at the responsibilities of the Startup class in ASP.NET Core. A consistent problem I run across in code reviews is the amount of code that gravitates into the Startup class, making the entire file cluttered and not well ... more
I was trying to debug a dotnet publish operation on an ASP.NET Core project recently and becoming irrational after staring at MSBuild log files for too long. MSBuild does all the heavy lifting in dotnet publish and build operations. That’s when I discovered ... more
I’ve been using Azure DevOps since the early days when the service carried the name Visual Studio Online . I’ve used the service for both professional projects and personal projects, and I’ve enjoyed the service so much I’ve demonstrated and recommended ... more
In a previous post I mentioned that a scripts directory can be a welcome addition to any source code repository. What goes into scripts ? Anything you can automate to make a developer’s life easier! Examples for Inspiration Here’s a script I’ve used ... more
If you use npm to manage client-side dependencies for ASP.NET Core applications, and you deploy to Azure App Services using Git, then you need a way to run an npm install during deployment in App Services. There are a few options available for customizing ... more
I’ve been trying to figure out the most efficient approach to counting matches in a Cosmos DB array, without redesigning collections and documents. To explain the scenario, imagine a document based on the following class. class Patient { [JsonProperty(PropertyName ... more
In my Developing with Node.js on Azure course I show how to setup a Git repository in an Azure App Service. When you push code into the repository, Azure will use heuristics to figure out the type of application you are pushing into the repository. The ... more
In addition to the .NET course, I've completely updated my Developing with Node.js on Azure course. In the course we'll build and deploy web applications, work with with Azure SQL and Cosmos DB, store files in Azure storage, develop and deploy Azure ... more
For the last 10 months I’ve been working with Azure Functions and mulling over the implications of computing without servers. If Azure Functions were an entrée, I’d say the dish layers executable code over unspecified hardware in the cloud with a sprinkling ... more
Catching up on announcements … About 3 months ago, Pluralsight released my Developing with Node.js on Microsoft Azure course. Recorded on macOS and taking the perspective of a Node developer, this course shows how to use Azure App Services to host a ... more
Continuing on topics from code reviews. Last year I saw some C# code working very hard to process an application config file like the following: { "Storage": { "Timeout": "25", "Blobs": [ { "Name": "Primary", ... more
Doing some work where I thought Power BI Embedded would make for a good solution. The visuals are appealing and modern, and for customization there is the ability to use D3.js behind the scenes. I was also encouraged to see support in Azure for hosting ... more
In modern web programming, you can never have too many tokens. There are access tokens, refresh tokens, anti-XSRF tokens, and more. It’s the last type of token that I’ve gotten a lot of questions about recently. Specifically, does one need to protect ... more
The joke I’ve heard goes like this: I went to an all night JavaScript hackathon and by morning we finally had the build process configured! Like most jokes there is an element of truth to the matter. I’ve been working on an application that is mostly ... more
Here are a few small project I put together last month. AddFeatureFolders I think feature folders are the best way to organize controllers and views in ASP.NET MVC. If you aren’t familiar with feature folders, see Steve Smith’s MSDN article: Feature ... more
My latest course is now available on Plurasight. From the description: Reactive programming is more than an API. Reactive programming is a mindset. In this course,you'll see how to setup and install RxJS and work with your first Observable and Observer. ... more
The hosting model for ASP.NET Core is dramatically different from previous versions of ASP.NET. This is also one area where I’ve seen a fair amount of misunderstanding. ASP.NET Core is a set of libraries you can install into a project using the NuGet ... more
This post is one in a series of posts where I describe common problems developers face using ES2015 features of JavaScript. In this post we look at modules. The Syntax Pitfall The first pitfall developers hit when using modules is making assumptions ... more
Over the summer I gave a talk titled “The New Dragons of JavaScript”. The idea was to provide, like the cartographers of the Old World, a map of where the dragons and sea serpents live in the new JavaScript feature landscape. These mythological beasts ... more
Over the summer I gave a talk titled “The New Dragons of JavaScript”. The idea was to provide, like the cartographers of the Old World, a map of where the dragons and sea serpents live in the new JavaScript feature landscape. These mythological beasts ... more
The 1.5 release of Angular JS is a release you should take a close look at if you, like me, still have some Angular 1 work to do. The new component based programming model simplifies application development with Angular by providing a cleaner API and ... more
Compared to Angular 1, Angular 2 offer more choices for working with forms and more control over the data flow between a form and a model. However, I feel that Angular 2 provides form-related APIs and directives that are quirky and confusing, while also ... more
The word template in web programming makes one think of a reusable document or string you can combine with model data to produce output. Famous examples include Razor, Jade, and Handlebars. Template literals in JavaScript are not templates in this same ... more