Modern App Development for VFP Developers

Presenter: Mike Yeager

This event took place on Monday, May 11, 2015.

Where:   Onsite in Houston, TX 77042 or remotely via GoToMeeting
Class:   .NET Training for VFP Developers - May 11 & 12, 2015 (Mon & Tues)
PLUS FREE BONUS:   Converting VFP Applications to .NET - 1 day Take Home Lab

Modern App Development for VFP Developers
In this two day class, attendees will leverage their existing VFP knowledge to learn an overview of Visual Studio and the .NET Platform from a VFP perspective. C# and VB.NET, WPF, Windows and Web applications, and much more.

PLUS FREE BONUS! Converting VFP Applications to .NET - take home lab
Attendees will receive a free one-day bonus lab materials for converting a Visual FoxPro application to SQL Server, .NET and WPF. This day of material covers the most common conversion scenario in the past several years and touches on all important elements of an application, ranging from the database to data-access, services and UI. Attendees will also get the opportunity to discuss their projects and have their questions personally answered by experts who have real-world experience with VFP, .NET and conversion projects.

This training course provides a fundamental view of the latest technologies and paradigms. While there are many different environments to take into consideration in modern development (Windows, HTML, Mobile, WinRT, and more), and multiple programming languages to learn (C#, VB, JavaScript, Java, Objective-C,...), we will demonstrates that modern concepts tend to be universally applied. Therefore, understanding these concepts (and how they relate to Visual FoxPro concepts) makes the journey into modern development territory an enjoyable one, rather than something to be intimidated by.

Better yet, using a modern development approach and modern architecture, it is possible to convert gradually, rather than all at once! This means that applications can be converted in stages in an agile fashion, which is generally much more attainable, both logistically and financially. It also means that developers can gradually acquire new skills rather than having to understand all possible technologies and permutations at once.

Markus Egger, EPS Software/CODE's President and Chief Software Architect, Microsoft Regional Director, and 19 year Microsoft MVP created all the content for this class. He says: "I am very excited about this class. It provides content that has never been taught in this fashion, and I think it will really help people in converting their systems and also in getting their own skills up to speed. The content is based on our real-world experience. It is based on approaches we have used in recent years with great success, and I am thrilled to pass this knowledge on, since most people do not realize some of the options that are now available. They also don't realize that these things are now very attainable for Visual FoxPro developers. I can't wait to see how attendees of this class put this knowledge to work!"

Day 1

9:00 – 10:15 Making Sense of Modern Development Platforms
A lot has changed since the “good old days of Visual FoxPro.” Since the last version of Visual FoxPro was released, Microsoft has introduced several new generations of development technologies. It isn't even just a Microsoft world anymore. Modern development includes a variety of technologies and platforms, ranging from Windows Desktops to various slate and mobile platforms (iOS, Android, Windows Phone, WinRT), and of course various forms of Web Applications (HTML5). There are several different languages (C#, JavaScript, etc.) and language paradigms (static, dynamic, and functional languages) that are important. Services sit in the middle to hold it all together. How is one to make sense of all of this? And is it even possible to catch up and learn all these new things?
This session shows attendees how to take stock of all the different things available to the modern developer. Attendees will explore common patterns used across all scenarios, which makes everything a lot more approachable, and look at common language concepts and how they apply in different scenarios. This session also takes a look at overall application architecture, which, if done correctly, makes modern conversion from VFP to other environments much easier and more approachable. This session also explains which technologies are not as important and can be ignored. At the end of this session, attendees will have a roadmap to approach modern conversion.
10:15 – 10:30 BREAK
10:30 – 12:00 .NET's Language(s) of Choice: C# (and some Visual Basic)
When it comes to .NET development, understanding at least one .NET language is a precondition. While there are many .NET languages, the most common one used today is C#. The good news, C# is a relatively simple and small language. Most of it is even conceptually similar to Visual FoxPro. The language thus becomes quite approachable for VFP developers. This session introduces important C# language concepts as well as some object-oriented concepts. This session also takes a first look at language concepts not available in VFP, such as functional programming. While this session focuses mainly on C# (which is also a good basis for using other languages such as JavaScript and others), some Visual Basic comparisons are drawn as well for those attendees who would go with Visual Basic as the language of their choice. After attending this session, attendees should be able to cover all the C# code examples used throughout the rest of this class.
12:00 – 13:30 Lunch
13:30 – 14:45 Data Access and the Service Layer ("Middle-Tier")
Modern development allows for a variety of different database technologies. SQL Server is still a very common choice and will thus be used as a representative example. In addition to data access and data manipulation (including LINQ), this session explores the important concept of “services.” Services make up the “middle-tier business objects” in modern apps, and make them accessible to a wide variety of clients (“user interfaces”). For this reason, creating solid middle-tier architecture is perhaps the most important thing a Visual FoxPro developer can learn when converting to new environments. It creates flexibility. It provides a safety-net for other errors. And it even enables a gradual conversion from Visual FoxPro to .NET and other systems.
14:45 – 15:00 BREAK
15:15 – 16:45 Creating a Windows Business Application using Modern UI Development Paradigms
Windows Desktop applications are still tremendously important for business scenarios. WPF is the de-facto standard for Windows development. WPF uses concepts such as “Views,” “View-Models,” advanced data binding, and styles/ templates. (Note: These concepts are now used by many UI development environments). This session introduces these fundamental concepts and then shows attendees how to use them in WPF to create a business application UI.
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 Introduction to Web Site Development
When it comes to web development, there are now several fundamentally different things one can do. Probably the most common amongst those options is the development of web sites either for internal or external use. “Web sites” are what we typically think of as “the Internet,” with sites of all sizes like Amazon.com or Facebook.com, and so forth. Web sites define themselves as sites that are accessible through web browsers (using HTML) and are a collection of individual pages the user navigates. Thus, Web Site development mainly aims at creating HTML and sending it to the user’s browser and allowing the user to navigate to different pages that present appropriate information. In .NET, this is done by creating HTML (and perhaps CSS and JavaScript) using ASP.NET (typically ASP.NET MVC, but perhaps also ASP.NET Web Forms). This session takes a detailed look at all these concepts.
10:30 – 10:45 BREAK
10:45 – 12:00 Introduction to JavaScript
Modern web development without JavaScript is hard to imagine. Yes, it is yet another language to learn (which is luckily somewhat similar in syntax to C# and other C-like languages); however, JavaScript is rapidly becoming the universal programming language every developer should know. JavaScript is also more powerful than is commonly assumed. This session provides an introduction to this language and its key concepts. This session also discusses the importance of various JavaScript “Frameworks.”
12:00 – 13:30 Lunch
13:30 – 15:00 Introduction to Web Application Development
Web sites are tremendously important, but they are not the only HTML and browser development approach. A new breed of HTML applications is rapidly gaining importance: the Web Application, also known as the “Single Page Application” (SPA). SPAs use the same fundamental technologies as web sites (HTML5, CSS3, JavaScript), but change the paradigm from creating multiple pages the user has to navigate through, to creating an entire application as a single HTML page which contains all the logic and interfaces. Thus, the paradigm is much closer to rich-client development than conventional web development, although in an HTML and JavaScript world (rather than WPF and C#). The resulting application is much closer in appearance and behavior to a conventional Windows application (although one that can run on any platform and device) than a web site. For HTML-based business application development, this is rapidly becoming the approach of choice.
15:00 – 15:15 BREAK
15:15 – 16:45 Mobile Development (using technologies such as HTML or Xamarin)
Attendees have had the opportunity to discuss web sites and web applications in the previous sessions of this training course. With those, one would think he or she should be covered for mobile scenarios, right? Well, yes and no. While web sites and web apps can certainly target mobile devices, some extra work is required. Besides, HTML-based apps on mobile devices have certain pros and cons and are often independently developed and not identical with the web site/ application. Furthermore, HTML apps often represent the lowest common denominator. “Native” applications tend to provide a more pleasing and sophisticated experience. Native application development may mean using native technologies and languages such as Apple's Objective-C language paired with the Cocoa Framework, or developing for Android using Java. This session takes a quick look at all those options but then proceeds to discuss another “native” option in-depth: Xamarin (formerly “Mono”), which is rapidly growing and gaining acceptance as one of the best ways to develop for iOS and Android. Xamarin provides the great advantage of enabling mobile development using C# and a version of the .NET Framework and yet provides access to native features of each platform.
Note: This session also briefly discusses Windows Phone and WinRT mobile platforms, but does not engage these technologies in-depth.
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.

BONUS! Take Home Lab

Lab: Converting a VFP Application to a .NET Windows App
Attendees will receive lab materials for converting a Visual FoxPro application to SQL Server, .NET and WPF at their own pace. This day of material covers the most common conversion scenario in the past several years and touches on all important elements of an application, ranging from the database to data-access, services and UI. The class focuses on WPF as the front-end technology to build a Windows Desktop interface, though the architecture will support all of the UIs discussed in the previous days including web and mobile. This session requires a laptop with Microsoft SQL Server and SQL Server Reporting Services 2008, 2008R2 or 2012 (preferred) Express Edition or higher and Microsoft Visual Studio 2010, 2012 or 2013 (preferred) Professional Edition or higher (including trial versions) if attendees wish to participate in the labs. Microsoft Visual FoxPro 9 SP1 is optional.

** 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.