{"id":595,"date":"2008-08-07T15:54:57","date_gmt":"2008-08-07T20:54:57","guid":{"rendered":"http:\/\/blogs.devhorizon.com\/reza\/?p=595"},"modified":"2008-08-08T23:32:37","modified_gmt":"2008-08-09T04:32:37","slug":"atomic-use-casesfeatures-wsp-solutions-and-vs-solutions","status":"publish","type":"post","link":"https:\/\/blogs.devhorizon.com\/reza\/2008\/08\/07\/atomic-use-casesfeatures-wsp-solutions-and-vs-solutions\/","title":{"rendered":"Atomic use cases,Features, WSP Solutions and VS solutions"},"content":{"rendered":"<p>I understand that each project has its own requirements and those requirements would dictate the layout of your VS solution(s) and the way you package your work into WSP solutions.<\/p>\n<p>As I discussed this with other MVP and non-MVP devs, we finally came to a conclusion that there is no \u201cbest way\u201d that fits all scenarios -for example, my buddy <a href=\"http:\/\/www.devcow.com\/blogs\/jdattis\/default.aspx\">Dan Attis<\/a> (MVP) uses an interesting methodology to package his work into very atomic units (each wrapped into a\u00a0 feature) and grouped into a Visual Studio project\u00a0 based on their relevancy and mapped to a WSP solution (SharePoint Solution). One or more projects are located in one VS solution (4 to date). His logic is:<\/p>\n<blockquote><p>Support , extensibility and maintainability is #1 concern due to the nature of our project ;therefore we need to make sure that future updates would run in the most abstracted way possible. Additionally, we would like all of our developers to be able to work in parallel.We have come up with 25 WSP solutions in total.<\/p><\/blockquote>\n<p>We pretty much can\u2019t follow the above approach as we are a small group of developers (Maximum 3 people on a project &#8211; one is our designer), always under the delivery pressure, we build, deliver and move on to the next project. Although , this doesn\u2019t mean that we do a poor job on what we do, for us, agile development usually outweighs the extra time required to plan and deal with the complexity of such granularity. In addition, the total number of support cases we have got in 2008 has been ZERO so far, whereas we have got our hands on four medium to large scale projects since Q1. We simply can\u2019t afford anything that causes extra complexity and slows down our dev cycle, my QA (Yeah, I like finding issues \ud83d\ude09 ) and final deployment to the customer\u2019s site.<\/p>\n<p>Below is the way I normally layout my projects in one VS solution. Each project is wrapped into its own WSP solution and deployed in orders. Groping related bits together and abstracting them from each other in a reasonable manner, gives us the possibility for 2 devs to be working on the same project without affecting each other\u2019s work. Sometimes and\u00a0 based on the situation , I may merge two or more projects into one package , but generally speaking , my deployments are around 5 to 6\u00a0 WSP packages max.<\/p>\n<p class=\"MsoNormal\" style=\"text-indent: -0.25in; line-height: normal\"><strong><span style=\"font-size: 12pt; font-family: 'Times New Roman','serif'\">\u00a0\u00a0\u00a0\u00a0\u00a0 Core<\/span><\/strong><span style=\"font-size: 12pt; font-family: 'Times New Roman','serif'\"> (Class library  \u2013 Deployed to GAC)<o:p><\/o:p><\/span><\/p>\n<p class=\"MsoNormal\" style=\"margin-left: 0.75in; text-indent: -0.25in; line-height: normal\"><span style=\"font-size: 12pt; font-family: 'Times New Roman','serif'\">1.<\/span><span style=\"font-size: 7pt; font-family: 'Times New Roman','serif'\">\u00a0\u00a0\u00a0\u00a0\u00a0  <\/span><span style=\"font-size: 12pt; font-family: 'Times New Roman','serif'\">This project is  meant to host the code thatis meant to be used as the base for all other  projects in the solution (Think about it as classic Common  lib)<o:p><\/o:p><\/span><\/p>\n<p class=\"MsoNormal\" style=\"margin-left: 1.25in; line-height: normal\"><span style=\"font-size: 12pt; font-family: 'Times New Roman','serif'\">OR<o:p><\/o:p><\/span><\/p>\n<p class=\"MsoNormal\" style=\"margin-left: 0.75in; text-indent: -0.25in; line-height: normal\"><span style=\"font-size: 12pt; font-family: 'Times New Roman','serif'\">2.<\/span><span style=\"font-size: 7pt; font-family: 'Times New Roman','serif'\">\u00a0\u00a0\u00a0\u00a0\u00a0  <\/span><span style=\"font-size: 12pt; font-family: 'Times New Roman','serif'\">Can\u2019t be placed  in other projects (for example my membership provider bit)<o:p><\/o:p><\/span><\/p>\n<p class=\"MsoNormal\" style=\"text-indent: -0.25in; line-height: normal\"><strong><span style=\"font-size: 12pt; font-family: 'Times New Roman','serif'\">\u00a0\u00a0\u00a0\u00a0\u00a0 Controls<\/span><\/strong><span style=\"font-size: 12pt; font-family: 'Times New Roman','serif'\"> (Class library  \u2013 Deployed to bin folder)<o:p><\/o:p><\/span><\/p>\n<p class=\"MsoNormal\" style=\"margin-left: 0.75in; text-indent: -0.25in; line-height: normal\"><span style=\"font-size: 12pt; font-family: 'Times New Roman','serif'\">1.<\/span><span style=\"font-size: 7pt; font-family: 'Times New Roman','serif'\">\u00a0\u00a0\u00a0\u00a0\u00a0  <\/span><span style=\"font-size: 12pt; font-family: 'Times New Roman','serif'\">All  Web parts and user controls<o:p><\/o:p><\/span><\/p>\n<p class=\"MsoNormal\" style=\"margin-left: 0.75in; text-indent: -0.25in; line-height: normal\"><span style=\"font-size: 12pt; font-family: 'Times New Roman','serif'\">2.<\/span><span style=\"font-size: 7pt; font-family: 'Times New Roman','serif'\">\u00a0\u00a0\u00a0\u00a0\u00a0  <\/span><span style=\"font-size: 12pt; font-family: 'Times New Roman','serif'\">If  I need more granularity in terms of security, I abstract the control in its own  assembly and apply more restricted CAS on it<o:p><\/o:p><\/span><\/p>\n<p class=\"MsoNormal\" style=\"text-indent: -0.25in; line-height: normal\"><strong><span style=\"font-size: 12pt; font-family: 'Times New Roman','serif'\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Infrastructure<\/span><\/strong><span style=\"font-size: 12pt; font-family: 'Times New Roman','serif'\"> (Class library  \u2013 Deployed to GAC)<o:p><\/o:p><\/span><\/p>\n<p class=\"MsoNormal\" style=\"margin-left: 0.75in; text-indent: -0.25in; line-height: normal\"><span style=\"font-size: 12pt; font-family: 'Times New Roman','serif'\">1.<\/span><span style=\"font-size: 7pt; font-family: 'Times New Roman','serif'\">\u00a0\u00a0\u00a0\u00a0\u00a0  <\/span><span style=\"font-size: 12pt; font-family: 'Times New Roman','serif'\">Custom Field  Definitions<o:p><\/o:p><\/span><\/p>\n<p class=\"MsoNormal\" style=\"margin-left: 0.75in; text-indent: -0.25in; line-height: normal\"><span style=\"font-size: 12pt; font-family: 'Times New Roman','serif'\">2.<\/span><span style=\"font-size: 7pt; font-family: 'Times New Roman','serif'\">\u00a0\u00a0\u00a0\u00a0\u00a0  <\/span><span style=\"font-size: 12pt; font-family: 'Times New Roman','serif'\">Standalone Site  columns \u00a0(Standalone site column is the one which is used in an standalone  content type)<o:p><\/o:p><\/span><\/p>\n<p class=\"MsoNormal\" style=\"margin-left: 0.75in; text-indent: -0.25in; line-height: normal\"><span style=\"font-size: 12pt; font-family: 'Times New Roman','serif'\">3.<\/span><span style=\"font-size: 7pt; font-family: 'Times New Roman','serif'\">\u00a0\u00a0\u00a0\u00a0\u00a0  <\/span><span style=\"font-size: 12pt; font-family: 'Times New Roman','serif'\">Standalone  Content types (Standalone Content type is the one which has no workflow attached  to it)<o:p><\/o:p><\/span><\/p>\n<p class=\"MsoNormal\" style=\"margin-left: 0.75in; text-indent: -0.25in; line-height: normal\"><span style=\"font-size: 12pt; font-family: 'Times New Roman','serif'\">4.<\/span><span style=\"font-size: 7pt; font-family: 'Times New Roman','serif'\">\u00a0\u00a0\u00a0\u00a0\u00a0  <\/span><span style=\"font-size: 12pt; font-family: 'Times New Roman','serif'\">List  Definitions<o:p><\/o:p><\/span><\/p>\n<p class=\"MsoNormal\" style=\"margin-left: 0.75in; text-indent: -0.25in; line-height: normal\"><span style=\"font-size: 12pt; font-family: 'Times New Roman','serif'\">5.<\/span><span style=\"font-size: 7pt; font-family: 'Times New Roman','serif'\">\u00a0\u00a0\u00a0\u00a0\u00a0  <\/span><span style=\"font-size: 12pt; font-family: 'Times New Roman','serif'\">Non-publishing  Site Definitions<o:p><\/o:p><\/span><\/p>\n<p class=\"MsoNormal\" style=\"margin-left: 0.75in; text-indent: -0.25in; line-height: normal\"><span style=\"font-size: 12pt; font-family: 'Times New Roman','serif'\">6.<\/span><span style=\"font-size: 7pt; font-family: 'Times New Roman','serif'\">\u00a0\u00a0\u00a0\u00a0\u00a0  <\/span><span style=\"font-size: 12pt; font-family: 'Times New Roman','serif'\">Custom processes  attached to the non-publishing Site Definitions (For example :Provisioning  handler)<o:p><\/o:p><\/span><\/p>\n<p class=\"MsoNormal\" style=\"text-indent: -0.25in; line-height: normal\"><strong><span style=\"font-size: 12pt; font-family: 'Times New Roman','serif'\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Publishing<\/span><\/strong><span style=\"font-size: 12pt; font-family: 'Times New Roman','serif'\"> (Class library  \u2013 Deployed to GAC)<o:p><\/o:p><\/span><\/p>\n<p class=\"MsoNormal\" style=\"margin-left: 0.75in; text-indent: -0.25in; line-height: normal\"><span style=\"font-size: 12pt; font-family: 'Times New Roman','serif'\">1.<\/span><span style=\"font-size: 7pt; font-family: 'Times New Roman','serif'\">\u00a0\u00a0\u00a0\u00a0\u00a0  <\/span><span style=\"font-size: 12pt; font-family: 'Times New Roman','serif'\">Field controls  used in publishing context<o:p><\/o:p><\/span><\/p>\n<p class=\"MsoNormal\" style=\"margin-left: 0.75in; text-indent: -0.25in; line-height: normal\"><span style=\"font-size: 12pt; font-family: 'Times New Roman','serif'\">2.<\/span><span style=\"font-size: 7pt; font-family: 'Times New Roman','serif'\">\u00a0\u00a0\u00a0\u00a0\u00a0  <\/span><span style=\"font-size: 12pt; font-family: 'Times New Roman','serif'\">Publishing site  columns<o:p><\/o:p><\/span><\/p>\n<p class=\"MsoNormal\" style=\"margin-left: 0.75in; text-indent: -0.25in; line-height: normal\"><span style=\"font-size: 12pt; font-family: 'Times New Roman','serif'\">3.<\/span><span style=\"font-size: 7pt; font-family: 'Times New Roman','serif'\">\u00a0\u00a0\u00a0\u00a0\u00a0  <\/span><span style=\"font-size: 12pt; font-family: 'Times New Roman','serif'\">Publishing  content types<o:p><\/o:p><\/span><\/p>\n<p class=\"MsoNormal\" style=\"margin-left: 0.75in; text-indent: -0.25in; line-height: normal\"><span style=\"font-size: 12pt; font-family: 'Times New Roman','serif'\">4.<\/span><span style=\"font-size: 7pt; font-family: 'Times New Roman','serif'\">\u00a0\u00a0\u00a0\u00a0\u00a0  <\/span><span style=\"font-size: 12pt; font-family: 'Times New Roman','serif'\">Workflows used  in publishing context<o:p><\/o:p><\/span><\/p>\n<p class=\"MsoNormal\" style=\"margin-left: 0.75in; text-indent: -0.25in; line-height: normal\"><span style=\"font-size: 12pt; font-family: 'Times New Roman','serif'\">5.<\/span><span style=\"font-size: 7pt; font-family: 'Times New Roman','serif'\">\u00a0\u00a0\u00a0\u00a0\u00a0  <\/span><span style=\"font-size: 12pt; font-family: 'Times New Roman','serif'\">Web  parts used in publishing context ( for example those derived from Content Query  Web Part)<o:p><\/o:p><\/span><\/p>\n<p class=\"MsoNormal\" style=\"margin-left: 0.75in; text-indent: -0.25in; line-height: normal\"><span style=\"font-size: 12pt; font-family: 'Times New Roman','serif'\">6.<\/span><span style=\"font-size: 7pt; font-family: 'Times New Roman','serif'\">\u00a0\u00a0\u00a0\u00a0\u00a0  <\/span><span style=\"font-size: 12pt; font-family: 'Times New Roman','serif'\">Master pages and  page layouts<o:p><\/o:p><\/span><\/p>\n<p class=\"MsoNormal\" style=\"margin-left: 0.75in; text-indent: -0.25in; line-height: normal\"><span style=\"font-size: 12pt; font-family: 'Times New Roman','serif'\">7.<\/span><span style=\"font-size: 7pt; font-family: 'Times New Roman','serif'\">\u00a0\u00a0\u00a0\u00a0\u00a0  <\/span><span style=\"font-size: 12pt; font-family: 'Times New Roman','serif'\">Custom xslts  used in publishing context<o:p><\/o:p><\/span><\/p>\n<p class=\"MsoNormal\" style=\"margin-left: 0.75in; text-indent: -0.25in; line-height: normal\"><span style=\"font-size: 12pt; font-family: 'Times New Roman','serif'\">8.<\/span><span style=\"font-size: 7pt; font-family: 'Times New Roman','serif'\">\u00a0\u00a0\u00a0\u00a0\u00a0  <\/span><span style=\"font-size: 12pt; font-family: 'Times New Roman','serif'\">Delegate  controls used in publishing context<o:p><\/o:p><\/span><\/p>\n<p class=\"MsoNormal\" style=\"margin-left: 0.75in; text-indent: -0.25in; line-height: normal\"><span style=\"font-size: 12pt; font-family: 'Times New Roman','serif'\">9.<\/span><span style=\"font-size: 7pt; font-family: 'Times New Roman','serif'\">\u00a0\u00a0\u00a0\u00a0\u00a0  <\/span><span style=\"font-size: 12pt; font-family: 'Times New Roman','serif'\">Publishing Site  Definitions<o:p><\/o:p><\/span><\/p>\n<p class=\"MsoNormal\" style=\"margin-left: 0.75in; text-indent: -0.25in; line-height: normal\"><span style=\"font-size: 12pt; font-family: 'Times New Roman','serif'\">10.<\/span><span style=\"font-size: 7pt; font-family: 'Times New Roman','serif'\">\u00a0 <\/span><span style=\"font-size: 12pt; font-family: 'Times New Roman','serif'\">Custom processes  attached to the publishing Site Definitions<o:p><\/o:p><\/span><\/p>\n<p class=\"MsoNormal\" style=\"text-indent: -0.25in; line-height: normal\"><strong><span style=\"font-size: 12pt; font-family: 'Times New Roman','serif'\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Workflows<\/span><\/strong><span style=\"font-size: 12pt; font-family: 'Times New Roman','serif'\"> (Class library  \u2013 Deployed to GAC)<o:p><\/o:p><\/span><\/p>\n<p class=\"MsoNormal\" style=\"margin-left: 0.75in; text-indent: -0.25in; line-height: normal\"><span style=\"font-size: 12pt; font-family: 'Times New Roman','serif'\">1.<\/span><span style=\"font-size: 7pt; font-family: 'Times New Roman','serif'\">\u00a0\u00a0\u00a0\u00a0\u00a0  <\/span><span style=\"font-size: 12pt; font-family: 'Times New Roman','serif'\">Site  columns<o:p><\/o:p><\/span><\/p>\n<p class=\"MsoNormal\" style=\"margin-left: 0.75in; text-indent: -0.25in; line-height: normal\"><span style=\"font-size: 12pt; font-family: 'Times New Roman','serif'\">2.<\/span><span style=\"font-size: 7pt; font-family: 'Times New Roman','serif'\">\u00a0\u00a0\u00a0\u00a0\u00a0  <\/span><span style=\"font-size: 12pt; font-family: 'Times New Roman','serif'\">Content  types<o:p><\/o:p><\/span><\/p>\n<p class=\"MsoNormal\" style=\"margin-left: 0.75in; text-indent: -0.25in; line-height: normal\"><span style=\"font-size: 12pt; font-family: 'Times New Roman','serif'\">3.<\/span><span style=\"font-size: 7pt; font-family: 'Times New Roman','serif'\">\u00a0\u00a0\u00a0\u00a0\u00a0  <\/span><span style=\"font-size: 12pt; font-family: 'Times New Roman','serif'\">Workflows used  in non-publishing context<o:p><\/o:p><\/span><\/p>\n<p class=\"MsoNormal\" style=\"margin-left: 0.75in; text-indent: -0.25in; line-height: normal\"><span style=\"font-size: 12pt; font-family: 'Times New Roman','serif'\">4.<\/span><span style=\"font-size: 7pt; font-family: 'Times New Roman','serif'\">\u00a0\u00a0\u00a0\u00a0\u00a0  <\/span><span style=\"font-size: 12pt; font-family: 'Times New Roman','serif'\">InfoPath forms  used in workflows as Initiation, Association and task  forms<o:p><\/o:p><\/span><\/p>\n<p class=\"MsoNormal\" style=\"margin-left: 0.75in; text-indent: -0.25in; line-height: normal\"><span style=\"font-size: 12pt; font-family: 'Times New Roman','serif'\">5.<\/span><span style=\"font-size: 7pt; font-family: 'Times New Roman','serif'\">\u00a0\u00a0\u00a0\u00a0\u00a0  <\/span><span style=\"font-size: 12pt; font-family: 'Times New Roman','serif'\">Feature  receivers to add content types to the appropriate lists or doc libs proviosned  by Infrastructure solution<o:p><\/o:p><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I understand that each project has its own requirements and those requirements would dictate the layout of your VS solution(s) and the way you package your work into WSP solutions. As I discussed this with other MVP and non-MVP devs, we finally came to a conclusion that there is no \u201cbest way\u201d that fits all [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[43],"tags":[],"class_list":["post-595","post","type-post","status-publish","format-standard","hentry","category-moss-2007"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Atomic use cases,Features, WSP Solutions and VS solutions - Reza Alirezaei&#039;s Blog %<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blogs.devhorizon.com\/reza\/2008\/08\/07\/atomic-use-casesfeatures-wsp-solutions-and-vs-solutions\/\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Reza Alirezaei\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/blogs.devhorizon.com\\\/reza\\\/2008\\\/08\\\/07\\\/atomic-use-casesfeatures-wsp-solutions-and-vs-solutions\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.devhorizon.com\\\/reza\\\/2008\\\/08\\\/07\\\/atomic-use-casesfeatures-wsp-solutions-and-vs-solutions\\\/\"},\"author\":{\"name\":\"Reza Alirezaei\",\"@id\":\"https:\\\/\\\/blogs.devhorizon.com\\\/reza\\\/#\\\/schema\\\/person\\\/cdbb24d283697a65951cb4a14e474938\"},\"headline\":\"Atomic use cases,Features, WSP Solutions and VS solutions\",\"datePublished\":\"2008-08-07T20:54:57+00:00\",\"dateModified\":\"2008-08-09T04:32:37+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blogs.devhorizon.com\\\/reza\\\/2008\\\/08\\\/07\\\/atomic-use-casesfeatures-wsp-solutions-and-vs-solutions\\\/\"},\"wordCount\":659,\"commentCount\":2,\"articleSection\":[\"MOSS 2007\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/blogs.devhorizon.com\\\/reza\\\/2008\\\/08\\\/07\\\/atomic-use-casesfeatures-wsp-solutions-and-vs-solutions\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blogs.devhorizon.com\\\/reza\\\/2008\\\/08\\\/07\\\/atomic-use-casesfeatures-wsp-solutions-and-vs-solutions\\\/\",\"url\":\"https:\\\/\\\/blogs.devhorizon.com\\\/reza\\\/2008\\\/08\\\/07\\\/atomic-use-casesfeatures-wsp-solutions-and-vs-solutions\\\/\",\"name\":\"Atomic use cases,Features, WSP Solutions and VS solutions - Reza Alirezaei's Blog %\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.devhorizon.com\\\/reza\\\/#website\"},\"datePublished\":\"2008-08-07T20:54:57+00:00\",\"dateModified\":\"2008-08-09T04:32:37+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/blogs.devhorizon.com\\\/reza\\\/#\\\/schema\\\/person\\\/cdbb24d283697a65951cb4a14e474938\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/blogs.devhorizon.com\\\/reza\\\/2008\\\/08\\\/07\\\/atomic-use-casesfeatures-wsp-solutions-and-vs-solutions\\\/\"]}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/blogs.devhorizon.com\\\/reza\\\/#website\",\"url\":\"https:\\\/\\\/blogs.devhorizon.com\\\/reza\\\/\",\"name\":\"Reza Alirezaei's Blog\",\"description\":\"Blogging from the field!\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/blogs.devhorizon.com\\\/reza\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/blogs.devhorizon.com\\\/reza\\\/#\\\/schema\\\/person\\\/cdbb24d283697a65951cb4a14e474938\",\"name\":\"Reza Alirezaei\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3ba940d84e0ecb909e62e93df4c56daf0395c7e53c914467ab2ee73124a7d7b6?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3ba940d84e0ecb909e62e93df4c56daf0395c7e53c914467ab2ee73124a7d7b6?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3ba940d84e0ecb909e62e93df4c56daf0395c7e53c914467ab2ee73124a7d7b6?s=96&d=mm&r=g\",\"caption\":\"Reza Alirezaei\"},\"url\":\"https:\\\/\\\/blogs.devhorizon.com\\\/reza\\\/author\\\/rezaa\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Atomic use cases,Features, WSP Solutions and VS solutions - Reza Alirezaei's Blog %","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blogs.devhorizon.com\/reza\/2008\/08\/07\/atomic-use-casesfeatures-wsp-solutions-and-vs-solutions\/","twitter_misc":{"Written by":"Reza Alirezaei","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blogs.devhorizon.com\/reza\/2008\/08\/07\/atomic-use-casesfeatures-wsp-solutions-and-vs-solutions\/#article","isPartOf":{"@id":"https:\/\/blogs.devhorizon.com\/reza\/2008\/08\/07\/atomic-use-casesfeatures-wsp-solutions-and-vs-solutions\/"},"author":{"name":"Reza Alirezaei","@id":"https:\/\/blogs.devhorizon.com\/reza\/#\/schema\/person\/cdbb24d283697a65951cb4a14e474938"},"headline":"Atomic use cases,Features, WSP Solutions and VS solutions","datePublished":"2008-08-07T20:54:57+00:00","dateModified":"2008-08-09T04:32:37+00:00","mainEntityOfPage":{"@id":"https:\/\/blogs.devhorizon.com\/reza\/2008\/08\/07\/atomic-use-casesfeatures-wsp-solutions-and-vs-solutions\/"},"wordCount":659,"commentCount":2,"articleSection":["MOSS 2007"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blogs.devhorizon.com\/reza\/2008\/08\/07\/atomic-use-casesfeatures-wsp-solutions-and-vs-solutions\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blogs.devhorizon.com\/reza\/2008\/08\/07\/atomic-use-casesfeatures-wsp-solutions-and-vs-solutions\/","url":"https:\/\/blogs.devhorizon.com\/reza\/2008\/08\/07\/atomic-use-casesfeatures-wsp-solutions-and-vs-solutions\/","name":"Atomic use cases,Features, WSP Solutions and VS solutions - Reza Alirezaei's Blog %","isPartOf":{"@id":"https:\/\/blogs.devhorizon.com\/reza\/#website"},"datePublished":"2008-08-07T20:54:57+00:00","dateModified":"2008-08-09T04:32:37+00:00","author":{"@id":"https:\/\/blogs.devhorizon.com\/reza\/#\/schema\/person\/cdbb24d283697a65951cb4a14e474938"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blogs.devhorizon.com\/reza\/2008\/08\/07\/atomic-use-casesfeatures-wsp-solutions-and-vs-solutions\/"]}]},{"@type":"WebSite","@id":"https:\/\/blogs.devhorizon.com\/reza\/#website","url":"https:\/\/blogs.devhorizon.com\/reza\/","name":"Reza Alirezaei's Blog","description":"Blogging from the field!","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blogs.devhorizon.com\/reza\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/blogs.devhorizon.com\/reza\/#\/schema\/person\/cdbb24d283697a65951cb4a14e474938","name":"Reza Alirezaei","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/3ba940d84e0ecb909e62e93df4c56daf0395c7e53c914467ab2ee73124a7d7b6?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/3ba940d84e0ecb909e62e93df4c56daf0395c7e53c914467ab2ee73124a7d7b6?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3ba940d84e0ecb909e62e93df4c56daf0395c7e53c914467ab2ee73124a7d7b6?s=96&d=mm&r=g","caption":"Reza Alirezaei"},"url":"https:\/\/blogs.devhorizon.com\/reza\/author\/rezaa\/"}]}},"_links":{"self":[{"href":"https:\/\/blogs.devhorizon.com\/reza\/wp-json\/wp\/v2\/posts\/595","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.devhorizon.com\/reza\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.devhorizon.com\/reza\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.devhorizon.com\/reza\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.devhorizon.com\/reza\/wp-json\/wp\/v2\/comments?post=595"}],"version-history":[{"count":0,"href":"https:\/\/blogs.devhorizon.com\/reza\/wp-json\/wp\/v2\/posts\/595\/revisions"}],"wp:attachment":[{"href":"https:\/\/blogs.devhorizon.com\/reza\/wp-json\/wp\/v2\/media?parent=595"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.devhorizon.com\/reza\/wp-json\/wp\/v2\/categories?post=595"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.devhorizon.com\/reza\/wp-json\/wp\/v2\/tags?post=595"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}