WebLog Posts in Category ASP.NET

Back to Basics: UTC and TimeZones in .NET Web Apps
February 10, 2015 @ 4:21am

Storing dates in persistent storage using UTC dates is a widely accepted best practice. But it's surprisingly complex using date data effectively if you want to let the user see dates and query data in their local time zone. Looking around I noticed that there's not a lot of comprehensive info on this topic, so I decided to take notes and write down some of the approaches I've used in this post. This post combines and overview and a number of helper routines specifically geared towards user timezone adjustments in typical ASP.NET Web applications.

Project Navigation and File Nesting in ASP.NET MVC Projects
June 30, 2014 @ 10:28pm

Project navigation in large projects can be a pain as you have to sift through large amounts of files. I found myself re-organizing projects in a few different ways to make project navigation easier. In this blog post I share a few different approaches as well as some useful tooling to improve my daily workflow.

A dynamic RequireSsl Attribute for ASP.NET MVC
June 18, 2014 @ 1:37am

In ASP.NET MVC the RequireHttps attribute allows for securing controllers and controller methods, but it's limited to either on or off statically. In this post I discuss a custom attribute that can dynamically set SSL usage based on a configuration setting or delegate.

Updated ASP.NET Database Resource Provider
March 31, 2014 @ 5:53pm

I've updated my database ASP.NET Resource Provider project into a more formal project with a new home page, and official GitHub repository for the source code as well as a getting started video. In this video I talk about what's new and a few examples on how to use the provider.

Auto Selecting Cultures for Localization in ASP.NET
March 27, 2014 @ 5:11am

When creating multi-language Web sites, one of the key issues you need to deal with is how to assign a culture to display the appropriate resources. Whether you need to auto-switch locales based on browser language, or explicitly assign a locale based on user preferences there is generally some code logic involved in making these decisions. In this post I show what options are available and a small helper that simplifies setting the culture in ASP.NET applications.

Re-examining ASP.NET and Helios Performance Tests
December 09, 2013 @ 2:17pm

Spend a little time over the weekend re-running some of my ASP.NET raw throughput benchmarks on my new machine and found some interesting results. Much faster, but also some surprises with self-hosting and efficiency surprises with various Web API approaches.

Routes, Extensionless Paths and UrlEncoding in ASP.NET
November 14, 2013 @ 8:13pm

When using custom routing in your ASP.NET applications be careful with encoding routes into paths. Specifically make sure that embedded route paths are properly encoded and that you watch out for a few gotchas related to path encoding. This post demonstrates how to set up routes for a WebForms app and demonstrates a couple of potential problems of manual route encodings and the fixes.

Use IIS Application Initialization for keeping ASP.NET Apps alive
October 02, 2013 @ 1:42pm

Ever want to run a service-like, always-on application inside of ASP.NET instead of creating a Windows Service or running a Console application? Need to make sure that your ASP.NET application is always running and comes up immediately after an Application Pool restart even if nobody hits your site? The IIS Application Initialization Module provides this functionality in IIS 7 and later, making it much easier to create always-on ASP.NET applications that can act like a service.

Rendering ASP.NET MVC Razor Views outside of MVC revisited
July 15, 2013 @ 1:48pm

Rendering ASP.NET MVC Views outside of the context of MVC can be immensely useful for various administration, error and logging tasks. Luckily there are some easy ways to render MVC even outside of an MVC controller. Here's some information on how to make that happen.

A first look at SignalR
May 22, 2013 @ 5:23am

Last month I finally had a chance to use SignalR in a live project for the first time, and I've been impressed by what this technology offers to .NET developers. It's easy to use and provides rich real-time two way messaging between client and server applications, as well as the ability to broadcast message to all connected clients. This is technology that offers many opportunities to rethink of what we can build with Web applications.

A small, intra-app Object to String Serializer
April 01, 2013 @ 2:41am

On a few occasions I've needed a very compact serializer for small and simple, flat object serialization, typically for storage in Cookies or a FormsAuthentication ticket in ASP.NET. XML and JSON serialization are too verbose for those scenarios so a simple property serializer that strings together the values was needed. Originally I did this by hand, but here is a class that automates the process.

Using plUpload to upload Files with ASP.NET
March 12, 2013 @ 3:42am

plUpload is a popular client side multi-file upload component. In this article I describe a small library that abstracts the server side processing of uploaded files with an HTTP handler demonstrate putting it all together with a small Image Upload sample application.

Visual Studio Web Publish Lockup? Check for invisible Window
February 21, 2013 @ 12:25am

If your Web Publish dialog appears to lock up Visual Studio when you click on the Publish option, most likely the Web Publish window is hidden on a second screen that is not currently visible. Here's how you can work around this annoying little bug.

Caveats with the runAllManagedModulesForAllRequests in IIS 7/8
October 25, 2012 @ 11:15pm

IIS 7 and 8 support using Managed Modules to handle access to all IIS request content which is very powerful. But sometimes you actually want to not handle non-ASP.NET content and it's not very obvious how to minimize access to non-ASP.NET requests in managed modules.

Creating STA COM compatible ASP.NET Applications
September 18, 2012 @ 6:36pm

When it comes to deploying STA COM components in ASP.NET only WebForms has native support for STA component. Other technologies like MVC, ASMX Web Services and WCF run only in MTA mode. If you need to run your STA COM Components in ASP.NET here is what you need to know and a few tools that help you create STA compatible handlers.

ASP.NET Frameworks and Raw Throughput Performance
September 04, 2012 @ 6:13pm

I got curious the other day: How do the various ASP.NET framework compare in raw throughput performance? With so many development choices on the ASP.NET stack available today it's interesting to take an informal look at how raw throughput performance compares.

Rendering ASP.NET MVC Views to String
May 30, 2012 @ 1:53am

Creating templated text output that's not tied to the HTTP output stream is a frequent requirement in my applications. Rendering confirmation emails, password resets, validations and notifications all generate text through templates that require string or stream output that doesn't get sent to HTTP. Here are some helpers that make it easy to create string output from MVC Views...

GZip/Deflate Compression in ASP.NET MVC
April 28, 2012 @ 4:00am

If you want to create ASP.NET MVC content that uses gzip or deflate compression you need to use some custom code. Here's an action filter that compresses content in your ASP.NET MVC applications.

Internet Explorer and Cookie Domains
April 25, 2012 @ 6:04am

Got tripped up today by another IE issue: Internet Explorer will not accept Cookies with local domains set for the Cookie Domain and fail silently.

ASP.NET MVC Postbacks and HtmlHelper Controls ignoring Model Changes
April 20, 2012 @ 2:19am

Today I discovered an MVC behavior I hadn't noticed: For HTML helper controls MVC always uses POSTBACK values to display the control value rather than model values when the View is rendering in a POST back. In effect this means that MVC Views can't update the value of controls during a POST back using the standard HTML Helper Controls.

Wishful Thinking: Why can't HTML fix Script Attacks at the Source?
April 14, 2012 @ 5:49pm

I'm dealing with user HTML input in a Web application today and again I curse over the complexities involved in sanitizing this html. So today I started dreaming about a possible alternative...

Changing the default HTML Templates to HTML5 in Visual Studio
December 23, 2011 @ 4:19am

The default WebForms templates in Visual Studio still use the XHTML doctype headers by default. HTML5 doctype headers are easier to use and read and with HTML5 support now becoming mainstream and backward compatible with older browsers its time to switch those doctype headers. This post demonstrates how to change the default VS templates or create new templates altogether. With HTML becoming more prominent and the new headers being easier to read and smaller in size, it's

Debugging Application_Start and Module Initialization with IIS and Visual Studio
December 15, 2011 @ 2:19am

If you're running the full version of IIS and you try to debug your Web application's startup code in Application_Start you might have found that you can't debug this code as the debugger doesn't break there. Here's why and some easy ways you can work around this limitation.

HTML 5 Input Types - How useful is this really going to be?
December 10, 2011 @ 9:13pm

The HTML 5 input controls enhancements seem like a nice feature - until you look a little closer and realize that that validation and styling these control enhancement use are likely going to interfere with your existing application logic and styling. Here are are some thoughts on the subject.

HTML 5 Input Types on WebForms Controls
December 10, 2011 @ 8:24pm

HTML5 input types are new, and as it turns out ASP.NET Webforms input controls can easily create HTML5 input elements.

Loading jQuery Consistently in a .NET Web App
October 10, 2011 @ 12:56pm

Loading jQuery into a page consistently across the lifetime of an application involves, managing versions and updating urls frequently. In this post I look at my preferred way to load jQuery and how to manage the script reference that gets embedded into the page with a single update location.

Getting a Web Resource Url in non WebForms Applications
October 05, 2011 @ 3:29am

Need to retrieve Web Resource Urls from a .NET assembly, but not running in WebForms? Here's how you can create a small helper function that lets you retrieve WebResourceUrls from Razor or MVC applications.

ActiveX component can't create Object Error? Check 64 bit Status
June 19, 2011 @ 11:55pm

When moving applications to 64 bit servers be sure to check that you don't call old school, 32 bit COM objects. If you do these COM object calls fail. Thankfully IIS 7 and later allows Application Pool configuration to enable 32 bit operation to work around this issue. Here's how.

Built-in GZip/Deflate Compression on IIS 7.x
May 05, 2011 @ 1:42am

IIS 7.x makes content compression via GZip very easy. Here's how compression on IIS works and how you can set it up on your server in a few simple steps.

ASP.NET GZip Encoding Caveats
May 02, 2011 @ 3:17am

GZip and Deflate compression is easy to use in ASP.NET applications, but there are a few caveats that you need to watch out for. This post reviews the basics of implementing compression in ASP.NET code and describes a couple of scenarios that can cause problems when using programmatic compression via Response.Filter.

Error on 64 Bit Install of IIS – LoadLibraryEx failed on aspnet_filter.dll
April 04, 2011 @ 1:07pm

Ran into a problem on my 64 bit machine with IIS trying to load 32 bit dlls. Turns out this is a misconfiguration that occurred from some additional installation that failed to set a specific bitness valuie and pointed to 32 bit install. Here's what happened and how it got fixed.

Custom ASP.NET Routing to an HttpHandler
March 28, 2011 @ 3:02pm

Routing support in ASP.NET 4.0 has been vastly improved, but custom routing still involves a fairly complex process of creating RouteHandlers and mapping requests properly. In this post I show an example of how to create custom routes automatically via Attribute route mapping for Http Handler endpoints.

Changing an HTML Form's Target with jQuery
January 30, 2011 @ 3:44am

If you have multiple submit or link buttons in an ASP.NET Page and one or more of those buttons needs to post to a different target there's no built-in way to force one or more of those buttons to POST to a different frame/window. With a little bit of JavaScript though it's real easy to change the form's target dynamically as needed.

Retrieve the full ASP.NET Form Buffer as a String
January 17, 2011 @ 3:04am

How do you get the full Request.Form buffer in an ASP.NET request as a string? Here's how with a simple function.

WCF REST Service Activation Errors when AspNetCompatibility is enabled
January 06, 2011 @ 2:54pm

Ran into a version problem with WCF REST Services when using on IIS and with ASP.NET Compatibility enabled. Turns out there's a potential version conflict in the system .config files that can cause this error to creep up - here's how to fix it.

1 comment
A Closable jQuery Plug-in
November 29, 2010 @ 12:30pm

I've found it very useful to have a closeable plug-in that hide the content of an HTML element providing a visual close image cue. Almost every UI I build these days requires either closing pop up windows or even more commonly requires that items are removed and visually hidden which usually implies 'close' behavior. In addition to removing a bunch of HTML markup, having a plug-in is also quite useful for server controls especially if multiple behaviors (plug-ins) need to be applied.

Adding proper THEAD sections to a GridView
November 18, 2010 @ 5:12pm

ASP.NET's GridViews (and the older DataGrid) don't generate the best HTML and one of the common problems I run into is that headers aren't generated with proper thead tags. With a little jQuery script help this can be fixed easily when the page loads. Here's how.

Request Limit Length Limits for IIS’s requestFiltering Module
October 28, 2010 @ 10:57pm

Got bit during an update today by code that ran just fine on my dev machine and failed on OpenID logins on the live machine. Turns out RequestFiltering was not allowing the long OpenID urls to be served, a problem that's easy to hit with the default settings in Windows Server 2008.

1 comment
Microsoft Introduces WebMatrix
August 17, 2010 @ 3:44pm

Microsoft recently released a preview of WebMatrix a tool geared towards hobby/non-developer types to build Web applications. This all in one environment is supposed to simplify Web development with having to be an expert. In this post I review some of the interesting features and how they stack up.

AspNetCompatibility in WCF Services – easy to trip up
April 12, 2010 @ 3:51pm

When using ASP.NET compatiblity in WCF REST services you'll want to be very careful in matching your configuration settings and service attributes in the correct combination or you may end up with unpleasant and hard to find ServiceActivationExceptions.

HttpContext.Items and Server.Transfer/Execute
January 20, 2010 @ 4:32pm

I got bitten by a the fact that the Context.Items collection stays active throughout the ENTIRE lifetime of an ASP.NET request including Server.Transfer and Execute calls. In certain situations this can cause big problems if you expect the items to be unique for the specific page/component request.

Speaking at the Portland Area .NET User Group on Tuesday Sept 1st
August 27, 2009 @ 9:49pm

I’ll be speaking at the PADNUG meeting next week in Portland at the Microsoft office. Rich Hubbins asked me to present on jQuery again as I did last year. A lot has changed in the last year and when I gave the last presentation jQuery was just starting to get some attention in the .NET world. By now many more people have been using jQuery for a while so  this talk likely will hit a different...

Url.Action() and RouteValue Encoding
July 19, 2009 @ 5:21pm

When creating custom URLs with the UrlHelper.Action() method is a great way to create links to other URLs in the current Web application. However, you need to be careful of certain encoding issues as certain characters are not correctly encoded to work properly as parameters.

Creating a quick and dirty jQuery contentEditable Plugin
May 25, 2009 @ 11:20pm

Inline editing content is a feature that's novel and highly useful at the same time. I've been using it in a number of admin interfaces to provide very easy and quick text updates to existing content. There are a number of ways to accomplish this but in this post I'll discuss a contentEditable jQuery plugin that makes any content inline editable using the DOM's contentEditable attribute that maintains text formatting in the editable text.

Where's my .NET 3.5 (on IIS), Dude?
March 24, 2008 @ 12:36pm

I just delivered a small 3.5 application to a  customer in compiled form and told him to install the application on IIS. The company is one I've dealt with on a few occasions and they are .NET aware shop where I deal with developers and a .NET familiar IT department. But it wasn't long after I sent my email that I got a call back from the customer who - slightly embarrassed - mentioned that they couldn't find the 3.5 Runtime option in the ASP.NET configuration panel.