Skip to end of metadata
Go to start of metadata

This update is a service pack release which includes many new features and significant enhancements to the enterprise application framework and Crosslight core components. It adds a brand new cross-platform localization service which lets you easily localize the resources bound to the views across all supported platforms (iOS, Android, Windows Phone 8, and Windows 8). The localization service supports dynamic language change at runtime, so you can build apps that allow users to change their language on-the-fly, without requiring app restart.

In addition, this release also delivers 100+ enhancements based on customer's feedback including new item templates for Visual Studio and Xamarin Studio, improved Form Builder, major performance enhancements for data components, support for more advanced data validation scenarios, added support for app-wide single sign-on, and more. This release also marks a major milestone for Crosslight's Android platform as the core framework has been completely re-engineered for best stability and reliability, including elegant rotation handling with automatic UI state persistence.

Upgrading to Crosslight 2 Update 3 is free to all customers with active subscriptions.

To apply this update, you are required to re-install Crosslight using the latest installer (Intersoft Studio 2014 Service Pack 1) which you can download here.
Quality Band [?]STABLE
Build Number2.0.5000.65
Last Build DateJuly 25, 2014

Release Highlight

The following sections highlight the noteworthy enhancements and new features included in this update.

New Localizable Business Project Template

The Crosslight 2 release previously introduced a powerful business template which includes tons of time-saving features designed for business scenarios such as remote data access management, integration with social network for login and authentication, user management, push notifications, and much more. In this latest release, the business template has received major upgrades which result to a brand-new template, accessible right from Crosslight Project Wizard.

Introducing localizable business template, you can now easily create multi-lingual business apps that work across multiple platforms, including iOS, Android and Windows. Specifically, this template leverages the new localization service which is also added in this release. The template provides the best practice and guidelines to implement localization in Crosslight apps. You will notice that all textual elements are now centralized in the Shared project under the Resources folder. From here, you can then easily add new resources to add support for more languages in your Crosslight apps.

For more information about this template, see Localizable Business Template.


50+ Item Templates for Visual Studio

You asked – so we delivered. This release now adds more than 50 project item templates that integrate to your favorite IDE – Visual Studio 2013. You can now quickly add most frequently added items to your Crosslight apps such as binding providers and view models. In addition, item templates for each platform are also included, such as the various view controllers for iOS, activity and fragments for Android, and pages for Windows. View template customization for iOS and Android is much easier now, thanks to the comprehensive view templates that include XIB file along with the designated class file.

To add a new Crosslight item to your project, simply bring the Add New Item dialog such as shown in the following screenshots.

To see the complete list of Crosslight item templates shipped in this release, see Using Crosslight Item Templates.

Dynamic Localization Service

New in this release, Crosslight localization service is the industry's first cross-platform solution for building multi-lingual mobile apps. Instead of defining the resources in each platform, the localization service lets you streamline the multi-language resources right in the Shared project – thanks to the solid Crosslight localization architecture that built upon observable design pattern. Best of all, the localization service supports dynamic language change at runtime. This feature allows your app to update the preferred language on-the-fly, without requiring app restart. With just an API call, Crosslight automatically synchronize all textual content currently shown in the view.

The following diagram shows the overview of Crosslight localization architecture.

In addition to standard controls, the localization service also supports localization for all platform-specific view elements, such as the navigation items in iOS, action bar menu in Android, and app bar in Windows. The following image shows the localization result of an iOS app.

For more information about Crosslight localization architecture and how to use the localization service, see Localizing Resources.


New View Template Definition for iOS

Creating custom header and footer template in iOS table view is now simpler and easier than ever. In the past, you have to deal with manual object registration in the view controller which require additional code. In this release, the table view introduces HeaderViewTemplate and FooterViewTemplate properties which you can simply override and return the desired template.

Here is the code example to define a header view template in a table view controller.

One of the noteworthy features built into the view template is the smart object and binding discovery. If the view template contains named objects and there are binding definitions for those named objects, the objects will be automatically bound to the data at runtime. As the result, a large number of repetitive code can be now eliminated.

The following illustration overviews how easy it is now to create a view template in iOS, from design to results.

The project item template for custom view is also available in this release, making it easy for you to add new custom views in Visual Studio. For more information about the new item templates, see Using Crosslight Item Templates.

To learn more about Crosslight architecture, MVVM design pattern, and data binding, see Understanding Crosslight Architecture and Fundamentals.

Major Stability Improvements

In addition to new features, this release is strongly focused on stability improvements across all platforms and components. Specifically, this release marks an important milestone for the Android platform which includes major infrastructure revamp and re-engineering to achieve best performance and consistency. It has been further stress-tested and passed rigorous user experience testing.

In general, Crosslight for Android has been specifically improved in the following areas:

  • Migrated Android framework to use Xamarin.Android.Support.v4 assembly (previously Mono.Android.Support.v4) which provides better compatibility with Google services and other third party components.

    This update requires you to change the assembly reference of the Android project from Mono.Android.Support.v4 library to Xamarin.Android.Support.v4 library. No code changes is required.

    Applying the new library on Mac:

    Go to /Library/Application Support/Intersoft Solutions/Crosslight 2/common/Xamarin/Android and copy the Xamarin.Android.Support.v4 library to your desired directory. Change the Android project assembly reference to the new assembly.

    Applying the new library on Windows:

    Go to /Program Files/Intersoft Solutions/Crosslight 2/common/Xamarin/Android and copy the Xamarin.Android.Support.v4 library to your desired directory. Change the Android project assembly reference to the new assembly.

    When using this library, take note that the first build might take some time as the library will download the necessary components first to the folder.

    Also, check out the Xamarin Components page for regular updates on the Xamarin.Android.Support.v4 library.

  • Revamped life cycle and infrastructure for activity and fragments to support better ViewModel state persistence during nested navigation, layout change, and other scenarios.
  • Elegant rotation support, ensuring view state is properly restored without performance degradation. For instance, the list view should maintain its scroll position, and selection should be keep highlighted.
  • Improved performance with more efficient resources allocation in various Android components such as the tab fragments, view pager, form activity, nested master detail fragment, and more.
  • Improved stability and reliability to the core mobile services such as the camera services, location services, social services and more.

Support for Application-wide Single Sign-on

Crosslight 2 introduces many new services required to build business apps such as user services, social network services, authentication services and more. It originally includes support for single sign-on which works globally across multiple apps. Although this feature is ideal for more complex enterprise apps, the global-scope single sign-on may not be ideal for simple, standalone apps. In this release, the three essential services – data, authentication and social network – have been enhanced to support application-wide single sign-on. The business templates have been modified to use this new mode by default.

If you are using Crosslight's enterprise app framework, you can easily apply the app-wide single sign-on to your existing Crosslight apps by simply setting the SingleSignOnAppId property in the AppSettings such as shown below.


As seen in the above code snippet, the SingleSignOnAppId is set to PersonalExpenseApp. This means that the login session will be only valid to particular apps with the same identifier. This feature gives you the flexibility to determine whether you prefer to scope the single sign-on only to a particular app – or to a group of apps.

Alternatively, to see this feature in action, you can download the latest SyncSample which has been improved to leverage this new feature.


Improved Entity Container Performance

In this release, the EntityContainer also enjoys some of major performance boost, especially in attaching entities, adding entities, removing entities and other relationship management, supporting simple and advanced scenarios.

Simple Scenario

Advanced Scenario


Improvements to Enterprise App Framework

Enterprise App Framework is introduced in Crosslight 2 to provide a set of design best practices and guidelines in building cross-platform enterprise apps. In this release, the framework has received significant improvements to cover even wider range of scenarios. It adds support for:

  • Retrieving data through named query –  CROS-341
  • Refactored account API to support single-sign-on scenario with app-wide scope –  CROS-342  
  • In addition, changes to the related entities can now be easily tracked during editing, see  CROS-357

More improvements can be seen in the update list below.

Sample Updates

Along with this release, all samples have been updated to reflect the changes and leverage the new features available in this release. Reported issues related to samples have also been fixed and committed to the master branch. Please download the latest samples from the master branch here. For more information about configuring samples in your development machine, see Configuring Samples.

API Documentation Updates

This service pack release includes over hundreds of new APIs for localization framework and many other enhancements across all view components. To help you discover and learn more about the new API, the Crosslight API documentation has been updated to reflect the API changes in this release. Visit Crosslight API Documentation.

About Crosslight 2

This update is building on Crosslight 2 release which includes 200+ new features that make enterprise cross-platform apps development a breeze. Take a look at all the new features in the Crosslight 2.0 Release Notes  and see what you are missing out on!

Download Crosslight 2 today.

Updates and fixes in this release

This release includes the following updates and bug fixes:

T Key Summary P Status Component/s
Bug CROS-456 Error when parsing decimal in Winphone device. Major Resolved Windows Phone
Task CROS-455 Selection Editor causes application crash on saving selection. Major Closed Windows Phone
Bug CROS-452 An error occurred after pressing the "Large Indicator" button in Services samples. Major Resolved Windows Phone
Bug CROS-449 Incorrect "Done" icon, while in DatePicker state Major Resolved Windows Phone
Bug CROS-444 When synchronized data completed, the existing item display is not updated. Major Closed Frameworks
Improvement CROS-440 Disabled Pull to Refresh feature while in searching mode. Major Resolved
Task CROS-439 Implement Editor Type Selection in WinPhone Form builder. Major Closed Windows Phone
New Feature CROS-438 Support Editor Type Picker in WinPhone Form builder Major Closed Windows Phone
Bug CROS-437 Synchronize navigation drawer state between view and ViewModel. Major Resolved Android
Bug CROS-436 Picker editor not retaining its selection in FormActivity. Major Resolved Android
Improvement CROS-435 Change EditorType.Selection editor behavior in FormActivity. Major Resolved Android
Bug CROS-434 Navigated parameter from drawer page should return navigationviewmodel instead of drawerviewmodel Major Closed Windows Phone
New Feature CROS-433 Improvements in Form Builder: NullValueText, MaxNumberOfLines and DetailAlignment are now considered. Major Closed iOS
New Feature CROS-432 Added SystemLanguage to IApplicationContext interface. Major Closed Core
Bug CROS-428 Fix "Email with Attachment" feature on ServicesSamples. Major Resolved Android
Bug CROS-427 TextView of DatePicker gets updated even when user cancel changes in DatePicker. Major Closed Android
Bug CROS-426 DatePicker has dark background when using Holo.Light theme. Major Resolved Android
Improvement CROS-425 Change to-be-depcreated Mono.Android.Support.v4 references to Xamarin.Android.Support.v4. Major Closed
Improvement CROS-416 Retained scroll position for ListActivity and ListFragment. Major Closed Android
Improvement CROS-415 Improve memory management with smart disposal mechanism. Major Closed
Improvement CROS-414 Improved ListView searching mechanism. Major Closed Android
Improvement CROS-413 Improved ListView selection mechanism. Major Closed Android
Improvement CROS-412 Improved ViewModel retaining mechanism. Major Closed Android
Improvement CROS-411 Improved Activity and Fragment navigation. Major Closed Android
Improvement CROS-410 Improved rotation handling. Major Closed Android
New Feature CROS-407 Added dynamic localization support to view controller, navigation item, and form builder. Major Closed Android, Core, iOS, Windows Phone
New Feature CROS-406 Added HeaderViewTemplate and FooterViewTemplate properties to UITableViewController, supporting template instantiation with automatic data binding. Major Closed iOS
Task CROS-402 Improve SQLite select (query) performance. Major Closed Core, Data
Task CROS-401 SQLite adds a new save changes method for bulk update. Major Closed Core, Data
Task CROS-400 SQLite returns key mapping after insert. Major Closed Core, Data
Bug CROS-399 Deleting an item causes error in Fragment. Major Resolved Android
Task CROS-398 Entity Designer is now enhanced to support multiple primary keys. Major Closed Core, Data
Improvement CROS-394 Support character limit (MaxLength) for text input editors in Form Builder. Major Closed Android, Core, iOS, Windows Phone
Task CROS-392 Added LocalizationService for cross-platform resource localization with a single code base. Major Closed Core, Services
Bug CROS-389 Application crashes when the culture on device is set to non US. Major Closed
New Feature CROS-383 Enhanced activity presenter to support display relative to the view. Major Closed Windows 8
New Feature CROS-382 Enhanced activity presenter to support display relative to the view. Major Closed Windows Phone
New Feature CROS-381 Added a new List page component featuring built-in search capability. Major Closed Windows Phone
New Feature CROS-380 Improved authentication and social network service to consistently support application-scoped single sign-on. Major Closed Core, Frameworks, Services
Bug CROS-377 Fixed LocalDataRepository.SaveChanges delete logic when synchronization is not enabled. Major Resolved Frameworks
New Feature CROS-375 Implement ObservableResource to support dynamic localization at runtime. Major Closed Core, Services
New Feature CROS-374 Implement binding support to Localization context Activity.Label, Fragment.Label and MenuItem Major Closed Android
New Feature CROS-372 Improved caching mechanism for TabActivity and TabFragment. Major Closed Android
Bug CROS-371 Fix direct source binding issue in Fragment. Major Resolved Android
Bug CROS-354 Spinner throw error when provided with null value Major Resolved Android
Bug CROS-352 Updating nested navigation property does not update the target foreign key. Major Resolved Core, Data
New Feature CROS-351 SQLite auto insert related entity enhancement Major Closed Core, Data
Bug CROS-329 Deleting an item in MyInventory sample causes the application to crash. Major Resolved Android
Bug CROS-327 ActionBar is not closed after deleting multiple items in WebAPI-enabled Inventory Tracker. Major Resolved Android
Bug CROS-326 Delete command in action bar is disabled in WebAPI-enabled Inventory Tracker sample. Major Resolved Android
Bug CROS-325 Password textbox is not focusable in ServicesSamples. Major Resolved Android
Bug CROS-324 Capture photo doesn't detect if photo/image is available or not in ServiceSamples. Major Resolved
Bug CROS-322 No sound is played when pressing "Play Sound" in ServicesSamples. Major Resolved Android
Bug CROS-321 Unable to load the photo editor in ServicesSamples. Major Resolved
Bug CROS-319 Pressing "Monitor Connection Changes" will close the application unexpectedly in ServicesSamples. Major Resolved
Bug CROS-318 Pressing "Change Password" causes unexpected close in SyncSample. Major Resolved Android
Bug CROS-317 Name is not displayed under user's photo in the navigation drawer of SyncSample. Major Resolved
Bug CROS-316 Changes made on "Text Size" field doesn't get saved in the settings menu of SyncSample. Major Resolved Android
Bug CROS-315 Unable to post to Twitter in ServicesSamples. Major Resolved
Bug CROS-314 Performing Nested Modal Navigation in ServicesSample will crash the application. Major Resolved Android
Bug CROS-313 OK and Close button are not responsive in ServicesSamples. Major Resolved Android
Bug CROS-312 Unable to close navigation in ServicesSample, Basic Navigation sample. Major Resolved Android
Bug CROS-311 Selecting all items and perform "Mark as Sold" or "Delete" will cause exception in WebAPI-enabled Inventory Tracker sample. Major Resolved Android
Bug CROS-310 Inconsistent search result in WebApi-enabled Inventory Tracker. Major Resolved
Bug CROS-307 Unable to perform search on tablet devices. Major Resolved Android
Bug CROS-306 After item name is updated, the item list won't sort correctly in MyInventory sample. Major Resolved Android
Bug CROS-305 Search result is lost after rotated. Major Resolved Android
Bug CROS-304 Rotating the device when loading the application will crash the application in ReportingSample. Major Resolved
Bug CROS-303 Unable to select radio button in MVVMSamples, IoC Container Sample. Major Resolved
Bug CROS-302 Delegate Command and Loan Calculator Sample in MVVMSamples crash if alphanumeric is inputted. Major Resolved Android
Bug CROS-301 Scroll position not retained in back navigation in DataSamples. Major Resolved Android
Bug CROS-300 MessagePresenter shows the wrong information in DataSamples, Single Delete sample. Major Resolved Android
Bug CROS-299 Cannot perform multiple selection in ListView. Major Resolved Android
Bug CROS-298 Unable to perform single selection in ListView. Major Resolved Android
Improvement CROS-223 Major performance improvement in Entity Container data component when managing complex relationship. Major Closed Core, Data
Task CROS-102 SQLite now supports multiple primary keys. Major Closed Core, Data
Task CROS-101 Entity Container now supports multiple primary keys. Major Closed Core, Data

For more information about release band quality and how to obtain and apply updates, see Updating Crosslight.