Southwest Fox 2018

October 18-21, 2018
SanTan Elegante Conference Center
Gilbert, AZ

Southwest Fox 2018 Sessions

There are 7 conference tracks at Southwest Fox 2018. "Level" shows the expected Visual FoxPro level for attendees for a session. Click a track's icon to jump to the sessions for that track.

Pre-Conference: These half-day sessions are offered on Thursday before the main conference starts, and are available for an additional cost; see the Register page for details.
Extending VFP: The sessions in this track look at ways to extend VFP's reach, by using it together with other products or by taking advantage of native extension capabilities, including working with SQL back-ends.
Moving VFP Applications Forward: This track covers topics related to modernizing VFP applications as well as alternatives for new platforms and future application development.
Solidifying VFP Development: This track will appeal to all VFP developers. Sessions cover either VFP fundamentals, aimed at those newer to VFP, whether moving up from FP2.x or coming to VFP from other languages; VFP best practices, aimed at helping all VFP developers improve; or in-depth looks at aspects of VFP that some developers may not have mastered yet.
Taking Advantage of VFPX: The sessions in this track showcase the projects in VFPX, providing attendees with enough information to put those projects to work for them.
Technology and Business for the Developer: This track looks at tools, technologies and techniques to make life as a developer easier and more productive.
Web and Mobile: The sessions in this track are aimed at developers who want to learn more about creating web and connected mobile applications.

Keynote

Presenter: Rick Schummer
Level: All levels
When: Thursday, October 18, 7:00 - 8:30, Elliott/Flagstaff

A developer's life can be extremely stressed, busy, and mentally challenging on a daily basis. There is never a shortage of moments that we all face: impossible deadlines, difficult to figure out bugs, ransomware hits on our customer's data, demanding customers who skip reading the fine help files, the unending list of enhancement requests, the rapid pace of innovation, the always fun deprecation of all the things we finally perfect, and the necessity to constantly learn the latest new thing. And that is just a normal Monday, right?

How does a developer cope in this pressure cooker and learn how to reap some of the rewards of our hard work, and still maintain mental sanity and find a proper life balance as our brains thin out as we age? What can neuroscience teach software developers to keep a healthy body, mind and spirit?

As a developer your brain is your body's most powerful tool, yet we rarely take time to properly recharge it and take care of it like some people do at the gym for the rest of their body. Mindfulness and a Mindfulness Practice is one of the easier ways to take care of our brain, and in turn the rest of your body, and surprise (spoiler alert!), it is not all that hard and does not take all that much time.

Expect some surprises as I share my journey and the actual techniques learned over the last three decades that have lead me to be a better developer and probably a better human. Learn how to quickly improve your life, your brain health, and find the critical balance of body, mind and spirit using the same science researched and studied at some small institutions you may have heard of including Harvard, MIT, Stanford, Yale, and Oxford.

Pre-Conference

Pre-ConferenceWeb and Mobile

Presenter: Kevin McNeish
Level: Intermediate
When: Thursday, October 18, 1:00 - 4:00, Flagstaff

Microsoft's Xamarin technology is finally mature enough to develop real-world apps that run on iOS, Android, and the Universal Windows Platform (UWP) for Windows 10!

In this pre-conference session, you first get a high-level overview of the Xamarin technologies that make it possible to write code in C# that can be shared on these three main platforms.

Next, you'll see a live demonstration building a business and data access layer with a SQLite back end using a Code First workflow to declare business entities and rules. Then, you'll learn the basics of Language INtegrated Query (LINQ) and raw SQL for retrieving and updating entities.

Finally, you'll see a live demo showing how to build a Xamarin Forms user interface that gets compiled to native UI controls on iOS, Android and Windows Forms for the best UI experience.

You will learn:

  • How to choose between Xamarin Native and Xamarin Forms applications
  • Best practices for sharing code between iOS, Android, and UWP apps
  • How to create a business and data access layer that works on all three platforms with a SQLite back end
  • How to use a Code First workflow to design entity classes and declare business rules
  • How to use LINQ and/or raw SQL to retrieve and update entities

Prerequisites: Basic familiarity with C#

Pre-ConferenceWeb and Mobile

Presenter: Phil Sherwood
Level: All levels
When: Thursday, October 18, 9:00 - 12:00, Flagstaff

Have you looked around at the landscape lately? Desktop applications aren't the rage anymore. Almost everyone wants a cloud application these days.

If you want to take one or more of your existing applications to the cloud, what are your options?

  1. Rewrite the application in .Net or one of the other cool languages like Rails, Python or Angular.
  2. Host the desktop application yourself or with one of the cloud hosts so that your users can access the app from anywhere.
  3. Hire someone to rewrite the application for you.

None of those options were going to work for me. I needed to get our application in the cloud as quickly as I could for the lowest cost.

That is why I chose to go with VFP and West Wind Web Connection. I already had a couple Web Connection applications running and have been using it since the early 2000's. I've been using VFP since before it was VFP. I decided to leverage what I knew in order to get our first application up quickly.

This session will cover the process of going from a desktop application to a true SaaS (Software as a Service) application. Have you ever given any thought to everything you need for a SaaS application? We'll cover that too.

What about reporting from a web app? You can code all of the reports or you can use a 3rd party application for reporting. We chose the latter. All of our reporting is done with Stonefield Query Enterprise Web.

At the end of this session, you'll leave with a framework for SaaS applications using VFP and Web Connection. All you'll need to do is create the rest of your application pages.

You will learn:

  • The basics of West Wind Web Connection
  • The components of a SaaA application
  • How to put the pieces of a web application together
  • How subscriptions work using Stripe

Prerequisites: Should understand HTML and have a basic working knowledge of CSS

Extending VFP

Extending VFPSolidifying VFP Development

Presenter: Tamar E. Granor
Level: Intermediate, Advanced
When: Friday, October 19, 10:00 - 11:15, Elliott (R1)
Saturday, October 20, 11:30 - 12:45, Elliott (R2)

Users today expect to be able to interact with applications by dragging and dropping. FoxPro has offered drag-and-drop capability since VFP 3, but many developers have never worked with it. In fact, VFP offers two separate approaches for drag-and-drop, a native capability and OLE drag-and-drop, which allows you to interact with other applications and gives you greater control over the process.

In this session, we'll look at both approaches and show both how easy simple drag-and-drop is, and the complex things you can accomplish with it.

You will learn:

  • About VFP's two drag-and-drop techniques
  • How to drag and drop within VFP applications
  • How to drag and drop between VFP and other applications

Prerequisites: None

Extending VFP

Presenter: Rick Strahl
Level: All levels
When: Saturday, October 20, 8:30 - 9:45, Flagstaff (R1)
Sunday, October 21, 11:30 - 12:45, Flagstaff (R2)

Markdown is easily one of the most interesting technologies that have had an impact on the way I've worked in the last few years. Markdown is a plain text format that can be rendered to HTML. Rather than creating HTML element tag soup to create even the most simple HTML text, Markdown lets you write mostly plain text with only a few easy to remember markup text "symbols" that signify things like bold and italic text, links, images headers and lists and so on. The beauty of Markdown is that it's very readable as plain text, and yet can render nice looking HTML content.

Markdown is used for writing documentation, for handling rich content in many Web applications, for note taking and much much more. You can also integrate it into your own applications for handling rich text input, or in Web applications handle layout for larger sections of static text.

In this session, I'll introduce you to what Markdown looks like and how you can easily create it using a number of tools. I'll also demonstrate a few use cases of how you can use Markdown in your daily work flow as well as inside of your own applications. We'll look at a number of Markdown use cases like documentation, blog posts, CMS, product catalogs, messages on forums, note taking and help desks and more.

You will learn:

  • What Markdown is
  • The basics of Markdown syntax
  • How to take advantage of Markdown for many of your writing needs
  • How to integrate Markdown into your own applications

Prerequisites: None

Extending VFPMoving VFP Applications Forward

Presenter: James S. Heuer
Level: Intermediate, Advanced
When: Friday, October 19, 10:00 - 11:15, Flagstaff (R1)
Saturday, October 20, 2:00 - 3:15, Flagstaff (R2)

Python is a powerful open source object-oriented programming language with many features to appeal to Visual FoxPro programmers looking for a way to extend their applications without being tied to Microsoft .NET technology. Python has its own version of a “Command Window” where Python expressions can be typed in and immediately evaluated, and Python source code files are directly executable (no compilation step). Python even has equivalents to the & macro operator, the VFP EXECSCRIPT() function, and a powerful suite of VFP-like TEXTMERGE-type functions. All this and more make Python a comfortable environment for VFP programmers.

In this overview we will provide a window into the vast Python ecosystem of libraries, platform options (there is even a version called “Iron Python” which is compiled to .NET CLR code), and the key technologies like COM that make it interoperable with Visual FoxPro. We'll cover some of the things Python can do that VFP struggles with and touch on those VFP features that Python likewise struggles with. The presentation will end with a brief introduction to the presenter's work in building Python modules that can access DBF tables concurrently with VFP, interoperate with WestWind tools, and enable smooth integration with Visual FoxPro applications.

You will learn:

  • Basic features, strengths and limitations of Python as a programming partner to Visual FoxPro
  • What versions and platforms Python comes in and how to obtain and install the right one for their project
  • What Python code looks like and how programming in it is both similar to and different from VFP
  • Options for GUI interfaces for console applications and their strengths and weaknesses
  • Basics of deploying Python applications on customer computers
  • What optional Python library modules are required to enable integration with VFP
  • Where to get more information on Python

Prerequisites: Intermediate level knowledge of Visual FoxPro. No knowledge of Python required.

Extending VFPMoving VFP Applications ForwardSolidifying VFP Development

Presenter: Tuvia Vinitsky
Level: Intermediate, Advanced
When: Friday, October 19, 11:30 - 12:45, Flagstaff (R1)
Sunday, October 21, 8:30 - 9:45, Flagstaff (R2)

Monitoring message queues or report requests are among the tasks that VFP can handle more efficiently running as a Windows service. But every version of Windows changes how to best accomplish this—and a VFP application has to be carefully constructed to successfully run as an unattended service.

This session will walk the participants through the process from A to Z. We will review how services work, how to install VFP apps as services, and we will create from scratch a VFP app that runs as a service monitoring report requests.

You will learn:

  • What a windows service can and cannot do
  • How to install and maintain a VFP app as a service
  • VFP coding to make a VFP app run successfully as a service
  • When to use a "service" vs when to use a COM object and the differences between the two

Prerequisites: VFP and Windows knowledge

Extending VFPSolidifying VFP Development

Presenter: Tuvia Vinitsky
Level: All levels
When: Friday, October 19, 8:30 - 9:45, Elliott (R1)
Sunday, October 21, 11:30 - 12:45, Elliott (R2)

A modern looking UI is almost essential in any VFP project, regardless of the backend data source. Now only do we need to know how to create a modern interface, we need to know how to define what exactly we mean by a "modern interface." What components and appearances contribute to the "modern" look? Which ones are the most important? Then how do we implement this look? In this session we will analyze and determine the components of a modern UI and how to create them in VFP.

You will learn:

  • Why some interfaces look modern and others do not
  • The components of a modern interface
  • What happens as times and interface standards change
  • How to program the key components of modern UI such as overlays, sliding panels etc.

Prerequisites: Basic VFP knowledge

Moving VFP Applications Forward

Moving VFP Applications ForwardExtending VFP

Presenter: James S. Heuer
Level: Intermediate, Advanced
When: Friday, October 19, 10:00 - 11:15, Flagstaff (R1)
Saturday, October 20, 2:00 - 3:15, Flagstaff (R2)

Python is a powerful open source object-oriented programming language with many features to appeal to Visual FoxPro programmers looking for a way to extend their applications without being tied to Microsoft .NET technology. Python has its own version of a “Command Window” where Python expressions can be typed in and immediately evaluated, and Python source code files are directly executable (no compilation step). Python even has equivalents to the & macro operator, the VFP EXECSCRIPT() function, and a powerful suite of VFP-like TEXTMERGE-type functions. All this and more make Python a comfortable environment for VFP programmers.

In this overview we will provide a window into the vast Python ecosystem of libraries, platform options (there is even a version called “Iron Python” which is compiled to .NET CLR code), and the key technologies like COM that make it interoperable with Visual FoxPro. We'll cover some of the things Python can do that VFP struggles with and touch on those VFP features that Python likewise struggles with. The presentation will end with a brief introduction to the presenter's work in building Python modules that can access DBF tables concurrently with VFP, interoperate with WestWind tools, and enable smooth integration with Visual FoxPro applications.

You will learn:

  • Basic features, strengths and limitations of Python as a programming partner to Visual FoxPro
  • What versions and platforms Python comes in and how to obtain and install the right one for their project
  • What Python code looks like and how programming in it is both similar to and different from VFP
  • Options for GUI interfaces for console applications and their strengths and weaknesses
  • Basics of deploying Python applications on customer computers
  • What optional Python library modules are required to enable integration with VFP
  • Where to get more information on Python

Prerequisites: Intermediate level knowledge of Visual FoxPro. No knowledge of Python required.

Moving VFP Applications ForwardExtending VFPSolidifying VFP Development

Presenter: Tuvia Vinitsky
Level: Intermediate, Advanced
When: Friday, October 19, 11:30 - 12:45, Flagstaff (R1)
Sunday, October 21, 8:30 - 9:45, Flagstaff (R2)

Monitoring message queues or report requests are among the tasks that VFP can handle more efficiently running as a Windows service. But every version of Windows changes how to best accomplish this—and a VFP application has to be carefully constructed to successfully run as an unattended service.

This session will walk the participants through the process from A to Z. We will review how services work, how to install VFP apps as services, and we will create from scratch a VFP app that runs as a service monitoring report requests.

You will learn:

  • What a windows service can and cannot do
  • How to install and maintain a VFP app as a service
  • VFP coding to make a VFP app run successfully as a service
  • When to use a "service" vs when to use a COM object and the differences between the two

Prerequisites: VFP and Windows knowledge

Solidifying VFP Development

Solidifying VFP Development

Presenter: Christof Wollenhaupt
Level: Intermediate, Advanced
When: Friday, October 19, 2:00 - 3:15, Elliott (R1)
Saturday, October 20, 2:00 - 3:15, Elliott (R2)

"It works on my machine!" Who has not said this when a customer calls because something isn't working? Debugging problems in a live environment at a customer site is a set of challenges on their own. We will look into various aspects: What tools are available to access a computer or transfer files? What tools can you use to analyze problems on the remote computer with a special focus on the limited options you sometimes have? What can you do in your application to aid you in debugging production issues? What are some of the legal considerations (*no legal advice will be given)? We also look into some of the common problems you can run into such as:

  • Permissions and verifying permissions
  • Unusual folder configuration
  • Impacts of the Application compatibility layer in Windows
  • Dealing with virus scanners
  • The SMB network protocol and latency issues (this is a very technical part)

You will learn:

  • How to debug problems on a non-development machine
  • How to improve your software so that less debugging is needed
  • That understanding the SMB protocol will make your head explode!

Prerequisites: None

Solidifying VFP DevelopmentExtending VFP

Presenter: Tamar E. Granor
Level: Intermediate, Advanced
When: Friday, October 19, 10:00 - 11:15, Elliott (R1)
Saturday, October 20, 11:30 - 12:45, Elliott (R2)

Users today expect to be able to interact with applications by dragging and dropping. FoxPro has offered drag-and-drop capability since VFP 3, but many developers have never worked with it. In fact, VFP offers two separate approaches for drag-and-drop, a native capability and OLE drag-and-drop, which allows you to interact with other applications and gives you greater control over the process.

In this session, we'll look at both approaches and show both how easy simple drag-and-drop is, and the complex things you can accomplish with it.

You will learn:

  • About VFP's two drag-and-drop techniques
  • How to drag and drop within VFP applications
  • How to drag and drop between VFP and other applications

Prerequisites: None

Solidifying VFP Development

Presenter: Doug Hennig
Level: All levels
When: Saturday, October 20, 8:30 - 9:45, Elliott (R1)
Sunday, October 21, 10:00 - 11:15, Elliott (R2)

Your customer calls to report that their application crashes. Where do you start to figure out what's causing the problem? This session looks at techniques for troubleshooting application problems, including advanced error handling to provide complete state information and instrumenting your applications to determine exactly what steps led up to the crash.

You will learn:

  • How to create an error handler that captures important state information
  • How instrumenting your application aids in troubleshooting
  • Techniques for quickly tracking down and solving problems

Prerequisites: General knowledge of VFP

Solidifying VFP DevelopmentTaking Advantage of VFPX

Presenter: Tamar E. Granor
Level: Intermediate
When: Friday, October 19, 3:30 - 4:45, Elliott (R1)
Saturday, October 20, 5:15 - 6:30, Elliott (R2)

Sooner or later, almost every developer has to take over an existing application. This session looks at tools (mostly free) and techniques for understanding how such applications work, improving the data model, dealing with non-developers who wrote the original code, and more. Since this session was originally presented in 2008, VFPX has significantly improved the set of tools available for this work; this session will explore some of those newer tools.

You will learn:

  • What legal issues to address up front
  • How to dig into the application and figure out how it works
  • How to improve the data model without losing existing data
  • How to work with fragile code
  • Which VFPX tools make this work easier

Prerequisites: None

Solidifying VFP DevelopmentExtending VFPMoving VFP Applications Forward

Presenter: Tuvia Vinitsky
Level: Intermediate, Advanced
When: Friday, October 19, 11:30 - 12:45, Flagstaff (R1)
Sunday, October 21, 8:30 - 9:45, Flagstaff (R2)

Monitoring message queues or report requests are among the tasks that VFP can handle more efficiently running as a Windows service. But every version of Windows changes how to best accomplish this—and a VFP application has to be carefully constructed to successfully run as an unattended service.

This session will walk the participants through the process from A to Z. We will review how services work, how to install VFP apps as services, and we will create from scratch a VFP app that runs as a service monitoring report requests.

You will learn:

  • What a windows service can and cannot do
  • How to install and maintain a VFP app as a service
  • VFP coding to make a VFP app run successfully as a service
  • When to use a "service" vs when to use a COM object and the differences between the two

Prerequisites: VFP and Windows knowledge

Solidifying VFP DevelopmentExtending VFP

Presenter: Tuvia Vinitsky
Level: All levels
When: Friday, October 19, 8:30 - 9:45, Elliott (R1)
Sunday, October 21, 11:30 - 12:45, Elliott (R2)

A modern looking UI is almost essential in any VFP project, regardless of the backend data source. Now only do we need to know how to create a modern interface, we need to know how to define what exactly we mean by a "modern interface." What components and appearances contribute to the "modern" look? Which ones are the most important? Then how do we implement this look? In this session we will analyze and determine the components of a modern UI and how to create them in VFP.

You will learn:

  • Why some interfaces look modern and others do not
  • The components of a modern interface
  • What happens as times and interface standards change
  • How to program the key components of modern UI such as overlays, sliding panels etc.

Prerequisites: Basic VFP knowledge

Solidifying VFP Development

Presenter: Christof Wollenhaupt
Level: Intermediate
When: Saturday, October 20, 10:00 - 11:15, Elliott (R1)
Sunday, October 21, 8:30 - 9:45, Elliott (R2)

These days you are likely to interact with Unicode or different character encodings even as a VFP developer:

  • Interacting with Web APIs and handling a JSON response
  • Importing or exporting XML files
  • Sending mails via SMTP
  • Passing data in Urls
  • or the classic: Internationalization

Character encoding is confusing, especially if multiple layers of encoding start to interact. In this session we look at various types of character encoding: Code pages, Unicode, character sets, base64, url, xml entities, forms, etc. We also cover the various layers of conversion such as DBF files, UI controls, COM Interaction, Win API conversion, HTTP services, and others.

You will learn:

  • How to understanding the various layers of encoding
  • How to deal with different types of encoding
  • About VFP functions you've probably never used before

Prerequisites: None

Taking Advantage of VFPX

Taking Advantage of VFPXSolidifying VFP Development

Presenter: Tamar E. Granor
Level: Intermediate
When: Friday, October 19, 3:30 - 4:45, Elliott (R1)
Saturday, October 20, 5:15 - 6:30, Elliott (R2)

Sooner or later, almost every developer has to take over an existing application. This session looks at tools (mostly free) and techniques for understanding how such applications work, improving the data model, dealing with non-developers who wrote the original code, and more. Since this session was originally presented in 2008, VFPX has significantly improved the set of tools available for this work; this session will explore some of those newer tools.

You will learn:

  • What legal issues to address up front
  • How to dig into the application and figure out how it works
  • How to improve the data model without losing existing data
  • How to work with fragile code
  • Which VFPX tools make this work easier

Prerequisites: None

Taking Advantage of VFPX

Presenter: Doug Hennig
Level: All levels
When: Friday, October 19, 11:30 - 12:45, Elliott (R1)
Saturday, October 20, 3:30 - 4:45, Elliott (R2)

It's been three years since Rick Schummer last presented one of his excellent "deep dive" sessions into VFPX, so it's time for an update. We'll start by looking at the new GitHub-based VFPX site, then dive into several exciting projects.

You will learn:

  • Different ways to install VFPX projects and stay up-to-date
  • How FoxBin2PRG works and can be configured just as you want
  • How to read from and write to Excel documents without using COM or having Excel installed
  • How Dynamic Forms can help you to add new features to your applications such as custom fields and dynamic application settings
  • How new projects by António Lopes allow you to create valid names, perform calendar processing, and process CVS and XML files
  • How other new projects may help your development efforts

Prerequisites: General knowledge of VFP

Technology and Business for the Developer

Technology and Business for the Developer

Presenter: Kevin McNeish
Level: Intermediate
When: Friday, October 19, 3:30 - 4:45, Flagstaff (R1)
Saturday, October 20, 11:30 - 12:45, Flagstaff (R2)

There are many ways to access and manipulate data in .NET. This session provides an overview of each technology, discusses the pros and cons of each, and helps you decide which is the best fit for you.

You first learn about traditional ADO.NET technologies including Data Sets, Data Readers, and Data Adapters, which include concepts and technologies using raw SQL and stored procedures familiar to most VFP developers.

Next, we take a close look at the latest versions of .NET's Entity Framework, which provides high-level access and control over your application's data. This includes a comparison between Entity Framework 6.x and the all new Entity Framework Core.

You will also learn about the different scenarios available to .NET developers, including using an Entity Data Model, Code First, and Database First workflows.

As each technology is presented, you get a live demonstration that shows how all the moving parts fit together in real-world samples showcasing best practices.

You will learn:

  • The different data access technologies available in .NET
  • How classic ADO.NET works
  • How Entity Framework technologies work
  • The differences between EF and EF Core
  • How to perform Code First vs. Database First workflows

Prerequisites: Basic familiarity with C# is beneficial, but not required

Technology and Business for the Developer

Presenter: Rick Borup
Level: All levels
When: Friday, October 19, 8:30 - 9:45, Flagstaff (R1)
Saturday, October 20, 5:15 - 6:30, Flagstaff (R2)

What constitutes a disaster? How well is your business prepared to recover from one? Do you have a plan for business continuity while recovery is in progress? This session, geared towards software developers, takes a fresh look at the resources and best practices for disaster recovery and business continuity planning. Topics include the kinds of disasters you should anticipate and prepare for, steps you can take to reduce their impact, what a disaster recovery and business continuity plan looks like, and how to create and test one. This session also includes all-new sections on the risks associated with the growing dependence on cloud resources and the role of insurance in disaster recovery and business continuity.

You will learn:

  • Why a disaster recovery and business continuity plan is important
  • How to identify the types of disasters to which your business is exposed
  • How to analyze the risks and assess the impact if any of them should occur
  • How to prepare an effective disaster recovery and business continuity plan
  • About current technologies and resources for backup and recovery
  • How to implement, manage, and test your plan
  • What to do if a disaster actually happens

Prerequisites: None

Technology and Business for the DeveloperWeb and Mobile

Presenter: Rick Borup
Level: All levels
When: Saturday, October 20, 10:00 - 11:15, Flagstaff (R1)
Sunday, October 21, 10:00 - 11:15, Flagstaff (R2)

As the percentage of Web traffic from mobile devices steadily increases, websites that don't adjust their content for smaller screens risk becoming irrelevant. Sites originally designed for desktop browsers may be almost unreadable on mobile devices. If the site doesn't detect smaller viewports and adjust its content accordingly, the visitor might see a postage-stamp miniature of the original or content that overflows to the right and requires horizontal scrolling. Short of redesigning and rewriting the entire website—or even creating a completely separate site for mobile devices—how do you make an existing site responsive to mobile devices? Using an example adapted from a real-world experience, this session shows you how to update a website to respond to mobile devices using only CSS and a little Javascript. No new frameworks required!

You will learn:

  • How to structure your HTML for responsive design
  • What CSS is all about
  • How to use CSS to control content layout
  • How to use CSS to adjust the layout for different size viewports
  • How to create navigation menus for mobile devices using CSS and Javascript
  • What to do about images that are too big to fit
  • About tools to help you create and test responsive designs
  • What Flexbox is and how to start using it

Prerequisites: Working knowledge of HTML. Some knowledge of CSS and Javascript helpful but not required.

Web and Mobile

Web and MobilePre-Conference

Presenter: Kevin McNeish
Level: Intermediate
When: Thursday, October 18, 1:00 - 4:00, Flagstaff

Microsoft's Xamarin technology is finally mature enough to develop real-world apps that run on iOS, Android, and the Universal Windows Platform (UWP) for Windows 10!

In this pre-conference session, you first get a high-level overview of the Xamarin technologies that make it possible to write code in C# that can be shared on these three main platforms.

Next, you'll see a live demonstration building a business and data access layer with a SQLite back end using a Code First workflow to declare business entities and rules. Then, you'll learn the basics of Language INtegrated Query (LINQ) and raw SQL for retrieving and updating entities.

Finally, you'll see a live demo showing how to build a Xamarin Forms user interface that gets compiled to native UI controls on iOS, Android and Windows Forms for the best UI experience.

You will learn:

  • How to choose between Xamarin Native and Xamarin Forms applications
  • Best practices for sharing code between iOS, Android, and UWP apps
  • How to create a business and data access layer that works on all three platforms with a SQLite back end
  • How to use a Code First workflow to design entity classes and declare business rules
  • How to use LINQ and/or raw SQL to retrieve and update entities

Prerequisites: Basic familiarity with C#

Web and MobilePre-Conference

Presenter: Phil Sherwood
Level: All levels
When: Thursday, October 18, 9:00 - 12:00, Flagstaff

Have you looked around at the landscape lately? Desktop applications aren't the rage anymore. Almost everyone wants a cloud application these days.

If you want to take one or more of your existing applications to the cloud, what are your options?

  1. Rewrite the application in .Net or one of the other cool languages like Rails, Python or Angular.
  2. Host the desktop application yourself or with one of the cloud hosts so that your users can access the app from anywhere.
  3. Hire someone to rewrite the application for you.

None of those options were going to work for me. I needed to get our application in the cloud as quickly as I could for the lowest cost.

That is why I chose to go with VFP and West Wind Web Connection. I already had a couple Web Connection applications running and have been using it since the early 2000's. I've been using VFP since before it was VFP. I decided to leverage what I knew in order to get our first application up quickly.

This session will cover the process of going from a desktop application to a true SaaS (Software as a Service) application. Have you ever given any thought to everything you need for a SaaS application? We'll cover that too.

What about reporting from a web app? You can code all of the reports or you can use a 3rd party application for reporting. We chose the latter. All of our reporting is done with Stonefield Query Enterprise Web.

At the end of this session, you'll leave with a framework for SaaS applications using VFP and Web Connection. All you'll need to do is create the rest of your application pages.

You will learn:

  • The basics of West Wind Web Connection
  • The components of a SaaA application
  • How to put the pieces of a web application together
  • How subscriptions work using Stripe

Prerequisites: Should understand HTML and have a basic working knowledge of CSS

Web and MobileTechnology and Business for the Developer

Presenter: Rick Borup
Level: All levels
When: Saturday, October 20, 10:00 - 11:15, Flagstaff (R1)
Sunday, October 21, 10:00 - 11:15, Flagstaff (R2)

As the percentage of Web traffic from mobile devices steadily increases, websites that don't adjust their content for smaller screens risk becoming irrelevant. Sites originally designed for desktop browsers may be almost unreadable on mobile devices. If the site doesn't detect smaller viewports and adjust its content accordingly, the visitor might see a postage-stamp miniature of the original or content that overflows to the right and requires horizontal scrolling. Short of redesigning and rewriting the entire website—or even creating a completely separate site for mobile devices—how do you make an existing site responsive to mobile devices? Using an example adapted from a real-world experience, this session shows you how to update a website to respond to mobile devices using only CSS and a little Javascript. No new frameworks required!

You will learn:

  • How to structure your HTML for responsive design
  • What CSS is all about
  • How to use CSS to control content layout
  • How to use CSS to adjust the layout for different size viewports
  • How to create navigation menus for mobile devices using CSS and Javascript
  • What to do about images that are too big to fit
  • About tools to help you create and test responsive designs
  • What Flexbox is and how to start using it

Prerequisites: Working knowledge of HTML. Some knowledge of CSS and Javascript helpful but not required.

Web and Mobile

Presenter: Rick Strahl
Level: All levels
When: Friday, October 19, 2:00 - 3:15, Flagstaff (R1)
Saturday, October 20, 3:30 - 4:45, Flagstaff (R2)

Web Security—or lack thereof—is frequently in the headlines these days and if you are building Web applications you need to be aware of the the variety of threats that are going to be directed at your Web sites as soon as they go live. It's important to think about security right from the start when you build applications, and using Web Connection and Visual FoxPro is no different than other platforms.

In this session you'll learn about basic Web site security concepts both for Web Connection specifically and IIS and Web Servers in general. We'll cover:

  • Setting up IIS securely
  • Locking out content for general access
  • Locking down the Administration interfaces
  • Choosing the right User Context to run your Site
  • Setting TLS for your site for free with LetsEncrypt
  • Creating user based logins
  • Building a comprehensive Login system for your User Authentication
  • Storing information and passwords securely

While all this sounds fairly basic, there are a lot of things you need to consider to make sure your application and your data stays safe and this session touches on all the core areas that you need to consider for creating secure Web applications.

You will learn:

  • How to set up IIS Securely
  • How to add https to your IIS site for free with LetsEncrypt
  • About the built-in Authentication features in Web Connection
  • How to properly manage passwords in Web applications
  • About managing the typical login, recover, profile management workflow

Prerequisites: Some experience with Web technologies. Bonus: experience with Web Connection

Post-Conference

Platinum Sponsors
Diamond Sponsors