what is a sharepoint data layer?
i need to understand a sharepoint project . this project has 3 components
- a sharepoint web application.
- a desktop air application
these 1 and 2 exist over the 3rd component
- a sharepoint data layer
well this is what is described in the specifications of the project.
what i understand is that the first two component are the applicat开发者_如何学JAVAions which use data stored in the 3rd component. however the picture is not very clear what is the sharepoint data layer. does sharepoint also has a database part in it , which can be used to store data or what ?
The data layer being described is a SharePoint Site Collection. Inside this site collection you store data in lists or document libraries (very similar but slightly different). To access the lists you use a combination of the SharePoint API or Web Services.
Part of sharepoint.microsoft.com includes a Silverlight control that access data from SharePoint lists (very similar to what you are doing with Air). Take a look at this "How We Did It Article" to get an idea of the conceptual architecture. http://blogs.msdn.com/sharepoint/archive/2009/06/18/how-we-did-it-sharepoint-microsoft-com.aspx
Good Luck.
The conceptual data model of sharepoint revolves around lists. under the covers, lists are stored in MS SQL (RDBMS).
If you need to read/write data, you should do so using the appropriate sharepoint webservices. see:
http://msdn.microsoft.com/en-us/library/ms479390.aspx
So, you should not touch the undelying database directly - rather, you'd issue HTTP requeests to these service, and these take care of the persistence.
Out of the box, SharePoint gives you many ways to manipulate it's data - through the API (tons of code classes whose names begin with SP
like SPSite, SPWeb
etc.). This API is however accessible only when you run code on the server.
If you wan t to do something on the client side, you can use SharePoint's Web services or WebDAV.
However, it would be awkward to use the Web service API if you execute the code on the server itself.
So, if I had to create an application that has both web application AND a desktop application, I would make my own class library with domain-specific objects inside that that exploit the possibilities of regular SharePoint API. I would then make some part of my class library available to desktop client applications as SOAP Web services (these would be more specific than the ones built into Sharepoint, such as "lists.asmx") and would provide the client with the functionality it needs. If I needed to call the same method from the web application, I wouldn't use Web services, but rather load my assembly from GAC and call into it.
After I wrote all of it, I think this is something more than simply 'data layer', since data layer wouldn't normally contain business logic.
精彩评论