Last week we had a meeting at one of my customers to do some knowhow transfer about our current project. In this project I created a site template with several fields and content types to do permission reviews for the systems in this company. Because we have a dependency of the features I created in this project, I started at the beginning. I described how we have created the fields, how we have created the content types, list templates, etc. Finally we saw the site template, which we can use to create a SharePoint site for our application.
So, at the beginning, we have much configuration stuff with a lot of xml-files. But we could see that we can do a lot of copy and paste to create the fields or the different features.
The members of this meeting were SharePoint the admins with some knowledge of development and a Java-/Web-developer, who is responsible for several internal applications in the company. When I finished showing the different features in our solution I was faced with the one and only question:
Why do you use SharePoint for this solution? Isn’t it easier to create a simple database and build a front-end using Java or ASP.Net?
What would you answer to this question? What are the real reasons to use SharePoint to build this solution?
I think there is no easy answer to this question. But there are some benefits, when we use SharePoint as our platform for this solution.
1. We need to create a data model even if we use SharePoint or if we use a simple database on SQL Server. So I don’t think we have so many benefits, when we use a database.
2. When we create lists in SharePoint, we have a user-interface out-of-the-box. We can create views on this list, sort and filter items without any piece of code. Because SharePoint is a web-application, we can use URLs in e-mails to send references to items.
3. While coding, we can participate from the SharePoint SDK. We have methods to create mails, we have functionality to set permissions at site-, at list- and at item-level. Setting permissions at item-level in a database is not so easy.
4. Building the user-interface for our application is not so difficult, because we can build webparts to do the necessary stuff. We don’t have to create complete and complex screens or masks.
5. We do not need any installation on the client machines as it would be, if we create an application with Java or ASP.Net. Anyone with an Internet Explorer and the permissions can use our application from every machine in our network.
I guess there are a lot more reasons, why we have done this solution using SharePoint as the platform. But I have to recognize that some knowledge about creating solutions in SharePoint is needed. But when we use the classic tools like Java, this knowledge is needed, too. So, because we can integrate in the SharePoint infrastructure that is built in many companies, using SharePoint as the platform for these solutions is a good idea.