SlideShare une entreprise Scribd logo
1  sur  18
Building n-Tier Web
Applications with VFP
      Mike Feltman
About me
President F1 Technologies
Designer/Lead Developer Visual FoxExpress
Framework
Very Experienced VFP Developer
   xBase Developer Since 1987
   Fox Software Tech Support, Marketing &
    Development 1988-1990
Moderately Experienced Web Developer

    Web Development Since 1994

    ASP, Web Connection, AFP, JavaScript
Agenda
Supply List
N-Tier Web Architecture
Model View Controller Web Architecture
Interacting with VFP
Good JavaScript
Bad JavaScript
Introducing Prototype
Adding JavaScript with Prototype
Supply List
Web Server
    IIS (Internet Information Server)
    Apache
HTML Editor
    Standards: FrontPage, Dreamweaver, Visual Studio.NET, Microsoft Expression Web
    Popular Low Cost Alternatives: HotDog, CoffeeCup
 
     No-frills: Notepad, VFP
 
     Barf Bag: Word
VFP Compatible Server Side Scripting Language
 
     Web Connection, Active FoxPro Pages (AFP) , FoxWeb or ActiveVFP
 
     ASP, ASP.NET & COM
Javascript Framework
 
     Prototype (and many popular add-ons)
 
     JQuery
 
     DOJO
JavaScript Debuggers
 
     Firebug for Firefox
 
     Debugbar for Internet Explorer
N-Tier Web Architecture
UI

     HTML/XHTML (content)
    CSS (formattting)
    JavaScript w/ Prototype (behavior)
Business

     VFP Objects for communicating between UI & Data
Data
    VFP Tables
Model-View-Controller
Model (The Data)
   VFP Tables
View (The User Interface)

    HTML/XHTML (content)

    CSS (formattting)

    JavaScript w/ Protype (behavior)
Controller (The Business Layer)
   JavaScript w/ Protype (plumbing)
   VFP Objects for communicating between UI & Data
Interacting with VFP
Web Connection & AFP are ISAPI Extensions
WC & AFP files use <% and %> as script
delimiters
VFP Code can fall anywhere within a web page
between delimiters
Classic ASP is very similar except code is
VBScript/Jscript that gets to VFP via COM.
ASP.NET, PHP and other server platforms with
COM support can also talk to VFP
VFP Demos
Rendering an HTML Table
Rendering an HTML Form
Saving with an HTML Form
“Good” JavaScript
Pages should be functional w/o
JavaScript. How much depends on your
requirements. JavaScript is used to
enhance functionality & improve the user
experience.
Load JavaScript Last, after DOM is
loaded.
More difficult to write.
Often requires writing it twice.
“Bad” JavaScript
Pages require JavaScript to function
Ok, when you control the browser
Becoming more acceptable all the time.
Easier to write.
Introducing Prototype
JavaScript Framework
Cross Browser
Class Based OOP
Advanced Events
AJAX
Improved JSON Support
Case Study: St. Martin de
            Porres
Current Site                    Wanted

    Outdated                    
                                    Modern/Current Look &

    Ugly website                    Feel

    Static
                                
                                    Old Content to Expire

    Requires a “geek” to
                                
                                    New Content to be readily
    update it                       apparent

    Poorly maintained &
                                
                                    Consistent Look & Feel
    designed: ie bad layouts,   
                                    Real sense of community,
    little consistency              interaction with the parish
                                    & outlying community
                                
                                    Maintained by Parish
                                    Personnel
Solution
VFP & AFP
   Data Driven Content Management System
   Classes Define different types of content
JavaScript with Prototype
   Dynamic Behavior Makes Site Easy To Use
   AJAX based data entry makes it easy for end-
    users to update site.
Adding JavaScript w/ ProtoType
 Prototype functions & objects
    $
    Ajax.Request
 UpdateContent
 Login (AJAX Form Submission)
More Prototype
Template
JSON
Classes
Each
Resources
Prototype: http://prototypejs.org
Active FoxProPages: http://afpages.com/
Script.aculo.us: http://script.aculo.us/
Prototype & script.aculo.us
Summary
Separation of Concerns makes more
functional, easier to maintain websites.
Prototype makes DOM programming
much easier, less stressful, faster and
more fun.
VFP works well on the web.
Thank you!
Remember to fill out your session
evaluation.

Session slides, white paper, and code
samples will be updated.

Contenu connexe

Tendances

Tendances (20)

Where do you want to go today
Where do you want to go todayWhere do you want to go today
Where do you want to go today
 
Ruby On Rails Presentation
Ruby On Rails PresentationRuby On Rails Presentation
Ruby On Rails Presentation
 
Webservices: connecting Joomla! with other programs.
Webservices: connecting Joomla! with other programs.Webservices: connecting Joomla! with other programs.
Webservices: connecting Joomla! with other programs.
 
Php Training in Chandigarh
Php Training in ChandigarhPhp Training in Chandigarh
Php Training in Chandigarh
 
Error handling in visual fox pro 9
Error handling in visual fox pro 9Error handling in visual fox pro 9
Error handling in visual fox pro 9
 
Language Barriers
Language BarriersLanguage Barriers
Language Barriers
 
Maine WordPress Meetup JSON REST API, 3/16/2016
Maine WordPress Meetup JSON REST API, 3/16/2016Maine WordPress Meetup JSON REST API, 3/16/2016
Maine WordPress Meetup JSON REST API, 3/16/2016
 
Evolution of PHP
Evolution of PHPEvolution of PHP
Evolution of PHP
 
Web Applications of the future: Combining JEE6 & JavaFX
Web Applications of the future: Combining JEE6 & JavaFXWeb Applications of the future: Combining JEE6 & JavaFX
Web Applications of the future: Combining JEE6 & JavaFX
 
Client and server side scripting
Client and server side scriptingClient and server side scripting
Client and server side scripting
 
Web forms and server side scripting
Web forms and server side scriptingWeb forms and server side scripting
Web forms and server side scripting
 
Joomla as a mobile App backend - ideas, examples and experiences
Joomla as a mobile App backend - ideas, examples and experiencesJoomla as a mobile App backend - ideas, examples and experiences
Joomla as a mobile App backend - ideas, examples and experiences
 
SydPHP March 2012 Meetup
SydPHP March 2012 MeetupSydPHP March 2012 Meetup
SydPHP March 2012 Meetup
 
Isomorphic server side rendering with Twig
Isomorphic server side rendering with TwigIsomorphic server side rendering with Twig
Isomorphic server side rendering with Twig
 
What is the Responsibility of Plugin Developers?
What is the Responsibility of Plugin Developers?What is the Responsibility of Plugin Developers?
What is the Responsibility of Plugin Developers?
 
RIA Platform Comparison
RIA Platform ComparisonRIA Platform Comparison
RIA Platform Comparison
 
Tech Stack Ideas
Tech Stack IdeasTech Stack Ideas
Tech Stack Ideas
 
Cgi perl
Cgi  perlCgi  perl
Cgi perl
 
Intro to DooPHP
Intro to DooPHPIntro to DooPHP
Intro to DooPHP
 
PHP Tour 2016 Phinx Presentation
PHP Tour 2016 Phinx PresentationPHP Tour 2016 Phinx Presentation
PHP Tour 2016 Phinx Presentation
 

En vedette

E business n_tier_arch
E business n_tier_archE business n_tier_arch
E business n_tier_arch
Radiant Minds
 

En vedette (8)

Building N Tier Applications With Entity Framework Services 2010
Building N Tier Applications With Entity Framework Services 2010Building N Tier Applications With Entity Framework Services 2010
Building N Tier Applications With Entity Framework Services 2010
 
Building n-Tier ASP.NET WebForms with Entity Framework 4, Lerman
Building n-Tier ASP.NET WebForms with Entity Framework 4, LermanBuilding n-Tier ASP.NET WebForms with Entity Framework 4, Lerman
Building n-Tier ASP.NET WebForms with Entity Framework 4, Lerman
 
E business n_tier_arch
E business n_tier_archE business n_tier_arch
E business n_tier_arch
 
N-tier Application Developement
N-tier Application DevelopementN-tier Application Developement
N-tier Application Developement
 
N-tier and oop - moving across technologies
N-tier and oop - moving across technologiesN-tier and oop - moving across technologies
N-tier and oop - moving across technologies
 
N tier
N tierN tier
N tier
 
J2EE and layered architecture
J2EE and layered architectureJ2EE and layered architecture
J2EE and layered architecture
 
N-Tier, Layered Design, SOA
N-Tier, Layered Design, SOAN-Tier, Layered Design, SOA
N-Tier, Layered Design, SOA
 

Similaire à N tier web applications

REST - What's It All About? (SAP TechEd 2012, CD110)
REST - What's It All About? (SAP TechEd 2012, CD110)REST - What's It All About? (SAP TechEd 2012, CD110)
REST - What's It All About? (SAP TechEd 2012, CD110)
Sascha Wenninger
 
Anvita Gita Supersite Case Study Nov2000
Anvita   Gita Supersite Case Study Nov2000Anvita   Gita Supersite Case Study Nov2000
Anvita Gita Supersite Case Study Nov2000
guest6e7a1b1
 
Krug Fat Client
Krug Fat ClientKrug Fat Client
Krug Fat Client
Paul Klipp
 
Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp
Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code CampDoing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp
Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp
Chris Love
 
Netbeans65 Osum Slides
Netbeans65 Osum SlidesNetbeans65 Osum Slides
Netbeans65 Osum Slides
Abhishek Gupta
 
Kann JavaScript elegant sein?
Kann JavaScript elegant sein?Kann JavaScript elegant sein?
Kann JavaScript elegant sein?
jbandi
 

Similaire à N tier web applications (20)

Station Four: Web Redesign Presentation
Station Four: Web Redesign PresentationStation Four: Web Redesign Presentation
Station Four: Web Redesign Presentation
 
Angular jS Introduction by Google
Angular jS Introduction by GoogleAngular jS Introduction by Google
Angular jS Introduction by Google
 
REST - What's It All About? (SAP TechEd 2012, CD110)
REST - What's It All About? (SAP TechEd 2012, CD110)REST - What's It All About? (SAP TechEd 2012, CD110)
REST - What's It All About? (SAP TechEd 2012, CD110)
 
Seven Steps To Better JavaScript
Seven Steps To Better JavaScriptSeven Steps To Better JavaScript
Seven Steps To Better JavaScript
 
Anvita Gita Supersite Case Study Nov2000
Anvita   Gita Supersite Case Study Nov2000Anvita   Gita Supersite Case Study Nov2000
Anvita Gita Supersite Case Study Nov2000
 
Introduction to backbone_js
Introduction to backbone_jsIntroduction to backbone_js
Introduction to backbone_js
 
HTML5 - The Python Angle (PyCon Ireland 2010)
HTML5 - The Python Angle (PyCon Ireland 2010)HTML5 - The Python Angle (PyCon Ireland 2010)
HTML5 - The Python Angle (PyCon Ireland 2010)
 
qooxdoo - Open Source Ajax Framework
qooxdoo - Open Source Ajax Frameworkqooxdoo - Open Source Ajax Framework
qooxdoo - Open Source Ajax Framework
 
React + Flux = Joy
React + Flux = JoyReact + Flux = Joy
React + Flux = Joy
 
AJAX Frameworks
AJAX FrameworksAJAX Frameworks
AJAX Frameworks
 
Modern JavaScript Talk
Modern JavaScript TalkModern JavaScript Talk
Modern JavaScript Talk
 
Krug Fat Client
Krug Fat ClientKrug Fat Client
Krug Fat Client
 
SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem.
SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem. SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem.
SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem.
 
CouchDB
CouchDBCouchDB
CouchDB
 
Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp
Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code CampDoing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp
Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp
 
December 4 SDForum Java Sig Presentation
December 4 SDForum Java Sig PresentationDecember 4 SDForum Java Sig Presentation
December 4 SDForum Java Sig Presentation
 
Netbeans65 Osum Slides
Netbeans65 Osum SlidesNetbeans65 Osum Slides
Netbeans65 Osum Slides
 
Kann JavaScript elegant sein?
Kann JavaScript elegant sein?Kann JavaScript elegant sein?
Kann JavaScript elegant sein?
 
wt mod3.pdf
wt mod3.pdfwt mod3.pdf
wt mod3.pdf
 
Building single page applications
Building single page applicationsBuilding single page applications
Building single page applications
 

Dernier

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Dernier (20)

ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 

N tier web applications

  • 1. Building n-Tier Web Applications with VFP Mike Feltman
  • 2. About me President F1 Technologies Designer/Lead Developer Visual FoxExpress Framework Very Experienced VFP Developer  xBase Developer Since 1987  Fox Software Tech Support, Marketing & Development 1988-1990 Moderately Experienced Web Developer  Web Development Since 1994  ASP, Web Connection, AFP, JavaScript
  • 3. Agenda Supply List N-Tier Web Architecture Model View Controller Web Architecture Interacting with VFP Good JavaScript Bad JavaScript Introducing Prototype Adding JavaScript with Prototype
  • 4. Supply List Web Server  IIS (Internet Information Server)  Apache HTML Editor  Standards: FrontPage, Dreamweaver, Visual Studio.NET, Microsoft Expression Web  Popular Low Cost Alternatives: HotDog, CoffeeCup  No-frills: Notepad, VFP  Barf Bag: Word VFP Compatible Server Side Scripting Language  Web Connection, Active FoxPro Pages (AFP) , FoxWeb or ActiveVFP  ASP, ASP.NET & COM Javascript Framework  Prototype (and many popular add-ons)  JQuery  DOJO JavaScript Debuggers  Firebug for Firefox  Debugbar for Internet Explorer
  • 5. N-Tier Web Architecture UI  HTML/XHTML (content)  CSS (formattting)  JavaScript w/ Prototype (behavior) Business  VFP Objects for communicating between UI & Data Data  VFP Tables
  • 6. Model-View-Controller Model (The Data)  VFP Tables View (The User Interface)  HTML/XHTML (content)  CSS (formattting)  JavaScript w/ Protype (behavior) Controller (The Business Layer)  JavaScript w/ Protype (plumbing)  VFP Objects for communicating between UI & Data
  • 7. Interacting with VFP Web Connection & AFP are ISAPI Extensions WC & AFP files use <% and %> as script delimiters VFP Code can fall anywhere within a web page between delimiters Classic ASP is very similar except code is VBScript/Jscript that gets to VFP via COM. ASP.NET, PHP and other server platforms with COM support can also talk to VFP
  • 8. VFP Demos Rendering an HTML Table Rendering an HTML Form Saving with an HTML Form
  • 9. “Good” JavaScript Pages should be functional w/o JavaScript. How much depends on your requirements. JavaScript is used to enhance functionality & improve the user experience. Load JavaScript Last, after DOM is loaded. More difficult to write. Often requires writing it twice.
  • 10. “Bad” JavaScript Pages require JavaScript to function Ok, when you control the browser Becoming more acceptable all the time. Easier to write.
  • 11. Introducing Prototype JavaScript Framework Cross Browser Class Based OOP Advanced Events AJAX Improved JSON Support
  • 12. Case Study: St. Martin de Porres Current Site Wanted  Outdated  Modern/Current Look &  Ugly website Feel  Static  Old Content to Expire  Requires a “geek” to  New Content to be readily update it apparent  Poorly maintained &  Consistent Look & Feel designed: ie bad layouts,  Real sense of community, little consistency interaction with the parish & outlying community  Maintained by Parish Personnel
  • 13. Solution VFP & AFP  Data Driven Content Management System  Classes Define different types of content JavaScript with Prototype  Dynamic Behavior Makes Site Easy To Use  AJAX based data entry makes it easy for end- users to update site.
  • 14. Adding JavaScript w/ ProtoType Prototype functions & objects  $  Ajax.Request UpdateContent Login (AJAX Form Submission)
  • 16. Resources Prototype: http://prototypejs.org Active FoxProPages: http://afpages.com/ Script.aculo.us: http://script.aculo.us/ Prototype & script.aculo.us
  • 17. Summary Separation of Concerns makes more functional, easier to maintain websites. Prototype makes DOM programming much easier, less stressful, faster and more fun. VFP works well on the web.
  • 18. Thank you! Remember to fill out your session evaluation. Session slides, white paper, and code samples will be updated.