SlideShare a Scribd company logo
Southwest
Fox 2019
Look at X Sharp
Eric Selje
Salty Dog Solutions, LLC
Eric@SaltyDogLLC.com
@EricSelje
Southwest
Fox 2019
 Fox Developer since 1985
 Consulting/Developing w/ Salty Dog Solutions
 “MadFox” since 1995
 Maintainer of many legacy apps
 NOT an X# Expert
Who is Eric Selje?
Southwest
Fox 2019
“X# is an open source development language for
.NET, based on the xBase language. It comes in
different flavors, such as Core, Visual Objects,
Vulcan.NET, xBase++, Harbour, Foxpro and more.”
What is X#?
Southwest
Fox 2019
Questions?
Southwest
Fox 2019
 History of xBase and Overview of X#
 Developing Apps in X#
 Differences Between X# and Visual FoxPro
 Goals and Timelines of X# Team
Agenda
Southwest
Fox 2019
History of xBase
Languages
Southwest
Fox 2019
Now
History
Differences
Conclusion
History of xBase
Vulcan
In the beginning
Southwest
Fox 2019
Now
History
Differences
Conclusion
History of xBase
dBase II
(fka Vulcan)
Southwest
Fox 2019
Now
History
Differences
Conclusion
History of xBase
dBase
(fka Vulcan)
FoxBase
Southwest
Fox 2019
Now
History
Differences
Conclusion
History of xBase
dBase
(fka Vulcan)
FoxBase
Others
•QuickSilver
•dbXL
•MultiBase
•Recital
•Eagle
Southwest
Fox 2019
Now
History
Differences
Conclusion
History of xBase
dBase
(fka Vulcan)
FoxBase
Clipper
Others
Southwest
Fox 2019
Now
History
Differences
Conclusion
History of xBase
dBase
(fka Vulcan)
FoxBase
Clipper
Harbour /
xHabour
Others
Open Source, Multi-Platform Clipper
Microsoft Windows, Linux, Unix
variants, several BSD descendants,
Mac OS X, MINIX 3, Windows CE,
Pocket PC, Symbian, iOS, Android,
QNX, VxWorks, OS/2/eComStation,
BeOS/Haiku, AIX and MS-DOS.
Southwest
Fox 2019
Now
History
Differences
Conclusion
History of xBase
dBase
(fka Vulcan)
FoxBase
Clipper
Harbour /
xHabour
xBase++
Others
Alaska Software
Windows
Latest Version: 2.00
Southwest
Fox 2019
Now
History
Differences
Conclusion
History of xBase
dBase
(fka Vulcan)
FoxBase
Clipper
Harbour /
xHabour
xBase++
FlagShip
Others
multisoft Datentechnik GmbH
All flavors of Linux/UNIX
Visual FlagShip
added Windows
Latest Version: 8 (2002)
Southwest
Fox 2019
Now
History
Differences
Conclusion
History of xBase
dBase
(fka Vulcan)
FoxBase
Clipper
Harbour /
xHabour
xBase++
FlagShip
Visual
Objects
Others
Codenamed Aspen
Renamed Visual Objects
Windows Compiler
Sold to GrafX
Last Version: 2.8 (2012)
Southwest
Fox 2019
Now
History
Differences
Conclusion
History of xBase
dBase
(fka Vulcan)
FoxBase
Clipper
Harbour /
xHabour
xBase++
FlagShip
Visual
Objects
Vulcan.NET
Others
Rewritten from Scratch
Take advantage of .NET
framework
Southwest
Fox 2019
Now
History
Differences
Conclusion
History of xBase
dBase
(fka Vulcan)
FoxBase
Clipper
Harbour /
xHabour
xBase++
FlagShip
Visual
Objects
Vulcan.NET X#
Others
• Open Source
• Compiler Based on Roslyn
• Full .NET Citizen
Southwest
Fox 2019
Developing Apps
Southwest
Fox 2019
Now
History
Differences
Conclusion
XSC Compiler
Southwest
Fox 2019
Now
History
Differences
Conclusion
IDE #1: XIDE
 Demo…
Southwest
Fox 2019
Now
History
Differences
Conclusion
IDE #1.5: XSI
 X Sharp Interpreter
 Akin to a command window
 Can run PRGX scripts
 Demo…
Southwest
Fox 2019
Now
History
Differences
Conclusion
IDE #2: Visual Studio
 Project Templates for X# Projects
 Add-Ins for X# syntax, formatting, intellisense
 Massive development ecosystem
Southwest
Fox 2019
Now
History
Differences
Conclusion
Demo…
Southwest
Fox 2019
Differences between
X# and Visual FoxPro
Southwest
Fox 2019
Now
History
Differences
Conclusion
Cool New Features:
Objectify all the things!
local dt as datetime
dt = DateTime.now
? dt.ToLongDateString()
? DateTime.IsLeapYear(dt.year)
? dt.ToUniversalTime()
? dt.IsDaylightSavingTime()
Southwest
Fox 2019
Now
History
Differences
Conclusion
Cool New Features:
Objectify all the strings!
local cString as string
cString := "It was the best of times“
? cString.Length // Property
? cString.ToUpper()
? cString.Replace(“best”, “worst”)
Southwest
Fox 2019
Now
History
Differences
Conclusion
Cool New Features:
Interpolated / Enhanced Strings
From this (note all the delimiters):
? “Al’s dad wrote ”+’[“It’s garbudje day” +] + ‘[sic].’ ;
+ chr(13)
To
? e“Al’s dad wrote ”It’s garbudge day” [sic].n”
Southwest
Fox 2019
Now
History
Differences
Conclusion
Cool New Features:
Interpolated / Enhanced Strings
cHeader = "This is a header line"
cHTML =
ei"<TABLE><TH>{cHeader}</TH></TABLE>"
Southwest
Fox 2019
Now
History
Differences
Conclusion
Cool New Features:
Interpolated / Enhanced Strings
cHeader = "This is a header line"
cClass = "myTableClass"
cHTML = ei"<TABLE
class="{myTableClass}"><TH>{cHeader}</TH></TABLE>"
Southwest
Fox 2019
Now
History
Differences
Conclusion
Cool New Features:
Even arrays are objects!
LOCAL aNames AS ARRAY
aNames[1] = “Doug”
aNames[2] = “Tamar”
aNames[3] = “Rick”
? aNames.Length
? aNames.IsEmpty()
AEval(aTables, {|tablename| QOut(tablename)})
Southwest
Fox 2019
Now
History
Differences
Conclusion
Cool New Features: Lambdas
sq := {e => e * e}
? sq
? sq(1)
? sq(2)
Southwest
Fox 2019
Now
History
Differences
Conclusion
Cool New Features: LINQ
VAR oGreek :=
FROM Developer IN oDev
WHERE Developer:Country == "Greece“
ORDERBY Developer:LastName DESCENDING
SELECT Developer
Southwest
Fox 2019
Now
History
Differences
Conclusion
Cool New Features:
Anonymous Expressions
Southwest
Fox 2019
Now
History
Differences
Conclusion
Because it is .NET
> 6k
Classes
Southwest
Fox 2019
Now
History
Differences
Conclusion
What’s Missing: Visual Class Designer
 Not really necessary anyway for non-UI
 VCX files are a source code pain point
Southwest
Fox 2019
Now
History
Differences
Conclusion
What’s Missing: Report Designer
 No converter for existing reports
 Plenty of 3rd party report writers
• Stonefield
• ReportPro
• Telerik
Southwest
Fox 2019
Now
History
Differences
Conclusion
Form Design - WinForms
 Classic Windows Forms
 No converter available
 Fast, Familiar
 Work well / Terminal Server
 Will be in .NET Core 3.0?
Southwest
Fox 2019
Now
History
Differences
Conclusion
Form Design - WPF
 WPF – Windows Presentation Framework
 XAML
 No converter
 Extremely flexible
 Recommended
Southwest
Fox 2019
Now
History
Differences
Conclusion
What’s Missing (as of this weekend)?
 Exception Handling
 Inline SQL
 Cursors / Browse
 SCATTER/GATHER
 Full DBC Support
Southwest
Fox 2019
Is X# in your Future?
Southwest
Fox 2019
Now
History
Differences
Conclusion
Recommendation
 Enough similarity that it feels comfortable
 Enough differences that it’s not trivial
 Existing VFP won’t run without conversion
 A foot in the past, a foot in the future
Southwest
Fox 2019
Now
History
Differences
Conclusion
There is a future here
 .NET is (probably) not going away
 Open Source means no centralized control
 What these people have done is amazing
 More People need to get involved
Southwest
Fox 2019
Now
History
Differences
Conclusion
Get Involved
 Contribute to source code
 Test
 Friends of X# (FOX)
Southwest
Fox 2019
In Summary
Southwest
Fox 2019
 Brief History of xBase
 How to get started developing in X#
 How it is familiar to FoxPro developers
 How it is different than Visual FoxPro
What You Learned Today
Thank-You!
Please fill out your evaluation.
Southwest
Fox 2019
Eric Selje
Salty Dog Solutions, LLC
Eric@SaltyDogLLC.com
@EricSelje

More Related Content

Similar to SELJE - Look at X Sharp.pptx

F# Tutorial @ QCon
F# Tutorial @ QConF# Tutorial @ QCon
F# Tutorial @ QCon
Tomas Petricek
 
The REAL Angular Keynote
The REAL Angular KeynoteThe REAL Angular Keynote
The REAL Angular Keynote
Lukas Ruebbelke
 
Overview to Xamarin : Understanding Xamarin Architecture
Overview to Xamarin : Understanding Xamarin ArchitectureOverview to Xamarin : Understanding Xamarin Architecture
Overview to Xamarin : Understanding Xamarin Architecture
Khairi Aiman
 
Practical F#
Practical F#Practical F#
Practical F#
Ryan Riley
 
Portland Splunk User Group May 2020
Portland Splunk User Group May 2020 Portland Splunk User Group May 2020
Portland Splunk User Group May 2020
Amanda Richardson
 
Introduction to F#
Introduction to F#Introduction to F#
Introduction to F#
Jonas Follesø
 
Deep Dive into FME Desktop 2018
Deep Dive into FME Desktop 2018Deep Dive into FME Desktop 2018
Deep Dive into FME Desktop 2018
Safe Software
 
Swift vs Flutter Best Mobile App Development Framework
Swift vs Flutter  Best Mobile App Development FrameworkSwift vs Flutter  Best Mobile App Development Framework
Swift vs Flutter Best Mobile App Development Framework
Pixlogix Infotech
 
Presentation Xplore
Presentation XplorePresentation Xplore
Presentation Xplore
Xcode
 
SELJE - Look at X Sharp.pdf
SELJE - Look at X Sharp.pdfSELJE - Look at X Sharp.pdf
SELJE - Look at X Sharp.pdf
Eric Selje
 
What Are Your Options If You Can’t Use Flutter_.pdf
What Are Your Options If You Can’t Use Flutter_.pdfWhat Are Your Options If You Can’t Use Flutter_.pdf
What Are Your Options If You Can’t Use Flutter_.pdf
Moon Technolabs Pvt. Ltd.
 
Introduction to Microsoft Silverlight
Introduction to Microsoft SilverlightIntroduction to Microsoft Silverlight
Introduction to Microsoft Silverlight
Glen Gordon
 
Hcplphx920
Hcplphx920Hcplphx920
Hcplphx920
Thinkful
 
Ten compelling reasons to learn .net framework
Ten compelling reasons to learn .net frameworkTen compelling reasons to learn .net framework
Ten compelling reasons to learn .net framework
JanBask Training
 
AN INTRODUCTION TO APACHE FLEX
AN INTRODUCTION TO APACHE FLEXAN INTRODUCTION TO APACHE FLEX
AN INTRODUCTION TO APACHE FLEX
Joseph Labrecque
 
Language Engineering in the Cloud
Language Engineering in the CloudLanguage Engineering in the Cloud
Language Engineering in the Cloudlennartkats
 
Seattle Mobile .NET User Group - Nov. 13th 2019
Seattle Mobile .NET User Group - Nov. 13th 2019Seattle Mobile .NET User Group - Nov. 13th 2019
Seattle Mobile .NET User Group - Nov. 13th 2019
James Montemagno
 
Eclipsist2009 Rich Client Roundup
Eclipsist2009 Rich Client RoundupEclipsist2009 Rich Client Roundup
Eclipsist2009 Rich Client RoundupMurat Yener
 
Delphi unicode-migration
Delphi unicode-migrationDelphi unicode-migration
Delphi unicode-migration
zevin
 

Similar to SELJE - Look at X Sharp.pptx (20)

F# Tutorial @ QCon
F# Tutorial @ QConF# Tutorial @ QCon
F# Tutorial @ QCon
 
The REAL Angular Keynote
The REAL Angular KeynoteThe REAL Angular Keynote
The REAL Angular Keynote
 
Overview to Xamarin : Understanding Xamarin Architecture
Overview to Xamarin : Understanding Xamarin ArchitectureOverview to Xamarin : Understanding Xamarin Architecture
Overview to Xamarin : Understanding Xamarin Architecture
 
Practical F#
Practical F#Practical F#
Practical F#
 
Portland Splunk User Group May 2020
Portland Splunk User Group May 2020 Portland Splunk User Group May 2020
Portland Splunk User Group May 2020
 
Introduction to F#
Introduction to F#Introduction to F#
Introduction to F#
 
XSharp
XSharpXSharp
XSharp
 
Deep Dive into FME Desktop 2018
Deep Dive into FME Desktop 2018Deep Dive into FME Desktop 2018
Deep Dive into FME Desktop 2018
 
Swift vs Flutter Best Mobile App Development Framework
Swift vs Flutter  Best Mobile App Development FrameworkSwift vs Flutter  Best Mobile App Development Framework
Swift vs Flutter Best Mobile App Development Framework
 
Presentation Xplore
Presentation XplorePresentation Xplore
Presentation Xplore
 
SELJE - Look at X Sharp.pdf
SELJE - Look at X Sharp.pdfSELJE - Look at X Sharp.pdf
SELJE - Look at X Sharp.pdf
 
What Are Your Options If You Can’t Use Flutter_.pdf
What Are Your Options If You Can’t Use Flutter_.pdfWhat Are Your Options If You Can’t Use Flutter_.pdf
What Are Your Options If You Can’t Use Flutter_.pdf
 
Introduction to Microsoft Silverlight
Introduction to Microsoft SilverlightIntroduction to Microsoft Silverlight
Introduction to Microsoft Silverlight
 
Hcplphx920
Hcplphx920Hcplphx920
Hcplphx920
 
Ten compelling reasons to learn .net framework
Ten compelling reasons to learn .net frameworkTen compelling reasons to learn .net framework
Ten compelling reasons to learn .net framework
 
AN INTRODUCTION TO APACHE FLEX
AN INTRODUCTION TO APACHE FLEXAN INTRODUCTION TO APACHE FLEX
AN INTRODUCTION TO APACHE FLEX
 
Language Engineering in the Cloud
Language Engineering in the CloudLanguage Engineering in the Cloud
Language Engineering in the Cloud
 
Seattle Mobile .NET User Group - Nov. 13th 2019
Seattle Mobile .NET User Group - Nov. 13th 2019Seattle Mobile .NET User Group - Nov. 13th 2019
Seattle Mobile .NET User Group - Nov. 13th 2019
 
Eclipsist2009 Rich Client Roundup
Eclipsist2009 Rich Client RoundupEclipsist2009 Rich Client Roundup
Eclipsist2009 Rich Client Roundup
 
Delphi unicode-migration
Delphi unicode-migrationDelphi unicode-migration
Delphi unicode-migration
 

More from Eric Selje

SELJE - VFP and IT Security.pptx
SELJE - VFP and IT Security.pptxSELJE - VFP and IT Security.pptx
SELJE - VFP and IT Security.pptx
Eric Selje
 
SELJE - VFP and IT Security.pdf
SELJE - VFP and IT Security.pdfSELJE - VFP and IT Security.pdf
SELJE - VFP and IT Security.pdf
Eric Selje
 
SELJE - VFP Advanced.pdf
SELJE - VFP Advanced.pdfSELJE - VFP Advanced.pdf
SELJE - VFP Advanced.pdf
Eric Selje
 
SELJE - VFP Advanced.pptx
SELJE - VFP Advanced.pptxSELJE - VFP Advanced.pptx
SELJE - VFP Advanced.pptx
Eric Selje
 
OneNote to Rule Them All.pdf
OneNote to Rule Them All.pdfOneNote to Rule Them All.pdf
OneNote to Rule Them All.pdf
Eric Selje
 
FoxUnit in Depth.pptx
FoxUnit in Depth.pptxFoxUnit in Depth.pptx
FoxUnit in Depth.pptx
Eric Selje
 
OneNote to Rule Them All Slides.pptx
OneNote to Rule Them All Slides.pptxOneNote to Rule Them All Slides.pptx
OneNote to Rule Them All Slides.pptx
Eric Selje
 
SELJE_Database_Unit_Testing_Slides.pdf
SELJE_Database_Unit_Testing_Slides.pdfSELJE_Database_Unit_Testing_Slides.pdf
SELJE_Database_Unit_Testing_Slides.pdf
Eric Selje
 
SELJE_Database_Unit_Testing.pdf
SELJE_Database_Unit_Testing.pdfSELJE_Database_Unit_Testing.pdf
SELJE_Database_Unit_Testing.pdf
Eric Selje
 
Selje_SSMS (Slides).pdf
Selje_SSMS (Slides).pdfSelje_SSMS (Slides).pdf
Selje_SSMS (Slides).pdf
Eric Selje
 
Selje_SSMS for the Accidental DBA.pdf
Selje_SSMS for the Accidental DBA.pdfSelje_SSMS for the Accidental DBA.pdf
Selje_SSMS for the Accidental DBA.pdf
Eric Selje
 
Selje_Fox on the Run.ppt
Selje_Fox on the Run.pptSelje_Fox on the Run.ppt
Selje_Fox on the Run.ppt
Eric Selje
 
Selje_Fox on the Run.pdf
Selje_Fox on the Run.pdfSelje_Fox on the Run.pdf
Selje_Fox on the Run.pdf
Eric Selje
 
Selje_Extending Web Apps.ppt
Selje_Extending Web Apps.pptSelje_Extending Web Apps.ppt
Selje_Extending Web Apps.ppt
Eric Selje
 
Selje_Amazing VFP2C32 Library.pdf
Selje_Amazing VFP2C32 Library.pdfSelje_Amazing VFP2C32 Library.pdf
Selje_Amazing VFP2C32 Library.pdf
Eric Selje
 
Don't Be a Target!
Don't Be a Target! Don't Be a Target!
Don't Be a Target!
Eric Selje
 
Energy audit tablet screenshots
Energy audit tablet screenshotsEnergy audit tablet screenshots
Energy audit tablet screenshots
Eric Selje
 

More from Eric Selje (17)

SELJE - VFP and IT Security.pptx
SELJE - VFP and IT Security.pptxSELJE - VFP and IT Security.pptx
SELJE - VFP and IT Security.pptx
 
SELJE - VFP and IT Security.pdf
SELJE - VFP and IT Security.pdfSELJE - VFP and IT Security.pdf
SELJE - VFP and IT Security.pdf
 
SELJE - VFP Advanced.pdf
SELJE - VFP Advanced.pdfSELJE - VFP Advanced.pdf
SELJE - VFP Advanced.pdf
 
SELJE - VFP Advanced.pptx
SELJE - VFP Advanced.pptxSELJE - VFP Advanced.pptx
SELJE - VFP Advanced.pptx
 
OneNote to Rule Them All.pdf
OneNote to Rule Them All.pdfOneNote to Rule Them All.pdf
OneNote to Rule Them All.pdf
 
FoxUnit in Depth.pptx
FoxUnit in Depth.pptxFoxUnit in Depth.pptx
FoxUnit in Depth.pptx
 
OneNote to Rule Them All Slides.pptx
OneNote to Rule Them All Slides.pptxOneNote to Rule Them All Slides.pptx
OneNote to Rule Them All Slides.pptx
 
SELJE_Database_Unit_Testing_Slides.pdf
SELJE_Database_Unit_Testing_Slides.pdfSELJE_Database_Unit_Testing_Slides.pdf
SELJE_Database_Unit_Testing_Slides.pdf
 
SELJE_Database_Unit_Testing.pdf
SELJE_Database_Unit_Testing.pdfSELJE_Database_Unit_Testing.pdf
SELJE_Database_Unit_Testing.pdf
 
Selje_SSMS (Slides).pdf
Selje_SSMS (Slides).pdfSelje_SSMS (Slides).pdf
Selje_SSMS (Slides).pdf
 
Selje_SSMS for the Accidental DBA.pdf
Selje_SSMS for the Accidental DBA.pdfSelje_SSMS for the Accidental DBA.pdf
Selje_SSMS for the Accidental DBA.pdf
 
Selje_Fox on the Run.ppt
Selje_Fox on the Run.pptSelje_Fox on the Run.ppt
Selje_Fox on the Run.ppt
 
Selje_Fox on the Run.pdf
Selje_Fox on the Run.pdfSelje_Fox on the Run.pdf
Selje_Fox on the Run.pdf
 
Selje_Extending Web Apps.ppt
Selje_Extending Web Apps.pptSelje_Extending Web Apps.ppt
Selje_Extending Web Apps.ppt
 
Selje_Amazing VFP2C32 Library.pdf
Selje_Amazing VFP2C32 Library.pdfSelje_Amazing VFP2C32 Library.pdf
Selje_Amazing VFP2C32 Library.pdf
 
Don't Be a Target!
Don't Be a Target! Don't Be a Target!
Don't Be a Target!
 
Energy audit tablet screenshots
Energy audit tablet screenshotsEnergy audit tablet screenshots
Energy audit tablet screenshots
 

Recently uploaded

De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
g2nightmarescribd
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 

Recently uploaded (20)

De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 

SELJE - Look at X Sharp.pptx

Editor's Notes

  1. Kind of looks like I’m cursing up there
  2. This was a little difficult to do because the X# team is working hard and adding FoxPro features fast and furiously. I waited as long as I could to get going on this. Maybe too long as my samples aren’t everything I’d have liked them to be.
  3. Give you a better understanding of where X# comes from and why it’s different than Visual FoxPro
  4. In the beginning, there was Vulcan. Created in 1978 by Wayne Ratliff at JPL Laboratories to run his football pool, Vulcan was the ur-language of what would become the bread and butter of everyone in this room. And it was good.
  5. Vulcan ran on CP/M. dBase II added Apple II and DOS dBase III also ran on VMS and UNIX dBase III+ added ASSIST dBase IV Sold to Borland in 1990 Bought Arago for Windows, which became dBase 5 in 1994 but market had moved (Access) Sold to Ksoft, renamed Databased Intelligence, then dBase LLC   Current version dBase 2019
  6. Fox Software FoxBase for Windows, DOS, and UNIX FoxPro Sold to Microsoft Visual FoxPro Last version, 9 (2007)
  7. Also Arago, which became dBase V for Windows
  8. Nantucket Software DOS only Compiled, not interpreted Sold to Computer Associates Renamed CA-Clipper Last Version: 5.3b (1997)
  9. Still ongoing. Just released a new version.
  10. Visual Objects was the Windows version of Clipper Remember that abbreviation, VO, because that’s the origin of X#. Sold to a company called GrafX and continued until its last release in 2012.
  11. GrafX wrote a compiler from scratch that took advantage of the .NET framework GrafX didn’t put a lot of marketing behind it. This frustrated a core group on their development team, who left in 2015 to start a new effort.
  12. As mentioneded in the first slide Creates EXEs and DLLs that use .NET Framework Use other .NET Components
  13. Let’s start by taking a quick look at what a finished X# application. Nobody wants to develop w/ an app that makes ugly applications. Demo XIDE.
  14. Edit w/ whatever your favorite editor is VI, EMACS, Copy Con… Rick Strahl used Code
  15. Derivative of Vulcan.NET IDE Written and compiled in X# itself Projects => Applications => Code No “Command Window”
  16. XSI is a nice way to get used to trying out some of the X# commands, and you can also run PRGs you created with your favorite text editor, but it’s not an editor itself. Demos in C:\Users\Public\Documents\XSharp\Scripting\Scripts HelloWorld.prgx Form_Test.prgx
  17. 1. Visual Studio Code CLI 2. Git Integration 3. Debugging 4. Live Share 5. Split Views, Zen Mode 6. Helpers (Intellisense, Context Menus..) 7. Integrated Terminal 8. Plugins and Themes
  18. Demo in XSI
  19. Demo in XSI FoxTypes
  20. Demo in XSI FoxTypes
  21. Demo in XSI FoxTypes
  22. Demo in XSI FoxTypes
  23. Demo in XSI Arrays are enumerable, so you can use iterators over them almost like a datatable or list
  24. CodeBlocks come from Clipper. Lambdas are a .NET thing Have been around since 1958 in LISP, much earlier in math notation “Here’s a function that I don’t really need to name because I’m only using it for a very short and specific time,” Show in XSI delegate Square(x as real8) as real8 local sq as Square sq := {e => e*e}
  25. C:\Users\Public\Documents\XSharp\Examples\LINQ Intellisense
  26. C:\dev\xide\prgs\TestAnonymous.prg
  27. What else?
  28. WinForms WinForms is the abbreviated name for “Windows Forms”. This GUI library from the .NET Framework is the oldest GUI library of the .NET Framework and is based on the Windows GDI, with all it's advantages and disadvantages, but has some very important features over the VO GUI classes or generally over the classical Windows GDI that we know from Win32 applications. The major advantages of the WinForms library are that they are very fast, work well on TerminalServer sessions, and are familiar to every Windows programmer. They include all of the controls we know from the Windows API, with some very enhanced, like the RTF control that accepts even pasted images. It is possible to use PNG images with transparencies, and the menu control is modernized a lot in it's look. The disadvantages include the strict binding to the Windows GDI, so it is Windows only (can be used on Linux only with the Wine library), and it does not scale very well on high resolution monitors because it is bitmap based. WinForms applications normally look very familiar because they use the normal look and feel of the Windows platform. During the Build 2018 conference Microsoft announced that they would make available the WinForms GUI library also in the .NET Core 3.0 version - so applications built on this GUI should be supported for a few more years than planned. Nevertheless, for new applications the use of the WPF class library is recommended.
  29. The WPF GUI classes were developed from scratch - without using the Windows GDI, and completely vector oriented. The WPF GUI library uses DirectX - the graphics interface that was developed for gaming applications, with maximal performance in mind. WPF is ideal vor very innovative and flexible user interfaces and requires a completely different thinking from the developer, but it is possible to build very flexible, powerful and beautiful GUIs with it. And well built WPF applications scale from low to high resolutions, from small to large monitors without resizing artefacts. Some of the base controls are permitting very interesting constructions: so you can put a grid with different other controls like a listbox, an image or an edit control on a button, or you can replace the items of a treeviev by your own controls. Another strong point of the WPF library is the databinding of the controls and windows: you can databind nearly every property to a field in the datacontext. That means not only the content of the control, but also it's size, color, font much more. Microsoft recommends to use XAML (a XML-like language) to build windows and user controls, but it is also possible to build them completely in code. In short: if you are building a completely new application, you should seriously consider to build it using WPF. And Microsoft has announced on the Build 2018 conference that .NET Core 3.0 will contain a binding to the WPF GUI library (on Windows only, unfortunately).
  30. If you’re going to move to .NET from Visual FoxPro, do you want to take a half step. Why not go all the way to C#
  31. You will have to decide where X# fits into your development toolbox. DBF access from .NET is compelling Integration w/ other .NET assemblies