void wrote:
Otis wrote:
void wrote:
Thank you Walaa, i love LLBLGEN Support Team.
But i hate LLBLGEN documentation.
There is nothing detailed explained...
Regards...
huh? it's over 600 printed pages. It would be too detailed if we put in any more details. Sure not everything is documented till the last detail, but that's never the case with any framework (take MSDN for example, there's hardly any in-depth docs besides reference manuals).
You could look at the reference manual as well of our framework which would have given you this property
(and the generated code contains XML documents which also give you more info if you generate a reference manual from that). It's a lot, I admit, but that also means it takes a lot of time to read everything.
Thank you for explanation, but i don't want to provoke you...
So you admit it, there is a lot of readings and you can never known where to go and find an exact answer.
No I don't admit that there's never an exact answer, I didn't say that. I said there's a lot of information to read and most people won't read everything because it's too much and we don't expect one to do that. That's also why we split up the docs in two: a user manual (the 600+ pages) and a reference manual.
I've read complaints about the docs for years that the docs are not containing everything etc. etc., and frankly, I can't understand most of them: if I compare our documentation with the docs shipped with our competitors, it looks like we ship a full book and they ship a flyer. Remember, all 600+ pages are user documentation, not reference documentation, that's another manual.
For example; SaveEntity method. it has 5 overloads. let us take 3. one in this case
SaveEntity(IEntity2 entityToSave, bool refetchAfterSave, bool recursive);
what is exact mean of recursive ?
Saves sub entity collections ? (XEntity.YCollection)
Saves entities coming from foreign key relation ships ? (XEntity.ZEntity)
Let's check the reference manual:
recurse
When true, it will save all dirty objects referenced (directly or indirectly) by entityToSave also.
So all indirectly referenced entities will also be saved. I'm sorry, but 'recurse' is suggesting a recursive save, and this explanation of indirectly referenced entities also suggests one thing: not only the entity passed in is saved, but also the indirectly referenced entities and the directly referenced entities.
Then check the normal docs:
http://www.llblgen.com/documentation/2.6/hh_goto.htm#Using%20the%20generated%20code/Adapter/gencode_usingentityclasses_adapter.htm%23Creatingnewmodifyinganexistingentity
I quote:
Recursive saves are performed by default. This means that the DataAccessAdapter SaveEntity() logic will check whether included entities also have to be saved. In our examples above, this is not the case, but in your own code it can be. If you do not want this, you can specify 'false' for recursive saves in an overload of SaveEntity() in which case only the specified entity will be saved.
So, it's there, but you might not have read it (yet) or overlooked it. That's ok, you can ask questions here and we'll point you to the right page or give you hints etc. We're all developers, we know what we want in documentation, however as the set of features is massive and the material often complex, it's not easy to create documentation everyone will understand: some find it easy, others have a hard time and wonder why the documentation is so complex. There's no solution to this.
I think you are looking to subject from just your perspective...
Of course, that's the only one I can possibly use. Remember, you look at it in a different way than somebody else. You might overlook things (like pointed out above) or misinterpret things other people won't. As we can't look into the heads of everyone, we can't know what can be improved and more importantly: in what way. That's why we tried to explain things first through concepts, so people can learn about the ideas behind the software. The manual isn't build in in this order for nothing. Is it still readable if someone skips the concepts section? I don't know, but should the manual be understandable if someone does? If so, how will you explain ABC if ABC requires you to know what XYZ is first? You explain it there again? No, you either link to the concepts or assume XYZ is understood.
Also keep in mind that our docs were first written in 2003 and have seen improvement over improvement during the years, either through feedback from customers, our own re-reads, when people ask a lot of the same questions here etc. etc. It's not that we look at the docs as "great, we're done, ship it!" and never look back.
You know your forum's pages more then your documentation's has. There are lot of subjects in the forum, which are suppose to be in your documentation...
Every feature is documented, so users can get started. We have the reference manual (several actually) which explain things in detail if you want to look things up like a method. That's the same strategy chosen by Microsoft for example.
LLBLGEN still best choice, but we love to see some improvement...
If something is worded wrong or unclear, we'll rewrite the section(s). However your descriptions are too vague. The features described are sometimes complex, I mean how do you describe advanced prefetch paths to a person who thinks in SQL queries? That's a challenge while a person who thinks in object graphs might understand it after 3 sentences. It's hard to find the middle ground there where most people understand it. Trying to write a manual which explains everything in an understandable fashion so it's understandable for everybody is not possible for these kind of complex systems.