<?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; 2015 R2</title>
	<atom:link href="http://blog.intersoftsolutions.com/category/2015-r2/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>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"><!--[if lt IE 9]><script>document.createElement('video');</script><![endif]-->
<video class="wp-video-shortcode" id="video-5182-1" 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?_=1" /><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-2" 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?_=2" /><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>A Sneak Peek at ClientUI vNext</title>
		<link>http://blog.intersoftsolutions.com/2015/11/a-sneak-peek-at-clientui-vnext/</link>
		<comments>http://blog.intersoftsolutions.com/2015/11/a-sneak-peek-at-clientui-vnext/#comments</comments>
		<pubDate>Wed, 04 Nov 2015 00:01:00 +0000</pubDate>
		<dc:creator><![CDATA[Nicholas Lie]]></dc:creator>
				<category><![CDATA[2015 R2]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Roadmap]]></category>
		<category><![CDATA[ClientUI]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[WPF]]></category>

		<guid isPermaLink="false">http://blog.intersoftsolutions.com/?p=4896</guid>
		<description><![CDATA[While most of our recent blog posts were targeting Crosslight, that doesn&#8217;t mean we forget our other lineups. Quite the contrary, we will have big updates to all our lineups in the upcoming release, including WebUI and ClientUI across all the 7 platforms we supported. [...]]]></description>
				<content:encoded><![CDATA[<img width="604" height="270" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/1446624965_thumb-604x270.png" class="attachment-post-thumbnail wp-post-image" alt="1446624965_thumb.png" style="float:right; margin:0 0 10px 10px;" /><p>While most of our recent blog posts were targeting Crosslight, that doesn&#8217;t mean we forget our other lineups. Quite the contrary, we will have big updates to all our lineups in the upcoming release, including WebUI and ClientUI across all the 7 platforms we supported. So, if you&#8217;re building Silverlight and/or WPF applications, then this blog post is for you! I&#8217;m thrilled to share with you many exciting features that you can expect in the next release of ClientUI. Read on.</p>
<p>Last year, we brought you the reporting suite that changed how you build and author enterprise reports on the Silverlight platform. It’s a game-changer. Comes with true WYSIWYG experience, it allows you to author exactly the way you want your report to be. And now, for the first time ever, we’re bringing you the same, great reporting suite on the Desktop. Say hello to ClientUI Reporting for WPF.</p>
<h1>All the great features you love. Even better.</h1>
<p>WPF <a href="http://www.codeproject.com/Articles/818281/Is-WPF-dead-the-present-and-future-of-WPF">has been and will continue to be</a> a great platform for line-of-business applications. Microsoft has <a href="http://blogs.msdn.com/b/dotnet/archive/2014/11/12/the-roadmap-for-wpf.aspx">stated it very clear</a> that WPF isn&#8217;t going away anytime soon as it&#8217;s the heart of the Windows itself, particularly on the recent paradigm shift in Windows 10 which puts everything back to the desktop mode. Similarly at Intersoft, we remain committed to continue improving and expanding our WPF toolset further. In overall, we have very exciting roadmap for the Windows platform, but I couldn&#8217;t unveil that yet at this time.</p>
<p>As the result of our commitment, the upcoming release will include a major update to ClientUI where we&#8217;ll be strongly focused in enterprise-grade components. In particular, we&#8217;ll be making available our ClientUI Reporting suite entirely to WPF. All the reports you have authored in Silverlight will continue to work in exactly the same way and manner in WPF.</p>
<p>Before I delve further, let&#8217;s get some refresh on the excellent features currently offered in the Reporting suite.</p>
<h2>Various report types support.</h2>
<p>Create any reports you like, from simple listing, multiple reports, invoice, master detail, group, hierarchical, table, label, to form and side-by-side reports, and much more.</p>
<p><a href="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/1446711114_full.png"><img class="alignnone size-large wp-image-4916" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/1446711114_full-1024x444.png" alt="1446711114_full.png" width="700" /></a></p>
<h2>Datasource-agnostic.</h2>
<p>Built for ultimate flexibility. You can connect to any datasource as long as they are reachable – from web services, Web API, WCF RIA Services, DevForce, to virtually any objects that can be serialized over the wire.</p>
<p><img class="aligncenter" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/1446712345_full-1024x394.png" alt="1446712345_full.png" width="700" align="middle" /></p>
<h2>Complex data operation support.</h2>
<p>Perform any complex data operation, completely run on the server-side, such as filtering, sorting and grouping.</p>
<p><img class="aligncenter" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/1446713144_full-1024x287.png" alt="1446713144_full.png" width="700" align="middle" /></p>
<h2>Rich report components.</h2>
<p>Utilize all of the report bands and components to make great-looking reports that will look good on any device.</p>
<p><img class="aligncenter" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/1446714461_full-1024x640.png" alt="1446714461_full.png" width="700" align="middle" /></p>
<h2>Comprehensive report parameter support.</h2>
<p>Pass any data as report parameters to be included in report rendering process. Native data types will be automatically associated with suitable editors. You can also easily perform any custom logic based on the given report parameters.</p>
<p><a href="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/Report-Parameters.png"><img class="aligncenter" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/Report-Parameters-1024x594.png" alt="Report Parameters" width="700" align="middle" /></a></p>
<h2>Pre-built conditional formatting.</h2>
<p>Change the appearance of report components depending on predefined conditions. For example, you can highlight several data bands in red, allowing the user to take notice whenever a certain condition is met, like when an item’s Quantity in Stock is reaching depletion. You can also display different conditions, such as data bar, color scale and icon set conditions.</p>
<p><a href="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/Screen-Shot-2015-11-06-at-11.42.28-AM.png"><img class="aligncenter" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/Screen-Shot-2015-11-06-at-11.42.28-AM-1024x612.png" alt="Formatting Conditions" width="700" align="middle" /></a></p>
<h2>Advanced globalization support.</h2>
<p>Reports run in multiple cultures and localization support. Your reports now speak with the reader’s native language. Confusion averted.</p>
<p><img class="aligncenter" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/1446714214_thumb-1024x292.png" alt="1446714214_thumb.png" width="700" align="middle" /></p>
<h2>Powerful scripting capability.</h2>
<p>Fully supports ClientUI powerful C#-style scripting, allowing you to perform any complex operations within the report document. The scripting feels natural and uses similar C# scripting language. You can use the full array of mathematics operation similar to the ones found in System.Math library.</p>
<p><img class="aligncenter" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/1446714385_thumb-1024x407.png" alt="1446714385_thumb.png" width="700" align="middle" /></p>
<p>That&#8217;s just a handful of features that I could mention here. For the complete feature list, please check it out <a href="http://www.clientui.com/Reporting">here</a>.</p>
<h1>Faster. Snappier. Desktop-class performance.</h1>
<p>Authoring enterprise reports on Silverlight is fast. On the desktop? It’s lightning fast. Harnessing the CPU cores as optimal as possible, we use the best algorithms to max out the reporting suite performance on the desktop. It’s all thanks to our team of expert engineers.</p>
<h1>Charts. Right in Your Reports.</h1>
<p>The long-awaited, Charting for ClientUI Reporting is finally here! With the new and improved ClientUI reporting, we not only add support for the desktop, we also added a set of new features that you will absolutely love: <strong>you can now display gorgeous charts right within the reports</strong>.</p>
<p><a href="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/1446624965_full.png"><img class="aligncenter" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/1446624965_full-1024x715.png" alt="1446624965_full.png" width="700" align="middle" /></a></p>
<p>You can now easily add various charts to your reports, such as area, bar, bubble, column, doughnut, line, pie, scatter, spline, and more. This opens up a plethora of new business scenarios in which visual charts might be favorable compared to data grid-based reports.</p>
<h1>Optimized for Windows 10.</h1>
<p>The new ClientUI Reporting experience is now optimized for Windows 10. Pay attention to the ribbon experience and see how it fits and blends with the overall Windows 10 aesthetics. You’ll begin to appreciate the small details in the engineering effort we’ve put so much into this remarkable reporting suite.</p>
<p><a href="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/1446708343_full.png"><img class="aligncenter" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/1446708343_full-1024x753.png" alt="1446708343_full.png" width="700" align="middle" /></a></p>
<p>The reporting suite has been tested with previous versions of Windows and still retains the same great look and fidelity.</p>
<p><a href="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/1446709196_full.png"><img class="aligncenter" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/1446709196_full-1024x780.png" alt="1446709196_full.png" width="700" align="middle" /></a></p>
<p>&nbsp;</p>
<h1>Built for Your Eyes.</h1>
<p>Our team of engineers used only the best-looking interface and rendering engine algorithm available, so it looks pixel-perfect and ultra-crisp, even if you’re running the reporting suite on a computer with a powerful display. To make that happen, we&#8217;ve fine-tuned every single ClientUI component – topping over 360 components – to work and look great on WPF.</p>
<p>See the result when the the reporting viewer running the chart is zoomed all the way to its maximum value of 250%.</p>
<p><a href="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/1446708704_thumb.png"><img class="aligncenter" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/1446708704_thumb-1024x640.png" alt="1446708704_thumb.png" width="700" align="middle" /></a></p>
<p>The reporting designer also retains the same great fidelity if the designer surface is zoomed all the way to its maximum value.</p>
<p><a href="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/1446708735_thumb.png"><img class="aligncenter" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/11/1446708735_thumb-1024x640.png" alt="1446708735_thumb.png" width="700" align="middle" /></a></p>
<p>&nbsp;</p>
<h1>It won’t be long. Coming soon in 2015 R2.</h1>
<p>We promise you it will be worth the wait. With the new ClientUI Reporting, we’re proud to say this is the most comprehensive and unmatched reporting suite in its class. With the power of desktop-class reporting engine, you can now author reports even faster and even add charts to it!</p>
<p>To get this feature immediately when it’s released, make sure your subscription is active by <a href="http://intersoftsolutions.com/store">renewing</a> your subscription today. In case your subscriptions have lapsed, please <a href="http://intersoftsolutions.com/#livechat">chat with us</a> for special subscriber promotions we&#8217;re running this month.</p>
<p>Cheers,<br />
Nicholas Lie</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.intersoftsolutions.com/2015/11/a-sneak-peek-at-clientui-vnext/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
