You can set a custom page as the landing / home page of your site by setting the relative URL of the page to the WelcomePage
property of the root folder of the root web. Like:
using (SPSite site = new SPSite("http://server:port/"))
{
SPWeb web = site.RootWeb;
SPFolder rootFolder = web.RootFolder;
rootFolder.WelcomePage = "Pages/YourCustomHomePage.aspx";
rootFolder.Update();
}
If a user navigates to http://server:port/
they would be served http://server:port/Pages/YourCustomHomePage.aspx
.
Whether or not you make a master page just for the home page depends on the design. If it's a different layout, with different branding, and a different structure you not only should make a separate master page, you probably must do so. You can always set the master page in the markup of your custom home page and leave the master page for the rest of your site (set at SPWeb.MasterUrl
or SPWeb.CustomMasterUrl
) alone.
One alternative to using a library within SharePoint to store the home page, is to use an application page in a folder under TEMPLATE\LAYOUTS instead. To do that requires you to set up a redirect page as explained in Redirect default.aspx or change default landing to page in _layouts folder?.
One reason for you to use an application page is if you need to use custom code behind as part of the requirements you have.