Peter learns something by listening to readers: Visual Studio database projects provide a great environment for making changes to your databases. Here's a brief introduction about how they'll make life easier for you and all the steps for setting one up.
Peter responds to a question: How, in an ASP.NET MVC form, can the user be given two submit Buttons that do two different things?
Reactive Extensions will let you catch interim results from a long running process. Coupled with the Microsoft .NET Framework 4.5 support for asynchronous processing, you don't even have to lock up your client while you process those results.
Peter explains why he doesn't believe in "responsive designs" that allow a single application to work in both the desktop and mobile environments.
When you have a process that can return multiple results over time, then .NET Framework Reactive Extensions will let you simplify your code and manage it better.
Creating a full-featured extension for the ASP.NET MVC HtmlHelper class sounds like a lot of work. But, because of the way the Microsoft .NET Framework works, it's almost trivially easy. To show that, here's an EditBlockFor method that adds a label, a textbox and a validation message to your ASP.NET View.
Here's a grab bag of what you might find useful in the next version of the .NET Framework. It's good news for everyone but ASP.NET Web Form developers.
Peter returns to improve performance by splitting a single table into multiple entities, but this time, he implements his solution using the Entity Framework 6 designer.
There are some occasions when using Entity Framework can really hurt you: When you have tables with hundreds of columns or tables with large payloads. Here's how to get EF6 to do the right thing.
The critical part of security isn't your code; it's the people using your applications. Because of that, increasing your security often makes your applications less secure.
Here's an article about managing transactions that you don't need to read because, with one exception, Entity Framework will do the right thing by default. But, in the .NET Framework 4 and later, you can do more (if you ever need to).
You want the responsiveness that asynchronous programming in the Microsoft .NET Framework 4 provides, but also need your asynchronous methods to work with other code in your application. Here's how the Task object answers all of your problems.
Extension methods provide a great way for extending a class functionality -- but it's interfaces that let you use those methods anywhere you want.
An interaction script bridges the gap between designing concepts and actually adding controls to forms. The interaction script will tell you what your application needs to do, leading you (finally) to what controls you need on which forms.
The principles of great UI design start from a different place than the principles that lead to great application design. They both end up in exactly the same place, though.