<?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; Updates</title>
	<atom:link href="http://blog.intersoftsolutions.com/category/updates/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>Crosslight 3.3 Adds New GridFragment and Advanced Location Service for Android</title>
		<link>http://blog.intersoftsolutions.com/2015/02/crosslight-3-3-adds-new-gridfragment-and-advanced-location-service-for-android/</link>
		<comments>http://blog.intersoftsolutions.com/2015/02/crosslight-3-3-adds-new-gridfragment-and-advanced-location-service-for-android/#comments</comments>
		<pubDate>Fri, 27 Feb 2015 14:21:00 +0000</pubDate>
		<dc:creator><![CDATA[Jimmy Petrus]]></dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Products]]></category>
		<category><![CDATA[Updates]]></category>
		<category><![CDATA[Crosslight]]></category>

		<guid isPermaLink="false">http://blog.intersoftpt.com/?p=4374</guid>
		<description><![CDATA[We’re excited to release Crosslight 3.3 today which includes dozens of  enhancements and stability improvements across various Crosslight components, thanks for your continuous support and feedback! Introducing the new GridFragment for Android, you can now easily display a collection of items in a nicely arranged Grid [...]]]></description>
				<content:encoded><![CDATA[<img width="300" height="270" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/02/1425133982_thumb-300x270.jpeg" class="attachment-post-thumbnail wp-post-image" alt="1425133982_thumb.jpeg" style="float:right; margin:0 0 10px 10px;" /><p>We’re excited to release Crosslight 3.3 today which includes dozens of  enhancements and stability improvements across various Crosslight components, thanks for your continuous support and feedback!</p>
<p>Introducing the new GridFragment for Android, you can now easily display a collection of items in a nicely arranged Grid layout. With full MVVM and data binding support built to the new Grid Fragment, you can swap the existing List layout with the new Grid layout by just changing the view’s fragment class – absolutely no changes on your existing UI logic or data access layer.</p>
<p><img class="full aligncenter" title="" src="http://blog.intersoftpt.com/wp-content/uploads/2015/02/1425133982_thumb.jpeg" alt="" align="middle" /></p>
<p class="">In addition to dozens of enhancements, this release also shipped an advanced location service for Android which offers highest level of location accuracy based on latest Google Services library. For more information, check out the complete release notes and update instructions <a title="" href="http://developer.intersoftpt.com/display/crosslight/Crosslight+3.0+Update+3+Release+Notes" target="_blank">here</a>.</p>
<p>We’re looking forward to deliver even more exciting features in the next iteration of our Crosslight release. Stay tuned!</p>
<p>P.S.: In case you haven’t aware, we’ve published Crosslight roadmap for 2015. Check it out <a title="" href="http://developer.intersoftpt.com/display/crosslight/Crosslight+Roadmap" target="_blank">here</a>.</p>
<p>Best,<br />
Jimmy</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.intersoftsolutions.com/2015/02/crosslight-3-3-adds-new-gridfragment-and-advanced-location-service-for-android/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Crosslight Sync Service Has Just Got Even More Powerful, And Smarter.</title>
		<link>http://blog.intersoftsolutions.com/2015/01/crosslight-sync-service-has-just-got-even-more-powerful-and-smarter/</link>
		<comments>http://blog.intersoftsolutions.com/2015/01/crosslight-sync-service-has-just-got-even-more-powerful-and-smarter/#comments</comments>
		<pubDate>Wed, 14 Jan 2015 03:36:11 +0000</pubDate>
		<dc:creator><![CDATA[Jimmy Petrus]]></dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Updates]]></category>
		<category><![CDATA[Crosslight]]></category>

		<guid isPermaLink="false">http://blog.intersoftpt.com/?p=4347</guid>
		<description><![CDATA[In my previous blog post, I have covered many enhancements we’ve made to the push notification service which we will ship in this month’s update, including the introduction of new push registration service, and bunch of improvements in notifications for Apple platforms. But that’s not [...]]]></description>
				<content:encoded><![CDATA[<img width="604" height="270" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/01/sync2-604x270.png" class="attachment-post-thumbnail wp-post-image" alt="Better Data Sync" style="float:right; margin:0 0 10px 10px;" /><p>In my <a href="http://blog.intersoftpt.com/2015/01/introducing-crosslight-push-registration-service/" target="_blank">previous blog post</a>, I have covered many enhancements we’ve made to the push notification service which we will ship in this month’s update, including the introduction of new push registration service, and bunch of improvements in notifications for Apple platforms. But that’s not all. This update will also include major improvements to synchronization service, form builder, and support for more enterprise application scenarios.</p>
<p>Over the past few months, our team has been busy improving the overall stability of synchronization service, in addition to implementing new exciting features requested by our customers. In this post, I will share what you can expect about data sync service in this update.</p>
<p>In a nutshell, Crosslight Sync Service is part of <b>Crosslight Enterprise App Framework</b> which enables developers to easily add two-way data synchronization functionality targeting multiple platforms including iOS, Android, and Windows. The sync service leverages multiple Crosslight technologies to achieve high-performance data sync, including comprehensive integration with push notifications, background service, app’s life cycle, as well as local data storage and Crosslight Entity Services in the server-side. To learn more about how data sync works in Crosslight, please head to <a title="" href="http://developer.intersoftpt.com/display/crosslight/Data+Synchronization" target="_blank">Data Synchronization</a> topic in our Developer Center.</p>
<p>In this post, I presume that you&#8217;re already familiar with Crosslight sync service. I’d like to share what’s new in sync service introduced in this update.</p>
<h1 class="">Performance and Stability Improvements</h1>
<p>When speaking of data sync, one of the most important aspects is its stabiilty and reliability, in addition to performance, of course. That’s why we decided to spent some time to revisit our data sync architecture and improve it further to meet today’s demanding cross-platform apps. First, we tweaked the overall performance by eliminating unnecessary processes in the client-side. In addition, the sync process will no longer have chance for re-entry if an existing session is in progress asynchronously.</p>
<p>The entire changes detection mechanism have been much improved, including new entities processing and updated entities processing. Pending changes made during offline have also been ensured to sync perfectly when online. In the sync’ed device, the updated entities are not only reflected in the list view, but also in the editing view — thanks to the smart merging feature of Crosslight&#8217;s entity manager.</p>
<p>To make it easier to understand how data sync works, I have prepared some animated clips using two iPhones. The sample app was installed on both devices, with push notification enabled. Changes on the right device will automatically sync to the left device in near real time — and more importantly — with ultra-smooth animation. See the clip below to get a clearer picture.</p>
<p><a href="http://blog.intersoftpt.com/wp-content/uploads/2015/01/14210703841.gif" target="_blank"><img class="full aligncenter" title="" src="http://blog.intersoftpt.com/wp-content/uploads/2015/01/14210703841.gif" alt="" align="middle" /></a></p>
<h1 class="">Synchronizing Deleted Entities</h1>
<p class="">The deletion support, new in this release, is now fully supported in Crosslight sync service. To allow deleted entities to be detected and sync’ed back to other clients, the data needs to remain in the database physically even after deleted. One of the most efficient way to determine the deleted records is to introduce a new boolean field, typically called IsDeleted, which will be set to true in the case of deletion. Called “logical delete”, Crosslight now fully support this feature in both runtime and designer level. At the simplest, you just need to specify the logical delete column in the Crosslight Entity Designer in Visual Studio. This will automatically enable delete support in the sync service.</p>
<p>The video below shows how deleted entities sync works.</p>
<p><a href="http://blog.intersoftpt.com/wp-content/uploads/2015/01/14211626581.gif" target="_blank"><img class="aligncenter full" title="" src="http://blog.intersoftpt.com/wp-content/uploads/2015/01/14211626581.gif" alt="" align="middle" /></a></p>
<p class="">As seen above, the item in the left device will be smoothly removed from the list as the sync service detects the deletion from the server. Although the clip uses only two devices for demo purpose, the sync service works consistently with any number of devices — across multiple platforms.</p>
<h1 class="">Smarter User Experience</h1>
<p class="">The sync service is not just about data management. In fact, the user experience must be thoughtfully designed to give an intuitive feedback in response to the data sync. Otherwise, users might be looking at a record no longer exist in the server. Fortunately, the enhanced Crosslight App Framework have got you all covered. The latest update now includes automatic delete detection in both editor and list view.</p>
<p class="">When the edited item was deleted due to sync, the editing form will be automatically closing.</p>
<p><a href="http://blog.intersoftpt.com/wp-content/uploads/2015/01/1421162915.gif" target="_blank"><img class="aligncenter full" title="" src="http://blog.intersoftpt.com/wp-content/uploads/2015/01/1421162915.gif" alt="" align="middle" /></a></p>
<p class="">Likewise, if the app is showing a list of tasks which project has just been deleted, Crosslight now automatically navigate back to the parent view.</p>
<p><a href="http://blog.intersoftpt.com/wp-content/uploads/2015/01/14211639641.gif" target="_blank"><img class="aligncenter full" title="" src="http://blog.intersoftpt.com/wp-content/uploads/2015/01/14211639641.gif" alt="" align="middle" /></a></p>
<p class="">And to make it more complex, we even tried to edit a task in one device, then delete its owning project on other device. The result is simply consistent and reliable. It just works!</p>
<p><a href="http://blog.intersoftpt.com/wp-content/uploads/2015/01/14211641861.gif" target="_blank"><img class="aligncenter full" title="" src="http://blog.intersoftpt.com/wp-content/uploads/2015/01/14211641861.gif" alt="" align="middle" /></a></p>
<p>With these smart features built right out-of-the-box, the apps you built on Crosslight App Framework will enjoy these features as soon as you apply this new update.</p>
<h1 class="">Download Now</h1>
<p>You can enjoy all these great exciting features today by downloading the latest build (<b>3.0.5000.184</b>) from <a title="" href="http://git.intersoftpt.com/projects/CROS/repos/updates/browse/Crosslight3_0_5000_184" target="_blank">our Git server</a>. See the complete changes in the <a title="" href="http://developer.intersoftpt.com/display/crosslight/Crosslight+3.0+Update+2+Release+Notes" target="_blank">release notes</a>.</p>
<p>To test drive the new features as seen in the above videos, please download the updated <b>OSSyncSampleFromPNS</b> sample in <a title="" href="http://git.intersoftpt.com/projects/CROS/repos/samples/browse/OSSyncSampleFromPNS?at=refs%2Fheads%2Ffeature%2Fenhanced-sync-push" target="_blank">enhanced-push-sync</a> branch.</p>
<p>That’s not all. In the next post, I will cover many more new stuff that we plan to make available this month.</p>
<p>Happy sync’ing!</p>
<p>Best,<br />
Jimmy</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.intersoftsolutions.com/2015/01/crosslight-sync-service-has-just-got-even-more-powerful-and-smarter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introducing Crosslight Push Registration Service</title>
		<link>http://blog.intersoftsolutions.com/2015/01/introducing-crosslight-push-registration-service/</link>
		<comments>http://blog.intersoftsolutions.com/2015/01/introducing-crosslight-push-registration-service/#comments</comments>
		<pubDate>Sun, 11 Jan 2015 12:08:11 +0000</pubDate>
		<dc:creator><![CDATA[Jimmy Petrus]]></dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Products]]></category>
		<category><![CDATA[Updates]]></category>
		<category><![CDATA[Crosslight]]></category>

		<guid isPermaLink="false">http://blog.intersoftpt.com/?p=4320</guid>
		<description><![CDATA[First of all, happy new year to you all! To kick off the new year, we are pleased to share several exciting new stuff with you. Since version 2, Crosslight has introduced cross-platform push notification support, including the client platforms (iOS, Android, Windows) and the [...]]]></description>
				<content:encoded><![CDATA[<img width="604" height="270" src="http://blog.intersoftsolutions.com/wp-content/uploads/2015/01/1420978088_thumb-604x270.png" class="attachment-post-thumbnail wp-post-image" alt="1420978088_thumb.png" style="float:right; margin:0 0 10px 10px;" /><p>First of all, happy new year to you all! To kick off the new year, we are pleased to share several exciting new stuff with you. Since version 2, Crosslight has introduced cross-platform push notification support, including the client platforms (iOS, Android, Windows) and the server-side messaging. Not only that, we also implemented the push features to the Crosslight business templates, so you can configure and enable it very quickly.</p>
<p>As our customers build more apps with Crosslight, we’ve frequently received questions about more advanced usage of push notification, and more to the way how the push registration can be customized further. For instance, the initial implementation supports push registration only in startup, while many scenarios demand registration to happen during successful user login.</p>
<p>To accomodate these scenarios, we introduced a new service called <i>PushRegistrationService</i> built into the Crosslight App Framework. Read on.</p>
<h1 class="">Push Registration Made Easy</h1>
<p class="wrapped">Implementing push registration isn’t a straightforward task, even with the availability of cross-platform push notification services at your fingertips. Typically, you have to store the device token to your own database presumably via REST service, then store the record locally so your app doesn’t end up registering the same device multiple times. Fortunately, the new push registration service has encapsulated all these processes into functions that you can call at your convenience — no more tedious, redundant code.</p>
<p>To give you a preview, the previous dozens line of code to handle registration are now only a couple line of code.</p><pre class="crayon-plain-tag">if (appSettings.EnablePushNotification)
{
    var pushRegistrationService = this.GetService();
    pushRegistrationService.RegisterPushNotificationAsync();
}</pre><p>Notice that we&#8217;ve also added a new property named <i>EnablePushNotification</i> in AppSettings, so you can easily turn this feature on or off — with the convenience of a property set.</p>
<p>When receiving the device token from the Platform Store, all you need to do now is simply calling the provided <i>SaveDeviceTokenAsync</i> and <i>RegisterDeviceTokenAsync</i> which will do the local caching and device token registration to the app’s server. See the code snippet below.</p><pre class="crayon-plain-tag">if (await pushRegistrationService.ShouldRegisterDeviceTokenAsync(deviceToken))
{
    await pushRegistrationService.SaveDeviceTokenAsync(deviceToken, user, false);
    await pushRegistrationService.RegisterDeviceTokenAsync(deviceToken, user);
}</pre><p>Pretty neat, isn&#8217;t it?</p>
<p>If you would like to extend or customize the push registration service, it’s easy to do it by yourself. The registration service conforms to the Crosslight service architecture and can be easily replaced through service provider registrar at any point in your app.</p>
<h1 class="">User-based Push Registration</h1>
<p>In addition to the new registration service, we have also added support for user-based push registration in this update. In the upcoming updates to the business templates, we have provided a comprehensive boilerplate for the user-based push registration support which include:</p>
<ul>
<li>Enhancements to the CrosslightDb by adding <i>UserId</i> column to the <i>DeviceToken</i> table.</li>
<li>Introduce a new property in AppSettings called <i>PushRegistrationMode</i>, with possible values: <i>OnAppStart</i> and <i>OnUserLogin</i>. This allows you to change the registration timing with just a  property set.</li>
</ul>
<p><a href="http://blog.intersoftpt.com/wp-content/uploads/2015/01/1420978088_full.png" target="_blank"><img class="aligncenter full full full" title="" src="http://blog.intersoftpt.com/wp-content/uploads/2015/01/1420978088_thumb.png" alt="" align="middle" /></a></p>
<p class="">To make the implementation easy, we introduced a new <i>UserChanged</i> delegate event which will be consistently and reliably called everytime a user has changed. This allows us to streamline all user-dependent tasks in this event delegate, making the application easier to maintain and extend in the long run. In contrary, without the event, you will have to write code in multiple places in the ViewModel to anticipate and respond to the user changes.</p>
<p>Here’s a code snippet of how the <i>UserChanged</i> event is implemented, along with the user-based push registration implementation.</p><pre class="crayon-plain-tag">protected virtual void OnUserChanged(User user)
{
    if (user != null)
    {
        var appSettings = Container.Current.Resolve&lt;AppSettings&gt;();

        // Push notification registration
        if (appSettings.EnablePushNotification)
        {
            if (appSettings.PushRegistrationMode == PushRegistrationMode.OnUserLogin)
            {
                var pushRegistrationService = ServiceProvider.GetService&lt;IPushRegistrationService&gt;();
                pushRegistrationService.RegisterPushNotificationAsync();
            }
        }

        // perform data sync
        this.InitializeDataSynchronization();

        // refresh user info in the drawer UI
        ((NavigationViewModel)this.LeftViewModel).InitializeUser();
    }        
}</pre><p>As seen above, the <i>OnUserChanged</i> method is the best entry point for user-dependent task which will be called reliably during registration, first login, automated login (second launch), as well as logout. Of course, you can feel free to put any user-initialization code in the above method.</p>
<h1 class="">Push Notification Support for iOS 8</h1>
<p class="wrapped">Still in the push notification context, this update also ships with improved push notification service for iOS platform, specifically including user notification support introduced in iOS 8. Note that the service remains backward compatible with iOS 7.</p>
<p>On the server-side, the push messaging for Apple Push Server has also been enhanced to use TLS protocol for better security and delivery rate. This change reflects <a title="" href="https://developer.apple.com/news/?id=10222014a" target="_blank">Apple’s documentation</a> which state that SSL 3.0 support has been dropped in favor to TLS.</p>
<h1 class="">Updated Samples</h1>
<p>To demonstrate the new services, features and design patterns introduced in this release, we have updated our samples with best practice to implement user-based push registration. Check out the updated <b>OSSyncSampleFromPNS</b> sample from the <a title="" href="http://git.intersoftpt.com/projects/CROS/repos/samples/browse/OSSyncSampleFromPNS?at=feature/enhanced-sync-push" target="_blank">enhanced-sync-push</a> branch.</p>
<p>The sync sample is one of the most comprehensive samples that shows a number of features working in harmony together. In addition to the push registration revamp in the client-side, we have also improved the overall performance of data synchronization service. In particular, on the server-side, the app&#8217;s controller is now enhanced to notify changes the same users but excluding the originating device itself. This is an <a title="" href="http://git.intersoftpt.com/projects/CROS/repos/samples/browse/OSSyncSampleFromPNS/SyncSample.WebApi/Controllers/CrossTaskController.cs?at=refs%2Fheads%2Ffeature%2Fenhanced-sync-push" target="_blank">interesting improvement</a> that we believe you should check out and apply necessarily in your apps.</p>
<h1 class="">Download Today</h1>
<p class="wrapped">Download the latest Crosslight nightly build (<b>3.0.5000.180</b>) today which is currently available from <a title="" href="http://git.intersoftpt.com/projects/CROS/repos/updates/browse/Crosslight3_0_5000_172" target="_blank">our Git server</a>. To learn the complete changes made in this update, please refer to the <a title="" href="http://developer.intersoftpt.com/display/crosslight/Crosslight+3.0+Update+2+Release+Notes" target="_blank">release notes</a>.</p>
<p>The final build for Crosslight 3 Update 2 will be available later this month. A new installer will be also made available at the same time which includes the updated business project templates and Crossilght item templates for iOS Unified.</p>
<p>Note: Due to the major revamp of push registration implementation, we highly recommend you to upgrade your projects to leverage the new push registration service for best reliability and stability. In order to do so, ensure you make changes to the implementation completely by reviewing the <a title="" href="http://git.intersoftpt.com/projects/CROS/repos/samples/commits/1025214ae4cd1c575f589f289e89d7279debe05b" target="_blank">changes</a> in the commit we did to our sample.</p>
<p>In the next post, I will share many exciting new features and improvements that we’ve done in data access, particularly the synchronization service. Stay tuned!</p>
<p>Best,<br />
Jimmy</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.intersoftsolutions.com/2015/01/introducing-crosslight-push-registration-service/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
