1 / 27

WPF and Databases

http://schoolacademy.telerik.com. WPF and Databases. Linq -to-Entities, Data Persisters , Master Datail. Doncho Minkov. Telerik School Academy. http://schoolacademy.telerik.com. Technical Trainer. http://www.minkov.it. Table of Contents. Data Access Layer Linq -to-Entities

azuka
Download Presentation

WPF and Databases

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. http://schoolacademy.telerik.com WPF and Databases Linq-to-Entities, Data Persisters, Master Datail Doncho Minkov Telerik School Academy http://schoolacademy.telerik.com Technical Trainer http://www.minkov.it

  2. Table of Contents • Data Access Layer • Linq-to-Entities • Linq-to-XML • Accessing the Data Layer • DataContext • Master Detail • Data Persister • Paging • WPF and Databases

  3. Data Access Layer

  4. Data Access Layer • The Data Access Layer is a essential • Used for access to the database • Class Library with single EntityModelclass • This way we can use the same DAL with many applications

  5. Data Access Layer Live Demo

  6. Accessing the Data Layer

  7. The DataContext • When adding a reference to the DAL project • We can instantiate an entity model in the XAML • And set it for DataContext <Window … xmlns:datalayer=" clr-namespace:NorthwindDataLayer;assembly= NorthwindDataLayer"> <Window.DataContext> <datalayer:NorthwindEntities /> </Window.DataContext>

  8. Accessing DAL • After instantiating the EntityModelwe can simply bind some of the entities to a ItemCollection • ListBox, ListView, TreeView, etc. • In MVVM it is not possible to access the DAL directly • Done through the ViewModel • In MVVM we need a DataPersisterobject <TreeView x:Name="TreeViewCategories" ItemsSource="{Binding Categories}">

  9. Accessing the Data Layer Live Demo

  10. Master Detail

  11. Master Detail • What is Master Detail? • When selecting a Category • Show category info • Show products in this category <ListView Name="ListViewFamilies" ItemsSource="{Binding}" DisplayMemberPath="FamilyName"/> <ListViewDisplayMemberPath="Name" ItemsSource="{Binding ElementName=ListViewFamilies, Path=SelectedItem}"/>

  12. Master Datail in MVVM • Consider we have the property Categories in the ViewModel • Somehow it gets data from the Model • Since Categories is a IEnumerablewe can get its ICollectionView • Now we got the CurrentItem • Can make property Products that returns the products of the CurrentItem

  13. Master Detail Live Demo

  14. Data Persister The way to collect information

  15. What is a Data Persister? • The Data Persister is the object that gives data to the Model • Sometimes it is merged with the Model • It could be an EntityDataModel • It could be a Linq-to-XML object • It could just an object we created • How the Data Persister helps? • Easier for mocking (unit testing) • Better reusability

  16. The DataPersister • The DataPersister is the class that makes the connection with the Data (RDB, XML or object) • Responsible for the CRUD • May have validation • With this object the Model is pretty clean • Almost no programming logic • Loose coupling

  17. Data Persister Live Demo

  18. Paging What is paging and why we need it?

  19. What is Paging? • A memory-management scheme • A computer can store and retrieve data from secondary storage for use in main memory • With paging the application retrieves data from secondary storage in same-size blocks called pages • Why use paging? • Imagine a Database with over a million records • Store them in the dynamic memory at once? • Or take them by pieces with 100 records?

  20. Paging • TODO

  21. Paging Live Demo

  22. WPF and Databases With MVVM

  23. WPF and Databases • Consider the usual case • You have categories with products in a Database • CRUD operations should be implemented • You have the following: • When selecting the DataContext of the Grid • You get a Person object <Grid DataContext="{Binding Person}"> <TextBox Text="{Binding Name}"/> <TextBox Text="{Binding Age}"/> </Grid>

  24. Categories Editor Live Demo

  25. WPF and Databases

  26. Exercises • Create a database holding continents, countries and town. Countries have name, language, population and continent. Towns have name, population and country. Implement a WPF application that shows the continents in a ComboBox, countries in a ListView and the towns in a ListView and allows master-detail navigation. Use Entity Framework. Use paging and sorting for the long lists. • Implement add / edit / delete for the continents, countries, towns and languages. Handle the possible errors accordingly.Implement validation logic.

  27. Exercises (2) • Add a flag for each country which should be a PNG image, stored in the database, displayed along with the country data. Implement "change flag" functionality by uploading a PNG image.

More Related