• Dynamically retrieving the executing assembly version attribute - C#

    In our C# project the version attribute is defined in a CS file as: 

    assembly: AssemblyVersion("3.6.2.5")]

    To dynamically retrieve that via code, use the command:

     

  • Override Default SPAN Tag for Composite Controls

    When creating a composite control in ASP.NET, by default, the main container tag that holds all of your controls and HTML is output as a SPAN tag.  One of the issues with this default behaviour is that SPAN elements (at least according to the standard) are "inline" elements.  As opposed to something like "DIV" elements which are "block" level elements, SPAN tags are inline and should only contain other inline elements.  So if you are adding any block level elements to your composite control, in order to be aligned with standar

  • Add Icon for Custom Control / Composite Control

    When a custom control is placed on the toolbox, if it is a professionally made control, it usually has a really nice icon associated with it instead of the default ("paper-looking") icon that Visual Studio inserts when no icon is available.  When you build your own custom control, you can add an icon for the control and embed it in your component's DLL assembly so that it is shown on the toolbox whenever someone adds your control.

  • CSS File Include Order

    Most of the time, when elements are put in the HTML HEAD tag, order does not matter.  But in the case of CSS, not only do styles cascade from the include file to the local file to the element, but styles also cascade in the order that files are included in the page's HEAD tag.  The following is a quick test that shows how the order that files are included affects the rendering of a CSS styled element.  This CSS code has been tested on Internet Explorer 8, Safari 4, and Firefox 3.5. 

  • CSS Shorthands and Input Styling

    The following is a list of useful shorthands for specifying typically large CSS properties in a small and succinct one line definition.  This not only keeps your CSS files clean and easy to read, but more importantly, it significantly reduces the size of your CSS files. 

  • Checking if Browser Supports Cookies (ASP.NET)

    Most of the time, when you check forums about checking if a user's browser has cookies enabled, you will see posts that say you should use the following:

  • Performance benchmarks for ODBC vs. Oracle, MySql, SQL Server .NET Providers

    I did a simple benchmark for the 3 main databases (Oracle 11g, MySQL 5.1, SQL Server 2008) to see how using ODBC compares to using their native providers in .NET for all database access. To keep things on an even playing field, all 3 databases were run on the same machine, with the exact same database name, table name, and schema. Database authenticaton was used by all databases.

  • Connecting to SQL Server, Oracle, and MySQL with Database or Windows Authentication

    I’ve created a tool to help test different connection strings and settings for the various databases. The information out there on certain database connection types is poor at best so this was put together over a week long process of testing and reverse engineering. A lot of forums and blog posts were pieced together to figure all of this out.

  • Get the list of ODBC data source names programatically using C#

    Many times, you may need to get the list of currently set up ODBC data source names on the machine where your code is running from. There is no .NET API to get this list so you have to monkey with Windows registry a bit to find the list. There are 2 different types of ODBC data sources you can set up (User and System). The Data Source Names can be found in Windows by going to Administrative Tools->Data Sources(ODBC).

  • Fixing Relative Paths in C# ASP.NET When Using Url Rewriting

    UPDATE: This method is generally used in situations where you have relative paths in your project so that links (image, href, css, etc) work on your development environment (where the VS web server inserts a virtual path), as well as your production environment that may or may not have that same virtual path.  The simpler way to handle this situation is to change the virtual path in your development environment.  To do this, click on your web site project and look in the properties dialog.  You should see a Virtual Path setting.