<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Denis Vuyka</title>
	<atom:link href="https://denisvuyka.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>https://denisvuyka.wordpress.com</link>
	<description>Research and Development</description>
	<lastBuildDate>Thu, 15 Jun 2017 20:32:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='denisvuyka.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>https://s2.wp.com/i/buttonw-com.png</url>
		<title>Denis Vuyka</title>
		<link>https://denisvuyka.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="https://denisvuyka.wordpress.com/osd.xml" title="Denis Vuyka" />
	<atom:link rel='hub' href='https://denisvuyka.wordpress.com/?pushpress=hub'/>
	<item>
		<title>Collab.js 0.4.0 is out</title>
		<link>https://denisvuyka.wordpress.com/2014/01/11/collab-js-0-4-0-is-out/</link>
		<comments>https://denisvuyka.wordpress.com/2014/01/11/collab-js-0-4-0-is-out/#comments</comments>
		<pubDate>Sat, 11 Jan 2014 15:51:16 +0000</pubDate>
		<dc:creator><![CDATA[Denys Vuika]]></dc:creator>
				<category><![CDATA[node.js]]></category>

		<guid isPermaLink="false">http://denisvuyka.wordpress.com/?p=544</guid>
		<description><![CDATA[I&#8217;m glad to announce that a new version of collab.js (0.4.0) has been released today. The build focuses on the following features: Angular.js as the core client-side framework Migration to Bootstrap 3.0.3 Upgrade of Font Awesome to version 4.0.3 SSL support New card layout for user posts Development process enhancements (configurations for JSHint, Grunt, Karma, etc) [&#8230;]<img alt="" border="0" src="https://pixel.wp.com/b.gif?host=denisvuyka.wordpress.com&#038;blog=4724773&#038;post=544&#038;subd=denisvuyka&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>I&#8217;m glad to announce that a new version of <a href="https://github.com/DenisVuyka/collab.js/releases/tag/v0.4.0" target="_blank">collab.js (0.4.0)</a> has been released today.</p>
<p>The build focuses on the following features:</p>
<ul>
<li><a title="Angular.js" href="http://angularjs.org/" target="_blank">Angular.js</a> as the core client-side framework</li>
<li>Migration to <a title="Bootstrap 3.0.3" href="http://getbootstrap.com/" target="_blank">Bootstrap 3.0.3</a></li>
<li>Upgrade of <a title="Font Awesome 4.0.3" href="http://fontawesome.io/" target="_blank">Font Awesome</a> to version 4.0.3</li>
<li>SSL support</li>
<li>New card layout for user posts</li>
<li>Development process enhancements (configurations for JSHint, Grunt, Karma, etc)</li>
</ul>
<p>Please refer to <a title="collab.js v0.4.0" href="https://github.com/DenisVuyka/collab.js/releases/tag/v0.4.0" target="_blank">release notes</a> for the full list of features and enhancements.</p>
<h2>Card layout</h2>
<p>With version 0.4.0 collab.js introduces card layout for user posts instead of a plain single-column list. New layout is highly responsive and automatically changes amount of columns based on available screen size. For example on large widescreen displays users may get 4 or more columns, 3 columns on tablets and single column on smartphones.</p>
<div style="width: 660px" class="wp-caption alignnone"><a href="https://denisvuyka.files.wordpress.com/2014/01/collabjs-0-4-0-layout.png"><img class=" wp-image" id="i-587" style="border:lightgray solid 1px;" alt="Image" src="https://denisvuyka.files.wordpress.com/2014/01/collabjs-0-4-0-layout.png?w=650&#038;h=304" width="650" height="304" srcset="https://denisvuyka.files.wordpress.com/2014/01/collabjs-0-4-0-layout.png?w=650&amp;h=304 650w, https://denisvuyka.files.wordpress.com/2014/01/collabjs-0-4-0-layout.png?w=1300&amp;h=608 1300w, https://denisvuyka.files.wordpress.com/2014/01/collabjs-0-4-0-layout.png?w=150&amp;h=70 150w, https://denisvuyka.files.wordpress.com/2014/01/collabjs-0-4-0-layout.png?w=300&amp;h=140 300w, https://denisvuyka.files.wordpress.com/2014/01/collabjs-0-4-0-layout.png?w=768&amp;h=359 768w, https://denisvuyka.files.wordpress.com/2014/01/collabjs-0-4-0-layout.png?w=1024&amp;h=478 1024w" sizes="(max-width: 650px) 100vw, 650px" /></a><p class="wp-caption-text">click to enlarge</p></div>
<p>&nbsp;</p>
<h3>Inline comments</h3>
<p>All comments are displayed inline and are updated every time user expands corresponding area. Every card automatically enlarges and shrinks upon comments being toggled. For large amount of entries a scrollbar is enabled:</p>
<p><a href="https://denisvuyka.files.wordpress.com/2014/01/collabjs-0-4-0-comments.png"><img class="size-full wp-image" id="i-610" style="border:lightgray solid 1px;" alt="Comments" src="https://denisvuyka.files.wordpress.com/2014/01/collabjs-0-4-0-comments.png?w=456" width="456" height="634" srcset="https://denisvuyka.files.wordpress.com/2014/01/collabjs-0-4-0-comments.png?w=456 456w, https://denisvuyka.files.wordpress.com/2014/01/collabjs-0-4-0-comments.png?w=108 108w, https://denisvuyka.files.wordpress.com/2014/01/collabjs-0-4-0-comments.png?w=216 216w, https://denisvuyka.files.wordpress.com/2014/01/collabjs-0-4-0-comments.png 466w" sizes="(max-width: 456px) 100vw, 456px" /></a></p>
<h3>Contextual options</h3>
<p>Every card entry has a menu with contextual options. It gets displayed as soon as user hovers mouse cursor over the card and provides access to various options.</p>
<p><a href="https://denisvuyka.files.wordpress.com/2014/01/collabjs-0-4-0-card-options-1.png"><img class="size-full wp-image" id="i-622" style="border:lightgray solid 1px;" alt="Context menu" src="https://denisvuyka.files.wordpress.com/2014/01/collabjs-0-4-0-card-options-1.png?w=452" width="452" height="327" srcset="https://denisvuyka.files.wordpress.com/2014/01/collabjs-0-4-0-card-options-1.png?w=452 452w, https://denisvuyka.files.wordpress.com/2014/01/collabjs-0-4-0-card-options-1.png?w=150 150w, https://denisvuyka.files.wordpress.com/2014/01/collabjs-0-4-0-card-options-1.png?w=300 300w, https://denisvuyka.files.wordpress.com/2014/01/collabjs-0-4-0-card-options-1.png 462w" sizes="(max-width: 452px) 100vw, 452px" /></a></p>
<p><em>As of version 0.4.0 only &#8216;Mute post&#8217; action is available for end users. The list of available commands will keep expanding within upcoming versions of collab.js.</em></p>
<p><a href="https://denisvuyka.files.wordpress.com/2014/01/collabjs-0-4-0-card-options-2.png"><img class="size-full wp-image" id="i-627" style="border:lightgray solid 1px;" alt="Context Menu" src="https://denisvuyka.files.wordpress.com/2014/01/collabjs-0-4-0-card-options-2.png?w=452" width="452" height="327" srcset="https://denisvuyka.files.wordpress.com/2014/01/collabjs-0-4-0-card-options-2.png?w=452 452w, https://denisvuyka.files.wordpress.com/2014/01/collabjs-0-4-0-card-options-2.png?w=150 150w, https://denisvuyka.files.wordpress.com/2014/01/collabjs-0-4-0-card-options-2.png?w=300 300w, https://denisvuyka.files.wordpress.com/2014/01/collabjs-0-4-0-card-options-2.png 462w" sizes="(max-width: 452px) 100vw, 452px" /></a></p>
<h2>New &#8216;Login&#8217; and &#8216;Sign Up&#8217; pages</h2>
<p>Version 0.4.0 features completely new mobile-friendly &#8216;Login&#8217; and &#8216;Sign Up&#8217; pages.</p>
<p><a href="https://denisvuyka.files.wordpress.com/2014/01/collabjs-0-4-0-login2.png"><img class="size-full wp-image" id="i-598" style="border:lightgray solid 1px;" alt="Login" src="https://denisvuyka.files.wordpress.com/2014/01/collabjs-0-4-0-login2.png?w=579" width="579" height="322" srcset="https://denisvuyka.files.wordpress.com/2014/01/collabjs-0-4-0-login2.png?w=579 579w, https://denisvuyka.files.wordpress.com/2014/01/collabjs-0-4-0-login2.png?w=150 150w, https://denisvuyka.files.wordpress.com/2014/01/collabjs-0-4-0-login2.png?w=300 300w, https://denisvuyka.files.wordpress.com/2014/01/collabjs-0-4-0-login2.png 589w" sizes="(max-width: 579px) 100vw, 579px" /></a></p>
<p><a href="https://denisvuyka.files.wordpress.com/2014/01/collabjs-0-4-0-signup1.png"><img class="size-full wp-image" id="i-600" style="border:solid lightgray 1px;" alt="Sign Up" src="https://denisvuyka.files.wordpress.com/2014/01/collabjs-0-4-0-signup1.png?w=445" width="445" height="449" srcset="https://denisvuyka.files.wordpress.com/2014/01/collabjs-0-4-0-signup1.png?w=445 445w, https://denisvuyka.files.wordpress.com/2014/01/collabjs-0-4-0-signup1.png?w=150 150w, https://denisvuyka.files.wordpress.com/2014/01/collabjs-0-4-0-signup1.png?w=297 297w, https://denisvuyka.files.wordpress.com/2014/01/collabjs-0-4-0-signup1.png 455w" sizes="(max-width: 445px) 100vw, 445px" /></a></p>
<h2>Menu bar enhancements</h2>
<p>With version 0.4.0 global sidebar element has been deprecated in favor of top menu bar that is more efficient when running collab.js on smaller screens (i.e. tablets or smartphones). Menu bar got better selection indication, access to search lists (dynamically updated dropdown menu) and enhanced settings menu:</p>
<p><a href="https://denisvuyka.files.wordpress.com/2014/01/collabjs-0-4-0-search-lists.png"><img class="size-full wp-image" id="i-642" style="border:lightgray solid 1px;" alt="Search Lists" src="https://denisvuyka.files.wordpress.com/2014/01/collabjs-0-4-0-search-lists.png?w=601" width="601" height="175" srcset="https://denisvuyka.files.wordpress.com/2014/01/collabjs-0-4-0-search-lists.png?w=601 601w, https://denisvuyka.files.wordpress.com/2014/01/collabjs-0-4-0-search-lists.png?w=150 150w, https://denisvuyka.files.wordpress.com/2014/01/collabjs-0-4-0-search-lists.png?w=300 300w, https://denisvuyka.files.wordpress.com/2014/01/collabjs-0-4-0-search-lists.png 611w" sizes="(max-width: 601px) 100vw, 601px" /></a></p>
<p><a href="https://denisvuyka.files.wordpress.com/2014/01/collabjs-0-4-0-menu-options.png"><img class="size-full wp-image" id="i-645" style="border:lightgray solid 1px;" alt="Settings Menu" src="https://denisvuyka.files.wordpress.com/2014/01/collabjs-0-4-0-menu-options.png?w=650" width="650" height="204" srcset="https://denisvuyka.files.wordpress.com/2014/01/collabjs-0-4-0-menu-options.png?w=650 650w, https://denisvuyka.files.wordpress.com/2014/01/collabjs-0-4-0-menu-options.png?w=150 150w, https://denisvuyka.files.wordpress.com/2014/01/collabjs-0-4-0-menu-options.png?w=300 300w, https://denisvuyka.files.wordpress.com/2014/01/collabjs-0-4-0-menu-options.png?w=768 768w, https://denisvuyka.files.wordpress.com/2014/01/collabjs-0-4-0-menu-options.png 979w" sizes="(max-width: 650px) 100vw, 650px" /></a></p>
<h2>Misc</h2>
<p>There was also a set of development process enhancements:</p>
<ul>
<li><a title="Grunt" href="http://gruntjs.com/" target="_blank">Grunt</a> task runner support (used to minify CSS files, also performs minification and concatenation of JS files for production mode)</li>
<li>Custom <a title="JSHint" href="http://www.jshint.com/" target="_blank">JSHint</a> configuration (used to share JSHint settings when using multiple platforms for testing and development)</li>
<li><a title="Karma test runner" href="http://karma-runner.github.io/" target="_blank">Karma</a> test runner configuration (initial configuration required to run client-side tests)</li>
</ul>
<p>Full source code can be found <a title="collab.js 0.4.0" href="https://github.com/DenisVuyka/collab.js/releases/tag/v0.4.0" target="_blank">here</a>.</p><br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/denisvuyka.wordpress.com/544/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/denisvuyka.wordpress.com/544/" /></a> <img alt="" border="0" src="https://pixel.wp.com/b.gif?host=denisvuyka.wordpress.com&#038;blog=4724773&#038;post=544&#038;subd=denisvuyka&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>https://denisvuyka.wordpress.com/2014/01/11/collab-js-0-4-0-is-out/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/032cdef00bc6c528b24517b137c97660?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Denis</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2014/01/collabjs-0-4-0-layout.png?w=650" medium="image">
			<media:title type="html">Image</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2014/01/collabjs-0-4-0-comments.png?w=456" medium="image">
			<media:title type="html">Comments</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2014/01/collabjs-0-4-0-card-options-1.png?w=452" medium="image">
			<media:title type="html">Context menu</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2014/01/collabjs-0-4-0-card-options-2.png?w=452" medium="image">
			<media:title type="html">Context Menu</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2014/01/collabjs-0-4-0-login2.png?w=579" medium="image">
			<media:title type="html">Login</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2014/01/collabjs-0-4-0-signup1.png?w=445" medium="image">
			<media:title type="html">Sign Up</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2014/01/collabjs-0-4-0-search-lists.png?w=601" medium="image">
			<media:title type="html">Search Lists</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2014/01/collabjs-0-4-0-menu-options.png?w=650" medium="image">
			<media:title type="html">Settings Menu</media:title>
		</media:content>
	</item>
		<item>
		<title>Setting up OpenShift Origin Virtual Machine on Windows 7</title>
		<link>https://denisvuyka.wordpress.com/2013/09/17/setting-up-openshift-origin-virtual-machine-on-windows-7/</link>
		<comments>https://denisvuyka.wordpress.com/2013/09/17/setting-up-openshift-origin-virtual-machine-on-windows-7/#respond</comments>
		<pubDate>Tue, 17 Sep 2013 12:30:27 +0000</pubDate>
		<dc:creator><![CDATA[Denys Vuika]]></dc:creator>
				<category><![CDATA[PaaS]]></category>
		<category><![CDATA[deployment guide]]></category>
		<category><![CDATA[OpenShift]]></category>
		<category><![CDATA[virtualbox]]></category>

		<guid isPermaLink="false">http://denisvuyka.wordpress.com/?p=497</guid>
		<description><![CDATA[Introduction This article describes the process of setting up a VM running OpenShift development environment inside VirtualBox on Windows 7. The article was inspired by the &#8220;OpenShift Origin Virtual Machine Deployment Guide&#8220;, it borrows some information from the guide but concentrates on Windows 7 as a host and development machine and addresses various issues that a [&#8230;]<img alt="" border="0" src="https://pixel.wp.com/b.gif?host=denisvuyka.wordpress.com&#038;blog=4724773&#038;post=497&#038;subd=denisvuyka&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<h1>Introduction</h1>
<p>This article describes the process of setting up a VM running OpenShift development environment inside VirtualBox on Windows 7. The article was inspired by the &#8220;<a href="http://openshift.github.io/documentation/oo_deployment_guide_vm.html" target="_blank">OpenShift Origin Virtual Machine Deployment Guide</a>&#8220;, it borrows some information from the guide but concentrates on Windows 7 as a host and development machine and addresses various issues that a Windows developer may come across (and not covered by the original guide).</p>
<p>I am going to dwell on the following aspects:</p>
<ul>
<li>Setting up the Virtual Machine</li>
<li>Network configuration</li>
<li>Accessing the Virtual Machine</li>
<li>Accessing deployed application from the Windows host</li>
<li>Using RHC tools with multiple servers</li>
<li>Port forwarding</li>
<li>Accessing deployed databases from host machine</li>
</ul>
<h1>Setting up the Virtual Machine</h1>
<p>Download the VM from the OpenShift &#8220;mirrors&#8221; site (about 1.3 GB):</p>
<pre><a href="https://mirror.openshift.com/pub/origin-server/release/2/images/openshift-origin.zip">https://mirror.openshift.com/pub/origin-server/release/2/images/openshift-origin.zip </a></pre>
<p>Unpack the package with your favorite .zip manager. This can take quite a while. The result will be the creation of four additional files (file sizes may vary):</p>
<p><a href="https://denisvuyka.files.wordpress.com/2013/09/origin_01_package_content.png"><img data-attachment-id="505" data-permalink="https://denisvuyka.wordpress.com/2013/09/17/setting-up-openshift-origin-virtual-machine-on-windows-7/origin_01_package_content/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2013/09/origin_01_package_content.png?w=800" data-orig-size="339,94" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="origin_01_package_content" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2013/09/origin_01_package_content.png?w=800?w=300" data-large-file="https://denisvuyka.files.wordpress.com/2013/09/origin_01_package_content.png?w=800?w=339" class="alignnone size-full wp-image-505" alt="origin_01_package_content" src="https://denisvuyka.files.wordpress.com/2013/09/origin_01_package_content.png?w=800" srcset="https://denisvuyka.files.wordpress.com/2013/09/origin_01_package_content.png 339w, https://denisvuyka.files.wordpress.com/2013/09/origin_01_package_content.png?w=150 150w, https://denisvuyka.files.wordpress.com/2013/09/origin_01_package_content.png?w=300 300w" sizes="(max-width: 339px) 100vw, 339px"   /></a></p>
<h2>Create New VM</h2>
<p>You are going to create a new Linux machine with Fedora (64 bit)</p>
<p><a href="https://denisvuyka.files.wordpress.com/2013/09/origin_02_vm_new.png"><img data-attachment-id="510" data-permalink="https://denisvuyka.wordpress.com/2013/09/17/setting-up-openshift-origin-virtual-machine-on-windows-7/origin_02_vm_new/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2013/09/origin_02_vm_new.png?w=800" data-orig-size="443,421" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="origin_02_vm_new" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2013/09/origin_02_vm_new.png?w=800?w=300" data-large-file="https://denisvuyka.files.wordpress.com/2013/09/origin_02_vm_new.png?w=800?w=443" class="alignnone size-full wp-image-510" alt="origin_02_vm_new" src="https://denisvuyka.files.wordpress.com/2013/09/origin_02_vm_new.png?w=800" srcset="https://denisvuyka.files.wordpress.com/2013/09/origin_02_vm_new.png 443w, https://denisvuyka.files.wordpress.com/2013/09/origin_02_vm_new.png?w=150 150w, https://denisvuyka.files.wordpress.com/2013/09/origin_02_vm_new.png?w=300 300w" sizes="(max-width: 443px) 100vw, 443px"   /></a></p>
<h2>Set VM Memory Size</h2>
<p>Set the memory size to something reasonably large. 1 GB should be a good start. Later on you can give your machine more memory depending on cartridges used.</p>
<p><a href="https://denisvuyka.files.wordpress.com/2013/09/origin_03_vm_ram.png"><img data-attachment-id="511" data-permalink="https://denisvuyka.wordpress.com/2013/09/17/setting-up-openshift-origin-virtual-machine-on-windows-7/origin_03_vm_ram/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2013/09/origin_03_vm_ram.png?w=800" data-orig-size="439,421" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="origin_03_vm_ram" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2013/09/origin_03_vm_ram.png?w=800?w=300" data-large-file="https://denisvuyka.files.wordpress.com/2013/09/origin_03_vm_ram.png?w=800?w=439" class="alignnone size-full wp-image-511" alt="origin_03_vm_ram" src="https://denisvuyka.files.wordpress.com/2013/09/origin_03_vm_ram.png?w=800" srcset="https://denisvuyka.files.wordpress.com/2013/09/origin_03_vm_ram.png 439w, https://denisvuyka.files.wordpress.com/2013/09/origin_03_vm_ram.png?w=150 150w, https://denisvuyka.files.wordpress.com/2013/09/origin_03_vm_ram.png?w=300 300w" sizes="(max-width: 439px) 100vw, 439px"   /></a></p>
<h2>Select VM &#8220;Hard Drive&#8221; Image</h2>
<p>For this step you will need to select the virtual disk image (you&#8217;ve unpacked earlier) which contains the OpenShift Origin virtual machine.</p>
<p><a href="https://denisvuyka.files.wordpress.com/2013/09/origin_04_vm_vmdk.png"><img data-attachment-id="512" data-permalink="https://denisvuyka.wordpress.com/2013/09/17/setting-up-openshift-origin-virtual-machine-on-windows-7/origin_04_vm_vmdk/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2013/09/origin_04_vm_vmdk.png?w=800" data-orig-size="436,419" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="origin_04_vm_vmdk" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2013/09/origin_04_vm_vmdk.png?w=800?w=300" data-large-file="https://denisvuyka.files.wordpress.com/2013/09/origin_04_vm_vmdk.png?w=800?w=436" class="alignnone size-full wp-image-512" alt="origin_04_vm_vmdk" src="https://denisvuyka.files.wordpress.com/2013/09/origin_04_vm_vmdk.png?w=800" srcset="https://denisvuyka.files.wordpress.com/2013/09/origin_04_vm_vmdk.png 436w, https://denisvuyka.files.wordpress.com/2013/09/origin_04_vm_vmdk.png?w=150 150w, https://denisvuyka.files.wordpress.com/2013/09/origin_04_vm_vmdk.png?w=300 300w" sizes="(max-width: 436px) 100vw, 436px"   /></a></p>
<h1>Network configuration</h1>
<p>By default VirtualBox uses Network Address Translation (NAT) to create a virtual network interface for your virtual machines. NAT will not let you connect back into your virtual machine. You need to change the network adapter configuration to use Bridged networking. Then you virtual machine will get an IP address from your DHCP server, and you will be able to use that address to browse or log in.</p>
<p><a href="https://denisvuyka.files.wordpress.com/2013/09/origin_05_vm_network.png"><img data-attachment-id="514" data-permalink="https://denisvuyka.wordpress.com/2013/09/17/setting-up-openshift-origin-virtual-machine-on-windows-7/origin_05_vm_network/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2013/09/origin_05_vm_network.png?w=800" data-orig-size="670,499" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="origin_05_vm_network" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2013/09/origin_05_vm_network.png?w=800?w=300" data-large-file="https://denisvuyka.files.wordpress.com/2013/09/origin_05_vm_network.png?w=800?w=670" class="alignnone size-full wp-image-514" alt="origin_05_vm_network" src="https://denisvuyka.files.wordpress.com/2013/09/origin_05_vm_network.png?w=800" srcset="https://denisvuyka.files.wordpress.com/2013/09/origin_05_vm_network.png 670w, https://denisvuyka.files.wordpress.com/2013/09/origin_05_vm_network.png?w=150 150w, https://denisvuyka.files.wordpress.com/2013/09/origin_05_vm_network.png?w=300 300w" sizes="(max-width: 670px) 100vw, 670px"   /></a></p>
<p>Each system may have different names for the network adapter. Find yours in the pulldown menu labeled &#8220;Name&#8221;. Select it and press the OK button. You&#8217;ll return to the main display ready to start the VM.</p>
<p>When the VM has completed booting VirtualBox will display the access information for the VM and prompt you to start a root console.</p>
<p><a href="https://denisvuyka.files.wordpress.com/2013/09/origin_06_vm_running.png"><img data-attachment-id="515" data-permalink="https://denisvuyka.wordpress.com/2013/09/17/setting-up-openshift-origin-virtual-machine-on-windows-7/origin_06_vm_running/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2013/09/origin_06_vm_running.png?w=800" data-orig-size="750,493" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="origin_06_vm_running" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2013/09/origin_06_vm_running.png?w=800?w=300" data-large-file="https://denisvuyka.files.wordpress.com/2013/09/origin_06_vm_running.png?w=800?w=750" class="alignnone size-full wp-image-515" alt="origin_06_vm_running" src="https://denisvuyka.files.wordpress.com/2013/09/origin_06_vm_running.png?w=800" srcset="https://denisvuyka.files.wordpress.com/2013/09/origin_06_vm_running.png 750w, https://denisvuyka.files.wordpress.com/2013/09/origin_06_vm_running.png?w=150 150w, https://denisvuyka.files.wordpress.com/2013/09/origin_06_vm_running.png?w=300 300w" sizes="(max-width: 750px) 100vw, 750px"   /></a></p>
<p>Please remember the IP address VM has obtained (i.e. 192.168.1.103) as you will need it in order to access OpenShift Console. More details on IP/URL address configuration and will be given later in this article.</p>
<h1>Accessing the Virtual Machine</h1>
<p>When VM is running it is accessible from the host machine either using OpenShift console via a web browser or on a command line interface using SSH. The web interface is useful for easily managing applications while the CLI allows developers to write and test applications and components. The web browser will also be used to verify the test applications during development.</p>
<h2>User Accounts</h2>
<p>There are two user accounts which are used to access the OpenShift Origin VM. Both are displayed on the VM console when it boots as shown in the examples above.</p>
<p>The first one is the OpenShift service account. This is used to access the web console and run the <a href="https://www.openshift.com/developers/rhc-client-tools-install" target="_blank"><strong>rhc</strong></a> CLI commands as a developer.</p>
<ul>
<li>Username: admin</li>
<li>Password: admin</li>
</ul>
<p>The second account is the developer account. This is a UNIX account which is used to log into the OpenShift VM via SSH. It provides a work space for exploring the CLI and development environment of OpenShift Origin.</p>
<ul>
<li>Username:  openshift</li>
<li>Password: openshift</li>
</ul>
<p>If you try logging in with one or those and it fails, try using the other.</p>
<h2>Using a browser to view the OpenShift Console</h2>
<p>When the VM is running you can use the OpenShift console to create and manage applications in the VM. Navigate your browser to the IP address the VM machine has automatically received during boot (i.e. <a href="http://192.168.1.103" rel="nofollow">http://192.168.1.103</a>). Enter the username and password (admin/admin) when prompted.</p>
<p><a href="https://denisvuyka.files.wordpress.com/2013/09/origin_07_web_console.png"><img data-attachment-id="518" data-permalink="https://denisvuyka.wordpress.com/2013/09/17/setting-up-openshift-origin-virtual-machine-on-windows-7/origin_07_web_console/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2013/09/origin_07_web_console.png?w=800&#038;h=478" data-orig-size="1207,722" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="origin_07_web_console" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2013/09/origin_07_web_console.png?w=800&#038;h=478?w=300" data-large-file="https://denisvuyka.files.wordpress.com/2013/09/origin_07_web_console.png?w=800&#038;h=478?w=800" class="alignnone size-full wp-image-518" alt="origin_07_web_console" src="https://denisvuyka.files.wordpress.com/2013/09/origin_07_web_console.png?w=800&#038;h=478" width="800" height="478" srcset="https://denisvuyka.files.wordpress.com/2013/09/origin_07_web_console.png?w=800&amp;h=478 800w, https://denisvuyka.files.wordpress.com/2013/09/origin_07_web_console.png?w=150&amp;h=90 150w, https://denisvuyka.files.wordpress.com/2013/09/origin_07_web_console.png?w=300&amp;h=179 300w, https://denisvuyka.files.wordpress.com/2013/09/origin_07_web_console.png?w=768&amp;h=459 768w, https://denisvuyka.files.wordpress.com/2013/09/origin_07_web_console.png?w=1024&amp;h=613 1024w, https://denisvuyka.files.wordpress.com/2013/09/origin_07_web_console.png 1207w" sizes="(max-width: 800px) 100vw, 800px" /></a></p>
<h2>Using SSH to log into the VM</h2>
<p>Most of the OpenShift workflow for application development is done from the command line. The OpenShift VM has account created and populated with the tools needed to create, manage and develop apps for demonstration purposes.</p>
<p>Developers may reach the command line on the VM using SSH from the host.  The easiest way of using SSH on Windows machines is by <a href="http://git-scm.com/" target="_blank">Git for Windows</a> bash.</p>
<p><a href="https://denisvuyka.files.wordpress.com/2013/09/origin_08_ssh.png"><img data-attachment-id="519" data-permalink="https://denisvuyka.wordpress.com/2013/09/17/setting-up-openshift-origin-virtual-machine-on-windows-7/origin_08_ssh/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2013/09/origin_08_ssh.png?w=800" data-orig-size="690,180" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="origin_08_ssh" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2013/09/origin_08_ssh.png?w=800?w=300" data-large-file="https://denisvuyka.files.wordpress.com/2013/09/origin_08_ssh.png?w=800?w=690" class="alignnone size-full wp-image-519" alt="origin_08_ssh" src="https://denisvuyka.files.wordpress.com/2013/09/origin_08_ssh.png?w=800" srcset="https://denisvuyka.files.wordpress.com/2013/09/origin_08_ssh.png 690w, https://denisvuyka.files.wordpress.com/2013/09/origin_08_ssh.png?w=150 150w, https://denisvuyka.files.wordpress.com/2013/09/origin_08_ssh.png?w=300 300w" sizes="(max-width: 690px) 100vw, 690px"   /></a></p>
<p>At this point you are going to use IP address of the Virtual Machine for SSH access. When prompted for the password use &#8216;openshift&#8217; one.</p>
<h1>Accessing deployed application from the Windows host</h1>
<p>For demonstration purposes I have created a basic &#8216;Node.js 0.10&#8217; application named &#8216;<strong>Test01</strong>&#8216; having namespace &#8216;<strong>dvuyka</strong>&#8216; like shown below</p>
<p><a href="https://denisvuyka.files.wordpress.com/2013/09/origin_09_nodejs_app.png"><img data-attachment-id="520" data-permalink="https://denisvuyka.wordpress.com/2013/09/17/setting-up-openshift-origin-virtual-machine-on-windows-7/origin_09_nodejs_app/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2013/09/origin_09_nodejs_app.png?w=800&#038;h=363" data-orig-size="837,380" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="origin_09_nodejs_app" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2013/09/origin_09_nodejs_app.png?w=800&#038;h=363?w=300" data-large-file="https://denisvuyka.files.wordpress.com/2013/09/origin_09_nodejs_app.png?w=800&#038;h=363?w=800" class="alignnone size-full wp-image-520" alt="origin_09_nodejs_app" src="https://denisvuyka.files.wordpress.com/2013/09/origin_09_nodejs_app.png?w=800&#038;h=363" width="800" height="363" srcset="https://denisvuyka.files.wordpress.com/2013/09/origin_09_nodejs_app.png?w=800&amp;h=363 800w, https://denisvuyka.files.wordpress.com/2013/09/origin_09_nodejs_app.png?w=150&amp;h=68 150w, https://denisvuyka.files.wordpress.com/2013/09/origin_09_nodejs_app.png?w=300&amp;h=136 300w, https://denisvuyka.files.wordpress.com/2013/09/origin_09_nodejs_app.png?w=768&amp;h=349 768w, https://denisvuyka.files.wordpress.com/2013/09/origin_09_nodejs_app.png 837w" sizes="(max-width: 800px) 100vw, 800px" /></a></p>
<p>When application is created you will see an entry within &#8216;My Applications&#8217; area with a URL having the following format:</p>
<pre>http://&lt;APPLICATION&gt;-&lt;NAMESPACE&gt;.openshift.local</pre>
<p>However by default on Windows hosts you won&#8217;t be able accessing your application with the browser because of DNS resolving. The easiest and quickest way solving this issue would be changing the hosts file and providing required addresses explicitly. This will allow saving time on DNS server configuration especially when working offline or with isolated environment.</p>
<h2>Setting up hosts</h2>
<p>For more information on modifying &#8216;hosts&#8217; file on Windows please refer to the following article:</p>
<pre><a href="http://www.rackspace.com/knowledge_center/article/how-do-i-modify-my-hosts-file" target="_blank">How do I modify my hots file?</a></pre>
<p>You will need at least 3 entries to be explicitly declared, 2 for OpenShift environment and 1 for your application:</p>
<pre>192.168.1.103 openshift.local
192.168.1.103 broker.openshift.local
192.168.1.103 test01-dvuyka.openshift.local</pre>
<p><em>Typically you will need mapping every application endpoint to be accessible. There is no need rebooting Windows after making change to &#8216;hosts&#8217; file.</em></p>
<p>Now you should be able accessing OpenShift Console via <a href="https://openshift.local" target="_blank">https://openshift.local</a> address</p>
<p><a href="https://denisvuyka.files.wordpress.com/2013/09/origin_10_local_address.png"><img data-attachment-id="524" data-permalink="https://denisvuyka.wordpress.com/2013/09/17/setting-up-openshift-origin-virtual-machine-on-windows-7/origin_10_local_address/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2013/09/origin_10_local_address.png?w=800&#038;h=386" data-orig-size="1045,505" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="origin_10_local_address" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2013/09/origin_10_local_address.png?w=800&#038;h=386?w=300" data-large-file="https://denisvuyka.files.wordpress.com/2013/09/origin_10_local_address.png?w=800&#038;h=386?w=800" class="alignnone size-full wp-image-524" alt="origin_10_local_address" src="https://denisvuyka.files.wordpress.com/2013/09/origin_10_local_address.png?w=800&#038;h=386" width="800" height="386" srcset="https://denisvuyka.files.wordpress.com/2013/09/origin_10_local_address.png?w=800&amp;h=386 800w, https://denisvuyka.files.wordpress.com/2013/09/origin_10_local_address.png?w=150&amp;h=72 150w, https://denisvuyka.files.wordpress.com/2013/09/origin_10_local_address.png?w=300&amp;h=145 300w, https://denisvuyka.files.wordpress.com/2013/09/origin_10_local_address.png?w=768&amp;h=371 768w, https://denisvuyka.files.wordpress.com/2013/09/origin_10_local_address.png?w=1024&amp;h=495 1024w, https://denisvuyka.files.wordpress.com/2013/09/origin_10_local_address.png 1045w" sizes="(max-width: 800px) 100vw, 800px" /></a></p>
<p>Clicking the application URL will now allow you accessing deployed application from within your Windows host browser:</p>
<p><a href="https://denisvuyka.files.wordpress.com/2013/09/origin_11_application.png"><img data-attachment-id="525" data-permalink="https://denisvuyka.wordpress.com/2013/09/17/setting-up-openshift-origin-virtual-machine-on-windows-7/origin_11_application/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2013/09/origin_11_application.png?w=800&#038;h=419" data-orig-size="987,517" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="origin_11_application" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2013/09/origin_11_application.png?w=800&#038;h=419?w=300" data-large-file="https://denisvuyka.files.wordpress.com/2013/09/origin_11_application.png?w=800&#038;h=419?w=800" class="alignnone size-full wp-image-525" alt="origin_11_application" src="https://denisvuyka.files.wordpress.com/2013/09/origin_11_application.png?w=800&#038;h=419" width="800" height="419" srcset="https://denisvuyka.files.wordpress.com/2013/09/origin_11_application.png?w=800&amp;h=419 800w, https://denisvuyka.files.wordpress.com/2013/09/origin_11_application.png?w=150&amp;h=79 150w, https://denisvuyka.files.wordpress.com/2013/09/origin_11_application.png?w=300&amp;h=157 300w, https://denisvuyka.files.wordpress.com/2013/09/origin_11_application.png?w=768&amp;h=402 768w, https://denisvuyka.files.wordpress.com/2013/09/origin_11_application.png 987w" sizes="(max-width: 800px) 100vw, 800px" /></a></p>
<h2>Using SSH to log into VM</h2>
<p>At this point it should be possible using <strong>broker.openshift.local</strong> address with SSH connections:</p>
<p><a href="https://denisvuyka.files.wordpress.com/2013/09/origin_12_broker_ssh.png"><img data-attachment-id="526" data-permalink="https://denisvuyka.wordpress.com/2013/09/17/setting-up-openshift-origin-virtual-machine-on-windows-7/origin_12_broker_ssh/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2013/09/origin_12_broker_ssh.png?w=800" data-orig-size="693,154" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="origin_12_broker_ssh" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2013/09/origin_12_broker_ssh.png?w=800?w=300" data-large-file="https://denisvuyka.files.wordpress.com/2013/09/origin_12_broker_ssh.png?w=800?w=693" class="alignnone size-full wp-image-526" alt="origin_12_broker_ssh" src="https://denisvuyka.files.wordpress.com/2013/09/origin_12_broker_ssh.png?w=800" srcset="https://denisvuyka.files.wordpress.com/2013/09/origin_12_broker_ssh.png 693w, https://denisvuyka.files.wordpress.com/2013/09/origin_12_broker_ssh.png?w=150 150w, https://denisvuyka.files.wordpress.com/2013/09/origin_12_broker_ssh.png?w=300 300w" sizes="(max-width: 693px) 100vw, 693px"   /></a></p>
<h2>Configuring static IP address for VM (optional)</h2>
<p>The only problem with &#8216;hosts&#8217; file approach mentioned above is DHCP configuration. After reboot the OpenShift Origin Virtual Machine make obtain different IP address from DHCP server and all host mappings won&#8217;t be working. In order to solve this issue developers may want providing a static for VM to ensure IP address is always the same.</p>
<p>I will be using &#8216;nano&#8217; editor for the sake of simplicity</p>
<pre>sudo yum install nano
nano /etc/sysconfig/network-scripts/ifcfg-eth0</pre>
<p>You will need to change the <strong>BOOTPROTO</strong> value from <strong>dhcp</strong> to <strong>static</strong> and providing explicit values for IPADDR, NETMASK, NETWORK and GATEWAY depending on your network/router configurations</p>
<p><a href="https://denisvuyka.files.wordpress.com/2013/09/origin_13_static_ip.png"><img data-attachment-id="527" data-permalink="https://denisvuyka.wordpress.com/2013/09/17/setting-up-openshift-origin-virtual-machine-on-windows-7/origin_13_static_ip/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2013/09/origin_13_static_ip.png?w=800" data-orig-size="749,493" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="origin_13_static_ip" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2013/09/origin_13_static_ip.png?w=800?w=300" data-large-file="https://denisvuyka.files.wordpress.com/2013/09/origin_13_static_ip.png?w=800?w=749" class="alignnone size-full wp-image-527" alt="origin_13_static_ip" src="https://denisvuyka.files.wordpress.com/2013/09/origin_13_static_ip.png?w=800" srcset="https://denisvuyka.files.wordpress.com/2013/09/origin_13_static_ip.png 749w, https://denisvuyka.files.wordpress.com/2013/09/origin_13_static_ip.png?w=150 150w, https://denisvuyka.files.wordpress.com/2013/09/origin_13_static_ip.png?w=300 300w" sizes="(max-width: 749px) 100vw, 749px"   /></a></p>
<p>As soon as you have finished editing the file press &#8220;Ctrl+O, Enter&#8221; to save the file and &#8220;Ctrl+X&#8221; to exit. Server needs to be rebooted after that.</p>
<pre>sudo reboot</pre>
<p>Now as per configuration above my VM will always be starting with 192.168.1.103 address.</p>
<h1>Using RHC tools with multiple servers</h1>
<p>It is possible switching between different servers with <a href="https://www.openshift.com/developers/rhc-client-tools-install" target="_blank">RHC tools</a>. Having multiple server configurations allow working with both local and remote environments. In order to create new configuration for your OpenShift Origin VM you will need executing the following commands with Windows command prompt:</p>
<pre>SET OPENSHIFT_CONFIG=origin
rhc setup --server openshift.local</pre>
<p>This will RHC tools creating additional configuration called &#8220;origin&#8221; pointing to your &#8220;openshift.local&#8221; VM</p>
<p>In order to use &#8220;origin&#8221; server configuration the &#8220;OPENSHIFT_CONFIG&#8221; environment variable should be defined before invoking RHC tools next time:</p>
<pre>SET OPENSHIFT_CONFIG=origin
rhc &lt;command&gt;</pre>
<p><em>Configuring RHC tools with OpenShift Origin VM will allow using Port Forwarding and accessing your applications and databases from within Windows host.</em></p>
<h1>Port Forwarding</h1>
<p>With OpenShift port forwarding, developers are now able to connect to their remote services while using local client tools without having to worry about the details of configuring complicated firewall rules.</p>
<p>For more details on port forwarding feature please refer to the following article:</p>
<pre><a href="https://www.openshift.com/blogs/getting-started-with-port-forwarding-on-openshift" target="_blank">Getting Started with Port Forwarding on OpenShift</a></pre>
<h2>Accessing deployed application from Windows host</h2>
<p>With Windows (or Visual Studio) command prompt you can setup port forwarding to your VM</p>
<pre>SET OPENSHIFT_CONFIG=origin
rhc port-forward -a test01</pre>
<p><a href="https://denisvuyka.files.wordpress.com/2013/09/origin_14_port_forward.png"><img data-attachment-id="532" data-permalink="https://denisvuyka.wordpress.com/2013/09/17/setting-up-openshift-origin-virtual-machine-on-windows-7/origin_14_port_forward/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2013/09/origin_14_port_forward.png?w=800&#038;h=386" data-orig-size="849,410" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="origin_14_port_forward" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2013/09/origin_14_port_forward.png?w=800&#038;h=386?w=300" data-large-file="https://denisvuyka.files.wordpress.com/2013/09/origin_14_port_forward.png?w=800&#038;h=386?w=800" class="alignnone size-full wp-image-532" alt="origin_14_port_forward" src="https://denisvuyka.files.wordpress.com/2013/09/origin_14_port_forward.png?w=800&#038;h=386" width="800" height="386" srcset="https://denisvuyka.files.wordpress.com/2013/09/origin_14_port_forward.png?w=800&amp;h=386 800w, https://denisvuyka.files.wordpress.com/2013/09/origin_14_port_forward.png?w=150&amp;h=72 150w, https://denisvuyka.files.wordpress.com/2013/09/origin_14_port_forward.png?w=300&amp;h=145 300w, https://denisvuyka.files.wordpress.com/2013/09/origin_14_port_forward.png?w=768&amp;h=371 768w, https://denisvuyka.files.wordpress.com/2013/09/origin_14_port_forward.png 849w" sizes="(max-width: 800px) 100vw, 800px" /></a></p>
<p>While command prompt is running the deployed application can be accessed via local loopback address: <a href="http://127.0.0.1:8080" target="_blank">http://127.0.0.1:8080</a></p>
<p><a href="https://denisvuyka.files.wordpress.com/2013/09/origin_15_port_forward_host.png"><img data-attachment-id="533" data-permalink="https://denisvuyka.wordpress.com/2013/09/17/setting-up-openshift-origin-virtual-machine-on-windows-7/origin_15_port_forward_host/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2013/09/origin_15_port_forward_host.png?w=800&#038;h=483" data-orig-size="879,531" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="origin_15_port_forward_host" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2013/09/origin_15_port_forward_host.png?w=800&#038;h=483?w=300" data-large-file="https://denisvuyka.files.wordpress.com/2013/09/origin_15_port_forward_host.png?w=800&#038;h=483?w=800" class="alignnone size-full wp-image-533" alt="origin_15_port_forward_host" src="https://denisvuyka.files.wordpress.com/2013/09/origin_15_port_forward_host.png?w=800&#038;h=483" width="800" height="483" srcset="https://denisvuyka.files.wordpress.com/2013/09/origin_15_port_forward_host.png?w=800&amp;h=483 800w, https://denisvuyka.files.wordpress.com/2013/09/origin_15_port_forward_host.png?w=150&amp;h=91 150w, https://denisvuyka.files.wordpress.com/2013/09/origin_15_port_forward_host.png?w=300&amp;h=181 300w, https://denisvuyka.files.wordpress.com/2013/09/origin_15_port_forward_host.png?w=768&amp;h=464 768w, https://denisvuyka.files.wordpress.com/2013/09/origin_15_port_forward_host.png 879w" sizes="(max-width: 800px) 100vw, 800px" /></a></p>
<h2>Accessing deployed database from Windows host (MongoDB)</h2>
<p>When port forwarding is started RHC tools automatically detect all ports to be wired. That applies to database cartridges as well. Examples below will be based on &#8216;MongoDB&#8217; cartridge.</p>
<h3>Add database cartridge</h3>
<p>In the OpenShift web console navigate to your &#8216;Test01&#8217; application and add &#8216;MongoDB NoSQL Database 2.2&#8217; cartridge</p>
<p><a href="https://denisvuyka.files.wordpress.com/2013/09/origin_16_mongo_add.png"><img data-attachment-id="535" data-permalink="https://denisvuyka.wordpress.com/2013/09/17/setting-up-openshift-origin-virtual-machine-on-windows-7/origin_16_mongo_add/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2013/09/origin_16_mongo_add.png?w=800&#038;h=494" data-orig-size="1028,636" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="origin_16_mongo_add" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2013/09/origin_16_mongo_add.png?w=800&#038;h=494?w=300" data-large-file="https://denisvuyka.files.wordpress.com/2013/09/origin_16_mongo_add.png?w=800&#038;h=494?w=800" class="alignnone size-full wp-image-535" alt="origin_16_mongo_add" src="https://denisvuyka.files.wordpress.com/2013/09/origin_16_mongo_add.png?w=800&#038;h=494" width="800" height="494" srcset="https://denisvuyka.files.wordpress.com/2013/09/origin_16_mongo_add.png?w=798&amp;h=494 798w, https://denisvuyka.files.wordpress.com/2013/09/origin_16_mongo_add.png?w=150&amp;h=93 150w, https://denisvuyka.files.wordpress.com/2013/09/origin_16_mongo_add.png?w=300&amp;h=186 300w, https://denisvuyka.files.wordpress.com/2013/09/origin_16_mongo_add.png?w=768&amp;h=475 768w, https://denisvuyka.files.wordpress.com/2013/09/origin_16_mongo_add.png?w=1024&amp;h=634 1024w, https://denisvuyka.files.wordpress.com/2013/09/origin_16_mongo_add.png 1028w" sizes="(max-width: 800px) 100vw, 800px" /></a></p>
<p><a href="https://denisvuyka.files.wordpress.com/2013/09/origin_17_mongo_settings.png"><img data-attachment-id="536" data-permalink="https://denisvuyka.wordpress.com/2013/09/17/setting-up-openshift-origin-virtual-machine-on-windows-7/origin_17_mongo_settings/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2013/09/origin_17_mongo_settings.png?w=800&#038;h=371" data-orig-size="1031,479" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="origin_17_mongo_settings" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2013/09/origin_17_mongo_settings.png?w=800&#038;h=371?w=300" data-large-file="https://denisvuyka.files.wordpress.com/2013/09/origin_17_mongo_settings.png?w=800&#038;h=371?w=800" class="alignnone size-full wp-image-536" alt="origin_17_mongo_settings" src="https://denisvuyka.files.wordpress.com/2013/09/origin_17_mongo_settings.png?w=800&#038;h=371" width="800" height="371" srcset="https://denisvuyka.files.wordpress.com/2013/09/origin_17_mongo_settings.png?w=800&amp;h=371 800w, https://denisvuyka.files.wordpress.com/2013/09/origin_17_mongo_settings.png?w=150&amp;h=70 150w, https://denisvuyka.files.wordpress.com/2013/09/origin_17_mongo_settings.png?w=300&amp;h=139 300w, https://denisvuyka.files.wordpress.com/2013/09/origin_17_mongo_settings.png?w=768&amp;h=357 768w, https://denisvuyka.files.wordpress.com/2013/09/origin_17_mongo_settings.png?w=1024&amp;h=476 1024w, https://denisvuyka.files.wordpress.com/2013/09/origin_17_mongo_settings.png 1031w" sizes="(max-width: 800px) 100vw, 800px" /></a></p>
<p>Don&#8217;t forget to write down credentials somewhere as OpenShift Console does not expose them after cartridge is created.</p>
<p>You can get more details on OpenShift support for MongoDB here:</p>
<pre><a href="https://www.openshift.com/developers/mongodb" target="_blank">MongoDB on OpenShift</a></pre>
<h3>Start port forwarding</h3>
<p>Once database cartridge is added you can start port forwarding with Windows or Visual Studio command prompt</p>
<pre>SET OPENSHIFT_CONFIG=origin
rhc port-forward -a test01</pre>
<p>You should see multiple ports now:</p>
<p><a href="https://denisvuyka.files.wordpress.com/2013/09/origin_17_port_forward_mongo.png"><img data-attachment-id="537" data-permalink="https://denisvuyka.wordpress.com/2013/09/17/setting-up-openshift-origin-virtual-machine-on-windows-7/origin_17_port_forward_mongo/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2013/09/origin_17_port_forward_mongo.png?w=800&#038;h=206" data-orig-size="847,219" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="origin_17_port_forward_mongo" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2013/09/origin_17_port_forward_mongo.png?w=800&#038;h=206?w=300" data-large-file="https://denisvuyka.files.wordpress.com/2013/09/origin_17_port_forward_mongo.png?w=800&#038;h=206?w=800" class="alignnone size-full wp-image-537" alt="origin_17_port_forward_mongo" src="https://denisvuyka.files.wordpress.com/2013/09/origin_17_port_forward_mongo.png?w=800&#038;h=206" width="800" height="206" srcset="https://denisvuyka.files.wordpress.com/2013/09/origin_17_port_forward_mongo.png?w=797&amp;h=206 797w, https://denisvuyka.files.wordpress.com/2013/09/origin_17_port_forward_mongo.png?w=150&amp;h=39 150w, https://denisvuyka.files.wordpress.com/2013/09/origin_17_port_forward_mongo.png?w=300&amp;h=78 300w, https://denisvuyka.files.wordpress.com/2013/09/origin_17_port_forward_mongo.png?w=768&amp;h=199 768w, https://denisvuyka.files.wordpress.com/2013/09/origin_17_port_forward_mongo.png 847w" sizes="(max-width: 800px) 100vw, 800px" /></a></p>
<h3>Connect to database</h3>
<p>In order to connect to Mongo database I will be using <a href="http://www.robomongo.org/" target="_blank">Robomongo</a> for Windows.</p>
<p><a href="https://denisvuyka.files.wordpress.com/2013/09/origin_18_robomongo_1.png"><img data-attachment-id="538" data-permalink="https://denisvuyka.wordpress.com/2013/09/17/setting-up-openshift-origin-virtual-machine-on-windows-7/origin_18_robomongo_1/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2013/09/origin_18_robomongo_1.png?w=800" data-orig-size="349,328" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="origin_18_robomongo_1" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2013/09/origin_18_robomongo_1.png?w=800?w=300" data-large-file="https://denisvuyka.files.wordpress.com/2013/09/origin_18_robomongo_1.png?w=800?w=349" class="alignnone size-full wp-image-538" alt="origin_18_robomongo_1" src="https://denisvuyka.files.wordpress.com/2013/09/origin_18_robomongo_1.png?w=800" srcset="https://denisvuyka.files.wordpress.com/2013/09/origin_18_robomongo_1.png 349w, https://denisvuyka.files.wordpress.com/2013/09/origin_18_robomongo_1.png?w=150 150w, https://denisvuyka.files.wordpress.com/2013/09/origin_18_robomongo_1.png?w=300 300w" sizes="(max-width: 349px) 100vw, 349px"   /></a></p>
<p>For the authentication section please use credentials you got after having created MongoDB cartridge</p>
<p><a href="https://denisvuyka.files.wordpress.com/2013/09/origin_19_robomongo_2.png"><img data-attachment-id="539" data-permalink="https://denisvuyka.wordpress.com/2013/09/17/setting-up-openshift-origin-virtual-machine-on-windows-7/origin_19_robomongo_2/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2013/09/origin_19_robomongo_2.png?w=800" data-orig-size="621,332" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="origin_19_robomongo_2" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2013/09/origin_19_robomongo_2.png?w=800?w=300" data-large-file="https://denisvuyka.files.wordpress.com/2013/09/origin_19_robomongo_2.png?w=800?w=621" class="alignnone size-full wp-image-539" alt="origin_19_robomongo_2" src="https://denisvuyka.files.wordpress.com/2013/09/origin_19_robomongo_2.png?w=800" srcset="https://denisvuyka.files.wordpress.com/2013/09/origin_19_robomongo_2.png 621w, https://denisvuyka.files.wordpress.com/2013/09/origin_19_robomongo_2.png?w=150 150w, https://denisvuyka.files.wordpress.com/2013/09/origin_19_robomongo_2.png?w=300 300w" sizes="(max-width: 621px) 100vw, 621px"   /></a></p>
<p>It is now possible working with your MongoDB database directly from Windows host</p>
<p><a href="https://denisvuyka.files.wordpress.com/2013/09/origin_20_robomongo_3.png"><img data-attachment-id="540" data-permalink="https://denisvuyka.wordpress.com/2013/09/17/setting-up-openshift-origin-virtual-machine-on-windows-7/origin_20_robomongo_3/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2013/09/origin_20_robomongo_3.png?w=800" data-orig-size="543,263" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="origin_20_robomongo_3" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2013/09/origin_20_robomongo_3.png?w=800?w=300" data-large-file="https://denisvuyka.files.wordpress.com/2013/09/origin_20_robomongo_3.png?w=800?w=543" class="alignnone size-full wp-image-540" alt="origin_20_robomongo_3" src="https://denisvuyka.files.wordpress.com/2013/09/origin_20_robomongo_3.png?w=800" srcset="https://denisvuyka.files.wordpress.com/2013/09/origin_20_robomongo_3.png 543w, https://denisvuyka.files.wordpress.com/2013/09/origin_20_robomongo_3.png?w=150 150w, https://denisvuyka.files.wordpress.com/2013/09/origin_20_robomongo_3.png?w=300 300w" sizes="(max-width: 543px) 100vw, 543px"   /></a></p>
<h1>Using Git publishing with VM</h1>
<p>There are no specific steps required to enable Git support for OpenShift Origin VM once the Windows environment is configured.</p>
<p><a href="https://denisvuyka.files.wordpress.com/2013/09/origin_21_git.png"><img data-attachment-id="542" data-permalink="https://denisvuyka.wordpress.com/2013/09/17/setting-up-openshift-origin-virtual-machine-on-windows-7/origin_21_git/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2013/09/origin_21_git.png?w=800&#038;h=551" data-orig-size="1035,714" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="origin_21_git" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2013/09/origin_21_git.png?w=800&#038;h=551?w=300" data-large-file="https://denisvuyka.files.wordpress.com/2013/09/origin_21_git.png?w=800&#038;h=551?w=800" class="alignnone size-full wp-image-542" alt="origin_21_git" src="https://denisvuyka.files.wordpress.com/2013/09/origin_21_git.png?w=800&#038;h=551" width="800" height="551" srcset="https://denisvuyka.files.wordpress.com/2013/09/origin_21_git.png?w=800&amp;h=551 800w, https://denisvuyka.files.wordpress.com/2013/09/origin_21_git.png?w=150&amp;h=103 150w, https://denisvuyka.files.wordpress.com/2013/09/origin_21_git.png?w=300&amp;h=207 300w, https://denisvuyka.files.wordpress.com/2013/09/origin_21_git.png?w=768&amp;h=530 768w, https://denisvuyka.files.wordpress.com/2013/09/origin_21_git.png?w=1024&amp;h=706 1024w, https://denisvuyka.files.wordpress.com/2013/09/origin_21_git.png 1035w" sizes="(max-width: 800px) 100vw, 800px" /></a></p>
<p>Please refer to the following articles if you want getting more information about Git in the scope of OpenShift</p>
<pre><a href="https://www.openshift.com/developers/deploying-and-building-applications" target="_blank">Deploying and building your applications</a>
<a href="http://www.paasmag.com/2012/06/08/accessing-your-code-for-your-openshift-application-via-windows-explorer-using-tortoisegit/" target="_blank">Accessing your code for your OpenShift Application via Windows Explorer using TortoiseGit</a>
<a href="https://access.redhat.com/site/documentation/en-US/OpenShift_Online/2.0/html/User_Guide/chap-Authentication_and_SSH_Keys.html" target="_blank">Authentication and SSH Keys
</a></pre>
<h1>Summary</h1>
<p>The steps above allow a developer to download and run a self-contained OpenShift service for development or demonstration purposes. The service runs in a VirtualBox virtual machine and is accessible to the user on the host machine running Windows 7 and is accessible to the developer by means of VirtualBox graphical console, by SSH or with a local web browser to access the OpenShift console and/or any applications that are created within the OpenShift service.</p><br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/denisvuyka.wordpress.com/497/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/denisvuyka.wordpress.com/497/" /></a> <img alt="" border="0" src="https://pixel.wp.com/b.gif?host=denisvuyka.wordpress.com&#038;blog=4724773&#038;post=497&#038;subd=denisvuyka&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>https://denisvuyka.wordpress.com/2013/09/17/setting-up-openshift-origin-virtual-machine-on-windows-7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/032cdef00bc6c528b24517b137c97660?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Denis</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2013/09/origin_01_package_content.png" medium="image">
			<media:title type="html">origin_01_package_content</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2013/09/origin_02_vm_new.png" medium="image">
			<media:title type="html">origin_02_vm_new</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2013/09/origin_03_vm_ram.png" medium="image">
			<media:title type="html">origin_03_vm_ram</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2013/09/origin_04_vm_vmdk.png" medium="image">
			<media:title type="html">origin_04_vm_vmdk</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2013/09/origin_05_vm_network.png" medium="image">
			<media:title type="html">origin_05_vm_network</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2013/09/origin_06_vm_running.png" medium="image">
			<media:title type="html">origin_06_vm_running</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2013/09/origin_07_web_console.png" medium="image">
			<media:title type="html">origin_07_web_console</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2013/09/origin_08_ssh.png" medium="image">
			<media:title type="html">origin_08_ssh</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2013/09/origin_09_nodejs_app.png" medium="image">
			<media:title type="html">origin_09_nodejs_app</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2013/09/origin_10_local_address.png" medium="image">
			<media:title type="html">origin_10_local_address</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2013/09/origin_11_application.png" medium="image">
			<media:title type="html">origin_11_application</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2013/09/origin_12_broker_ssh.png" medium="image">
			<media:title type="html">origin_12_broker_ssh</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2013/09/origin_13_static_ip.png" medium="image">
			<media:title type="html">origin_13_static_ip</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2013/09/origin_14_port_forward.png" medium="image">
			<media:title type="html">origin_14_port_forward</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2013/09/origin_15_port_forward_host.png" medium="image">
			<media:title type="html">origin_15_port_forward_host</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2013/09/origin_16_mongo_add.png" medium="image">
			<media:title type="html">origin_16_mongo_add</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2013/09/origin_17_mongo_settings.png" medium="image">
			<media:title type="html">origin_17_mongo_settings</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2013/09/origin_17_port_forward_mongo.png" medium="image">
			<media:title type="html">origin_17_port_forward_mongo</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2013/09/origin_18_robomongo_1.png" medium="image">
			<media:title type="html">origin_18_robomongo_1</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2013/09/origin_19_robomongo_2.png" medium="image">
			<media:title type="html">origin_19_robomongo_2</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2013/09/origin_20_robomongo_3.png" medium="image">
			<media:title type="html">origin_20_robomongo_3</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2013/09/origin_21_git.png" medium="image">
			<media:title type="html">origin_21_git</media:title>
		</media:content>
	</item>
		<item>
		<title>Announcing Masonry for node.js</title>
		<link>https://denisvuyka.wordpress.com/2013/03/03/announcing-masonry-for-node-js/</link>
		<comments>https://denisvuyka.wordpress.com/2013/03/03/announcing-masonry-for-node-js/#comments</comments>
		<pubDate>Sun, 03 Mar 2013 15:35:14 +0000</pubDate>
		<dc:creator><![CDATA[Denys Vuika]]></dc:creator>
				<category><![CDATA[node.js]]></category>

		<guid isPermaLink="false">http://denisvuyka.wordpress.com/?p=446</guid>
		<description><![CDATA[I&#8217;m happy to announce that node.js version of &#8216;Masonry&#8217; framework (branded as collab.js) has landed it&#8217;s GitHub repository. Masonry is a starter kit for social-enabled web applications. To get more details about Masonry starter kit for ASP.NET MVC4 please refer to the following article. Supported environments Masonry.js supports both OSX and Windows development environments. In addition it contains [&#8230;]<img alt="" border="0" src="https://pixel.wp.com/b.gif?host=denisvuyka.wordpress.com&#038;blog=4724773&#038;post=446&#038;subd=denisvuyka&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>I&#8217;m happy to announce that node.js version of &#8216;Masonry&#8217; framework (branded as collab.js) has landed it&#8217;s <a title="collab.js" href="https://github.com/DenisVuyka/collab.js" target="_blank">GitHub</a> repository.</p>
<p>Masonry is a starter kit for social-enabled web applications. <em>To get more details about Masonry starter kit for ASP.NET MVC4 please refer to the following <a href="https://denisvuyka.wordpress.com/2012/11/21/announcing-masonry-public-preview/" target="_blank">article</a>.</em></p>
<h2>Supported environments</h2>
<p>Masonry.js supports both OSX and Windows development environments. In addition it contains support for Microsoft <a href="http://www.microsoft.com/web/webmatrix/" target="_blank">WebMatrix 2</a> for development and deployment/publishing, and uses only those NPM modules that do not require manual compilation steps in order to run on either OSX x64 or Windows 7 x64 systems.</p>
<h2>Supported databases</h2>
<p>Masonry.js features extensible provider-based model for data layer. It is extremely easy writing custom data providers or switching between them. At the moment of writing this article the following database engines are supported out-of-box:</p>
<ul>
<li><span style="line-height:13px;">Microsoft SQL Server</span></li>
<li>MySQL Server</li>
</ul>
<p><em>Providers for Azure SQL, MongoDb and SQLite are in progress and will appear pretty soon.</em></p>
<h2>Simple code maintenance</h2>
<p>The Node.js version of Masonry provides a better code partitioning with the benefit of keeping the core implementation and modules up-to-date with less effort. Masonry views, routes and controllers are kept separately to avoid interference with your development process.</p>
<h2>Great level of extensibility</h2>
<p>With node.js and JavaScript you get extensibility for nearly everything out of box. With node.js you don&#8217;t need binary compilation of the project and so don&#8217;t need complex plugin layers with always limited APIs for discovery and initialization of extensions at run time.</p>
<p>In order to reduce the need modifying core Masonry files there is a set of lightweight contracts (via configuration files) to modify or extend key parts of the UI like brand/copyright information, sidebar/header links, etc. That means less time can be spent to keep Masonry up-to-date and more time for your own features.</p>
<h2>Separate presentation and web api layers</h2>
<p>The frontend is separated with a plain presentation layer and web api&#8217;s &#8211; set of RESTful services with JSON output by default. It becomes extremely easy switching between presentation layers and rendering engines, or building  completely different clients on the top of existing RESTful endpoints.</p>
<h2>And many more&#8230;</h2>
<p>You should expect more features and details soon. Meanwhile feel free raising issues and/or suggestions <a href="https://github.com/DenisVuyka/collab.js/issues" target="_blank">here</a>.</p><br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/denisvuyka.wordpress.com/446/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/denisvuyka.wordpress.com/446/" /></a> <img alt="" border="0" src="https://pixel.wp.com/b.gif?host=denisvuyka.wordpress.com&#038;blog=4724773&#038;post=446&#038;subd=denisvuyka&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>https://denisvuyka.wordpress.com/2013/03/03/announcing-masonry-for-node-js/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/032cdef00bc6c528b24517b137c97660?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Denis</media:title>
		</media:content>
	</item>
		<item>
		<title>Simple Workflow Designer with Silverlight and MEF</title>
		<link>https://denisvuyka.wordpress.com/2012/12/06/simple-workflow-designer-with-silverlight-and-mef/</link>
		<comments>https://denisvuyka.wordpress.com/2012/12/06/simple-workflow-designer-with-silverlight-and-mef/#respond</comments>
		<pubDate>Thu, 06 Dec 2012 12:34:17 +0000</pubDate>
		<dc:creator><![CDATA[Denys Vuika]]></dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[MEF]]></category>
		<category><![CDATA[Silverlight 4]]></category>

		<guid isPermaLink="false">http://denisvuyka.wordpress.com/?p=432</guid>
		<description><![CDATA[Introducing simple workflow designer I&#8217;m excited to announce another project from my collection went public today. This time it is a demo POC (proof of concept) implementation for a simple workflow designer written in Silverlight 4 and MEF. The project contains the following features that may be interesting for review: Design surface with drag and [&#8230;]<img alt="" border="0" src="https://pixel.wp.com/b.gif?host=denisvuyka.wordpress.com&#038;blog=4724773&#038;post=432&#038;subd=denisvuyka&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<h1>Introducing simple workflow designer</h1>
<p>I&#8217;m excited to announce another project from my collection went public today. This time it is a demo POC (proof of concept) implementation for a simple workflow designer written in Silverlight 4 and <a href="http://mef.codeplex.com/" target="_blank">MEF</a>.</p>
<p><a href="https://denisvuyka.wordpress.com/2012/12/06/simple-workflow-designer-with-silverlight-and-mef/01-slwfdesigner/" rel="attachment wp-att-433"><img data-attachment-id="433" data-permalink="https://denisvuyka.wordpress.com/2012/12/06/simple-workflow-designer-with-silverlight-and-mef/01-slwfdesigner/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2012/12/01-slwfdesigner.png?w=800" data-orig-size="1220,774" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="01.slwfdesigner" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2012/12/01-slwfdesigner.png?w=800?w=300" data-large-file="https://denisvuyka.files.wordpress.com/2012/12/01-slwfdesigner.png?w=800?w=800" class="alignnone size-full wp-image-433" style="border:0;" alt="01.slwfdesigner" src="https://denisvuyka.files.wordpress.com/2012/12/01-slwfdesigner.png?w=800" srcset="https://denisvuyka.files.wordpress.com/2012/12/01-slwfdesigner.png?w=800 800w, https://denisvuyka.files.wordpress.com/2012/12/01-slwfdesigner.png?w=150 150w, https://denisvuyka.files.wordpress.com/2012/12/01-slwfdesigner.png?w=300 300w, https://denisvuyka.files.wordpress.com/2012/12/01-slwfdesigner.png?w=768 768w, https://denisvuyka.files.wordpress.com/2012/12/01-slwfdesigner.png?w=1024 1024w, https://denisvuyka.files.wordpress.com/2012/12/01-slwfdesigner.png 1220w" sizes="(max-width: 800px) 100vw, 800px"   /></a></p>
<p>The project contains the following features that may be interesting for review:</p>
<ul>
<li><span style="line-height:13px;">Design surface with drag and drop (MVC)</span></li>
<li>Toolbox with automatic runtime discovery of items (MVVM)</li>
<li>Drawing connections, live update of connections during drag and drop</li>
<li>Separate model layer with custom serialization support (functions, activities, workflows)</li>
<li>Separate presentation layer (visual elements for activities), styling and templating nodes</li>
<li>Runtime discovery of models and corresponding node views (decoupled layers)</li>
<li>Simple rules (i.e. &#8220;Output &#8221; node may have only 1 incoming connection)</li>
</ul>
<p>There are two modes supported out of box &#8211; <strong>Design</strong> and <strong>Source</strong> views.</p>
<h1>Design view</h1>
<p>This mode showcases the process of visual modeling. The process is divided into two separated areas &#8211; Toolbox and Design Surface.</p>
<p><a href="https://denisvuyka.wordpress.com/2012/12/06/simple-workflow-designer-with-silverlight-and-mef/02-slwfdesigner-designview/" rel="attachment wp-att-436"><img data-attachment-id="436" data-permalink="https://denisvuyka.wordpress.com/2012/12/06/simple-workflow-designer-with-silverlight-and-mef/02-slwfdesigner-designview/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2012/12/02-slwfdesigner-designview.png?w=800" data-orig-size="791,600" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="02.slwfdesigner-designview" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2012/12/02-slwfdesigner-designview.png?w=800?w=300" data-large-file="https://denisvuyka.files.wordpress.com/2012/12/02-slwfdesigner-designview.png?w=800?w=791" class="alignnone size-full wp-image-436" style="border:0;" alt="02.slwfdesigner-designview" src="https://denisvuyka.files.wordpress.com/2012/12/02-slwfdesigner-designview.png?w=800" srcset="https://denisvuyka.files.wordpress.com/2012/12/02-slwfdesigner-designview.png 791w, https://denisvuyka.files.wordpress.com/2012/12/02-slwfdesigner-designview.png?w=150 150w, https://denisvuyka.files.wordpress.com/2012/12/02-slwfdesigner-designview.png?w=300 300w, https://denisvuyka.files.wordpress.com/2012/12/02-slwfdesigner-designview.png?w=768 768w" sizes="(max-width: 791px) 100vw, 791px"   /></a></p>
<p>Toolbox hosts all items exported and discovered at runtime by means of <a href="http://mef.codeplex.com/" target="_blank">MEF</a>. Default set of activities resides in a separate &#8220;<strong>WorkflowDesigner.Activities.dll</strong>&#8221; assembly and can be easily replaced or extended. There&#8217;s also an additional &#8220;<strong>WorkflowDesigner.Sdk.dll</strong>&#8221; assembly that is mean to be shared across 3rd party libraries and aids in creating custom activity libraries.</p>
<p>You can add activities to the surface by double-clicking the corresponding item in the toolbox. For the sake of simplicity there is no drag and drop support for the toolbox but it can be easily introduced. The quickest way may be reusing Telerik&#8217;s drag and drop manager with fancy visual cues, but this is out of scope of this article.</p>
<p>Design surface is based on MVC pattern and showcases basic set of functions like: drag and drop of activities across the surface, drawing connection lines, removing nodes or connections, clearing entire surface. Every visual node is mapped to underlying model (activity) at runtime. That means that both activity and it&#8217;s visual representation are completely decoupled and any of the parts can be easily tuned or extended.</p>
<p>For demonstration purposes default activities emulate the behavior of OData- or SQL-based entities with simple UI editors, entire project emulates the process of creating a workflow that deals with data aggregation.</p>
<p><a href="https://denisvuyka.wordpress.com/2012/12/06/simple-workflow-designer-with-silverlight-and-mef/08-slwfdesigner-activity/" rel="attachment wp-att-437"><img data-attachment-id="437" data-permalink="https://denisvuyka.wordpress.com/2012/12/06/simple-workflow-designer-with-silverlight-and-mef/08-slwfdesigner-activity/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2012/12/08-slwfdesigner-activity.png?w=800" data-orig-size="342,106" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="08.slwfdesigner-activity" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2012/12/08-slwfdesigner-activity.png?w=800?w=300" data-large-file="https://denisvuyka.files.wordpress.com/2012/12/08-slwfdesigner-activity.png?w=800?w=342" class="alignnone size-full wp-image-437" style="border:0;" alt="08.slwfdesigner-activity" src="https://denisvuyka.files.wordpress.com/2012/12/08-slwfdesigner-activity.png?w=800" srcset="https://denisvuyka.files.wordpress.com/2012/12/08-slwfdesigner-activity.png 342w, https://denisvuyka.files.wordpress.com/2012/12/08-slwfdesigner-activity.png?w=150 150w, https://denisvuyka.files.wordpress.com/2012/12/08-slwfdesigner-activity.png?w=300 300w" sizes="(max-width: 342px) 100vw, 342px"   /></a></p>
<p>UI dialogs are not bound to any particular business logic except assigning corresponding property values of the model entity. However this may be a good start building user experiences based on your real-life scenarios.</p>
<p><a href="https://denisvuyka.wordpress.com/2012/12/06/simple-workflow-designer-with-silverlight-and-mef/09-slwfdesigner-dialog3/" rel="attachment wp-att-438"><img data-attachment-id="438" data-permalink="https://denisvuyka.wordpress.com/2012/12/06/simple-workflow-designer-with-silverlight-and-mef/09-slwfdesigner-dialog3/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2012/12/09-slwfdesigner-dialog3.png?w=800" data-orig-size="728,319" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="09.slwfdesigner-dialog3" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2012/12/09-slwfdesigner-dialog3.png?w=800?w=300" data-large-file="https://denisvuyka.files.wordpress.com/2012/12/09-slwfdesigner-dialog3.png?w=800?w=728" class="alignnone size-full wp-image-438" style="border:0;" alt="09.slwfdesigner-dialog3" src="https://denisvuyka.files.wordpress.com/2012/12/09-slwfdesigner-dialog3.png?w=800" srcset="https://denisvuyka.files.wordpress.com/2012/12/09-slwfdesigner-dialog3.png 728w, https://denisvuyka.files.wordpress.com/2012/12/09-slwfdesigner-dialog3.png?w=150 150w, https://denisvuyka.files.wordpress.com/2012/12/09-slwfdesigner-dialog3.png?w=300 300w" sizes="(max-width: 728px) 100vw, 728px"   /></a></p>
<p><a href="https://denisvuyka.wordpress.com/2012/12/06/simple-workflow-designer-with-silverlight-and-mef/06-slwfdesigner-dialog1/" rel="attachment wp-att-439"><img data-attachment-id="439" data-permalink="https://denisvuyka.wordpress.com/2012/12/06/simple-workflow-designer-with-silverlight-and-mef/06-slwfdesigner-dialog1/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2012/12/06-slwfdesigner-dialog1.png?w=800" data-orig-size="742,317" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="06.slwfdesigner-dialog1" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2012/12/06-slwfdesigner-dialog1.png?w=800?w=300" data-large-file="https://denisvuyka.files.wordpress.com/2012/12/06-slwfdesigner-dialog1.png?w=800?w=742" class="alignnone size-full wp-image-439" style="border:0;" alt="06.slwfdesigner-dialog1" src="https://denisvuyka.files.wordpress.com/2012/12/06-slwfdesigner-dialog1.png?w=800" srcset="https://denisvuyka.files.wordpress.com/2012/12/06-slwfdesigner-dialog1.png 742w, https://denisvuyka.files.wordpress.com/2012/12/06-slwfdesigner-dialog1.png?w=150 150w, https://denisvuyka.files.wordpress.com/2012/12/06-slwfdesigner-dialog1.png?w=300 300w" sizes="(max-width: 742px) 100vw, 742px"   /></a></p>
<h1>Source view</h1>
<p>In addition the Source view feature is supported. It allows you switching to the XML representation of the workflow at any time during design process. Serialization is completely custom and was kept as simple as possible in order to be replaceable or customized. Based on your real-life scenarios the resulting XML can travel to server side and can be turned into object graph without UI dependencies, etc.</p>
<p><a href="https://denisvuyka.wordpress.com/2012/12/06/simple-workflow-designer-with-silverlight-and-mef/03-slwfdesigner-sourceview/" rel="attachment wp-att-440"><img data-attachment-id="440" data-permalink="https://denisvuyka.wordpress.com/2012/12/06/simple-workflow-designer-with-silverlight-and-mef/03-slwfdesigner-sourceview/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2012/12/03-slwfdesigner-sourceview.png?w=800" data-orig-size="791,600" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="03.slwfdesigner-sourceview" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2012/12/03-slwfdesigner-sourceview.png?w=800?w=300" data-large-file="https://denisvuyka.files.wordpress.com/2012/12/03-slwfdesigner-sourceview.png?w=800?w=791" class="alignnone size-full wp-image-440" style="border:0;" alt="03.slwfdesigner-sourceview" src="https://denisvuyka.files.wordpress.com/2012/12/03-slwfdesigner-sourceview.png?w=800" srcset="https://denisvuyka.files.wordpress.com/2012/12/03-slwfdesigner-sourceview.png 791w, https://denisvuyka.files.wordpress.com/2012/12/03-slwfdesigner-sourceview.png?w=150 150w, https://denisvuyka.files.wordpress.com/2012/12/03-slwfdesigner-sourceview.png?w=300 300w, https://denisvuyka.files.wordpress.com/2012/12/03-slwfdesigner-sourceview.png?w=768 768w" sizes="(max-width: 791px) 100vw, 791px"   /></a></p>
<h1>Project structure</h1>
<p>I will be giving only brief overview of the project structure in this article. Most of the code is split into 2 areas and resides in 2 different class libraries: &#8220;<strong>WorkflowDesigner.Sdk</strong>&#8221; and &#8220;<strong>WorkflowDesigner.Activities</strong>&#8220;:</p>
<p><a href="https://denisvuyka.wordpress.com/2012/12/06/simple-workflow-designer-with-silverlight-and-mef/04-slwfdesigner-activities/" rel="attachment wp-att-441"><img data-attachment-id="441" data-permalink="https://denisvuyka.wordpress.com/2012/12/06/simple-workflow-designer-with-silverlight-and-mef/04-slwfdesigner-activities/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2012/12/04-slwfdesigner-activities.png?w=800" data-orig-size="297,343" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="04.slwfdesigner-activities" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2012/12/04-slwfdesigner-activities.png?w=800?w=260" data-large-file="https://denisvuyka.files.wordpress.com/2012/12/04-slwfdesigner-activities.png?w=800?w=297" class="alignnone size-full wp-image-441" style="border:1px solid lightgray;" alt="04.slwfdesigner-activities" src="https://denisvuyka.files.wordpress.com/2012/12/04-slwfdesigner-activities.png?w=800" srcset="https://denisvuyka.files.wordpress.com/2012/12/04-slwfdesigner-activities.png 297w, https://denisvuyka.files.wordpress.com/2012/12/04-slwfdesigner-activities.png?w=130 130w" sizes="(max-width: 297px) 100vw, 297px"   /></a></p>
<p><a href="https://denisvuyka.wordpress.com/2012/12/06/simple-workflow-designer-with-silverlight-and-mef/05-slwfdesigner-sdk/" rel="attachment wp-att-442"><img data-attachment-id="442" data-permalink="https://denisvuyka.wordpress.com/2012/12/06/simple-workflow-designer-with-silverlight-and-mef/05-slwfdesigner-sdk/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2012/12/05-slwfdesigner-sdk.png?w=800" data-orig-size="290,556" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="05.slwfdesigner-sdk" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2012/12/05-slwfdesigner-sdk.png?w=800?w=156" data-large-file="https://denisvuyka.files.wordpress.com/2012/12/05-slwfdesigner-sdk.png?w=800?w=290" class="alignnone size-full wp-image-442" style="border:1px solid lightgray;" alt="05.slwfdesigner-sdk" src="https://denisvuyka.files.wordpress.com/2012/12/05-slwfdesigner-sdk.png?w=800" srcset="https://denisvuyka.files.wordpress.com/2012/12/05-slwfdesigner-sdk.png 290w, https://denisvuyka.files.wordpress.com/2012/12/05-slwfdesigner-sdk.png?w=78 78w" sizes="(max-width: 290px) 100vw, 290px"   /></a></p>
<p>As soon as you figure out the process of creation of new activities you most probably may need only &#8220;<strong>WorkflowDesigner.Sdk</strong>&#8221; assembly that contains all core and shared functionality.</p>
<h1>Source code</h1>
<p>You can grab the source code at my <a href="https://github.com/DenisVuyka/SLWorkflowDesigner" target="_blank">GitHub repository</a>.</p><br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/denisvuyka.wordpress.com/432/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/denisvuyka.wordpress.com/432/" /></a> <img alt="" border="0" src="https://pixel.wp.com/b.gif?host=denisvuyka.wordpress.com&#038;blog=4724773&#038;post=432&#038;subd=denisvuyka&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>https://denisvuyka.wordpress.com/2012/12/06/simple-workflow-designer-with-silverlight-and-mef/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/032cdef00bc6c528b24517b137c97660?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Denis</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2012/12/01-slwfdesigner.png" medium="image">
			<media:title type="html">01.slwfdesigner</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2012/12/02-slwfdesigner-designview.png" medium="image">
			<media:title type="html">02.slwfdesigner-designview</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2012/12/08-slwfdesigner-activity.png" medium="image">
			<media:title type="html">08.slwfdesigner-activity</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2012/12/09-slwfdesigner-dialog3.png" medium="image">
			<media:title type="html">09.slwfdesigner-dialog3</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2012/12/06-slwfdesigner-dialog1.png" medium="image">
			<media:title type="html">06.slwfdesigner-dialog1</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2012/12/03-slwfdesigner-sourceview.png" medium="image">
			<media:title type="html">03.slwfdesigner-sourceview</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2012/12/04-slwfdesigner-activities.png" medium="image">
			<media:title type="html">04.slwfdesigner-activities</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2012/12/05-slwfdesigner-sdk.png" medium="image">
			<media:title type="html">05.slwfdesigner-sdk</media:title>
		</media:content>
	</item>
		<item>
		<title>Masonry Extensibility. Part 1.</title>
		<link>https://denisvuyka.wordpress.com/2012/12/03/masonry-extensibility-part-1/</link>
		<comments>https://denisvuyka.wordpress.com/2012/12/03/masonry-extensibility-part-1/#respond</comments>
		<pubDate>Mon, 03 Dec 2012 19:51:13 +0000</pubDate>
		<dc:creator><![CDATA[Denys Vuika]]></dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[ASP.NET MVC]]></category>
		<category><![CDATA[Masonry]]></category>

		<guid isPermaLink="false">http://denisvuyka.wordpress.com/?p=400</guid>
		<description><![CDATA[This is a second post in a series of articles about Masonry starter kit. Please refer to this article in order to get more information about Masonry: Announcing Masonry public preview Masonry starter kit was designed with extensibility in mind from the very beginning. There are several out-of-box blocks that greatly reduce learning curve and [&#8230;]<img alt="" border="0" src="https://pixel.wp.com/b.gif?host=denisvuyka.wordpress.com&#038;blog=4724773&#038;post=400&#038;subd=denisvuyka&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>This is a second post in a series of articles about Masonry starter kit. Please refer to this article in order to get more information about Masonry:</p>
<p><a title="Announcing Masonry public preview" href="https://denisvuyka.wordpress.com/2012/11/21/announcing-masonry-public-preview/" target="_blank"><strong>Announcing Masonry public preview</strong></a></p>
<p>Masonry starter kit was designed with extensibility in mind from the very beginning. There are several out-of-box blocks that greatly reduce learning curve and efforts required to extend main navigation elements like sidebar and header bar, provide custom content and routing, integrate into help or search system or messaging pipeline.</p>
<p>Masonry is also shipped with a project template for Visual Studio 2012 that turns the process of extension library creation into a several mouse-click procedure.</p>
<p><strong>Part 1 </strong>of this article will give a high-level overview of supported extensibility features as well as developer tools shipped with version 1.0</p>
<p><strong>Part 2</strong> will dwell on technical details of extension discovery, processing and mapping of dynamic/static content and UI composition.</p>
<p>Extensions in Masonry are based on Areas that are compiled into a single-assembly libraries and deployed to Masonry-based web application by means of xcopy. For more details on Areas in ASP.NET MVC please refer to the following articles:</p>
<p><a href="http://msdn.microsoft.com/en-us/library/ee671793(v=vs.100).aspx" target="_blank">Walkthrough: Organizing an ASP.NET MVC Application using Areas</a></p>
<p><a href="http://sankarsan.wordpress.com/2012/04/14/asp-net-mvc-areasa-better-way-to-structure-the-application/" target="_blank">ASP.NET MVC Areas &#8211; A Better Way to Structure The Application</a></p>
<p><a href="http://www.codeguru.com/csharp/.net/net_asp/mvc/article.php/c20227/Using-Areas-in-ASPNET-MVC-Application.htm" target="_blank">Using Areas in ASP.NET MVC Application</a></p>
<p>Every Masonry extension depends on the following assemblies:</p>
<ul>
<li><span style="line-height:13px;"><strong>Masonry.Core.dll (required)</strong>; <em>contains low-level infrastructure required by Masonry and 3rd party extensions in order to function.</em></span></li>
<li><strong>Masonry.Extensibility.dll (required)</strong>; <em>contains shared blocks that may be used by all or any 3rd party extension. For the moment of writing this article it consists mainly of UI-relacted contracts.</em></li>
<li><strong>Masonry.Resources.dll (optional)</strong>; <em>contains default localized content that may be reused within extensions</em></li>
</ul>
<p>Masonry does not require extra efforts in order to enable extensibility support for a web application, referencing &#8220;Masonry.Core&#8221; is usually enough to automatically enable underlying infrastructure.</p>
<p>There are two different modes supported by Masonry out-of-box: <strong>automatic</strong> (or convention-based) and <strong>controlled </strong>(or configuration-based) extension discovery.</p>
<h1>Automatic extension discovery</h1>
<p>This is the default mode and requires zero coding efforts besides referencing &#8220;<strong>Masonry.Core</strong>&#8221; assembly from within your Masonry-based web application.</p>
<p>Prior to web application startup the following workflow is executed automatically:</p>
<ul>
<li><span style="line-height:13px;">Underlying extensibility engine is initialized and started</span></li>
<li>All assemblies are discovered by &#8220;<strong>*.Extension.dll</strong>&#8221; mask and loaded</li>
<li>Custom ASP.NET MVC view and content providers (Masonry-specific) are initialized and wired with the extension libraries if loaded with previous step</li>
</ul>
<p>With automatic discovery mode every 3rd party extension library must follow the following predefined conventions in order to allow resulting assembly to be discovered and loaded:</p>
<ul>
<li><span style="line-height:13px;">Extension assembly file name should end with &#8220;<strong>.Extension.dll</strong>&#8220;</span></li>
<li>Default root namespace for the extension assembly should not end with &#8220;Extension&#8221; word</li>
</ul>
<p>The process of configuring assembly file name and namespace for a new extension project is pretty simple. For example in order to configure a &#8220;Dummy&#8221; extension developer may need performing the following steps:</p>
<ul>
<li><span style="line-height:13px;">Create a .NET class library project named &#8220;Dummy&#8221; and navigate to project properties pane</span></li>
<li>Ensure &#8220;Default namespace&#8221; property is set to &#8220;Dummy&#8221;</li>
<li>Change &#8220;Assembly name&#8221; property from &#8220;Dummy&#8221; to &#8220;Dummy.Extension&#8221;</li>
</ul>
<p><a href="https://denisvuyka.wordpress.com/2012/12/03/masonry-extensibility-part-1/02-project-properties/" rel="attachment wp-att-408"><img data-attachment-id="408" data-permalink="https://denisvuyka.wordpress.com/2012/12/03/masonry-extensibility-part-1/02-project-properties/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2012/12/02-project-properties.png?w=800" data-orig-size="782,188" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="02.project-properties" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2012/12/02-project-properties.png?w=800?w=300" data-large-file="https://denisvuyka.files.wordpress.com/2012/12/02-project-properties.png?w=800?w=782" class="alignnone size-full wp-image-408" style="border:1px solid lightgray;" alt="02.project-properties" src="https://denisvuyka.files.wordpress.com/2012/12/02-project-properties.png?w=800" srcset="https://denisvuyka.files.wordpress.com/2012/12/02-project-properties.png 782w, https://denisvuyka.files.wordpress.com/2012/12/02-project-properties.png?w=150 150w, https://denisvuyka.files.wordpress.com/2012/12/02-project-properties.png?w=300 300w, https://denisvuyka.files.wordpress.com/2012/12/02-project-properties.png?w=768 768w" sizes="(max-width: 782px) 100vw, 782px"   /></a></p>
<p><em><strong>Note: steps above can be omitted when using &#8220;Masonry Extension&#8221; project template for Visual Studio 2012 shipped with Masonry kit out-of-box. More details regarding project template will be given further in this</strong></em><strong><em> article</em>.</strong></p>
<h1>Controlled extension discovery</h1>
<p>Due to security, performance, additional level of extension management and review, or any other reasons it is possible switching off automatic discovery for 3rd party extensions and defining them explicitly within configuration file (<strong>web.config</strong>) instead.</p>
<p>The following picture demonstrates registration of &#8220;Dummy&#8221; widget within configuration file:</p>
<p><a href="https://denisvuyka.wordpress.com/2012/12/03/masonry-extensibility-part-1/01-webconfig/" rel="attachment wp-att-411"><img data-attachment-id="411" data-permalink="https://denisvuyka.wordpress.com/2012/12/03/masonry-extensibility-part-1/01-webconfig/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2012/12/01-webconfig.png?w=800" data-orig-size="485,192" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="01.webconfig" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2012/12/01-webconfig.png?w=800?w=300" data-large-file="https://denisvuyka.files.wordpress.com/2012/12/01-webconfig.png?w=800?w=485" class="alignnone size-full wp-image-411" style="border:1px solid lightgray;" alt="01.webconfig" src="https://denisvuyka.files.wordpress.com/2012/12/01-webconfig.png?w=800" srcset="https://denisvuyka.files.wordpress.com/2012/12/01-webconfig.png 485w, https://denisvuyka.files.wordpress.com/2012/12/01-webconfig.png?w=150 150w, https://denisvuyka.files.wordpress.com/2012/12/01-webconfig.png?w=300 300w" sizes="(max-width: 485px) 100vw, 485px"   /></a></p>
<p>In this case the following workflow will be executed prior to web application startup:</p>
<ul>
<li><span style="line-height:13px;">Underlying extensibility engine is initialized and started</span></li>
<li>All assemblies from configuration file are discovered and loaded</li>
<li>Custom ASP.NET MVC view and content providers (Masonry-specific) are initialized and wired with the extension libraries loaded during previous step</li>
</ul>
<p>The are no file and namespace naming conventions for configuration-based mode (as it is possible defining corresponding values within configuration file as well).</p>
<h1>Extension project template</h1>
<p>In order to greatly simplify development process and reduce amount of efforts and time needed to create and configure a new extension library Masonry is shipped with a special project template for Visual Studio 2012.</p>
<p><a href="https://denisvuyka.wordpress.com/2012/12/03/masonry-extensibility-part-1/03-vstemplate/" rel="attachment wp-att-412"><img data-attachment-id="412" data-permalink="https://denisvuyka.wordpress.com/2012/12/03/masonry-extensibility-part-1/03-vstemplate/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2012/12/03-vstemplate.png?w=800" data-orig-size="902,450" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="03.vstemplate" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2012/12/03-vstemplate.png?w=800?w=300" data-large-file="https://denisvuyka.files.wordpress.com/2012/12/03-vstemplate.png?w=800?w=800" class="alignnone size-full wp-image-412" style="border:0;" alt="03.vstemplate" src="https://denisvuyka.files.wordpress.com/2012/12/03-vstemplate.png?w=800" srcset="https://denisvuyka.files.wordpress.com/2012/12/03-vstemplate.png?w=800 800w, https://denisvuyka.files.wordpress.com/2012/12/03-vstemplate.png?w=150 150w, https://denisvuyka.files.wordpress.com/2012/12/03-vstemplate.png?w=300 300w, https://denisvuyka.files.wordpress.com/2012/12/03-vstemplate.png?w=768 768w, https://denisvuyka.files.wordpress.com/2012/12/03-vstemplate.png 902w" sizes="(max-width: 800px) 100vw, 800px"   /></a></p>
<p><strong>Important note: for version 1.0 the resulting project should reside within &#8220;Extensions&#8221; subfolder of the project like displayed on the picture. This is required in order to automate configuration of assembly references and Nuget packages for a newly created project.</strong></p>
<p>Project template handles and automates development process by executing the following operations:</p>
<ul>
<li><span style="line-height:13px;">Creates new class library within &#8220;Extensions&#8221; subfolder</span></li>
<li>Configures all Masonry-related assembly references, wires project with required and/or optional Nuget packages</li>
<li>Enables Razor support for newly created project (code highlighting, intellisense, compilation, etc.)</li>
<li>Creates initial file structure that conforms to common ASP.NET MVC Areas design</li>
<li>Generates &#8220;Area Registration&#8221; settings for the given project including default route registration</li>
<li>Generates set of files that address basic extensibility scenarios, for example sidebar and header bar extensions, grouping, default &#8220;main content&#8221; and &#8220;about&#8221; pages, etc.</li>
<li>All generated files and automated settings take into account name of project</li>
</ul>
<p>So upon creating a new project with this template you get a working Masonry Extension library that is ready to be instantly compiled and deployed to main web application.</p>
<p>By default Masonry also provides and embedded demo extension called &#8220;Dummy&#8221; that reuses most of the extensibility features:</p>
<p><a href="https://denisvuyka.wordpress.com/2012/12/03/masonry-extensibility-part-1/05-extension-structure-expanded/" rel="attachment wp-att-413"><img data-attachment-id="413" data-permalink="https://denisvuyka.wordpress.com/2012/12/03/masonry-extensibility-part-1/05-extension-structure-expanded/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2012/12/05-extension-structure-expanded.png?w=800" data-orig-size="303,417" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="05.extension-structure-expanded" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2012/12/05-extension-structure-expanded.png?w=800?w=218" data-large-file="https://denisvuyka.files.wordpress.com/2012/12/05-extension-structure-expanded.png?w=800?w=303" class="alignnone size-full wp-image-413" style="border:1px solid lightgray;" alt="05.extension-structure-expanded" src="https://denisvuyka.files.wordpress.com/2012/12/05-extension-structure-expanded.png?w=800" srcset="https://denisvuyka.files.wordpress.com/2012/12/05-extension-structure-expanded.png 303w, https://denisvuyka.files.wordpress.com/2012/12/05-extension-structure-expanded.png?w=109 109w, https://denisvuyka.files.wordpress.com/2012/12/05-extension-structure-expanded.png?w=218 218w" sizes="(max-width: 303px) 100vw, 303px"   /></a></p>
<p>The file structure of the project when using Masonry Extension project template will be nearly the same except the name of the area registration class, all code namespaces and all UI labels/names will be reflecting the name of the project you have defined at the creation stage. This means that multiple extensions created from the same template won&#8217;t conflict.</p>
<p><a href="https://denisvuyka.wordpress.com/2012/12/03/masonry-extensibility-part-1/06-custom-extension/" rel="attachment wp-att-414"><img data-attachment-id="414" data-permalink="https://denisvuyka.wordpress.com/2012/12/03/masonry-extensibility-part-1/06-custom-extension/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2012/12/06-custom-extension.png?w=800" data-orig-size="308,394" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="06.custom-extension" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2012/12/06-custom-extension.png?w=800?w=235" data-large-file="https://denisvuyka.files.wordpress.com/2012/12/06-custom-extension.png?w=800?w=308" class="alignnone size-full wp-image-414" style="border:1px solid lightgray;" alt="06.custom-extension" src="https://denisvuyka.files.wordpress.com/2012/12/06-custom-extension.png?w=800" srcset="https://denisvuyka.files.wordpress.com/2012/12/06-custom-extension.png 308w, https://denisvuyka.files.wordpress.com/2012/12/06-custom-extension.png?w=117 117w, https://denisvuyka.files.wordpress.com/2012/12/06-custom-extension.png?w=235 235w" sizes="(max-width: 308px) 100vw, 308px"   /></a></p>
<p>Here&#8217;s for example the content of the Area Registration file that was automatically generated for the &#8220;MyExtension1&#8221; project:</p>
<p><a href="https://denisvuyka.wordpress.com/2012/12/03/masonry-extensibility-part-1/07-custom-arearegistration/" rel="attachment wp-att-415"><img data-attachment-id="415" data-permalink="https://denisvuyka.wordpress.com/2012/12/03/masonry-extensibility-part-1/07-custom-arearegistration/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2012/12/07-custom-arearegistration.png?w=800" data-orig-size="574,306" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="07.custom-arearegistration" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2012/12/07-custom-arearegistration.png?w=800?w=300" data-large-file="https://denisvuyka.files.wordpress.com/2012/12/07-custom-arearegistration.png?w=800?w=574" class="alignnone size-full wp-image-415" style="border:0;" alt="07.custom-arearegistration" src="https://denisvuyka.files.wordpress.com/2012/12/07-custom-arearegistration.png?w=800" srcset="https://denisvuyka.files.wordpress.com/2012/12/07-custom-arearegistration.png 574w, https://denisvuyka.files.wordpress.com/2012/12/07-custom-arearegistration.png?w=150 150w, https://denisvuyka.files.wordpress.com/2012/12/07-custom-arearegistration.png?w=300 300w" sizes="(max-width: 574px) 100vw, 574px"   /></a></p>
<p>And image below provides a quick example on a sidebar extension element generated automatically and aligned with your project name and settings:</p>
<p><a href="https://denisvuyka.wordpress.com/2012/12/03/masonry-extensibility-part-1/08-custom-sidebar-integration/" rel="attachment wp-att-416"><img data-attachment-id="416" data-permalink="https://denisvuyka.wordpress.com/2012/12/03/masonry-extensibility-part-1/08-custom-sidebar-integration/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2012/12/08-custom-sidebar-integration.png?w=800" data-orig-size="377,581" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="08.custom-sidebar-integration" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2012/12/08-custom-sidebar-integration.png?w=800?w=195" data-large-file="https://denisvuyka.files.wordpress.com/2012/12/08-custom-sidebar-integration.png?w=800?w=377" class="alignnone size-full wp-image-416" style="border:0;" alt="08.custom-sidebar-integration" src="https://denisvuyka.files.wordpress.com/2012/12/08-custom-sidebar-integration.png?w=800" srcset="https://denisvuyka.files.wordpress.com/2012/12/08-custom-sidebar-integration.png 377w, https://denisvuyka.files.wordpress.com/2012/12/08-custom-sidebar-integration.png?w=97 97w, https://denisvuyka.files.wordpress.com/2012/12/08-custom-sidebar-integration.png?w=195 195w" sizes="(max-width: 377px) 100vw, 377px"   /></a></p>
<p>Needless to say that resulting project can be tuned in any way. Visual Studio template just takes care of the most frequent, repetitive and so time-consuming tasks.</p>
<h1>Compiling and deploying extensions</h1>
<p>Every class library created with &#8220;Masonry Extension&#8221; project template can be instantly compiled and deployed to a Masonry-based web application without any modifications.</p>
<p>As a result of successful compilation you will be getting a single assembly file with all the features and content required by extension.</p>
<p><strong>Important note: </strong>all non-C# files related to ASP.NET MVC (i.e. &#8220;.cshtml&#8221; files) and static content should be marked as &#8220;embedded resources&#8221; in order to be included into resulting assembly and processed by Masonry at run time. It is possible including images, JavaScript, CSS, etc. files as embedded resources as well. Masonry will ensure those files are mapped properly during execution and behave as common MVC views or static/script files.</p>
<p>Besides changing build action to &#8220;Embedded Resource&#8221; developers need performing no actions. Picture below demonstrates the default set of files delivered by Masonry Extension project template as embedded resources:</p>
<p><a href="https://denisvuyka.wordpress.com/2012/12/03/masonry-extensibility-part-1/11-extension-resources/" rel="attachment wp-att-417"><img data-attachment-id="417" data-permalink="https://denisvuyka.wordpress.com/2012/12/03/masonry-extensibility-part-1/11-extension-resources/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2012/12/11-extension-resources.png?w=800" data-orig-size="273,396" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="11.extension-resources" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2012/12/11-extension-resources.png?w=800?w=207" data-large-file="https://denisvuyka.files.wordpress.com/2012/12/11-extension-resources.png?w=800?w=273" class="alignnone size-full wp-image-417" style="border:1px solid lightgray;" alt="11.extension-resources" src="https://denisvuyka.files.wordpress.com/2012/12/11-extension-resources.png?w=800" srcset="https://denisvuyka.files.wordpress.com/2012/12/11-extension-resources.png 273w, https://denisvuyka.files.wordpress.com/2012/12/11-extension-resources.png?w=103 103w" sizes="(max-width: 273px) 100vw, 273px"   /></a></p>
<p>Deploying compiled extensions has no special requirements or prerequisites. Resulting &#8220;.dll&#8221; file can be copied into the binaries folder of the target Masonry-based web application. Optionally you can drop debugging information (.pdb files) to enable debugging of deployed extensions and stepping through the code:</p>
<p><a href="https://denisvuyka.wordpress.com/2012/12/03/masonry-extensibility-part-1/09-extension-binaries/" rel="attachment wp-att-418"><img data-attachment-id="418" data-permalink="https://denisvuyka.wordpress.com/2012/12/03/masonry-extensibility-part-1/09-extension-binaries/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2012/12/09-extension-binaries.png?w=800" data-orig-size="254,190" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="09.extension-binaries" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2012/12/09-extension-binaries.png?w=800?w=254" data-large-file="https://denisvuyka.files.wordpress.com/2012/12/09-extension-binaries.png?w=800?w=254" class="alignnone size-full wp-image-418" style="border:0;" alt="09.extension-binaries" src="https://denisvuyka.files.wordpress.com/2012/12/09-extension-binaries.png?w=800" srcset="https://denisvuyka.files.wordpress.com/2012/12/09-extension-binaries.png 254w, https://denisvuyka.files.wordpress.com/2012/12/09-extension-binaries.png?w=150 150w" sizes="(max-width: 254px) 100vw, 254px"   /></a></p>
<p><em>Note: when using &#8220;controlled discovery mode&#8221; you may need defining a new configuration entry upon deploying your extension to the target web application.</em></p>
<p>Upon execution and extension discovery Masonry will automatically populate sidebar, header bar and other extensible UI areas with corresponding elements. Every action (link) will point to custom extension-provided content.</p>
<p><a href="https://denisvuyka.wordpress.com/2012/12/03/masonry-extensibility-part-1/10-extensions-ui/" rel="attachment wp-att-419"><img data-attachment-id="419" data-permalink="https://denisvuyka.wordpress.com/2012/12/03/masonry-extensibility-part-1/10-extensions-ui/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2012/12/10-extensions-ui.png?w=800" data-orig-size="471,463" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="10.extensions-ui" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2012/12/10-extensions-ui.png?w=800?w=300" data-large-file="https://denisvuyka.files.wordpress.com/2012/12/10-extensions-ui.png?w=800?w=471" class="alignnone size-full wp-image-419" style="border:1px solid lightgray;" alt="10.extensions-ui" src="https://denisvuyka.files.wordpress.com/2012/12/10-extensions-ui.png?w=800" srcset="https://denisvuyka.files.wordpress.com/2012/12/10-extensions-ui.png 471w, https://denisvuyka.files.wordpress.com/2012/12/10-extensions-ui.png?w=150 150w, https://denisvuyka.files.wordpress.com/2012/12/10-extensions-ui.png?w=300 300w" sizes="(max-width: 471px) 100vw, 471px"   /></a></p>
<p>This is the end of basic overview of extensibility in Masonry. In the second part I will be giving more information about areas that support extensibility in Masonry, classes and contracts that may be utilized when writing custom extensions, technical details on embedded resources and the process of mapping them at run time, and a lot more&#8230;</p><br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/denisvuyka.wordpress.com/400/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/denisvuyka.wordpress.com/400/" /></a> <img alt="" border="0" src="https://pixel.wp.com/b.gif?host=denisvuyka.wordpress.com&#038;blog=4724773&#038;post=400&#038;subd=denisvuyka&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>https://denisvuyka.wordpress.com/2012/12/03/masonry-extensibility-part-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/032cdef00bc6c528b24517b137c97660?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Denis</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2012/12/02-project-properties.png" medium="image">
			<media:title type="html">02.project-properties</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2012/12/01-webconfig.png" medium="image">
			<media:title type="html">01.webconfig</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2012/12/03-vstemplate.png" medium="image">
			<media:title type="html">03.vstemplate</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2012/12/05-extension-structure-expanded.png" medium="image">
			<media:title type="html">05.extension-structure-expanded</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2012/12/06-custom-extension.png" medium="image">
			<media:title type="html">06.custom-extension</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2012/12/07-custom-arearegistration.png" medium="image">
			<media:title type="html">07.custom-arearegistration</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2012/12/08-custom-sidebar-integration.png" medium="image">
			<media:title type="html">08.custom-sidebar-integration</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2012/12/11-extension-resources.png" medium="image">
			<media:title type="html">11.extension-resources</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2012/12/09-extension-binaries.png" medium="image">
			<media:title type="html">09.extension-binaries</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2012/12/10-extensions-ui.png" medium="image">
			<media:title type="html">10.extensions-ui</media:title>
		</media:content>
	</item>
		<item>
		<title>Announcing Masonry public preview</title>
		<link>https://denisvuyka.wordpress.com/2012/11/21/announcing-masonry-public-preview/</link>
		<comments>https://denisvuyka.wordpress.com/2012/11/21/announcing-masonry-public-preview/#respond</comments>
		<pubDate>Wed, 21 Nov 2012 14:30:07 +0000</pubDate>
		<dc:creator><![CDATA[Denys Vuika]]></dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[ASP.NET MVC]]></category>

		<guid isPermaLink="false">http://denisvuyka.wordpress.com/?p=343</guid>
		<description><![CDATA[Today I&#8217;m happy to announce the public availability of my new project &#8220;Masonry&#8221;. Please note that this post is a high-level overview of the project and its major features. For the sake of simplicity technical details are omitted. Developer-oriented articles will be published separately. Introduction Social networks and corresponding UI/UX gains more and more attention. [&#8230;]<img alt="" border="0" src="https://pixel.wp.com/b.gif?host=denisvuyka.wordpress.com&#038;blog=4724773&#038;post=343&#038;subd=denisvuyka&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Today I&#8217;m happy to announce the public availability of my new project &#8220;Masonry&#8221;. Please note that this post is a high-level overview of the project and its major features. For the sake of simplicity technical details are omitted. Developer-oriented articles will be published separately.</p>
<h1>Introduction</h1>
<p>Social networks and corresponding UI/UX gains more and more attention. Even big enterprise players are looking forward to embedding social and gamification features into their products these days. Most of the projects I&#8217;ve been involved with during this year had requirements for lightweight &#8220;socialization&#8221; of common business workflows, i.e. chats, timelines and data aggregation, comment systems, following/unfollowing, user profiles, etc. Most of the project prototyping I&#8217;ve observed or was part of during the year assumed Twitter/Facebook-like user experiences besides mandatory functionality requirements.</p>
<p>Masonry was born as an <a href="http://www.asp.net/mvc/mvc4" target="_blank">ASP.NET MVC4</a> starter kit (or template) to greatly reduce learning curve, time and development efforts required to start prototyping and building social-enabled web applications, or integrating social-enabled features into existing applications. It provides most common building blocks and allows startup or research teams concentrating on main application functionality rather than building social features from scratch.</p>
<p><a href="https://denisvuyka.files.wordpress.com/2012/11/01-masonry-homepage.png"><img data-attachment-id="385" data-permalink="https://denisvuyka.wordpress.com/2012/11/21/announcing-masonry-public-preview/01-masonry-homepage/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2012/11/01-masonry-homepage.png?w=800" data-orig-size="1094,781" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="01.Masonry.HomePage" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2012/11/01-masonry-homepage.png?w=800?w=300" data-large-file="https://denisvuyka.files.wordpress.com/2012/11/01-masonry-homepage.png?w=800?w=800" class="alignnone size-full wp-image-385" style="border:1px solid lightgray;" title="01.Masonry.HomePage" alt="Home Page" src="https://denisvuyka.files.wordpress.com/2012/11/01-masonry-homepage.png?w=800" srcset="https://denisvuyka.files.wordpress.com/2012/11/01-masonry-homepage.png?w=800 800w, https://denisvuyka.files.wordpress.com/2012/11/01-masonry-homepage.png?w=150 150w, https://denisvuyka.files.wordpress.com/2012/11/01-masonry-homepage.png?w=300 300w, https://denisvuyka.files.wordpress.com/2012/11/01-masonry-homepage.png?w=768 768w, https://denisvuyka.files.wordpress.com/2012/11/01-masonry-homepage.png?w=1024 1024w, https://denisvuyka.files.wordpress.com/2012/11/01-masonry-homepage.png 1094w" sizes="(max-width: 800px) 100vw, 800px"   /></a></p>
<h1></h1>
<h1><span style="line-height:1.5em;">Overview</span></h1>
<p>Masonry is not a static template. Many frequently required and expected features are still being researched, analyzed and included into the roadmap. You should expect frequent updates that bring new blocks in the future.</p>
<p>The major set of features shipped with initial beta is as follows:</p>
<ul>
<li>Account registration with email confirmation/validation and reCaptcha support</li>
<li>Account settings and password management</li>
<li>Timeline and user posts (status updates)</li>
<li>Public profiles, following/unfollowing other users</li>
<li>Personal feeds and &#8220;twitterization&#8221; of content (account links, hash tags, etc.)</li>
<li>Comment system</li>
<li>Mentions and People hubs</li>
<li>Wiki-based help system with Markdown support</li>
<li>Extensibility support (single-assembly modules built with ASP.NET MVC4 template and deployed with xcopy)</li>
</ul>
<p>There&#8217;s also a supplementary content to aid development:</p>
<ul>
<li>Default demo database to get started instantly (SQL LocalDb)</li>
<li>SQL schema scripts to setup a new database</li>
<li>Visual Studio 2012 project template for creating custom extensions/modules with less efforts</li>
</ul>
<h1>Account Registration</h1>
<p>Account management is built on to of <a href="http://weblogs.asp.net/jgalloway/archive/2012/08/29/simplemembership-membership-providers-universal-providers-and-the-new-asp-net-4-5-web-forms-and-asp-net-mvc-4-templates.aspx" target="_blank">SimpleMembership</a> provider by MS used in most of the WebMatrix projects these days. That allows having more flexible membership scenarios (i.e. support for external OAuth authentication models, Facebook/Twitter/LinkedIn integration without much efforts) and provides greatly refined SQL database schema compared to popular ASP.NET SQL Membership provider.</p>
<p>Registration form prevents cross-site request forgery (CSRF) out of box by utilizing ASP.NET MVC&#8217;s <a href="http://dotnetslackers.com/articles/aspnet/Protect-ASP-NET-MVC-3-Applications-Using-AntiForgery-Helpers.aspx" target="_blank">AntiForgeryToken</a> helpers.</p>
<p><a href="http://www.google.com/recaptcha" target="_blank">Google reCaptcha</a> is also preconfigured by default</p>
<p><a href="https://denisvuyka.files.wordpress.com/2012/11/02-masonry-register.png"><img data-attachment-id="362" data-permalink="https://denisvuyka.wordpress.com/2012/11/21/announcing-masonry-public-preview/02-masonry-register/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2012/11/02-masonry-register.png?w=349&#038;h=450" data-orig-size="498,643" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="02.Masonry.Register" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2012/11/02-masonry-register.png?w=349&#038;h=450?w=232" data-large-file="https://denisvuyka.files.wordpress.com/2012/11/02-masonry-register.png?w=349&#038;h=450?w=498" class="alignnone  wp-image-362" style="border:1px solid #d3d3d3;" title="02.Masonry.Register" alt="Account Registration" src="https://denisvuyka.files.wordpress.com/2012/11/02-masonry-register.png?w=349&#038;h=450" height="450" width="349" srcset="https://denisvuyka.files.wordpress.com/2012/11/02-masonry-register.png?w=349&amp;h=450 349w, https://denisvuyka.files.wordpress.com/2012/11/02-masonry-register.png?w=116&amp;h=150 116w, https://denisvuyka.files.wordpress.com/2012/11/02-masonry-register.png?w=232&amp;h=300 232w, https://denisvuyka.files.wordpress.com/2012/11/02-masonry-register.png 498w" sizes="(max-width: 349px) 100vw, 349px" /></a></p>
<p>In addition Masonry supports account validation and email validation. This feature when opted in through configuration allows automatically generating confirmation emails with links to confirm and enable newly created account.</p>
<h1>Signing in</h1>
<p>Similar to Registration form the LogOn one prevents cross-site request forgery (CSRF) attacks by default. All redirect URL links (used to redirect back to the requested content that requires authentication) are verified to be valid local addresses rather than external links.</p>
<p><a href="https://denisvuyka.files.wordpress.com/2012/11/03-masonry-signin.png"><img data-attachment-id="366" data-permalink="https://denisvuyka.wordpress.com/2012/11/21/announcing-masonry-public-preview/03-masonry-signin/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2012/11/03-masonry-signin.png?w=386&#038;h=286" data-orig-size="537,398" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="03.Masonry.SignIn" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2012/11/03-masonry-signin.png?w=386&#038;h=286?w=300" data-large-file="https://denisvuyka.files.wordpress.com/2012/11/03-masonry-signin.png?w=386&#038;h=286?w=537" class="alignnone  wp-image-366" style="border:1px solid #d3d3d3;" title="03.Masonry.SignIn" alt="Sign In" src="https://denisvuyka.files.wordpress.com/2012/11/03-masonry-signin.png?w=386&#038;h=286" height="286" width="386" srcset="https://denisvuyka.files.wordpress.com/2012/11/03-masonry-signin.png?w=386&amp;h=286 386w, https://denisvuyka.files.wordpress.com/2012/11/03-masonry-signin.png?w=150&amp;h=111 150w, https://denisvuyka.files.wordpress.com/2012/11/03-masonry-signin.png?w=300&amp;h=222 300w, https://denisvuyka.files.wordpress.com/2012/11/03-masonry-signin.png 537w" sizes="(max-width: 386px) 100vw, 386px" /></a></p>
<h1>Timeline</h1>
<p>All authenticated users are automatically redirected to the Timeline. Similar to <a href="https://support.twitter.com/articles/164083-what-is-a-twitter-timeline" target="_blank">Twitter</a> it is a long stream showing all Posts from those you have chosen to follow, or your own posts with user comments. There are no paging controls on the Timeline, similar to Facebook new content is downloaded smoothly while you scroll down the page.</p>
<p><a href="https://denisvuyka.files.wordpress.com/2012/11/05-masonry-timeline.png"><img data-attachment-id="369" data-permalink="https://denisvuyka.wordpress.com/2012/11/21/announcing-masonry-public-preview/05-masonry-timeline/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2012/11/05-masonry-timeline.png?w=800" data-orig-size="1209,781" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="05.Masonry.Timeline" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2012/11/05-masonry-timeline.png?w=800?w=300" data-large-file="https://denisvuyka.files.wordpress.com/2012/11/05-masonry-timeline.png?w=800?w=800" class="alignnone size-full wp-image-369" style="border:1px solid lightgray;" title="05.Masonry.Timeline" alt="Timeline" src="https://denisvuyka.files.wordpress.com/2012/11/05-masonry-timeline.png?w=800" srcset="https://denisvuyka.files.wordpress.com/2012/11/05-masonry-timeline.png?w=800 800w, https://denisvuyka.files.wordpress.com/2012/11/05-masonry-timeline.png?w=150 150w, https://denisvuyka.files.wordpress.com/2012/11/05-masonry-timeline.png?w=300 300w, https://denisvuyka.files.wordpress.com/2012/11/05-masonry-timeline.png?w=768 768w, https://denisvuyka.files.wordpress.com/2012/11/05-masonry-timeline.png?w=1024 1024w, https://denisvuyka.files.wordpress.com/2012/11/05-masonry-timeline.png 1209w" sizes="(max-width: 800px) 100vw, 800px"   /></a></p>
<p>All content is &#8220;twitterized&#8221; by default &#8211; all user account tags are turned into user profile links and point to Personal Feeds (see below), all hash tags are wrapped with hyperlinks redirecting to internal Search controller upon click. In addition all hash tags are enumerated in a separate area below the main post content.</p>
<p>There are at least 2 easy ways to post new content (i.e. status update) in Masonry:</p>
<ul>
<li>Inline editor box at the bottom of the Timeline</li>
<li>&#8220;New Post&#8221; button on the header bar and available on any page</li>
</ul>
<p>Image below demonstrates a dialog that appears when user presses &#8220;new post&#8221; button:</p>
<p><a href="https://denisvuyka.files.wordpress.com/2012/11/15-masonry-statusupdate.png"><img data-attachment-id="388" data-permalink="https://denisvuyka.wordpress.com/2012/11/21/announcing-masonry-public-preview/15-masonry-statusupdate/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2012/11/15-masonry-statusupdate.png?w=800" data-orig-size="1091,345" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="15.Masonry.StatusUpdate" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2012/11/15-masonry-statusupdate.png?w=800?w=300" data-large-file="https://denisvuyka.files.wordpress.com/2012/11/15-masonry-statusupdate.png?w=800?w=800" class="alignnone size-full wp-image-388" style="border:1px solid lightgray;" title="15.Masonry.StatusUpdate" alt="Status Update" src="https://denisvuyka.files.wordpress.com/2012/11/15-masonry-statusupdate.png?w=800" srcset="https://denisvuyka.files.wordpress.com/2012/11/15-masonry-statusupdate.png?w=800 800w, https://denisvuyka.files.wordpress.com/2012/11/15-masonry-statusupdate.png?w=150 150w, https://denisvuyka.files.wordpress.com/2012/11/15-masonry-statusupdate.png?w=300 300w, https://denisvuyka.files.wordpress.com/2012/11/15-masonry-statusupdate.png?w=768 768w, https://denisvuyka.files.wordpress.com/2012/11/15-masonry-statusupdate.png?w=1024 1024w, https://denisvuyka.files.wordpress.com/2012/11/15-masonry-statusupdate.png 1091w" sizes="(max-width: 800px) 100vw, 800px"   /></a></p>
<h1>Personal Feeds</h1>
<p>Masonry provides support for personal feeds &#8211; streams showing public posts by a specific user. There are several ways quickly accessing personal feed:</p>
<ul>
<li>User account name within the post header</li>
<li>User account tag within the post or comment content</li>
<li>Public profile dialog that pops up upon clicking user avatar</li>
<li>People or Mentions hub</li>
</ul>
<p>Upon navigation the sidebar control will automatically reflect the account opened:</p>
<p><a href="https://denisvuyka.files.wordpress.com/2012/11/12-masonry-feed.png"><img data-attachment-id="380" data-permalink="https://denisvuyka.wordpress.com/2012/11/21/announcing-masonry-public-preview/12-masonry-feed/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2012/11/12-masonry-feed.png?w=800" data-orig-size="920,610" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="12.Masonry.Feed" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2012/11/12-masonry-feed.png?w=800?w=300" data-large-file="https://denisvuyka.files.wordpress.com/2012/11/12-masonry-feed.png?w=800?w=800" class="alignnone size-full wp-image-380" style="border:1px solid lightgray;" title="12.Masonry.Feed" alt="Personal Feed" src="https://denisvuyka.files.wordpress.com/2012/11/12-masonry-feed.png?w=800" srcset="https://denisvuyka.files.wordpress.com/2012/11/12-masonry-feed.png?w=800 800w, https://denisvuyka.files.wordpress.com/2012/11/12-masonry-feed.png?w=150 150w, https://denisvuyka.files.wordpress.com/2012/11/12-masonry-feed.png?w=300 300w, https://denisvuyka.files.wordpress.com/2012/11/12-masonry-feed.png?w=768 768w, https://denisvuyka.files.wordpress.com/2012/11/12-masonry-feed.png 920w" sizes="(max-width: 800px) 100vw, 800px"   /></a></p>
<h2>Public Profile Popups</h2>
<p>Masonry automatically wraps all user avatars with profile popups that allow following/unfollowing particular user, navigating to a personal feed or People hub to see followings/followers.</p>
<p><a href="https://denisvuyka.files.wordpress.com/2012/11/11-masonry-profilepopup.png"><img data-attachment-id="381" data-permalink="https://denisvuyka.wordpress.com/2012/11/21/announcing-masonry-public-preview/11-masonry-profilepopup/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2012/11/11-masonry-profilepopup.png?w=800" data-orig-size="673,395" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="11.Masonry.ProfilePopup" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2012/11/11-masonry-profilepopup.png?w=800?w=300" data-large-file="https://denisvuyka.files.wordpress.com/2012/11/11-masonry-profilepopup.png?w=800?w=673" class="alignnone size-full wp-image-381" style="border:1px solid lightgray;" title="11.Masonry.ProfilePopup" alt="Profile Popup" src="https://denisvuyka.files.wordpress.com/2012/11/11-masonry-profilepopup.png?w=800" srcset="https://denisvuyka.files.wordpress.com/2012/11/11-masonry-profilepopup.png 673w, https://denisvuyka.files.wordpress.com/2012/11/11-masonry-profilepopup.png?w=150 150w, https://denisvuyka.files.wordpress.com/2012/11/11-masonry-profilepopup.png?w=300 300w" sizes="(max-width: 673px) 100vw, 673px"   /></a></p>
<h1>Mentions</h1>
<p>Similar to <a href="https://support.twitter.com/articles/14023-what-are-replies-and-mentions" target="_blank">Twitter Mentions</a> Masonry provides support for streaming posts that &#8220;mention&#8221; current user &#8211; i.e. any post that has an account tag in the content. All Timeline features like profile popups, comments, personal feed navigation are automatically applied to Mentions stream as well.</p>
<p><a href="https://denisvuyka.files.wordpress.com/2012/11/13-masonry-mentions.png"><img data-attachment-id="383" data-permalink="https://denisvuyka.wordpress.com/2012/11/21/announcing-masonry-public-preview/13-masonry-mentions/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2012/11/13-masonry-mentions.png?w=800" data-orig-size="572,444" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="13.Masonry.Mentions" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2012/11/13-masonry-mentions.png?w=800?w=300" data-large-file="https://denisvuyka.files.wordpress.com/2012/11/13-masonry-mentions.png?w=800?w=572" class="alignnone size-full wp-image-383" style="border:1px solid lightgray;" title="13.Masonry.Mentions" alt="Mentions" src="https://denisvuyka.files.wordpress.com/2012/11/13-masonry-mentions.png?w=800" srcset="https://denisvuyka.files.wordpress.com/2012/11/13-masonry-mentions.png 572w, https://denisvuyka.files.wordpress.com/2012/11/13-masonry-mentions.png?w=150 150w, https://denisvuyka.files.wordpress.com/2012/11/13-masonry-mentions.png?w=300 300w" sizes="(max-width: 572px) 100vw, 572px"   /></a></p>
<h1>People Hub</h1>
<p>To simplify intranet/corporate scenarios Masonry provides a special feature &#8220;People Hub&#8221; that allows newly registered users discovering already existing members (to follow, view personal feeds, etc.). People hub lists existing uses with basic public information (see Account Settings section below) and main statistics like number of posts, followers or users being followed by a particular user. It is possible following/unfollowing users directly from the People hub:</p>
<p><a href="https://denisvuyka.files.wordpress.com/2012/11/14-masonry-people.png"><img data-attachment-id="387" data-permalink="https://denisvuyka.wordpress.com/2012/11/21/announcing-masonry-public-preview/14-masonry-people/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2012/11/14-masonry-people.png?w=800" data-orig-size="1108,488" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="14.Masonry.People" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2012/11/14-masonry-people.png?w=800?w=300" data-large-file="https://denisvuyka.files.wordpress.com/2012/11/14-masonry-people.png?w=800?w=800" class="alignnone size-full wp-image-387" style="border:1px solid lightgray;" title="14.Masonry.People" alt="People Hub" src="https://denisvuyka.files.wordpress.com/2012/11/14-masonry-people.png?w=800" srcset="https://denisvuyka.files.wordpress.com/2012/11/14-masonry-people.png?w=800 800w, https://denisvuyka.files.wordpress.com/2012/11/14-masonry-people.png?w=150 150w, https://denisvuyka.files.wordpress.com/2012/11/14-masonry-people.png?w=300 300w, https://denisvuyka.files.wordpress.com/2012/11/14-masonry-people.png?w=768 768w, https://denisvuyka.files.wordpress.com/2012/11/14-masonry-people.png?w=1024 1024w, https://denisvuyka.files.wordpress.com/2012/11/14-masonry-people.png 1108w" sizes="(max-width: 800px) 100vw, 800px"   /></a></p>
<p><em>Note: it may be possible wiring People hub with additional logic and business rules, like showing/filtering users by department, etc.</em></p>
<h1>Account Settings</h1>
<p>Users can access their account and profile settings from the header bar. Besides account editing Settings drop down menu provides access to Help system, About information and allows signing out as shown on the picture below:</p>
<p><a href="https://denisvuyka.files.wordpress.com/2012/11/04-masonry-settings.png"><img data-attachment-id="371" data-permalink="https://denisvuyka.wordpress.com/2012/11/21/announcing-masonry-public-preview/04-masonry-settings/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2012/11/04-masonry-settings.png?w=800" data-orig-size="350,239" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="04.Masonry.Settings" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2012/11/04-masonry-settings.png?w=800?w=300" data-large-file="https://denisvuyka.files.wordpress.com/2012/11/04-masonry-settings.png?w=800?w=350" class="alignnone size-full wp-image-371" style="border:1px solid lightgray;" title="04.Masonry.Settings" alt="Settings" src="https://denisvuyka.files.wordpress.com/2012/11/04-masonry-settings.png?w=800" srcset="https://denisvuyka.files.wordpress.com/2012/11/04-masonry-settings.png 350w, https://denisvuyka.files.wordpress.com/2012/11/04-masonry-settings.png?w=150 150w, https://denisvuyka.files.wordpress.com/2012/11/04-masonry-settings.png?w=300 300w" sizes="(max-width: 350px) 100vw, 350px"   /></a></p>
<p>There are no mandatory fields within account settings section. All public fields are optional: photo, display name, location, website and bio. If current browser supports HTML5 File API user will be able to preview changes to the picture live without uploading any data to server.</p>
<p><a href="https://denisvuyka.files.wordpress.com/2012/11/06-masonry-accountsettings.png"><img data-attachment-id="373" data-permalink="https://denisvuyka.wordpress.com/2012/11/21/announcing-masonry-public-preview/06-masonry-accountsettings/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2012/11/06-masonry-accountsettings.png?w=800" data-orig-size="989,740" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="06.Masonry.AccountSettings" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2012/11/06-masonry-accountsettings.png?w=800?w=300" data-large-file="https://denisvuyka.files.wordpress.com/2012/11/06-masonry-accountsettings.png?w=800?w=800" class="alignnone size-full wp-image-373" style="border:1px solid lightgray;" title="06.Masonry.AccountSettings" alt="Account Settings" src="https://denisvuyka.files.wordpress.com/2012/11/06-masonry-accountsettings.png?w=800" srcset="https://denisvuyka.files.wordpress.com/2012/11/06-masonry-accountsettings.png?w=800 800w, https://denisvuyka.files.wordpress.com/2012/11/06-masonry-accountsettings.png?w=150 150w, https://denisvuyka.files.wordpress.com/2012/11/06-masonry-accountsettings.png?w=300 300w, https://denisvuyka.files.wordpress.com/2012/11/06-masonry-accountsettings.png?w=768 768w, https://denisvuyka.files.wordpress.com/2012/11/06-masonry-accountsettings.png 989w" sizes="(max-width: 800px) 100vw, 800px"   /></a></p>
<p>Both &#8220;Account settings&#8221; and &#8220;Change password&#8221; forms provide lightweight unobtrusive alerts to indicate update results.</p>
<p><a href="https://denisvuyka.files.wordpress.com/2012/11/07-masonry-changepassword.png"><img data-attachment-id="374" data-permalink="https://denisvuyka.wordpress.com/2012/11/21/announcing-masonry-public-preview/07-masonry-changepassword/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2012/11/07-masonry-changepassword.png?w=516&#038;h=305" data-orig-size="673,398" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="07.Masonry.ChangePassword" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2012/11/07-masonry-changepassword.png?w=516&#038;h=305?w=300" data-large-file="https://denisvuyka.files.wordpress.com/2012/11/07-masonry-changepassword.png?w=516&#038;h=305?w=673" class="alignnone  wp-image-374" style="border:1px solid lightgray;" title="07.Masonry.ChangePassword" alt="Change Password" src="https://denisvuyka.files.wordpress.com/2012/11/07-masonry-changepassword.png?w=516&#038;h=305" height="305" width="516" srcset="https://denisvuyka.files.wordpress.com/2012/11/07-masonry-changepassword.png?w=516&amp;h=305 516w, https://denisvuyka.files.wordpress.com/2012/11/07-masonry-changepassword.png?w=150&amp;h=89 150w, https://denisvuyka.files.wordpress.com/2012/11/07-masonry-changepassword.png?w=300&amp;h=177 300w, https://denisvuyka.files.wordpress.com/2012/11/07-masonry-changepassword.png 673w" sizes="(max-width: 516px) 100vw, 516px" /></a></p>
<h1>Comment system</h1>
<p>For extensibility and flexibility purposes Comment system in Masonry is separated from status updates (posts). To avoid user distraction comment areas are collapsed by default:</p>
<p><a href="https://denisvuyka.files.wordpress.com/2012/11/09-masonry-post01.png"><img data-attachment-id="376" data-permalink="https://denisvuyka.wordpress.com/2012/11/21/announcing-masonry-public-preview/09-masonry-post01/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2012/11/09-masonry-post01.png?w=800" data-orig-size="417,153" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="09.Masonry.Post01" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2012/11/09-masonry-post01.png?w=800?w=300" data-large-file="https://denisvuyka.files.wordpress.com/2012/11/09-masonry-post01.png?w=800?w=417" class="alignnone size-full wp-image-376" style="border:1px solid lightgray;" title="09.Masonry.Post01" alt="Generic Post" src="https://denisvuyka.files.wordpress.com/2012/11/09-masonry-post01.png?w=800" srcset="https://denisvuyka.files.wordpress.com/2012/11/09-masonry-post01.png 417w, https://denisvuyka.files.wordpress.com/2012/11/09-masonry-post01.png?w=150 150w, https://denisvuyka.files.wordpress.com/2012/11/09-masonry-post01.png?w=300 300w" sizes="(max-width: 417px) 100vw, 417px"   /></a></p>
<p>Moreover comments are loaded asynchronously upon expanding &#8220;Comments&#8221; area. That reduces initial page memory footprint and speeds up main content loading.</p>
<p><a href="https://denisvuyka.files.wordpress.com/2012/11/10-masonry-post02.png"><img data-attachment-id="377" data-permalink="https://denisvuyka.wordpress.com/2012/11/21/announcing-masonry-public-preview/10-masonry-post02/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2012/11/10-masonry-post02.png?w=800" data-orig-size="771,255" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="10.Masonry.Post02" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2012/11/10-masonry-post02.png?w=800?w=300" data-large-file="https://denisvuyka.files.wordpress.com/2012/11/10-masonry-post02.png?w=800?w=771" class="alignnone size-full wp-image-377" style="border:1px solid lightgray;" title="10.Masonry.Post02" alt="Post Comments" src="https://denisvuyka.files.wordpress.com/2012/11/10-masonry-post02.png?w=800" srcset="https://denisvuyka.files.wordpress.com/2012/11/10-masonry-post02.png 771w, https://denisvuyka.files.wordpress.com/2012/11/10-masonry-post02.png?w=150 150w, https://denisvuyka.files.wordpress.com/2012/11/10-masonry-post02.png?w=300 300w, https://denisvuyka.files.wordpress.com/2012/11/10-masonry-post02.png?w=768 768w" sizes="(max-width: 771px) 100vw, 771px"   /></a></p>
<p>The author of the post has possibility removing posts with corresponding comments:</p>
<p><a href="https://denisvuyka.files.wordpress.com/2012/11/16-masonry-removepost.png"><img data-attachment-id="378" data-permalink="https://denisvuyka.wordpress.com/2012/11/21/announcing-masonry-public-preview/16-masonry-removepost/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2012/11/16-masonry-removepost.png?w=800" data-orig-size="802,379" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="16.Masonry.RemovePost" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2012/11/16-masonry-removepost.png?w=800?w=300" data-large-file="https://denisvuyka.files.wordpress.com/2012/11/16-masonry-removepost.png?w=800?w=800" class="alignnone size-full wp-image-378" style="border:1px solid lightgray;" title="16.Masonry.RemovePost" alt="Removing Posts" src="https://denisvuyka.files.wordpress.com/2012/11/16-masonry-removepost.png?w=800" srcset="https://denisvuyka.files.wordpress.com/2012/11/16-masonry-removepost.png?w=800 800w, https://denisvuyka.files.wordpress.com/2012/11/16-masonry-removepost.png?w=150 150w, https://denisvuyka.files.wordpress.com/2012/11/16-masonry-removepost.png?w=300 300w, https://denisvuyka.files.wordpress.com/2012/11/16-masonry-removepost.png?w=768 768w, https://denisvuyka.files.wordpress.com/2012/11/16-masonry-removepost.png 802w" sizes="(max-width: 800px) 100vw, 800px"   /></a></p>
<p>Similar to Facebook Masonry supports displaying posts in separate pages. Every post that has more than 10 comments is automatically opened in a separate view.</p>
<h1>Help System, Markdown Support</h1>
<p>Help system is a separate block within Masonry that provides Wiki-like experience and powered by <a href="http://en.wikipedia.com/wiki/Markdown" target="_blank">Markdown</a> syntax.</p>
<p><a href="https://denisvuyka.files.wordpress.com/2012/11/08-masonry-help.png"><img data-attachment-id="390" data-permalink="https://denisvuyka.wordpress.com/2012/11/21/announcing-masonry-public-preview/08-masonry-help/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2012/11/08-masonry-help.png?w=800" data-orig-size="1114,856" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="08.Masonry.Help" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2012/11/08-masonry-help.png?w=800?w=300" data-large-file="https://denisvuyka.files.wordpress.com/2012/11/08-masonry-help.png?w=800?w=800" class="alignnone size-full wp-image-390" style="border:1px solid lightgray;" title="08.Masonry.Help" alt="Help System with Markdown" src="https://denisvuyka.files.wordpress.com/2012/11/08-masonry-help.png?w=800" srcset="https://denisvuyka.files.wordpress.com/2012/11/08-masonry-help.png?w=800 800w, https://denisvuyka.files.wordpress.com/2012/11/08-masonry-help.png?w=150 150w, https://denisvuyka.files.wordpress.com/2012/11/08-masonry-help.png?w=300 300w, https://denisvuyka.files.wordpress.com/2012/11/08-masonry-help.png?w=768 768w, https://denisvuyka.files.wordpress.com/2012/11/08-masonry-help.png?w=1024 1024w, https://denisvuyka.files.wordpress.com/2012/11/08-masonry-help.png 1114w" sizes="(max-width: 800px) 100vw, 800px"   /></a></p>
<p>Underlying Help Controller maps physical &#8220;.md&#8221; files automatically, it is possible updating Markdown content with a running application:</p>
<p><a href="https://denisvuyka.files.wordpress.com/2012/11/20-masonry-helpcontent.png"><img data-attachment-id="391" data-permalink="https://denisvuyka.wordpress.com/2012/11/21/announcing-masonry-public-preview/20-masonry-helpcontent/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2012/11/20-masonry-helpcontent.png?w=800" data-orig-size="466,97" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="20.Masonry.HelpContent" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2012/11/20-masonry-helpcontent.png?w=800?w=300" data-large-file="https://denisvuyka.files.wordpress.com/2012/11/20-masonry-helpcontent.png?w=800?w=466" class="alignnone size-full wp-image-391" style="border:1px solid lightgray;" title="20.Masonry.HelpContent" alt="Help Content" src="https://denisvuyka.files.wordpress.com/2012/11/20-masonry-helpcontent.png?w=800" srcset="https://denisvuyka.files.wordpress.com/2012/11/20-masonry-helpcontent.png 466w, https://denisvuyka.files.wordpress.com/2012/11/20-masonry-helpcontent.png?w=150 150w, https://denisvuyka.files.wordpress.com/2012/11/20-masonry-helpcontent.png?w=300 300w" sizes="(max-width: 466px) 100vw, 466px"   /></a></p>
<p><a href="https://denisvuyka.files.wordpress.com/2012/11/18-masonry-markdown.png"><img data-attachment-id="392" data-permalink="https://denisvuyka.wordpress.com/2012/11/21/announcing-masonry-public-preview/18-masonry-markdown/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2012/11/18-masonry-markdown.png?w=800" data-orig-size="446,257" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="18.Masonry.Markdown" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2012/11/18-masonry-markdown.png?w=800?w=300" data-large-file="https://denisvuyka.files.wordpress.com/2012/11/18-masonry-markdown.png?w=800?w=446" class="alignnone size-full wp-image-392" style="border:0;" title="18.Masonry.Markdown" alt="Markdown syntax" src="https://denisvuyka.files.wordpress.com/2012/11/18-masonry-markdown.png?w=800" srcset="https://denisvuyka.files.wordpress.com/2012/11/18-masonry-markdown.png 446w, https://denisvuyka.files.wordpress.com/2012/11/18-masonry-markdown.png?w=150 150w, https://denisvuyka.files.wordpress.com/2012/11/18-masonry-markdown.png?w=300 300w" sizes="(max-width: 446px) 100vw, 446px"   /></a></p>
<h1>Extensibility and Modules</h1>
<p>Masonry utilizes <a href="http://mef.codeplex.com/" target="_blank">Managed Extensibility Framework (MEF)</a> and <a href="http://www.codeguru.com/csharp/.net/net_asp/mvc/article.php/c20227/Using-Areas-in-ASPNET-MVC-Application.htm" target="_blank">ASP.NET MVC Areas</a> to provide rich extensibility support. External extensions are discovered and loaded automatically with zero code configuration and prerequisites within main application. All extensions are represented by a single-file assemblies containing a fully-fledged ASP.NET MVC4 pieces together with static content, styleshees and javascript files.</p>
<p>Upon new extension library discovery Masonry automatically augments UI with additional entities taken from the corresponding plugin:</p>
<p><a href="https://denisvuyka.files.wordpress.com/2012/11/17-masonry-extensions.png"><img data-attachment-id="393" data-permalink="https://denisvuyka.wordpress.com/2012/11/21/announcing-masonry-public-preview/17-masonry-extensions/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2012/11/17-masonry-extensions.png?w=800" data-orig-size="468,490" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="17.Masonry.Extensions" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2012/11/17-masonry-extensions.png?w=800?w=287" data-large-file="https://denisvuyka.files.wordpress.com/2012/11/17-masonry-extensions.png?w=800?w=468" class="alignnone size-full wp-image-393" style="border:1px solid lightgray;" title="17.Masonry.Extensions" alt="Extensions" src="https://denisvuyka.files.wordpress.com/2012/11/17-masonry-extensions.png?w=800" srcset="https://denisvuyka.files.wordpress.com/2012/11/17-masonry-extensions.png 468w, https://denisvuyka.files.wordpress.com/2012/11/17-masonry-extensions.png?w=143 143w, https://denisvuyka.files.wordpress.com/2012/11/17-masonry-extensions.png?w=287 287w" sizes="(max-width: 468px) 100vw, 468px"   /></a></p>
<p>Every custom extension can provide extra elements for header bar (with grouping support), sidebar, may provide user with additional content. With Masonry it becomes extremely easy extending standard UI and functionality.</p>
<p><a href="https://denisvuyka.files.wordpress.com/2012/11/19-masonry-dummyextension.png"><img data-attachment-id="394" data-permalink="https://denisvuyka.wordpress.com/2012/11/21/announcing-masonry-public-preview/19-masonry-dummyextension/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2012/11/19-masonry-dummyextension.png?w=800" data-orig-size="963,477" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="19.Masonry.DummyExtension" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2012/11/19-masonry-dummyextension.png?w=800?w=300" data-large-file="https://denisvuyka.files.wordpress.com/2012/11/19-masonry-dummyextension.png?w=800?w=800" class="alignnone size-full wp-image-394" style="border:1px solid lightgray;" title="19.Masonry.DummyExtension" alt="Dummy Extension" src="https://denisvuyka.files.wordpress.com/2012/11/19-masonry-dummyextension.png?w=800" srcset="https://denisvuyka.files.wordpress.com/2012/11/19-masonry-dummyextension.png?w=800 800w, https://denisvuyka.files.wordpress.com/2012/11/19-masonry-dummyextension.png?w=150 150w, https://denisvuyka.files.wordpress.com/2012/11/19-masonry-dummyextension.png?w=300 300w, https://denisvuyka.files.wordpress.com/2012/11/19-masonry-dummyextension.png?w=768 768w, https://denisvuyka.files.wordpress.com/2012/11/19-masonry-dummyextension.png 963w" sizes="(max-width: 800px) 100vw, 800px"   /></a></p>
<p>In order to greatly simplify development process Masonry provides a special &#8220;Masonry Extension&#8221; project template that can be used with Visual Studio 2012. This project template takes care of project structure generation, enables Razor compilation and syntax highlighting for the generated class library project and contains all extensibility/routing settings automatically preconfigured.</p>
<p><strong>Note: there will be a separate article that dives deep into Masonry extensibility, tooling and plugin development. </strong></p>
<p>That&#8217;s pretty it. Feel free to grab the code, play with it, request features that are important, file issues&#8230; everything is in the <a href="https://github.com/DenisVuyka/Masonry" target="_blank">GitHub repository</a>.</p>
<p>Thanks for following.</p><br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/denisvuyka.wordpress.com/343/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/denisvuyka.wordpress.com/343/" /></a> <img alt="" border="0" src="https://pixel.wp.com/b.gif?host=denisvuyka.wordpress.com&#038;blog=4724773&#038;post=343&#038;subd=denisvuyka&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>https://denisvuyka.wordpress.com/2012/11/21/announcing-masonry-public-preview/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/032cdef00bc6c528b24517b137c97660?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Denis</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2012/11/01-masonry-homepage.png" medium="image">
			<media:title type="html">01.Masonry.HomePage</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2012/11/02-masonry-register.png" medium="image">
			<media:title type="html">02.Masonry.Register</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2012/11/03-masonry-signin.png" medium="image">
			<media:title type="html">03.Masonry.SignIn</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2012/11/05-masonry-timeline.png" medium="image">
			<media:title type="html">05.Masonry.Timeline</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2012/11/15-masonry-statusupdate.png" medium="image">
			<media:title type="html">15.Masonry.StatusUpdate</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2012/11/12-masonry-feed.png" medium="image">
			<media:title type="html">12.Masonry.Feed</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2012/11/11-masonry-profilepopup.png" medium="image">
			<media:title type="html">11.Masonry.ProfilePopup</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2012/11/13-masonry-mentions.png" medium="image">
			<media:title type="html">13.Masonry.Mentions</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2012/11/14-masonry-people.png" medium="image">
			<media:title type="html">14.Masonry.People</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2012/11/04-masonry-settings.png" medium="image">
			<media:title type="html">04.Masonry.Settings</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2012/11/06-masonry-accountsettings.png" medium="image">
			<media:title type="html">06.Masonry.AccountSettings</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2012/11/07-masonry-changepassword.png" medium="image">
			<media:title type="html">07.Masonry.ChangePassword</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2012/11/09-masonry-post01.png" medium="image">
			<media:title type="html">09.Masonry.Post01</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2012/11/10-masonry-post02.png" medium="image">
			<media:title type="html">10.Masonry.Post02</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2012/11/16-masonry-removepost.png" medium="image">
			<media:title type="html">16.Masonry.RemovePost</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2012/11/08-masonry-help.png" medium="image">
			<media:title type="html">08.Masonry.Help</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2012/11/20-masonry-helpcontent.png" medium="image">
			<media:title type="html">20.Masonry.HelpContent</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2012/11/18-masonry-markdown.png" medium="image">
			<media:title type="html">18.Masonry.Markdown</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2012/11/17-masonry-extensions.png" medium="image">
			<media:title type="html">17.Masonry.Extensions</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2012/11/19-masonry-dummyextension.png" medium="image">
			<media:title type="html">19.Masonry.DummyExtension</media:title>
		</media:content>
	</item>
		<item>
		<title>I&#8217;m back to blogging</title>
		<link>https://denisvuyka.wordpress.com/2012/11/20/im-back-to-blogging/</link>
		<comments>https://denisvuyka.wordpress.com/2012/11/20/im-back-to-blogging/#respond</comments>
		<pubDate>Tue, 20 Nov 2012 11:02:52 +0000</pubDate>
		<dc:creator><![CDATA[Denys Vuika]]></dc:creator>
				<category><![CDATA[.NET]]></category>

		<guid isPermaLink="false">http://denisvuyka.wordpress.com/?p=340</guid>
		<description><![CDATA[After a long pause I&#8217;m finally back to blogging. This year was a very productive one, I&#8217;ve been involved in a series of awesome R&#38;D projects related to Silverlight, ASP.NET MVC, Mono, etc. Lots of material to be turned into useful articles. During this week there will be an additional announcement for the next big [&#8230;]<img alt="" border="0" src="https://pixel.wp.com/b.gif?host=denisvuyka.wordpress.com&#038;blog=4724773&#038;post=340&#038;subd=denisvuyka&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>After a long pause I&#8217;m finally back to blogging. This year was a very productive one, I&#8217;ve been involved in a series of awesome R&amp;D projects related to Silverlight, ASP.NET MVC, Mono, etc. Lots of material to be turned into useful articles.</p>
<p>During this week there will be an additional announcement for the next big thing from my side &#8211; Masonry. That is a starter kit for social-enabled extensible MVC4 applications that enters public preview and going to land into my <a title="Masonry" href="https://github.com/DenisVuyka/Masonry" target="_blank">GitHub</a> repository soon.</p>
<p>More information and posts are on the way.</p>
<p>Thanks for following me.</p><br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/denisvuyka.wordpress.com/340/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/denisvuyka.wordpress.com/340/" /></a> <img alt="" border="0" src="https://pixel.wp.com/b.gif?host=denisvuyka.wordpress.com&#038;blog=4724773&#038;post=340&#038;subd=denisvuyka&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>https://denisvuyka.wordpress.com/2012/11/20/im-back-to-blogging/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/032cdef00bc6c528b24517b137c97660?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Denis</media:title>
		</media:content>
	</item>
		<item>
		<title>IL.View October 2011 Features.</title>
		<link>https://denisvuyka.wordpress.com/2011/11/01/il-view-october-2011-features/</link>
		<comments>https://denisvuyka.wordpress.com/2011/11/01/il-view-october-2011-features/#respond</comments>
		<pubDate>Tue, 01 Nov 2011 20:17:05 +0000</pubDate>
		<dc:creator><![CDATA[Denys Vuika]]></dc:creator>
				<category><![CDATA[.NET]]></category>

		<guid isPermaLink="false">http://denisvuyka.wordpress.com/?p=324</guid>
		<description><![CDATA[October 2011 was a very busy month for IL.View in terms of new features  introduced. The major features that are worth mentioning in this recap is as following: Automatic updates for OOB (out-of-browser) scenario Rich browsing for Silverlight packages (.xap files) Platform identifiers for assemblies Version numbers for assembly references Content preview for some file [&#8230;]<img alt="" border="0" src="https://pixel.wp.com/b.gif?host=denisvuyka.wordpress.com&#038;blog=4724773&#038;post=324&#038;subd=denisvuyka&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>October 2011 was a very busy month for IL.View in terms of new features  introduced.</p>
<p>The major features that are worth mentioning in this recap is as following:</p>
<ul>
<li>Automatic updates for OOB (out-of-browser) scenario</li>
<li>Rich browsing for Silverlight packages (.xap files)</li>
<li>Platform identifiers for assemblies</li>
<li>Version numbers for assembly references</li>
<li>Content preview for some file types (xml/xaml/ClientConfig/jpg/png)</li>
<li>Displaying and expanding embedded resource assemblies (for Silverlight assemblies only) by pressing Space bar</li>
<li>Preview of embedded resources (xml/xaml/ClientConfig/jpg/png) by pressing Space bar</li>
<li>User-defined reference paths for automatic assembly resolution (similar to Visual Studio &#8220;reference paths&#8221; feature)</li>
<li>Lot of stabilization and improvements for underlying infrastructures</li>
<li>New assembly versioning schema based on &#8220;YYYY.MM.DD.{Build}&#8221; format</li>
</ul>
<h2><strong>Automatic Updates</strong></h2>
<p>Live preview builds that are continuously  pushed to the <a title="IL.View Project Page" href="denisvuyka.github.com/IL.View" target="_blank">project page</a> got support for automatic updates. Users that are using the full-trust OOB (out-of-browser) scenario will get the application up-to-date automatically upon every launch.</p>
<h2>Browsing Silverlight Packages</h2>
<div>IL.View now provides rich capabilities for browsing Silverlight packages (&#8220;.xap&#8221; files). Users are now able to drag and drop &#8220;.xap&#8221; package directly onto the application surface and view package contents. Package browsing includes full support for content and assembly navigation in the same way it is done for a regular assembly.</div>
<div><a href="https://denisvuyka.files.wordpress.com/2011/11/image01_xapbrowsing.png"><img data-attachment-id="326" data-permalink="https://denisvuyka.wordpress.com/2011/11/01/il-view-october-2011-features/image01_xapbrowsing/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2011/11/image01_xapbrowsing.png?w=800" data-orig-size="328,216" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="Image01_XapBrowsing" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2011/11/image01_xapbrowsing.png?w=800?w=300" data-large-file="https://denisvuyka.files.wordpress.com/2011/11/image01_xapbrowsing.png?w=800?w=328" class="alignnone size-full wp-image-326" title="Image01_XapBrowsing" src="https://denisvuyka.files.wordpress.com/2011/11/image01_xapbrowsing.png?w=800" alt="Silverlight Package Browsing" srcset="https://denisvuyka.files.wordpress.com/2011/11/image01_xapbrowsing.png 328w, https://denisvuyka.files.wordpress.com/2011/11/image01_xapbrowsing.png?w=150 150w, https://denisvuyka.files.wordpress.com/2011/11/image01_xapbrowsing.png?w=300 300w" sizes="(max-width: 328px) 100vw, 328px"   /></a></div>
<div></div>
<h2>Platform identifiers for assemblies</h2>
<p>As application is moving forward having a single list of assemblies within the browser the platform identifiers were added to assembly names. Silverlight assemblies will be marked as &#8220;(SL)&#8221; while .NET assemblies will be marked as &#8220;.NET&#8221;. Later on identifiers will be extended to display the actual version of the corresponding framework.</p>
<p><a href="https://denisvuyka.files.wordpress.com/2011/11/image02_platformidentifiers.png"><img data-attachment-id="327" data-permalink="https://denisvuyka.wordpress.com/2011/11/01/il-view-october-2011-features/image02_platformidentifiers/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2011/11/image02_platformidentifiers.png?w=800" data-orig-size="326,167" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="Image02_PlatformIdentifiers" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2011/11/image02_platformidentifiers.png?w=800?w=300" data-large-file="https://denisvuyka.files.wordpress.com/2011/11/image02_platformidentifiers.png?w=800?w=326" class="alignnone size-full wp-image-327" title="Image02_PlatformIdentifiers" src="https://denisvuyka.files.wordpress.com/2011/11/image02_platformidentifiers.png?w=800" alt="Platform Identifiers" srcset="https://denisvuyka.files.wordpress.com/2011/11/image02_platformidentifiers.png 326w, https://denisvuyka.files.wordpress.com/2011/11/image02_platformidentifiers.png?w=150 150w, https://denisvuyka.files.wordpress.com/2011/11/image02_platformidentifiers.png?w=300 300w" sizes="(max-width: 326px) 100vw, 326px"   /></a></p>
<h2>Version numbers for assembly references</h2>
<p>To improve dependency analysis process the application provides version numbers for assembly references within the reference title. That allows to avoid unnecessary decompilation or assembly resolution calls when it is only the version of reference the user is interested in.</p>
<p><a href="https://denisvuyka.files.wordpress.com/2011/11/image03_referenceversionnumbers.png"><img data-attachment-id="328" data-permalink="https://denisvuyka.wordpress.com/2011/11/01/il-view-october-2011-features/image03_referenceversionnumbers/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2011/11/image03_referenceversionnumbers.png?w=800" data-orig-size="466,437" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="Image03_ReferenceVersionNumbers" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2011/11/image03_referenceversionnumbers.png?w=800?w=300" data-large-file="https://denisvuyka.files.wordpress.com/2011/11/image03_referenceversionnumbers.png?w=800?w=466" class="alignnone size-full wp-image-328" title="Image03_ReferenceVersionNumbers" src="https://denisvuyka.files.wordpress.com/2011/11/image03_referenceversionnumbers.png?w=800" alt="Version numbers for assembly references" srcset="https://denisvuyka.files.wordpress.com/2011/11/image03_referenceversionnumbers.png 466w, https://denisvuyka.files.wordpress.com/2011/11/image03_referenceversionnumbers.png?w=150 150w, https://denisvuyka.files.wordpress.com/2011/11/image03_referenceversionnumbers.png?w=300 300w" sizes="(max-width: 466px) 100vw, 466px"   /></a></p>
<h2>Content Preview</h2>
<p>It is now possible to view the content of the files that are frequently added to the &#8220;.xap&#8221; files. IL.View provides support to show xml-based files (xml, xaml, ClientConfig) with syntax colouring:</p>
<p><a href="https://denisvuyka.files.wordpress.com/2011/11/image04_contentpreview_xaml.png"><img data-attachment-id="329" data-permalink="https://denisvuyka.wordpress.com/2011/11/01/il-view-october-2011-features/image04_contentpreview_xaml/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2011/11/image04_contentpreview_xaml.png?w=800" data-orig-size="749,503" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="Image04_ContentPreview_xaml" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2011/11/image04_contentpreview_xaml.png?w=800?w=300" data-large-file="https://denisvuyka.files.wordpress.com/2011/11/image04_contentpreview_xaml.png?w=800?w=749" class="alignnone size-full wp-image-329" title="Image04_ContentPreview_xaml" src="https://denisvuyka.files.wordpress.com/2011/11/image04_contentpreview_xaml.png?w=800" alt="Content Preview of xml-based files" srcset="https://denisvuyka.files.wordpress.com/2011/11/image04_contentpreview_xaml.png 749w, https://denisvuyka.files.wordpress.com/2011/11/image04_contentpreview_xaml.png?w=150 150w, https://denisvuyka.files.wordpress.com/2011/11/image04_contentpreview_xaml.png?w=300 300w" sizes="(max-width: 749px) 100vw, 749px"   /></a></p>
<div> It is also possible to preview the content of image files in the formats supported by Silverlight (.png and .jpg). Images are displayed in real sizes.</div>
<div><a href="https://denisvuyka.files.wordpress.com/2011/11/image05_contentpreview_png.png"><img data-attachment-id="330" data-permalink="https://denisvuyka.wordpress.com/2011/11/01/il-view-october-2011-features/image05_contentpreview_png/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2011/11/image05_contentpreview_png.png?w=800" data-orig-size="743,497" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="Image05_ContentPreview_png" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2011/11/image05_contentpreview_png.png?w=800?w=300" data-large-file="https://denisvuyka.files.wordpress.com/2011/11/image05_contentpreview_png.png?w=800?w=743" class="alignnone size-full wp-image-330" title="Image05_ContentPreview_png" src="https://denisvuyka.files.wordpress.com/2011/11/image05_contentpreview_png.png?w=800" alt="Content preview for image files" srcset="https://denisvuyka.files.wordpress.com/2011/11/image05_contentpreview_png.png 743w, https://denisvuyka.files.wordpress.com/2011/11/image05_contentpreview_png.png?w=150 150w, https://denisvuyka.files.wordpress.com/2011/11/image05_contentpreview_png.png?w=300 300w" sizes="(max-width: 743px) 100vw, 743px"   /></a></div>
<div></div>
<h2>Browsing embedded resource assemblies</h2>
<p>October version of IL.View brings out support for embedded resource assemblies navigation. This feature is however limited to only Silverlight assemblies. A new node called &#8220;Resources&#8221; will appear next to every main module of the assembly. Resource assemblies can be expanded like regular assemblies and their xml/image-based content can be previewed by pressing a Space bar on the selected item.</p>
<p><a href="https://denisvuyka.files.wordpress.com/2011/11/image06_embeddedresources.png"><img data-attachment-id="331" data-permalink="https://denisvuyka.wordpress.com/2011/11/01/il-view-october-2011-features/image06_embeddedresources/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2011/11/image06_embeddedresources.png?w=800" data-orig-size="874,501" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="Image06_EmbeddedResources" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2011/11/image06_embeddedresources.png?w=800?w=300" data-large-file="https://denisvuyka.files.wordpress.com/2011/11/image06_embeddedresources.png?w=800?w=800" class="size-full wp-image-331 alignnone" title="Image06_EmbeddedResources" src="https://denisvuyka.files.wordpress.com/2011/11/image06_embeddedresources.png?w=800" alt="Browsing embedded resources" srcset="https://denisvuyka.files.wordpress.com/2011/11/image06_embeddedresources.png?w=800 800w, https://denisvuyka.files.wordpress.com/2011/11/image06_embeddedresources.png?w=150 150w, https://denisvuyka.files.wordpress.com/2011/11/image06_embeddedresources.png?w=300 300w, https://denisvuyka.files.wordpress.com/2011/11/image06_embeddedresources.png?w=768 768w, https://denisvuyka.files.wordpress.com/2011/11/image06_embeddedresources.png 874w" sizes="(max-width: 800px) 100vw, 800px"   /></a></p>
<h2> Reference Paths</h2>
<p>Application now provides a way to define common reference paths that should be used for assembly lookup during decompilation and reference resolution. There will be a new options panel called &#8220;Reference Paths&#8221; within the &#8220;Settings&#8221; page. The user is able to add or remove a path to any directory containing .NET or Silverlight assemblies that needs to be checked during decompilation process. Every single reference path can be configured to use recursive search, meaning that the entire folder tree (including all sub-folders) is going to be inspected. However recursive search is a time consuming event and users discouraged to use it against deep nested folders.</p>
<p>Every time an external assembly is found the path to the file is cached. This gives much better performance during next sessions.</p>
<p><a href="https://denisvuyka.files.wordpress.com/2011/11/image07_referencepaths.png"><img data-attachment-id="336" data-permalink="https://denisvuyka.wordpress.com/2011/11/01/il-view-october-2011-features/image07_referencepaths/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2011/11/image07_referencepaths.png?w=800" data-orig-size="749,412" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="Image07_ReferencePaths" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2011/11/image07_referencepaths.png?w=800?w=300" data-large-file="https://denisvuyka.files.wordpress.com/2011/11/image07_referencepaths.png?w=800?w=749" class="alignnone size-full wp-image-336" title="Image07_ReferencePaths" src="https://denisvuyka.files.wordpress.com/2011/11/image07_referencepaths.png?w=800" alt="Reference Paths" srcset="https://denisvuyka.files.wordpress.com/2011/11/image07_referencepaths.png 749w, https://denisvuyka.files.wordpress.com/2011/11/image07_referencepaths.png?w=150 150w, https://denisvuyka.files.wordpress.com/2011/11/image07_referencepaths.png?w=300 300w" sizes="(max-width: 749px) 100vw, 749px"   /></a></p>
<p>This feature is however limited to full-trust mode running on Windows machines. &#8220;Reference Paths&#8221; section won&#8217;t be displayed when running IL.View on non-Windows computers (i.e. MacOs).</p>
<h2>New Versioning Schema</h2>
<p>New assembly versioning schema was applied based on &#8220;YYYY.MM.DD.{Build}&#8221; format. The version number can now be checked at the &#8220;About&#8221; page:</p>
<p><a href="https://denisvuyka.files.wordpress.com/2011/11/image08_versioningschema.png"><img data-attachment-id="337" data-permalink="https://denisvuyka.wordpress.com/2011/11/01/il-view-october-2011-features/image08_versioningschema/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2011/11/image08_versioningschema.png?w=800" data-orig-size="476,245" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="Image08_VersioningSchema" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2011/11/image08_versioningschema.png?w=800?w=300" data-large-file="https://denisvuyka.files.wordpress.com/2011/11/image08_versioningschema.png?w=800?w=476" class="alignnone size-full wp-image-337" title="Image08_VersioningSchema" src="https://denisvuyka.files.wordpress.com/2011/11/image08_versioningschema.png?w=800" alt="Versioning Schema" srcset="https://denisvuyka.files.wordpress.com/2011/11/image08_versioningschema.png 476w, https://denisvuyka.files.wordpress.com/2011/11/image08_versioningschema.png?w=150 150w, https://denisvuyka.files.wordpress.com/2011/11/image08_versioningschema.png?w=300 300w" sizes="(max-width: 476px) 100vw, 476px"   /></a></p>
<p>Besides new features there was a lot of stabilization work performed.</p>
<p>More and more features are being registered within the <a href="https://github.com/DenisVuyka/IL.View/issues?sort=created&amp;direction=desc&amp;state=open" target="_blank">issue tracking system</a>.</p><br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/denisvuyka.wordpress.com/324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/denisvuyka.wordpress.com/324/" /></a> <img alt="" border="0" src="https://pixel.wp.com/b.gif?host=denisvuyka.wordpress.com&#038;blog=4724773&#038;post=324&#038;subd=denisvuyka&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>https://denisvuyka.wordpress.com/2011/11/01/il-view-october-2011-features/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/032cdef00bc6c528b24517b137c97660?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Denis</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2011/11/image01_xapbrowsing.png" medium="image">
			<media:title type="html">Image01_XapBrowsing</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2011/11/image02_platformidentifiers.png" medium="image">
			<media:title type="html">Image02_PlatformIdentifiers</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2011/11/image03_referenceversionnumbers.png" medium="image">
			<media:title type="html">Image03_ReferenceVersionNumbers</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2011/11/image04_contentpreview_xaml.png" medium="image">
			<media:title type="html">Image04_ContentPreview_xaml</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2011/11/image05_contentpreview_png.png" medium="image">
			<media:title type="html">Image05_ContentPreview_png</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2011/11/image06_embeddedresources.png" medium="image">
			<media:title type="html">Image06_EmbeddedResources</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2011/11/image07_referencepaths.png" medium="image">
			<media:title type="html">Image07_ReferencePaths</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2011/11/image08_versioningschema.png" medium="image">
			<media:title type="html">Image08_VersioningSchema</media:title>
		</media:content>
	</item>
		<item>
		<title>IL.View beta builds are now available online</title>
		<link>https://denisvuyka.wordpress.com/2011/10/27/il-view-beta-builds-are-now-available-online/</link>
		<comments>https://denisvuyka.wordpress.com/2011/10/27/il-view-beta-builds-are-now-available-online/#comments</comments>
		<pubDate>Thu, 27 Oct 2011 16:36:54 +0000</pubDate>
		<dc:creator><![CDATA[Denys Vuika]]></dc:creator>
				<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[Cecil]]></category>
		<category><![CDATA[Reflector]]></category>

		<guid isPermaLink="false">http://denisvuyka.wordpress.com/?p=319</guid>
		<description><![CDATA[Today I&#8217;m glad to announce that thanks to Github &#8220;project pages&#8221; feature I am able to host beta builds of &#8220;IL.View&#8221; that can be consumed both in browswer and out of browser. You can browse and/or install IL.View by navigating this link: http://denisvuyka.github.com/IL.View &#160; What&#8217;s new in the deployed build: I have added an experimental support [&#8230;]<img alt="" border="0" src="https://pixel.wp.com/b.gif?host=denisvuyka.wordpress.com&#038;blog=4724773&#038;post=319&#038;subd=denisvuyka&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Today I&#8217;m glad to announce that thanks to Github &#8220;project pages&#8221; feature I am able to host beta builds of &#8220;IL.View&#8221; that can be consumed both in browswer and out of browser.</p>
<p>You can browse and/or install IL.View by navigating this link: <a href="http://denisvuyka.github.com/IL.View" target="_blank">http://denisvuyka.github.com/IL.View</a></p>
<p>&nbsp;</p>
<p><strong>What&#8217;s new in the deployed build:</strong></p>
<p>I have added an experimental support for Silverlight &#8220;.xap&#8221; packages. It will be possible to drop a &#8220;.xap&#8221; file onto IL.View surface and navigate it&#8217;s content within assembly browser like shown below:</p>
<p><a href="https://denisvuyka.files.wordpress.com/2011/10/ilviewxapsupport.png"><img data-attachment-id="320" data-permalink="https://denisvuyka.wordpress.com/2011/10/27/il-view-beta-builds-are-now-available-online/ilviewxapsupport/#main" data-orig-file="https://denisvuyka.files.wordpress.com/2011/10/ilviewxapsupport.png?w=800" data-orig-size="820,642" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="ILViewXapSupport" data-image-description="" data-medium-file="https://denisvuyka.files.wordpress.com/2011/10/ilviewxapsupport.png?w=800?w=300" data-large-file="https://denisvuyka.files.wordpress.com/2011/10/ilviewxapsupport.png?w=800?w=800" class="alignnone size-full wp-image-320" title="ILViewXapSupport" src="https://denisvuyka.files.wordpress.com/2011/10/ilviewxapsupport.png?w=800" alt="" srcset="https://denisvuyka.files.wordpress.com/2011/10/ilviewxapsupport.png?w=800 800w, https://denisvuyka.files.wordpress.com/2011/10/ilviewxapsupport.png?w=150 150w, https://denisvuyka.files.wordpress.com/2011/10/ilviewxapsupport.png?w=300 300w, https://denisvuyka.files.wordpress.com/2011/10/ilviewxapsupport.png?w=768 768w, https://denisvuyka.files.wordpress.com/2011/10/ilviewxapsupport.png 820w" sizes="(max-width: 800px) 100vw, 800px"   /></a></p>
<p>Just have to note that the implementation of &#8220;.xap&#8221; browsing is in its early stage and is not feature complete.</p>
<p><strong>What&#8217;s on the way:</strong></p>
<p>Many features related to MEF framework. I&#8217;m a greatest fan of MEF and use it every day in the production. There&#8217;s some tooling that I would like to integrate into IL.View like displaying all the MEF imports/exports for the particular assembly, etc. More content viewers are pending (xaml/xml, images, etc.)</p>
<p><strong>Suggestions, issues and feedbacks?</strong></p>
<p>I would really appreciate to get them registered here: <a href="https://github.com/DenisVuyka/IL.View/issues?sort=created&amp;direction=desc&amp;state=open" target="_blank">IL.View Issues</a></p><br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/denisvuyka.wordpress.com/319/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/denisvuyka.wordpress.com/319/" /></a> <img alt="" border="0" src="https://pixel.wp.com/b.gif?host=denisvuyka.wordpress.com&#038;blog=4724773&#038;post=319&#038;subd=denisvuyka&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>https://denisvuyka.wordpress.com/2011/10/27/il-view-beta-builds-are-now-available-online/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/032cdef00bc6c528b24517b137c97660?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Denis</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2011/10/ilviewxapsupport.png" medium="image">
			<media:title type="html">ILViewXapSupport</media:title>
		</media:content>
	</item>
		<item>
		<title>IL.View: .NET Reflector OSS Alternative. In Silverlight!</title>
		<link>https://denisvuyka.wordpress.com/2011/04/27/il-view-net-reflector-oss-alternative-in-silverlight/</link>
		<comments>https://denisvuyka.wordpress.com/2011/04/27/il-view-net-reflector-oss-alternative-in-silverlight/#comments</comments>
		<pubDate>Wed, 27 Apr 2011 09:59:00 +0000</pubDate>
		<dc:creator><![CDATA[Denys Vuika]]></dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Cecil]]></category>
		<category><![CDATA[Mono]]></category>
		<category><![CDATA[Reflector]]></category>

		<guid isPermaLink="false">http://denisvuyka.wordpress.com/2011/04/27/il-view-net-reflector-oss-alternative-in-silverlight/</guid>
		<description><![CDATA[Today I would like to announce a new project I’ve been working on to contribute to the .NET community. The project is called “IL.View” and it is a .NET Reflector alternative made in Silverlight 4 as an Out-of-Browser Silverlight Application. “IL.View” sources will be published under the MIT (X11) license to the following GitHub repository [&#8230;]<img alt="" border="0" src="https://pixel.wp.com/b.gif?host=denisvuyka.wordpress.com&#038;blog=4724773&#038;post=310&#038;subd=denisvuyka&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Today I would like to announce a new project I’ve been working on to contribute to the .NET community.</p>
<p>The project is called “<strong>IL.View</strong>” and it is a .NET Reflector alternative made in <strong>Silverlight 4</strong> as an Out-of-Browser Silverlight Application. “IL.View” sources will be published under the MIT (X11) license to the following <strong><a href="https://github.com/DenisVuyka/IL.View" target="_blank">GitHub</a></strong> repository in the next couple of hours. As soon as Google fixes <a href="http://code.google.com/p/googleappengine/issues/detail?id=4838" target="_blank">“If-Modified-Since” bug</a> the online version of “IL.View” will hopefully become immediately available with “Google App Engine”.</p>
<p><a href="https://denisvuyka.files.wordpress.com/2011/04/image.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-color:initial;border-style:initial;border-width:0;" title="image" src="https://denisvuyka.files.wordpress.com/2011/04/image_thumb.png?w=649&#038;h=447" alt="image" width="649" height="447" border="0" /></a></p>
<h3></h3>
<h3>Background</h3>
<p>I’ve started planning this project approximately 2 weeks before infamous Red Gate <a href="http://www.red-gate.com/products/dotnet-development/reflector/announcement" target="_blank">announcement</a> that “.NET Reflector” goes commercial way and so approximately 2 weeks before an awesome OSS alternative appeared: <a href="http://wiki.sharpdevelop.net/ilspy.ashx" target="_blank"><strong>ILSpy</strong></a><strong>. </strong>So “IL.View” background is not an emotional move and is not going to be abandoned with the ILSpy arrival (like <a href="https://github.com/jcdickinson/Monoflector" target="_blank">Monoflector</a> for instance).</p>
<p>I am a Silverlight developer and my team does a lot of really crazy stuff related to Silverlight, Azure, REST and OData. During the “demo” and “testing” periods we have to deal with publishing a lot – different versions of Windows Servers, various IIS versions, different .NET frameworks at server sides, multiple remote desktops and issue addressing, etc.</p>
<p>One of the issues I’ve experienced in the past (and according to Google I’m not alone with that) is the process of brining .NET Reflector to server side in order to have a quick look at my assemblies. You should be able to download it from somewhere for every server (of course if you have rights to download and install anything), you need to have a proper .NET Framework installed on server side (Reflector itself requires .NET 3.5 or later to be present), etc.</p>
<p>Actually the very same problem may be valid for <strong>ILSpy</strong> as well. If it is compiled for .NET 4.0 framework you cannot use it at server having .NET 3.x only. So the idea of having a Silverlight version hosted in the company intranet (or in the cloud) was very appealing as it could save time and reduce efforts.</p>
<p>Another feature I was dreaming of is “Remote Assembly Cache” or the possibility to decompile .NET assembly without binding to local machine – even without having any .NET framework installed at all. For example having a remote web service (pure REST, OData, whatever) to resolve .NET dependencies upon being needed. This could open a brand new set of scenarios for me. Having no bindings to local machine could for example allow Mac users to disassemble .NET assemblies easily and drilling down to “mscorlib” or any other part of .NET framework without difficulties (this feature is in progress for “IL.VIew” and will be available later on).</p>
<p>Third major feature I was trying to address is extensibility. NET Reflector always deserved better extensibility support and more complex addins from both code and presentation points of view.</p>
<h3></h3>
<h3>Overview</h3>
<p>As I’ve mentioned above “IL.View” is an OOB (Out-of-browser) Silverlight 4 application (Full Trust). It supports drag and drop for .NET assemblies from the desktop or Windows Explorer and provides a local cache of assemblies that were loaded (with the possibility extending the cache manually). “Assembly Browser” control supports “lazy loading” so you get disassembling process on demand. There’s a native “IL” formatting and “C#” one (in progress).</p>
<p>There are several ways “IL.View” can be deployed and used:</p>
<ul>
<li>Online (cloud, web site)</li>
<li>On-premise (intranet)</li>
<li>Local installation</li>
</ul>
<ul>Some features that are in progress will allow “IL.View” users to get maximum benefit of both cloud and on-premise deployments.</ul>
<h4>Mono.Cecil</h4>
<p>“IL.View” is not using .NET Reflection. It is being build on the top of Silverlight port of “<strong><a href="https://github.com/jbevain/cecil" target="_blank">Mono.Cecil</a></strong>”. This is a tremendous project and I would like to thank <a href="https://github.com/jbevain" target="_blank"><strong>Jb Evain</strong></a><strong> </strong>for his work. Thanks to Cecil I got an opportunity dealing with both .NET and Silverlight assembly inspection within Silverlight runtime.</p>
<p>Despite the asynchronous nature of Silverlight the Cecil integration went well. “IL.View” provides its own dependency resolution facility that is capable of properly locking the UI and waiting for the user to perform actions:</p>
<p><a href="https://denisvuyka.files.wordpress.com/2011/04/snaghtml103147e.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-color:initial;border-style:initial;border-width:0;margin:0;" title="SNAGHTML103147e" src="https://denisvuyka.files.wordpress.com/2011/04/snaghtml103147e_thumb.png?w=638&#038;h=463" alt="SNAGHTML103147e" width="638" height="463" border="0" /></a></p>
<p><a href="https://denisvuyka.files.wordpress.com/2011/04/snaghtml14fc8c1.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-color:initial;border-style:initial;border-width:0;margin:0;" title="SNAGHTML14fc8c1" src="https://denisvuyka.files.wordpress.com/2011/04/snaghtml14fc8c1_thumb.png?w=638&#038;h=463" alt="SNAGHTML14fc8c1" width="638" height="463" border="0" /></a></p>
<h4></h4>
<h4></h4>
<h4>ICSharpCode Decompiler and NRefactory for Silverlight</h4>
<p>The biggest challenge for me was “<strong>C#</strong>” output support. Not to reinvent a wheel I’ve decided to stick to <strong>ICSharpCode.Decompiler</strong> and <strong>ICSharpCode.NRefactory</strong> projects that are the part of <strong>ILSpy</strong>.  The only problem I came across is the absence of Silverlight ports for the mentioned projects. So I’ve took the challenge to port them to Silverlight myself. You can find the sources at my <a href="https://github.com/DenisVuyka/ILSpy" target="_blank">GitHub repository</a>. First attempts were quite tricky, but thanks to the ILSpy team the original codebase becomes more and more “portable-friendly”.</p>
<p>As a result I have managed to provide C# output based on ILSpy libraries:</p>
<p><a href="https://denisvuyka.files.wordpress.com/2011/04/image1.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-color:initial;border-style:initial;border-width:0;margin:0;" title="image" src="https://denisvuyka.files.wordpress.com/2011/04/image_thumb1.png?w=733&#038;h=432" alt="image" width="733" height="432" border="0" /></a></p>
<h4></h4>
<h4>JetPack Theme</h4>
<p>“IL.View” UI is based on the great “<strong><a href="http://timheuer.com/blog/archive/2010/09/09/silverlight-jetpack-theme-released.aspx" target="_blank">JetPack Theme</a></strong>”. However I had to provide a set of bugfixes for templates and styles in order to make some of the components look properly and behave as expected.</p>
<h3></h3>
<h3>Notes</h3>
<p>The project is still in its early stage but is going to evolve rapidly. There’s a huge backlog of features and roadmap will be announced later on. “IL.View” does not compete with <strong>ILSpy</strong> and I would love to contribute eventually to both .NET Reflector alternatives in the nearest future.</p><br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/denisvuyka.wordpress.com/310/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/denisvuyka.wordpress.com/310/" /></a> <img alt="" border="0" src="https://pixel.wp.com/b.gif?host=denisvuyka.wordpress.com&#038;blog=4724773&#038;post=310&#038;subd=denisvuyka&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>https://denisvuyka.wordpress.com/2011/04/27/il-view-net-reflector-oss-alternative-in-silverlight/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/032cdef00bc6c528b24517b137c97660?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Denis</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2011/04/image_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2011/04/snaghtml103147e_thumb.png" medium="image">
			<media:title type="html">SNAGHTML103147e</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2011/04/snaghtml14fc8c1_thumb.png" medium="image">
			<media:title type="html">SNAGHTML14fc8c1</media:title>
		</media:content>

		<media:content url="http://denisvuyka.files.wordpress.com/2011/04/image_thumb1.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
	</channel>
</rss>
