My Book


Pro ASP.NET Website Programming

Pro ASP.NET Website Programming Book Cover
Pro ASP.NET 2.0 Website Programming shows you how to harness the ASP.NET technology to build websites that tackle real business needs. It provides ideas and practices that help reduce maintenance costs, decrease development time, and manage user perception. It discusses not only the technical implementation but the business reasoning behind the ideasusing real business situations, drawn directly from the my consulting experience.
Publisher: Apress
Published: December 2005
ISBN-13: 9781590595466

Available on APress.com, Amazon.com and Barnes and Noble.

My Articles


Published by Simple-Talk.com on July 17th, 2009

Although there may be layers of humility obscuring the fact, most professional developers think, at their core,  that on a scale of one to ten they are pretty awesome.   And why wouldn’t they?  Developers tend to have two paths to travel in their career.  One direction leads towards a painful realization of syntactic incompetence where every day is filled with the fear of someone discovering your ineptitude.  Naturally, this results in the subsequent search for a sales or marketing career.  In the opposite direction lies a conquest of projects that boosts your confidence and ego until you firmly believe that your skills range somewhere between the epic and the immortal. 

But if your code were laid bare, torn down to the nth degree and analyzed, would that feeling of immortal skill be spared?  It is certainly a question worth asking, and ANTS Performance Profiler from Red Gate Software can help determine the answer.  A while back, I wrote a cryptography library to simplify encryption and hashing operations.  I consider it good solid code, and I’ve used it on a number of projects without any noticeable issues -- performance or otherwise.  In the sections that follow, however, I’m going to run it through ANTS Performance Profiler to see if it can spot anything that my immortally epic awesomeness missed. 


What Does it Take to Build the Best RIA?
Published by DevX.com on March 13th, 2008

My friend's sofa was hemorrhaging copious amounts of stuffing and had long ago lost any semblance of comfort or style normally required of furniture. Nevertheless, we found ourselves parked on the unsightly couch awaiting the start of Gojira, an iconic 1954 Japanese horror movie more commonly known by its English remake entitled Godzilla. It's one of those movies you watch with friends when you have almost nothing else to do. Poorly dubbed kung-fu movies are also a good option.

Basically, the film is about an enormous, radioactively-mutated, dinosaur-like sea monster that trashes Tokyo. The movie has a plot, possibly even a sub-plot or two, but those qualities are quickly lost against the amazing special effects that brought the awe inspiring Godzilla to the big screen: most notably a guy in a big rubber lizard suit stomping around a miniature balsa wood Tokyo. In 1954 it was an amazing display of cinematic grandeur, but today, well… not so much. Audiences have come to expect a significantly higher degree of realism in visual effects.

Those same people who require a small army of CG experts, designers, consultants, and editors to impress them at theaters head home shortly thereafter and browse the Web with ever increasing visual and interactive expectations. Soon enough they'll run across your Website, and keeping up with those demanding expectations requires more than HTML has to offer, which is why Rich Interactive Applications are such an important topic for business trying to make an impression. But with a variety of RIA technologies on the market, how do you choose which one is best for you and your Website?


Published by DevX.com on March 12th, 2008

Open source encompasses a concept, a culture, and a development model employed by both businesses and programming communities alike. Traditionally, open source has focused on the Linux operating system because it is one of the most commercially prominent examples of open source development. If you find someone who embraces the open source culture and ask him or her to rattle of a list of the languages available for someone looking for a low-cost development option, then you are likely to hear a list similar to the following: Java, PHP, Perl, Python, Ruby on Rails, C++, TCL/TK, and maybe even Lua. Rarely do the Microsoft .NET languages C# and VB.NET come up as options. In fact, you rarely hear Microsoft technologies discussed in open source circles because of the propensity to focus on Linux, even though Microsoft offers an impressive assortment of tools and languages for open-source developers and has become an increasingly popular platform for open-source development projects


Published by DevX.com on July 10th, 2007

As my client explained his business processes in scattered and disjoint terms, my mind was focused entirely on an idea. I was attempting to capture his business processes in a diagram for the current discussion and future reference, but we continually found ourselves revisiting past sections as nuisances of the business emerged. For me, that meant a lot of time consuming reformatting of the diagram to make enough space to add information and keep things legible. Business owners are not normally impressed with dead time during a meeting as you push little squares around a screen, so the brilliant idea I had become fixated on was to build a diagramming tool to automatically adjust the diagram layout as elements are added or removed. This would alleviate the tedious formatting time during a meeting and allow me to focus more intently on the client’s business. Brilliant ideas are often shelved when the goal looks unattainable, and I quickly realized that I had neither the time nor the domain knowledge required to build a descent diagramming solution. I was about to scrap my idea when I ran across ILOG’s Diagrammer for .NET. It quickly brought my idea back into the realm of attainability.


Published by Simple-Talk.com on June 5th, 2007

Microsoft SharePoint 2007 gives you the option of using forms authentication, but the out-of-the-box forms-based login experience is fairly bland. It’s not bad if you’re doing something for internal use, but if you’re doing something for internal use then you’re probably using Windows authentication. Forms authentication is normally found on external or customer facing sites where corporate branding is a big deal, and master pages play a major role in presenting a consistent look and feel throughout a SharePoint site. But when you apply a master page to a publishing site, or edit the default.master in a team site, you’ll quickly find out that it doesn’t alter the look and feel of the login page. In this article, we’ll take a look at why that is and what you need to do to get your login page in line with your corporate brand.


Published by Simple-Talk.com on May 8th, 2007

The latest rendition of SharePoint is built on top of ASP.NET 2.0, so ASP.NET developers should feel right at home developing against, and customizing, SharePoint 2007. In fact, some of the "latest technologies" in SharePoint, like Master Pages and Forms Authentication, are "not-quite-the-latest technologies" from ASP.NET. In this article, I'll cover some of the quirks to Forms Authentication that you will doubtless encounter when trying to set it up in SharePoint.


Published by DevX.com on March 4th, 2007

One reality of software development is all projects have bugs. You can try your best to avoid bugs while coding, but the level of complexity in today’s software makes it impossible to account for everything that could possible go awry. Factor in fatigue from working long hours, and even the best developers are going to have missteps at some point or another. Failing to adopt an appropriate testing approach to help identify bugs along the way can have as devastating an impact on your project as a hurried or non-existent design. Fortunately, automated testing tools like Automated QA’s Test Complete 5 make the process of creating structured testing affordable and significantly less time consuming.


Published by Simple-Talk.com on January 10th, 2007

In my last article, I covered a technique for Token Replacement in ASP.NET, which works from anywhere in your application. Simply put, token replacement is a matter of searching through a string for a token and replacing it with a value of your choice. All of the code for making the actual string replacement is nicely packaged in the Replace method on the String and StringBuilder objects in the .NET Framework, so the real task is getting the webpage to render as a string with which you can work. This article expands on that technique and introduces Regular Expression-based token replacement into the process, giving you even more power and flexibility in your applications.


Published by Simple-Talk.com on November 1st, 2006

As a web developer, you will encounter situations that call for an effective token replacement scheme. Token replacement is really just a technologically-savvy way of saying string replacement, and involves substituting a "real" value for a "token" value in a string. This article presents a powerful approach to token replacement in ASP.NET 2.0.


Published by Simple-Talk.com on September 26th, 2006

I remember talking to a business owner who provided me with this bit of insightful wisdom: 'Everyone is happy as long as everyone is making money.' As it turns out, he screwed his employees and business partners out of every dollar he possibly could, leaving everyone pissed-off and miserable. So you can say that he proved the statement to be true, using reverse induction. Suffice it to say, it’s not fun when someone refuses to compensate you for your hard work.


Published by Simple-Talk.com on September 11th, 2006

You can develop for obvious exceptions. Code reviews may catch some of the ones you missed. And your QA team can chip away at your application to uncover a lot more. But nothing exposes errors like deploying your application into production and letting real users give it a savage beating. As much as we'd like to think that we can release error-less software, the fact is that it's next to impossible. Don't get me wrong, releasing error-free software is a valiant pursuit and one that every developer should strive towards, but the reality is that code is complex, end-users tend to find ways to do things that defy both logic and reason, and you can't account for the nearly infinite number of scenarios that can occur when the two mix. The question is, how can you effectively respond to those unforeseen issues?


Published by Simple-Talk.com on July 11th, 2006

Building an understanding of architectural concepts is an essential aspect of managing your career. Technical interviews normally contain a battery of questions to gauge your architectural knowledge during the hiring process, and your architectural ability only becomes more important as you ascend through the ranks. So it's always a good idea to make sure you have a good grasp on the fundamentals. In this article you will explore a key component of application architecture known as the Data Access Layer (DAL), which helps separate data-access logic from your business objects. The article discusses the concepts behind the DAL, and the associated PDF file takes a look at a full-blown DAL implementation. This is the first in a series of articles discussing some of the cool things you can do with a DAL, so the code and concepts in this article form the base for future discussions.


Published by Simple-Talk.com on May 5th, 2006

Most Web Parts implementations allow users to create a single portal page where they can personalize the look, feel, functionality, and experience of their "My Home" page in an application. But what if you want to take Web Parts a step further and allow users to define a personalized interface that applies to a series of pages in an application? Wouldn't it be useful if your users could place helpful tools and components on the periphery of your application and have those available on each page they visit instead of just on their "My Home" page? Absolutely! The question is how do you do it?


Published by ASPToday.com on August 31st, 2004

Smart Navigation is a feature built into ASP.NET that makes postbacks smoother by remembering the page scroll position, retaining element focus, reducing screen flicker, and not registering the postback in the browser’s history. This greatly enhances the user experience for pages that make use of postbacks, but it only works in Internet Explorer 5.5 and up . In this article we will discuss how to build page position and focus tracking features that will work in all modern, standards compliant browsers.


Published by ASPToday.com on August 15th, 2004

If you have ever needed to execute client script before submitting a Web form, then you may have run across a behavioral issue with the .NET Framework. The RegisterStartupScript() method is used to place client script in the onsubmit event of a Web form, where you would always expect it to be executed before form submission. When Web controls use the AutoPostBack mechanism, however, the onsubmit code will never get executed. This can cause a great deal of frustration if you need your script to execute every single time the form is submitted. This article presents a structured method for overcoming this limitation by hijacking the __doPostBack() function and ensuring your submit script is executed as expected.


Published by ASPToday.com on March 22nd, 2004

Web applications are becoming more graphically intense due to demands from people switching to browser based applications from the desktop environment. In this article I will discuss the implementation of a fully functional graphical dropdown list control. Along the way I will touch on topics such as state management, using collections inside of your control, client-side scripting, and other issues of which you need to be aware when making your own custom controls.