DataSource for Entity Framework in WPF
In This Topic
    Key Features
    In This Topic

    The following are some of the main features of DataSource for Enitity Framework that you may find useful:

    Note: This version of DataSource for Entity Framework requires Entity Framework 6 or above, .NET Framework 4.5 or above. and Visual Studio 2012 or above.


    C1DataSource 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.

    LINQ is the perfect tool for transforming raw data into custom views. C1DataSource makes LINQ even more powerful by making LINQ query statements live. C1DataSource includes 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.

    C1DataSource 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 DataSource 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 C1DataSource with any MVVM framework.

    Handle infinitely large datasets with C1DataSource’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.

    For applications that prefer a paging interface, C1DataSource 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 where paging is not provided.

     The key to most of DataSource for Entity Framework’ features is its built-in client-side data cache. C1DataSource 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.

    With C1DataSource 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 C1DataSource 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.

    C1DataSource 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.

    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. C1DataSource 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.

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

    C1DataSource'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. DataSource 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.

    C1DataSource can also be used in code-first scenarios, without generating code from a model. If you need the C1DataSource "live" features, ensure that your entity classes implement the INotifyPropertyChanged interface and if their collection navigation properties exist, they use ObservableCollection interface.

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