What The Heck Is "Core Data" ... ?
... and should I be getting exicited?
I'm coding currently in WebObjects, and sure, EOF is pretty snazz [if you have the time, a company that's willing to subsidize your NSLearningCurve] ... and being able to use the huge Java library with is is also, very snazz ...
But web interfaces for business apps are, well, not the best, and using Java Clients is only somewhat better ...
So, to be honest, being a little out-of-the-loop (forgive me)I've heard what sounds like rumblins of Core Data being a kind of vastly expanded 21st century version of EOF, written in Obj-C, that would do wonders to solve the enterprise software problems, and would likely integrate with many other software packages that one at first blush would never assume to benefit much from Enterprise abilities - yet somehow, vastly extending their powers.
Is it a dream?
Thanks In Advance
OT
I'm coding currently in WebObjects, and sure, EOF is pretty snazz [if you have the time, a company that's willing to subsidize your NSLearningCurve] ... and being able to use the huge Java library with is is also, very snazz ...
But web interfaces for business apps are, well, not the best, and using Java Clients is only somewhat better ...
So, to be honest, being a little out-of-the-loop (forgive me)I've heard what sounds like rumblins of Core Data being a kind of vastly expanded 21st century version of EOF, written in Obj-C, that would do wonders to solve the enterprise software problems, and would likely integrate with many other software packages that one at first blush would never assume to benefit much from Enterprise abilities - yet somehow, vastly extending their powers.
Is it a dream?
Thanks In Advance
OT
Comments
And yes, the interoperation possibilities between apps are about to get frighteningly wonderful.
Mike
Originally posted by MPMoriarty
So it will be easier for one application that uses CoreData to talk to another application also using Core Data to share data back and forth? Sorta like how iLife's apps all connect to each other's libraries?
Core Data will not make inter-app interaction any easier. The only thing it will do is to allow people to build small database-backed applications quicker. Just because two applications use a particular database (say MySQL) does not make it easier for those two applications to talk to another... You still have to do all the work... and playing with another application's underlying data is a very dangerous proposition unless there is a lot of consistency-keeping work going on.
Originally posted by MPMoriarty
So it will be easier for one application that uses CoreData to talk to another application also using Core Data to share data back and forth? Sorta like how iLife's apps all connect to each other's libraries?
It's possible. Apparently, the iLife apps already communicate with each other by passing XML around, so it seems like a straightforward enough evolution to serialize (I prefer Python's term: pickle) your data and hand it off to another app that can read it with a trivial translation layer, all through Core Data.
That's wide-open speculation, though, since I can't poke at Core Data myself. Yet.
Seriously, nothing is ever going to make it painless, but this is a huge leap forward for having applications share data.
Is CoreData just an easy way to make database backends for your applications?
Mike
Originally posted by MPMoriarty
Ok, if CoreData is not going to make applications able to communicate better with each other, why does everyone I hear talking about it keep pushing this benefit?
Is CoreData just an easy way to make database backends for your applications?
Mike
... actually, if I've read Kickaha's comments correct, being able to load up a complete foreign object graph, and make use of it - rather than just writing to an API - will make all kinds of sharing between apps that make use of Core Data much easier.
That is, if I've understood correctly?
Secondly, CoreData isn't a database *engine*, it's just a way of getting your data between disk and application - a way to save files easily... it just so happens that one of those ways is saving it to a database *format*.
SQLLite will be the actual database, not CoreData.
Some of my reading lately led me to believe that a spreadsheet and database were similar when viewed from the back-end of things. As you see, I've never written a line of code in my life.
Originally posted by Kickaha
Well you can create a simplistic table-based database with singular axes in two coordinates and call that a spreadsheet... but that'd be silly.
Not to mention denormalized, which is the antithesis of database design.
Originally posted by Kickaha
Well, um, first off, a database and a spreadsheet are two very different beasts at heart.
Secondly, CoreData isn't a database *engine*, it's just a way of getting your data between disk and application - a way to save files easily... it just so happens that one of those ways is saving it to a database *format*.
SQLLite will be the actual database, not CoreData.
But if CoreData can pass data schemas around, then could someone analyze the schemas for Mail & iCal and create a new front end for this data?
Going a little furthur () down this road, could an app kickstart Mail and have it download all the new mail, then pull this data? Maybe somehow add email appointment addition functionality like what's available in Notes? Will we finally be able to set, request, accept or deny appointments without using MS Entourage?
But the most interesting part was that you can drag an entity to a window in interface builder and the user interface need to update/edit/list the data in the entity will be automatically created. The Undo/Redo functions is even handled for free.
CoreData work seemlessly with the Model/View/Controller of IB.
The guys doing the demo said something like : it's EOF done right.
It's really powerfull cause it will shorten development. But something I've not seen mention is its ability to be expanded beyong the Binary/SQLLite/XML storage. I would like to see the capacity to use JDBC/ODBC/native database support. The ability to write SQL adaptor for CodeData.
I think we will see this someday (for the final release or in the next major OS release).
But the big thing is that it was really impressive in term of simplicity. It's the kind of thing you figure out really quickly. Not that kind of concept that take days to figure out...
Originally posted by Kickaha
I think what you'll see is CoreData as the consumer OS technology, and a beefed up version with DB abstraction as the kernel of a vastly revamped WebObjects. One base technology to maintain, but two different levels of power for two very different markets.
Drool.
Though, this sounds like they're just - more or less - doing what NeXT was doing a decade ago, but including better compatability with XML and few other modern conveiniences ...
Not that that's necessarily underwhelming - in fact it could be a very powerful thing: but is that in fact,what it is?
Where do you go to read about this stuff - a quick search of Apple's dev pages didn't turn up much.
A FAQ, A FAQ, My Kingdom for a FAQ!
CoreData in not a revolution, for the most part it does what other data access framework does.
But the interesting thing is that it is done the apple way that is: any developer can use it very easy to handle the persistence of its data and the related mechanisms.
It could shorten the time needed to develop an application (if it doesn't need to be ported to other platforms).
With others technologies like Core Image/Core Video, it bring to the hand of developers powerfull yet simple API to build tomorow applications.