Pluralsight - Building End-to-End Multi-Client Service Oriented Applications - Angular Edition
MP4 | AVC 550kbps | English | 1024x768 | 15fps | 12h 32mins | AAC stereo 88kbps | 2.7 GB
Genre: Video Training
This course will take you through the development of a service oriented application from beginning to end and will include multiple types of clients. It seems to me that the longer I stay in this business, the shorter the time between new technology releases. There's enough stuff out there in the development world to keep us both excited and overwhelmed. Learning new tech has become easier with the all the information available to us, especially in the way of these Pluralsight courses. But learning how to use a technology and learning how to properly implement it or integrate it with other technologies can be a whole different ballgame.
Service-Oriented systems have become mainstream, but designing applications in a service-oriented fashion require a different look on the components that make it up as well as technologies to support the architecture. This course will bring it all together for you by building on knowledge you have on technologies like WCF, Web API, ASP.NET MVC, WPF, and AngularJS and going from A to Z on the architecture, design, development, and testing of a complete system. And this system will not only use a multitude of technologies in the middle-tier, but will also be consumed by different UI clients on the web and the desktop. Know how to write services in WCF and Web API, but want to see some real-world implementation from both MVC and WPF clients, then this course is for you. Want to know how to implement dependency injection from the middle tier to the various UIs, then this course is for you. Want to write decoupled, testable software, then this course is for you. The final set of applications can be used as a skeleton and framework for any SOA-based system you write going forward, and the techniques used in its development will become part of your development arsenal forever.
Welcome and Course Description
The Course
Course Agenda
Ready For Some Fun
Demo of a Service Oriented Application
Description and Goals of the case-study app
Application demo
Software configuration management
SOA and Technology
What is SOA?
Evolution of software development
Characteristics of a service
A typical service oriented architecture (visual)
SOA and course technologies
Architecture and Database
The database
Core use cases
Service decomposition
Security
The architecture: Walkthrough
The architecture: Reasons and goals
Entities and Core
Entity design and structure
Initial setup for business and client entities
Entities as data contracts
data contract equivalency
Business entity base class and identification interface
Business entity account ownership
Property change notification and dirty tracking: Intro
Setting up the client entity base class
Adding dirty-tracking functionality
Event declaration to avoid duplicate subscribers
Compile-time safe property change notification
Object-graph walking and dirty states
Refactoring object walk for reusability
Helpers for collecting properties
The rest of the client entities
Validation: Intro
Implementing validation
Unit testing: Intro
Unit testing core functionality
The rest of the tests and conclusion
Data Access (starting the business tier)
Intro and EF code-first description
Creating the DB-Context
DB-Context properties
Setting up the ORM
Adding ORM rules
Overview of a data repository
Core base classes and interfaces
CRUD implementation in the Account Repository
Custom methods and repository interface with DI setup
The rest of the data repositories
Setting up a test client class to use DI
Repository usage and mocking
Intro to the data repository factory
The data repository factory abstraction
The data repository factory
The repository factory test client class
Repository factory usage and mocking
Custom DTOs
Recap and conclusion
Services and Business Engines - Part 1
Intro and highlights
Service contracts and services overview
Inventory service contract
Setting up the inventory service
Fully implementing the first operation
Implementing a more complex operation
Setting service characteristics
The manager base class
Adding the fault contracts to the operation contracts
Adding CRUD operations and transactions
Adding a multi-data and behavior operation
Intro to business engines
Setting up a business engine
Setting up the business engine for DI
Using the business engine from a service
Recap and summary
Services and Business Engines - Part 2
Intro and highlights
Security intro
Adding security to a service
User-data authorization intro
Setting up the rental service
Implementing the GetRentalHistory operation
Retrieving call user from SOAP header
Setting up for retrieval of authorization account
Adding the authorization check
Finishing the rental service
Finishing the car rental engine
Wrapping up with the account manager
Testing the business engine
Testing the manager
Adding needed credentials for the manager test
Recap and summary
Service Hosting
Intro and highlights
Service hosting intro
Simple host setup of inventory service
Configuring the inventory service host
Reporting hosting to console
Configuring the other services
Binding configurations
Configuring the test client
Testing service connectivity
Unattended process intro
Writing the unattended process
Adding security credentials for the process
Bootstrapping MEF and test run
Other hosting options
Recap and summary
Client Access
Intro and highlights
Client contracts intro
Setting up the client-side contracts
Writing the basic client proxies
Making the client proxies DI-aware
Soap header intro
Adding user name to the soap header in a proxy class
Refactoring to a proxy base class
Service factory intro
Writing the service factory
Setting up the client bootstrapper
Proxy obtainment unit tests
Service connection unit tests
Recap and summary
Car Rental Website - Part 1
Intro and highlights
Infrastructure description
MEF bootstrapping and the dependency resolver
Describing the layout view
The App.js file and angular module definitions
Top-Bar view description
Angular intro
The security adapter class
The account controller setup
The Login model and action
Setting up the Login view and JS model
The rest of the Login view
Setting up and checking validation rules
Reporting validation rules
Car Rental Website - Part 2
Intro and highlights
Setting up an API controller
Finishing up the login viewmodel function
Completing the login REST API call
Testing the login section of the site
Setting up the registration models and initial view
Creating the Angular module and parent viewmodel
Setting up the parent registration view
Creating all the registration template views
Sub-viewmodels and Angular routing
Playing nice with MVC routing
Adding validation rules to the models
Processing registration step 1
Adding the server-side validation for registration step 1
Registration steps 2 and 3 validation and proceed
Finish the confirmation viewmodel
Final registration on the server
Run-through test
Car Rental Website - Part 3
Intro and highlights
Reviewing the rest of this site
Setting up the controller and view
Setting up the model, Angular module, and viewmodel
Setting up Angular routing
Template view and viewmodel setup
Starting the Reserve-a-car template
Adding calendar buttons to textboxes
Finishing up the calendar pickers
Testing the date pickers
Finishing the Reserve-a-car viewmodel
Setting up the Car-list viewmodel
Setting up the reservation controller and action
Controller proxy disposability pattern
Starting the Car-list view
Adding viewmodel functions
Controller action for car reservation
Finishing the Car-list viewmodel
Fixing the view for multiple modes
Testing the site for car reservations
User data authorization
Unit testing MVC controllers
Unit testing API controllers
Recap and summary
Car Rental Desktop - Part 1
Intro and highlights
Application infrastructure intro
Basic structure - main view with app config and MEF bootstrapping
View hierarchy description
Creating the first view and setting up its base
Creating the skeleton for the other three views
Creating the skeleton for the four viewmodels
Completing the main viewmodel
Setting up the tab panel
Setting up the data templates
Upcoming problems to be solved
Car Rental Desktop - Part 2
Intro and highlights
Demonstrating view and viewmodel initialization points
Solving deterministic viewmodel initialization
Setting up the cars observable
Obtaining service proxy and getting car list
Setting up more XAML and running the app so far
Writing the first viewmodel command
Writing and testing the edit command
Setting up the edit-car viewmodel
Calling upon the edit-car viewmodel from its parent
Validating and saving a car
Letting the parent viewmodel know about the update
Finishing up the edit-car viewmodel with cancelation
Updating the parent viewmodel with updated car
Updating the XAML to account for car editing
Test run showing the empty edit panel
The edit-car view
Testing car-editing
Delete, exception handling, raising events
Wiring and unwiring viewmodel events
Unit testing the viewmodel
Recap and summary
Conclusion and vNext
Course recap with vNext summary and farewell surprise
No mirrors please