[This article is still in the process of editing.]
- JayData as client in browser and apps
- JayData as client in the server tier
- JayData as server in the server tier (new in v1.2)
What’s new in JayData 1.2
JayData core: all async operations now support promises
JayData core: Q.js promise library is supported via the qDeferred.js module
JayData already had support for jQuery.deferred for the Queryable.toArray and Queryable.forEach async operations. Now all the async ops (first, single, remove, saveChanges, etc) support deferred return value. Also you can swap jQuery.deferred to Q (another promise library with the same syntax). See this post for details.
JayData core: convenience “order” function on Queryable
Instead of Queryable.orderBy and Queryable.orderByDescending that take a field selector predicate you can use Queryable.order to sort by exactly one column. The syntax is: Queryable.order(“ColumnName”). To reverse sort place a dash as the first character of the column name: Queryable.order(“-ColumnName”)
JayData core: Context and set scoped events
JayData now provides several lifecycle events regarding entity creation, update or delete. Use the context scoped events for notification or the set scoped events to actively modify the behavior of an operation with altering the data before it gets to the wire or cancelling the operation. Read the whole story here.
JayData knockoutjs integration: Announcing JayGrid 1.0 Beta
We have created a handy grid component that provides customizable CRUD operations for arbitrary JayData entities. All of the 7 providers are supported as data source. Building a simple CRUD application has never been so easy before. Read more here…
[Documentation is yet to be released.]
OData provider: optimistic concurrency, EF [Timestamp] attribute support
JayData now fully supports OData/EF optimistic concurrency model to detect server side changes in the model. Read this blog post for more.
OData provider: support for MERGE, DELETE and POST methods
Instead of sending all updates with $batch, JayData now support the RESTful invocation of update, delete, create operations with MERGE, DELETE and POST methods respectively if there is only one item in the change tracker. Multiple items still use $batch. See the details here.
OData provider: dynamic OData metadata resolution
OData provider: support for Service Operations with complex type array results
Now you can use OData services that have service operations with a return value of type “array of complex types”. See this blog post on how to work with server side functions (aka service operations) with the help of JayData.
New: OData provider supports $data.Object type for untyped JSON transfer
New JayData provider: mongoDB provider
FIX JaySvcUtil: XML namespace agnostic approach is applied due to the ever changing default namespace of the OData metadata document
FIX ModelBinder: correctly finds converters for primitive types in all cases
FIX OData provider: provider now only submits changed properties to the server (not all loaded properties)
FIX OData provider: supports Titanium environment’s weird way of passing XHR response data
FIX OData provider: The include statement “A.B.C” where B.C is a complex type results in a correct “B.C” member
FIX OData provider: $count result type is now number
FIX SqLite provider: DropTablesIfExist strategy did not work under Titanium.
FIX mongoDB provider: equalTyped (===) expression is supported
FIX mongoDB provider: whereCompiler mistreated arrays
FIX mongoDB provider: ObjectID type when it is also a key is correctly serialized in all cases
FIX mongoDB provider: configCompiler now consults type resolution when encountering a non-primitive type
FIX mongoDB provider: searching a value in array typed fields now converts to mongoDB partial array equality expression instead of array index expression.