Building End-to-End Multi-Client Service Oriented Applications
This course will take you through the development of a service oriented application from beginning to end and will include multiple types of clients.
What you'll learn
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 requires 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 Knockout 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? This course is for you. Want to know how to implement dependency injection from the middle tier to the various UIs? This course is for you. Want to write decoupled, testable software? 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.
Table of contents
- Entity Design & Structure 2m
- Initial Setup for Business and Client Entities 2m
- Entities as Data Contracts 2m
- Data Contract Equivalency 5m
- Business Entity Base Class & Identification Interface 3m
- Business Entity Account Ownership 4m
- Property Change Notification & Dirty Tracking: Intro 4m
- Setting up The Client Entity Base Class 3m
- Adding Dirty-Tracking Functionality 2m
- Event Declaration to Avoid Duplicate Subscribers 5m
- Compile-Time Safe Property Change Notification 2m
- Object-Graph Walking and Dirty States 5m
- Refactoring Object Walk for Reusability 6m
- Helpers for Collecting Properties 2m
- The Rest of The Client Entities 3m
- Validation: Intro 2m
- Implementing Validation 7m
- Unit Testing: Intro 3m
- Unit Testing Core Functionality 3m
- The Rest of The Tests and Conclusion 3m
- Intro and EF Code-First Description 4m
- Creating The DB-Context 3m
- DB-Context Properties 3m
- Setting up The ORM 5m
- Adding ORM Rules 6m
- Overview of A Data Repository 4m
- Core Base Classes & Interfaces 5m
- CRUD Implementation in The Account Repository 6m
- Custom Methods & Repository Interface with DI Setup 5m
- The Rest of The Data Repositories 3m
- Setting up A Test Client Class to use DI 7m
- Repository Usage and Mocking 6m
- Intro to The Data Repository Factory 2m
- The Data Repository Factory Abstraction 2m
- The Data Repository Factory 3m
- The Repository Factory Test Client Class 3m
- Repository Factory Usage and Mocking 4m
- Custom DTOs 5m
- Recap & Conclusion 1m
- Intro and Highlights 1m
- Service Contracts and Services Overview 6m
- Inventory Service Contract 6m
- Setting up The Inventory Service 5m
- Fully Implementing The First Operation 6m
- Implementing A more Complex Operation 3m
- Setting Service Characteristics 4m
- The Manager Base Class 5m
- Adding The Fault Contracts to The Operation Contracts 3m
- Adding CRUD Operations and Transactions 6m
- Adding A Multi-Data and Behavior Operation 4m
- Intro to Business Engines 1m
- Setting up A Business Engine 4m
- Setting up The Business Engine for DI 6m
- Using The Business Engine from A Service 2m
- Recap and Summary 1m
- Intro and Highlights 1m
- Security Intro 3m
- Adding Security to A Service 6m
- User-Data Authorization Intro 3m
- Setting up The Rental Service 4m
- Implementing The GetRentalHistory Operation 3m
- Retrieving Call User from SOAP Header 5m
- Setting up for Retrieval of Authorization Account 4m
- Adding The Authorization Check 7m
- Finishing The Rental Service 5m
- Finishing The Car Rental Engine 3m
- Wrapping up with The Account Manager 3m
- Testing The Business Engine 7m
- Testing The Manager 4m
- Adding Needed Credentials for The Manager Test 3m
- Recap and Summary 1m
- Intro and Highlights 1m
- Service Hosting Intro 2m
- Simple Host Setup of Inventory Service 3m
- Configuring The Inventory Service Host 4m
- Reporting Hosting to Console 3m
- Configuring The Other Services 1m
- Binding Configurations 4m
- Configuring-the-test-client 3m
- Testing Service Connectivity 5m
- Unattended Process Intro 3m
- Writing The Unattended Process 6m
- Adding Security Credentials for The Process 2m
- Bootstrapping MEF and Test Run 2m
- Other Hosting Options 4m
- Recap and Summary 2m
- Intro & Hightlights 1m
- Client Contracts Intro 2m
- Setting up The Client-Side Contracts 5m
- Writing The Basic Client Proxies 5m
- Making The Client Proxies DI-aware 2m
- Soap Header Intro 2m
- Adding User Name to The Soap Header in A Proxy Class 4m
- Refactoring to A Proxy Base Class 1m
- Service Factory Intro 4m
- Writing The Service Factory 3m
- Setting up The Client Bootstrapper 4m
- Proxy Obtainment Unit Tests 4m
- Service Connection Unit Tests 2m
- Recap & Summary 2m
- Intro & Highlights 2m
- Infrastructure Description 3m
- MEF Bootstrapping and The Dependency Resolver 4m
- Describing The Layout View 5m
- General Javascript Definitions and Their Location 2m
- Top-Bar View Description 3m
- Knockout Intro and Component Credits 5m
- The Security Adapter Class 3m
- The Account Controller Setup 8m
- Setting up The Login View and The Knockout Model 6m
- The Rest of The Login View 8m
- Checking Validation Rules and Reporting Them 5m
- Test run for Validation Display 2m
- Intro & Highlights 2m
- Setting up An API Controller 8m
- Finishing up The Login Viewmodel Function 6m
- Completing The Login REST API Call 6m
- Testing The Login Section of The Site 4m
- Setting up The Registration Models and Initial View 7m
- Writing The Registration Ciew Using SPA-Style 5m
- Setting up Viewmodel and Providing Previous-Step Functionality 4m
- Client-Validating All Three Steps 6m
- Servre-Validating All Three Steps 6m
- Completing The Account Creation Process 3m
- Test Run and Recap 6m
- Intro & Highlights 1m
- Intro to Push-State 4m
- Initial Setup for Push-State 6m
- Finishing The Pattern Implementation 5m
- Testing The Push-State 1m
- Intro to The Rest of The Site 3m
- Setting up The Files for Car Reservations 3m
- Skeletal Code For JS Files Ad CSHTML View 3m
- Writing The First View-Mode 4m
- Making A 'Get' Call to The API 2m
- Setting up The API Operation 3m
- Injecting and Using A WCF Proxy from The Controller 3m
- Pattern for Closing Proxies After Use 4m
- Returning The List of Cars and Proceeding with The View 2m
- Showing The List of Available Cars 5m
- Making The Actual Reservation 6m
- Displaying Reservation Results 3m
- User-Data Authorization 3m
- Unit Testing MVC Controllers 3m
- Unit Testing API Controllers 3m
- Recap & Summary 2m
- Intro & Highlights 1m
- Application Infrastructure Intro 3m
- Basic Structure and Main View/App Config and MEF Bootstrapping 5m
- View Hierarchy Description 2m
- Creating The First View and Setting up Its Base 3m
- Creating The Skeleton for The Other Three Views 1m
- Creating The Skeleton for The Four Viewmodels 5m
- Completing The Main Viewmodel 4m
- Setting up The Tab Panel 5m
- Setting up The Data Templates 3m
- Upcoming Problems to Be Solved 4m
- Intro & Highlights 2m
- Demonstrating View and Viewmodel Initialization Points 3m
- Solving Deterministic Viewmodel Initialization 5m
- Setting up The Cars Observable 3m
- Obtaining Service Proxy and Getting Car List 3m
- Setting up More XAML and Running The App So Far 3m
- Writing The First Viewmodel Command 3m
- Writing and Testing The Edit Command 3m
- Setting up The Edit-Car Viewmodel 3m
- Calling upon The Edit-Car Viewmodel From Its Parent 2m
- Validating and Saving A Car 3m
- Letting The Parent Viewmodel Know About The Update 2m
- Finishing up The Edit-Car Viewmodel with Cancellation 1m
- Updating The Parent Viewmodel with Updated Car 4m
- Updating Rhe XAML to Account for Car Editing 3m
- Test Run Showing The Empty Edit Panel 1m
- The Edit-Car View 2m
- Testing Car-Editing 2m
- Finishing The Viewmodel with Delete and Exception Handling 3m
- Wiring and Unwiring Viewmodel Events 5m
- Unit Testing The Viewmodel 7m
- Recap & Summary 3m