Over the past six months I’ve gotten to do a lot of work with SharePoint (both WSS & MOSS). Frankly, it is a great product with a ton of features that make rapidly building business solutions pretty easy. However, it does have limitations.
For the past few weeks I’ve been working on building a SAAS solution to be completely hosted in WSS. Originally I was going to MOSS, but then I looked at the price tag. Even with BizSpark its too expensive for my tastes. My partner nearly fainted and was going to push for me to do everything in PHP.
Anyway, I’ve done further work, prototyping mostly, on the business processes we are going to automate. Thing is, the way WSS interacts with the user make the experience a bit cumbersome. Perhaps I’ve not completely groked SharePoint, but if a user is expecting an application type experience they are going to be disappointed.
I’m able to store data in lists. That is 90% of the application. But it isn’t that interesting. The application generates a lot of documents (Word Docs) which WSS will do a great job managing. But collecting information from the user is where things seem to fall apart. Workflow also seems to get a bit wonky.
In terms of UX and workflow I’m really looking for a wizard type of behavior. The user clicks a button that in effect says “I want to do business process A”. The screen refreshes with a form that collects information and then asks the user for additional information. The conversation between the application and user goes on until the end and then the documents are created. User is happy.
For clarification: my goal was to create the application without opening VisualStudio. I wanted to do everything with custom lists and workflows designed in SharePoint Designer. I’ve fussed around trying to get what I want and have determined that it isn’t quite possible. So starting tonight I’m going to create a few user controls and other artifacts to get this thing done. I’ll still use SharePoint’s lists to store data, but the UI stuff will be done via custom web-parts.
One of the frustrations is that I can just put a button or link that starts the workflow. When I need the user to fill in a form I can just put the form up. The user has to go to tasks and choose to edit the task item.
There are other things that are frustrating, but they can worked around using Visual Studio. The cool thing about this experience though is that I have a very good idea of just how really powerful WSS/MOSS is. Throw BizTalk and InfoPath into the mix and you can build some really wild solutions.