Rick Strahl's Web Log

Wind, waves, code and everything in between...
ASP.NET • C# • HTML5 • JavaScript • AngularJs
Contact   •   Articles   •   Products   •   Support   •   Search

Strongly Typed Configuration Settings in ASP.NET Core



ASP.NET Core provides built-in support for using strongly typed classes to represent configuration information. The configuration system provides a flexible mechanism for using different configuration storage providers and mapping those providers to your strongly typed objects. In this post I show how to set up strongly typed resources and use them in your ASP.NET Web applications.

Read more...

Using Westwind.Globalization to edit loose RESX Files



Although Westwind.Globalization is primarily aimed at Web applications, you can also use it to edit arbitrary RESX files using the Localization Administration interface that comes with the library. In this post I show how you can import RESX resources, then use the editor to manipulate RESX resources interactively, and then export the resources back out, using a local Web application on your machine.

Read more...

Creating Single Instance WPF Applications that open multiple Files



If you're building document centric applications, Singleton style EXE applications are pretty common. Rather than creating new windows for each opened file, a more common scenario is to open new tabs in a single instance. In this post I'll describe how to create a WPF application that allows only a single instance to run and passes command line arguments passed in secondary instances to the primary instance and I'll describe some pitfalls that you might have to watch out for.

Read more...

Getting 'motivated' to move to SSL and HTTPS



The pressure is on: HTTPS is pushed front and center more and more as we see the browser vendors and API tools providers, making SSL encryption no longer an optional part for many things that you build on the Web. SSL and HTTPS are becoming a requirement and for good reasons. I personally ran into this with the Google Maps API in one of my applications that now requires an HTTPS based client page in order to use this API. In this post I discuss some of the issues and why this is actually a good thing, and some of the steps I took to move my existing site to HTTPS.

Read more...

Windows 10 Bash Shell Network Connectivity not working?



When trying out the Windows 10 Bash on Ubuntu shell, I ran into several problems with networking. Turns out that there are issues with IPv6 and by swapping or removing the IPv6 nameserver entries with IPv4 versions connectivity can be restored back.

Read more...

Google AdSense for AJAX Content



I recently redesigned one of my Web sites to use dynamic page re-loading for additional page content, which broke the original AdSense ad code. In this post I'll describe how to get AdSense ads to work with AJAX loaded content by explicitly calling Googles ad code from your dynamic navigation code.

Read more...

Configuring ASP.NET and IIS Request Length for POST Data



One of the most infuriating things about IIS configuration in general is how the Request length is configured in the IIS and ASP.NET. There are several places that control how much content you can send to the server and over the years this setting has changed in a number of ways. The places where it's configured is not super obvious and they can be fluid because some of these features are...

Read more...

Custom Message Formatting in WCF to add all Namespaces to the SOAP Envelope



Over the last few days I've been fighting with a Web Service that does not allow inline namespaces which WCF copiously uses by default in its generated service proxies. In this post I describe how to create a custom message formatter add namespaces explictly to the SOAP envelope.

Read more...

Reversing Sort Order on DOM Elements using jQuery



When creating list content in Web pages, it's often quite useful to allow users to sort or reverse the order of items displayed. Creating client side sortable lists is easy to do and in this post Rick shows an easy way to make a list reversible using jQuery.

Read more...

Code Magazine Article: Flexing your HTML Layout Muscles with Flexbox



Flexbox is a relatively new CSS based technology that makes it much easier to create structured layouts with HTML and CSS. Based on a containership hierarchy, Flexbox combines the structured features of tables with the free form layout capabilities of arbitrary HTML elements that make it possible to create complex , yet flexible HTML designs much more easily that was otherwise possible. My article in CoDe Magazine describes the reasons for Flexbox, the basics of operation and few practical examples you can use today to put flexbox to use.

Read more...

Registering and Unregistering a VSIX Extension from the Command Line



If you use VSIX extensions and you need to install them as part of an installation script, you can use the VSIX Installer executable that ships with Visual Studio to control the install and uninstall process.

Read more...

Using Let's Encrypt with IIS on Windows



Let's Encrypt is a new, open source certificate authority for creating free SSL certificates. In this post I show you how you can use some of the API clients on Windows to create Let's Encrypt certificates for use in IIS.

Read more...

Flexbox Containers, PRE tags and managing Overflow



I ran into nasty problem with PRE tag overflow behavior, which caused content of PRE tags to not respect the boundaries of the container even when overflow rules were set. It turns out the problem was due to Flexbox and the min-width setting that is set differently than standard DOM Block mode rendering.

Read more...

FontAwesome Fonts and Mime Types in IIS and other Web Servers



When using Font-Awesome on IIS (and other Web Servers) you might find that the server is not serving the .WOFF2 or .WOFF file that is requested by Chrome for the FontAwesome font files. Although Fontawesome works fine regardless, you'll want to address the 404 error by serving the preferred file. Here's how.

Read more...

Microsoft renames ASP.NET 5 to ASP.NET Core 1.0



ASP.NET 5 has been renamed to ASP.NET Core 1.0 and in the process some major changes are happening to the framework very late in the release cycle. In this post I take a look at some of the concern I have when I see these drastic changes so late in the release cycle and some thoughts on how I've worked with ASP.NET Core so far and some of the trepidations I have moving forward.

Read more...

Styling all Text Elements with the CSS :not Filter



HTML5 has a proliferation of INPUT types and when you need to style these types in an application the list can get quite long. You can cut down on the size of the list and simplify remembering which INPUT types you don't want styled as text, by using the CSS :not() selector. This post shows how.

Read more...

Resetting Entity Framework Migrations to a clean Slate



I've had a number of problems with Entity Framework Migrations getting out of whack to the point were I can't get the database and the migrations into sync to accept new changes. I've found that rather than spending hours fixing out of whack migrations it's sometimes much easier to simply wipe the slate clean and create a new initial migration. This post describes the steps on how to remove existing migrations and create a new initial migration from the current schema.

Read more...

jQuery-resizable and Table Column Resizing



Last week I posted about a small jquery-resizable plug-in I'd built. Many questions came in about how to handle table column resizing using this plug-in and in this post I demonstrate how with a little extra work, you can also create resizable table columns using the jquery-resizable plugin.

Read more...

A small jQuery Resizable Plug-in



I recently had a need for a simple resize component and couldn't find a lightweight implementation. I ended up creating a small jquery-resizable plug-in. In this post I discuss a few use cases for resizables and show the jquery-resizable plug-in, how it works and how it's implemented.

Read more...

Going Big: 40 Glorious inches of 4k with the Philips BDM4065UC



A couple of weeks ago I bought a behemoth 40 inch 4k monitor, the Philips BDM4065UC. It's a relatively cheap 4k monitor that is massive and as it turns out 40 inches is the perfect resolution to be running for a 4k display. In this post I'll describe what it's like to run a 40" display and provide a few details about this particular monitor.

Read more...

Path Environment Editing Improvements in Windows 10



Windows 10 Update 1 has apparently added a nice improvement to editing environment variables and more importantly added a real list based editor for the plethora of global and private paths that seem to sneak into developer machines and their system PATH configurations.

Read more...

Serving URLs with File Extensions in an ASP.NET MVC Application



I ran into an issue trying to create a specific file URL for Windows Live Writer in an MVC application, where I needed to return a very specific file based URL with an extension from an MVC application. Turns out that this is not as easy as it sounds.

Read more...

Mysteriously stubborn IIS 401.2 Errors



I ran into a nasty IIS issue yesterday that took me the better part of a day to get myself out of. It involved particularily stubborn Authentication requests from ASP.NET applications when there shouldn't have been any. It turns out the culprit was some corrupted config files - here's the why and how.

Read more...

Talking about ASP.NET 5 on .NET Rocks



Last week I got a chance to talk to Carl and Richard about my experiences with ASP.NET 5. The good, the bad and th obnoxious. Ok maybe none of the latter. Great discussion on why we need a reboot on ASP.NET and how the process of building ASP.NET has affected developers trying to keep up with the latest bits.

Read more...

Announcing West Wind Web Surge 1.0



After an extended beta period I'm happy to announce West Wind WebSurge 1.0. Web Surge is a light weight and super easy to use HTTP Url and Load testing tool that is great for API testing and stress testing Web applications under load. In this post, I'll talk about some of the motivations for this tool and take a tour through a bulk of the features.

Read more...