Key Features

The following are some of the main features of ComponentOne Studio for Entity Framework (SEF) that you may find useful:

      Cross Platform Support

SEF includes a C1DataSource component which allows you to combine multiple client view sources using Entity Framework or RIA Services. C1DataSource is supported in Silverlight 4, WPF and even WinForms (.NET 4.0).

      Smart Client-side Caching

The key to most of SEF’s features is its built-in client-side data cache. SEF maintains a cache of entities on the client. When new queries are executed, it does not necessarily go to the server. It checks the client-side cache first and will not go to the server if it can find the result in the cache. This significantly improves performance and speed because it minimizes the number of trips to and from the server.

      ContextManagement

With SEF you can use a single data context for your entire application. This allows you to forget the troubles of programming against multiple contexts across multiple views. Without SEF you might have multiple contexts which can be very difficult to write code when you need to use entities from different contexts together. This feature is made possible by the smart client-side cache.

      Memory Management

SEF is optimized for both performance and memory consumption. It manages memory resources for you releasing old entity objects in the cache when necessary to prevent memory leaks. In doing so, it fully preserves consistency by maintaining required entities and entities modified by the user.

      Live Views with LiveLinq

LINQ is the perfect tool for transforming raw data into custom views. SEF makes LINQ even more powerful by making LINQ query statements live. SEF includes ComponentOne LiveLinq, an extension library which augments the functionality of LINQ to speed up queries and provide live views. With LiveLinq you can shape your view however you want using LINQ operators without losing full updatability and bindability. “Bindability” means that your views are not just static snapshots of their source data. They are “live” and automatically reflect changes in the data. With LiveLinq your query results are kept up-to-date without re-populating every time changes in your data occur.

      Virtual Mode for Large DataSets

Handle infinitely large datasets with SEF’s Virtual Mode. Virtual Mode allows you to navigate through large datasets asynchronously. It works like paging on the data layer but the user can scroll through the data as if all rows were on the client. As the user scrolls, chunks of data are retrieved from the source page by page and disposed of as necessary. You can use Virtual Mode with any GUI control, such as a DataGrid, C1FlexGrid, or any control you want. Data can also be modified. This feature is transparent to the developer; you can turn on Virtual Mode with one simple property setting.

      Paging with Data Modification

For applications that prefer a paging interface, SEF also supports paging without any limitations on data modification. That means users can make changes on multiple pages in one session before having to push the changes back to the database. This is a substantial improvement over other paging implementations such as with the Microsoft RIA Services DomainDataSource. Paging with C1DataSource is also supported in WinForms and WPF too where paging is not provided.

      Server-side Filtering

Data brought from the server to the client usually needs to be filtered, or restricted in some way, to avoid moving large amounts of data over the wire and heaping it on the client. SEF makes this common task very simple. Instead of doing it manually in code, you can specify server-side filters as simple property settings on C1DataSource.

      Client-Side Transactions

SEF gives developers a simple and powerful mechanism for rolling back (cancelling) and accepting  changes on the client without involving the server. SEF makes it easy to implement Cancel/Undo and OK/Accept buttons anywhere, even in nested (child) dialog boxes and forms, modal and modeless.

      Saving Modified Data

SEF’s smart client caching makes it easy to write code that saves modified data back to the server. With just one line of code and one trip to the server, you can save multiple entities. SEF does all of the heavy lifting; it maintains changed entities in the cache, and ensures the cache is always consistent, while also optimizing memory usage and performance.

      Code Freedom

SEF allows you to set up your data sources directly on the designer surface, with easy-to-use property dialogs and very little code to write. Configure the C1DataSource control and apply server-side filter, sort and group descriptors quickly at design-time. Of course, if you prefer to do everything in code you have the freedom of doing so using the rich data class libraries.

      Simplifies MVVM

SEF can simplify programming with the widely-adopted Model-View-ViewModel pattern known as MVVM. You have to write a lot more code to develop MVVM applications because of the additional code layer, the ViewModel, and the synchronization between the Model and ViewModel data members. With SEF you can use live views as your ViewModel and not have to worry about writing any synchronization code. Live views are synchronized automatically with their sources and are much easier to create. You can use SEF with any MVVM framework.


Send us comments about this topic.
Copyright © GrapeCity, inc. All rights reserved.