Converting VFP Applications

Presenter: Mike Yeager

This event took place on Sunday, April 1, 1900.

Where:   Onsite at Microsoft Corporation, 2000 W Sam Houston Pkw S, Houston, TX 77042 or remotely via GoToMeeting
Class #1:   .NET Training for VFP Developers - March 30 & 31, 2015 (Mon & Tues)
Class #2:   Converting VFP Applications to .NET- April 1, 2015 (Wednesday)

Class #1: Modern App Development for VFP Developers
In the first 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. Only $248 with the Early Bird Discount for the 2-day Modern App Development for VFP Developers class! For more info, click herel

Class #2: Converting VFP Apps
On day three, attendees spend the entire day in a lab-style setup, converting a Visual FoxPro application to SQL Server, .NET and WPF. This day 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. Only $149 with the Early Bird Discount for this one-day class! For more info, click here.

Or attend both days for only $299! To register for BOTH classes, click herel

Markus Egger, EPS Software/CODE's President and Chief Software Architect, Microsoft Regional Director, and 19 year Microsoft MVP, has taken the time to create (and teach) an all new training course that 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,...), Markus 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.

To put it in Markus' own words: "I am very excited about teaching this new class we have put together. 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?
In this session, Markus Egger 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 and Brown-Bag Meeting
On-site attendees will have a complimentary lunch with Markus Egger and EPS Software/CODE staff. During lunch, Markus Egger (and potentially other EPS Software/CODE staff members, and on-site attendees) will informally show various real-life examples and current real-life work as bonus content. Use this opportunity to see production code, ask questions, and a lot more.Due to the informal and in-person nature of the Brown-Bag Meeting, this bonus content is only available to on-site attendees and will NOT be recorded.
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 and Brown-Bag Meeting
Again, lunch will be brought in, and bonus content will be shown informally. Attendees are invited to part-take and ask questions or show their projects. Just as on the first day, this bonus content will only be available to on-site attendees and will NOT be recorded.
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.

Day 3

Lab: Converting a VFP Application to a .NET Windows App
On day three, attendees spend the entire day in a lab-style setup, converting a Visual FoxPro application to SQL Server, .NET and WPF. This day 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 arrive with software, updates and patches pre-installed as time is limited.

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