Advanced .NET for VFP Developers

Presenters: Markus Egger, Mike Yeager, Claudio Lassala

This event took place on Monday, October 3, 2011.

Advanced .NET for VFP Developers

Where:   Onsite at EPS Software Offices (6605 Cypresswood

Dr. Suite 300, Spring/Houston, TX 77379) or live on the web via GoToMeeting
When:    Oct 3 - 7, 2011 (Monday – Friday)


EPS Software will be holding a comprehensive class specifically for Visual FoxPro developers who wish to expand their .NET knowledge. Designed especially for VFP Developers who have either taken our Intro to .NET for VFP Developers class or have done some .NET programming on their own, this class will take your knowledge to the next level. Advanced topics include language constructs (delegates, anonymous & extension methods, LINQ, Lambdas, Generics, reflection, etc), WCF, Data in Real-World Services, building WPF & Silverlight applications, and more. In addition, Claudio Lassala will be presenting his “Power Developer” sessions including Design Patterns, Presentation Patterns, Testing, SOLID Principles and more. Please see the complete agenda below.

Classes may be attended on site in Houston, TX or live on the web via GoToMeeting. Sessions will be taught by industry experts Markus Egger, Mike Yeager, Joe Reynolds and Thom Chichester.



Registration is extremely limited. For more information please e-mail info@eps-software.com or call Christopher at 832-717-4445 x 13. Discounts are available for companies who have previously attended our classes.  Call Christopher for details. Please note that all sales are final.


Monday

9:00 – 10:15** Quick Recap of the Most Important .NET Concepts for VFP Developers
We'll look at the differences between VFP and .NET/SQL such as how solutions are commonly structured, differences in data access mindsets, object orientation, strict typing, casting, reporting, scalability, distributed deployment, multi-platform development and other topics to get you in the .NET development mindset.
10:15 – 10:30 BREAK
10:30 – 12:00 Advanced Programming Topics - Part 1
Dive into delegates (incl. Func & Action), multicast delegates, events, anonymous types, anonymous methods, extension methods, C# iterators (yield), LINQ, Lambdas, instance vs. static, enums, Generics, reflection and dynamic programming in C#.
12:00 – 13:30 LUNCH BREAK
13:30 – 14:30 Advanced Programming Topics - Part 2
(session continued) Dive into delegates (incl. Func & Action), multicast delegates, events, anonymous types, anonymous methods, extension methods, C# iterators (yield), LINQ, Lambdas, instance vs. static, enums, Generics, reflection and dynamic programming in C#.
14:30 – 14:45 BREAK
14:45 – 16:00 Threading
Multi-threading is a must in most modern applications. Learn about and work with BeginInvoke(), threading options in various namespaces, thread pools, considerations for the UI thread, blocking and locking, PLINQ, Task Parallel Library, functional programming and more.
16:00 – 16:15 BREAK
16:15 – 17:30 Real-World Services With WCF
We begin the day developing WCF services by showing how to structure a solution, develop contracts, implement, test and deploy a service.


Tuesday
9:00 – 10:30 Using Data in Real-World Services
In this session, we focus in passing data to and from services and exposing data via REST, XML, OData, JSON and RIA Services. We'll discuss POCO objects, contract objects, business objects, entities and data transfer objects, how to use them and mapping and moving data between them.
10:30 – 10:45 BREAK
10:45 – 12:00 Advanced WCF
Multiple endpoints, differences in endpoint capabilities, configuration options, behaviors, security, logging, debugging, faults, hosting options, differences in WCF for Silverlight and Phone7.
12:00 – 13:30 LUNCH BREAK
13:30 – 14:45 Advanced Data Access the Microsoft Way
Start this over-packed day with a review of ADO.NET followed by a fast and intense introduction to Microsoft's Entity Framework conceptual models. We'll work with LINQ to Entities, Entity SQL and how to use Query Builder.
14:45 – 15:00 BREAK
15:00 – 17:00 NHibernate and Advanced ORM Topics
This leading non-Microsoft ORM product is open source, mature and powerful. In this session we'll use NHibernate to explore some advanced ORM topics like lazy loading, POCO models, batching, extensibility and integration that exist in many ORM products.


Wednesday
9:00 – 10:30 Performance Tuning Your Applications
Performance problems can crop up in any part of your app. We'll take a look at determining where your performance problems lie and then take an in-depth look at one common area for performance issues - troubleshooting and addressing performance problems in a SQL Server database.
10:30 – 10:45 BREAK
10:45 – 12:00 Introduction to Modern Real World Web Development
Web applications are very important for business application developers, and for .NET developers, that either means ASP.NET WebForms or ASP.NET MVC development (or a combination of these two technologies). This session takes a look at the various options (including their pros and cons) including a real-world assessment of each approach for business application developers. This session also looks at modern techniques, such as client-side development and AJAX.
12:00 – 13:30 LUNCH BREAK
13:30 – 14:45 Real World ASP.NET MVC
ASP.NET MVC is rapidly turning into the standard for advanced web applications and sites. This session continues where the previous session left off and shows ASP.NET MVC beyond the basics in real-world scenarios.
14:45 – 15:00 BREAK
15:00 - 17:00 MVC, JavaScript and JQuery
Modern web applications rely a lot on client-side technologies such as JavaScript, jQuery, and CSS. Especially with ASP.NET MVC, the use of these technologies has turned into .NET developer’s bread and butter. This session provides an overview of the most important JavaScript techniques used in ASP.NET MVC business applications, including the use of jQuery. The session also focuses on how these client-side technologies work together with ASP.NET MVC and how MVC functionality can be called directly from JavaScript using techniques and technologies such as AJAX, JSON, and REST.


Thursday
9:00 – 10:30 Introduction to Real World WPF & Silverlight Development
For Windows business applications, WPF (Windows Presentation Foundation) is the default technology for .NET developers. Silverlight is very similar in many aspects, although it has closer ties to the web. In combination, these 2 technologies are important and likely choices for .NET developers. In this session, attendees learn about WPF and Silverlight with a focus on real-world scenarios. The presenter will spend a short amount of time on reviewing some of the basic concepts (such as XAML), but overall, the focus is on real-world setup and approach.
10:30 – 10:45 BREAK
10:45 – 12:00 Working with Data in WPF and Silverlight
Handling, displaying, and interacting with data is usually a key aspect of an business application. This session focuses on data-related topics in WPF and Silverlight, including data-binding, models and view-models, data controls, lists, and a lot more. The presenter will spend a short amount of time on a basic review of data capabilities, but the focus is on real-world data handling with everything that goes along with it.
12:00 – 13:30 LUNCH BREAK
13:30 – 14:45 Creating User Interfaces Productively in WPF and Silverlight
WPF and Silverlight are of course interface technologies, and as such, the main purpose is the creating of latest generation user interfaces. This includes professional looking interfaces, but more importantly for business application developers, it includes modern and efficient data presentation and data manipulation that can be maintained over time without the application appearing outdated. Furthermore, it is of utmost importance to create such interfaces productively and quickly, using staff and skills available. This session teaches attendees how to achieve all those goals in one swoop.
14:45 – 15:00 BREAK
15:00 – 17:00 Creating User Interfaces Productively in WPF and Silverlight (Part 2)
(session continues)


Friday
9:00 – 10:30 Power Developer - Testing
Unit testing, Testing frameworks, Test Driven Development and Design and development considerations for testing.
10:30 – 10:45 BREAK
10:45 – 12:00 Power Developer - SOLID Principles
In this session, we break down the 5 principles of SOLID coding in terms of the code we've looked at this week and find out how these 5 principles can make you a better coder.
12:00 – 13:30 LUNCH BREAK
13:30 – 14:45 Power Developer - Patterns and Practices
Inversion of Control, Containers, Composition and more Dependency injection, inversion of control containers and using them to improve the use of composition in our applications, as well as our testability story.
14:45 – 15:00 BREAK
15:00 – 17:00 Power Developer - Presentation Patterns and Common Design Patterns
In addition to patterns like Model-View-ViewModel (MVVM) which we've already covered this week, we'll look at how to recognize and implement other common patterns such as the factory, strategy, decorator, command, iterator, proxy and more, besides teaching Inversion of Control containers, as well as leveraging some C# features that facilitate the implementation of certain patterns.

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