CSC/ECE 517 Spring 2014/ch1a 1c yj
CSC/ECE 517 Spring 2014/ch1a 1c yj
Background
In such internet age, web applications had been highly valued by programmers on the Web. To help those who aimed to utilize the design patterns to produce a maintainable, readable, and high quality code, many object-oriented web frameworks has been released public that allow enthusiastic programmers to take advantage of the well-built developing environment.
You may already see several examples from other chapters(here, here, and here), but today, we are going to deliver several further details on each, based on their strength and weakness, and make a comparision to make the decision on choosing the best object-oriented web frameworks being easier.
Examples
As there are tons of object-oriented web frameworks can be found online, we will need to limit only four of the most famous web frameworks we consider will be discussed today.
Narration
Hyperlinks to important terms
Comparison on Web Frameworks based on feature
Project | Language | Ajax | MVC framework | MVC push-pull | Testing framework(s) | DB migration framework(s) | Security framework(s) | Template framework(s) | Caching framework(s) | Form validation framework(s) | Scaffolding |
Ruby on Rails | Ruby | Prototype, script.aculo.us, jQuery | Yes (ActiveRecord, Action Pack) | Push | Unit Tests, Functional Tests and Integration Tests | Yes | Plug-in | Yes | Yes | Yes | Yes |
CakePHP | PHP >= 5.2 | Prototype, script.aculo.us, jQuery, MooTools | Yes | Push | Unit tests, object mocking, fixtures, code coverage, memory analysis with SimpleTest and XDebug PHPUnit (cakephp 2.0) | Yes, CakePHP Schema Shell by default, and some others | ACL-based | Themes, layouts, views, elements | Memcache, Redis, XCache, APC, File | Validation, security | Yes |
Django | Python | Yes | Yes | Push | unittest, test client, LiveServerTestCase | Provided by South(http://south.aeracode.org/), Django Evolution | ACL-based | Django Template Language | Cache Framework | Django Forms API | No, not by default |
Play | Scala/Java | Yes | Yes | Push-pull | Unit test, Functional test, Selenium | Yes, similar to Ruby on Rails | via Core Security module | Yes | Yes | Server-side validation | Yes |
References
<references/>