Web App Development
MVC, Zend, Yii, and beyond
Web Apps Team
- Ken
- Jeff *
- Jim *
- Tom
- Rodney
- Mia
Number of Apps in our dev queue?
18
Campus Directory |
Student Housing Online |
WCMS |
FixIt |
eText Library |
OTSS |
ERS |
Volunteers SVC |
Student Services Portal |
Baytree Conference Room |
Multicultural Career Center |
EOP |
SCOC |
GLTBI Library |
UCSC Mobile Framework |
Dining Apps |
Financial Aid Calculator |
Surveys |
|
|
What are our needs
- Rapid development
- Train team members new to PHP & frameworks
- Standardize code and apps
Rapid Development
Rapid application development (RAD) is a software development methodology that uses minimal planning in favor of rapid prototyping.
How do we achieve this?
- Choose a MVC web framework to develop in
- Develop a base application, and not start every project from scratch
What is a MVC framework
Model–View–Controller (MVC) is a software design pattern that separates the presentation layer from the logic layer.
What is a base application?
A base application is a pre-built application that is used as a starting point for new application development.
Train team members
Aside from taping them to their seats... how do we train our team?
- Choose a MVC framework with strict coding standards (to promote good coding practice and to keep all apps familiar)
- Train team in the structure of our base application
- Let their skills develop as they work
Standardize
When anything is possible, it's easy to become overwhelmed.
So, how do we prepose to standardize the app dev process?
By creating starting points, not boundaries
This gives the project team a place to start, not a place to finish.
Key components of our base application
- familiar coding environment
- branded html/css themes
- shibboleth / login built in
- file upload
- WSYIWYG editors
- API / web service
- ajax tables
- ability to add more features over time
MVC web frameworks
Model-View-Controller
MVC web frameworks: History
This style of programming became popularized in early 2000's with Ruby on Rails. Since then every web language has tried to mimic the use of MVC development.
MVC web frameworks: PHP
- CodeIgniter
- Zend Framework
- CakePHP
- Symfony
- Yii
- FuelPHP
- and the list goes into the thousands
MVC web frameworks: PHP
Why not just write our own?
- Because we don't want to put the team's productivity on the shoulders of any one person.
- We can also utilize open source libraries and classes that other users of the framework wrote, so every new feature doesn't have to be written from scratch.
- Being a part of a community allows us to stay aware of the latest coding standards and practices.
MVC web frameworks: PHP
Since there are thousands, which do we choose?
- Lightweight with a small code base
- Fast (development & performance)
- Strict coding standards
- Active healthy community
- Good documentation
Zend Framework
ZF is a MVC PHP framework that is developed by the company that invented PHP.
Upon choosing ZF, UCSC developers thought...
- ZF is made by the inventors of PHP
- ZF is flexible
- ZF is easy to piecemeal into an existing application
After using ZF, UCSC developers commented...
- The flexibility means more low-level tasks = more coding
- The learning curve was longer than expected
- Poor documentation
UCSC Developers aren't alone, research shows ZF to have...
Large code base
Sluggish performance
Loose coding standards
Poor documentation
What we need is:
Lightweight with a small code base
Fast (development & performance)
Strict coding standards
Active healthy community
Good documentation
This led us to the Yii Framework
Yii Framework
Yii is community developed and was created out of the need for a high-performance PHP framework best for developing Web 2.0 applications.
Yii features:
- Lightweight with a small code base
- Fast (development & performance)
- Strict coding standards
- Active healthy community
- Good documentation