ApplicationPages are great for custom forms or for reusable features, but I wouldn't look to use it as the homepage for a site.
The standard way to create a page is grab a filestream copy of one of the standard files and save it into a document library. The code below will create a page called Home.aspx, based on the basic homepage (Default.aspx) provisioned with teamsites when the Wiki Homepage is not employed.
The key line is the GetGenericSetupPath which points to the template you want to use. In this case it uses the basic home page, but you can also use the various web part pages, or publishing pages.
SPFolder libFolder = web.GetFolder(libName);
string newFilename = "Home.aspx";
string templateFilename = "default.aspx";
string path = SPUtility.GetGenericSetupPath("TEMPLATE\\SITETEMPLATES\\STS\\");
SPFile newFile = null;
FileStream stream = new FileStream(path + templateFilename, FileMode.Open);
SPFileCollection files = libFolder.Files;
newFile = files.Add(newFilename, stream);
stream.Close();
stream.Dispose();
After the file is added you can make it the site's homepage or WelcomePage by running the following code.
web.AllowUnsafeUpdates = true;
SPFolder rootFolder = web.RootFolder;
rootFolder.WelcomePage = newFile.Url;
rootFolder.Update();
web.AllowUnsafeUpdates = false;
You can then make changes to the page, add web parts, script references, etc.