Image representing the Articles category

Comparing Collections of Type BusinessCollectionBase

Published 16 years ago

A while ago (actually a long while ago but I didn't have the time to post this earlier), I was approached by Amanda Myer with a question about comparing and sorting BusinessBase objects in collections that inherit BusinessCollectionBase, discussed in my article series on N-Layer design in .NET 3.5.

Read on ...
Image representing the Articles category

Fixing Issues with HTML Help Workshop

Published 16 years ago

I am working on an application that ships with documentation in the form of a Windows Compiled Help file. To build the help file I use Sandcastle and the excellent Sandcastle Help File Builder. Building the help file is part of a continuous integration plan so the help file is always up to date.

Read on ...
Image representing the Articles category

Using the ASP.NET Login Controls with Mail Servers that Require SSL

Published 16 years ago

Some of the Login controls that ship with ASP.NET, such as CreateUserWizard, ChangePassword and PasswordRecovery enable you to send e-mail to your users without writing a lot of code. You just drag and drop a control, assign a mail body template and you're pretty much done. However, as soon as your mail server requires you to use SSL (as, for example, GMail does), things become a little trickier. In this short article I'll show the code and configuration needed to send mail to servers that require SSL.

Read on ...
Image representing the Articles category

Automatically Generating Class Diagrams from a Type Using Reflection

Published 16 years ago

Before I launched my web site www.dotnetattributes.com in early 2009 I generated most of the content automatically using reflection and web look ups. I extracted all the various attributes from .NET assemblies using the Managed GAC API Wrappers and I extracted a lot of class details and documentation from the MSDN site using the HttpWebRequest class. One thing I hadn't automated at first and was planning to do manually using Visual Studio was generating class diagrams. However, soon after the first full import attempt I ended up with more than 1,200 attributes so manually creating the diagrams suddenly did not seem so attractive anymore.

Read on ...
Image representing the Articles category

How to handle the error "The specified string is not in the form required for an e-mail address."

Published 16 years ago

Recently I saw a number of people (a colleague and some readers of my book Beginning ASP.NET 3.5 in C# and VB) run into an ASP.NET error indicating that the "specified string is not in the form required for an e-mail address". This error is quite common and usually pops up when developers or end users are supplying a value that doesn't match the syntax rules for an e-mail address. However, in the recent cases I saw this error popped up at the moment a new MailMessage class is constructed. That means the code crashed even before it tried to assign an e-mail address to one of the To, CC, Bcc or From properties through code. So what happened?

Read on ...
Image representing the Articles category

Proper Handling of 404 Errors Using redirectMode

Published 16 years ago

ASP.NET has a handy feature that lets you easily determine an error page that gets displayed in case an error occurs on your server. Using the customErrors section in the web.config file you can assign specific pages that are displayed for specific HTTP error codes. The following example shows how 404 errors (page not found) and 500 errors (server errors) are routed to the file ~/Errors/Error404.aspx and ~/Errors/Error500.aspx respectively. All other errors are handled by the generic ~/Errors/Error.aspx page:

<customErrors mode="On" defaultRedirect="~/Errors/Error.aspx">
  <error statusCode="404" redirect="~/Errors/Error404.aspx" />
  <error statusCode="500" redirect="~/Errors/Error500.aspx" />
</customErrors>

Although easy to use and set up, this solution has some drawbacks that might impact how search engines see your site and how 404 errors are treated. The good news is: these problems can easily be overcome.

Read on ...
Image representing the Articles category

Using a Local Pickup Folder for Email Delivery

Published 16 years ago

Many of the web applications I build make use of e-mail somehow. Whether it's the ASP.NET Membership services that send out account confirmations or reset passwords, or some custom logic that sends out e-mail, I typically used an SMTP server on my local network or one from an ISP. However, using a remote server isn't the fastest nor most secure way to send mail.

Read on ...
Image representing the Articles category

Checking the Existence of an ASP.NET Membership Username with ASP.NET AJAX

Published 16 years ago

If you have been using the Membership features that ship with ASP.NET, I'm sure you're familiar with the CreateUserWizard control that lets a user sign up for an account on your site. One of the features of this control (in cooperation with the Membership services) is to check whether a given user name is already taken and display an appropriate message if that's the case. This is an excellent feature as it makes sure no two users can end up with the same user name.

One of the problems with this check is that it takes place at the server. This means the page goes through a full post back which takes some time. Even worse, due to security settings on the control, the two password fields are reset so the user has to enter them again in case they chose an existing user name. It would be a lot easier if you could check the user name before the page is posted back using a bit of client side script. With ASP.NET AJAX and Page Methods, this is a walk in the park.

Read on ...
Image representing the Articles category

Extending ValidationBase to Validate Properties of Type ValidationBase

Published 16 years ago

A couple of days ago I got an e-mail from Maarten van der Lee with some code that can be used in my Validation Framework of my N-Layer Design article series to validate sub properties whose type is a ValidationBase as well. This can be useful if you want to present a full list of validation errors for an object and its properties.

Read on ...
Image representing the Articles category

Introducing Spaanjaars.Validation.SharedAttributes

Published 16 years ago

Last week Scott Brady sent me the code for a number of attributes compatible with the validation framework I use in my article series on N-Layer design.

Read on ...

Mobile: False

Crawler: True

I: False