I would modify gs\pages\album.ascx to accept a query string parameter like showrecent=true. When present, get the recent albums through a new method in the data access layer (e.g. add Album_GetRecentAlbums() to GalleryServerPro.Provider.Interfaces). The new method would use EF (for SQL CE) or a ADO.NET/stored procedure (for SQL Server) to query the database for the recent items. Then assign the albums to the GalleryObjectsDataSource of the thumbnail view control in album.ascx, like this:
Code:
// AlbumController.GetRecentAlbums() calls the new data access method
IGalleryObjectCollection galleryObjects = AlbumController.GetRecentAlbums();
tv.GalleryObjectsDataSource = galleryObjects;
You can see something similar in gs\pages\search.ascx, as the search page uses this technique to assign gallery objects to the thumbnail view control.
The downside to this approach is that you have to touch several parts of the app, making it harder to upgrade. For that reason, you may just want to stick with your singleton approach.
Roger Martin
Creator and Lead Developer of Gallery Server Pro