2007-02-07

ECO book at last!

Hi all

I have finally reached a point where I can dedicate a few hours each today to "something new" and have decided that the ECO book I have always wanted to write would be great fun. My first idea is to create 2 or 3 separate items:

Title: ECO jump start
This would be in paper / PDF format and would contain a set of exercises for a new user to follow in order to get started with ECO as quickly as possible. It would basically cover creating a simple model, prototyping using auto-forms, using the different handles, databinding, parent-child grids, creating/evolving the DB, OCL / code derived / reverse derived attributes, and stuff like that.

Title: ECO API
This would be an electronic format which would basically be a "Press F1" reference.

Title: ECO book
This would either be a paper/pdf format or, if possible, part of the ECO API document. It would be a technical overview of the framework + its services and abilities. I imagine it might be similar to my ECO Services chapter, except I'd probably include a set of "How to" items at the end of each chapter.


The plan here is that we get

1: An easy way for people to assess exactly what ECO does, and to quickly start creating simple "test" applications.
2: A complete reference for information on specific items where you would normally find yourself hitting F1.
3: A conceptual overview of the whole thing, explaining how it all works together and how to achieve certain goals.


This is what I have in mind at the moment, but it could all change based on the feedback I get :-) The above is basically the order I learned in when I learned Bold and then later moved over to ECO, it goes from simple through to in-depth. What I want to know is

A: Do you think I should go for 3 separate items or try to combine the last 2?
B: Is there anything I have missed?
C: What information would you like to see?

As a closing note I will paste in a table of contents I wrote 729 days ago when I first decided this would be a good idea if only I had the spare time :-) It's not necessarily what I still have in mind, but it might get some brain cells bubbling in your heads to get us all started off. If there are any topics you guys mention that I have missed I will add them to my list. Due to its age (1 day short of 2 years old) it is based on ECO II, so there are lots of nice new ECO III items I can put in such as creating your own services, state machines etc.


An overview of ECO
What is an ECOSpace
Modeling an application
Attributes, Methods, and Relationships
OCL Derived attributes
Code derived attributes
Reverse derived attributes
Inheritance Vs Composition
Packages
Creating a simple ECO WinForms app
Creating a simple ECO ASP.net app
Creating a simple ECO Webservices app
Borland.ECO namespaces
Handles
ObjectRepresentation
Persistence
Services
Subscription
UmlRt
WinForm
Persistence
Changing persistence
Evolution
Custom persistence mapping - AutoInc etc
Reverse engineering an existing database
OCL



Also need to include multi-user support, optimistic locking, change propagation, reconciliation, object locking regions, writing your own services + OCL extensions.



Thanks for your feedback!


Pete

12 comments:

Olaf Monien said...

Reverse engineering is important to dicuss. Maybe a section "How to work with existing databases" is a good idea.
Most users I talked to re ECO said something like, well we this existing Database and a few old tools, which need to be kept operational.

Provising ideas/strategies here is important - imo.

Sham said...

A sequence of videos to accompany the jumpstart would further assist newbies to Eco.

Scott said...

Glad to hear this Pete. :)

I think both Olaf's and Sham's ideas are good, but that with video's some people with hearing problems may not benefit if there isn't text apppearing in boxes during the video's as well.

Lovely plan though mate!

Maxim Shiryaev said...

Great idea!

And some complex example as a result of all the book. Like Java's PetShop.

Dmitriy Nagirnyak said...

I think there's enough stuff for ECO beginners. Alois' book is very good one. So I believe that ECO community needs more knowledge around how to develop more complex systems with large amount of data.

So I think following points would be good to take into account:
1. Performance of ECO App.
2. Handling billions of records in ECO.
3. Multiuser environment with large amount of data (including load balancing).
4. Hooking into SQL generation and ECO's internal stuff.
5. ECO Best Practices.


As for your questions:

A. I think you should minimize "getting started" content and write more advanced topics because of you really can do it.

B. Third-Parties available to use with ECO such as your Extensions.

C. The information I would like to see is above.

Cheers.

bk said...

This is the best news I've heard all week.

I have to disagree with Dmitriy Nagirnyak. I do not think there is enough "clear" information about eco for beginners. I have read a lot of your help in the eco news group and I like your clear writing style. I think beginners especially will value this book. That is not to say the more in depth material is not wanted as well. I just want to make it clear that the beginner stuff is needed too.

Thanks for the commitment to write the book and I look forward to purchasing one.

Dave said...

Great to see you undertaking this, Pete. I can't think of many people more suited to the task.

One thing I'd love to see included, possibly as an appendix, is a section containing common boilerplate models that people can use in their ECO apps. For people new to MDA, general modelling hints and tips will be greatly appreciated I'm sure.

Also, if there is anything I can do to help, feel free to ask. My time is pretty limited these days, but I'll gladly do what I can to help get this project off the ground.

Oleg Zhukov said...

Since you Peter have great experience with ECO, it would be appreciated if you show best practices how to use ECO. And accompany your book with many real-life (more or less :-) examples.

Mohammed Nasman said...

Great news Pete,

I would like to see more practices in ECO area, so you may add another section like "ECO In real world application" and that start with easy application to more complicated one, this will be very usefual to know the power of ECO and convince other to see the real benefits if they use ECO

Peter Morris said...

I don't really believe in packages that are reusable across multiple projects. I think that these packages are better suited to different editions of a single application for example.

For classes that occur in unrelated applications I would definately use patterns instead. Here is a link to a really nice book I have:

http://www.amazon.co.uk/Enterprise-Patterns-MDA-Archetype-Technology/dp/032111230X


Pete

Sham said...

A few case studies would be good (I should have done one ages ago). Demos are good but actually seeing how ECO is used in real life apps will not only show the power of ECO but will also educate others on how to tackle similiar problems.

Diego M. Garcia said...

Very nice news Pete ;)
Its amazing what you have been doing :D

This for sure it will be a must have.

Regards,
Diego M. Garcia