We are developing an extranet web application (ASP.NET MVC2, I know :( ) using SharePoint 2010 lists. Internal staff users will access the same (and more) data using SharePoint interface. There is a common functionality which is based on set of algorithms. We would prefer to develop it once & share between the both interfaces.
Since extranet app is hosted on separate machine, it will use "Client Object Model" (.net) and SharePoint web parts will use "Server Object model". So now how implement this common function?
Is it possible to extend existing web services in SharePoint & Client Object Model offers wrapper for it? Or can we replicate what COM <-> REST has done? Is "Service Application" one of the options?
We preferably do not want to publish it as a web service from SharePoint (aspx) and consume it in extranet app unless there is no option. I guess this would be separate DLL which will use SP-classes & web part will use it for SharePoint & aspx will use it for publishing for extranet.
There are other issues of impersonation from extranet which on FBA.
Has anyone implemented this sort of thing successfully? Any suggestions/pointers to case-studies are welcome.