Categories

There are currently no items in your shopping cart.

User Panel

Forgot your password?.

Building an Enterprise App with WPF, MVVM, and Entity Framework Code First


Course Overview :
Course Overview
Introduction
What You Build: The FriendOrganizer
Course Outline
Introduction
About N-tier and Client-server
Plan the Client Layers
Set up the FriendOrganizer Solution
Summary
Introduction
Plan the User Interface Layer
The MVVM-pattern
Create the MainViewModel
Implement INotifyPropertyChanged
Set the DataContext
Define the User Interface
Add Autofac for Dependency Injection
Summary
Introduction
Plan the Data Access Layer
Create a DbContext Subclass
Add a Code First Migration
Add Constraints
Create and Seed the Database
Build the FriendDataService
Load Data Asynchronously
Summary
Introduction
Plan the New Structure
Create the LookupDataService
Create the NavigationViewModel
Create the NavigationView
Adjust the FriendDataService
Create the FriendDetailViewModel
Create the FriendDetailView
Summary
Introduction
Plan the ViewModel Communication
Introduce Prism's EventAggregator
Publish the OpenFriendDetaiViewEvent
Subscribe to the OpenFriendDetaiViewEvent
Summary
Introduction
The ICommand and MVVM
Introduce the SaveCommand
Save the Friend with Entity Framework
Update the Navigation After Saving
Add the NavigationItemViewModel
Summary
Introduction
Process Unhandled Exceptions
Validation in WPF
Wrap the Model
Create the FriendWrapper
Implement INotifyDataErrorInfo
Add Some Validation Logic
Display the Error in the Tooltip
Display the Error Below the TextBox
Create a NotifyDataErrorInfoBase Class
Introduce a ModelWrapper Class
Trigger Validation in the ModelWrapper
Validate by Using Data Annotations
Enable and Disable the Save Button
Summary
Introduction
How Entity Framework Tracks Changes
Plan the DbContext Lifetime
Create the FriendRepository
Use a Single FriendRepository per Detail View
Add an HasChanges Method to the Repository
Enable and Disable the Save Button
Block Navigation from a Changed Friend
Create a MessageDialogService
Remove Selection in the Navigation
Style the Navigation
Summary
Introduction
Add a New Friend
Trigger the Validation
Delete an Existing Friend
Inform the Navigation with an Event
Hide and Display the FriendDetailView
Display a Dialog Before Deleting
Summary
Introduction
Create the ProgrammingLanguage-entity
Extend the LookupDataService
Load the Lookup in the FriendDetailViewModel
Add a ComboBox to the FriendDetailView
Allow Selection of an Empty Entry
Summary
Introduction
Create the FriendPhoneNumber Entity
Add a DataGrid to the FriendDetailView
Manage Phone Numbers in the FriendDetailViewModel
Display Validation Errors in the DataGrid
Add a Phone Number
Remove a Phone Number
Summary
Introduction
Create the DetailViewModel Property
Create the OpenDetailViewEvent
Create the AfterDetailDeletedEvent
Create the AfterDetailSavedEvent
Fix the New Friend Creation
Create a GenericRepository Class
Create a DetailViewModelBase Class
Summary
Introduction
Create the Meeting Entity
Create the MeetingRepository
Wrap the Meeting Entity
Create the MeetingDetailViewModel
Create the MeetingDetailView
Load Meetings in the NavigationViewModel
Extend the NavigationView
Instantiate the MeetingDetailViewModel
Use Autofac’s IIndex Interface
Add New Meetings
Synchronize the Start and End Date
Summary
Introduction
Build the Picklist in the MeetingDetailView
Extend the MeetingDetailViewModel
Load the Friends for the Picklist
Add and Remove Friends
Block the Deletion of Friends
Summary
Introduction
Adjust the MainViewModel
Add a TabControl to the MainWindow
Display a Title in the Tab Header
The Plan to Close a Tab
Introduce the CloseDetailViewCommand
Publish the AfterDetailClosedEvent
Subscribe to the Event to Close the Tab
Check for Changes When Closing a Tab
Be Aware of Refresh Issues in a Tabbed UI
Refresh the MeetingDetailView After Updating a Friend
Reload a Single Friend with Entity Framework
Refresh the MeetingDetailView After Deleting a Friend
Open and Close Tabs for New Items
Summary
Introduction
Integrate the Detail View for Programming Languages
Set up the ProgrammingLanguageRepository
Implement the ProgrammingLanguageDetailViewModel
Set up the View with a DataGrid
Refresh the Programming Languages in Open Friend Tabs
Add and Remove Programming Languages
Catch Exceptions When Saving Referenced Languages
Check if a Programming Language Is Referenced
Summary
Introduction
Two Users Saving the Same Friend
Handle Concurrency Conflicts
Optimistic Concurrency with Entity Framework
Add a Row Version to the Friend Entity
Handle the DbUpdateConcurrencyException
When Another User Has Deleted an Entity
Move the Exception Handling to the Base Class
Summary
Introduction
What the Final Application Should Look Like
Ways to Style Your WPF Application
Add Mahapps.Metro to the FriendOrganizer Application
Style the Navigation and the Tab Headers
Fix the Font Sizes for Buttons and ComboBoxes
Adjust the Colors of Validation Errors and Controls
Use the TextBox Style from Mahapps.Metro
Use the Mahapps.Metro MessageDialog
The Final FriendOrganizer Application
Course Summary