Ext JS - Direct

+3

No comments posted yet

Comments

Slide 1

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

Slide 2

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

Slide 3

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

Slide 4

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

Slide 5

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

Slide 6

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

Slide 7

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

Slide 8

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

Slide 9

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

Slide 10

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

Slide 11

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

Slide 12

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

Slide 13

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

Slide 14

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

Slide 15

Direct Server Specification - Configuration - Programmatic Ext JS - Direct

Slide 16

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

Slide 17

Direct Server Specification - Configuration - JSON Ext JS - Direct

Slide 18

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

Slide 19

Direct Server Specification - Configuration - XML Ext JS - Direct

Slide 20

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

Slide 21

Direct Server Specification - Configuration - Metadata Ext JS - Direct

Slide 22

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

Slide 23

Direct Server Specification - API Ext JS - Direct

Slide 24

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

Slide 25

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

Slide 26

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

Slide 27

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

Slide 28

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

Slide 29

Ext.Direct By Example Refer to external example. URL: http://172.29.29.125/simplecore2.1/sandbox/direct/ Ext JS - Direct

Slide 30

Questions? Ext JS - Direct

Slide 31

Thank You! Ext JS - Direct

Summary: Its all about Ext.Direct - The new JSONRPC available with ExtJS 3.0!

Tags: php javascript web 2.0 ajax ext js json rpc server

URL:
More by this User
Most Viewed