martianboy / IranERP

1 stars 1 forks source link

IrERP Client Framework #9

Closed msdmazarei closed 12 years ago

msdmazarei commented 12 years ago

it is needed to make our own client framework, i will start implement IRERPClientFramwork based on SmartClient.

SmartClient is best Choice Now! cause:

[ from http://www.smartclient.com/technology/features.jsp ]

This is a partial list of major features that are rare or are unique to SmartClient (marked [u]). SmartClient also has several systemic advantages that cut across the entire product. Intelligent Data Managers (the "M" in Ajax MVC) [u]

data caching allows reuse of data in multiple components without server contact (example)
data paging and load on demand support for large datasets (example)
automatically switch to client-side sorting if search results fit in cache
automatically swtich to client-side filtering if search results fit in cache
automatically integrates updates into client cache (example)
customizeable data managers can be leveraged by custom components

Standardized Server Contact (the "C" in Ajax MVC) [u]

Standard, data-provider independant API for components to load and save data
    grid load, tree load, search form, combobox filter, databound select -> "fetch"
    edit record, grid inline edit, tree drag reparent -> "update"
    edit new record, create new row, drag copy -> "create"
mapping standard API to a data provider allows all components to use that data provider
create components and screens that can be used, unchanged, with any DataSource (example)
data providers can be swapped out with zero change to application
built-in support for WSDL and REST (XML or JSON) allows integration with any server
built-in SQL and Java Beans support via SmartClient Server

Shared Metadata Model (the "V" in Ajax MVC) [u]

forms, grids, trees, detail views share a single metadata model ("DataSource")
fields, titles, editability, validation and other metadata reusable across components
field by field overlay allows both shared metadata and per-screen customization (example) (docs)
components understand and navigate relations between objects (master-detail) (docs)
schema chaining to model inheritance, create customizeable and verticalized applications (docs)
extensible type system allows new basic field types (example)

SmartClient Server

client and server-side validation based on single declaration (DataSource) [u]
queuing and batching of operations to enable multiple CRUD operations in one HTTP turnaround [u] (docs)
bidirectionl Java <-> JavaScript type-safe translation
bidirectionl XPath binding to Java objects [u] (docs)
automatic compression for data and content
on the fly JavaScript stripping, combining, obfuscation [u] (docs)
automatic fallback protocols (eg iframes) for older browsers / browsers with strict security settings [u]
SQL table generation / data import for rapid prototyping

True Browser Insulation [u]

Fully shielded from cross-browser testing and debugging, based on 5 key pillars
See discussion under Advantages

Documentation

searchable, online documentation viewer with inline examples makes finding answers easier (example)
over 4x the documentation of any competing framework [u]

Advanced Skinning Features

Round corners on any component, drag resizeable, animation-capable [u] (example) (example) (example)
High quality, variable depth drop shadows (example)
Pervasive support for icons within components
Autofitting triple-image stretchable tabs and buttons (example) (example)
Pervasive support for hovers (example)

Background Download [u]

pre-load SmartClient while user views / interacts with plain HTML pages (docs)
hides download time during login process / splash page so that user perceives instant loading
for more significant to user experience than relative framework download size

Fluid Form Layouts

space filling layouts make maximum use of space (example)
create space-filling layouts that work even if some fields are not shown for current user [u]

Direct WSDL binding

direct integration with WSDL web services without an intervening server
automatic SOAP message formation from JavaScript data (eg from HTML forms)
automatic XML namespace handling

Metadata Import [u]

import existing metadata from XML Schema, Java Beans, other metadata sources (example)
rich import captures validation rules, enumerated types, pattern restrictions, inheritance
use schema chaining to layer presentation metadata over model metadata (example)

Relogin [u]

Special handling for a background Ajax operation that encounters session timeout
User may log back in and original request is retried automatically (no data loss) (docs)

Visual Builder [u]

screen building tool intended for functional design (docs)
zero-install, SmartClient application that runs in the browser
load, save and share screens, using Visual Builder as a central design hub for building mockups and "wireframes"
customize for your organization: custom components, custom properties, custom skins, custom events, custom actions
clean code generation: prototype can be refined and extended into final application, instead of scrapping prototype and starting over
wizards for binding to RSS, REST, SQL, SalesForce, and Kapow Robots [u]
pushbutton deployment to SalesForce [u]

Data cube / OLAP support u

multi-dimensional data model navigation
dual axis hierarchical dimensions, drill down, drill up
drag and drop dimension rearrangment
bi-directional cube-based load-on-demand
charting engine integration

Accessibility

UI components fully keyboard navigable out of the box
automatic tab order management handles hardest cases [u]
    modality and layered modality (modal dialog on modal dialog) (example)
    lazily created and lazily loaded UI components
    navigating data sets with data paging (example)
    dynamic reordering of components (example)
screen reader support via WAI (Web Accessability Institute) standards

History management

Back/forward navigation and bookmarkability
Flexibly tie history navigation to any application action

"Query by Example": Inline search row in grids u

maximally compact search interface
enabled by a simple property, deeply customizeable

Plugin Management (Applets, Flash, ActiveX controls) [u]

use plugins inside SmartClient layouts and windows, resize them, drag them, show and hide them
drag and drop over plugins without burnthrough, jitter or hung drags
drop onto plugins and receive normal drop events

Server push

high volume HTTP streaming
JMS integration

JavaScript class system

create and extend classes within the browser
real Super(), handling recursion and inter-recursion cases [u]

Incremental rendering in grids

Only currently visible rows are rendered
Allows data paging via a scrollbar instead of link-based paging
Allow browsing and editing data without arbitrary page breaks separating rows
Necessary for large trees (where link-based paging doesn't work)
Better performance in grids showing large numbers of rows
Incremental rendering and data paging works with variable-height auto-sizing rows [u]

Bi-directional incremental rendering [u]

Necessary for grids with many columns
Necessary for data cubes / OLAP navigation (example)
martianboy commented 12 years ago

اگر من تو این پروژه نظری می‌تونم بدم، و کلاینت سایدش به عهده منه می‌گم اسمارت کلاینت به درد نمی‌خوره. اگه می‌خوای نظرات خودتو اعمال کنی آزادی. من نیستم.

من از فیچرهای اسمارت کلاینت مطلعم. ولی اولا بیشتر این فیچرها به کارمون نمیان. دوما پیاده‌سازی اسمارت کلاینت و اصلا ایده‌ش مشکل داره. چون کلهم جاوا اسکریپته. چون کنده. چون کنترلش سخته. چون من راحت نیستم باهاش. اگر فریم‌ورکی که انتخاب می‌کنم من این فیچرها رو نداشته باشه هم خودم مسئولیتش رو به عهده می‌گیرم و حلش می‌کنم.

جان من همون سکیوریتی رو بنویس اینقد اینترفیس بازی نکن!

martianboy commented 12 years ago

فیچرهای اسمارت کلاینت به درد کسانی می‌خوره که از وب سر در نمیارن. فقط با ویندوز و مدل یوزر اینترفیس ویندوزی کار کردن و حالا می‌خوان تحت وب کار کنن. من از اون دسته نیستم. می‌دونم چی‌کار کنم تو پلت‌فرم وب. اچ‌تی‌ام‌ال و سی‌اس‌اس رو بلدم. می‌دونم کجا و چطوری ازش استفاده کنم و کجا جاوا اسکریپت به کار ببرم. تو این شرایط نیازی به استفاده از یه غول بی‌شاخ و دم تماما جاوا اسکریپتی نداریم. ده مگ سورس جاوا اسکریپت! یک مگابایت فقط جاوااسکریپت لود می‌کنه برای صفحات. وای به روزی که کش پاک بشه یا اکسپایر بشه!

msdmazarei commented 12 years ago

عزیز جان شما صاحب اختیاری هرطور راحتی طبق توافق عمل می کنیم