{"id":147,"date":"2008-12-14T15:20:04","date_gmt":"2008-12-14T14:20:04","guid":{"rendered":"http:\/\/www.leading-edge-dev.de\/?p=147"},"modified":"2009-03-16T08:01:57","modified_gmt":"2009-03-16T07:01:57","slug":"live-framework-ctp-3-the-developer-resource-model","status":"publish","type":"post","link":"https:\/\/www.minddriven.de\/index.php\/technology\/microsoft\/cloud-computing\/live-services\/live-framework-ctp-3-the-developer-resource-model","title":{"rendered":"Live Framework CTP #3 &#8211; .NET: the developer&#8217;s Resource Model"},"content":{"rendered":"<p>There seems to be a lack of information on the web about the Live Framework Resource Model from a developer&#8217;s point of view, that means how can I address my mesh objects and more from my .NET code.\u00a0Some <a href=\"http:\/\/blogs.msdn.com\/liveframework\/archive\/2008\/12\/11\/live-framework-resource-model-part-1.aspx\">Blog-Entries<\/a> describe it more from a user&#8217;s standpoint respectively describe what is unveiled through the web services of the Live Operating Environment, but as .NET developer with the LiveFx libraries at hand that&#8217;s not interesting me much. Thus I want to briefly describe the resource\/data model which you&#8217;re programming against in .NET (it has some similarities to\u00a0the real class diagram) through the following article. Later on, in other posts I will go in depth on some of them.<\/p>\n<p>The following diagram shows many (while not all)\u00a0aspects of what you as developer should be worried about when juggling with Live Framework objects:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-150\" title=\"Live Framework Resource Model\" src=\"http:\/\/www.leading-edge-dev.de\/wp-content\/uploads\/2008\/12\/livefx_dev_res_model.png\" alt=\"Live Framework Resource Model\" width=\"500\" height=\"371\" srcset=\"https:\/\/www.minddriven.de\/wp-content\/uploads\/2008\/12\/livefx_dev_res_model.png 500w, https:\/\/www.minddriven.de\/wp-content\/uploads\/2008\/12\/livefx_dev_res_model-300x222.png 300w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/p>\n<p>First things first: every collection shown above is a <strong><code>LiveItemCollection&lt;TMeshItem, TResource&gt;<\/code><\/strong>, where <code>TMeshItem<\/code> is of type <em>MeshItem<\/em> and <code>TResource<\/code> is of type <em>Resource<\/em>. Normally you get data out of the Resource, which can be extracted from the LiveItem via <code>YourLiveItem.Resource<\/code>.<\/p>\n<p>Now I want to shortly describe the individual components.<\/p>\n<p><strong>LOE<\/strong>: the Live Operating Environment is the root of all functionality. Here you can connect to your Mesh and get all the information you need (In fact it&#8217;s much more than that, but this should be deferred at the moment).<\/p>\n<ul>\n<li><strong>Contacts<\/strong>: Collection, which holds your contacts. One contact can contain some profiles and has many relevant contact data (Name, adresses, job title, profession etc.) connected to it.<\/li>\n<li><strong>Mesh<\/strong>: Represents your whole mesh and the data,\u00a0that it contains.<\/li>\n<li><strong>Profiles<\/strong>: Respresents your personal profiles. The following kinds of profiles are available: General, AboutYou, ContactInfo, WorkInfo, Interests. Those profiles come from your Windows Live account, so Windows Live is basically integrated with some functions at the moment. I&#8217;m sure that there will be more interaction and features including Mesh and Windows Live\u00a0in the future.<\/li>\n<\/ul>\n<p><strong>Mesh<\/strong>:<\/p>\n<ul>\n<li><strong>Devices<\/strong>: Collection, that represents the different kinds of devices belonging to your mesh. Those are the same devices that are shown on the device ring\u00a0in your browser. From a device object you can gather information like the online status, if it&#8217;s a local device or if it has an active\u00a0remote connection.<\/li>\n<li><strong>MeshObjects<\/strong>: Everything, which can contain data (data feeds) in your mesh. This can be folders (Type: <em>LiveMeshFolder<\/em>) and applications (Type: <em>ApplicationInstance<\/em>) for example.<\/li>\n<li><strong>News<\/strong>: Collection of NewsItem objects, which represent global news in the mesh. There are several kinds of existing News types: LiveMesh.FileAdd, FolderAdd, MemberAdd, AppInstanceCreate, AppInstanceMemberAdd, UserMessagePost and more. But you&#8217;re not limited by these, because you can create news of your own type&#8230;<\/li>\n<\/ul>\n<p><strong>MeshObjects<\/strong>:<\/p>\n<ul>\n<li><strong>DataFeeds<\/strong>: Collection of container items for data, that is included in the mesh object. Every data feed can have many data entries.<\/li>\n<li><strong>Mappings<\/strong>: Collection, that contains mapping objects. Those indicate the devices this mesh object is mapped to.<\/li>\n<li><strong>Members<\/strong>: Individuals, who have permission to this mesh object. There are several role type for mesh object members: Full, Author, Reader, Writer. With those the core Live services and your applications can handle access to mesh objects.<\/li>\n<li><strong>News<\/strong>: Every mesh object can have several news, that are related to this object. As the global news, this is a LiveItemCollection of NewsItem objects.<\/li>\n<\/ul>\n<p><strong>DataFeeds<\/strong>:<\/p>\n<ul>\n<li><strong>DataEntries<\/strong>: Data entries are everything that contains data in a data feed. This can be files or folders or user-specific data. A data entry can contain a media resource, with which a file (image, video, audio, word document, &#8230;) can be viewed and converted automatically.<\/li>\n<\/ul>\n<p>These are just some first thoughts and introductionary information about the resource model from a developer&#8217;s view. As said before, I will blog later on specific topics of that, going more in depth&#8230;<\/p>\n<p><a href=\"http:\/\/www.dotnetkicks.com\/kick\/?url=http%3a%2f%2fwww.leading-edge-dev.de%2f%3fp%3d147\"><img decoding=\"async\" src=\"http:\/\/www.dotnetkicks.com\/Services\/Images\/KickItImageGenerator.ashx?url=http%3a%2f%2fwww.leading-edge-dev.de%2f%3fp%3d147\" border=\"0\" alt=\"kick it on DotNetKicks.com\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>There seems to be a lack of information on the web about the Live Framework Resource Model from a developer&#8217;s point of view, that means how can I address my mesh objects and more from my .NET code.\u00a0Some Blog-Entries describe it more from a user&#8217;s standpoint respectively describe what is unveiled through the web services &hellip; <a href=\"https:\/\/www.minddriven.de\/index.php\/technology\/microsoft\/cloud-computing\/live-services\/live-framework-ctp-3-the-developer-resource-model\" class=\"more-link\"><span class=\"screen-reader-text\">Live Framework CTP #3 &#8211; .NET: the developer&#8217;s Resource Model<\/span> weiterlesen<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[87,89,71],"tags":[55,90,51,95],"class_list":["post-147","post","type-post","status-publish","format-standard","hentry","category-live-framework","category-live-mesh","category-live-services","tag-live--framework","tag-live-framework-ctp","tag-live--mesh","tag-resource-model"],"_links":{"self":[{"href":"https:\/\/www.minddriven.de\/index.php\/wp-json\/wp\/v2\/posts\/147","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.minddriven.de\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.minddriven.de\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.minddriven.de\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.minddriven.de\/index.php\/wp-json\/wp\/v2\/comments?post=147"}],"version-history":[{"count":11,"href":"https:\/\/www.minddriven.de\/index.php\/wp-json\/wp\/v2\/posts\/147\/revisions"}],"predecessor-version":[{"id":335,"href":"https:\/\/www.minddriven.de\/index.php\/wp-json\/wp\/v2\/posts\/147\/revisions\/335"}],"wp:attachment":[{"href":"https:\/\/www.minddriven.de\/index.php\/wp-json\/wp\/v2\/media?parent=147"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.minddriven.de\/index.php\/wp-json\/wp\/v2\/categories?post=147"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.minddriven.de\/index.php\/wp-json\/wp\/v2\/tags?post=147"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}