Welcome to the new website. This is my place on the net to share knowledge about web, database, and enterprise software. In my day to day work with technology, I have found there is No Silver Bullet [] to the essential difficulties of software development. Essential best practices are situational and defined by context. […]

A database table’s primary key is the field or combination of fields that yield a distinct value for every row in a data table. Beging able to unambiguously distinguish every piece of information in a database is fundemental to the concept data integrity. Practically speaking, natural keys are unweidy whenever they are composed of the […]


Regular .NET applications load assemblies into an application domain on demand. However ASP.NET has special behavior that will automatically load all assemblies in the /bin directory when the application domain loads or reloads. An application domain will unload when any one of the following occurs: An update to web.config, machine.config or global.asax Any updates to […]


There is a definite Art in Computer Programming [] shaped by the Structure and Interpretation of Computer Programs []. From a technical pespective, Refactoring [] is the essential technique to incrementally remove harmful code patterns such as the Go To Statement [] and other AntiPatterns [] such as the Big Ball of Mud []. Following […]


Web applications accessible to the public Internet are guaranteed to be the target of random or focused attempts at mischief or abuse and recovering from a root compromise always painful. At a minimum, web applications require the planned design and consistent implementation of diverse technologies based on: realistic Threat Modeling [] education in the Most […]


SharePoint 2010 Publishing Sites have a cool spell check feature for page content but it is not at all obvious how to add words your own words to the dictionary. Unlike most modern word processors there is no “Add to Dictionary” button on the GUI. Instead you need to: Create a text file called “Custom […]


SharePoint 2010 has a cool Note Board Web Part (a.k.a SPSWC:SocialCommentWebPart) that you can use to share with colleagues []. However, when there are no comments posted it will display the following text: There are no notes posted yet. You can use notes to comment on a page, document, or external site. When you create […]


Despite the occasional protestations to the contrary by HiPPOs [], there are Research Based Web Design & Usability Guidelines [] and Guidelines for Web Credibility [] that should be familiar to all web database software developers with an understanding of the Differences Between Print Design and Web Design []. At a minimum, web applications should […]


Planning for Monitoring SharePoint 2010 is a key component of any enterprise installation. Micorosoft’s free (but unsupported) ULS Viewer is an amazing tool to provide insights into the inner workings of the platform. However it can be difficult to distinguish which errors are actually show stoppers that are presented to your users and which are […]


In the last post Time After Time: Creating a Valid Time Sql Audit Table, we created the basic data structures required for the audit tables. To complete the solution, we are now ready to create an audit trigger that will populate the audit_Orders history table every time the main Orders table is modified and discuss […]


In an earlier post Time After Time: Temporal Modeling for Sql Audits and Historic Views I discussed the concept of Valid-Time tables. This is a powerful technique that can be used for many different design goals. To further clarify the idea, here is a very basic example demonstrating the use of an Valid-Time audit history […]