Business apps often have similar functions between one and another. A highly reusable application framework can dramatically reduce a lot of code redundancy and improve development efficiency. This enables your development team to rapidly work with multiple projects using the same code base and design pattern.
The following are some of the common functions seen in a business application.
- Data access
- User management and authentication (registration, login with social media, etc)
- Offline data support
- Incremental loading for large data
- Pull to refresh
- Data synchronization
- Push Notification
Crosslight provides a comprehensive application framework, called Enterprise App Framework, which includes many of the functionality mentioned above. More importantly, it serves as the best practices and guidelines for data access strategies covering authentication, user management, data repositories, and much more. Designed with solid design patterns, the app framework provides the power and flexibility you need to rapidly build enterprise-grade mobile apps.
The following illustration overviews the component stacks in Enterprise App Framework.
This page guides you through the steps to build data-driven apps with Enterprise App Framework.
Design Pattern Overview
When building an application, you might encounter similar challenges from one application to another, from one module to another, or even one function to another. Instead of re-inventing the wheels to address each challenge, it is much efficient to solve similar challenges with consistent yet extensible design patterns. Enforcing solid design patterns will improve overall code quality and maintainability, as well as enabling more rapid development experience.
To learn more about design pattern, see Design Pattern Overview.
Enabling Data Access Using App Framework
Data access is a common process that most business apps typically require. Enterprise App Framework has a vast array of components that enable you to build data-driven apps easily and elegantly.
To learn more how to enable data access using Enterprise App Framework, see Enabling Data Access.
User Management And Authentication
Crosslight uses Microsoft ASP.NET Identity for its user management back-end. The entity model, entity context and API controller that supporting the Microsoft ASP.NET Identity is all provided by Crosslight Business Template. You can utilize the provided user management and authentication within your application by using the client-side counter part provided Enterprise App Framework.
To learn more how to do user management and authentication using Enterprise App Framework, see User Management and Authentication.
Offline Support With Local Storage
Depending on application's requirements, you might need a local data storage to keep the data locally for offline use. You can use Crosslight SQLite to manage your local data storage elegantly. Enterprise App Framework encapsulate the functionality provided by Crosslight SQlite to a SQLiteService that provides more straight forward api to enable and using the local data storage.
To learn more how to enable and use local storage using Enterprise App Framework, see Offline Support with Local Data Storage.
Enabling Incremental Loading
The incremental loading is the process of loading data in small chunks instead of the entire set of data. Imagine you a small number of records, perhaps 10,000 records. When the user navigates to the view model, then the process of loading 10,000 records data starts, it will take a long time for the operation to complete. The incremental loading technique is an excellent approach to tackle this scenario. Instead of loading everything at once, it is more preferable loading data in small chunks.
To learn more how to enable incremental loading in your application see, Enabling Incremental Loading.
Enabling Pull To Refresh
Pull to refresh is a feature that allows you to refresh data using pull-to-refresh gesture. Crosslight fully supports this feature in both framework and UI layers. To enable it, you can use the ISupportRefresh interface or use the DataListViewModel<TEntity, TRepository> class provided in the app framework.
To learn more how to enable pull to refresh in your application, see Enabling Pull to Refresh.
Enabling Data Synchronization
Most applications typically require access to a remote data source, either on their own application data service or public data services. The access to these data services is highly dependent on data connectivity. When the data connectivity is not stable or hard to come by, the application will be not functional.
To overcome this issue, most applications now support an offline data storage that keep all or portion of data in the device's storage. When the remote server is unreachable due to connection issues, users can still work with the application by reading the local data. This scenario introduces the needs of two-way data synchronization to sync the modified local data to the server and vice versa.
Enterprise App Framework leverages the existing Crosslight core services such as SQLite and EntityContainer to provide comprehensive functionality allowing you to enable data synchronization feature easily.
To learn more how to enable data synchronization in your application, see Enabling Data Synchronization.
Obtaining the Source Code
You can obtain the source code for the App Framework at the Git repository.