Image representing the Articles category

Creating Custom Page Templates with Unique Code Behind Classes in Visual Web Developer Express or Visual Studio

Published 14 years ago

Visual Studio (2005 and later) has a nice feature to create your own templates that appear in the Add New Item dialog of a web site. This feature enables you to create new files, such as a Web Form, to your liking and then export it as a template so you can base new items on it.

Read on ...
Image representing the Articles category

Comparing Collections of Type BusinessCollectionBase

Published 14 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

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

Published 14 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

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

Published 15 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 15 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 15 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 15 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 15 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 15 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 ...
Image representing the Articles category

N-Layered Web Applications with ASP.NET 3.5 Part 6: Security

Published 15 years ago

Note: this is the last part in a series of six. If you rather read this entire series off-line, you can buy the series as a convenient PDF document that comes with the full source. Besides the convenience, buying the PDF will also make you feel good as it shows your appreciation for the articles and helps me pay the bills for my server and hosting so I can keep running imar.spaanjaars.com and continue to provide you with great content. For more details, check out this post that shows you how you can buy the entire series right now.

This is part 6 of a six-part series of articles on N-Layer design. This article series builds on top of my three part series on N-Layer design that I released in early 2007. If you haven’t already done so, be sure to check out these articles first, as a lot of code and concepts used in this new series is explained in detail in the older series.

In this last article in the series, I'll deal with security in your N-Layered web application.

Read on ...

Mobile: False

Crawler: True

I: False