WPF for Business Applications with Markus Egger

Presenter: Markus Egger

This event took place on Friday, March 2, 1900.

Where:   Onsite at Microsoft Corporation, 2000 W Sam Houston Pkw S, Houston, TX 77042
or remotely via GoToMeeting
When:    Monday, March 2, 2015

Windows Presentation Foundation (WPF) is the world's most powerful, most flexible, most productive, and yet easiest UI development environment. After attending this class, attendees will agree with this statement and will have learned how to harness this power and yield it with ease!

This lecture-style training class is a brand-new class designed by EPS Software/CODE's President and Chief Software Architect, Microsoft Regional Director, and MVP, Markus Egger. Markus has been intricately involved in various UI technologies, serving on various Microsoft Strategic Design Review Teams for technologies such as WPF, Prism, and more. He has designed this class based on his vast experience in WPF business application development as well as his role as "project rescuer" on many problematic WPF projects. This class specifically teaches techniques that have been known to work well for WPF business application projects. This class also shows attendees how to avoid many problematic patterns that often surface in troubled WPF projects (even if those patterns may be considered "best practices" in other scenarios).

This workshop will answer all of your WPF questions by teaching fundamental techniques that apply to WPF. Attendees will learn proper application architecture and design, enabling them to work productively and create the world's most advanced user interfaces with ease. Many of the demonstrated techniques are also valid for other XAML systems, such as WinRT and Windows Phone. Some general UI paradigms even go beyond the world of XAML and can also be used in other technologies, such as HTML5. Time is also allocated toward teaching attendees how to build applications that look professional, and how to do so productively and without the need of artistic talent. Many of these topics are CODE Training specialties that are not taught anywhere else, making this one of our most popular classes. Attendees of this workshop will learn how to work productively and build future proof applications and systems, regardless of their prior WPF knowledge (or lack thereof).

The training class will be held at onsite in Houston, Texas as well as online via GoToMeeting. After the class, attendees will receive the Powerpoint slides, code samples and videos of each class as reference materials.

Day 1

9:00 – 10:15 Introduction to WPF, XAML, and the New UI Paradigm
WPF (and other XAML-based UI technologies) have now been around for a while and certain usage patterns have emerged that enable productive, maintainable, and very advanced UI development. This session introduces attendees to WPF and the UI paradigms that have proved to work well in modern environments. This includes WPF fundamentals, understanding XAML as a UI definition language, and concepts such as advanced data binding and view-models. (Many of these concepts are even applicable beyond WPF). Even developers who are already familiar with these concepts will learn something new in this session.
10:15 – 10:30 BREAK
10:30 – 12:00 Introduction to Views and View-Models
Most WPF user interfaces are built out of a combination of "Views" (the visual part of the UI, usually defined in XAML) and "View-Models" (the data and behavior/logic defined in C# or another .NET language). These two parts are then married together using advanced data binding. When done correctly, this setup is not just powerful and flexible, but it is also easy and straightforward to do, even for junior team members. It also provides for a reusable setup that can be changed easily. This session provides an in-depth look at these concepts and how to implement them.
12:00 – 13:00 Lunch
13:00 – 15:00 WPF Controls
Now that the class has given attendees an understanding of how to set up Views and View-Models, it is time to take a look at some of the UI details. What controls are available in WPF? Which ones are appropriate for which task? When do we need 3rd-Party controls? How can we extend standard controls and elements (using subclassing, attached properties, styling, templating, and more)? This session also covers concepts such as XAML resource management.
15:00 – 15:15 BREAK
15:15 – 16:45 Understanding Templates and Styles
Templates are at the heart of many XAML business applications. This technique allow developers to create templates ranging from the trivial to the highly sophisticated, which makes it possible to create very advanced business applications productively and at a high degree of quality. If such templates are then applied by means of WPF's styling mechanism, this tremendous power ends up being highly flexible and interchangeable as well. This session explores the topic of templates (control templates as well as data templates) and styling.
16:45 – 17:00 Wrap-Up and Q&A
CODE Training’s classes are always open-ended. 15 minutes are spared at the end of the day to answer questions and wrap up examples and topics that may need further explanation. The class isn’t truly over until the last question is answered. Therefore, the actual end time is somewhat flexible.

Day 2

9:00 - 10:30 View Layout
At this point, attendees have now learned how to create Views that are bound to View-Models, and know which controls to use, and how to use them effectively. However, the best position for those controls on the screen has not yet been truly explored. In other UI environments, this might hardly be worth discussing, as developers would put controls on the screen at certain positions and dimensions. This is certainly also possible in WPF. However, this approach is tedious (who wants to do this for lots of UIs in a business application?), labor intensive, error prone, and highly inflexible. WPF offers layout features that go much beyond the basics. Most developers new to WPF tend to ignore this capability, which is a shame since this capability is one of the reasons, WPF can be the world's most productive UI development environment, when used correctly. This session may well be the most surprising and valuable session for attendees!
10:30 – 10:45 BREAK
10:45 – 12:00 Presenting Lists of Data
Business applications usually feature lots of "lists" of data: item search screens display a list of search results, there often is a list of customers displayed in a variety of formats (list, grid, contact cards, etc.), invoices have lists of line items… there is no end to such examples. Luckily, WPF, when used correctly, is extremely powerful when it comes to displaying lists and visualizing data in very advanced ways. Unfortunately, this very topic is also one of the most common sources of errors and bad architecture in WPF applications. Therefore, this session is devoted entirely to this very topic (especially for WPF business applications). During this session, Markus Egger takes attendees on a journey starting with very simple lists and ending with some very complex visualization. Best of all, the different approaches are interchangeable and highly flexible. This session may well rival the previous one for most surprising and most valuable!
12:00 – 13:00 LUNCH
13:00 – 15:00 Advanced View and View-Model Concepts
Attendees have now learned a lot. Yet there is always room for improving an approach to building WPF applications. In this session, Markus Egger represents several real-world improvements to building Views and View-Models. In particular, attendees will explore the concept of advanced command structures and applying styles and templates to such commands, and will also explore the role of code-behind files and how they relate to concepts such as “behaviors.” With guidance from Markus Egger, attendees will take a second look at some data-binding scenarios and Attached Properties will be explored in depth. And in this session, Markus Egger will open the CODE Training bag of tricks and show attendees how to overcome those pesky little details that tend to creep up during the most inopportune moments.
15:00 – 15:15 BREAK
15:15 – 16:45 WPF Anti-Patterns
Is that it? Approaching the end of day two, attendees have built some very interesting and sophisticated WPF business UIs, and they were easy to build, are super-powerful and flexible, and perform very well. Yet one always keeps hearing about the sky-high complexity of WPF apps, the scary learning curve, poor performance, and many other nightmare stories. What happened to all those? Sadly, those stories are all too common and all too true. WPF provides great power that can be used for amazing things done in simple and elegant ways. But as is often the case with powerful technologies, that same power can be used to create awful messes that are exceptionally hard to fix. In this final session of the class, Markus Egger presents a list of “WPF Anti-Patterns.” These are patterns repeatedly seen in the real world that often lead to problematic or failed WPF projects. Hopefully, making attendees aware of those patterns will help attendees to steer clear and stick with the techniques presented in the other sessions of this class.
16:45 – 17:00 Wrap-Up and Q&A
Another open-ended Q&A session. Again, the class isn’t truly over until the last question is answered. And of course, class attendees should always feel free to contact EPS Software/CODE with questions even after the class is over and take advantage of a free 1-hour consulting session that is granted as an extra bonus to all paid attendees, giving attendees the chance to discuss how all the concepts shown in this class apply to specific problems and projects.

** Please note that times are approximate and meant to be flexible depending on class participation and questions.

Registration is extremely limited. For more information please e-mail info@codemag.com or call us at 832-717-4445 x 013.

Discounts may be available for companies who have previously attended our classes - call us for details. Please note that instructors & exact curriculum may change. All sales are final.