Just wanted to share some suggestions which would make development/deploying a project with VS2010 a bit easier.
The initial steps from starting up the project manager to creating working project is a blaze, within 5 minutes and a few clicks you have a fully working instance… and then you try to open it in Visual Studio.
I realize everyone has their own method for developing a Sitefinity project but I just wanted to share some of my nags when using VisualStudio with a SF project.
I’m using source control and build/publish my working to an iis folder, bit of an overkill maybe for simple web implementation project but still. The publish process only takes a minute or so, so I try and keep this method in place because it allows my great flexibility as to publishing to localbox IIS or server IIS.
Initially not all configuration files are created on start up of a new project. Only after you’ve changed or just click ‘save’ in the Sitefinity backend administration the additional .config files are created. It would be great if all config files would be created on an initial project setup. This allows for easier versioning (all files are on version 1 on initial source control). This also ensures that proper version of files are ‘published’ to IIS instead of mismatched versions.
When utilizing the build/publish method, some files aren’t marked as project files and some aren’t marked as ‘content’ in the project resulting in unpublished files when deploying to the IIS folder. (config files, the license file etc). Would be sweet if these where included out of the box. Also a ‘references’ check would be sweet before a new release, 1650 saw 4 or 5 missing and 1733 still has the OpenAccess Ado2 reference in it.
Why not utilize this amazing feature? You already define ‘debug | release | release pro’ with debug/optimize and trace settings, why not include optimized web.config files aswell? Debug having no caching/compression settings and the web.release.config has them out of the box instead of everyone creating their own transform rules and having to copy/paste them into the files from a previous project?
Currently the connection string is stored in dataconfig.config file which doesn’t doesn’t give us any wiggle room to leverage transforms. Can’t we put the connectionstring back where it belongs? I think it’s fair to say that 9 out of 10 developers who use web.config transforms manually put it back in there and the ones who don’t simply don’t care if it is stored in the web.config or dataconfig.config.
Me, being blond and all, also forget to remove the ‘dbType=’ from the connectionstring all the time, resulting in a nice error screen, back to vs2010, remove it, rebuild and redeploy…
Officially the suggestion is to place your custom masterpages/themes under the really sweet folder structure ~/App_Data/Sitefinity/WebsiteTemplates/MyTemplate/App_Themes/MyTheme and ~/App_Data/Sitefinity/WebsiteTemplates/MyTemplate/App_Master because of future marketplace theme/template integration.
VisualStudio is a pain-in-the-ass when it comes to creating files under that folder structure. Just for the fun of it, open the solution explorer and right click the App_Master folder. Select Add >> New item and voila ‘No items found’. This requires developers to create every file that’s supposed to go inside that folder structure to be created in the root of the solution and then manually dragged to the appropriate folder.
Now maybe it’s just me but when using AnkhSVN in combination with VisualStudio, but if I do that and immediately drag the created file of to its correct folder, (while VS/AnkhSVN is still trying to register the file in the background) you end up in Source-Control hell.
I literally have to count to 20 to make sure all background processes are finished and pending changes are registered before I move the file to its proper folder. Needless to say I’m incapable of waiting 20 seconds sometimes…
Anybody got suggestions as to how to get around this?
Out of the box.
Just to dot the i’s, can we have a favicon.ico and an apple-touch-icon.png out of the box? It saves us from constant 404’s in Fiddler until we’ve wrapped up the design process.
Thank you for the suggestions, we will take them into consideration.
What you can do, instead of adding items somewhere else and then dragging them to the desired folder is just creating a code file (which can be created anywhere) and then changing the extension of the file.
It is highly likely that our folder structure will undergo some changes in future, so all of your suggestions would be very useful we make decision on that matter. Thanks again for the detailed explanations.