Developing Custom Service Applications: When, Why, & HowGreg Hurlman
Who is this guy?Programmer for 20 years.Net Developer for 9 yearsSharePoint Architect @ AvanadeBlog: http://blog.hurlman.comTwitter: @ghurlman
What is a Service Application?Shared Service Providers are no moreLimited functionLimited scopeConfiguration hassles
What is a Service Application?Service Applications are the answerFully extensibleTrue “cloud” servicesMore straightforward config
What is a Service Application?Service Applications are the answerFully extensibleTrue “cloud” servicesMore straightforward configCustom Service Apps get a lot for free
Why a SharePoint Service?Custom Service Apps get a lot for freeSettings StoreLoad balancingEasy use of SharePoint backup/upgrade/restoreProvisioning infrastructureService DiscoveryAdministration UISharePoint interaction totally optional
When use a Custom Service?YesSharing data across SharePoint boundariesLong-running processesEncapsulating unique business logicEasy scalabilityNoSite/Site Collection specific functionalityData/Features specific to a site template
Service Apps – How do they work?Made of many partsDatabase(s)Service itselfService ApplicationService EndpointService App ProxyConsumed in many waysWeb partsEvent ListenersWorkflowsApplication PagesOther ServicesEtc.BrowserClient AppSP Web Front EndWeb Parts, Events, etc.Service Application ProxySP App ServerService Endpoints (*.svc, *.asmx)Service AssembliesSQL ServerConfig DBContent DB(s)Custom DB
Anatomy of a Service AppSPServiceOne instance/serverSPServiceInstanceSPServiceApplicationCreated by adminsProvides the internal service interfaceSPServiceProxySPServiceApplicationProxyProvides the front-end interfaceAllows for client code consumption
What you’ll needVisual Studio 2010Including the SharePoint ToolsSharePoint Foundation ServerLots of time
Now, on with the code
2 ASUS NetbooksAlso Some Books1 Typemock Isolator LicenseA 2-5 Day Course from SetFocus on SharePointTelerik RAD Controls Set1 DeliverPointWFE 2010 license (Worth $1500)1 BCS Meta Man license (Worth $1200)1 Lightning Conductor 2010 WFE license (Worth $800)1 Lightning Storm Forums license. (Worth $600)
Thank you sponsors!!

Greg Hurlman: Developing Custom Service Applications

  • 1.
    Developing Custom ServiceApplications: When, Why, & HowGreg Hurlman
  • 2.
    Who is thisguy?Programmer for 20 years.Net Developer for 9 yearsSharePoint Architect @ AvanadeBlog: http://blog.hurlman.comTwitter: @ghurlman
  • 3.
    What is aService Application?Shared Service Providers are no moreLimited functionLimited scopeConfiguration hassles
  • 4.
    What is aService Application?Service Applications are the answerFully extensibleTrue “cloud” servicesMore straightforward config
  • 5.
    What is aService Application?Service Applications are the answerFully extensibleTrue “cloud” servicesMore straightforward configCustom Service Apps get a lot for free
  • 6.
    Why a SharePointService?Custom Service Apps get a lot for freeSettings StoreLoad balancingEasy use of SharePoint backup/upgrade/restoreProvisioning infrastructureService DiscoveryAdministration UISharePoint interaction totally optional
  • 7.
    When use aCustom Service?YesSharing data across SharePoint boundariesLong-running processesEncapsulating unique business logicEasy scalabilityNoSite/Site Collection specific functionalityData/Features specific to a site template
  • 8.
    Service Apps –How do they work?Made of many partsDatabase(s)Service itselfService ApplicationService EndpointService App ProxyConsumed in many waysWeb partsEvent ListenersWorkflowsApplication PagesOther ServicesEtc.BrowserClient AppSP Web Front EndWeb Parts, Events, etc.Service Application ProxySP App ServerService Endpoints (*.svc, *.asmx)Service AssembliesSQL ServerConfig DBContent DB(s)Custom DB
  • 9.
    Anatomy of aService AppSPServiceOne instance/serverSPServiceInstanceSPServiceApplicationCreated by adminsProvides the internal service interfaceSPServiceProxySPServiceApplicationProxyProvides the front-end interfaceAllows for client code consumption
  • 10.
    What you’ll needVisualStudio 2010Including the SharePoint ToolsSharePoint Foundation ServerLots of time
  • 11.
    Now, on withthe code
  • 12.
    2 ASUS NetbooksAlsoSome Books1 Typemock Isolator LicenseA 2-5 Day Course from SetFocus on SharePointTelerik RAD Controls Set1 DeliverPointWFE 2010 license (Worth $1500)1 BCS Meta Man license (Worth $1200)1 Lightning Conductor 2010 WFE license (Worth $800)1 Lightning Storm Forums license. (Worth $600)
  • 13.

Editor's Notes

  • #3 SPServiceEvery SPService object has an Instances property that holds all the instances of the service that are running on various servers in the farm. No more than one instance of each service runs on any one server, but some services have multiple instances, each one running on a different server. Each instance is represented by an object of a class derived from SPServiceInstance.SPServiceInstanceSPServiceInstance represents an instance of a service on a server in the farm. A service instance is independent from, and identical in functionality, to all other server instances of the same type. As long as one service instance of a given service remains online, the service is fully functional. Service instances may be in the ’started’ or ’stopped’ state. A service instance provides the host process for service applications.SPServiceApplicationA service application is hosted by a service instance. Service applications are generally created by administrators. They provide the service interface, containing the administrator settings. Service applications may own user data.SPServiceProxyA SPServiceProxy is simply the parent of the SPServiceApplicationProxy. It is the equivalent of a SPService on the server side, which is the parent of a SPServiceApplication. You can also think of these parent objects as class factories for the child objects, if that makes more sense to you.SPServiceApplicationProxyService application proxies provide the public (front-end) interface to a service application. They allow client code to consume remote service applications. Service applications may not be installed locally and therefore cannot be called directly.