Google Tools

Total Page:16

File Type:pdf, Size:1020Kb

Google Tools PROGRAMMING Google Web Toolkit www.fotolia.de, Timothy Large Large Timothy www.fotolia.de, Creating dynamic web applications with the Google Web Toolkit GOOGLE TOOLS The Google Web Toolkit lets you develop complex web applications and Javascript implementations of Java in Java and automatically converts them to AJAX apps. standard classes such as java.lang, and java.util. Besides this, the framework BY RAMON WARTALA modifies the Javascript code to suit pop- ular web browsers like Mozilla, Firefox, Internet Explorer, Opera, and Safari. oogle is more than just a search with some help from Javascript and engine. This vast and rapidly ex- XML, are currently the buzzwords Getting Started Gpanding company is also a major among web developers. AJAX toolkits The 22 Mbyte gwt-linux-1.0.21.tar.gz center for software development. Be- for programming languages such as Perl package includes documentation and sides programs such as Google Desktop [3], Ruby, and PHP are becoming ever- five sample applications, ranging from a and Google Earth, the company also re- more popular. But Google has ventured trivial Hello program, through a widget leases other web-based products once a into new territory with their Java-based overview, to a small email application quarter. While Google Mail is enjoying framework. Java simply serves as a gen- the limelight, new applications such as erator and test language, as AJAX uses Listing 1: Postgresql Table Google Reader, Google Calendar, or Javascript client-side. for MyAddress Google Spreadsheet have attracted very But why Java? The main reason is sim- 01 CREATE TABLE myaddress."names" little attention. These lesser known ap- ple bug hunting. GWT gives developers plications share the look and feel of their the ability to run and test an AJAX appli- 02 ( more popular counterparts, and they use cation in what’s known as hosted mode. 03 id serial NOT NULL, AJAX for quick and easy client access. This means running a Java version of 04 firstname varchar(50) NOT Although many suspected Google had the application within a standard Java NULL, its own framework running under the Virtual Machine. Programmers can use 05 lastname varchar(100) NOT hood, there was no way of knowing for their preferred development environ- NULL, sure until recently. But Google finally ments and debuggers. confirmed the suspicions at the Java One After the application is finished, it is 06 email varchar(128) NOT NULL, Fair in May of this year by putting the compiled into Javascript. The HTML and 07 CONSTRAINT id PRIMARY KEY Google Web Toolkit (GWT) up for grabs Javascript code created by this process (id) as a free download [1]. can be installed on a web server, where 08 ) it runs in web mode. The component ar- 09 WITHOUT OIDS; What’s in the Box? chitecture of the GWT framework com- 10 ALTER TABLE myaddress."names" AJAX [2], the asynchronous processing prises a special web browser, a widget OWNER TO myaddress; of HTTP requests and responses, along class library for AJAX-based interfaces, 68 ISSUE 74 JANUARY 2007 WWW.LINUX - MAGAZINE.COM Google Web Toolkit PROGRAMMING -eclipse specifies that we will be creating the project for the Eclipse IDE: projectCreator U -eclipse Myaddress_GWT -out U myaddress_gwt The applicationCreator command line tool creates the required classes, scripts, and configuration files: applicationCreator U -eclipse MyAddress_GWT -out U myaddress_gwt U de.wartala.client.MyAddress After making sure you have all the re- quired files, you can import the GWT project into Eclipse by selecting Import | Figure 1: This email program is one of the sample applications intended to demonstrate the Existing Projects into Workspace in the capabilities of the Google Web Toolkit. Package Manager (Figure 3). Within the project structure, I will be using the XML (see Figure 1). The applications can be The data exchange relies on the JSON configuration of a module as the entry launched using the shell scripts in the format (JavaScript Object Notation) [4]. point. applicationCreator has already application directories. In contrast to XML, JSON does not use created a module configuration with an The sample GWT application we will tagging, and thus generates less over- entry point, based on the required target be discussing in this article uses an ex- head. To retrieve the address for a family package (Listing 3). It references the isting server to query a simple address name from the database using Rails, and Java class, which the application will database. To keep things simple, the to package the address in the JSON for- call when launched in hosted mode, and server will be based on Ruby On Rails, mat, all we need is the 10 lines in Listing is also found in the HTML file, which as the implementation only takes a few 2. Line 6 reads the family name from an implements the framework for the client lines of code – this has no effect on the HTTP request and finds the matching GUI. The most important lines here are client, of course. The finished version address in the database in Line 7. Line 8 the references to the module class and to can be downloaded at [9]. The My- converts the address to JSON format. the GWT Framework’s Javascript library: Address service developed specially for The ruby script\server start command this purpose is a simple database (see calls the MyAddress service. The internal <meta name='gwt:module' U Listing 1) that manages first names, fam- Ruby On Rails developer server gets the content='de.wartala.MyAddress'> ily names, and email addresses. service to listen on port 3000 on local- <script language="javascript" U host. You could just as easily query the src="gwt.js"></script> Listing 2: NameController server by entering http://localhost:3000/ name/ in a browser. Another advantage When the application is launched, it first 01 class NameController < of Ruby On Rails is that you can manage calls the onModuleLoad() method, ApplicationController the database via a generated input form which generates the widgets provided by 02 scaffold :name (Figure 2). After entering a few records, the GUI library, before instantiating 03 def find_names_to_json query them in your browser at the fol- more classes: MyAddressRequester in our 04 # make sure not to send lowing URL: http://localhost:3000/name/ example. The application then sends re- html but text/plain find_names_to_json?lastname=Name. quests to the MyAddress service, re- Now let’s start 05 @headers["Content-Type"] = developing the "text/plain; charset=utf-8" GWT project that 06 search_name = uses the web ser- @params['lastname'] vice. We can type 07 names = Name.find(:all, : projectCreator on conditions => ['lastname like the command line ?', search_name]) to create the proj- 08 render_text names.to_json ect frame for an 09 end application. The -out specifies the Figure 2: The web service in our example can provide records directly 10 end target directory; to the browser. WWW.LINUX - MAGAZINE.COM ISSUE 74 JANUARY 2007 69 PROGRAMMING Google Web Toolkit asynchronous HTTP request to the ser- vice, which passes the result to a matching response handler. JSONRe- sponseTextHandler, another inner class, implements the onCompletion() method, which is called when the Figure 3: The Google Web Toolkit can option- asynchronous HTTP ally create Eclipse project files, giving pro- request returns any grammers the ability to import them into results. the IDE as a project. As the service re- Figure 4: Ajax applications can be debugged using a special web turns a JSON object, browser in hosted mode. ceives the responses, and fills the GUI we first need to de- elements with them. code the object and break it down into a family name, the data returned by the The initializeMainForm() method gen- its component parts. JSONParser.parse service appears in the table. erates the interface, which is comprised (responseText) handles the task of of a search button, an input box, and decoding the object, and the method Hunting Bugs aFlexTable. initializeMainForm() then displayJSONObject() handles the latter The advantage of hosted mode becomes sets attributes and events, just like an step, delegating the chore to the method apparent if a program error occurs; it is AWT or the Swing interface. updateAddressTable(). The method easier to find a bug in the Java code than Our example only requires a single updateAddressTable() renders the results in the compiled Javascript. Setting the ClickEvent to trigger a click on Search. as a table, entering the values from the -eclipse parameter when calling project- The response for this event is imple- JSON response in the corresponding Creator creates a file with a .launch mented by the inner class, SearchButton- rows and columns. suffix besides the project-specific data. ClickListener. Now for the MyAddress-shell.sh com- Thanks to the parameters configured An onClick() event triggers the AJAX mand line script. Figure 4 shows the here, the application can be executed in part of the application and sends an front-end in hosted mode. After entering Eclipse and debugged with a little help from breakpoints and other techniques Listing 3: Client Entry Point Class (Figure 5). 01 import com.google.gwt.core.client.EntryPoint; 02 import com.google.gwt.user.client.ui.RootPanel; INFO 03 import com.google.gwt.user.client.ui.TabPanel; [1] Google Web Toolkit: http:// code. google. com/ webtoolkit 04 [2] AJAX: http:// en. wikipedia. org/ wiki/ 05 /** Ajax_%28programming%29 06 * Entry point classes define <code>onModuleLoad()</code>. [3] AJAX and Perl: http:// www. linux-mag- 07 */ azine. com/ issue/ 62/ Perl_AJAX. pdf 08 public class MyAddress implements EntryPoint { [4] JSON: http:// www. json. org [5] GWT Widget Gallery: 09 http:// code. google. com/ webtoolkit/ 10 /** documentation/ com. google. gwt. doc.
Recommended publications
  • Swing: Components for Graphical User Interfaces
    Swing: Components for Graphical User Interfaces Computer Science and Engineering College of Engineering The Ohio State University Lecture 22 GUI Computer Science and Engineering The Ohio State University GUI: A Hierarchy of Nested Widgets Computer Science and Engineering The Ohio State University Visual (Containment) Hierarchy Computer Science and Engineering The Ohio State University Top-level widgets: outermost window (a container) Frame, applet, dialog Intermediate widgets: allow nesting (a container) General purpose Panel, scroll pane, tabbed pane, tool bar Special purpose Layered pane Atomic widgets: nothing nested inside Basic controls Button, list, slider, text field Uneditable information displays Label, progress bar, tool tip Interactive displays of highly formatted information Color chooser, file chooser, tree For a visual (“look & feel”) of widgets see: http://java.sun.com/docs/books/tutorial/uiswing/components Vocabulary: Widgets usually referred to as “GUI components” or simply “components” History Computer Science and Engineering The Ohio State University Java 1.0: AWT (Abstract Window Toolkit) Platform-dependent implementations of widgets Java 1.2: Swing Most widgets written entirely in Java More portable Main Swing package: javax.swing Defines various GUI widgets Extensions of classes in AWT Many class names start with “J” Includes 16 nested subpackages javax.swing.event, javax.swing.table, javax.swing.text… Basic GUI widgets include JFrame, JDialog JPanel, JScrollPane, JTabbedPane,
    [Show full text]
  • Machine Learning in the Browser
    Machine Learning in the Browser The Harvard community has made this article openly available. Please share how this access benefits you. Your story matters Citable link http://nrs.harvard.edu/urn-3:HUL.InstRepos:38811507 Terms of Use This article was downloaded from Harvard University’s DASH repository, and is made available under the terms and conditions applicable to Other Posted Material, as set forth at http:// nrs.harvard.edu/urn-3:HUL.InstRepos:dash.current.terms-of- use#LAA Machine Learning in the Browser a thesis presented by Tomas Reimers to The Department of Computer Science in partial fulfillment of the requirements for the degree of Bachelor of Arts in the subject of Computer Science Harvard University Cambridge, Massachusetts March 2017 Contents 1 Introduction 3 1.1 Background . .3 1.2 Motivation . .4 1.2.1 Privacy . .4 1.2.2 Unavailable Server . .4 1.2.3 Simple, Self-Contained Demos . .5 1.3 Challenges . .5 1.3.1 Performance . .5 1.3.2 Poor Generality . .7 1.3.3 Manual Implementation in JavaScript . .7 2 The TensorFlow Architecture 7 2.1 TensorFlow's API . .7 2.2 TensorFlow's Implementation . .9 2.3 Portability . .9 3 Compiling TensorFlow into JavaScript 10 3.1 Motivation to Compile . 10 3.2 Background on Emscripten . 10 3.2.1 Build Process . 12 3.2.2 Dependencies . 12 3.2.3 Bitness Assumptions . 13 3.2.4 Concurrency Model . 13 3.3 Experiences . 14 4 Results 15 4.1 Benchmarks . 15 4.2 Library Size . 16 4.3 WebAssembly . 17 5 Developer Experience 17 5.1 Universal Graph Runner .
    [Show full text]
  • View of XML Technology
    AN APPLICATION OF EXTENSlBLE MARKUP LANGUAGE FOR INTEGRATION OF KNOWLEDGE-BASED SYSTEM WITH JAVA APPLICATIONS A Thesis Presented to The Faculty of the Fritz J. and Dolores H. Russ College of Engineering and Technology Ohio University In Partial Fulfillment of the Requirement for the Degree Master of Science BY Sachin Jain November, 2002 ACKNOWLEDGEMENTS It is a pleasure to thank the many people who made this thesis possible. My sincere gratitude to my thesis advisor, Dr. DuSan Sormaz, who helped and guided me towards implementing the ideas presented in this thesis. His dedication to research and his effort in the development of my thesis was an inspiration throughout this work. The thesis would not be successful without other members of my committee, Dr. David Koonce and Dr. Constantinos Vassiliadis. Special thanks to them for their substantial help and suggestions during the development of this thesis. I would like also to thank Dr. Dale Masel for his class on guidelines for how to write thesis. Thanlts to my fellow colleagues and members of the lMPlanner Group, Sridharan Thiruppalli, Jaikumar Arumugam and Prashant Borse for their excellent cooperation and suggestions. A lot of infom~ation~1sef~11 to the work was found via the World Wide Web; 1 thank those who made their material available on the Web and those who kindly responded back to my questions over the news-groups. Finally, it has been pleasure to pursue graduate studies at IMSE department at Ohio University, an unique place that has provided me with great exposures to intricacies underlying development, prograrn~ningand integration of different industrial systems; thus making this thesis posslbie.
    [Show full text]
  • EPIC Google FTC Complaint
    Before the Federal Trade Commission Washington, DC 20580 In the Matter of ) ) Google, Inc. and ) Cloud Computing Services ) ________________________________ ) Complaint and Request for Injunction, Request for Investigation and for Other Relief SUMMARY OF COMPLAINT 1. This complaint concerns privacy and security risks associated with the provision of “Cloud Computing Services” by Google, Inc. to American consumers, businesses, and federal agencies of the United States government. Recent reports indicate that Google does not adequately safeguard the confidential information that it obtains. Given the previous opinions of the Federal Trade Commission regarding the obligation of service providers to ensure security, EPIC hereby petitions the Federal Trade Commission to open an investigation into Google’s Cloud Computing Services, to determine the adequacy of the privacy and security safeguards, to assess the representations made by the firm regarding these services, to determine whether the firm has engaged in unfair and/or deceptive trade practices, and to take any such measures as are necessary, including to enjoin Google from offering such services until safeguards are verifiably established. Such action by the Commission is necessary to ensure the safety and security of information submitted to Google by American consumers, American businesses, and American federal agencies. PARTIES 1. The Electronic Privacy Information Center (“EPIC”) is a public interest research organization incorporated in Washington, DC. EPIC’s activities include the review of government and private sector policies and practices to determine their impact on the privacy interests of the American public. Among its other activities, EPIC initiated the complaint to the FTC regarding Microsoft Passport in which the Commission subsequently required Microsoft to implement a comprehensive information security program for 1 Passport and similar services.1 EPIC also filed the complaint with the Commission regarding databroker ChoicePoint, Inc.
    [Show full text]
  • Modern Web Application Frameworks
    MASARYKOVA UNIVERZITA FAKULTA INFORMATIKY Û¡¢£¤¥¦§¨ª«¬­Æ°±²³´µ·¸¹º»¼½¾¿Ý Modern Web Application Frameworks MASTER’S THESIS Bc. Jan Pater Brno, autumn 2015 Declaration Hereby I declare, that this paper is my original authorial work, which I have worked out by my own. All sources, references and literature used or ex- cerpted during elaboration of this work are properly cited and listed in complete reference to the due source. Bc. Jan Pater Advisor: doc. RNDr. Petr Sojka, Ph.D. i Abstract The aim of this paper was the analysis of major web application frameworks and the design and implementation of applications for website content ma- nagement of Laboratory of Multimedia Electronic Applications and Film festival organized by Faculty of Informatics. The paper introduces readers into web application development problematic and focuses on characte- ristics and specifics of ten selected modern web application frameworks, which were described and compared on the basis of relevant criteria. Practi- cal part of the paper includes the selection of a suitable framework for im- plementation of both applications and describes their design, development process and deployment within the laboratory. ii Keywords Web application, Framework, PHP,Java, Ruby, Python, Laravel, Nette, Phal- con, Rails, Padrino, Django, Flask, Grails, Vaadin, Play, LEMMA, Film fes- tival iii Acknowledgement I would like to show my gratitude to my supervisor doc. RNDr. Petr So- jka, Ph.D. for his advice and comments on this thesis as well as to RNDr. Lukáš Hejtmánek, Ph.D. for his assistance with application deployment and server setup. Many thanks also go to OndˇrejTom for his valuable help and advice during application development.
    [Show full text]
  • TEC-57 – Full Stack Ruby-On-Rails Web Developer Certificate Program with Externship
    Continuing Education 1717 S. Chestnut Ave. Fresno, CA 93702-4709 (800) 372-5505 https://ce.fresno.edu TEC-57 – Full Stack Ruby-on-Rails Web Developer Certificate Program with Externship Professional Education Course Syllabus Program includes National Certification & an Externship Opportunity Course Contact Hours: 42 The Full Stack Web Developer Profession Full stack developers are software or website programmers who combine the roles of front-end and back-end developers. Stack developer job is relatively new (just four years old). This role blends both front-end and back-end development since there is no clear borderline between the two: front- end developers often lack extra back-end skills, and the other way around. Full stack duties, in their turn, unite the both. These specialists work professionally both on the user side and server side of the web development cycle. To this end, the role requires in-depth knowledge of every level of web creation process, which includes Linus server’s set-up and configuration, creating server-side APIs, making JavaScript-codes that power apps, and so on. A Ruby on Rails developer is responsible for writing server-side web application logic in Ruby, around the framework Rails. Ruby on Rails developers usually develop back-end components, connect the application with the other (often third-party) web services, and support the front-end developers by integrating their work with the application. Ruby on Rails, as a framework, has gained popularity tremendously over a very short period of time. The goal of the framework is to reduce the time and effort required to build a web application.
    [Show full text]
  • Programming Java for OS X
    Programming Java for OS X hat’s so different about Java on a Mac? Pure Java applica- tions run on any operating system that supports Java. W Popular Java tools run on OS X. From the developer’s point of view, Java is Java, no matter where it runs. Users do not agree. To an OS X user, pure Java applications that ignore the feel and features of OS X are less desirable, meaning the customers will take their money elsewhere. Fewer sales translates into unhappy managers and all the awkwardness that follows. In this book, I show how to build GUIs that feel and behave like OS X users expect them to behave. I explain development tools and libraries found on the Mac. I explore bundling of Java applications for deployment on OS X. I also discuss interfacing Java with other languages commonly used on the Mac. This chapter is about the background and basics of Java develop- ment on OS X. I explain the history of Java development. I show you around Apple’s developer Web site. Finally, I go over the IDEs commonly used for Java development on the Mac. In This Chapter Reviewing Apple Java History Exploring the history of Apple embraced Java technologies long before the first version of Java on Apple computers OS X graced a blue and white Mac tower. Refugees from the old Installing developer tan Macs of the 1990s may vaguely remember using what was tools on OS X called the MRJ when their PC counterparts were busy using JVMs. Looking at the MRJ stands for Mac OS Runtime for Java.
    [Show full text]
  • Create Mobile Apps with HTML5, Javascript and Visual Studio
    Create mobile apps with HTML5, JavaScript and Visual Studio DevExtreme Mobile is a single page application (SPA) framework for your next Windows Phone, iOS and Android application, ready for online publication or packaged as a store-ready native app using Apache Cordova (PhoneGap). With DevExtreme, you can target today’s most popular mobile devices with a single codebase and create interactive solutions that will amaze. Get started today… ・ Leverage your existing Visual Studio expertise. ・ Build a real app, not just a web page. ・ Deliver a native UI and experience on all supported devices. ・ Use over 30 built-in touch optimized widgets. Learn more and download your free trial devexpress.com/mobile All trademarks or registered trademarks are property of their respective owners. Untitled-4 1 10/2/13 11:58 AM APPLICATIONS & DEVELOPMENT SPECIAL GOVERNMENT ISSUE INSIDE Choose a Cloud Network for Government-Compliant magazine Applications Geo-Visualization of SPECIAL GOVERNMENT ISSUE & DEVELOPMENT SPECIAL GOVERNMENT ISSUE APPLICATIONS Government Data Sources Harness Open Data with CKAN, OData and Windows Azure Engage Communities with Open311 THE DIGITAL GOVERNMENT ISSUE Inside the tools, technologies and APIs that are changing the way government interacts with citizens. PLUS SPECIAL GOVERNMENT ISSUE APPLICATIONS & DEVELOPMENT SPECIAL GOVERNMENT ISSUE & DEVELOPMENT SPECIAL GOVERNMENT ISSUE APPLICATIONS Enhance Services with Windows Phone 8 Wallet and NFC Leverage Web Assets as Data Sources for Apps APPLICATIONS & DEVELOPMENT SPECIAL GOVERNMENT ISSUE ISSUE GOVERNMENT SPECIAL DEVELOPMENT & APPLICATIONS Untitled-1 1 10/4/13 11:40 AM CONTENTS OCTOBER 2013/SPECIAL GOVERNMENT ISSUE OCTOBER 2013/SPECIAL GOVERNMENT ISSUE magazine FEATURES MOHAMMAD AL-SABT Editorial Director/[email protected] Geo-Visualization of Government KENT SHARKEY Site Manager Data Sources MICHAEL DESMOND Editor in Chief/[email protected] Malcolm Hyson ..........................................
    [Show full text]
  • Overtaking Google Desktop Leveraging XSS to Raise Havoc
    Overtaking Google Desktop Leveraging XSS to Raise Havoc Yair Amit Senior Security Researcher, Watchfire [email protected] 6th OWASP +972-9-9586077 ext 4039 AppSec Conference Copyright © 2007 - The OWASP Foundation Milan - May 2007 Permission is granted to copy, distribute and/or modify this document under the terms of the Creative Commons Attribution-ShareAlike 2.5 License. To view this license, visit http://creativecommons.org/licenses/by-sa/2.5/ The OWASP Foundation http://www.owasp.org / Presentation Outline Background Google Desktop Overview Overtaking Google Desktop – Step by Step Impact What harm can a malicious attacker do? Attack characteristics Lessons learned Q&A 6th OWASP AppSec Conference – Milan – May 2007 2 Background XSS The most widespread web-application vulnerability WASC Web Application Security Statistics Project (http://www.webappsec.org/projects/statistics/ ) Used to be perceived as an identity theft attack XSS has so much more to offer. It has teeth! Change settings and steal data from attacked victim account Web worms (Samy) What we are about to see… Stealth attack Sensitive information theft from the local computer Command execution 6th OWASP AppSec Conference – Milan – May 2007 3 Google Desktop - Overview Purpose: provide an easily to use and powerful search capability on local and other personal content Some traits: Runs a local web-server for interaction (port 4664) Google.com like interface Uses a service to run the indexing User interface is almost purely web Preferences control what to index, and indexing can be broad Office documents, media files, web history cache, chat sessions, etc. Easily extendible Special integration with Google.com 6th OWASP AppSec Conference – Milan – May 2007 4 Google Desktop Security Mechanisms Web server only accessible from localhost Not available from network 6th OWASP AppSec Conference – Milan – May 2007 5 Google Desktop Protection Mechanism (cont.) The main threats are XSS and XSRF attacks.
    [Show full text]
  • Extracting Taint Specifications for Javascript Libraries
    Extracting Taint Specifications for JavaScript Libraries Cristian-Alexandru Staicu Martin Toldam Torp Max Schäfer TU Darmstadt Aarhus University GitHub [email protected] [email protected] [email protected] Anders Møller Michael Pradel Aarhus University University of Stuttgart [email protected] [email protected] ABSTRACT ACM Reference Format: Modern JavaScript applications extensively depend on third-party Cristian-Alexandru Staicu, Martin Toldam Torp, Max Schäfer, Anders Møller, and Michael Pradel. 2020. Extracting Taint Specifications for JavaScript libraries. Especially for the Node.js platform, vulnerabilities can Libraries. In 42nd International Conference on Software Engineering (ICSE have severe consequences to the security of applications, resulting ’20), May 23–29, 2020, Seoul, Republic of Korea. ACM, New York, NY, USA, in, e.g., cross-site scripting and command injection attacks. Existing 12 pages. https://doi.org/10.1145/3377811.3380390 static analysis tools that have been developed to automatically detect such issues are either too coarse-grained, looking only at 1 INTRODUCTION package dependency structure while ignoring dataflow, or rely on JavaScript is powering a wide variety of web applications, both manually written taint specifications for the most popular libraries client-side and server-side. Many of these applications are security- to ensure analysis scalability. critical, such as PayPal, Netflix, or Uber, which handle massive In this work, we propose a technique for automatically extract- amounts of privacy-sensitive user data and other assets. An impor- ing taint specifications for JavaScript libraries, based on a dynamic tant characteristic of modern JavaScript-based applications is the analysis that leverages the existing test suites of the libraries and extensive use of third-party libraries.
    [Show full text]
  • 1 Introducing Symfony, Cakephp, and Zend Framework
    1 Introducing Symfony, CakePHP, and Zend Framework An invasion of armies can be resisted, but not an idea whose time has come. — Victor Hugo WHAT’S IN THIS CHAPTER? ‰ General discussion on frameworks. ‰ Introducing popular PHP frameworks. ‰ Design patterns. Everyone knows that all web applications have some things in common. They have users who can register, log in, and interact. Interaction is carried out mostly through validated and secured forms, and results are stored in various databases. The databases are then searched, data is processed, and data is presented back to the user, often according to his locale. If only you could extract these patterns as some kind of abstractions and transport them into further applications, the developmentCOPYRIGHTED process would be much MATERIAL faster. This task obviously can be done. Moreover, it can be done in many different ways and in almost any programming language. That’s why there are so many brilliant solutions that make web development faster and easier. In this book, we present three of them: Symfony, CakePHP, and Zend Framework. They do not only push the development process to the extremes in terms of rapidity but also provide massive amounts of advanced features that have become a must in the world of Web 2.0 applications. cc01.indd01.indd 1 11/24/2011/24/2011 55:45:10:45:10 PPMM 2 x CHAPTER 1 INTRODUCING SYMFONY, CAKEPHP, AND ZEND FRAMEWORK WHAT ARE WEB APPLICATION FRAMEWORKS AND HOW ARE THEY USED? A web application framework is a bunch of source code organized into a certain architecture that can be used for rapid development of web applications.
    [Show full text]
  • Microsoft AJAX Library Essentials Client-Side ASP.NET AJAX 1.0 Explained
    Microsoft AJAX Library Essentials Client-side ASP.NET AJAX 1.0 Explained A practical tutorial to using Microsoft AJAX Library to enhance the user experience of your ASP.NET Web Applications Bogdan Brinzarea Cristian Darie BIRMINGHAM - MUMBAI Microsoft AJAX Library Essentials Client-side ASP.NET AJAX 1.0 Explained Copyright © 2007 Packt Publishing All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews. Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the authors, Packt Publishing, nor its dealers or distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book. Packt Publishing has endeavored to provide trademark information about all the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information. First published: July 2007 Production Reference: 1230707 Published by Packt Publishing Ltd. 32 Lincoln Road Olton Birmingham, B27 6PA, UK. ISBN 978-1-847190-98-7 www.packtpub.com Cover Image by www.visionwt.com Table of Contents Preface 1 Chapter 1: AJAX and ASP.NET 7 The Big Picture 8 AJAX and Web 2.0 10 Building
    [Show full text]