October 24-27, 2019
SanTan Elegante Conference Center
Gilbert, AZ
There are 7 conference tracks at Southwest Fox 2019. "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.
Keynote
Presenter: Kevin Ragsdale
When: Thursday, October 24, 7:00 - 8:30, Elliott/Flagstaff
Visual FoxPro 9.0 was released in December 2004, just a couple of months after the first Southwest Fox Conference. In March of 2007, Microsoft announced there would be no VFP 10. A few months later, Southwest Fox celebrated its fourth year (and the first one organized by Rick, Tamar, and Doug). This year, we're gathering in Phoenix for the SIXTEENTH annual Southwest Fox Conference.
I've been using FoxPro for over 25 years - a late bloomer compared to many Southwest Fox attendees. I attended the second Southwest Fox in 2005, and even though I was a wallflower at my first conference, it was one of the best experiences I've had over the course of those 25 years. Every time I've attended since then, my "best experiences bucket" continues to be filled.
Please join me on a humorous and (I hope) recognizable celebration of the history of FoxPro, the community, and Southwest Fox, largely based on my personal journey from FoxPro 2.6 for Windows through VFP 9 - and beyond!
Pre-Conference
Presenter: Rick Borup
Level: All levels
When: Thursday, October 24, 9:00 - 12:00, Flagstaff
While Mercurial remains a perfectly satisfactory choice for distributed version control, it's no secret that Git has become the dominant player. The acquisition of GitHub by Microsoft has accelerated the movement toward Git, particularly if you want to share or contribute to open source projects. What are your options if you are currently using Mercurial? Should you consider migrating to Git? Can you convert your existing repositories or do you have to start over from scratch? Are there tools to help you work with both Git and Mercurial? This session explores the answers to these questions and more.
You will learn:
Prerequisites: Some experience with Mercurial is helpful but not required
Presenter: Jody L. Meyer
Level: All levels
When: Thursday, October 24, 1:00 - 4:00, Flagstaff
So you have moved your software or have developed software with a VFP frontend and a SQL Server backend. That is really cool. Your customers are happy which of course makes you happy. They aren't a big shop. They don't have a resident database administrator. So, guess what?!?! Tag, you're IT! You have become their DBA.
Their SQL Server needs regular maintenance tasks to be performed such as backups, reindexing of tables, etc. The database needs to be tuned, indexes re-evaluated, processes that once used to take minutes are taking hours and perhaps days! Also, security has become a very hot topic and you need restrict access to table content.
Maintenance Plans Their SQL Server needs regular maintenance tasks to be performed such as backups, reindexing of tables, etc. These tasks are necessary to avoid performance and availability issues from occurring. It is now your responsibility to implement and automate these regular maintenance tasks.
SQL Server Indexing We all know how to build an index, but is it a well performing index? SQL Server has indexing tools to help identify indexes that can improve database performance. There are ways to monitor indexes: to see if indexes are being used, how they are behaving and how they are impacting your environment.
Implementing Security with Users, Groups and Roles You would think that implementing SQL Server database security should be a simple topic. All you want to do is to grant a specific login a specific capability such as the ability to update tables in a specific database or just view content of some tables in a specific database. However, with SQL Server, setting up security can get complicated very quickly.
You will learn:
Prerequisites: SQL Server experience
Extending VFP
Presenter: Doug Hennig
Level: Advanced
When: Saturday, October 26, 10:00 - 11:15, Flagstaff (R1)
Sunday, October 27, 8:30 - 9:45, Flagstaff (R2)
You may have seen sessions at previous Southwest Fox conferences on using wwDotNetBridge to call .NET code from VFP. If you haven't, this session will introduce you to the benefits .NET can add to your VFP applications. However, this session is more from the .NET side. When do you need to write a wrapper program in .NET rather than accessing the .NET code directly? How do you write such a wrapper? This session will also look at a new interop library by James Suárez called Kodnet. This library has some features that aren't available in wwDotNetBridge.
You will learn:
Prerequisites: Basic knowledge of C# is useful but not required
Presenter: Doug Hennig
Level: Intermediate
When: Friday, October 25, 3:30 - 4:45, Flagstaff (R1)
Saturday, October 26, 5:15 - 6:30, Flagstaff (R2)
Reports and menus are two components in VFP for which there is no object-oriented access. And yet an OOP approach to both would make them much easier to work with, especially if you want to dynamically create or make changes to them at runtime. I created object-oriented wrappers for both reports and menus and have used them successfully for many years. In this session, I'll show you how to use these wrappers to provide cool features to your applications, such as dynamic menus that provide control for security purposes and dynamic reports that output the contents of a grid or form.
You will learn:
Prerequisites: General knowledge of VFP
Presenter: Rick Schummer
Level: All levels
When: Friday, October 25, 2:00 - 3:15, Elliott (R1)
Sunday, October 27, 8:30 - 9:45, Elliott (R2)
Rapid Application Development is a leftover buzzword from decades past. Are you as productive with VFP as you can be, or wish to be? How do other developers use the world's best database application development tool to bring applications to market quicker? Are there tips I can learn to save me 10 minutes a day or an hour a week? This session demonstrates as many tips and productivity ideas as can be crammed into a 75-minute session. As the old saying goes, there are always three ways to accomplish something in Visual FoxPro. Sometimes we only know one way and there are two other ways that are faster or better. Sometimes we don't even know that you can accomplish certain things with VFP. I am constantly amazed, even after using Visual FoxPro for more than two decades, how much I have learned just looking over the shoulder of others as they develop with this product.The session has productivity tips for developers working with all versions of VFP, but focuses on IDE tips and tricks as well as some goodies from VFPX, including a new tool from VFPX that will be introduced at the conference.
You will learn:
Prerequisites: None.
Presenter: Tracy Pearson
Level: Intermediate
When: Friday, October 25, 8:30 - 9:45, Flagstaff (R1)
Saturday, October 26, 11:30 - 12:45, Flagstaff (R2)
In this session, you will learn how to implement a VFP COM object that can be consumed by another Windows application and how to register this object. This presentation demonstrates a C# application (web service, desktop application, etc.) instantiating the COM object. The COM object accesses VFP data and returns it as XML, allowing C# to consume it. We will look at how .NET 4 and .NET Core on Windows can use this object, as well as how to return errors to .NET to implement error handling. Time permitting we will demonstrate VFP updating and/or consuming a C# object.
You will learn:
Prerequisites: None
Presenter: Rick Borup
Level: All levels
When: Friday, October 25, 11:30 - 12:45, Gilbert (R1)
Sunday, October 27, 11:30 - 12:45, Gilbert (R2)
SQLite is a lightweight, open-source, cross-platform, single file SQL database engine that's perfect for many situations where you want to store and retrieve information quickly and reliably. SQLite databases are widely used by many software applications, often behind the scenes; in fact, it's likely you already have at least one SQLite database on your computer without even knowing it. As a Visual FoxPro developer, you can leverage the power and convenience of SQLite in your own applications, too. Come to this session to learn about SQLite and how to use it.
You will learn:
Prerequisites: A working knowledge of Visual FoxPro and SQL
Presenter: Tuvia Vinitsky
Level: Advanced
When: Friday, October 25, 11:30 - 12:45, Flagstaff (R1)
Sunday, October 27, 11:30 - 12:45, Flagstaff (R2)
Whether it is vehicle routing, time and distance calculations, or just a pretty street view, maps add a layer of capabilities and sophistication to a VFP app. However integrating a map API can seem like a daunting task. In this session, we will add maps to a VFP app and add features such as distance calculation.
You will learn:
Prerequisites: Strong VFP knowledge. Experience with API calls and HTTP or HTML desirable
Presenter: Tamar E. Granor
Level: Intermediate
When: Friday, October 25, 8:30 - 9:45, Elliott (R1)
Saturday, October 26, 3:30 - 4:45, Elliott (R2)
Whether you're working in VFP, SQL Server, or MySQL, some problems come up pretty regularly. In this session, we'll look at how to solve some frequent problems using SQL. In some cases, we'll see how differences in what portion of the SQL standard is implemented make a problem easier to solve in some variants than others.
You will learn:
Prerequisites: Some familiarity with basic SQL syntax
Presenter: Eric J. Selje
Level: All levels
When: Saturday, October 26, 8:30 - 9:45, Flagstaff (R1)
Saturday, October 26, 3:30 - 4:45, Flagstaff (R2)
Did you know there is (kind of) a Visual FoxPro version 10? It's not an official Microsoft release though, but rather the work of one man!
VFP Advanced fixes over 80 bugs in VFP 9, introduces a couple of new data types, and also (drumroll please) comes in a 64-bit version.
In this session, we'll take a look at this free patch for Visual FoxPro. We'll go over some (but not all 81, as of this writing) bugs that it fixes and how he did it, discuss what being 64-bit does for us, and have a conversation about whether you want to develop and release software that uses this patch. Is it dangerous? Buggy? Well-supported? Come to this session and find out.
You will learn:
Prerequisites: None
Moving VFP Applications Forward
Presenter: Rick Strahl
Level: All levels
When: Friday, October 25, 3:30 - 4:45, Elliott (R1)
Saturday, October 26, 2:00 - 3:15, Elliott (R2)
.NET Core is a new version of .NET that is cross platform, very high performance, and includes many new features and improvements over the original Windows-only .NET Framework. These versions of .NET are similar but they are not 100% compatible and .NET Core brings an entirely new development paradigm to the .NET eco system with better and more open tooling, multi-platform support and many new enhancements.
In this session, we'll take a high level look at how .NET Core works and how it is different than full framework .NET and how that affects its relationship with Visual FoxPro. In the past, FoxPro has been able to play with .NET, and that is still true—with a lot more limitations—in .NET Core. The platform isn't integrated into Windows any more nor is it even Windows-centric and it doesn't support many Windows-centric features like STA threading in the built-in frameworks. This changes the relationship with FoxPro considerably as traditional .NET tooling and approaches do not work in .NET. You can't use COM Interop with .NET Core Components (or wwDotnetBridge as is), nor easily run FoxPro components from ASP.NET Core Web applications. We'll examine a few different interop scenarios and provide some guidelines when it makes sense to use .NET Framework or .NET Core.
This session is an overview of functionality and trade offs and as such, light on code and heavy on architecture and concepts that discusses high level architecture and overall concepts.
You will learn:
Prerequisites: Some familiarity with .NET Platform. Some experience building .NET Interop related features is recommended but not required. This session focuses on high level guidance rather than specific coding concepts.
Presenter: Christof Wollenhaupt
Level: Intermediate
When: Friday, October 25, 10:00 - 11:15, Flagstaff (R1)
Saturday, October 26, 2:00 - 3:15, Flagstaff (R2)
AI, Machine Learning, and Deep Learning have replaced the cloud and agile as the new hot buzzwords. Depending on who you ask, AI will either change our life completely for the better or is the reason why the world ends in AI domination. AI investments have spun up a new race between nations, most notably between the USA and China.
In this session, we look at what Machine Learning is and how it works. We will cover how the current concept of machine learning is different from AI research in the past decades and how gamers have paved the way for today's technology.
On the practical side, we explore what tools are available to us as VFP developers. We explore cloud services that perform OCR and image content recognition, such as Google Cloud Vision API and Azure Machine Learning, but also local tools like TensorFlow, or whatever tools are in use by the time this presentation is given.
You will learn:
Prerequisites: Interest in new technologies and curiosity
Presenter: Eric J. Selje
Level: All levels
When: Friday, October 25, 2:00 - 3:15, Flagstaff (R1)
Sunday, October 27, 10:00 - 11:15, Flagstaff (R2)
Would you be interested in a product that compiles Visual FoxPro into .NET compatible code? Well, that product doesn't exist, but there is a compelling product called X# that is working towards that goal. They've got a mature product that compiles many dialects of xBase to .NET already, and they're now actively working on VFP syntax.
In this session we'll look at X# from a Visual FoxPro developers point of view and try to answer a few questions.
You will learn:
Prerequisites: None
Presenter: Rick Borup
Level: All levels
When: Thursday, October 24, 9:00 - 12:00, Flagstaff
While Mercurial remains a perfectly satisfactory choice for distributed version control, it's no secret that Git has become the dominant player. The acquisition of GitHub by Microsoft has accelerated the movement toward Git, particularly if you want to share or contribute to open source projects. What are your options if you are currently using Mercurial? Should you consider migrating to Git? Can you convert your existing repositories or do you have to start over from scratch? Are there tools to help you work with both Git and Mercurial? This session explores the answers to these questions and more.
You will learn:
Prerequisites: Some experience with Mercurial is helpful but not required
Presenter: Tuvia Vinitsky
Level: Advanced
When: Friday, October 25, 11:30 - 12:45, Flagstaff (R1)
Sunday, October 27, 11:30 - 12:45, Flagstaff (R2)
Whether it is vehicle routing, time and distance calculations, or just a pretty street view, maps add a layer of capabilities and sophistication to a VFP app. However integrating a map API can seem like a daunting task. In this session, we will add maps to a VFP app and add features such as distance calculation.
You will learn:
Prerequisites: Strong VFP knowledge. Experience with API calls and HTTP or HTML desirable
Presenter: Eric J. Selje
Level: All levels
When: Saturday, October 26, 8:30 - 9:45, Flagstaff (R1)
Saturday, October 26, 3:30 - 4:45, Flagstaff (R2)
Did you know there is (kind of) a Visual FoxPro version 10? It's not an official Microsoft release though, but rather the work of one man!
VFP Advanced fixes over 80 bugs in VFP 9, introduces a couple of new data types, and also (drumroll please) comes in a 64-bit version.
In this session, we'll take a look at this free patch for Visual FoxPro. We'll go over some (but not all 81, as of this writing) bugs that it fixes and how he did it, discuss what being 64-bit does for us, and have a conversation about whether you want to develop and release software that uses this patch. Is it dangerous? Buggy? Well-supported? Come to this session and find out.
You will learn:
Prerequisites: None
Solidifying VFP Development
Presenter: Cathy Pountney
Level: All levels
When: Saturday, October 26, 8:30 - 9:45, Elliott (R1)
Sunday, October 27, 11:30 - 12:45, Elliott (R2)
Preparing your vertical market application for an international customer base involves a lot more than just swapping the captions with a new language. MessageBox and WAIT dialogs need to be handled differently. Hard-coded combobox values need to be handled differently. Dates, numbers, and dollar amounts need to be formatted differently. Controls may need to be resized and groups of controls may need to be realigned. Certain customer data, such as lookup tables, may need to be translated. Utilities need to be created for helping with the translation process. The list goes on and on! Even if you're not considering multi-languages ... Is your application used by various disciplines? Nomenclatures can be handled using many of these same design considerations. For example, is it "Client" or "Customer"? Is it "Part Number", "Item Number", "Product Code", or "Service Code"? Starting to get the picture? In this session, Cathy discusses a wide variety of design considerations to help guide you through the process of localizing your application.
You will learn:
Prerequisites: None
Presenter: Cathy Pountney
Level: Intermediate
When: Friday, October 25, 10:00 - 11:15, Elliott (R1)
Saturday, October 26, 11:30 - 12:45, Elliott (R2)
With regards to reports, VFP 9 SP2 has enormous power and extensibility. It has the ability to create custom features that can be used over and over again on numerous reports. For example, would you like the ability to easily add a watermark to reports? How about the ability to dynamically reduce the font on long text so it fits within a narrow column? The possibilities are endless and no one developer can think of them all. My fxReports reporting framework and corresponding utilities allows each of us to create our own custom features to use in our applications as well as share them with the FoxPro community. And of course, the opposite is true: you can take advantage of custom report features created by other developers. This project is part of the FoxPro Community effort on VFPX (hosted on GitHub). In this session, I'll walk through the entire concept from both sides. You'll learn how to use features developed by other developers, you'll learn how to create your own features, and you'll also learn how to share those features with other developers.
You will learn:
Prerequisites: Knowledge of the VFP Report Writer required. Knowledge of ReportListeners is helpful.
Presenter: Rick Schummer
Level: All levels
When: Friday, October 25, 2:00 - 3:15, Elliott (R1)
Sunday, October 27, 8:30 - 9:45, Elliott (R2)
Rapid Application Development is a leftover buzzword from decades past. Are you as productive with VFP as you can be, or wish to be? How do other developers use the world's best database application development tool to bring applications to market quicker? Are there tips I can learn to save me 10 minutes a day or an hour a week? This session demonstrates as many tips and productivity ideas as can be crammed into a 75-minute session. As the old saying goes, there are always three ways to accomplish something in Visual FoxPro. Sometimes we only know one way and there are two other ways that are faster or better. Sometimes we don't even know that you can accomplish certain things with VFP. I am constantly amazed, even after using Visual FoxPro for more than two decades, how much I have learned just looking over the shoulder of others as they develop with this product.The session has productivity tips for developers working with all versions of VFP, but focuses on IDE tips and tricks as well as some goodies from VFPX, including a new tool from VFPX that will be introduced at the conference.
You will learn:
Prerequisites: None.
Presenter: Tracy Pearson
Level: Intermediate
When: Friday, October 25, 8:30 - 9:45, Flagstaff (R1)
Saturday, October 26, 11:30 - 12:45, Flagstaff (R2)
In this session, you will learn how to implement a VFP COM object that can be consumed by another Windows application and how to register this object. This presentation demonstrates a C# application (web service, desktop application, etc.) instantiating the COM object. The COM object accesses VFP data and returns it as XML, allowing C# to consume it. We will look at how .NET 4 and .NET Core on Windows can use this object, as well as how to return errors to .NET to implement error handling. Time permitting we will demonstrate VFP updating and/or consuming a C# object.
You will learn:
Prerequisites: None
Presenter: Tamar E. Granor
Level: Intermediate
When: Friday, October 25, 8:30 - 9:45, Elliott (R1)
Saturday, October 26, 3:30 - 4:45, Elliott (R2)
Whether you're working in VFP, SQL Server, or MySQL, some problems come up pretty regularly. In this session, we'll look at how to solve some frequent problems using SQL. In some cases, we'll see how differences in what portion of the SQL standard is implemented make a problem easier to solve in some variants than others.
You will learn:
Prerequisites: Some familiarity with basic SQL syntax
Taking Advantage of VFPX
Presenter: Cathy Pountney
Level: Intermediate
When: Friday, October 25, 10:00 - 11:15, Elliott (R1)
Saturday, October 26, 11:30 - 12:45, Elliott (R2)
With regards to reports, VFP 9 SP2 has enormous power and extensibility. It has the ability to create custom features that can be used over and over again on numerous reports. For example, would you like the ability to easily add a watermark to reports? How about the ability to dynamically reduce the font on long text so it fits within a narrow column? The possibilities are endless and no one developer can think of them all. My fxReports reporting framework and corresponding utilities allows each of us to create our own custom features to use in our applications as well as share them with the FoxPro community. And of course, the opposite is true: you can take advantage of custom report features created by other developers. This project is part of the FoxPro Community effort on VFPX (hosted on GitHub). In this session, I'll walk through the entire concept from both sides. You'll learn how to use features developed by other developers, you'll learn how to create your own features, and you'll also learn how to share those features with other developers.
You will learn:
Prerequisites: Knowledge of the VFP Report Writer required. Knowledge of ReportListeners is helpful.
Presenter: Rick Schummer
Level: All levels
When: Friday, October 25, 2:00 - 3:15, Elliott (R1)
Sunday, October 27, 8:30 - 9:45, Elliott (R2)
Rapid Application Development is a leftover buzzword from decades past. Are you as productive with VFP as you can be, or wish to be? How do other developers use the world's best database application development tool to bring applications to market quicker? Are there tips I can learn to save me 10 minutes a day or an hour a week? This session demonstrates as many tips and productivity ideas as can be crammed into a 75-minute session. As the old saying goes, there are always three ways to accomplish something in Visual FoxPro. Sometimes we only know one way and there are two other ways that are faster or better. Sometimes we don't even know that you can accomplish certain things with VFP. I am constantly amazed, even after using Visual FoxPro for more than two decades, how much I have learned just looking over the shoulder of others as they develop with this product.The session has productivity tips for developers working with all versions of VFP, but focuses on IDE tips and tricks as well as some goodies from VFPX, including a new tool from VFPX that will be introduced at the conference.
You will learn:
Prerequisites: None.
Technology and Business for the Developer
Presenter: Tamar E. Granor
Level: All levels
When: Saturday, October 26, 10:00 - 11:15, Elliott (R1)
Sunday, October 27, 10:00 - 11:15, Elliott (R2)
PHP is one of the most commonly used languages for adding code to websites. It allows you to pre-process information and generate HTML, and it has extensions for working with a variety of databases, including SQL Server and MySQL.
In this session, we'll look at the basics of PHP as well as how to use it to add data to websites at runtime.
You will learn:
Prerequisites: Some familiarity with HTML
Presenter: Christof Wollenhaupt
Level: Intermediate
When: Friday, October 25, 10:00 - 11:15, Flagstaff (R1)
Saturday, October 26, 2:00 - 3:15, Flagstaff (R2)
AI, Machine Learning, and Deep Learning have replaced the cloud and agile as the new hot buzzwords. Depending on who you ask, AI will either change our life completely for the better or is the reason why the world ends in AI domination. AI investments have spun up a new race between nations, most notably between the USA and China.
In this session, we look at what Machine Learning is and how it works. We will cover how the current concept of machine learning is different from AI research in the past decades and how gamers have paved the way for today's technology.
On the practical side, we explore what tools are available to us as VFP developers. We explore cloud services that perform OCR and image content recognition, such as Google Cloud Vision API and Azure Machine Learning, but also local tools like TensorFlow, or whatever tools are in use by the time this presentation is given.
You will learn:
Prerequisites: Interest in new technologies and curiosity
Presenter: Christof Wollenhaupt
Level: Intermediate, Advanced
When: Saturday, October 26, 8:30 - 9:45, Gilbert (R1)
Sunday, October 27, 10:00 - 11:15, Gilbert (R2)
One day your client tells you that there was a security review on one of the Web APIs that your application uses. The review discovered that your URLs can be intercepted, modified without detection, and replayed at any time. A security disaster, even though your application was state of the art when you wrote it 18 years ago.
You are told that you have to encode the URL using the SHA256withRSA algorithm. As you're trying to figure out what that is, you are informed that the required certificate is stored in a Java Key Store file that you and your client have no control over as that is provided by the company's IT department.
Granted, that might not be your everyday experience. However, security is increasingly becoming an issue even for in-house software as our business and our customer's IT infrastructure is more and more regulated, because software runs more and more critical infrastructure and countries around the world invest massively into the so-called cyberwar.
In this session we cover the foundations of encryption. What are certificates and how do they work? Why are some cheap and some expensive? How are they stored? How do you make use of them? What's a certificate authority? What's the interaction between certificates, encryption algorithms, and hashes. What algorithms are still considered to be secure? How to deal with code that is no longer considered to be adequate?
You will learn:
Prerequisites: A desire to improve security in your applications large enough to deal with a dozen three letter acronyms
Presenter: Rick Borup
Level: All levels
When: Thursday, October 24, 9:00 - 12:00, Flagstaff
While Mercurial remains a perfectly satisfactory choice for distributed version control, it's no secret that Git has become the dominant player. The acquisition of GitHub by Microsoft has accelerated the movement toward Git, particularly if you want to share or contribute to open source projects. What are your options if you are currently using Mercurial? Should you consider migrating to Git? Can you convert your existing repositories or do you have to start over from scratch? Are there tools to help you work with both Git and Mercurial? This session explores the answers to these questions and more.
You will learn:
Prerequisites: Some experience with Mercurial is helpful but not required
Presenter: Jody L. Meyer
Level: All levels
When: Thursday, October 24, 1:00 - 4:00, Flagstaff
So you have moved your software or have developed software with a VFP frontend and a SQL Server backend. That is really cool. Your customers are happy which of course makes you happy. They aren't a big shop. They don't have a resident database administrator. So, guess what?!?! Tag, you're IT! You have become their DBA.
Their SQL Server needs regular maintenance tasks to be performed such as backups, reindexing of tables, etc. The database needs to be tuned, indexes re-evaluated, processes that once used to take minutes are taking hours and perhaps days! Also, security has become a very hot topic and you need restrict access to table content.
Maintenance Plans Their SQL Server needs regular maintenance tasks to be performed such as backups, reindexing of tables, etc. These tasks are necessary to avoid performance and availability issues from occurring. It is now your responsibility to implement and automate these regular maintenance tasks.
SQL Server Indexing We all know how to build an index, but is it a well performing index? SQL Server has indexing tools to help identify indexes that can improve database performance. There are ways to monitor indexes: to see if indexes are being used, how they are behaving and how they are impacting your environment.
Implementing Security with Users, Groups and Roles You would think that implementing SQL Server database security should be a simple topic. All you want to do is to grant a specific login a specific capability such as the ability to update tables in a specific database or just view content of some tables in a specific database. However, with SQL Server, setting up security can get complicated very quickly.
You will learn:
Prerequisites: SQL Server experience
Presenter: Rick Borup
Level: All levels
When: Friday, October 25, 11:30 - 12:45, Gilbert (R1)
Sunday, October 27, 11:30 - 12:45, Gilbert (R2)
SQLite is a lightweight, open-source, cross-platform, single file SQL database engine that's perfect for many situations where you want to store and retrieve information quickly and reliably. SQLite databases are widely used by many software applications, often behind the scenes; in fact, it's likely you already have at least one SQLite database on your computer without even knowing it. As a Visual FoxPro developer, you can leverage the power and convenience of SQLite in your own applications, too. Come to this session to learn about SQLite and how to use it.
You will learn:
Prerequisites: A working knowledge of Visual FoxPro and SQL
Presenter: Tracy Pearson
Level: Intermediate
When: Friday, October 25, 2:00 - 3:15, Gilbert (R1)
Saturday, October 26, 5:15 - 6:30, Gilbert (R2)
This session is a discussion about why we chose to automate the work of deploying a vertical market project. There will be a demonstration of how we use Visual Build Professional to automate the build step of VFP and .NET applications and their installers. It will demonstrate how to reuse steps and spend less time with maintenance of the automation build.
We will discuss how each of our executable files is signed to prevent the dreaded "Unknown publisher" message. We also integrate sending email and team chat (Slack/RocketChat) messages upon each build, as well as publishing new build bits to Amazon S3 and updating a web service.
You will learn:
Prerequisites: None
Presenter: Tuvia Vinitsky
Level: All levels
When: Friday, October 25, 8:30 - 9:45, Gilbert (R1)
Sunday, October 27, 8:30 - 9:45, Gilbert (R2)
Who owns your software code? Your reusable routines? Do you know what to do to protect your software from undesired use?
Patents, copyrights, trademarks, license agreements, trade secrets, rights of employees and consultants, and more! These are aspects of software development most likely to be overlooked and misunderstood by developers both large and small—until it is too late. Knowing about these important topics is critical to ensuring the long and successful life of a software project.
In this session, Tuvia Vinitsky guides you through the maze of the U.S. legal system as it applies to software development. Please note that I am not a lawyer. Talk to your lawyer for advice regarding your specific needs.
You will learn:
Prerequisites: Software development experience
Web and Mobile
Presenter: Rick Strahl
Level: All levels
When: Friday, October 25, 11:30 - 12:45, Elliott (R1)
Saturday, October 26, 5:15 - 6:30, Elliott (R2)
VueJS is the latest in a long line of popular JavaScript client side frameworks libraries that aim to make it easier to build rich Web applications. Vue sets itself apart being smaller and simpler than most other full Single Page Application (SPA) frameworks like Angular and React, and—maybe more importantly—can be integrated into existing Web sites without a complicated build process. Vue allows for easy drop-in integration and progressive enhancements to existing static or server generated Web content without forcing developers into fully client side SPA applications. But Vue also supports a full SPA framework using the same tools that you may have seen in the other frameworks, which provides a richer model for creating components and composing of complex SPA applications.
In this session, I'll demonstrate the basics of Vue in plain Web pages using standard ES5 JavaScript code that we're all familiar with to start with by adding some rich data binding features to an existing HTML page. I'll demonstrate the core features of Vue including models, data binding and messaging using these simple examples. We then look at creating a small application using a full SPA model using the Vue CLI and using the full build process that is provided through the Vue CLI. The features demonstrated are generic and mostly work with HTML content only, but I'll also provide a server REST service using Web Connection to provide FoxPro data to one of the samples.
You will learn:
Prerequisites: Familiarity with HTML, CSS and JavaScript
Presenter: Tamar E. Granor
Level: All levels
When: Saturday, October 26, 10:00 - 11:15, Elliott (R1)
Sunday, October 27, 10:00 - 11:15, Elliott (R2)
PHP is one of the most commonly used languages for adding code to websites. It allows you to pre-process information and generate HTML, and it has extensions for working with a variety of databases, including SQL Server and MySQL.
In this session, we'll look at the basics of PHP as well as how to use it to add data to websites at runtime.
You will learn:
Prerequisites: Some familiarity with HTML
Presenter: Christof Wollenhaupt
Level: Intermediate, Advanced
When: Saturday, October 26, 8:30 - 9:45, Gilbert (R1)
Sunday, October 27, 10:00 - 11:15, Gilbert (R2)
One day your client tells you that there was a security review on one of the Web APIs that your application uses. The review discovered that your URLs can be intercepted, modified without detection, and replayed at any time. A security disaster, even though your application was state of the art when you wrote it 18 years ago.
You are told that you have to encode the URL using the SHA256withRSA algorithm. As you're trying to figure out what that is, you are informed that the required certificate is stored in a Java Key Store file that you and your client have no control over as that is provided by the company's IT department.
Granted, that might not be your everyday experience. However, security is increasingly becoming an issue even for in-house software as our business and our customer's IT infrastructure is more and more regulated, because software runs more and more critical infrastructure and countries around the world invest massively into the so-called cyberwar.
In this session we cover the foundations of encryption. What are certificates and how do they work? Why are some cheap and some expensive? How are they stored? How do you make use of them? What's a certificate authority? What's the interaction between certificates, encryption algorithms, and hashes. What algorithms are still considered to be secure? How to deal with code that is no longer considered to be adequate?
You will learn:
Prerequisites: A desire to improve security in your applications large enough to deal with a dozen three letter acronyms
Presenter: Rick Strahl
Level: All levels
When: Friday, October 25, 5:15 - 6:30, Gilbert
Traditionally Web Connection has not been easy to install on a live server due to the variety of components that need to be installed and moved to a running server. In recent versions Web Connection has introduced a number of tools and features that make it much easier to package and publish files to a server and automate much of the configuration process.
In this session I'll demonstrate these new features by creating a small sample application and then publishing it onto a new, clean virtual machine server from scratch. I'll show how to test your application locally and get it ready for deployment, use the new tooling to package up files, copy files to the server, and then use the new built-in configuration tools to configure the server and run it. Finally I'll also show how to make changes and update the running application on a live server.
This session also covers hosting options and what hardware or virtual machine features you need to look at along with some notes on various host providers.
This sessions both discusses the concepts and pieces needed for publishing and then provides a real-time walk through of the configuration process on a live virtual machine hosted in the cloud.
You will learn:
Prerequisites: Some familiarity with Web Connection is recommended as we talk about Web Connection applications, but the concepts and features are easily accessible without any other pre-requisites
Post-Conference