<?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/"
	>

<channel>
	<title>Intersoft Solutions Corporate Blog &#187; General</title>
	<atom:link href="http://blog.intersoftsolutions.com/category/general/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.intersoftsolutions.com</link>
	<description>All about development productivity – ASP.NET, Silverlight, WPF, iOS, Android, Windows Phone, Windows 8</description>
	<lastBuildDate>Sat, 21 Apr 2018 06:57:13 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=4.2.33</generator>
	<item>
		<title>Premier Studio 2017 is here.</title>
		<link>http://blog.intersoftsolutions.com/2017/07/premier-studio-2017-is-here/</link>
		<comments>http://blog.intersoftsolutions.com/2017/07/premier-studio-2017-is-here/#comments</comments>
		<pubDate>Mon, 03 Jul 2017 13:03:55 +0000</pubDate>
		<dc:creator><![CDATA[Jimmy Petrus]]></dc:creator>
				<category><![CDATA[2017]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Products]]></category>
		<category><![CDATA[Announcement]]></category>
		<category><![CDATA[New Release]]></category>
		<category><![CDATA[Premier Studio]]></category>

		<guid isPermaLink="false">http://blog.intersoftsolutions.com/?p=8216</guid>
		<description><![CDATA[Today we&#8217;re excited to announce the general availability of Premier Studio 2017, our latest and most advanced development toolset for web, desktop, and cross-platform mobile development. This release packed-in numerous important updates across all platform lineups since the last year&#8217;s release. One noteworthy milestone is [...]]]></description>
				<content:encoded><![CDATA[<p>Today we&#8217;re excited to announce the general availability of Premier Studio 2017, our latest and most advanced development toolset for web, desktop, and cross-platform mobile development.</p>
<p>This release packed-in numerous important updates across all platform lineups since the last year&#8217;s release. One noteworthy milestone is the full support for Visual Studio 2017 (all editions), bringing in the toolbox, project and item templates, designers and editors, extensions, and get started wizards.</p>
<p><img class="alignnone size-large wp-image-8223" src="http://blog.intersoftsolutions.com/wp-content/uploads/2017/07/WebUI-VS-2017-1024x733.png" alt="WebUI &amp; Visual Studio 2017" width="700" /></p>
<p>Furthermore, this release shipped cumulative updates for WebUI lineups, particularly improved standards compliance and support for latest major browsers such as Chrome 58, Firefox 54, and Safari 10. Several flagship components such as WebGrid Enterprise and WebCombo have received major improvements in client-side data access and templating. Specifically, a new extensible binding foundation has been built, allowing these data powerhorse to be used in conjunction with next-generation templating frameworks that we will introduce in the near future. Finally, with significant reliability updates committed so far, we made sure this release to be most stable Premier Studio release yet, perfectly balancing the major innovations we set forth in previous release.</p>
<p><img class="alignnone size-large wp-image-8226" src="http://blog.intersoftsolutions.com/wp-content/uploads/2017/07/live-samples-1024x698.png" alt="Live Samples" width="700"  /></p>
<p>As for the Crosslight lineup, we will be making it as a separate update through the NuGet channels, so you won&#8217;t find the latest bits in the 2017 installer. There are really a lot of exciting stuff that the team has worked on since the last release, with 1000+ commits and counting so far. It&#8217;s truly an over-delivery this time as we&#8217;re adding new scopes to <a href="http://developer.intersoftsolutions.com/display/crosslight/Crosslight+Roadmap">our roadmap</a> such as Nougat support, transition to Firebase Cloud Messaging, and more. We&#8217;ll keep you posted when the bits is available in NuGet.</p>
<p>Last but not least, the 2017 release is free to download for all customers with active subscriptions. Simply login to your <a href="http://intersoftsolutions.com/account">Intersoft account</a> to start downloading. Enjoy and have fun building your next big apps!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.intersoftsolutions.com/2017/07/premier-studio-2017-is-here/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Great News for Crosslight Developers!</title>
		<link>http://blog.intersoftsolutions.com/2016/04/great-news-for-crosslight-developers/</link>
		<comments>http://blog.intersoftsolutions.com/2016/04/great-news-for-crosslight-developers/#comments</comments>
		<pubDate>Mon, 11 Apr 2016 08:58:15 +0000</pubDate>
		<dc:creator><![CDATA[Nicholas Lie]]></dc:creator>
				<category><![CDATA[2016 R1]]></category>
		<category><![CDATA[announcement]]></category>
		<category><![CDATA[Crosslight]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://blog.intersoftsolutions.com/?p=8001</guid>
		<description><![CDATA[In light of Microsoft&#8217;s Build Event 2016 last week, Microsoft has officially announced partnership with Xamarin on March 2016, making Xamarin accessible to even more mobile developers across the world. What&#8217;s great about this partnership is that Xamarin&#8217;s price has been significantly reduced from $1000/developer/platform/year to [...]]]></description>
				<content:encoded><![CDATA[<img width="604" height="270" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/04/vs-xamarin-604x270.png" class="attachment-post-thumbnail wp-post-image" alt="vs+xamarin" style="float:right; margin:0 0 10px 10px;" /><p>In light of <a href="https://build.microsoft.com" target="_blank">Microsoft&#8217;s Build Event 2016</a> last week, Microsoft has officially announced partnership with Xamarin on <a href="https://blog.xamarin.com/xamarin-for-all" target="_blank">March 2016</a>, making Xamarin accessible to even more mobile developers across the world.</p>
<p><img class="aligncenter size-full wp-image-8027" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/04/vs-xamarin.png" alt="vs+xamarin.png" width="1308" height="609" /></p>
<p>What&#8217;s great about this partnership is that Xamarin&#8217;s price has been significantly reduced from $1000/developer/platform/year to absolutely <strong>FREE</strong>. This is a huge news for us and it effectively reduces Crosslight&#8217;s subscription price to a total of <strong>$999</strong>, from $2,999 (including Xamarin). A whopping <strong>66.66%</strong> reduction in total cost.</p>
<p>Our years of investing in Xamarin technologies have finally paid off and now you can easily build mobile apps with even faster than ever, thanks to Crosslight. Built on top of Xamarin&#8217;s technologies, Crosslight bridges the gaps between Xamarin.iOS and Xamarin.Android, effectively allowing 100% business logic code sharing with strong MVVM patterns.</p>
<p><img class="alignnone size-full wp-image-8038" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/04/crosslight-architecture.png" alt="crosslight-architecture.png" width="1200" height="988" /></p>
<p class="p1"><span class="s1">Leveraging extensible architecture, MVVM design pattern and integration with Xamarin Platforms, Crosslight lets you easily build powerful iOS, Android and Windows native apps with a common application codebase including domain model, data access, and user interaction logic. And that&#8217;s nearly 96% of your project&#8217;s codebase. Built with cutting-edge portable framework and MVVM pattern, Crosslight lets you build cross-platform mobile apps by leveraging the programming skills and tools you loved – such as C#, MVVM, .NET and Visual Studio. Key features include:</span></p>
<ul class="ul1">
<li class="li1"><span class="s1">Comprehensive and advanced mobile frameworks leveraging MVVM design pattern</span></li>
<li class="li1"><span class="s1">Build native iOS, Android, Windows Phone 8 and Windows 8 apps with a single application codebase</span></li>
<li class="li1"><span class="s1">Elegant, developer-friendly API based on platform standards</span></li>
<li class="li1"><span class="s1">Universal data management with automatic binding</span></li>
<li class="li1"><span class="s1">Streamlined navigation services supporting push, modal and nested navigation mode</span></li>
<li class="li1"><span class="s1">Rich form builder with 20+ pre-built editors</span></li>
<li class="li1"><span class="s1">Highly customizable editor controls ranging from auto resize textbox to image picker with camera support and more</span></li>
<li class="li1"><span class="s1">Comprehensive mobile services for business apps</span></li>
<li class="li1"><span class="s1">Native user experiences conforming to platform design guidelines</span></li>
<li class="li1"><span class="s1">Support Visual Studio 2012 and Xamarin Studio</span></li>
<li class="li1"><span class="s1">Integrated to Xamarin platforms with full AOT compliance</span></li>
<li class="li1"><span class="s1">Time-saving Project Wizard featuring 30+ templates variants supporting iOS, Android, Windows Phone 8 and Windows 8</span></li>
</ul>
<h3 class="p1"><span class="s1">Sample Code</span></h3>
<p class="p2">Display a button, then when clicked, show the number of taps. This is the default Xamarin&#8217;s cross-platform, single-view template.</p>
<h3 class="p2">Xamarin.iOS Code</h3>
<p>With Xamarin.iOS, the code is more event-based, handled in the ViewController level.</p>
<p><span style="font-family: Menlo;"> <span style="color: #009695;">using</span><span style="color: #333333;"> System</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">        </span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> UIKit</span><span style="color: #333333;">;</span></p>
<p><span style="color: #009695;">namespace</span><span style="color: #333333;"> XamarinCrossPlatform</span><span style="color: #333333;">.</span><span style="color: #333333;">iOS</span><br />
<span style="color: #333333;">{</span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">partial</span><span style="color: #333333;"> </span><span style="color: #009695;">class</span><span style="color: #333333;"> </span><span style="color: #3364a4;">ViewController</span><span style="color: #333333;"> </span><span style="color: #333333;">:</span><span style="color: #333333;"> </span><span style="color: #3364a4;">UIViewController</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">int</span><span style="color: #333333;"> </span><span style="color: #333333;">count</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">1</span><span style="color: #333333;">;</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #3364a4;">ViewController</span><span style="color: #333333;">(</span><span style="color: #3364a4;">IntPtr</span><span style="color: #333333;"> </span><span style="color: #333333;">handle</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">:</span><span style="color: #333333;"> </span><span style="color: #009695;">base</span><span style="color: #333333;">(</span><span style="color: #333333;">handle</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><span style="color: #333333;">        </span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">override</span><span style="color: #333333;"> </span><span style="color: #009695;">void</span><span style="color: #333333;"> </span><span style="color: #333333;">ViewDidLoad</span><span style="color: #333333;">()</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">base</span><span style="color: #333333;">.</span><span style="color: #333333;">ViewDidLoad</span><span style="color: #333333;">()</span><span style="color: #333333;">;</span></p>
<p><span style="color: #333333;">            </span><span style="font-style: italic; color: #888888;">//</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">Perform</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">any</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">additional</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">setup</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">after</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">loading</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">the</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">view</span><span style="font-style: italic; color: #888888;">,</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">typically</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">from</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">a</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">nib</span><span style="font-style: italic; color: #888888;">.</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">Button</span><span style="color: #333333;">.</span><span style="color: #333333;">AccessibilityIdentifier</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">myButton</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">Button</span><span style="color: #333333;">.</span><span style="color: #333333;">TouchUpInside</span><span style="color: #333333;"> </span><span style="color: #333333;">+=</span><span style="color: #333333;"> </span><span style="color: #009695;">delegate</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">                </span><span style="color: #009695;">var</span><span style="color: #333333;"> </span><span style="color: #333333;">title</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">string</span><span style="color: #333333;">.</span><span style="color: #333333;">Format</span><span style="color: #333333;">(</span><span style="color: #f57d00;">&#8220;</span><span style="color: #ff0000;">{</span><span style="color: #ff0000;">0</span><span style="color: #ff0000;">}</span><span style="color: #f57d00;"> </span><span style="color: #f57d00;">clicks</span><span style="color: #f57d00;">!</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #333333;">count</span><span style="color: #333333;">++</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">                </span><span style="color: #333333;">Button</span><span style="color: #333333;">.</span><span style="color: #333333;">SetTitle</span><span style="color: #333333;">(</span><span style="color: #333333;">title</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #3364a4;">UIControlState</span><span style="color: #333333;">.</span><span style="color: #333333;">Normal</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">}</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">override</span><span style="color: #333333;"> </span><span style="color: #009695;">void</span><span style="color: #333333;"> </span><span style="color: #333333;">DidReceiveMemoryWarning</span><span style="color: #333333;">()</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><span style="color: #333333;">        </span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">base</span><span style="color: #333333;">.</span><span style="color: #333333;">DidReceiveMemoryWarning</span><span style="color: #333333;">()</span><span style="color: #333333;">;</span><span style="color: #333333;">        </span><br />
<span style="color: #333333;">            </span><span style="font-style: italic; color: #888888;">//</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">Release</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">any</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">cached</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">data</span><span style="font-style: italic; color: #888888;">,</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">images</span><span style="font-style: italic; color: #888888;">,</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">etc</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">that</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">aren</span><span style="font-style: italic; color: #888888;">&#8216;</span><span style="font-style: italic; color: #888888;">t</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">in</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">use</span><span style="font-style: italic; color: #888888;">.</span><span style="font-style: italic; color: #888888;">    </span><span style="font-style: italic; color: #888888;">    </span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">}</span><br />
</span></p>
<p>And on Android,</p>
<p><span style="font-family: Menlo;"> <span style="color: #009695;">using</span><span style="color: #333333;"> Android</span><span style="color: #333333;">.</span><span style="color: #333333;">App</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Android</span><span style="color: #333333;">.</span><span style="color: #333333;">Widget</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Android</span><span style="color: #333333;">.</span><span style="color: #333333;">OS</span><span style="color: #333333;">;</span></p>
<p><span style="color: #009695;">namespace</span><span style="color: #333333;"> XamarinCrossPlatform</span><span style="color: #333333;">.</span><span style="color: #333333;">Droid</span><br />
<span style="color: #333333;">{</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">[</span><span style="color: #3364a4;">Activity</span><span style="color: #333333;">(</span><span style="color: #333333;">Label </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">XamarinCrossPlatform</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">,</span><span style="color: #333333;"> MainLauncher </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">true</span><span style="color: #333333;">,</span><span style="color: #333333;"> Icon </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">@mipmap</span><span style="color: #f57d00;">/</span><span style="color: #f57d00;">icon</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">)]</span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">class</span><span style="color: #333333;"> </span><span style="color: #3364a4;">MainActivity</span><span style="color: #333333;"> </span><span style="color: #333333;">:</span><span style="color: #333333;"> </span><span style="color: #3364a4;">Activity</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">int</span><span style="color: #333333;"> </span><span style="color: #333333;">count</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">1</span><span style="color: #333333;">;</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">protected</span><span style="color: #333333;"> </span><span style="color: #009695;">override</span><span style="color: #333333;"> </span><span style="color: #009695;">void</span><span style="color: #333333;"> </span><span style="color: #333333;">OnCreate</span><span style="color: #333333;">(</span><span style="color: #3364a4;">Bundle</span><span style="color: #333333;"> </span><span style="color: #333333;">savedInstanceState</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">base</span><span style="color: #333333;">.</span><span style="color: #333333;">OnCreate</span><span style="color: #333333;">(</span><span style="color: #333333;">savedInstanceState</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span></p>
<p><span style="color: #333333;">            </span><span style="font-style: italic; color: #888888;">//</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">Set</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">our</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">view</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">from</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">the</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;">main</span><span style="font-style: italic; color: #888888;">&#8220;</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">layout</span><span style="font-style: italic; color: #888888;"> resource</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">SetContentView</span><span style="color: #333333;">(</span><span style="color: #3364a4;">Resource</span><span style="color: #333333;">.</span><span style="color: #3364a4;">Layout</span><span style="color: #333333;">.</span><span style="color: #333333;">Main</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span></p>
<p><span style="color: #333333;">            </span><span style="font-style: italic; color: #888888;">//</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">Get</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">our</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">button</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">from</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">the</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">layout</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">resource</span><span style="font-style: italic; color: #888888;">,</span><br />
<span style="color: #333333;">            </span><span style="font-style: italic; color: #888888;">//</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">and</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">attach</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">an</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">event</span><span style="font-style: italic; color: #888888;"> </span><span style="font-style: italic; color: #888888;">to</span><span style="font-style: italic; color: #888888;"> it</span><br />
<span style="color: #333333;">            </span><span style="color: #3364a4;">Button</span><span style="color: #333333;"> </span><span style="color: #333333;">button</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #333333;">FindViewById</span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">Button</span><span style="color: #333333;">&gt;(</span><span style="color: #3364a4;">Resource</span><span style="color: #333333;">.</span><span style="color: #3364a4;">Id</span><span style="color: #333333;">.</span><span style="color: #333333;">myButton</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">            </span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">button</span><span style="color: #333333;">.</span><span style="color: #333333;">Click</span><span style="color: #333333;"> </span><span style="color: #333333;">+=</span><span style="color: #333333;"> </span><span style="color: #009695;">delegate</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">                </span><span style="color: #333333;">button</span><span style="color: #333333;">.</span><span style="color: #333333;">Text</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">string</span><span style="color: #333333;">.</span><span style="color: #333333;">Format</span><span style="color: #333333;">(</span><span style="color: #f57d00;">&#8220;</span><span style="color: #ff0000;">{</span><span style="color: #ff0000;">0</span><span style="color: #ff0000;">}</span><span style="color: #f57d00;"> </span><span style="color: #f57d00;">clicks</span><span style="color: #f57d00;">!</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #333333;">count</span><span style="color: #333333;">++</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">}</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">}</span><br />
</span></p>
<p>Which may lead to problems if you&#8217;re trying to centralize the business logic. Let&#8217;s compare this with Crosslight. With Crosslight, simply create a new ViewModel that will contain the centralized business logic, which will be bound to the View using BindingProvider. Here&#8217;s the ViewModel.</p>
<p><span style="font-family: Menlo;"> <span style="color: #009695;">using</span><span style="color: #333333;"> Intersoft</span><span style="color: #333333;">.</span><span style="color: #333333;">Crosslight</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Intersoft</span><span style="color: #333333;">.</span><span style="color: #333333;">Crosslight</span><span style="color: #333333;">.</span><span style="color: #333333;">Input</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Intersoft</span><span style="color: #333333;">.</span><span style="color: #333333;">Crosslight</span><span style="color: #333333;">.</span><span style="color: #333333;">ViewModels</span><span style="color: #333333;">;</span></p>
<p><span style="color: #009695;">namespace</span><span style="color: #333333;"> XamarinToCrosslight</span><br />
<span style="color: #333333;">{</span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">class</span><span style="color: #333333;"> </span><span style="color: #3364a4;">SimpleViewModel</span><span style="color: #333333;"> </span><span style="color: #333333;">:</span><span style="color: #333333;"> </span><span style="color: #3364a4;">ViewModelBase</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #3364a4;">SimpleViewModel</span><span style="color: #333333;">()</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">ButtonText</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">Hello</span><span style="color: #f57d00;"> </span><span style="color: #f57d00;">World</span><span style="color: #f57d00;">,</span><span style="color: #f57d00;"> </span><span style="color: #f57d00;">Click</span><span style="color: #f57d00;"> </span><span style="color: #f57d00;">Me</span><span style="color: #f57d00;">!</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">Count</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">0</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">ClickCommand</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">new</span><span style="color: #333333;"> </span><span style="color: #3364a4;">DelegateCommand</span><span style="color: #333333;">(</span><span style="color: #333333;">ExecuteClick</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">Title</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">XamarinToCrosslight</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">private</span><span style="color: #333333;"> </span><span style="color: #009695;">string</span><span style="color: #333333;"> </span><span style="color: #333333;">_buttonText</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">private</span><span style="color: #333333;"> </span><span style="color: #009695;">int</span><span style="color: #333333;"> </span><span style="color: #333333;">_count</span><span style="color: #333333;">;</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">string</span><span style="color: #333333;"> </span><span style="color: #333333;">ButtonText</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">get</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">                </span><span style="color: #009695;">return</span><span style="color: #333333;"> </span><span style="color: #333333;">_buttonText</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">set</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">                </span><span style="color: #009695;">if</span><span style="color: #333333;"> </span><span style="color: #333333;">(</span><span style="color: #333333;">_buttonText</span><span style="color: #333333;"> !</span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">value</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">                </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">                    </span><span style="color: #333333;">_buttonText</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">value</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">                    </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">OnPropertyChanged</span><span style="color: #333333;">(</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">ButtonText</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">                </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">int</span><span style="color: #333333;"> </span><span style="color: #333333;">Count</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">get</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">                </span><span style="color: #009695;">return</span><span style="color: #333333;"> </span><span style="color: #333333;">_count</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">set</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">                </span><span style="color: #009695;">if</span><span style="color: #333333;"> </span><span style="color: #333333;">(</span><span style="color: #333333;">_count</span><span style="color: #333333;"> !</span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">value</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">                </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">                    </span><span style="color: #333333;">_count</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #009695;">value</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">                    </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">OnPropertyChanged</span><span style="color: #333333;">(</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">Count</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">                </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #3364a4;">DelegateCommand</span><span style="color: #333333;"> </span><span style="color: #333333;">ClickCommand</span><span style="color: #333333;"> </span><span style="color: #333333;">{</span><span style="color: #333333;"> </span><span style="color: #009695;">get</span><span style="color: #333333;">;</span><span style="color: #333333;"> </span><span style="color: #009695;">set</span><span style="color: #333333;">;</span><span style="color: #333333;"> </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">void</span><span style="color: #333333;"> </span><span style="color: #333333;">ExecuteClick</span><span style="color: #333333;">(</span><span style="color: #009695;">object</span><span style="color: #333333;"> </span><span style="color: #333333;">parameter</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">ButtonText</span><span style="color: #333333;"> </span><span style="color: #333333;">=</span><span style="color: #333333;"> </span><span style="color: #333333;">++</span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">Count</span><span style="color: #333333;"> </span><span style="color: #333333;">+</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;"> </span><span style="color: #f57d00;">clicks</span><span style="color: #f57d00;">!</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">;</span><span style="color: #333333;">  </span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">}</span></span></p>
<p>And here&#8217;s the BindingProvider.</p>
<p><span style="font-family: Menlo;"> <span style="color: #009695;">using</span><span style="color: #333333;"> Intersoft</span><span style="color: #333333;">.</span><span style="color: #333333;">Crosslight</span><span style="color: #333333;">;</span></p>
<p><span style="color: #009695;">namespace</span><span style="color: #333333;"> XamarinToCrosslight</span><br />
<span style="color: #333333;">{</span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">class</span><span style="color: #333333;"> </span><span style="color: #3364a4;">SimpleBindingProvider</span><span style="color: #333333;"> </span><span style="color: #333333;">:</span><span style="color: #333333;"> </span><span style="color: #3364a4;">BindingProvider</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #c12dac;">#region</span><span style="color: #c12dac;"> Constructors</span></p>
<p><span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #3364a4;">SimpleBindingProvider</span><span style="color: #333333;">()</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">AddBinding</span><span style="color: #333333;">(</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">myButton</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #3364a4;">BindableProperties</span><span style="color: #333333;">.</span><span style="color: #333333;">TextProperty</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">ButtonText</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">            </span><span style="color: #009695;">this</span><span style="color: #333333;">.</span><span style="color: #333333;">AddBinding</span><span style="color: #333333;">(</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">myButton</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #3364a4;">BindableProperties</span><span style="color: #333333;">.</span><span style="color: #333333;">CommandProperty</span><span style="color: #333333;">,</span><span style="color: #333333;"> </span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">ClickCommand</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">)</span><span style="color: #333333;">;</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span></p>
<p><span style="color: #333333;">        </span><span style="color: #c12dac;">#endregion</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">}</span></span></p>
<p>Then, in iOS,</p>
<p><span style="font-family: Menlo;"> <span style="color: #009695;">using</span><span style="color: #333333;"> System</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> UIKit</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Intersoft</span><span style="color: #333333;">.</span><span style="color: #333333;">Crosslight</span><span style="color: #333333;">.</span><span style="color: #333333;">iOS</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Intersoft</span><span style="color: #333333;">.</span><span style="color: #333333;">Crosslight</span><span style="color: #333333;">;</span></p>
<p><span style="color: #009695;">namespace</span><span style="color: #333333;"> XamarinToCrosslight</span><span style="color: #333333;">.</span><span style="color: #333333;">iOS</span><br />
<span style="color: #333333;">{</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">[</span><span style="color: #3364a4;">Storyboard</span><span style="color: #333333;">(</span><span style="color: #f57d00;">&#8220;</span><span style="color: #f57d00;">Main</span><span style="color: #f57d00;">&#8220;</span><span style="color: #333333;">)]</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">[</span><span style="color: #3364a4;">ImportBinding</span><span style="color: #333333;">(</span><span style="color: #009695;">typeof</span><span style="color: #333333;">(</span><span style="color: #3364a4;">SimpleBindingProvider</span><span style="color: #333333;">))]</span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">partial</span><span style="color: #333333;"> </span><span style="color: #009695;">class</span><span style="color: #333333;"> </span><span style="color: #3364a4;">ViewController</span><span style="color: #333333;"> </span><span style="color: #333333;">:</span><span style="color: #333333;"> </span><span style="color: #3364a4;">UIViewController</span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">SimpleViewModel</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">        </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #3364a4;">ViewController</span><span style="color: #333333;">(</span><span style="color: #3364a4;">IntPtr</span><span style="color: #333333;"> </span><span style="color: #333333;">handle</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">            </span><span style="color: #333333;">:</span><span style="color: #333333;"> </span><span style="color: #009695;">base</span><span style="color: #333333;">(</span><span style="color: #333333;">handle</span><span style="color: #333333;">)</span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">{</span><span style="color: #333333;">       </span><br />
<span style="color: #333333;">        </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">}</span><br />
</span></p>
<p>And in Android,</p>
<p><span style="font-family: Menlo;"> <span style="color: #009695;">using</span><span style="color: #333333;"> Android</span><span style="color: #333333;">.</span><span style="color: #333333;">App</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Android</span><span style="color: #333333;">.</span><span style="color: #333333;">Widget</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Android</span><span style="color: #333333;">.</span><span style="color: #333333;">OS</span><span style="color: #333333;">;</span><br />
<span style="color: #009695;">using</span><span style="color: #333333;"> Intersoft</span><span style="color: #333333;">.</span><span style="color: #333333;">Crosslight</span><span style="color: #333333;">.</span><span style="color: #333333;">Android</span><span style="color: #333333;">.</span><span style="color: #333333;">v7</span><span style="color: #333333;">;</span></p>
<p><span style="color: #009695;">namespace</span><span style="color: #333333;"> XamarinToCrosslight</span><span style="color: #333333;">.</span><span style="color: #333333;">Droid</span><br />
<span style="color: #333333;">{</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">[</span><span style="color: #3364a4;">Activity</span><span style="color: #333333;">]</span><br />
<span style="color: #333333;">    </span><span style="color: #009695;">public</span><span style="color: #333333;"> </span><span style="color: #009695;">class</span><span style="color: #333333;"> </span><span style="color: #3364a4;">MainActivity</span><span style="color: #333333;"> </span><span style="color: #333333;">:</span><span style="color: #333333;"> </span><span style="color: #3364a4;">AppCompatActivity</span><span style="color: #333333;">&lt;</span><span style="color: #3364a4;">SimpleViewModel</span><span style="color: #333333;">&gt;</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">{</span><br />
<span style="color: #333333;">    </span><span style="color: #333333;">}</span><br />
<span style="color: #333333;">}</span></span></p>
<p>As you can see, the View-level code is very minimal, since the code is very much centralized in the ViewModel and glued to the View using MVVM data binding pattern, which makes it very efficient to develop and maintain enterprise-scale apps. Should you wish to check out the full scource code, find it <a href="http://git.intersoftsolutions.com/projects/CT/repos/xamarintocrosslight/browse" target="_blank">here</a>.</p>
<p class="p2">
<p>To learn how to create your first Crosslight app, follow this step-by-step tutorial here: <a href="http://developer.intersoftsolutions.com/display/crosslight/Walkthrough%3A+Creating+Your+First+Crosslight+App" target="_blank">http://developer.intersoftsolutions.com/display/crosslight/Walkthrough%3A+Creating+Your+First+Crosslight+App</a>. Or, if you&#8217;re interested in a more full-fledged app that showcases Crosslight&#8217;s prowess, we&#8217;ve recently released the Crosslight Field Service sample, which was revamped from the Xamarin Field Service sample. I highly recommend you to read these two posts to learn more about the Crosslight Field Service sample: <a href="http://blog.intersoftsolutions.com/2015/11/redesigning-xamarin-field-service-sample-with-crosslight/" target="_blank">part 1</a> and <a href="http://blog.intersoftsolutions.com/2016/04/redesigning-xamarin-field-service-sample-with-crosslight-part-2/" target="_blank">part 2</a>.</p>
<p>Should you ready to purchase Crosslight, simply head over to <a href="http://www.intersoftsolutions.com/Store" target="_blank">our store</a>. To celebrate this occassion, we offer a limited-time offer: You can get Crosslight now for $499 using this coupon code: <strong>LAUNCH2016 </strong>and start developing great mobile apps in no time!</p>
<p>Till next post,<br />
Nicholas Lie</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.intersoftsolutions.com/2016/04/great-news-for-crosslight-developers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The All-new WebUI. Experience It Yourself.</title>
		<link>http://blog.intersoftsolutions.com/2016/03/the-all-new-webui-experience-it-yourself/</link>
		<comments>http://blog.intersoftsolutions.com/2016/03/the-all-new-webui-experience-it-yourself/#comments</comments>
		<pubDate>Thu, 03 Mar 2016 04:26:48 +0000</pubDate>
		<dc:creator><![CDATA[Nicholas Lie]]></dc:creator>
				<category><![CDATA[2016 R1]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[WebUI]]></category>
		<category><![CDATA[ASP.NET MVC]]></category>
		<category><![CDATA[New Releases]]></category>
		<category><![CDATA[WebCombo]]></category>
		<category><![CDATA[WebDesktop]]></category>
		<category><![CDATA[WebEssentials]]></category>
		<category><![CDATA[WebGrid]]></category>
		<category><![CDATA[WebInput]]></category>
		<category><![CDATA[WebScheduler]]></category>
		<category><![CDATA[WebTextEditor]]></category>
		<category><![CDATA[WebTreeView]]></category>
		<category><![CDATA[WebUI Studio]]></category>
		<category><![CDATA[WebUI Studio ASP.NET]]></category>

		<guid isPermaLink="false">http://blog.intersoftsolutions.com/?p=5685</guid>
		<description><![CDATA[Our months of hard work finally paid off. It&#8217;s finally here. With excellent craftsmanship and fine attention to detail, we&#8217;re very proud to announce the all-new and powerful WebUI 2016. The entire WebUI lineup consisting of highly-advanced 40+ web components now finally receives a truly deserved facelift. [...]]]></description>
				<content:encoded><![CDATA[<img width="604" height="270" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/Screen-Shot-2016-03-01-at-3.22.29-PM-604x270.png" class="attachment-post-thumbnail wp-post-image" alt="Screen Shot 2016-03-01 at 3.22.29 PM" style="float:right; margin:0 0 10px 10px;" /><p>Our months of hard work finally paid off. It&#8217;s finally here. With excellent craftsmanship and fine attention to detail, we&#8217;re very proud to announce the all-new and powerful WebUI 2016. The entire WebUI lineup consisting of highly-advanced 40+ web components now finally receives a truly deserved facelift.</p>
<p><img class="alignnone size-full wp-image-5706" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/Screen-Shot-2016-03-01-at-3.22.29-PM.png" alt="Screen Shot 2016-03-01 at 3.22.29 PM.png" width="1768" height="1192" /></p>
<h1>Accessing the New WebUI Live Experience</h1>
<p>For so long, customers have enjoyed our live WebUI demos through <a href="http://live.intersoftsolutions.com" target="_blank">http://live.intersoftsolutions.com</a>. While this experience is adequate, being redirected to another site for a hands-on experience just won&#8217;t cut it anymore. So we decided to integrate the new samples right our website. That&#8217;s right, now you can experience the new WebUI samples with the gorgeous unified modern theme, right from our website.</p>
<p><img class="alignnone size-full wp-image-5726" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/Screen-Shot-2016-03-02-at-9.56.28-AM.png" alt="Screen Shot 2016-03-02 at 9.56.28 AM.png" width="1522" height="880" /></p>
<p>Don&#8217;t worry, we&#8217;ve put these buttons everywhere, so you can easily access them from various pages in WebUI, although it is very much recommended to access them from <a href="http://www.intersoftsolutions.com/WebUI" target="_blank">/WebUI</a>. Should you miss this experience and open the old live samples, you&#8217;ll be greeted with the following dialog box.</p>
<p><img class="alignnone size-full wp-image-5732" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/Screen-Shot-2016-03-02-at-10.07.46-AM.png" alt="Screen Shot 2016-03-02 at 10.07.46 AM.png" width="1604" height="828" /></p>
<p>Without further ado, let&#8217;s get right onto the new WebUI Live Experience.</p>
<h1>The Home Screen</h1>
<p>Right when you launch the new Live Experience, you&#8217;ll be greeted with a nice and modern blurred background, showcasing the flagship products of WebUI. This experience works best on modern desktop browsers supporting HTML5 and CSS3.</p>
<p><img class="alignnone size-full wp-image-5741" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/Screen-Shot-2016-03-02-at-10.27.31-AM.png" alt="Screen Shot 2016-03-02 at 10.27.31 AM.png" width="2430" height="1596" /></p>
<p>If you click on products such as WebDesktop and WebEssentials, you can also find a grid of sub-components in them.</p>
<p><img class="alignnone size-full wp-image-5755" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/Screen-Shot-2016-03-02-at-10.36.51-AM.png" alt="Screen Shot 2016-03-02 at 10.36.51 AM.png" width="1776" height="1410" /></p>
<h1>WebGrid</h1>
<p>When you launch WebGrid for the first time, you&#8217;ll be greeted with the First Experience.</p>
<p><img class="alignnone size-full wp-image-5758" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/Screen-Shot-2016-03-02-at-10.33.25-AM.png" alt="Screen Shot 2016-03-02 at 10.33.25 AM.png" width="2828" height="1842" /></p>
<p class="p1"><span class="s1">This first experience sample demonstrates many of the top UI features available in WebGrid, combined with some unique features such as column freezing, filter suggestion and more.</span></p>
<p class="p1"><span class="s1">Some of the top features demonstrated in this sample are:</span></p>
<ul class="ul1">
<li class="li1"><span class="s1">Sleek look and feel with the all-new &#8220;Elegant&#8221; Default Style. The Default Style feature significantly reduces page output size by eliminating in-line styles. Try to view source and notice there are no styles generated in the page level.</span></li>
<li class="li1"><span class="s1">Improved user interface with a new set of fresh icons, background images and UI elements.</span></li>
<li class="li1"><span class="s1">New context menu engine. Try to right click on the Grid area to experience the new context menu system.</span></li>
<li class="li1"><span class="s1">LiveFreeze™ column freezing feature. The only column freezing implementation that perfectly simulates Excel® freezing behavior.</span></li>
<li class="li1"><span class="s1">Automatic Filter Suggestion. Try to right click on a cell (eg, &#8220;Owner&#8221;), then choose one of the available filter options. The suggested filter options are based on selected cell&#8217;s data type and value.</span></li>
<li class="li1"><span class="s1">Filter Status Indicator. When one or more columns are filtered, notice that the filter indicator status is changed to &#8220;Filtered&#8221;. This indicator helps end users to understand the current state of filters without has to display filter bar. You can click on the filter status indicator to toggle the filter state.</span></li>
<li class="li1"><span class="s1">SmartWebResources™. This innovative technology enable this sample to run without dependencies to &#8220;physical&#8221; client resources. All client resources such as scripts and images are retrieved directly from resource assembly.</span></li>
<li class="li2"><span class="s3">Declarative datasource control binding. Notice that there are no codes required for the data binding operation (see C# and VB tab).</span></li>
</ul>
<h1>Samples Navigation Experience</h1>
<p>To navigate between samples, you can easily use the arrows on the left and right-hand side of the screen, or use the menu button on the top-left corner of the screen. This will open the Menu panel and you can easily jump between samples.</p>
<p><img class="alignnone size-full wp-image-5776" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/Screen-Shot-2016-03-02-at-11.13.01-AM.png" alt="Screen Shot 2016-03-02 at 11.13.01 AM.png" width="1452" height="886" /></p>
<p>If you wish to go back the controls grid, simply click the Home button. Should you encounter any problems or hassles with the samples, feel free to chat with us directly using the <a href="http://www.intersoftsolutions.com/#livechat">live messenger</a> on the bottom-right corner.</p>
<h1>WebCombo</h1>
<p>This the First Experience when you launch the WebCombo sample.</p>
<p><img class="alignnone size-full wp-image-5785" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/Screen-Shot-2016-03-02-at-11.16.58-AM.png" alt="Screen Shot 2016-03-02 at 11.16.58 AM.png" width="2828" height="1842" /></p>
<p class="p1"><span class="s1">This sample demonstrates the unified modern theme of WebCombo and many of its key features such as SmartWebResources™ and declarative datasource control binding.</span></p>
<p class="p2"><span class="s2">Notice that there are no code required for the data binding operation (see C# and VB tab). Try experimenting with the WebCombo controls in this page to see some unique features in action. For instance, Reports-To is using multiple selection feature combined with image column type.</span></p>
<h1 class="p2">WebInput</h1>
<p>This is the First Experience when you launch the WebInput sample.</p>
<p><img class="alignnone size-full wp-image-5790" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/Screen-Shot-2016-03-02-at-11.18.31-AM.png" alt="Screen Shot 2016-03-02 at 11.18.31 AM.png" width="2828" height="1842" /></p>
<p class="p1"><span class="s1">This sample demonstrates the unified modern theme of WebInput and its key features.</span></p>
<p class="p1"><span class="s1">Some of the new features demonstrated in this sample are:</span></p>
<ul class="ul1">
<li class="li1"><span class="s1">Sleek look and feel with the all-new &#8220;Elegant&#8221; Default Style. The Default Style feature significantly reduces page output size by eliminating in-line styles. Try to view source and notice there are no styles generated in the page level.</span></li>
<li class="li1"><span class="s1">Ordinary input text and multiline input text features, like demonstrated in FirstName, LastName, Address, City, Country fields.</span></li>
<li class="li1"><span class="s1">Display and edit format features, like demonstrated in Birth Date field.</span></li>
<li class="li1"><span class="s1">Other edit format feature, like demonstrated in First Name, Last Name, Phone, Extension fields.</span></li>
</ul>
<p class="p2"><span class="s3">This sample also demonstrate integration between WebInput and .NET Validator Control such as RequiredValidator and CompareValidator.</span></p>
<h1 class="p2">WebScheduler</h1>
<p>This is the First Experience when you launch the WebScheduler sample.</p>
<p><img class="alignnone size-full wp-image-5793" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/Screen-Shot-2016-03-02-at-11.19.33-AM.png" alt="Screen Shot 2016-03-02 at 11.19.33 AM.png" width="2828" height="1842" /></p>
<p class="p1"><span class="s1">This sample is designed to model a car-rental tracking scenario – demonstrating how WebScheduler performs in real-world enterprise application. Bound to over 3000 events, WebScheduler delivers responsive user experiences regardless of the data size.</span></p>
<p class="p1"><span class="s1">The powerful JSON technology and smart client paging rendering significantly improved the overall WebScheduler performance to a new level not possible before. This sample combines both the ViewPort™ and EventPageSize™ Client Paging rendering enabling WebScheduler to load in a flash.</span></p>
<p class="p2"><span class="s2">Try to play around with the scheduler. Use the upper right vehicle locator for a quick jump. Click on the visual indicator on the resources area to populate the car information.</span></p>
<h1 class="p2">WebDesktop</h1>
<p>This is the First Experience when you launch the WebDesktop sample.</p>
<p><img class="alignnone size-full wp-image-5819" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/Screen-Shot-2016-03-02-at-1.10.00-PM.png" alt="Screen Shot 2016-03-02 at 1.10.00 PM.png" width="2828" height="1842" /></p>
<p class="p1"><span class="s1">This reference sample demonstrates the beautiful modern theme and many groundbreaking features in WebDesktopManager such as shortcuts and comprehensive window management. It also showcases the integration of various WebDesktop components to create full-fledge and immersive web applications, which include WebPaneManager, WebToolBar, WebTab, WebDialogBox, WebNotification and more. Try to double click each icon to see the WebDesktop components in action.</span></p>
<h1>WebEssentials</h1>
<p>This is the First Experience when you launch the WebEssentials sample.</p>
<p><img class="alignnone size-full wp-image-5820" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/Screen-Shot-2016-03-02-at-1.10.44-PM.png" alt="Screen Shot 2016-03-02 at 1.10.44 PM.png" width="2828" height="1842" /></p>
<p class="p1"><span class="s1">This reference sample perfectly demonstrates WebEssentials component suite which comprised of 8 innovative controls, ranging from accordion, calendar, slider, to rating. WebEssentials enables you to create interactive and visually engaging modern web applications.</span></p>
<p class="p1"><span class="s1">In this Online Resume scenario, WebAccordion is used as the main container, dividing this lengthy form into three sections. WebProgressBar is used to indicate the section completion process. The bar will be filled as users click on next. WebCalendar is used for date input and WebSlider for selecting a specific range. WebSlidingMenu is used on the right FAQ section. Click on a question and the answer is shown in a swift and smooth sliding animation.</span></p>
<p class="p2"><span class="s2">Additionally, WebFlyPostBackManager is used to populate the section’s content on demand as users click the next button. In Section 1, WebFileUploader is used for image uploading, demonstrating its seamless AJAX upload experience.</span></p>
<h1>WebTextEditor</h1>
<p>This is the First Experience when you launch the WebTextEditor sample.</p>
<p><img class="alignnone size-full wp-image-5801" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/Screen-Shot-2016-03-02-at-11.27.45-AM.png" alt="Screen Shot 2016-03-02 at 11.27.45 AM.png" width="2828" height="1842" /></p>
<p class="p1"><span class="s1">WebTextEditor is the industry&#8217;s first text editor that integrates intuitive writing tools, in-line spelling checker, and sophisticated uploading capability in a single interface – enabling you to rapidly build rich CMS application that delivers breakthrough, unique editing experience to your end users.</span></p>
<p class="p2"><span class="s2">This sample demonstrates tight integration with Desktop Manager, Spell Checker, File Uploader and many UI components from WebDesktop to produce sophisticated, state-of-the-art CMS application that ultimately feels like a desktop word processing application.</span></p>
<h1 class="p2">WebTreeView</h1>
<p>This is the First Experience when you launch the WebTreeView sample.</p>
<p><img class="alignnone size-full wp-image-5805" src="http://blog.intersoftsolutions.com/wp-content/uploads/2016/03/Screen-Shot-2016-03-02-at-11.29.37-AM.png" alt="Screen Shot 2016-03-02 at 11.29.37 AM.png" width="2828" height="1842" /></p>
<p class="p1"><span class="s1">WebTreeView provides rich features that lets you easily create hierarchical data presentation. This powerful control incorporates numerous unique features such as:</span></p>
<ul class="ul1">
<li class="li1"><span class="s1">Data Binding</span></li>
<li class="li1"><span class="s1">Tristate checkbox</span></li>
<li class="li1"><span class="s1">Add, edit, and delete node</span></li>
<li class="li1"><span class="s1">Drag and Drop node(s)</span></li>
<li class="li1"><span class="s1">Keyboard Navigation</span></li>
<li class="li1"><span class="s1">Load On Demand</span></li>
<li class="li1"><span class="s1">Layout Manager and Structure Manager</span></li>
<li class="li1"><span class="s1">Auto Postback</span></li>
<li class="li1"><span class="s1">Flexible and highly customizable to meet your design needs</span></li>
<li class="li1"><span class="s1">client-side API &#8211; WebTreeView Designer</span></li>
</ul>
<p class="p2"><span class="s3">The above sample utilizes Enable Tristate CheckBox and Keyboard Navigation features.</span></p>
<h1 class="p2">Explore the Samples</h1>
<p class="p2">We hope that you liked our new samples. To start taking advantage of our best WebUI release yet, feel free to download the new Premier Studio 2016 <a href="http://www.intersoftsolutions.com/RequestTrial" target="_blank">here</a>. Happy exploring!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.intersoftsolutions.com/2016/03/the-all-new-webui-experience-it-yourself/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Getting Started with Crosslight Collection Views and Grid Views</title>
		<link>http://blog.intersoftsolutions.com/2015/11/getting-started-with-crosslight-collection-views-and-grid-views-5/</link>
		<comments>http://blog.intersoftsolutions.com/2015/11/getting-started-with-crosslight-collection-views-and-grid-views-5/#comments</comments>
		<pubDate>Thu, 26 Nov 2015 09:32:18 +0000</pubDate>
		<dc:creator><![CDATA[Arief]]></dc:creator>
				<category><![CDATA[Crosslight]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[kb-how-to-article]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[collection view]]></category>
		<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[grid view]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[menu]]></category>
		<category><![CDATA[navigation]]></category>
		<category><![CDATA[springboard]]></category>

		<guid isPermaLink="false">http://blog.intersoftsolutions.com/?p=5483</guid>
		<description><![CDATA[Hi guys, Arief here from the Intersoft Consultant team. Today I will talk about how to use iOS Collection View and Android Grid View in order to create a beautiful cross-platform navigation menu. At the end of this tutorial, you&#8217;ll learn how to use the collection view in [...]]]></description>
				<content:encoded><![CDATA[<img width="604" height="270" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/Result-604x270.png" class="attachment-post-thumbnail wp-post-image" alt="Result" style="float:right; margin:0 0 10px 10px;" /><p>Hi guys, Arief here from the Intersoft Consultant team. Today I will talk about how to use iOS Collection View and Android Grid View in order to create a beautiful cross-platform navigation menu. At the end of this tutorial, you&#8217;ll learn how to use the collection view in your Crosslight applications, which looks similar to the following illustration.</p>
<p><img class="alignnone wp-image-5524 size-full" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/Result.png" alt="Result" width="865" height="726" /></p>
<h1>Introduction</h1>
<p>Collection View / Grid View (will be referred as <em>Collection View</em> from now on) is a very versatile user interface. As a matter fact, both <em>iOS</em> and <em>Android</em> have always been using it as a native pattern for Springboard (iOS home) as well as lots of other Android launchers. Nowadays those trends start to spread throughout business apps considering how user-friendly and eye-pleasing when compared to the plain old list view.</p>
<p>If you are interested in creating a gorgeous and cool business apps, using collection view is a must! In this tutorial, I will guide you step by step how you can create collection view using the <em>Crosslight style</em>.</p>
<p>Here are the steps that you need to follow:</p>
<ul>
<li>Core Preparation</li>
<li>Assets Preparation</li>
<li>Designing Android Grid View</li>
<li>Designing iOS Collection View</li>
<li>Capturing Selection</li>
</ul>
<p>Without further ado, let&#8217;s get started!</p>
<h1>Preparing the Project</h1>
<p>The first thing you&#8217;ll need is, of course, the project itself. Start by creating a new project using Crosslight Project Wizard and choose the <strong>Blank</strong> template. To do this, from Visual Studio 2012 and upwards, choose <strong>New</strong>, <strong>Project</strong>. From the dialog that appears, choose <strong>Crosslight</strong> and choose to create a new Crosslight application with the <strong>Blank</strong> template. For the purposes of this tutorial, we&#8217;ll name this project: <strong>CollectionView. </strong>Now that you have your project ready, let&#8217;s move on.</p>
<h1>Core Preparation</h1>
<p>Here are several things you need to prepare at the project Core level:</p>
<ul>
<li>Prepare the ViewModel</li>
<li>Prepare the BindingProvider</li>
</ul>
<h2>Prepare the ViewModel</h2>
<p>Begin by creating a new ViewModel in <strong>CollectionView.Core/ViewModels</strong> folder. Simply right-click on the <strong>ViewModels</strong> folder and choose <strong>Add</strong>, <strong>New Item</strong>. We will be repeating this method several times in later sections to add new items to our project, so keep this in mind.</p>
<p><img class="alignnone wp-image-5285 size-full" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/Untitled1.png" alt="Adding New Item" width="619" height="356" /></p>
<p>Crosslight also ships with built-in item templates that are integrated with Visual Studio, so you can quickly create Crosslight classes right within Visual Studio or Xamarin Studio. In the next dialog that appears, choose <strong>Visual C</strong>#, <strong>Crosslight</strong>, then choose <strong>Crosslight List View Model</strong>. Name this ViewModel as <strong>CollectionViewModel</strong>.</p>
<p><img class="alignnone wp-image-5286 size-full" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/Untitled2.png" alt="CrosslightListViewModel" width="955" height="582" /></p>
<p>Copy-paste these codes to the newly-created <strong>CollectionViewModel.cs</strong>:</p><pre class="crayon-plain-tag">using Intersoft.Crosslight;
using Intersoft.Crosslight.ViewModels;
using System.Collections.Generic;

namespace CollectionView.Core.ViewModels
{
    public class CollectionViewModel : ListViewModelBase
    {
        #region Constructors

        public CollectionViewModel()
        {
			List items = new List();

			items.Add(new NavigationItem("Ride", typeof(SimpleViewModel)) { Image = "CrosstransRide.png" });
			items.Add(new NavigationItem("Delivery", typeof(SimpleViewModel))  { Image = "CrosstransDeliver.png" });
			items.Add(new NavigationItem("Food", typeof(SimpleViewModel))  { Image = "CrosstransFood.png" });
			items.Add(new NavigationItem("Shop", typeof(SimpleViewModel))  { Image = "CrosstransShop.png" });

			this.SourceItems = items;
        }

        #endregion
    }
}</pre><p>Let&#8217;s take a quick look at the above code. In the constructor of the <strong>CollectionViewModel</strong>, we initialize a list of <strong>NavigationItems</strong> that holds the navigation menus. <strong>NavigationItem</strong> is a very useful class provided by Crosslight that you can utilize to create a menu, as it holds all the common properties you need to create a navigation item. All you have to do is simply populate it with the menu title, image/icon name, and the target <em>ViewModel</em> as navigation target.</p>
<h2>Preparing the BindingProvider</h2>
<p>Next step would be adding a new <strong>Crosslight List Binding Provider</strong> under your <strong>CollectionView.Core/BindingProviders </strong>folder. Give it a name of <strong>CollectionBindingProvider.cs.</strong></p>
<p><a href="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/Untitled3.png"><img class="alignnone wp-image-5289 size-full" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/Untitled3.png" alt="CrosslightListBindingProvider" width="955" height="582" /></a></p>
<p>And change the code to the following:</p><pre class="crayon-plain-tag">using Intersoft.Crosslight;

namespace CollectionView.Core.BindingProviders
{
    public class CollectionViewBindingProvider : BindingProvider
    {
        #region Constructors

        public CollectionViewBindingProvider()
        {
            ItemBindingDescription itemBinding = new ItemBindingDescription
            {
                DisplayMemberPath = "Title",
                ImageMemberPath = "Image",
                NavigateMemberPath = "Target"
            };

            this.AddBinding("GridView", BindableProperties.ItemsSourceProperty, "Items");
            this.AddBinding("GridView", BindableProperties.ItemTemplateBindingProperty, itemBinding, true);
            this.AddBinding("GridView", BindableProperties.IsBatchUpdatingProperty, "IsBatchUpdating");
            this.AddBinding("GridView", BindableProperties.SelectedItemProperty, "SelectedItem", BindingMode.TwoWay);
            this.AddBinding("GridView", BindableProperties.SelectedItemsProperty, "SelectedItems", BindingMode.TwoWay);
            this.AddBinding("GridView", BindableProperties.IsEditingProperty, "IsEditing", BindingMode.TwoWay);

            this.AddBinding("RefreshButton", BindableProperties.RefreshCommandProperty, "RefreshCommand");

            // navigation
            //this.AddBinding("TableView", BindableProperties.DetailNavigationTargetProperty, new NavigationTarget(typeof(TViewModel)), true);

            // edit commands
            this.AddBinding("AddButton", BindableProperties.CommandProperty, "AddCommand");

            this.AddBinding("DeleteButton", BindableProperties.CommandProperty, "DeleteCommand");
            this.AddBinding("DeleteButton", BindableProperties.CommandParameterProperty, "SelectedItems");
        }

        #endregion
    }
}</pre><p>In the above code, we simply comment out the <strong>DetailNavigationTargetProperty</strong>, as it won&#8217;t be needed because our goal is only to create a navigation menu. It will be needed if you want to create <a href="http://developer.intersoftsolutions.com/display/crosslight/Master-Detail+Navigation">Master-Detail Navigation</a>. We also assign the <strong>MemberPaths </strong>with the properties from <strong>NavigationItem</strong>, such as <strong>ImageMemberPath</strong> for the icon, <strong>DisplayMemberPath</strong> for displaying the title, and <strong>NavigateMemberPath </strong>for the target <em>ViewModel</em> menu. To learn more about Crosslight Binding Provider, check out this <a href="http://developer.intersoftsolutions.com/display/crosslight/Understanding+Binding+Providers">link</a>.</p>
<p><img class="alignnone wp-image-5291 size-medium" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/Untitled4-300x71.png" alt="Cave Johnson, We'll done here!" width="300" height="71" /></p>
<p>Your Core is up and ready. Let&#8217;s prepare our assets next.</p>
<h1>Assets Preparation</h1>
<p>Previously in the Binding Provider, you have already specified the <strong>Image</strong> property in <strong>NavigationItem</strong> from <em>ViewModel</em> which contains the filename for the .png file that we will use. When you bind it to the <em>BindableProperties.ImageProperty</em> or <em>ImageMemberPath</em>, it will find the appropriate files to use in<strong> CollectionView.Android/Resources/drawable</strong> or in <strong>CollectionView.iOS/Resources. </strong>So you need to put <a href="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/Image.zip">these files</a> inside both folders because we will be using it for our app&#8217;s interface.<a href="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/CrosstransFood.png"><br />
</a></p>
<p>Tip: Make sure to optimize the size of your image files. In some phones, images with humongous file size will be ignored and they won&#8217;t show. Okay, since you have finished preparing the assets, let&#8217;s continue to Android GridView!</p>
<h1>Designing Android GridView</h1>
<p>Designing a view for Android is relatively easy and simple. In overall, we&#8217;ll be doing these tasks:</p>
<ul>
<li>Create an Activity for <strong>CollectionActivity</strong>.</li>
<li>Create the view layout.</li>
<li>Define the <strong>ContentLayoutId</strong> and <strong>ItemLayoutId</strong>.</li>
</ul>
<p>To start, simply add a new item and use <strong>Crosslight Android Activity</strong> to get started. Put it inside the <strong>CollectionView.Android/Activities </strong>folder and name it <strong>CollectionActivity.cs</strong>.</p>
<p><img class="gr-progress alignnone wp-image-5293 size-full" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/Untitled5.png" alt="Crosslight Android Activity" width="955" height="582" /></p>
<p>After your <strong>CollectionActivity</strong> is created, change the contents of the class to the following code.</p><pre class="crayon-plain-tag">using Android.App;
using Intersoft.Crosslight;
using Intersoft.Crosslight.Android;

namespace CollectionView.Android.Activities
{
    [Activity(Label = "Menu")]
    [ImportBinding(typeof(CollectionBindingProvider))]
    public class CollectionActivity : GridActivity
    {
        public override ListViewInteraction InteractionMode
        {
            get{ return ListViewInteraction.Navigation; }
        }

        protected override int ContentLayoutId
        {
            get{ return Resource.Layout.CollectionLayout;}
        }

        protected override int GridItemLayoutId 
        {
	       get{ return Resource.Layout.ItemLayout; }
	    }

        protected override void InitializeView()
        {
            base.InitializeView();
            this.GridView.NumColumns = 2;
        }
    }
}</pre><p>We need to replace the <strong>Activity</strong> with <strong>GridActivity</strong>,<strong> </strong>in<strong> </strong>which then you have more properties to override: <strong>ListViewInteraction</strong>. By overriding the <strong>ListViewInteraction</strong> into <strong>ListViewInteraction.Navigation</strong>, it allows the user to use the grid as a navigation button when an item is tapped.</p>
<p><strong>ContentLayoutId</strong> is also overridden since we want to customize the appearance of our GridView, which we will do in just a moment. The <strong>ItemLayoutId </strong>is overridden to customize the item layout to be used with the GridView. Both <strong>ContentLayoutId</strong> and <strong>ItemLayoutId</strong> refers to Android layout files which exist in the <strong>CollectionView.Android/Resources</strong> folder.</p>
<p>Since we only have two columns for this scenario, we can simply provide the number of columns to show in the overridden <strong>InitializeView</strong> method by setting <strong>this.GridView.NumColumns </strong>to <strong>2</strong>. The advantage of using this method is: you actually don&#8217;t need to specify the width of the Grid. The <em>GridActivity</em> automatically adjusts the optimal number of items by taking account the viewport width.</p>
<p>Earlier, we&#8217;ve specified the <strong>ContentLayoutId</strong> and <strong>ItemLayoutId</strong> in our Activity. Now let&#8217;s create those layouts. You will need to create two layouts inside <strong>CollectionView.Android/Resources/layout </strong>folder using <em>Android Layout</em> item template. We will name it <strong>CollectionLayout.axml</strong> &amp; <strong>ItemLayout.axml.</strong></p>
<p><a href="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/AndroidLayout1.png"><img class="alignnone size-full wp-image-5531" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/AndroidLayout1.png" alt="AndroidLayout" width="955" height="582" /></a></p>
<p>Here&#8217;s the code for <strong>CollectionLayout.axml</strong> and <strong>ItemLayout.axml</strong> respectively.</p><pre class="crayon-plain-tag">&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/CrosstransBg"
    android:minWidth="25px"
    android:minHeight="25px"&gt;
    &lt;LinearLayout
        android:orientation="horizontal"
        android:layout_marginBottom="25dp"
        android:layout_marginTop="50dp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/linearLayout1"
        android:gravity="center_horizontal"&gt;
        &lt;ImageView
            android:src="@drawable/CrosstransLogo"
            android:layout_width="wrap_content"
            android:layout_height="100dp"
            android:id="@+id/imageView1" /&gt;
    &lt;/LinearLayout&gt;
    &lt;GridView
        android:minWidth="25px"
        android:minHeight="25px"
        android:layout_margin="20dp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:verticalSpacing="20dp"
        android:horizontalSpacing="20dp"
        android:id="@+id/GridView" /&gt;
&lt;/LinearLayout&gt;</pre><p>From the designer&#8217;s view, the <strong>CollectionLayout </strong>looks like the following:</p>
<p><a href="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/CollectionLayout1.png"><img class="alignnone size-full wp-image-5544" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/CollectionLayout1.png" alt="CollectionLayout" width="728" height="574" /></a></p>
<p>and here&#8217;s the contents for <strong>ItemLayout.axml</strong>:</p><pre class="crayon-plain-tag">&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:minWidth="25px"
    android:minHeight="25px"
    android:background="#CC2368C0"
    android:gravity="center_horizontal"&gt;
    &lt;LinearLayout
        android:orientation="vertical"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:id="@+id/linearLayout1"
        android:gravity="center_horizontal|center_vertical"&gt;
        &lt;ImageView
            android:src="@android:drawable/ic_menu_gallery"
            android:scaleType="centerCrop"
            android:adjustViewBounds="true"
            android:layout_width="wrap_content"
            android:layout_height="50dp"
            android:id="@+id/ImageView" /&gt;
    &lt;/LinearLayout&gt;
    &lt;TextView
        android:text="Medium Text"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="20dp"
        android:id="@+id/TextLabel"
        android:gravity="center_horizontal" /&gt;
&lt;/LinearLayout&gt;</pre><p>From the designer&#8217;s view, it looks like this:</p>
<p><a href="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/ItemLayout.png"><img class="alignnone size-full wp-image-5545" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/ItemLayout.png" alt="ItemLayout" width="726" height="569" /></a></p>
<p>In summary, what I do in <strong>CollectionLayout.axml</strong> is setting the background for the page, add a header, and provide enough spacing between GridView items. The most important things to note is I&#8217;ve defined the GridView id,  <strong>@+id/GridView. </strong>The will be the reference that we defined in <em>BindingProvider</em> to the property in <em>ViewModel, </em>so make sure the id name is right!</p>
<p>We will be doing a similar task with<strong> ItemLayout.axml</strong>, where we assign both <strong>ImageView</strong> to the <strong>Image</strong> Property in <em>ViewModel</em> and <strong>TextView</strong> to <strong>Title</strong> Property in <em>ViewModel</em>. By default, Crosslight provides two built-in ids for showing an image and a text for item template, which has the name <em>ImageView</em> and <em>TextLabel</em> respectively. But if you want to add additional view elements to the item template, then you can simply add a new binding definition in the binding provider like this which must be done in BindingProvider:</p><pre class="crayon-plain-tag">itemBinding.AddBinding ("CustomView", BindableProperties.TextProperty, "Title");</pre><p>Run the project. You should get a result similar to the following:</p>
<div style="width: 300px; " class="wp-video"><!--[if lt IE 9]><script>document.createElement('video');</script><![endif]-->
<video class="wp-video-shortcode" id="video-5483-1" width="300" height="0" loop="1" autoplay="1" preload="metadata" controls="controls"><source type="video/mp4" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/2015_11_27_09_11_14.mp4?_=1" /><a href="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/2015_11_27_09_11_14.mp4">http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/2015_11_27_09_11_14.mp4</a></video></div>
<p>Next, let&#8217;s create the iOS version.</p>
<h1>Designing iOS CollectionView</h1>
<p>Similar to Android, building <strong>CollectionView</strong> on iOS follows a pretty similar path:</p>
<ul>
<li>Create a ViewController for MainCollectionView.</li>
<li>Create the cell and the header.</li>
<li>Set the outlets.</li>
</ul>
<p>Let&#8217;s start from the ViewController. Add a new item using <strong>Crosslight</strong><strong> iOS Collection View Controller </strong>template<strong> </strong>and put it inside your <strong>CollectionView.iOS/ViewControllers </strong>folder and name it <strong>MainCollectionView.cs</strong>.</p>
<p><a href="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/Screen-Shot-2015-11-26-at-5.16.58-PM.png"><img class="alignnone wp-image-5505 size-full" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/Screen-Shot-2015-11-26-at-5.16.58-PM.png" alt="MainViewController" width="721" height="550" /></a></p>
<p>This is the code for the ViewController.</p><pre class="crayon-plain-tag">using CollectionView.ViewModels;
using CollectionView;
using Intersoft.Crosslight;
using Intersoft.Crosslight.iOS;
using Foundation;
using UIKit;

namespace CollectionView.iOS
{
	[Register ("MainCollectionView")]
	[ImportBinding (typeof(CollectionBindingProvider))]
	public class MainCollectionView : UICollectionViewController
	{
		#region Constructors

		public MainCollectionView ()
			: base ("MainCollectionView", null)
		{
		}

		#endregion

		#region Properties

		public override UIViewTemplate CellTemplate {
			get { return new UIViewTemplate (CollectionViewCell.Nib); }
		}

		public override CollectionViewInteraction InteractionMode {
			get { return CollectionViewInteraction.Navigation; }
		}

		public override bool ShowSectionHeader {
			get { return true; }
		}

		public override UIViewTemplate SectionHeaderTemplate {
			get { return new UIViewTemplate(CollectionHeader.Nib); }
		}

		#endregion

		#region Methods

		protected override void InitializeView ()
		{
			base.InitializeView ();

			this.NavigationItem.Title = "Home";
                        UIImageView backView = new UIImageView(UIImage.FromFile ("CrosstransBg.png")); 
                        backView.ContentMode = UIViewContentMode.ScaleAspectFill; 
                        this.CollectionView.BackgroundView = backView;
			// Register Views
			this.RegisterViewIdentifier ("GridView", this.CollectionView);
		}

		#endregion
	}
}</pre><p>Let&#8217;s take a look at some of the overridden methods and properties.</p>
<ul>
<li><strong>CellTemplate</strong>: This property is the equivalent of Android&#8217;s <strong>ItemLayoutID</strong>, which will define the view to be used as navigation item inside the Collection View.</li>
<li><strong>InteractionMode</strong>: This method is the equivalent of Android&#8217;s <strong>ListViewInteraction</strong>, that defines the interaction when users tap on the navigation item.</li>
<li><strong>SectionHeader &amp; SectionHeaderTemplate</strong>: It will be used to specify the header for the Collection View.</li>
<li><b>InitializeView</b>: This method is called when the view is initialized. Here, we set the background view of the Collection View. Afterward, <em>this.RegisterViewIdentifier (&#8220;GridView&#8221;, this.CollectionView); </em>is used to associate the Collection View with the <strong>GridView</strong> view identifier to be used by the Binding Provider.</li>
</ul>
<p>Now your view controller is done! Next, we&#8217;ll create the <em>CollectionView</em> <em>Header</em> and <em>Cells</em>. Inside your <strong>CollectionView.iOS/Views</strong>, add 2 new items: <strong>Crosslight iOS Collection Cell</strong>, we will name it <strong>CollectionViewCell.cs </strong>(feel free to choose between iPhone or iPad) and <strong> Crosslight iOS Collection View Group Header</strong> which we will name it <strong>CollectionHeader.cs.</strong></p>
<p><a href="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/Screen-Shot-2015-11-27-at-10.33.53-AM.png"><img class="alignnone wp-image-5506 size-full" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/Screen-Shot-2015-11-27-at-10.33.53-AM.png" alt="CollectionViewCell" width="719" height="548" /></a></p>
<p><a href="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/Screen-Shot-2015-11-27-at-10.34.49-AM.png"><img class="alignnone wp-image-5507 size-full" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/Screen-Shot-2015-11-27-at-10.34.49-AM.png" alt="CollectionHeader" width="719" height="549" /></a></p>
<p>If you check back your <strong>MainCollectionView.cs</strong>, you can see that both <strong>CollectionViewCell.Nib</strong> <strong>&amp; CollectionHeader.Nib are</strong> now detected. The Nib represents both .cs files that we&#8217;ve created before. However, we won&#8217;t touch any codes, instead we will play around with the layout using iOS XCode.</p>
<p>Let&#8217;s first open the <strong>MainCollectionView.xib</strong> inside your <strong>CollectionView.iOS/Views</strong> using Apple XCode. Inside the Document Outline, you can select <em>File&#8217;s Owner</em>, then the Identity Inspector will change according to what  you selected. Specify the Custom Class as <strong>MainCollectionView</strong>.</p>
<p><a href="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/asdsadsa.png"><img class="alignnone size-full wp-image-5508" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/asdsadsa.png" alt="Files Owner" width="261" height="128" /></a>  <a href="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/Screen-Shot-2015-11-27-at-10.46.08-AM.png"><img class="alignnone wp-image-5509 size-full" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/Screen-Shot-2015-11-27-at-10.46.08-AM.png" alt="MainViewControllerClass" width="257" height="434" /></a></p>
<p>Using the Connections Inspector, control + drag the <em>view</em> from Outlets to the Collection View to set the outlet, as shown in the following illustration.</p>
<p><a href="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/MainCollectionView.png"><img class="alignnone size-large wp-image-5546" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/MainCollectionView-1024x231.png" alt="MainCollectionView" width="604" height="136" /></a></p>
<p>Then, in the File Inspector, turn off Auto Layout.</p>
<p><a href="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/turnoffautolayout1.png"><img class="alignnone wp-image-5513 size-full" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/turnoffautolayout1.png" alt="turnoffautolayout" width="260" height="391" /></a></p>
<p>In the Size Inspector, specify the cell&#8217;s width and height, also adjusting the auto-resizing behaviors so that it will layout nicely when the device is rotated.</p>
<p><a href="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/CollectionViewConfiguration.png"><img class="alignnone wp-image-5514 size-full" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/CollectionViewConfiguration.png" alt="CollectionViewConfiguration" width="260" height="665" /></a></p>
<p>Now you are done configuring your <strong>MainCollectionView.xib.</strong></p>
<p>Let&#8217;s continue to <strong>CollectionViewCell.xib</strong>, in this case, you don&#8217;t need to worry about  your <strong>File&#8217;s Owner</strong>,  Simply drag and drop a <strong>Label</strong> and <strong>ImageView</strong> from the Object Library to the view.</p>
<p><a href="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/viewchoice.png"><img class="alignnone wp-image-5515 size-full" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/viewchoice.png" alt="viewchoice" width="262" height="491" /></a></p>
<p>Select your Label (or anything in your designer interface), Press the conjoined circle button on the right top. A panel with codes will appear, this is the <strong>Assistant Editor</strong> which will help you create Binding without having you to code anything.</p>
<p><a href="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/ConjoinedCircle.png"><img class="alignnone wp-image-5516 size-full" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/ConjoinedCircle.png" alt="ConjoinedCircle" width="698" height="421" /></a></p>
<p>Next, let&#8217;s set the outlets using the Assistant Editor. Select your <strong>CollectionViewCell.m</strong> and change it to <strong>CollectionViewCell.h</strong>, control + drag your <strong>Label</strong> into the panel and give it <strong>TextLabel</strong> as a name, then set the <strong>ImageView</strong> outlet with the name of <strong>ImageView</strong>.</p>
<p><a href="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/ctrldrop.png"><img class="alignnone wp-image-5517 size-full" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/ctrldrop.png" alt="ctrldrop" width="881" height="417" /></a></p>
<p>You need to turn off the auto layout from both image, label, and their parent to use auto resizing. Here&#8217;s what I&#8217;ve done to each of them:</p>
<ul>
<li><strong>View</strong>: Change the background color, turn on the horizontal and vertical scaling so that it won&#8217;t grow or shrink when the display rotates.</li>
<li><strong>TextLabel</strong>: Change the alignment to the middle,  Pin it to the bottom using auto resizing and change the width to 120 and height to 50</li>
<li><strong>ImageView</strong>: Change the view mode to Aspect fit, turn on the horizontal and vertical arrow inside auto-resizing, and changes the width and height to 60</li>
</ul>
<p>In <strong>CollectionHeader.xib</strong>, what we do is just drag and drop an ImageView. Here are the settings for ImageView:</p>
<ul>
<li>Change the image with CrosstransLogo.png,</li>
<li>View Mode to Aspect Fit,</li>
<li>Width = 150,</li>
<li>Turn on the horizontal and vertical arrow inside auto resizing</li>
</ul>
<p>Here is the result:</p>
<div style="width: 300px; " class="wp-video"><video class="wp-video-shortcode" id="video-5483-2" width="300" height="0" loop="1" autoplay="1" preload="metadata" controls="controls"><source type="video/mp4" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/Crosstransios.mp4?_=2" /><a href="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/Crosstransios.mp4">http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/Crosstransios.mp4</a></video></div>
<p>Your app is pretty much done, but we still ned to capture what user has selected.</p>
<h1>Capturing Selection</h1>
<p>In this section, we&#8217;ll learn how to capture selection made when the user taps on any of the navigation items.</p>
<p>If you recall earlier, we&#8217;ve defined how our <em>CollectionView</em> should navigate, which is done in our <em>BindingProvider </em>in the <strong>NavigateMemberPath </strong>inside using <strong>ItemBindingDescription</strong>.</p><pre class="crayon-plain-tag">ItemBindingDescription itemBinding = new ItemBindingDescription
            {
                DisplayMemberPath = "Title",
                ImageMemberPath = "Image",
                NavigateMemberPath = "Target"
            };</pre><p>As you are aware, each <em>MemberPath</em> represents the component of our menu. In fact, it also contains the whole data associated with the specific Item you choose from the list that you have created in your <em>ViewModel</em> back then.</p><pre class="crayon-plain-tag">public CollectionViewModel()
        {
			List items = new List();

			items.Add(new NavigationItem("Ride", typeof(SimpleViewModel)) { Image = "CrosstransRide.png" });
			items.Add(new NavigationItem("Delivery", typeof(SimpleViewModel))  { Image = "CrosstransDeliver.png" });
			items.Add(new NavigationItem("Food", typeof(SimpleViewModel))  { Image = "CrosstransFood.png" });
			items.Add(new NavigationItem("Shop", typeof(SimpleViewModel))  { Image = "CrosstransShop.png" });

			this.SourceItems = items;
        }</pre><p>BindingProvider will obtain the target of your navigation, represented by <em>typeof(SimpleViewModel))</em>. However even though we already successfully navigate,  in our case each of our Item have the same Navigation target. What if we want to know which item/menu is selected? Here is how:</p>
<p>When you navigate to a new <em>ViewModel</em>, the <strong>Navigated</strong> method is called in the target <em>ViewModel</em>, and it contains the <strong>sender</strong> value which holds the information of the caller <em>ViewModel</em>. For the simplicity of this tutorial, we&#8217;ll change the <em>SimpleViewModel</em> to handle user input. Let&#8217;s change our <strong>SimpleViewModel.cs </strong>(CollectionView.Core/ViewModels folder):</p><pre class="crayon-plain-tag">using Intersoft.Crosslight;
using Intersoft.Crosslight.Input;
using Intersoft.Crosslight.ViewModels;

namespace CollectionView.ViewModels
{
    public class SimpleViewModel : ViewModelBase
    {
        #region Fields

        private string _footerText;
        private string _greetingText;
        private string _newText;

        #endregion

        #region Properties

        public string FooterText
        {
            get { return _footerText; }
            set
            {
                if (_footerText != value)
                {
                    _footerText = value;
                    OnPropertyChanged("FooterText");
                }
            }
        }

        public string GreetingText
        {
            get { return _greetingText; }
            set
            {
                if (_greetingText != value)
                {
                    _greetingText = value;
                    OnPropertyChanged("GreetingText");
                }
            }
        }

        public string NewText
        {
            get { return _newText; }
            set
            {
                if (_newText != value)
                {
                    _newText = value;
                    OnPropertyChanged("NewText");
                }
            }
        }

        public DelegateCommand ShowToastCommand { get; set; }

        #endregion

        #region Constructors

        public SimpleViewModel()
        {
            IApplicationContext context = this.GetService().GetContext();
            if (context.Platform.OperatingSystem == OSKind.Android)
                this.GreetingText = "Hello Android from Crosslight!";
            else if (context.Platform.OperatingSystem == OSKind.WinPhone)
                this.GreetingText = "Hello WinPhone from Crosslight!";
            else if (context.Platform.OperatingSystem == OSKind.WinRT)
                this.GreetingText = "Hello WinRT from Crosslight!";
            else if (context.Platform.OperatingSystem == OSKind.iOS)
                this.GreetingText = "Hello iOS from Crosslight!";

            this.FooterText = "Powered by Crosslight®";
            this.ShowToastCommand = new DelegateCommand(ShowToast);
        }

        #endregion

        #region Methods

        public override void Navigated (NavigatedParameter parameter)
        {
            if (parameter.Sender is CollectionViewModel) 
            {
                this.ToastPresenter.Show("You are choosing: " + (parameter.Sender as CollectionViewModel).SelectedItem.Title);
            }
        }

        private void ShowToast(object parameter)
        {
            this.ToastPresenter.Show("You entered: " + this.NewText);
            this.GreetingText = this.NewText;
        }

        #endregion
    }
}</pre><p>The menu that user chooses will be represented by <strong>SelectedItem </strong>and there are two things to note here: <strong>SelectedItem</strong> actually obtained from the<strong> sender ViewModel</strong> which is from <em>CollectionViewModel.cs</em> and <strong>SelectedItem</strong> actually the default property provided from <em>CollectionViewModel</em> implementing the <strong>ListViewModelBase</strong>. In this case, we will show a toast presenter to indicate which menu the user has chosen, by obtaining the <strong>Title</strong> of <strong>SelectedItem </strong>and show it using Toast Presenter.</p>
<p>Also, If you put a breakpoint in the highlighted line above and inspect the <strong>NavigatedParameter</strong>,<strong> </strong>you can see from the shot below that it holds lots of information not only the <strong>SelectedItem </strong>but the whole CollectionViewModel.</p>
<p><a href="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/Content.png"><img class="alignnone wp-image-5500 size-full" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/Content.png" alt="Debugger Content" width="571" height="488" /></a></p>
<p>You will use this neat trick to accomplish a lot of cool things using Crosslight, so don&#8217;t forget to save this favourite this blog for later uses. Okay, now let&#8217;s run our project!</p>
<p>Wait&#8230; should we also change the Android and iOS? <strong>No need at all</strong> using Crosslight you only need to change it in Core and it will be applied to each platform, very convenient! Here is the result:</p>
<div style="width: 300px; " class="wp-video"><video class="wp-video-shortcode" id="video-5483-3" width="300" height="0" loop="1" autoplay="1" preload="metadata" controls="controls"><source type="video/mp4" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/2015_11_27_14_23_41.mp4?_=3" /><a href="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/2015_11_27_14_23_41.mp4">http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/2015_11_27_14_23_41.mp4</a></video></div>
<div style="width: 300px; " class="wp-video"><video class="wp-video-shortcode" id="video-5483-4" width="300" height="0" loop="1" autoplay="1" preload="metadata" controls="controls"><source type="video/mp4" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/crosstransfull.mp4?_=4" /><a href="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/crosstransfull.mp4">http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/crosstransfull.mp4</a></video></div>
<h1>Wrapping Up</h1>
<p>With Crosslight, you will never have to worry about the code behind the scene. However, in  this session, I want to emphasize the customizability of Crosslight, using minimal effort and codes we already successfully create a simple and gorgeous navigation menu. I believe the next steps for you is to discover more about Crosslight features and we still have more tutorials coming in the futures! So stay tuned with us and have fun!</p>
<p>You can find the source code for this post here: <a href="http://git.intersoftsolutions.com/projects/CT/repos/crosslightcollectionview/browse">http://git.intersoftsolutions.com/projects/CT/repos/crosslightcollectionview/browse</a></p>
<p>See you in the next post,<br />
Arief Handany</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.intersoftsolutions.com/2015/11/getting-started-with-crosslight-collection-views-and-grid-views-5/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
<enclosure url="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/2015_11_27_09_11_14.mp4" length="4544727" type="video/mp4" />
<enclosure url="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/Crosstransios.mp4" length="1532667" type="video/mp4" />
<enclosure url="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/2015_11_27_14_23_41.mp4" length="13983430" type="video/mp4" />
<enclosure url="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/crosstransfull.mp4" length="3605056" type="video/mp4" />
		</item>
		<item>
		<title>Creating Dockable View for iOS and Android</title>
		<link>http://blog.intersoftsolutions.com/2015/11/creating-dockable-view-for-ios-and-android/</link>
		<comments>http://blog.intersoftsolutions.com/2015/11/creating-dockable-view-for-ios-and-android/#comments</comments>
		<pubDate>Mon, 23 Nov 2015 11:51:49 +0000</pubDate>
		<dc:creator><![CDATA[Nicholas Lie]]></dc:creator>
				<category><![CDATA[2015 R2]]></category>
		<category><![CDATA[Crosslight]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[kb-how-to-article]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[2015 r2]]></category>
		<category><![CDATA[dockable]]></category>
		<category><![CDATA[dockable view]]></category>
		<category><![CDATA[footer]]></category>
		<category><![CDATA[header]]></category>
		<category><![CDATA[Mobile Development]]></category>

		<guid isPermaLink="false">http://blog.intersoftsolutions.com/?p=5182</guid>
		<description><![CDATA[In my previous post, I&#8217;ve shown you how to use a header and footer with custom views in a list/table view. Now, what if I want to show a dockable view at the bottom of the screen? Let’s take the previous sample a bit further [...]]]></description>
				<content:encoded><![CDATA[<img width="604" height="270" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/Screen-Shot-2015-11-23-at-1.05.53-PM-604x270.png" class="attachment-post-thumbnail wp-post-image" alt="Screen Shot 2015-11-23 at 1.05.53 PM" style="float:right; margin:0 0 10px 10px;" /><p>In my previous <a href="http://blog.intersoftsolutions.com/2015/11/adding-header-and-footer-for-ios-tableview-and-android-listview/">post</a>, I&#8217;ve shown you how to use a header and footer with custom views in a list/table view. Now, what if I want to show a dockable view at the bottom of the screen? Let’s take the previous sample a bit further to look like the following.</p>
<p><a href="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/Screen-Shot-2015-11-23-at-2.06.12-PM.png"><img class="alignnone size-large wp-image-5196" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/Screen-Shot-2015-11-23-at-2.06.12-PM-1024x853.png" alt="Screen Shot 2015-11-23 at 2.06.12 PM" width="604" height="503" /></a></p>
<h1>Starting off</h1>
<p>To start off, I’ll just copy off the previous sample. If you haven’t read the <a href="http://blog.intersoftsolutions.com/2015/11/adding-header-and-footer-for-ios-tableview-and-android-listview/" target="_blank">previous post</a> on how to provide header and footer to your TableView / ListView, it is highly recommended for you to do so before continuing.</p>
<p>If you have done so, let’s move on.</p>
<h1>Creating dockable view on iOS</h1>
<p>To create the dockable view on iOS, you’ll need to do the following:</p>
<ul>
<li>Preparing custom table root view</li>
<li>Modifying the View</li>
<li>Modifying the View Controller</li>
</ul>
<h2>Preparing custom table root view</h2>
<p>To provide the custom table root view, you’ll need to create a new <strong>Crosslight iOS View for iPhone</strong>, which is accessible from the Item Templates, available after you’ve successfully installed Crosslight.</p>
<p>Right click on the Views in HeaderAndFooter.iOS/Views folder and select <strong>Add</strong>, <strong>New Item.</strong></p>
<p><a href="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/Screen-Shot-2015-11-23-at-2.09.45-PM.png"><img class="alignnone size-full wp-image-5197" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/Screen-Shot-2015-11-23-at-2.09.45-PM.png" alt="Screen Shot 2015-11-23 at 2.09.45 PM" width="970" height="408" /></a></p>
<p>Then choose, <strong>Crosslight iOS View for iPhone</strong>. Give it a name of <strong>CustomTableRootView</strong>.</p>
<p><a href="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/Screen-Shot-2015-11-23-at-2.13.23-PM.png"><img class="alignnone size-large wp-image-5198" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/Screen-Shot-2015-11-23-at-2.13.23-PM-1024x786.png" alt="Screen Shot 2015-11-23 at 2.13.23 PM" width="604" height="464" /></a></p>
<p>First, let’s try to create a the custom table root view. Open the <strong>CustomTableRootView.xib </strong>in Xcode Interface Builder.</p>
<h3>Adding the Docked View</h3>
<p>Drag a new <strong>View</strong> from the <strong>Object library</strong>, set the outlet as <strong>DockedView</strong>, and provide the following constraints:</p>
<ul>
<li><strong>Horizontal Space </strong><strong>Constraint</strong>: from <em>Superview.Trailing</em> equal to the <em>View.Trailing</em> with the following values.<br />
<a href="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/Screen-Shot-2015-11-23-at-11.28.08-AM.png"><img class="alignnone size-large wp-image-5199" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/Screen-Shot-2015-11-23-at-11.28.08-AM-1024x619.png" alt="Screen Shot 2015-11-23 at 11.28.08 AM" width="604" height="365" /></a></li>
<li><strong>Vertical Space Constraint</strong>: from <em>Superview.Bottom</em> equal to the <em>View.Bottom</em> with the following values.<br />
<a href="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/Screen-Shot-2015-11-23-at-11.28.10-AM.png"><img class="alignnone size-large wp-image-5200" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/Screen-Shot-2015-11-23-at-11.28.10-AM-1024x619.png" alt="Screen Shot 2015-11-23 at 11.28.10 AM" width="604" height="365" /></a></li>
<li><strong>Horizontal Space Constraint</strong>: from <em>DockedView.Leading</em> equal to the <em>Superview.Leading</em> with the following values.<br />
<a href="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/Screen-Shot-2015-11-23-at-11.28.12-AM.png"><img class="alignnone size-large wp-image-5201" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/Screen-Shot-2015-11-23-at-11.28.12-AM-1024x619.png" alt="Screen Shot 2015-11-23 at 11.28.12 AM" width="604" height="365" /></a></li>
</ul>
<p>Now that the docked view is ready, let’s drag a <strong>Label</strong>, set the outlet as <strong>TxtHeader</strong>, and drag a button, set the outlet as <strong>BthHeader</strong>. Both of them are given the previous outlet names, so that no code changes will be required in the <strong>BindingProvider</strong> side. If you wish, you can set the following constraints:</p>
<ul>
<li>Give the DockedView a height of 45.<br />
<a href="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/Screen-Shot-2015-11-23-at-1.05.53-PM.png"><img class="alignnone size-large wp-image-5202" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/Screen-Shot-2015-11-23-at-1.05.53-PM-1024x619.png" alt="Screen Shot 2015-11-23 at 1.05.53 PM" width="604" height="365" /></a></li>
<li>Vertically align the label as well as the button.<br />
<a href="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/Screen-Shot-2015-11-23-at-2.19.44-PM.png"><img class="alignnone size-large wp-image-5203" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/Screen-Shot-2015-11-23-at-2.19.44-PM-1024x774.png" alt="Screen Shot 2015-11-23 at 2.19.44 PM" width="604" height="457" /></a></li>
<li>Give an inner padding of 20.<br />
<a href="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/Screen-Shot-2015-11-23-at-2.20.49-PM.png"><img class="alignnone size-large wp-image-5204" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/Screen-Shot-2015-11-23-at-2.20.49-PM-1024x767.png" alt="Screen Shot 2015-11-23 at 2.20.49 PM" width="604" height="452" /></a></li>
</ul>
<p>That’s pretty much it. Let’s modify the View a bit.</p>
<h2>Modifying the View</h2>
<p>Let’s open the <strong>CustomTableRootView.cs </strong>and modify that a bit by adding a new <strong>ResizeTableView</strong> method.</p><pre class="crayon-plain-tag">using System;
using System.Drawing;
using System.Linq;
using CoreGraphics;
using Foundation;
using UIKit;

namespace HeaderAndFooter.iOS
{
    public partial class CustomTableRootView : UIView
    {
        #region Constructors

        public CustomTableRootView(IntPtr handle) : base(handle)
        {
        }

        #endregion

        #region Fields

        public static readonly UINib Nib = UINib.FromName("CustomTableRootView", NSBundle.MainBundle);

        #endregion

        #region Methods

        public static CustomTableRootView Create()
        {
            return (CustomTableRootView) Nib.Instantiate(null, null)[0];
        }


        internal void ResizeTableView(nfloat top)
        {
            var tableView = this.Subviews.FirstOrDefault(o =&gt; o is UITableView);
            tableView.Frame = new CGRect(0, top, tableView.Bounds.Width, this.Bounds.Height - top - this.DockedView.Bounds.Height);
        }

        #endregion
    }
}</pre><p>Here, we prepare a handy method to resize the table view when the view is used, called <strong>ResizeTableView</strong>. By calling this method, the <strong>TableView</strong> that contains this dock view will have its bounds re-adjusted. This is done so that the scrolling container in the <strong>TableView</strong> does not exceed the docked view. Take a closer a look at the contents of the method.</p>
<p>In line 36, we first search for the TableView that is added as a subview of the <strong>ViewController</strong>. In line 37, we set a new bounds for it, not changing the width at all, but just by adjusting the height by taking account the <strong>DockedView.Bounds.Height</strong> as well.</p>
<h2>Modifying the View Controller</h2>
<p>Next, open up the <strong>MainViewController.cs</strong>. Here’s the contents.</p><pre class="crayon-plain-tag">using CoreGraphics;
using Foundation;
using HeaderAndFooter.ViewModels;
using Intersoft.Crosslight;
using Intersoft.Crosslight.iOS;
using UIKit;

namespace HeaderAndFooter.iOS.ViewControllers
{
    [Register("MainViewController")]
    [ImportBinding(typeof(MainBindingProvider))]
    public class MainViewController : UITableViewController&lt;MainViewModel&gt;
    {
        #region Properties

        public override UIViewTemplate FooterViewTemplate
        {
            get { return new UIViewTemplate(CustomFooter.Nib); }
        }

        public override TableViewInteraction InteractionMode
        {
            get { return TableViewInteraction.Navigation; }
        }

        public override bool ShowGroupHeader
        {
            get { return false; }
        }

        public override UITableViewStyle TableViewStyle
        {
            get { return UITableViewStyle.Plain; }
        }

        public override bool UseCustomRootView
        {
            get { return true; }
        }

        #endregion

        #region Methods

        protected override void InitializeView()
        {
            base.InitializeView();

            // set navigation title
            this.NavigationItem.Title = "Crosslight App";
        }

        protected override UIView GetCustomRootView()
        {
            return CustomTableRootView.Create();
        }

        public override void ViewWillLayoutSubviews()
        {
            base.ViewWillLayoutSubviews();

            // adjust tableview frame based on top layout guide	
            ((CustomTableRootView)this.View).ResizeTableView(this.TopLayoutGuide.Length);
        }

        #endregion
    }
}</pre><p>Here, we removed the overridden property for <strong>HeaderViewTemplate</strong>, since we’re going to use the new <strong>DockedView</strong> to replace the header. Therefore, we then override a new property called <strong>UseCustomRootView</strong> and return true.</p>
<p>After we&#8217;ve done that, we then override the <strong>GetCustomRootView()</strong> method to return the CustomTableRootView that we’ve just created by calling <strong>CustomTableRootView.Create()</strong>;</p>
<blockquote><p>The custom root view is one of the unique features introduced in Crosslight&#8217;s advanced <a href="http://developer.intersoftsolutions.com/display/crosslight/iOS+Table+View">UITableViewController</a>. It allows you to easily replace the root view with a custom one with just a few property sets, while still retaining the developer experience and automatic binding feature. In the case above, when <strong>UseCustomRootView</strong> is returning a true value, the <strong>GetCustomRootView</strong> method will be automatically called when the controller is initializing.</p></blockquote>
<p>Lastly, we override the <strong>ViewWillLayoutSubviews</strong> method. This method is called when a new subview is added to the <strong>ViewController</strong>, which can be done at any time, whether during <strong>ViewController</strong> creation or programmatically adding a subview at runtime, therefore, when the <strong>DockedView</strong> is added, we then call our handy method to resize the TableView so that the scrolling container wouldn’t “bleed” past the <strong>DockedView</strong>.</p>
<p>That’s it. Run the project and you should get the result similar to the following video.</p>
<div style="width: 400px; " class="wp-video"><video class="wp-video-shortcode" id="video-5182-5" width="400" height="360" loop="1" autoplay="1" preload="auto" controls="controls"><source type="video/mp4" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/iOS1.mp4?_=5" /><a href="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/iOS1.mp4">http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/iOS1.mp4</a></video></div>
<h1>Creating dockable view on Android</h1>
<p>Now that we’ve finished the iOS version, let’s create the Android version. To create the docakble view on Android, you’ll need to complete the following:</p>
<ul>
<li>Preparing custom layout</li>
<li>Replacing the content layout in Activity</li>
</ul>
<h2>Preparing custom layout</h2>
<p>First things first, let’s create a new Android Layout, and let’s name it <strong>CustomLayout.axml</strong>. To do this, right click on the <strong>HeaderAndFooter.Android/Resources/layout</strong> folder.</p>
<p><img class="alignnone size-full wp-image-5208" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/Screen-Shot-2015-11-23-at-2.47.11-PM.png" alt="Screen Shot 2015-11-23 at 2.47.11 PM" width="952" height="516" /></p>
<p>Select <strong>Add</strong>, <strong>New Item</strong>. Under <strong>Android</strong>, select <strong>Layout</strong>.</p>
<p><a href="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/Screen-Shot-2015-11-23-at-2.47.50-PM.png"><img class="alignnone size-large wp-image-5209" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/Screen-Shot-2015-11-23-at-2.47.50-PM-1024x785.png" alt="Screen Shot 2015-11-23 at 2.47.50 PM" width="604" height="463" /></a></p>
<p>Provide the layout for the <strong>CustomLayout.axml</strong> as follows.</p><pre class="crayon-plain-tag">&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"&gt;
    &lt;LinearLayout
        android:id="@+id/Footer"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:orientation="vertical"&gt;
        &lt;LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="1px"
            android:background="#f2f2f2" /&gt;
        &lt;LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:paddingLeft="20dp"
            android:paddingRight="20dp"&gt;
            &lt;TextView
                android:id="@+id/TxtHeader"
                android:layout_width="fill_parent"
                android:layout_height="30dp"
                android:layout_weight="1"
                android:gravity="left"
                android:textSize="20sp" /&gt;
            &lt;Button
                android:id="@+id/BtnHeader"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" /&gt;
        &lt;/LinearLayout&gt;
    &lt;/LinearLayout&gt;
    &lt;ListView
        android:id="@android:id/list"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_above="@id/Footer" /&gt;
&lt;/RelativeLayout&gt;</pre><p>Let’s take a closer look. Here, we’ve used a <strong>RelativeLayout</strong> as the root <strong>ViewGroup </strong>and we’ve added 2 major elements to the <strong>RelativeLayout</strong>, which is a <strong>LinearLayout</strong> that will act as our <strong>DockedView</strong> and <strong>ListView</strong>.</p>
<blockquote><p>At a glance, you might be wondering why the <strong>ListView</strong> is defined after the <strong>LinearLayout</strong>. This is purely for build purposes. The XML parser parses the text from top to bottom. Since in the <strong>ListView</strong>, we’ve defined<strong> android:layout_above=“@id/Footer”,</strong> the build will fail if the LinearLayout is not defined beforehand. Hence, the <strong>ListView</strong> is defined after the <strong>LinearLayout</strong>.</p></blockquote>
<p>One important thing to notice that the <strong>ListView’s</strong> id is set to<strong> @android:id/list</strong>. This conforms the standard method to override the built-in ListActivity&#8217;s layout in native Android development itself. For more information on that topic, click <a href="http://developer.android.com/reference/android/app/ListActivity.html" target="_blank">here</a>. This is done because in the <strong>ListActivity</strong> class, you can reference the <strong>ListView</strong> as simply as calling <strong>this.ListView</strong>, however since you’ve overridden the whole layout, then the <strong>ListView</strong> must be re-referenced this way so that the Android understands. Everything else is just standard Android layouting process.</p>
<h2>Replacing the content layout in Activity</h2>
<p>After the layout is prepared, let’s modify some codes in the Activity. Open up <strong>MainActivity.cs</strong> inside <strong>HeaderAndFooter.Android/Activities</strong> folder and see the contents as follows.</p><pre class="crayon-plain-tag">using Android.App;
using HeaderAndFooter.ViewModels;
using Intersoft.Crosslight;
using Intersoft.Crosslight.Android;

namespace HeaderAndFooter.Android
{
    [Activity(Label = "Crosslight App", Icon = "@drawable/icon")]
    [ImportBinding(typeof(MainBindingProvider))]
    public class MainActivity : ListActivity&lt;MainViewModel&gt;
    {
        #region Properties

        protected override int ContentLayoutId
        {
			get { return Resource.Layout.CustomLayout; }
        }

        protected override int FooterLayoutId
        {
            get { return Resource.Layout.CustomFooter; }
        }

        public override ListViewInteraction InteractionMode
        {
            get { return ListViewInteraction.Navigation; }
        }

        #endregion

        #region Methods

        protected override void InitializeView()
        {
            base.InitializeView();

            this.RegisterViewIdentifier("TableView", this.ListView);
        }

        #endregion
    }
}</pre><p>In the <strong>ContentLayoutId </strong>property, we’ve replaced the old layout to the new <strong>CustomLayout</strong> that we’ve created earlier and we’ve also removed the <strong>HeaderLayoutId</strong>. You’ve completed the Android version. Let’s run this project and you should get the result similar to the following.</p>
<div style="width: 400px; " class="wp-video"><video class="wp-video-shortcode" id="video-5182-6" width="400" height="360" loop="1" autoplay="1" preload="auto" controls="controls"><source type="video/mp4" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/Android1.mp4?_=6" /><a href="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/Android1.mp4">http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/Android1.mp4</a></video></div>
<h1>Wrapping Up</h1>
<p>You’ve seen how easy and elegant it is to provide a dockable view to your table view on iOS as well as list view on Android. Achieving the same task without Crosslight would be really tedious and time consuming. The dockable view also comes with automatic binding support, so you can take advantage of native binding process with whatever layout you have. Nice and simple.</p>
<p>You can find the code to the sample here:<br />
<a href="http://git.intersoftsolutions.com/projects/CT/repos/crosslightdockableview/browse" target="_blank">http://git.intersoftsolutions.com/projects/CT/repos/crosslightdockableview/browse</a>. To use this sample, you’ll need at least <a href="http://git.intersoftsolutions.com/projects/CROS/repos/updates/browse/Crosslight4_0_5000_323" target="_blank">Crosslight build 4.0.5000.323</a> and above.</p>
<p>See you in the next post,<br />
Nicholas Lie</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.intersoftsolutions.com/2015/11/creating-dockable-view-for-ios-and-android/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/iOS1.mp4" length="668912" type="video/mp4" />
<enclosure url="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/Android1.mp4" length="305590" type="video/mp4" />
		</item>
		<item>
		<title>The next WebUI. Redesigned for the future.</title>
		<link>http://blog.intersoftsolutions.com/2015/11/the-next-webui/</link>
		<comments>http://blog.intersoftsolutions.com/2015/11/the-next-webui/#comments</comments>
		<pubDate>Fri, 13 Nov 2015 01:37:53 +0000</pubDate>
		<dc:creator><![CDATA[Nicholas Lie]]></dc:creator>
				<category><![CDATA[2015 R2]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Products]]></category>
		<category><![CDATA[Roadmap]]></category>
		<category><![CDATA[2015 r2]]></category>
		<category><![CDATA[roadmap]]></category>
		<category><![CDATA[WebCallOut]]></category>
		<category><![CDATA[WebCombo]]></category>
		<category><![CDATA[WebGrid]]></category>
		<category><![CDATA[WebInput]]></category>
		<category><![CDATA[WebProgressbar]]></category>
		<category><![CDATA[WebTab]]></category>
		<category><![CDATA[WebToolBar]]></category>
		<category><![CDATA[WebUI]]></category>
		<category><![CDATA[WebUI Studio]]></category>
		<category><![CDATA[webui vnext]]></category>

		<guid isPermaLink="false">http://blog.intersoftsolutions.com/?p=4989</guid>
		<description><![CDATA[The web development trend recently revolves around providing great look and feel for the users of World Wide Web. Nowadays, we see lots of beautifully-designed web components along with the rise of CSS frameworks such as Bootstrap and even Material Design. These frameworks provide a way for developers to universally theme their web [...]]]></description>
				<content:encoded><![CDATA[<img width="604" height="270" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/WebCombo1-604x270.png" class="attachment-post-thumbnail wp-post-image" alt="WebCombo" style="float:right; margin:0 0 10px 10px;" /><p>The web development trend recently revolves around providing great look and feel for the users of World Wide Web. Nowadays, we see lots of beautifully-designed web components along with the rise of CSS frameworks such as Bootstrap and even Material Design. These frameworks provide a way for developers to universally theme their web apps, making it consistent and beautiful for their users, across the entire site.</p>
<p>WebUI Studio. Undoubtedly, this is our best-selling suite ever. With impressive range of versatile, ready-to-use components, WebUI Studio has become the industry&#8217;s benchmark for suite of web components. More than just simple controls, WebUI components are designed to be functionality-rich, making developers&#8217; lives much easier whilst bringing high-performance web components to their ASP.NET web applications.</p>
<p>Just, what if, you can incorporate these beautifully-designed elements to WebUI? At Intersoft Solutions, we take pride in our meticulously-designed user experiences. In our next biggest release ever, we&#8217;re going to bring a whole new look and feel of your web apps. Embrace the next evolution of web apps with WebUI. First-class web components meets first-class design.</p>
<h1>Advanced Functionality Meets Beautiful Design</h1>
<p>Before diving further, can you take a guess at some of these WebUI controls below?</p>
<p><a href="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/WebCombo1.png"><img class="alignnone wp-image-5074" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/WebCombo1.png" alt="WebCombo" width="400" height="278" /></a></p>
<p><a href="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/WebInput-DateTimeEditor.png"><img class="alignnone wp-image-5072" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/WebInput-DateTimeEditor.png" alt="WebInput - DateTimeEditor" width="300" height="437" /></a></p>
<p><a href="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/WebToolBar.png"><img class="alignnone wp-image-5076" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/WebToolBar-1024x205.png" alt="WebToolBar" width="700" height="140" /></a></p>
<p>&nbsp;</p>
<p><a href="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/webinput-calculator.png"><img class="alignnone size-large wp-image-5111" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/webinput-calculator-1024x524.png" alt="webinput calculator" width="604" height="309" /></a></p>
<p>&nbsp;</p>
<p>From the top: WebCombo, WebInput with DateTime Picker, WebToolBar, and WebInput with Calculator Editor. Gorgeous, aren&#8217;t they? And this is just the tip of the iceberg. Goodbye old-fashioned looking web applications. It&#8217;s all thanks to the new technology we&#8217;re building for the next release, called Unified Theming.</p>
<h1>Introducing WebUI Unified Theming</h1>
<p>In the current release, you can already style WebUI controls through <em>Layout Manager</em> or via API at runtime. However, you need to do the styling on each WebUI control individually which could be tedious and repetitive for dozens of controls. This is going to change in WebUI vNext. Meet our brand-new<strong> Unified Theming </strong>framework.</p>
<p>The new Unified Theming allows you to apply consistent look and feel across your entire web applications just by using a single theme definition, similar to the ones found in popular CSS frameworks. Bigger buttons, more rounded buttons, gradient-styled buttons, flat buttons, anything. You now have total control over your app&#8217;s look and feel.</p>
<p>For example, you wish to change the corner radius of a popup panel. Just configure it once, and all of the WebUI controls in your application that use the popup element will automatically apply the same look and feel. To achieve this, it requires delicate, yet rigorous engineering to ensure all 30+ components work as expected using the new unified theming feature. Not only that, the combination of settings provided with each control makes it even tougher to achieve a consistent look with whatever settings you throw at it. And yes, there&#8217;s that cross-browser support as well.</p>
<p>When we designed the unified theme, we make sure that each control works in concert with native features and behaviors of the control itself. For example, here&#8217;s how it looks when the WebCallOut Bootstrap theme is applied with various types of settings. Here&#8217;s a shot with WebCallOut&#8217;s <strong>PointingPosition</strong> set to <strong>PointingBottomRight </strong>and <strong>PointingTopLeft</strong>.</p>
<p><a href="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/WebCallOut-1-new.png"><img class="alignnone size-large wp-image-5091" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/WebCallOut-1-new-1024x433.png" alt="WebCallOut-1-new" width="604" height="255" /></a></p>
<p>&nbsp;</p>
<p>And here&#8217;s another with <strong>PointingPosition</strong> set to <strong>PointingTopRight</strong> and <strong>PointingBottomLeft</strong>.</p>
<p><a href="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/WebCallOut-2-new.png"><img class="alignnone size-large wp-image-5092" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/WebCallOut-2-new-1024x433.png" alt="WebCallOut-2-new" width="604" height="255" /></a></p>
<p>&nbsp;</p>
<p>And the best of all, the Unified Theming framework leverages the industry&#8217;s most popular CSS extension language today, <a href="http://sass-lang.com">SASS</a>. Written entirely in <em>SCSS</em> syntax, we&#8217;re able to streamline all styles across 30 components, creating <em>variables</em> and <em>mixin</em> that you can easily customize. This also means that you don&#8217;t have to learn a new language to customize the styles. Instead, you can use any SASS compatible editors such as Visual Studio 2015 or Sublime.</p>
<h1>Bootstrap-themed WebUI</h1>
<p>Along with the unified theming framework, we will also ship a new Bootstrap theme for the entire WebUI components. Let&#8217;s take a look at some of the WebUI controls restyled with Bootstrap theme.</p>
<h2>WebButton</h2>
<p><a href="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/WebButton1.png"><img class="alignnone wp-image-5069" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/WebButton1-795x1024.png" alt="WebButton" width="200" /></a></p>
<p>The rounded corners and vibrant pastel colors for the WebButtons are inspired from Bootstrap. All color schemes from mouse-over, default, disabled, and selected states are taken from Bootstrap.</p>
<h2>WebProgressBar</h2>
<p><a href="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/WebProgressBar.png"><img class="alignnone size-large wp-image-5070" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/WebProgressBar-509x1024.png" alt="WebProgressBar" width="509" height="1024" /></a></p>
<p>These Bootstrap-themed WebProgressBar have arrived to captivate your users with vibrant, animated colors. The wide range of colors are also taken from Bootstrap. Also pay attention to the nicely shaped rounded corners of the progress bars.</p>
<h2>WebTab</h2>
<p><a href="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/WebTab2.png"><img class="alignnone size-large wp-image-5084" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/WebTab2-1024x778.png" alt="WebTab" width="604" height="459" /></a></p>
<p>Each tab in WebTab is now more spacious with generous padding on all its sides. We&#8217;ve also added various Bootstrap styles such as Frame, Frameless, Pill and Line tabs. And to make everything look really great even in hi-res display, we&#8217;ve replaced all common icons with font-based icons, all comes pre-built in the WebUI Bootstrap theme.</p>
<h1>Coming in 2015 R2</h1>
<p>What you see in this post is just a small glimpse of what&#8217;s next to come. We can&#8217;t wait to show it live to you in the next 2015 R2 release. It&#8217;s going to be the biggest release ever! Refreshing the entire WebUI lineup, a major release for Crosslight, and the launch for <a href="http://blog.intersoftsolutions.com/2015/11/a-sneak-peek-at-clientui-vnext/">ClientUI Reporting for WPF with charting</a> will be the main dish for this release. Stay tuned for more exciting updates!</p>
<p>Cheers,<br />
Nicholas Lie</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.intersoftsolutions.com/2015/11/the-next-webui/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introducing Intersoft’s New Customer Experience</title>
		<link>http://blog.intersoftsolutions.com/2015/10/introducing-intersofts-new-customer-experience/</link>
		<comments>http://blog.intersoftsolutions.com/2015/10/introducing-intersofts-new-customer-experience/#comments</comments>
		<pubDate>Fri, 16 Oct 2015 12:27:41 +0000</pubDate>
		<dc:creator><![CDATA[Jimmy Petrus]]></dc:creator>
				<category><![CDATA[announcement]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Website]]></category>
		<category><![CDATA[Live Chat]]></category>
		<category><![CDATA[Support Center]]></category>

		<guid isPermaLink="false">http://blog.intersoftsolutions.com/?p=4746</guid>
		<description><![CDATA[Today, we’re excited to announce that we’ve completed the final phase of the new web-based live chat integration with our account management and back-end system. Back two months ago, we started out some experiments by integrating a new web-based chat service for pre-sales and account [...]]]></description>
				<content:encoded><![CDATA[<img width="604" height="270" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/10/Screen-Shot-2015-10-17-at-4.37.47-PM-604x270.png" class="attachment-post-thumbnail wp-post-image" alt="Customer experience at its best" style="float:right; margin:0 0 10px 10px;" /><p>Today, we’re excited to announce that we’ve completed the final phase of the new web-based live chat integration with our account management and back-end system. Back two months ago, we started out some experiments by integrating a new web-based chat service for pre-sales and account support, which some of you may have noticed. The integration was a huge success, increasing communication efficiency by 200%.</p>
<p>But we didn’t stop there. Earlier this month, we continue to bring the web-based chat service to the entire line of our organization, taking our customer experience to a whole new level. Now, from pre-sales to support, you can reach us instantly — right from our website. Read on.</p>
<h1>Customer Experience At Its Best</h1>
<p>Most companies today still rely heavily on emails for primary communication. Far from ideal, there are typically dozens of emails to remember, one for sales, another for support, the other for feedback, and so on. We did it the same way. Here’s how our previous Contact page looks like.</p>
<p><a href="http://blog.intersoftsolutions.com/wp-content/uploads/2015/10/Screen-Shot-2015-10-17-at-3.38.17-PM.png"><img class="alignnone size-large wp-image-4749" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/10/Screen-Shot-2015-10-17-at-3.38.17-PM-1024x817.png" alt="The old experience - sea of email links" width="700" /></a></p>
<p>I know what you&#8217;re thinking, there&#8217;s too much email addresses — yep, you&#8217;re spot on. Couldn&#8217;t we do something about that, you asked? Well, the good news is, that page is now a thing of the past! Here’s what our Contact page looks like today.</p>
<p><a href="http://blog.intersoftsolutions.com/wp-content/uploads/2015/10/Screen-Shot-2015-10-17-at-3.38.41-PM.png"><img class="alignnone size-large wp-image-4751" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/10/Screen-Shot-2015-10-17-at-3.38.41-PM-1024x797.png" alt="Intersoft's new, streamlined customer experience" width="700" /></a></p>
<p>Beautiful, isn’t it? No email addresses to remember anymore — just real-time, productive conversations in a simple button click!</p>
<p>Now, whether you have sales questions, account inquiries, or need technical support — or just wanted to drop by and say hello, we’ll be there for you. There’s only one simple button to click to reach us, that’s what we called, the Messenger button.</p>
<p><a href="http://blog.intersoftsolutions.com/wp-content/uploads/2015/10/chat-messenger.png"><img class="alignnone size-full wp-image-4752" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/10/chat-messenger.png" alt="The messenger button" width="400" /></a></p>
<p>No matter which pages you&#8217;re in, you can always find this button at the right bottom of our web page. Need to navigate to different page while you’re having ongoing conversation? No worries. Everything will be well persisted across page session — and even browser session — as long as you stay logged in to your account.</p>
<h1>Good-bye Tedious Ticket Queues</h1>
<p>Yup, you read it right — and you shall rejoice as there are no more support ticket queues at Intersoft! In the light of our new web-based messenger, we’ve dropped the contract with our “support helpdesk” vendor which, frankly speaking, doesn’t work very well all these times, even they turned out to be one of the best in the industry. Why? Because most of these helpdesk vendors aren’t good in fighting spams. As the result, only 25% of the incoming tickets are real messages from our customers, while the rest are all spams. We&#8217;ve done everything we could to fight spams at our side, no luck. The vendor gave up as well.</p>
<p>We knew that our customers deserve a better customer experience than the traditional ticket queues system, and we&#8217;ve always wanted to do something better, but haven’t found the right way and tools in the past. Thankfully, here we are today at the forefront in delivering the best customer experience in the industry.</p>
<p>Keeping in touch with us couldn’t get any easier. Here’s what our enhanced customer experience feels like — with questions answered in minutes, not days.</p>
<p><a href="http://blog.intersoftsolutions.com/wp-content/uploads/2015/10/Screen-Shot-2015-10-17-at-4.37.47-PM.png"><img class="alignnone size-large wp-image-4754" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/10/Screen-Shot-2015-10-17-at-4.37.47-PM-1024x686.png" alt="Customer experience at its best" width="604" height="405" /></a></p>
<p>You&#8217;re welcome <img src="http://s.w.org/images/core/emoji/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>And one more thing, in case you need to write longer messages or attach some files, we&#8217;ve provided a special VIP mailbox for that. We won&#8217;t be exposing that mailbox publicly. When you logged in to our website, you&#8217;ll be greeted with a welcome message from us, and that&#8217;s where you can find the VIP mailbox address. And the best of all, the messages you sent to that VIP mailbox will also sync to the conversations under your account. So the web messenger is where you&#8217;ll find everything, and resume your conversations right there.</p>
<h1>Check Your Eligibility</h1>
<p>As of today, for the first time in a decade, we are no longer monitoring incoming public-facing emails. If you need to reach us, just <a href="http://www.intersoftsolutions.com/account" target="_blank">login to our website</a> with your Intersoft ID, and you’re all set. That’s all it takes, that simple!</p>
<p>We have also redesigned our support level page with latest information and better presentation for easier reading. Check out the <a href="http://www.intersoftsolutions.com/Support/Level" target="_blank">support level page</a> and learn which support level you’re in.</p>
<p>Last but not least, if you used an Intersoft ID which is different with the account that actually contains a valid subscription or license, you can easily link both accounts with just a few simple steps. To learn more, <a href="http://www.intersoftsolutions.com/Support/Support/LinkAccount" target="_blank">check out this page</a>.</p>
<p>We hope you liked our new and improved experience! So, see you soon on our web messenger.</p>
<p>All the best,<br />
Jimmy</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.intersoftsolutions.com/2015/10/introducing-intersofts-new-customer-experience/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Intersoft Studio 2014 R2 Delivers 500 Components for Mobile, RIA, and Web Development</title>
		<link>http://blog.intersoftsolutions.com/2014/12/intersoft-studio-2014-r2-delivers-500-components-for-mobile-ria-and-web-development/</link>
		<comments>http://blog.intersoftsolutions.com/2014/12/intersoft-studio-2014-r2-delivers-500-components-for-mobile-ria-and-web-development/#comments</comments>
		<pubDate>Wed, 10 Dec 2014 03:56:45 +0000</pubDate>
		<dc:creator><![CDATA[Martin Lie]]></dc:creator>
				<category><![CDATA[2014-r2]]></category>
		<category><![CDATA[announcement]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Products]]></category>

		<guid isPermaLink="false">http://blog.intersoftpt.com/2014/12/intersoft-studio-2014-r2-delivers-500-components-for-mobile-ria-and-web-development/</guid>
		<description><![CDATA[We are proud to announce the release of our next ultimate development toolset, Premier Studio 2014 R2. In this release, we continue delivering the next generation of our powerful cross-platform mobile toolset, Crosslight 3. Our Silverlight lineups also received numerous enhancements as well as our [...]]]></description>
				<content:encoded><![CDATA[<img width="604" height="270" src="http://blog.intersoftsolutions.com/wp-content/uploads/2014/12/CrosslightUIComponents-604x270.png" class="attachment-post-thumbnail wp-post-image" alt="CrosslightUIComponents" style="float:right; margin:0 0 10px 10px;" /><p>We are proud to announce the release of our next ultimate development toolset, Premier Studio 2014 R2. In this release, we continue delivering the next generation of our powerful cross-platform mobile toolset, Crosslight 3. Our Silverlight lineups also received numerous enhancements as well as our ASP.NET lineups. That’s not all. We also ship even better tooling support for cross-platform mobile development on both Mac and Windows. These exciting new features will definitely shave months off your development time table. Let’s tour some of the key highlights in this release.</p>
<div>
<h2>Crosslight 3: Deliver Stunning UI Components with Full iOS 8 Support</h2>
<p>Crosslight 3 is now power-packed with gorgeous UI components that are beautifully designed with highly customizable components, such as map views for showing different route directions, carousel view for displaying multiple images in the form of paged slider view, a keyboard input view for messaging apps, a calendar month view to easily present list of events and many more. Furthermore, this release includes full support for iOS 8 and smart layout mechanism for iPhone 6 Plus. You can expect all iOS services and user interface components to work flawlessly with minimal or no code changes in your apps.</p>
<p><a href="http://blog.intersoftpt.com/wp-content/uploads/2014/12/CrosslightUIComponents.png"><img class="alignnone wp-image-4298 size-large" src="http://blog.intersoftpt.com/wp-content/uploads/2014/12/CrosslightUIComponents-1024x477.png" alt="CrosslightUIComponents" width="604" height="281" /></a></p>
<h2>Improved Tooling Support for Mac and Windows</h2>
<p>Good news for Mac and Windows users! Crosslight 3 also now provides full tooling support for both Xamarin Studio and Visual Studio. You can now build Crosslight apps with either Xamarin Studio on the Mac or Visual Studio on Windows. Simply say, you don’t have to worry on building mobile apps with your favorite IDE as each of them supports many useful features such as Crosslight Project Wizard, Entity designers extension, Crosslight item templates and more.</p>
<p>Moreover, this release also adds even better tooling support for Visual Studio, allowing you to perform direct search for the class documentation on a specific Crosslight class. Crosslight Developer Center will automatically display the searching information.</p>
<p><a href="http://blog.intersoftpt.com/wp-content/uploads/2014/12/ToolingSupport.png"><img class="alignnone size-large wp-image-4302" src="http://blog.intersoftpt.com/wp-content/uploads/2014/12/ToolingSupport-1024x477.png" alt="ToolingSupport" width="604" height="281" /></a></p>
<p>In addition, Crosslight 3 also adds navigation drawer template for Windows 8 which enable you to create powerful Crosslight apps with navigation drawer interface across four mobile platforms, iOS, Android, Windows Phone 8.1 and Windows 8.1.</p>
<h2>Powerful Form Builder</h2>
<div>
<p>Crosslight 3 gives significant upgrades to its Form Builder to achieve new scenarios easily. It now adds support for new editor types, such as radio button editor, checkbox list and child list view. Radio button editor is great for allowing single selection inputs for multiple choices. Displaying child list view will allow form builder to support even more business scenarios, such as displaying list of warehouses, branches, categories and many more is now possible.</p>
<p><a href="http://blog.intersoftpt.com/wp-content/uploads/2014/12/FormBuilder.png"><img class="alignnone size-large wp-image-4299" src="http://blog.intersoftpt.com/wp-content/uploads/2014/12/FormBuilder-1024x477.png" alt="FormBuilder" width="604" height="281" /></a></p>
<h2>Exciting Features for iOS and Android</h2>
<p>This release brings more features for both iOS and Android. Crosslight 3 adds new APIs for iOS to enable new ways of interacting with the app. Furthermore, features like in-line editing, displaying custom edit actions using swipe gesture and many more will surely exciting for you to build more intuitive mobile apps. <a href="http://developer.intersoftpt.com/display/crosslight/What%27s+New+in+Crosslight+for+iOS" rel="nofollow">Learn more about iOS new features</a>.</p>
<p><a href="http://blog.intersoftpt.com/wp-content/uploads/2014/12/iOSFeature.png"><img class="alignnone size-large wp-image-4300" src="http://blog.intersoftpt.com/wp-content/uploads/2014/12/iOSFeature-1024x477.png" alt="iOSFeature" width="604" height="281" /></a></p>
<p>Not only iOS, Crosslight 3 also adds various improvements towards the Android platform. Features like drastic scrolling performance, MVVM support for MapViews and ImageButton and auto-complete EditText will obviously add some values to your mobile apps development.  <a href="http://developer.intersoftpt.com/display/crosslight/What%27s+New+in+Crosslight+for+Android" rel="nofollow">Learn More about Android new features</a>.</p>
<p><a href="http://blog.intersoftpt.com/wp-content/uploads/2014/12/AndroidFeature.png"><img class="alignnone size-large wp-image-4297" src="http://blog.intersoftpt.com/wp-content/uploads/2014/12/AndroidFeature-1024x477.png" alt="AndroidFeature" width="604" height="281" /></a></p>
<h2>Silverlight Lineups: Retina-ready with Modern Themes</h2>
<p>In this release, Silverlight lineups receive significant enhancements for its display rendering quality. With retina-ready support, Silverlight controls are scaled beautifully across multiple screen sized and densities. They also now equipped with modern themes which share the same guidelines and visual aesthetic designed by Intersoft’s design experts. Furthermore, this release also delivers continuous improvements to the overall stability and reliability of the ClientUI components and frameworks.</p>
<p><a href="http://blog.intersoftpt.com/wp-content/uploads/2014/12/RetinaDisplay.png"><img class="alignnone size-full wp-image-4301" src="http://blog.intersoftpt.com/wp-content/uploads/2014/12/RetinaDisplay.png" alt="RetinaDisplay" width="692" height="323" /></a></p>
<h2>Major Milestone in WebGrid 9</h2>
<p>The most advanced data grid component for ASP.NET, the WebGrid 9, marks a major milestone in which you can perform various data operations reliably and seamlessly. In this release, new features include searching by text in value list, perform various data operations using JavaScript API, better copy and pasting support and direct print support.</p>
<p><a href="http://blog.intersoftpt.com/wp-content/uploads/2014/12/WebGridValueList.png"><img class="alignnone size-full wp-image-4303" src="http://blog.intersoftpt.com/wp-content/uploads/2014/12/WebGridValueList.png" alt="WebGridValueList" width="692" height="323" /></a></p>
<h2>Download Today</h2>
</div>
<p>Visit our <a href="http://developer.intersoftpt.com/display/crosslight/Home" rel="nofollow">Crosslight Developer Center</a> to get more information about Crosslight architecture, walkthroughs, samples as well as Crosslight roadmap. We just want to ensure that you always get the best “cutting-edge” toolset for your development. Download your free trial <a href="http://intersoftpt.com/requesttrial" rel="nofollow">here</a> and experience building cross-platform mobile, enterprise and web apps with less effort.</p>
<p>&nbsp;</p>
<p>Cheers,<br />
Martin Lie</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.intersoftsolutions.com/2014/12/intersoft-studio-2014-r2-delivers-500-components-for-mobile-ria-and-web-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Crosslight 2.0 Update 5 is now live!</title>
		<link>http://blog.intersoftsolutions.com/2014/10/crosslight-2-0-update-5-is-now-live/</link>
		<comments>http://blog.intersoftsolutions.com/2014/10/crosslight-2-0-update-5-is-now-live/#comments</comments>
		<pubDate>Thu, 02 Oct 2014 03:23:48 +0000</pubDate>
		<dc:creator><![CDATA[Nicholas Lie]]></dc:creator>
				<category><![CDATA[2014 R1]]></category>
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://blog.intersoftpt.com/2014/10/crosslight-2-0-update-5-is-now-live/</guid>
		<description><![CDATA[Crosslight 2.0 Update 5 is now live! Get latest version&#160;here.&#160;In this release, we&#8217;ve added two major aspects:&#160;iOS 8 support&#160;and&#160;more love for&#160;the&#160;Android platform.&#160;For a full&#160;changelog, visit our&#160;Developer Center. iOS 8 Support This release introduces&#160;significant changes where the assemblies are built upon&#160;the Xamarin.iOS 8 framework, letting you&#160;target [...]]]></description>
				<content:encoded><![CDATA[<img width="220" height="220" src="http://blog.intersoftsolutions.com/wp-content/uploads/2014/10/ios8.png" class="attachment-post-thumbnail wp-post-image" alt="ios8" style="float:right; margin:0 0 10px 10px;" /><div>
<p>
        Page<br />
            <b>edited</b> by<br />
                    <a href="http://developer.intersoftpt.com/display/~nicholas">Nicholas Lie</a>
            </p>
<div>
<p>Crosslight 2.0 Update 5 is now live! Get latest version&nbsp;<a href="http://git.intersoftpt.com/projects/CROS/repos/updates/browse" rel="nofollow">here</a>.&nbsp;In this release, we&#8217;ve added two major aspects:&nbsp;<strong>iOS 8 support</strong>&nbsp;and&nbsp;<strong>more love for&nbsp;the&nbsp;Android platform</strong>.&nbsp;For a full&nbsp;changelog, visit our&nbsp;<a href="http://developer.intersoftpt.com/display/crosslight/Crosslight+2.0+Update+5+Release+Notes" rel="nofollow">Developer Center</a>.</p>
<h2>iOS 8 Support</h2>
<p><img src="http://blog.intersoftpt.com/wp-content/uploads/2014/10/ios8.png" data-image-src="http://blog.intersoftpt.com/wp-content/uploads/2014/10/ios8.png" /></p>
<p>This release introduces&nbsp;significant changes where the assemblies are built upon&nbsp;the Xamarin.iOS 8 framework, letting you&nbsp;target both iOS 7 and iOS 8. You can no longer use Crosslight iOS with an older version of Xamarin due to breaking changes introduced in Xamarin.iOS &nbsp;API. If you need&nbsp;wish to continue developing with older version of Xamarin, you will need to use Crosslight 2.0&nbsp;Update 4 assemblies.</p>
<p>In addition to the compatibility with iOS 8, this release also adds several improvements to the overall stability related to the changes in iOS 8. For instances, modal navigation in master-detail scenario now works in iOS 8, while the message input view component is now enhanced to support iOS 8&#8217;s custom keyboards and auto-suggest bar.</p>
<h2>Love for Android</h2>
<p><img width="500" src="http://blog.intersoftpt.com/wp-content/uploads/2014/10/picts.png" data-image-src="http://blog.intersoftpt.com/wp-content/uploads/2014/10/picts.png" /></p>
<p>This release&nbsp;features many improvements in Crosslight for Android, such as the new FormFragment, revamped Pull-to-Refresh&nbsp;UI, improved presenter lifecycles, customizable ListFragment layout, improved async image loader, item bindings for CheckBox and EditText performance&nbsp;and&nbsp;more.</p>
<p>The FormFragment allows you to take advantage of the Crosslight Form Builder using Fragments. Pull-to-Refresh has been standardized with the Google&#8217;s latest addition to the support library and takes full advatange of the new SwipeRefreshLayout class. Now the UI looks a lot like Gmail, Google Now and Google+ swipe-to-refresh. The async image loader&nbsp;also receives some performance boost where item caching and cancellation is taken care automatically. With&nbsp;this latest&nbsp;release, you&nbsp;can now include&nbsp;check boxes as well as text boxes as list items and have the bound to&nbsp;the model directly with the enhanced ItemBindingDescription.</p>
<h2>What&#8217;s Next?</h2>
<p>Prepare for the next major version of Crosslight: Crosslight 3.0. Aside from all these exciting additions, we have more in store for you, especially Mac users. Some of the Mac-specific features including the Crosslight Project Wizard and item templates for Xamarin Studio on Mac, identical to the one found in Visual Studio on Windows.</p>
<p>We have more exciting features such as&nbsp;Form Builder 2.0,&nbsp;Map View bindings, Carousel Views, Message Input&nbsp;View,&nbsp;Calendar Views, and more UI-related&nbsp;components. Check out the Crosslight 3.0 roadmap&nbsp;<a href="http://developer.intersoftpt.com/display/crosslight/Crosslight+Roadmap" rel="nofollow">here</a>.</p>
<p>Enjoy the updates by obtaining the version of Crosslight&nbsp;<a href="http://git.intersoftpt.com/projects/CROS/repos/updates/browse" rel="nofollow">here</a>. Check out the&nbsp;full changelog to our current release in the&nbsp;<a href="http://developer.intersoftpt.com/display/crosslight/Crosslight+2.0+Update+5+Release+Notes" rel="nofollow">Developer Center</a>.</p>
<p>Till&nbsp;next time,<br />Nicholas Lie</p>
</div>
<div>
       <a href="http://developer.intersoftpt.com/pages/viewpage.action?pageId=13993364">View Online</a><br />
              &middot;<br />
       <a href="http://developer.intersoftpt.com/pages/diffpagesbyversion.action?pageId=13993364&amp;revisedVersion=3&amp;originalVersion=2">View Changes Online</a>
                  </div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.intersoftsolutions.com/2014/10/crosslight-2-0-update-5-is-now-live/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Crosslight 2.0 Update 4 is Here!</title>
		<link>http://blog.intersoftsolutions.com/2014/09/crosslight-2-0-update-4-is-here/</link>
		<comments>http://blog.intersoftsolutions.com/2014/09/crosslight-2-0-update-4-is-here/#comments</comments>
		<pubDate>Mon, 01 Sep 2014 15:48:18 +0000</pubDate>
		<dc:creator><![CDATA[Nicholas Lie]]></dc:creator>
				<category><![CDATA[2014 R1]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[crossslight]]></category>
		<category><![CDATA[data synchronization]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[Windows 8]]></category>
		<category><![CDATA[Windows Phone]]></category>
		<category><![CDATA[Windows Store]]></category>

		<guid isPermaLink="false">http://intersoftpt.wordpress.com/?p=3834</guid>
		<description><![CDATA[Crosslight 2.0 Update 4 has arrived with tons of new features! New syncing services with push notifications, major improvements for iOS, stability improvements to Enterprise App Framework, and more. iOS now supports even more buttery-smooth scrolling, automatic dynamic cell height support, automatic aspect ratio calculation [...]]]></description>
				<content:encoded><![CDATA[<img width="436" height="250" src="http://blog.intersoftsolutions.com/wp-content/uploads/2014/09/localization.png" class="attachment-post-thumbnail wp-post-image" alt="localization" style="float:right; margin:0 0 10px 10px;" /><p>Crosslight 2.0 Update 4 has arrived with tons of new features! New syncing services with push notifications, major improvements for iOS, stability improvements to Enterprise App Framework, and more. iOS now supports even more buttery-smooth scrolling, automatic dynamic cell height support, automatic aspect ratio calculation in thumbnail, automatic selection persistence in navigation drawer, and more. Check out the full release notes <a href="http://developer.intersoftpt.com/display/crosslight/Crosslight+2.0+Update+4+Release+Notes">here</a>.</p>
<p>In addition to hotfixes, we&#8217;re now updating the Mobile Studio installers for both Mac and Windows on every release (instead of just service pack or major release). With all our deployment processes automatically taken care, we want to make sure you get the latest product bits on every available channel, whether it&#8217;s from the update manager, access from your account, or through the trial download site. Furthermore, the new installers now clearly show the version of the Crosslight build to increase visibility of new installer builds.</p>
<p><a href="https://intersoftpt.files.wordpress.com/2014/09/screen-shot-2014-08-29-at-11-26-37-am-1.png"><img style="background-image: none; padding-top: 0; padding-left: 0; display: inline; padding-right: 0; border-width: 0;" title="Screen Shot 2014-08-29 at 11.26.37 AM-1" src="https://intersoftpt.files.wordpress.com/2014/09/screen-shot-2014-08-29-at-11-26-37-am-1_thumb.png" alt="Screen Shot 2014-08-29 at 11.26.37 AM-1" width="625" height="452" border="0" /></a></p>
<p><a href="https://intersoftpt.files.wordpress.com/2014/09/test.jpg"><img style="background-image: none; padding-top: 0; padding-left: 0; display: inline; padding-right: 0; border: 0;" title="test" src="https://intersoftpt.files.wordpress.com/2014/09/test_thumb.jpg" alt="test" width="625" height="470" border="0" /></a></p>
<div>
<div style="text-align: left;">If you haven’t downloaded the latest installer, grab it now <a href="http://www.intersoftpt.com/RequestTrial">here</a>! This upgrade is free for all customers with existing subscription.</div>
<div style="text-align: left;"></div>
<div style="text-align: left;">Cheers,</div>
<div style="text-align: left;">Nicholas Lie</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.intersoftsolutions.com/2014/09/crosslight-2-0-update-4-is-here/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
