Click here to monitor SSC
  • Av rating:
  • Total votes: 131
  • Total comments: 31
Damon Armstrong

Customizing the Login Page in SharePoint 2007

05 June 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.

If you’re wanting to know how to enable forms authentication in SharePoint 2007, check out this article: Configuring Forms Authentication in SharePoint 2007.

Where does the login.aspx page reside?

When you try to view a protected page in a forms authenticated site, SharePoint redirects you to the login page (Figure 01). At the login screen, take a good look at the URL in your browser notice that the login.aspx page is in the _layouts folder. If you browse to the directory that houses your SharePoint application, you’ll quickly notice that there’s no _layouts folder in the directory itself. This isn’t a shocking revelation to most because a lot of the pages you see in SharePoint don’t actually exist on the file system. But if you open the Internet Information Services (IIS) manager snap-in and navigate to your SharePoint site, you’ll find that the _layouts folder is actually a virtual directory that points to the following real-life directory on your server (assuming you installed to the default location):

C:\Program Files\Common Files\Microsoft Shared\Web Server Extension\12\template\layouts

The layouts folder contains application and system pages used by all the SharePoint sites on your server. Upload a new document to a site you’ll end up on the upload.aspx page from the layouts folder. View the people who have access to the site you’ll be on the people.aspx page. And if you’re trying to login, you’ll be hitting the login.aspx page. There are 400 pages in the directory, each of which has its own specific point and purpose, so it’s impossible to go into detail on each page. But they are all in there.

Figure 1 – the login.aspx page

Global consequences of changing files in the _layouts folder

Armed with the location of the application system pages in SharePoint, you may be tempted fire up an editor and start hacking away at them, but you should probably know what you’re getting yourself into before going down that path. Remember how the _layouts folder in your SharePoint site is a virtual directory that points to C:\Program Files\Common Files\Microsoft Shared\Web Server Extension\12\template\layouts? Well, all of the SharePoint sites on your server are setup in exactly the same way. That means when you change something in the _layouts folder for one site, you’re changing it for every single SharePoint site on your server. It also means that you’re editing the only version of the file on your system, so you’d better make a backup of the folder content. Otherwise you’ll have to reinstall SharePoint to get those files back into working order if you have a nasty mishap.

Creating a site-specific _layouts virtual directory

Depending on your situation, applying changes to all of the sites on your server may or may not be a bad thing. If all of the sites on your server need the exact same branding, layout, and functionality, then go ahead and make the change directly in the standard layout folder (after backing it up). But you may just as well find yourself in a situation where each site needs to be different, so applying a sweeping change to all the sites won’t work. What do you do when you find yourself in that situation? You make a copy of the shared layouts folder specifically for your site, and make the changes in that site-specific copy. To do this, take the following actions

  1. Navigate to the C:\Program Files\Common Files\Microsoft Shared\Web Server Extension\12\template\ folder
  2. Select the layouts folder and copy it
  3. Navigate to the root directory of your SharePoint site
  4. Paste a copy of the layouts folder in your SharePoint directory
  5. Rename the layouts folder _layouts
  6. Open the IIS manager snap-in
  7. Expand your SharePoint site’s website entry
  8. Right click on the _layouts virtual directory (you may also see a non-virtual _layouts folder) and select Properties from the context menu
  9. On the virtual directory tab, click the Browse button next to the Local Path textbox to display the directory selection dialog
  10. Navigate to the _layouts folder you just created in your SharePoint site, select it, then click OK
  11. Click OK to apply the change to the _layouts virtual directory

Now you can make changes in the _layouts folder for your SharePoint site without it affecting other sites on your server.

Warning: some operations in SharePoint Central Administrator, like extending a site or changing the authentication type for a zone, can “reset” the _layouts virtual directory in your SharePoint sites so they point back to C:\Program Files\Common Files\Microsoft Shared\Web Server Extension\12\template\layouts. When this occurs, just go back into the IIS manager snap-in and point the virtual directory back over at the _layouts folder copy for your site.

Login.aspx and its Master Page

When you open the login.aspx page you’ll quickly discover it’s a content page containing markup for a title, layout table, username textbox, password textbox, a login button, a “remember me” checkbox, and a few content controls to helpful text labels next to some of the fields. Just enough markup for a non-descript login form, but certainly not enough to make the unsightly bluish surroundings on the Standard SharePoint login page (see Figure 1 again). The login page relies on the simple.master page in the _layouts folder to define most of the look and feel you see around the page (see Figure 2). Following is the Page directive found at the top of the login.aspx page which shows the association of the simple.master with the page:

<%@ Page Language="C#"
    Inherits="Microsoft.SharePoint.ApplicationPages.LoginPage"
    MasterPageFile="~/_layouts/simple.master"%>

When you’re considering changing the look and feel of the login form, you need to determine exactly what you’re trying to accomplish. If you want to change the branding surrounding the form itself, then you need to edit the simple.master page. If you want to change the login form itself, by rearranging controls, adding additional help text, graphics, etc, then you need to edit the login.aspx page.

Figure 2 – simple.master from the layouts folder

Editing the simple.master page

Like most master pages, the simple.master controls the look and feel or more than just a single page. In fact, it controls the look and feel of seven pages in the _layouts folder:

Page Name

Description

AccessDenied.aspx

Displays a notice that you have been denied access to the requested resource. Shows the name of the currently logged-in user and a link to sign-in as a different user.

Confirmation.aspx

Displays a message indicating that the requested operation succeeded.

Error.aspx

Displays a message indicating that an error has occurred. May also display additional stack trace information if the site has been configured to do so.

Login.aspx

Display a login page allowing users to enter forms authentication credentials.

ReqAcc.aspx

Displays a notice that you have been denied access to the requested resource.

Signout.aspx

Responsible for logging a user out of the site.

Webdeleted.aspx

Displays a message indicating the web site has been deleted.

People visiting your forms authenticated SharePoint site will run into a couple of these pages on a regular basis, so you’ll definitely want to include the simple.master in any branding efforts you undertake for your SharePoint site. But with seven different pages relying on the simple.master page, the question is what can you change on the simple.master page and what do you have to leave? Master pages contain ContentPlaceHolders controls that identify sections of the page into which content may be injected by a content page. Content pages contain Content controls that refer to the ContentPlaceHolder controls in the master. If a content page refers to a ContentPlaceHolder in the master, but you’ve removed that ContentPlaceHolder, an error occurs. So, the key to modifying a master page is to NOT remove any required ContentPlaceHolder controls.

Determinging exactly which ContentPlaceHolder controls are required in a master page can be fairly arduous because some of ContentPlaceHolders may be required by one page but not another. For example, the simple.master page contains a ContentPlaceHolder controls named PlaceHolderPageImage. If you remove it from the simple.master, the login.aspx page loads without a problem because the login.aspx page doesn’t reference the control. But you do get an error when you hit the AccessDenied.aspx page because it uses the PlaceHolderPageImage to insert a little icon on the page. Since the simple.master only controls the look and feel of seven pages, it doesn’t take too much time to check each page to see if you removed a required control. With other master pages you’re not so lucky. The application.master, for example, controls the look and feel of more than 200 pages. And that’s just too much to test.

One way to avoid the headache of accidentally removing required controls is to leave them on the page, but hide them. The process looks something like this:

  1. Open your master page file
  2. At the bottom of the page, add a hidden panel using the following code:

  3.     <asp:Panel runat="server" visible="false">
       
    </asp:Panel>
  4. Look through the markup of your content page and locate any ContentPlaceHolder controls (or any other server controls for that matter) on the master page
  5. When you find a ContentPlaceHolder control (or a server control) cut and paste it into that hidden panel

When you finish, you’ll have a master page whose server controls are entirely contained in a hidden panel. View any page that references that master, and you’ll see that the page renders without any errors because all of controls that were originally there are still there, they’re just hidden. Of course, it also renders without any content because the hidden panel is hiding everything, but you’ll take care of that next. Now you can begin altering the look and feel of the master page by adding in the branding elements for your corporate image. As you do so, you can begin adding back in any ContentPlaceHolders and server controls that you want in the final master page.

If you’re curious, the following ContentPlaceHolders are required in the simple.master:

  • PlaceHolderAdditionalPageHead
  • PlaceHolderPageTitle
  • PlaceHolderSiteName
  • PlaceHolderTopNavBar
  • PlaceHolderTitleBreadcrumb
  • PlaceHolderPageImage
  • PlaceHolderPageTitleInTitleArea
  • PlaceHolderMain
  • PlaceHolderPageDescription

You’ll also probably want to keep the ScriptLinkControl named ScriptLink1 as well, because it contains important JavaScript includes.

Editing the login page

Editing a content page is a much less perilous task than changing a master page because any bugs you introduce are localized to the page itself. You can keep a copy of the page up in your browser and refresh the screen when you make a change to see if it breaks. Like the master page, the biggest thing to remember on a content page is that the class which controls the page is looking for specific page elements. If it tries to find a page element and it’s not there, the page throws an error and won’t render. If you do not want an element to display on the screen, you can place that control in a hidden Panel control to hide it from view without breaking the code that controls the page.

Most of the changes you’ll be making in content pages are going to be cosmetic, and will likely revolve around adding some additional content here and there and changing the layout of elements inside the page. Understand, however, that all of these SharePoint pages are built using ASP.NET technology. As such, these pages can be altered any way that you could normally alter an ASP.NET page, allowing you to do some really heavy renovations if you so choose. For example, take the login.aspx page. Here’s the Page directive found in login.aspx:

    <%@ Page Language="C#"   
         Inherits
="Microsoft.SharePoint.ApplicationPages.LoginPage"
        
MasterPageFile="~/_layouts/simple.master" %>

Notice that the page references the simple.master as its master page and inherits its functionality from Microsoft.SharePoint.ApplicationPages.LoginPage class. If you don’t want the login.aspx page to use a master page, you can remove the MasterPageFile element in the Page directive and place all of the branding markup directly in the login.aspx page itself. I don’t recommend the approach, but you can do it. Or what if you don’t like the way the Microsoft.SharePoint.ApplicationPages.LoginPage class handles the page? You can remove the element to remove the page logic entirely, or point it at a different class. If you do remove the Inherits element, you can still write your own custom code for the page by adding server-side script directly in the login.aspx page. I put the following code in my login.aspx page and it works just fine (and it actually logs you into the site too!)

    <%@ Page Language="C#" %>
    <script runat="server">
        protected override void OnLoad(EventArgs e)
        {
           
Response.Write(
"This is from the onload event");
           
base.OnLoad(e);
       
}
    </script>
    <
html>
         
<body>
             <form runat="server">
                 <asp:login id="login" runat="server" />
             </form>
         </body>
    </
html>

Is it a good idea to get rid of the master page and the controlling class for a SharePoint page? Absolutely not! But it does show you the flexibility you have in editing pages.

Conclusion

You’ve seen where you can find the SharePoint login page and the master page that controls its look and feel. You’ve learned the global consequences of editing pages in the _layouts folder, and how to avoid those consequences if you need changes to apply to a single site on your server. You’ve got some good guidelines for editing master pages. And you know that you can do just about anything you want to a content page. So you should have a sporting chance at changing just about anything you want on the login page or any other SharePoint application page.

Damon Armstrong

Author profile:

Damon Armstrong is a Senior Engineering Team Lead with GimmalSoft in Dallas, Texas, and author of Pro ASP.NET 2.0 Website Programming. He specializes in Microsoft technologies with a focus on SharePoint and ASP.NET. When not staying up all night coding, he can be found playing disc golf, softball, working on something for Carrollton Young Life, or recovering from staying up all night coding.

Search for other articles by Damon Armstrong

Rate this article:   Avg rating: from a total of 131 votes.


Poor

OK

Good

Great

Must read
Have Your Say
Do you have an opinion on this article? Then add your comment below:
You must be logged in to post to this forum

Click here to log in.


Subject: Login CODE HOW WRITE
Posted by: qq1301771 (view profile)
Posted on: Wednesday, June 13, 2007 at 8:15 PM
Message: textbox1.text="id";
textbox2.text="pwd";
button1.TEXT="Login";
connection sql2005
.....?????
if(xxx==textbox1.text && xxx==textbox2.text)
{
ok
}
else
{
error
}

Subject: Problem with layout folder
Posted by: pio (not signed in)
Posted on: Monday, June 18, 2007 at 4:38 AM
Message: I tried to use your solution, but it didn't work correctly. Problem is that when I make a copy of layout folder and map it as _layout to my SharePoint site with forms authentication, there are javascript errors on Firefox and locally on the server with IE too. It seems, that some javascript functions are not found.
Do you have this porblem?
How can I solve this?

Subject: re: Problem with layout folder
Posted by: Damon (view profile)
Posted on: Wednesday, July 04, 2007 at 1:37 PM
Message: I have not run into that issue. What are the javascript errors that you are running into? Take a look at the script file locations in the page and make sure you can access them. If not, then you may have to figure out why those scripts are not accessible (e.g. IIS settings, security settings, etc)

Subject: Alternate access mappings do not work with this approach
Posted by: Anonymous (not signed in)
Posted on: Monday, July 09, 2007 at 9:36 PM
Message: I just tried this and it seemed to work fine initially using http://machinename:portnumber/sites/pagename.aspx. But when I replaced the machine:portnumber with friendly URL http://URL/sites/pagename.aspx it does not seem to get the MP settings just for application.master and simple.master. All other MP settings do carry forward. Any ideas? Am I missing somethig.

Subject: Alternate access mappings do not work with this approach
Posted by: Anonymous (not signed in)
Posted on: Tuesday, July 10, 2007 at 8:20 AM
Message: I just tried this and it seemed to work fine initially using http://machinename:portnumber/sites/pagename.aspx. But when I replaced the machine:portnumber with friendly URL http://URL/sites/pagename.aspx it does not seem to get the MP settings just for application.master and simple.master. All other MP settings do carry forward. Any ideas? Am I missing somethig.

Subject: Alternate access mappings do not work with this approach
Posted by: Anonymous (not signed in)
Posted on: Tuesday, July 10, 2007 at 10:13 AM
Message: I just tried this and it seemed to work fine initially using http://machinename:portnumber/sites/pagename.aspx. But when I replaced the machine:portnumber with friendly URL http://URL/sites/pagename.aspx it does not seem to get the MP settings just for application.master and simple.master. All other MP settings do carry forward. Any ideas? Am I missing somethig.

Subject: Alternate Access Mappings
Posted by: Anonymous (not signed in)
Posted on: Friday, July 20, 2007 at 2:15 PM
Message: I was having that problem as well then I added the friendly URL to the IIS website that is hosting the sharepoint site and all worked properly.

Subject: Alternate Access Mappings
Posted by: Anonymous (not signed in)
Posted on: Friday, July 20, 2007 at 3:24 PM
Message: I was having that problem as well then I added the friendly URL to the IIS website that is hosting the sharepoint site and all worked properly.

Subject: Alternate Access Mappings
Posted by: Anonymous (not signed in)
Posted on: Friday, July 20, 2007 at 4:40 PM
Message: I was having that problem as well then I added the friendly URL to the IIS website that is hosting the sharepoint site and all worked properly.

Subject: Excelent
Posted by: mikkel (not signed in)
Posted on: Friday, August 10, 2007 at 2:41 AM
Message: Excelent solution, I earn much time, thannkssss

Subject: redirect url
Posted by: Anonymous (not signed in)
Posted on: Friday, August 17, 2007 at 2:45 PM
Message: wehn using this method how to make the login page go to a custom url (for example defualt page of a subsite instead of the parent site?)is there a way to do this?

Subject: Sign In
Posted by: Anonymous (not signed in)
Posted on: Monday, August 27, 2007 at 3:23 PM
Message: How do you rename Sign In to something else like Login?

Subject: Refreshing contentplaceholder onclick
Posted by: Anonymous (not signed in)
Posted on: Tuesday, September 11, 2007 at 5:20 AM
Message: how to refresh contentplaceholder without refreshing entire masterpage in asp.net

Subject: I changed the "Remember me" CheckBox to True
Posted by: Gopi (not signed in)
Posted on: Tuesday, October 02, 2007 at 2:01 PM
Message: I edited the Login.aspx code to select the check box always to enable my users to provide the creentials to ms-offcie cookies implicitly i.e.
<asp:CheckBox id=RememberMe text="<%$SPHtmlEncodedResources:wss,login_pageRememberMe%>" runat=server Checked=true />
but on login page I am unable to see that the checkbox got selected

Subject: can we authenticate a user based on query string?
Posted by: Faiz (view profile)
Posted on: Monday, October 15, 2007 at 7:50 AM
Message: Hi Damon,
I need help regarding forms authentication.
Basically, I need to send a link in a mail so that on clicking that link the user should be taken to the home page of my sharepoint site.
But when i enable forms authentication,the user will have to enter the userid and password.
Is there any way to supply these parameters in query string so that login page is bypassed and user is taken to the home page of the site?

Thanks in advance!!

Subject: can we authenticate a user based on query string?
Posted by: Faiz (view profile)
Posted on: Monday, October 15, 2007 at 8:41 AM
Message: Hi Damon,
I need help regarding forms authentication.
Basically, I need to send a link in a mail so that on clicking that link the user should be taken to the home page of my sharepoint site.
But when i enable forms authentication,the user will have to enter the userid and password.
Is there any way to supply these parameters in query string so that login page is bypassed and user is taken to the home page of the site?

Thanks in advance!!

Subject: How Can I change the default page of access denied
Posted by: Anngy Dordelly (not signed in)
Posted on: Tuesday, November 06, 2007 at 1:17 PM
Message: Hi, I'm from Caracas, Venezuela, and I wish to know if I can change the default page of access denied of MOSS 2007.

Subject: Login Page
Posted by: yusazeeme@pentasoft.com.my (not signed in)
Posted on: Wednesday, November 14, 2007 at 9:44 PM
Message: The other way to do this without changing the login page reside under _Layout is by creating your own login page. In your site you can create new site let say Login site. And select page setting as blank web part page. So this page will inherit all your parent master pages. Customize this default.aspx in sharepoint designer and add the Login control. (Just drag and drop).
In IIS go to your site, get the properties and get the ASP.Net Configuration settings.specify the Login URL as "/Login/default.aspx". Each time user wanted to login they will be land on the created page. The login page will be "www.ursite.com/login/default.aspx"
You can create this login page in 15 min.

Subject: Login Page
Posted by: amubeen (not signed in)
Posted on: Friday, November 16, 2007 at 6:30 AM
Message: Hi ,
I tried creating a new login aspx page as explained by "yusazeeme@pentasoft.com",dragged and dropped the login control .changed the Login URL in IIS.
I have set the FBA for the site.
How does the Login control talk to the APSNet database.

In the properties ,I set "MemmberShipProvider" to the value "AspNetSqlMembershipProvider" but still it does not work .please explain

Thanks

Subject: Login Page ( DB Connection for Authentication)
Posted by: yusazeeme@pentasoft.com.my (not signed in)
Posted on: Wednesday, November 21, 2007 at 12:33 AM
Message: seem like your authentication is not properly configure. The simple way to check the authentication is by creating a simple / seperate ASP.Net Web application in Visual studio.

Once you had created that you can drop the ASP.Net login control onto the page. To configure the authentication, use the ASP.Net configuration Wizard page(In VS select Project->ASP.Net Configuration)and you can now properly configure the provider.(there is a wizard for this)
The tool will check whether you can connect to the DB + you can properly add ur user to the DB using the same page.
Check also whether ur DB is a standard "ASP Net DB" :)
Or the best is to create new DB by using the aspnet_regsql and connect to this DB.
The web.config will automatically updated and configure for you. So you can later change the DB name to the DB that u r using now.

Hope it help

Subject: login.aspx page
Posted by: deepak (not signed in)
Posted on: Tuesday, January 08, 2008 at 4:37 AM
Message: hi damon

i tried to change the login.aspx page by adding new button ,but it doesn't allow .Its gives error


An error occurred during the processing of /Login.aspx. Code blocks are not allowed in this file.


i want login page and when user is not registered then if user clicks register button in logincontrol then it should redirect to register.aspx page .Please let me how can i achieve this in MOSS 2007

thanks



Subject: login.aspx page
Posted by: deepak (not signed in)
Posted on: Tuesday, January 08, 2008 at 4:39 AM
Message: hi damon

i tried to change the login.aspx page by adding new button ,but it doesn't allow .Its gives error


An error occurred during the processing of /Login.aspx. Code blocks are not allowed in this file.


i want login page and when user is not registered then if user clicks register button in logincontrol then it should redirect to register.aspx page .Please let me how can i achieve this in MOSS 2007.

my mail id is deepak.sermoria@itq.co.za

thanks


Subject: logout
Posted by: Anonymous (not signed in)
Posted on: Thursday, February 21, 2008 at 11:07 AM
Message: how do you get a logout function to work

I am only using sharepoint designer 2007

Thanks

Subject: QueryString
Posted by: nuclear (view profile)
Posted on: Thursday, December 11, 2008 at 11:15 AM
Message: I am able to get the Username and Password from the query string if passed, but I can't set the textboxes.text to those values, I get an error...

Any ideas?


Subject: Debuging
Posted by: machincity (view profile)
Posted on: Friday, February 13, 2009 at 12:54 AM
Message: How to debug .aspx page in _Layout folder?

Thanks in Advance

Subject: Site specific layouts page makes a 'fuzzy' look
Posted by: kalliet (view profile)
Posted on: Friday, July 03, 2009 at 2:22 AM
Message: This post was great, I thought I've found what I was looking for. All I needed was to add a link to 'Terms and conditions' on the login page.
So I copied the LAYOUTS directory to a local _layouts and redirected to that in IIS for the site. Then I added a link at the bottom of login.aspx. It looked fine ... from inside the company? When external users accessed the login page, all colors were removed from the login page and once entered my sharepoint site looked 'fuzzy' ?? (with fuzzy I mean, the Lacquer theme's gray top line is split into different small lines, 'new' images show missing links, the quick launch bar looks weird, ...)

I've reset to the old LAYOUTS page and everything looked fine again.

Did anyone also have this problem?
thx in advance

Subject: Correction
Posted by: mjcarrabine (view profile)
Posted on: Wednesday, August 19, 2009 at 11:35 AM
Message: Thanks for the helpful article.

Would you please correct the path at the beginning of the article:

C:\Program Files\Common Files\Microsoft Shared\Web Server Extension\12\template\layouts

should be

C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\template\layouts

There is an "s" missing at the end of Extensions.

Thanks

Subject: Great article
Posted by: nlvraghavendra (view profile)
Posted on: Friday, August 21, 2009 at 1:23 AM
Message: Thanks for this excellent tip.

Subject: Friendly URL
Posted by: DForeman (view profile)
Posted on: Tuesday, April 20, 2010 at 2:41 PM
Message: We are trying to implement this but we get an error right after the log-in screen. We think it might be because of extending the site - but all forms based extension would be extended sites. I wanted to try the "Friendly URL" but I need to know if you are talking about just a host header or are you talking about a rewrite?

Subject: how to login into sharepoint with an expired trial login_id and pswd??
Posted by: Gaurav.d (view profile)
Posted on: Thursday, October 14, 2010 at 11:25 PM
Message: Hi, I read your article and fount it awesome...But.....actually I was looking for a different issue....My question is: How to login into the sharepoint application and take backup of the data saved.... if your trial login_id and pswd is expired.....?? I dont wanna buy a subscription.....!! is there any other way to login into the application.....by any other means???? hacking or anything??.......well the main issue here is:.... how to break the login security on a .aspx page....??

Subject: Password Change
Posted by: awalker (view profile)
Posted on: Thursday, February 03, 2011 at 8:46 AM
Message: Do you have any suggestions on changing the user password once they log in? I guess kind of like windows does when you create a new user and it forces them to change their password.

 

Top Rated

Acceptance Testing with FitNesse: Multiplicities and Comparisons
 FitNesse is one of the most popular tools for unit testing since it is designed with a Wiki-style... Read more...

Acceptance Testing with FitNesse: Symbols, Variables and Code-behind Styles
 Although FitNesse can be used as a generic automated testing tool for both applications and databases,... Read more...

Building Performance Metrics into ASP.NET MVC Applications
 When you're instrumenting an ASP.NET MVC or Web API application to monitor its performance while it is... Read more...

Acceptance Testing with FitNesse: Documentation and Infrastructure
 FitNesse is a popular general-purpose wiki-based framework for writing acceptance tests for software... Read more...

TortoiseSVN and Subversion Cookbook Part 11: Subversion and Oracle
 It is only recently that the tools have existed to make source-control easy for database developers.... Read more...

Most Viewed

A Complete URL Rewriting Solution for ASP.NET 2.0
 Ever wondered whether it's possible to create neater URLS, free of bulky Query String parameters?... Read more...

Visual Studio Setup - projects and custom actions
 This article describes the kinds of custom actions that can be used in your Visual Studio setup project. Read more...

.NET Application Architecture: the Data Access Layer
 Find out how to design a robust data access layer for your .NET applications. Read more...

Calling Cross Domain Web Services in AJAX
 The latest craze for mashups involves making cross-domain calls to Web Services from APIs made publicly... Read more...

Web Parts in ASP.NET 2.0
 Most Web Parts implementations allow users to create a single portal page where they can personalize... Read more...

Why Join

Over 400,000 Microsoft professionals subscribe to the Simple-Talk technical journal. Join today, it's fast, simple, free and secure.