6 Cool Things Brewing in the RemObjects Labs
i can’t believe all the cool stuff that’s coming together at different fronts here at RemObjects, this week, so i wanted to give you guys a short glimpse at what’s brewing in the labs.
Carlo has been working on finishing off the Silverlight support in RO and DA (he blogged about it here), something we would have loved to ship in .31 but had to delay for time constraints. It’s finished now, allowing you to write in-browser Silverlight clients that can both call plain RO services, but also fetch and work with data from a standard Data Abstract middle tier server.
There’s no System.Data and DataSet on Silverlight, but full support for LINQ, so Data Abstract leverages our new DA LINQ technology that we shipped as a preview in May, to bring data across. What’s pretty cool is that this allows you to write query statements in your client that will execute on the server side — so if you write
from c in Customers where c.City = 'Berlin' select new class(c.Name, c.Address)
DA will really only fetch those records and fields from the server. Try that with LINQ to SQL, in a Silverlight client!
What DA SQL does is allow you to write standard SQL code on the client side, that will be run against the schema that your server publishes. Mind you, this is not SQL code that gets blindly passed on to the back end database, bypassing your business logic and security; this is SQL code that will be run on the middle tier to determine what data to fetch, based on the names defined in your schema.
For example, the above LINQ query might (mehind the scenes) generate the following DA SQL code and send it to the server:
SELECT Name, Address FROM Customers WHERE City = 'Berlin'
note how this looks like standard code you’d run on SQL Server, mySQL or elsewhere, except this time its run in the DA middle tier. (If, for example, your schema was defined to not allow access to the Address field, the above query would correctly preserve that restriction, and fail. Similar, the the client where to send a ‘DROP TABLE Customers’, the middle tier would kindly refuse to comply).
In other words, the client can use the power and flexibility of SQL, without the risks (and loss of functionality) that direct exposure to the back end database would bring.
Since Silverlight does not support synchronous network operations at all, this was a crucial part for getting RO and DA to run on the platform.
The RemObjects Client SDK for OS X is a fully native library implemented in 100% Objective-C, the de facto standard language for OS X development. It’s currently in beta (apply to join!) and we’re planning to ship a “production-ready” pre-release along with our August releases (followed by an official “release” version in November).
Work has also started on the Data Abstract client for OS X, which will sit on top of RO/OS X. But it’s too early to talk timeframes for that, i’m afraid ;).
Of course it goes without saying that this will be supported for all three platforms — Delphi, .NET and OS X.
So, what have you been up to this week?