Ext JS - Direct Bridging The Gap A DMSBT Presentation By Timothy Chandler.

Slides:



Advertisements
Similar presentations
Other Web Application Development Technologies. PHP.
Advertisements

JavaScript FaaDoOEngineers.com FaaDoOEngineers.com.
1 CGICGI Common Gateway Interface Server-side Programming Lecture.
ProJAX An AJAX Framework for Progress Tom Bascom President Greenfield Technologies
9. AJAX & RIA. 2 Motto: O! call back yesterday, bid time return. — William Shakespeare.
ExtJS 4.0 JavaScript MVC Framework. Who ExtJS is provided by Sencha ( o Sencha Touch o GWT o CSS Animator o IO (Cloud Data Management)
Web Development Using ASP.NET CA – 240 Kashif Jalal Welcome to week – 1.1 of…
Cloud Computing Lecture #7 Introduction to Ajax Jimmy Lin The iSchool University of Maryland Wednesday, October 15, 2008 This work is licensed under a.
Microsoft ASP.NET AJAX - AJAX as it has to be Presented by : Rana Vijayasimha Nalla CSCE Grad Student.
© 2006 by IBM 1 How to use Eclipse to Build Rich Internet Applications With PHP and AJAX Phil Berkland IBM Software Group Emerging.
Chapter 6 DOJO TOOLKITS. Objectives Discuss XML DOM Discuss JSON Discuss Ajax Response in XML, HTML, JSON, and Other Data Type.
UNIT-V The MVC architecture and Struts Framework.
Sys Prog & Scripting - HW Univ1 Systems Programming & Scripting Lecture 15: PHP Introduction.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 13 Slide 1 Application architectures.
Windows.Net Programming Series Preview. Course Schedule CourseDate Microsoft.Net Fundamentals 01/13/2014 Microsoft Windows/Web Fundamentals 01/20/2014.
NextGen Technology upgrade – Synerizip - Sandeep Kamble.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
JavaScript & jQuery the missing manual Chapter 11
ASP.NET + Ajax Jesper Tørresø ITNET2 F08. Ajax Ajax (Asynchronous JavaScript and XML) A group of interrelated web development techniques used for creating.
1 3. Implementing Web Services 1.Create SOAP proxy interfaces and WSDL based service descriptions 2.Register/publish services 3.Stores service descriptions.
Introducing Axis2 Eran Chinthaka. Agenda  Introduction and Motivation  The “big picture”  Key Features of Axis2 High Performance XML Processing Model.
Chapter 17 - Deploying Java Applications on the Web1 Chapter 17 Deploying Java Applications on the Web.
OASIS ebXML Registry Standard Open Forum 2003 on Metadata Registries 10:30 – 11:15 January 20, 2003 Kathryn Breininger The Boeing Company Chair, OASIS.
Extending ArcGIS for Server
Remote Procedure Calls Babak Esfandiari. RPC Introduced by Birrell & Nelson (1984) Remote Procedure Calls allow a program to make use of procedures executing.
Cli/Serv.: rmiCORBA/131 Client/Server Distributed Systems v Objectives –introduce rmi and CORBA , Semester 1, RMI and CORBA.
Google Web Toolkit An Overview By Shauvik Roy Choudhary.
Implementing Remote Procedure Calls Authored by Andrew D. Birrell and Bruce Jay Nelson Xerox Palo Alto Research Center Presented by Lars Larsson.
Introduction to ASP.NET1. 2 Web applications in general Web applications are divided into two parts –The server part –The client part The server part.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
Introducing ASP.NET 2.0. Internet Technologies WWW Architecture Web Server Client Server Request Response Network HTTP TCP/IP PC/Mac/Unix + Browser (IE,
 2001 Prentice Hall, Inc. All rights reserved. 1 Chapter 23 — Simple Object Access Protocol (SOAP) and Microsoft BizTalk™ Outline 23.1Introduction 23.2Simple.
Where does PHP code get executed?. Where does JavaScript get executed?
Building Secure Web Applications With ASP.Net MVC.
Copyright 2007 SpringSource. Copying, publishing or distributing without express written permission is prohibited. Introduction to Spring Remoting Simplifying.
DynaRIA: a Tool for Ajax Web Application Comprehension Dipartimento di Informatica e Sistemistica University of Naples “Federico II”, Italy Domenico Amalfitano.
Copyright © 2012 UNICOM Systems, Inc. Confidential Information z/Ware Product Overview illustro Systems International A Division of UNICOM Global.
Facebook API Kelly Orser. Client Libraries Client libraries will simplify the calls to the platform by reducing the amount of code you have to write.
Welcome to Azure App Services! Amie Seisay
ASP.NET in Definition: 1.ASP.NET is a web application framework developed and marketed by Microsoft to allow programmers to build dynamic web sites,
Web Services Error Handling and Debugging. Agenda Simple SOAP faults Advanced SOAP faults SOAP headers and faults Error handling From a Service Perspective.
Chapter 16: Ajax-Enabled Rich Internet Applications with XML and JSON TP2543 Web Programming Mohammad Faidzul Nasrudin.
Assignment of JAVA id : BSSE-F10-M-10-JAVA1 Overview of J2EE/Session 2/Slide 1 of 38.
Web Technologies Lecture 8 Server side web. Client Side vs. Server Side Web Client-side code executes on the end-user's computer, usually within a web.
JS (Java Servlets). Internet evolution [1] The internet Internet started of as a static content dispersal and delivery mechanism, where files residing.
Scripting Languages Client Side and Server Side. Examples of client side/server side Examples of client-side side include: JavaScript Jquery (uses a JavaScript.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
ICM – API Server & Forms Gary Ratcliffe.
 Web pages originally static  Page is delivered exactly as stored on server  Same information displayed for all users, from all contexts  Dynamic.
ASP-2-1 SERVER AND CLIENT SIDE SCRITPING Colorado Technical University IT420 Tim Peterson.
Welcome to Azure App Services! Amie Seisay
.NET Mobile Application Development XML Web Services.
AJAX and REST. Slide 2 What is AJAX? It’s an acronym for Asynchronous JavaScript and XML Although requests need not be asynchronous It’s not really a.
Java Programming: Advanced Topics 1 Building Web Applications Chapter 13.
Text INTRODUCTION TO ASP.NET. InterComm Campaign Guidelines CONFIDENTIAL Simply Server side language Simplified page development model Modular, well-factored,
Web Technology (NCS-504) Prepared By Mr. Abhishek Kesharwani Assistant Professor,UCER Naini,Allahabad.
Navigation Framework using CF Architecture for a Client-Server Application using the open standards of the Web presented by Kedar Desai Differential Technologies,
Introduction to ASP.NET development. Background ASP released in 1996 ASP supported for a minimum 10 years from Windows 8 release ASP.Net 1.0 released.
National College of Science & Information Technology.
The Holmes Platform and Applications
z/Ware 2.0 Technical Overview
Introduction to Redux Header Eric W. Greene Microsoft Virtual Academy
Node.js Express Web Services
AJAX and REST.
PHP / MySQL Introduction
WEB API.
ASP.NET Module Subtitle.
Objectives In this lesson you will learn about: Need for servlets
Student: Popa Andrei-Sebastian
Presentation transcript:

Ext JS - Direct Bridging The Gap A DMSBT Presentation By Timothy Chandler

Ext JS – An Introduction Ext JS is a cross-browser JavaScript library for building rich internet applications. A Mature Framework. ▫3 Years Old. ▫Current Version is 3.0RC1. Supports all major browsers. Is highly extensible. Includes lots of off-the-shelf components and widgets. Ext JS - Direct

Introducing Ext.Direct Ext.Direct is a new package in Ext JS 3.0 Ext.Direct is JSONRPC on steroids. It aims to: ▫Bridge the gap between the client and the server. ▫Solve a lot of headaches involved in creating RIA’s such as:  Validation.  Code Structure – Separation of Logic Trees. ▫Streamline RIA development by:  Enabling developers to write less code.  Simplifying the Client to Server communication. Ext JS - Direct

Direct Providers Ext.Direct uses providers to handle communication between client and server. Providers facilitate in providing a seamless bridge between client and server. Ext JS - Direct

Direct Providers - JSON Provides a basis for JSON requests to the Direct Server. Good for extending. Can create other providers from this one. Ext JS - Direct

Direct Providers - Remoting It is an RPC bridge for method calling. Execute server side methods seamlessly with client-side stubs Ext JS - Direct

Direct Providers - Polling Bridges to a specific address on the server. Calls the address periodically. ▫Timing is controlled with the interval configuration setting. Ext JS - Direct

The Direct Store Provides a way of cleanly handling persistent data to and from the server. Can be used as a basis for an Active Record mechanism. Can be used for maintaining application state over sessions. Ext JS - Direct

The Direct Server Ext.Direct is cross-platform. Server language/platform doesn’t matter. Should be hot-swappable. Has to conform to the Ext.Direct specification. Ext JS - Direct

Existing Direct Server Implementations PHP Java.NET ColdFusion Ruby Perl Ext JS - Direct

Direct Server Specification - Required Components Configuration ▫Specifies class/module and method exposure. ▫Server Metadata. ▫Can be:  Programmatic  JSON  XML  Metadata Ext JS - Direct

Direct Server Specification - Required Components API ▫Generates a client-side descriptor based on the configuration. ▫Descriptor output can be:  Pure Javascript  Use a tag and point it to the API address.  JSON Ext JS - Direct

Direct Server Specification - Required Components Router ▫Routes requests from the client to the appropriate classes/modules and their methods. Ext JS - Direct

Direct Server Specification - Configuration - Programmatic Use the native language. Ext JS - Direct

Direct Server Specification - Configuration - Programmatic Ext JS - Direct Listing 1 – Programmatic Configuration - PHP $server=array( 'providers'=>array ( array ( 'type=>'remoting', 'handler' =>'updater', 'interval' =>1000 ), array ( 'type‘ =>'polling', 'namespace’=>'chat', 'modules‘=>array ( array('name'=>'join','args'=>0), array('name'=>'setName','args'=>1), array('name'=>'send','args'=>1) ) ); $server=array( 'providers'=>array ( array ( 'type=>'remoting', 'handler' =>'updater', 'interval' =>1000 ), array ( 'type‘ =>'polling', 'namespace’=>'chat', 'modules‘=>array ( array('name'=>'join','args'=>0), array('name'=>'setName','args'=>1), array('name'=>'send','args'=>1) ) );

Direct Server Specification - Configuration - JSON Use tools from the native language to read a JSON configuration file. Ext JS - Direct

Direct Server Specification - Configuration - JSON Ext JS - Direct Listing 2 – JSON Configuration {providers: [ { type: 'remoting', handler: 'updater', interval: 1000 }, { type: 'polling', namespace: 'chat', modules: [ {'name':'join','args':0}, {'name':'setName','args':1}, {'name':'send','args':1} ] } ]} {providers: [ { type: 'remoting', handler: 'updater', interval: 1000 }, { type: 'polling', namespace: 'chat', modules: [ {'name':'join','args':0}, {'name':'setName','args':1}, {'name':'send','args':1} ] } ]}

Direct Server Specification - Configuration - XML Use tools from the native language to read a XML configuration file. Ext JS - Direct

Direct Server Specification - Configuration - XML Ext JS - Direct Listing 3 – XML Configuration

Direct Server Specification - Configuration - Metadata Some languages require less information because they are able to dynamically introspect methods and classes at runtime. Ext JS - Direct

Direct Server Specification - Configuration - Metadata Ext JS - Direct Listing 4 – Metadata Configuration

Direct Server Specification - API Uses the configuration to generate output which the client can then bind to Ext.Direct. Ext.Direct will create client-side versions of bound methods. ▫Become native JavaScript function calls. ▫Are always asynchronous. ▫Returns are handled by providing a callback function as the last argument of the function call. Ext JS - Direct

Direct Server Specification - API Ext JS - Direct Listing 5 – API Output Ext.namespace('Ext.app'); Ext.app.DIRECT_API= [{ "type":"polling", "url":" "interval":1000 },{ "type":"remoting", "url":" "namespace":"Ext.app.chat", "actions":{ "main": [ {"name":"join","len":"0"}, {"name":"setName","len":"1"}, {"name":"send","len":"1"} ] } }]; Ext.namespace('Ext.app'); Ext.app.DIRECT_API= [{ "type":"polling", "url":" "interval":1000 },{ "type":"remoting", "url":" "namespace":"Ext.app.chat", "actions":{ "main": [ {"name":"join","len":"0"}, {"name":"setName","len":"1"}, {"name":"send","len":"1"} ] } }];

Direct Server Specification - Router Must accept two different types of requests. ▫JSON-Encoded Raw HTTP Post. ▫Form Post. Must handle file uploads when using form posts. JSON-Encoded Raw HTTP Posts must be decoded. Must accept batched requests. Must dispatch batch responses. Responses must be JSON encoded. Ext JS - Direct

Direct Server Specification - Router - Response Types Event ▫A JSON response containing two additional keys used to fire an event through the client. These keys are:  name – The name of the event to fire.  data – Data to be sent back with the response.  This is available as one of the event handler’s arguments.  This data is not decoded when it reaches the client. Do it manually if the data is JSON. Ext JS - Direct

Direct Server Specification - Router - Response Types RPC ▫A JSON response containing an additional ‘result’ key. Ext JS - Direct

Direct Server Specification - Router - Response Types Exception ▫A JSON response containing two additional keys.  message – The error message.  where – Details regarding where the error occurred. ▫Exceptions should only be thrown if the server is in debug mode. ▫Exceptions should be suppressed if the server is NOT in debug mode.  Output should also be destroyed before the exception handler ends, resulting in an empty response.  This can only enhance security. Ext JS - Direct

Direct Server Specification - Router – Other Response keys tid ▫The transaction ID of the request that has just been processed. action ▫The class/module of the request that has just been processed. method ▫The method of the request that has just been processed. Ext JS - Direct

Ext.Direct By Example Refer to external example. ▫URL: Ext JS - Direct

Questions? Ext JS - Direct

Thank You!