I always feel confused on the best approaches that need to be followed when doing customizations to SharePoint. So let me take this scenario as an example:-
- I have 2 enterprise wiki site collections (on-primise & online –office365-)
Now our customer asked us to do the following modifications:-
A) To add the current date and time to the master page.
B) To re-locate the site logo to be on the upper left corner of the page & And have the search box on the upper right corner of the page.
C) Change the color of the upper menu from blue to yellow, and add a footer to the master page.
D) Inside the wiki page to add 5 managed metadata site columns beside the default “wiki category”.
Now to do these modifications I need to do the following:-
- Modify the seatle.master master page , to achieve (a,b,c)
- Modify the enterprise wiki content type and the enterprisewik.aspx page layout to add the 5 managed metadata columns to the CT & to the page layout.
Now there are 2 ways to do my modifications:-
Recommended approach (from my point of view):-
- Create a copy of the seatle.master master page, and apply my modification to the copy, then set the copy as the default. While leaving the built-in seatle.master as is.
- Same applies to the page layout , where I can copy the enterprisewiki.aspx page layout, and apply the changes to the copy.
- And also for the CT I can create a new CT which have the “enterprise wiki” content type as its parent. And add the 5 site columns to the new CT.
Not-recommended approach-
- Is to simply do the modification directly to the built-in components; seatle.master, enteprirsewiki.aspx page layout & enterprise wiki CT.
Now my questions are:-
- If I follow the first approach what are the problems/limitations I might face in the future. Now from my reading, I read a scenario as follow, let say I create a copy of Seattle.master (name it my.master) and do some modification to the my.master. Then let say in the future we install the latest SP updates, and some updates might add new features to the seatle.master , but since I am not using it as the default master page, then I will not benefit from these new capabilities. So is this scenario valid?
- If the above scenario is valid,, then how I can approach it ?
- If I follow the second approach of directly modifying the built-in components. Then what is the worst case scenario ? Could I face a problem were all my modifications are lost after applying SP updates?
- If the answer if Yes, them could I face a scenario where the 5 site columns which I added them to the built-in “enterprise wiki ” CT and to the built-in page layout are removed ? and the re-location of the layout which I did to the built0in seatle.master is lost also ? or this is not the case?
- Can anyone advice if my first approach is valid ? baring in mind that the customer insist on these customizations?
- Are all the modifications I listed above (A,B,C & D) can be considered as supported by SharePoint or some of these modifications (specifically the modification to the master page ) should be avoided as much as possible?
can anyone advice on my above 6 questions? and sorry for the long question.. but could it find a better way to describe my real concerns?
Thanks in advance for any help..