The design goal for SharePoint is “make it as simple as possible to create a web site”. A web site for a project or a team that type of a web site that is. And SharePoint works well for that purpose, most project leaders can with very little training create a project site, where all documents, conversations, plans schedules etc. can be shared within the project team. The same goes for a team site. A team site is just have more longevity. A simple isolated web site well integrated with MS office and outlook that is what you easily can create with SharePoint. And that is great, it is what most teams and project needs, common documents, calendar etc. Using defaults and out-of-the-box solutions, you can create a simple web-site for collaboration in no time. The problem with SharePoint starts when the team/project leader begins to enhance the site with more advanced functionality SharePoint was not designed for. E.g. SharePoint store data in lists, it is easy and works well to extract values from other list via lookup fields, any other interaction between lists works less well. If you use values from another table for a pull down menu, you may see timing problems, since a value in a list is not visible before some cyclic background process is executed, in a real database the values are visible to all the split second you commit you update transaction, in SharePoint you have to wait. When I talk to SharePoint specialists they tell me this can be fixed. When I ask why it is not fixed from the beginning I get the answer “it’s more complicated”.
- “Well can you fix it for me?”
- “No I can’t I’m not a developer.”
This is something I heard more than once, it seems SharePoint specialist are specialists in tweaking SharePoint but no programmers. Nothing wrong with that, the problem is you need programming skills to anything more than SharePoint is designed for. And then you need to consult a consultant with SharePoint programming skills. And now SharePoint is not so simple anymore. E.g. When you access a list’s fields in programs you use the internal name, this is the hidden name a field gets when it is created, when “the sharePoint developer” rename a field, he/she is just changing the “display alias” not the field name, but you do not see this, you think you rename the field and there is no simple way to retrieve a list of a list’s internal name, this makes it unnecessary awkward to develop SP programs. When SP was designed the internal name must have been regarded as ‘too complex, hide it’. However in the CSOM SharePoint framework it is not hidden, there you have to use the internal name. Internal name is not the only design flaw. This list is long, I’m just to inexperienced to naming them all, but ISO is another. US is not only the United States of America, it is America and the World, who has ever ever heard about ISO? If you want a default compliance with e.g. date ISO 1806 format, you have to change US default locale to some obscure nationality like ‘swedish’, not really what you want. It can sure be fixed, but probably complicated (see above). US standards, a nation who still use Henry the VIII thumb to measure distance. Don’t get me wrong I like US, especially New England if I could I would settle down in Massachusetts or New Hampshire, but US and international standards do not go well together, so the creator of a SharePoint site I know chose locale ‘swedish’ and built an ‘advanced’ app i.e. using sophisticated features like indexes, unique constraints, custom input validations. All that worked until an unfortunate script upgraded the template also by accident reverted the locale back to US. Not much worked afterwards, take field formulas as an example, they depends on the locale, change locale is a fast way to remove all input validations. Basically you kiss your ‘advanced’ application goodbye by changing the locale.
Changing a SharePoint site’s locale should not be allowed and it should be simple to print a list of field internal names, yes I know you can do the latter. Display the ‘all items’ view make the browser display the page source look for all ‘realFieldName’. But why do you want to see the real field name it s just a distraction only for the techie who likes to complicate simple tasks like creating a web site.