Presentation Title Subtitle

Download Report

Transcript Presentation Title Subtitle

www.nyphp.com
Tools for Writing Better PHP Code
Remote Development with Eclipse, Windows and WebDAV
Presented to New York PHP
August 23, 2005
Hans Zaunere
President and Founder
8/23/2005
© 2005 New York PHP
1
www.nyphp.com
Overview
•
•
•
•
•
•
•
•
Why Work Remotely?
Options for Remote Development
Eclipse and PHP
WebDAV and Windows
Eclipse/WebDAV Development Stack – Demo
The Future Looks Bright Slide
The Nice-to-Haves Slide
Questions?
8/23/2005
© 2005 New York PHP
2
www.nyphp.com
Why Work Remotely?
• PHP application dependencies
– Applications expect a specific environment
– Customers expect development on their systems
– Extensions, Apache, and of course databases
• The Windows vs. UNIX vs. OS X question
– Different I/O techniques
– Different file system structure
• Firewalls, VPNs and vi – Oh My!
– AMP applications are server based
– Direct access to other servers, like databases, is limited
– vi just doesn’t cut it anymore
• Attempting to recreate environments locally doesn’t scale
– Enterprise development requires tedious setup of complex
environments
– It just doesn’t work
8/23/2005
© 2005 New York PHP
3
www.nyphp.com
Options for Remote Development
• Old School
– SSH into development server
– Remote desktop – yeah, right…
• Middle School
– Using text editors with SFTP/FTP functionality
– Shout-out to UltraEdit
• Tedious for large diverse projects
• It’s a text editor – not a development stack
• Varsity Development
– Wouldn’t it be nice if there was some type of integrated development
environment?
– Oh right – an IDE
• Source file organization and tracking
• Avoids drop n’ swap development
• Debugging – Wow!
8/23/2005
© 2005 New York PHP
4
www.nyphp.com
Eclipse and PHP
• Eclipse
–
–
–
–
–
Very flexible IDE
Unlimited GUI layouts
Unlimited plug-ins
Active and maintained
Thanks Java – we’ll take that
“You don't know the power of the Dark Side… Join me and together we can rule the galaxy…”
• or, converting a Java IDE to a PHP IDE
– PHPeclipse – http://www.phpeclipse.de
• Actively developed – best known – free – what I use
– TruStudio – http://www.xored.com/trustudio/
• Commercial - some unique features but not enough to purchase - yet
– UPHPU Eclipse – http://www.uphpu.org
• Proves the flexibility of Eclipse
• Looks promising – needs time
8/23/2005
© 2005 New York PHP
5
www.nyphp.com
WebDAV and Windows
Document Authoring
and Versioning?
• WebDAV
– Standards based file access
– Well supported in Apache 2
•
•
•
•
•
Distributed Authoring
and Versioning?
Provide file system access through HTTP/S – ubiquitous and secure
Leverage Apache’s user control, aliasing, logging, and mod_*
No need for shell/system accounts – no UNIX permission problems
HTTP and URLs are a logical way to access data
Built-in properties and locking provide flexibility
• Windows
–
–
–
–
8/23/2005
It’s a good GUI – I don’t want to hear it
Windows XP can mount WebDAV locations, but…
Application support is limited
Discover WebDrive…
© 2005 New York PHP
DAV Ain’t vi?
6
www.nyphp.com
WebDAV and Windows – and WebDrive
• WebDrive – http://www.webdrive.com
–
–
–
–
Mounts remote locations as a drive letter
Supports FTP, SFTP, FrontPage and WebDAV
Caches files and directories to address network latency
Commercial product, but inexpensive – support good software
• Free implementation – NetDrive
– Doesn’t support SFTP
– Doesn’t appear to be actively maintained
– http://support.novell.com/servlet/filedownload/uns/pub/ndrv41862.exe/
– http://www.acs.uwosh.edu/novell/netdrive.htm
8/23/2005
© 2005 New York PHP
7
www.nyphp.com
Eclipse/WebDAV Development Stack
Demo Outline
•
•
•
•
•
Connecting the remote drives
Firing up Eclipse
Creating a new project
Time to get to work
Real-world development
–
–
–
–
Sprinkle in Subversion
Checkout to SFTP remote mount
Move files between projects, SVN, and WebDAV
Command line development also easy
Distributed development with version control – without the mess…
8/23/2005
© 2005 New York PHP
8
www.nyphp.com
The Future Looks Bright Slide
• Eclipse Plug-ins and Extensibility
– Large library of useful plug-ins – new ones everyday
– The all-under-one-roof Department
• Web Tools: http://eclipse.org/webtools/
• UML: http://www.eclipse.org/uml2/
• http://www.eclipse.org/downloads/
– Native FTP and WebDAV
– Rich Client Platform: http://www.eclipse.org/community/rcp.html
• http://www.eclipse.org/community/
• Beyond WebDAV
– Single Apache 2 serves Subversion and WebDAV
– WebDrive provides transparent access to SFTP accounts
• Putting it all together
– Large distributed development teams
• No permission and system administration headaches
– Secure
• HTTPS reduces password administration by leveraging client certificates
– Development visibility
• Give customers source code browsing simply with a web browser
8/23/2005
© 2005 New York PHP
9
www.nyphp.com
The Nice-to-Haves Slide
•
Eclipse’s editor
– Good, but not a tried and true text editor
– Embed UltraEdit into Eclipse (or an editor of your choice)
– Group open files
•
Eclipse projects
– Many projects can get confusing
– Removing directory from project, but not file system
–
http://www.eclipse.org/eclipse/development/inflexible-projects-problem.html
– SVN checkout to existing project
•
WebDrive
– Potentially a large number of drives floating around
– Ability to null mount (mount as directory, instead of drive)
– Offline mode – cache files locally, then when online, synchronize
•
There are some features lacking
– The developer community welcomes suggestions
– Active and vibrant software (both commercial and community based)
– I’ve submitted a couple already – submit yours today
•
WebDAV
– Mature, but still a developing standard
8/23/2005
© 2005 New York PHP
10
www.nyphp.com
Questions?
8/23/2005
© 2005 New York PHP
11