I'm about to start developing a custom business application on top of Sharepoint 2010. I haven't done anything on this product but client insists on it so I don't have a choice.

Application info

I have to build a complex business application that will use its own DB on MS SQL 2008 R2. Authentication will be done using client certificates and will connect to AD FS on the server side, but as this app will run under Sharepoint all this will be done by it. I won't have to handle authentication/authorisation.

Application will run processor intensive business processes and it will support three different user access levels (admins, managers and users). Every business process will have at least one screen, but most probably more than just one. For instance I will have something similar to master/detail views, and I guess each of these should be a separate screen/webpart/whatever.

Application will display custom controls that will support business processes. These controls will be custom made, because they're not used in usual applications.

Application should be client rich, so I would like to use client libraries like jQuery or even better ExtJS if at all possible. It should be asynchronous using Ajax functionality.

Some questions

  1. I can't decide whether to go with Visual web parts or Silverlight?
    I know there are other possibilities as well (like running separate Asp.net MVC applications inside Sharepoint), but I wouldn't want to do it that way even though it would be much easier for me to develop such applications, because I'm primarily hardcore Asp.net MVC developer. Which one will make itpossible to create a rich user interface?
  2. Develop on Sharepoint Foundation 2010 or Sharepoint Server 2010?
    I've seen differences in services they support, but since I don't have any development experience in Sharepoint I can't really say which ones are going to be imperative for my application. I would like to do it on Foundation, because I can re-sell the app without additional costs that Server brings with its licensing.
  3. Which services will most probably be used?
    I will most probably use Business Connectivity Service, but what about others like Managed Metadata Service, Secure Store Service etc?
  4. Should I provide a service layer API?
    I've read I could also provide my own WCF/Web service that would be my entry point to my business layer processes. Much can be done on the BCS level within Sharepoint then, but I'd still need my rich custom controls, that would display data in unusual ways.
  5. What about sandboxed solutions?
    Is this something I should use or not? Will it be too restrictive for actual use?

I don't like inventing water so I'd like to ask you guys that've already done this kind of stuff and know which one is better/faster/easier/performant/etc.

2 Answers 2

  1. You are not limited to visual web parts or silverlight. If you are going to build an application that uses a lot of controls you can create your own Web Part Pages or application pages in SharePoint. Probably a combination of all is the best.
  2. I would say that you could use SPF2010 in this case, since you have not specifically asked for any of the SPS2010 services.
  3. Depending on your needs and how the application is going to be used/built you migth take advantage of the mentioned services. BCS is available in SPF. Secure Store is great for assymetric storage of passwords etc etc
  4. Yes you can! If you need to add WCF services, which you might use in Silverlight you can do so.
  5. Sandboxed solutions are great, but as you say it is very restrictive. As a general rule of thumb I strive to build the solutions for the sandbox to start with.

If you need more answers, please be more specific and post one question at a time - it's easier to track the discussion then.


As addition to what Wictor say, consider using a Service Locator. This will decouple consumers from implementations

You should also definately look at application pages, that are very useful for the kind of application you are about to design.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.