Industry Insights, Information, and Developer News
A working knowledge of C# can take you a long way -- but many developers hit a wall when it comes to truly understanding why they should use certain language features and design patterns. It's one thing to know how interfaces or dependency injection work in principle. It's another to understand their practical value in writing maintainable, testable, and adaptable code. And that "why" is often what separates an intermediate developer from an advanced one.
Posted by David Ramel on 09/11/20250 comments
Share
If you've built any .NET MAUI applications, you know that ViewModels are the heart of your UI logic. And if you've tried to write unit tests for those ViewModels, you've probably discovered that testing INotifyPropertyChanged implementations can be... frustrating.
INotifyPropertyChanged
I was recently working on a MAUI app where data binding seemed to work inconsistently. Sometimes the UI would update when the ViewModel changed, sometimes it wouldn't. The problem? The ViewModel wasn't raising property change notifications correctly, and they had no tests to catch these issues.
Posted by Benjamin Day on 08/19/20250 comments
If you're like me, you probably write a lot of the same boilerplate C# code over and over again. Maybe it's for test setup, property declarations, or spinning up a new DbContext. And while I love IntelliSense, sometimes I just want to type a few characters and have a whole code block explode into place.
That's where Visual Studio Code's user-defined snippets come in. They're like supercharged autocomplete -- and once you get the hang of them, you'll wonder how you ever lived without them.
Posted by Benjamin Day on 07/22/20250 comments
Backlogs are meant to be the source of truth for what a team is building and why -- but all too often, they resemble a bottomless to-do list more than a meaningful product roadmap. When the backlog grows unwieldy, teams lose sight of user goals, product outcomes, and the overarching narrative that should guide development.
That's where Story Mapping comes in. Developed by Jeff Patton, Story Mapping transforms a flat, ticket-based backlog into a visual, goal-oriented artifact that reflects the user's journey and the product's intended impact. It helps teams zoom out, prioritize work with purpose, and build a shared understanding across roles.
Posted by Visual Studio Magazine Editors on 07/07/20250 comments
I don't know about you but if you're like me, you have 50 trillion little snippets of code and half-developed apps all over the place on your dev machine. It's all those little one-off applications you wrote to do some kind of little thing that you maybe need to use once or twice a year. Well, did you know that you can actually package them up, publish them, and share them on NuGet? Yah. Rather than letting all that code just sit around doing nothing, you can share them as a .NET Core Tool.
Posted by Benjamin Day on 06/18/20250 comments
As generative AI capabilities evolve from novelty to necessity, developers are seeking new ways to integrate intelligence directly into the user experience—without sacrificing speed or accessibility. One frontier showing particular promise is real-time AI: systems that process and respond to user input instantly, whether it's voice, text, or other dynamic data streams.
Posted by David Ramel on 05/29/20250 comments
It might not be the most exciting thing in the world but there's a lot of great stuff in the System.ComponentModel.DataAnnotations namespace. Last month, I wrote about using Component Model attributes to customize how ASP.NET Core forms are displayed. This month, I'm going to talk about using Component Model attributes to do validation in ASP.NET Core.
Posted by Benjamin Day on 05/20/20250 comments
In my last article, I talked about how you can use ASP.NET Editor Templates and Display Templates with the Html helper methods to keep your display logic understandable, maintainable, and organized. If you ran the sample application (or looked at some of the screenshots in the article) you might have noticed that the formatting of the field names was kind of messed up. For example, "LastName" instead of "Last Name" and "FirstName" instead of "First Name."
LastName
Last Name
FirstName
First Name
Posted by Benjamin Day on 04/21/20250 comments
Change-bringer and 21-time Microsoft MVP Robert Bogue studies employee burnout, but he doesn't believe in work-life balance. He believes in work-life harmony. It's an interesting difference.
Long hours, shifting priorities, and the relentless pressure to deliver clean code under tight deadlines -- these are just a few of the stressors that define life in modern software development. While the work can be deeply fulfilling, it can also take a mental and emotional toll, leading many developers down the path of burnout. It's a phenomenon most in the industry have either experienced firsthand or witnessed in colleagues: the creeping exhaustion, rising cynicism, and sense of ineffectiveness that can sap motivation and stifle innovation.
Posted by David Ramel on 04/15/20250 comments
Whenever I sit down to write one of these articles, I always struggle with whether to write about things that are super-advanced vs. super-basic. My goal though is to try to write about things that are somewhat obscure but handy in the hopes that I can smooth out the learning curve for someone -- especially people who are just getting going with .NET Core. ASP.NET Core has a zillion great features, but lots of them are hidden. One of my favorites (and the topic of this month's article) is ASP.NET Core Editor Templates and Display Templates.
Posted by Benjamin Day on 03/31/20250 comments