2 Mats >>>Actually, objects in NPersist are not aware that they are being persisted, as such...they /do/ however have to let the framework know when a property is being written to. What framework Mats ? Persistence framework ? :))
"Mats, your intrest in supporting ECO puzzles me. " ECO is not just an O/R Mapper but a full blown Business Object Framework (BOF) (which is the direction many O/R Mappers start heading once they've got the basic O/R mapping features in place). FOr example,
I've often argued that stuff like DataBinding and Remoting support are not really O/R mapping features at all and that adding such support is to head in the direction of implementing a BOF rather than an O/R Mapper (albeit a BOF with an O/R Mapper in it) -
noting, of course, that there's nothing negative with heading in this direction. ECO supports a lot of very advanced features that I know I certainly won't be offering anytime soon with NPersist and ObjectMapper, like real versioning with Undo-Redo functionality,
OCL (Object Constraint Language) support, synchronized object caches and other things like the integration into visual designers and the other stuff you mention. Believe it or not, but I'm not really in this business to make money anymore - the 99$ I plan
to charge for ObjectMapper won't make me rich in a hurry. Today, I'm in it because I'm just really interested in O/R Mapping. Thus, I'm not primarily interested in ECO from any commercial point of view. I see ECO as an extremely interesting BOF that anyone
who's "into Borland" at all should look very closely at. If you're not into Borland, that's one thing I suppose, but if you are, then ECO is certainly a very capable framework. I've learned lots from the ECO guys and I've developed a plugin (based on ObjectMapper
and NPersist technology) for the upcoming version of Borland Developer Studio (codenamed "Diamondback") that will wrap existing databases with an ECO model, but other than that I don't expect to gain anything more from my interest in ECO or from the ECO support
incorporated into ObjectMapper. I'm just an enthusiast who also happens to be a vendor :-) "What framework Mats ? Persistence framework ? :)) " Yes, sorry for being unclear there. The domain objects have to let the NPersist persistence framework know when
their properties are being accessed. /Mats
Mats, No no I'm not from Borland. It's Boland without the 'r' :). I did check ECO when it was released with C# builder, but despite its power it had 2 huge issues at that time: ASP.NET didn't work well with it (as it seemed designed for Winforms only) and it
didn't support existing database schemes. Plus it was unstable and clumsy to work with so I didn't consider it a viable option. Perhaps it's better now. Maybe I'll give ECO II a try when it is released.
2 Mats >>>"What framework Mats ? Persistence framework ? :)) " >>>Yes, sorry for being unclear there. ... Forget it. :)) It was a sarcazm. I just wanted to say that if my domain objects have to do anything for your persistence framework, they are definitely
aware about being persisted. Anyway, It is not really a big deal on dotnet land. Probabaly I'm a bit picky on this issue, because of my java background.
Tijn, >No no I'm not from Borland. It's Boland without the 'r' :). < Whoops, my bad! Sorry about that (but it can't be the first time that happens ;-) >I did check ECO when it was released with C# builder, but despite its power it had 2 huge issues at that
time: ASP.NET didn't work well with it (as it seemed designed for Winforms only) and it didn't support existing database schemes. Plus it was unstable and clumsy to work with so I didn't consider it a viable option. Perhaps it's better now. Maybe I'll give
ECO II a try when it is released.< Well, with ECO II the ASP.NET support seems to work fine and I know for a fact that you can now wrap existing databases, because I have implemented the plugin for ECO that does it ;-) Vagif, Hey, you can't go around using
subtleties like sarcasm and stuff on a thickhead like me ;-) Out of curiosity though - how /do/ they do it over in java land? /Mats
>>>Out of curiosity though - how /do/ they do it over in java land? Once upon a time in far far java land, Big Mighty Vendors decided that they know better what is good for developers. They decided that the more interfaces the better for them. Cause now they
can do more Powerfull Things. And Big Mighty Vendors created a monstrosity that had interface coming out from every hole in it. And they called it EJB ! Well, very soon it turned out that using those EJB was much more pain, than benefits they provided. Everybody
started to hate EJB and its persistent wing - entity beans. That's how Hibernate appeared. Hibernate now is so popular in far far java land that even here, in dotnet land people are well aware of it. I personaly was burned by experience with ejb. And I personally
saw light in my projects when I started use Hibernate. So you should understand my feelings towards interfaces that are designed not for my good, but for a good of a tool vendor. I mean I have nothing against those interfaces, as soon as they do not clutter
my code. But if they do, I better off with maybe not so powerfull, and not so performant and not so feature rich tool. But again, this is me. And in this new (to me) dotnet land maybe people feel comfortable with such approach (having in their code vendors
interfaces). Actually you Mats will be able to tell me more about it. SInce you are an ORM vendor. And I recal you said something about many people hesitating use of your tool exactly for this reason. Can you provide more details ? How many times you heard
that requirement (no interfaces on domain model please!) ?
Well, I've spent most of the afternoon reading this thread and have really learned a lot. I sure have a lot to learn yet, though. I've been developing basic client/server Win apps for my company for the last 2+ years using VB.NET. For a number of reasons (most
notably being new to .NET), I just followed samples and did the best I could. They wanted something quick and dirty, so thats what I built. I've spent the last 2 years supporting it (among other things), but we're now going to expand and build an intranet
using ASP.NET (in C#) and SQL Server 2000. I want to go the proper route this time (and have been given the green light to do so). This will be the first real ASP.NET app I will write using n-tier and I've been looking for ways to cut down on my coding/development
time. This seemed like the perfect thread for me at this moment, so thanks to all that participated. I've now downloaded the demos for Paul Wilson's OR Mapper, LLBLGen Pro and CodeSmith. Over the next few weeks, I'm going to try each of these products and
see how what I like, what I don't like and likely ask a number of questions of the developers. I haven't decided my final approach for my project, so I hope working with these tools will help me decide what will work best for my situation. I don't know if
anyone is interested, but I may post some of my thoughts on each product and what I finally decided to use. Just as an aside, you'll notice I didn't include Thona's product. Honestly, after reading Thomas' posts, I didn't feel I would even want to support
a product from someone like that, no matter how good it may or may not be. Being that I'm new to this whole thing, I will likely be called stupid and many other things if I asked any questions of him. I understand the theory behind all (much of?) this stuff,
but this will be the first time I've done it all myself in a practical situation, so I'm sure I'll have a number of "newbie" questions. I think Frans offered Thomas some advice (and something all business people need to understand) in an earlier post (though
not addressed to Thomas): Furthermore, and this is also to ease x-tensive's mind after that last remark ;), for being succesful, you don't start a feature-war with your competitors. "If I have all those features and more, I'm king and win all the customers!",
no that's not it. Have the features the customers WANT and NEED and ask a reasonable price and provide good quality. That's not to say, you shouldn't pay attention to competitors and pay attention to what you say in public
(i.e.: PR) or what you do with your time. But that's with all in life: you only have 24 hours in a day, use them wisely: invest time in the right replies. Not to sell a product, like the tierdeveloper spammers do, but to act professional, to show the
audience you know what you're talking about. Thanks for listening.
2 jammycakes >>>I tried the access="field" attribute for both the and elements. It didn't like it, it was still looking for a property rather than a field. I tried access="field" and it did easily work for me. Although i get at first error because forget to
change something in the mapping file. This reminded me your post and I thought that you might had same problem (wrong mapping file synthax) Here's how it works. Suppose you have table column named colum_name. You create for it private field in class, named
privateField and public property, called PublicField Here's 2 different mapping entries. one for property access: one for field acces : Notice that if you try to add access="field" to first entry (as i did at first) it will give error, because you also have
to change name= clause.
OK thanks, I've just tried it again and it does work. Didn't work first time round though but I was sure I did everything you said. Or maybe I didn't, I can't remember, but it does work at any rate. One thing I'm a bit unsure about though with NHibernate is
its ability to handle lazy loading of child collections. As far as I can tell this is one of the things that depends on Aspect# -- is that correct? Mats: I had a look at NPersist yesterday and it looks like a very capable mapper. Implementing interfaces and
calling methods from the property setters is something I could possibly live with even if it is a bit of a faff. However I found the mapping file schema very cumbersome in the absence of a visual designer. My main bones of contention are a) that you're using
XML elements rather than attributes for a lot of things (attributes with default values would make for a much cleaner syntax IMO) and b) that I have to declare everything twice, once for the entities and once for the underlying tables. I see you're using XML
serialization so attributes and default values should be fairly straightforward, but using elements and explicitly specifying all the values in every case made the example in the "Introduction to NPersist" seem a little bit eye-watering, to say the least.
I'd take another look at that particular document if I were you, remember it's going to be one of the first things people like me turn to when evaluating your mapper, and first impressions count for a lot! I must admit I guess polymorphic persistence is probably
more a luxury than a necessity, which is why I was "wowed" by NHibernate. There are alternative design patterns that you can use (remember what the GoF book says, favour abstraction over inheritance) so my initial reaction was "well if it can do that, it must
be able to do quite a lot of other things." Probably a bit naive, but there you go...
Thona takes a lot of heat on these boards for some of his posts - and rightly so in some/many situations. However, I did not experience any of that nonsense when I was evaluating his product and asking questions about its features and use. Although you may
not like the "personality" that Thona presents on these boards, keep in mind that this is not his customer base/support forum and not necessarily how he deals with his customers. I ended up going with a different mapper than EntityBroker because of the design/development
paradigm it supported and because it was more complex than I needed - not because of its author. EntityBroker is one of the more feature rich mappers out there and if you need its feature by all means at least evaluate it and see how good/bad the support is
during your evaluation period! Smoke
Vagif Verdi
Member
210 Points
42 Posts
Re: Your favorite O/R Mapper?
Oct 13, 2004 07:45 PM|LINK
matshelander
Member
235 Points
47 Posts
Re: Your favorite O/R Mapper?
Oct 13, 2004 08:24 PM|LINK
http://www.npersist.com - free open source O/R Mapper for .NET
http://www.objectmapper.com - GUI O/R Editor supporting NPersist, NHibernate, ECO II
Tijn
Member
142 Points
31 Posts
Re: Your favorite O/R Mapper?
Oct 13, 2004 08:43 PM|LINK
My blog
Vagif Verdi
Member
210 Points
42 Posts
Re: Your favorite O/R Mapper?
Oct 13, 2004 09:44 PM|LINK
matshelander
Member
235 Points
47 Posts
Re: Your favorite O/R Mapper?
Oct 13, 2004 10:14 PM|LINK
http://www.npersist.com - free open source O/R Mapper for .NET
http://www.objectmapper.com - GUI O/R Editor supporting NPersist, NHibernate, ECO II
Vagif Verdi
Member
210 Points
42 Posts
Re: Your favorite O/R Mapper?
Oct 13, 2004 10:45 PM|LINK
skiloff
Member
30 Points
6 Posts
Re: Your favorite O/R Mapper?
Oct 14, 2004 12:55 AM|LINK
Vagif Verdi
Member
210 Points
42 Posts
Re: Your favorite O/R Mapper?
Oct 14, 2004 05:35 AM|LINK
jammycakes
Participant
1315 Points
274 Posts
Re: Your favorite O/R Mapper?
Oct 14, 2004 11:26 AM|LINK
rsmoke21
Contributor
3931 Points
792 Posts
Re: Your favorite O/R Mapper?
Oct 14, 2004 12:59 PM|LINK