Should SharePoint Designer be used to create your look and feel for your project? Recently I've had a lot of discussions about SharePoint Designer (SPD) and when you should use it or not. Many people seem to want to use it as a replacement to development which I am having a hard time to understand. It's not a development tool, it's a configuration tool which can do real harm if the person who is using it does not understand what he/she is doing. "But we don't want to use it in development, we want to use it to define the markup and CSS, nothing else". Changing markup, moving around SharePoint artifacts, replacing images or altering the CSS is development! The impact can be fatal if you don't know what you are doing and if you are doing it in SPD then you are outside a controlled development environment cycle which cannot be retracted, updated or maintained in any best practices.
[caption id="attachment_751" align="alignnone" width="634"] SharePoint Designer in action[/caption]
A Designers tool
Many designers are often allowed to use SPD in their projects. Designers who do not have a clue about how SharePoint works.
So what happens when they try to do stuff with SPD?
SPD is not really an intuitive tool therefore the chances are pretty high to do harm the site just by starting to click around in the user interface. If you are inserting a wrong artifact or deleting the wrong element somewhere the consequences can be fatal. Files get unghosted which means that a copy of the file with all the changes is stored in the database. This makes it impossible in the future to update the file from the SharePoint hive on the filesystem of the servers without deleting the changes that have been made with SPD. I have experienced installations where people had been allowed to use SPD inside the production environment and it really made it hard for us and costly for the client to update the farm solutions.
If you are a person with design skills and a person with knowledge about HTML and CSS then it does not mean that you know what you are doing fiddling inside of SPD no matter how good your intentions are.
In a lab environment
SPD can be really great when you want to try out stuff in SharePoint without building packages, deploying farm solutions (WSP), having to wait and wait until application pools are recycled, etc. It makes it easy to change master pages, set the master pages, change the CSS and add JavaScript snippets directly inside of pages. You can upload your pre-made master page directly into the master page gallery and activate it no matter which template the site is based on eg. even if the publishing features are not turned on (search, mysite, team site). I use SPD sometimes in my own development environment on sites that I know I will delete and recreate later from a solution package. SPD is a great exploration tool in my opinion. But that's about it, when it comes to designing the user interface. Nothing more.
And what about SharePoint 2013 .. ?
The design view is now gone. Which is a good improvement in my point of view. It makes at least the step to do harm a bit longer than before as the design view made the false impression that the tool is good at something which it isn't. The design view creates a lot of crappy code behind the scenes and lets people think that SPD is the best tool for changing SharePoint look and feel which, despite of the word DESIGNER in SharePoint Designer, is a big lie. Removing the design view was a good move from Microsoft which I like a lot. Now stop promoting it as THE design tool and I will be happy.
The design manager which comes along with SharePoint 2013 is a way to go but this only applies on certain areas in SharePoint. If you want to have a consistent look and feel you have to think of other solutions. Like building a branding package with custom CSS, master page and so on and deploy it out through the farm.
I will talk my best practices and challenges when building such a branding package that in a future post