Is it time for EF or maybe...
-
Rocky judging by the responses and your question I suspect few really understand what CSLA is or does. We use it and it's perfect for the right scenarios which are typically big data centric apps with lot's of forms where data is entered and retrieved and reported upon. I.E. business apps. (It does not generate any code for you)
"Creating your own blog is about as easy as creating your own urine, and you're about as likely to find someone else interested in it." -- Lore Sjöberg
John C wrote:
...I suspect few really understand what CSLA is or does...
Yeah, i sure as hell don't have a clue. Opened the web page linked to, and fell asleep by the time i got to the fourth paragraph (the third seemed to indicate it might be some sort of general-purpose persistence library, but didn't really elaborate on that). I did notice the six book cover images where I might have expected to see code or a diagram or something. Edit: Ok, read the Wikipedia page*... So it's a "framework" in the true sense, a grab-bag of interdependent features useless by themselves but intended to guide the structure of custom code. Actual features are persistence, simple data structures, undo/redo, and simple rule / validation support. I suspect those that have been using it for years love it because it all works nicely together, while those that don't use it won't use it because it's useless unless you've designed and coded your app inside its structure from the start. *I got curious about what the initials stood for...
Last modified: 23mins after originally posted --
-
Rocky judging by the responses and your question I suspect few really understand what CSLA is or does. We use it and it's perfect for the right scenarios which are typically big data centric apps with lot's of forms where data is entered and retrieved and reported upon. I.E. business apps. (It does not generate any code for you)
"Creating your own blog is about as easy as creating your own urine, and you're about as likely to find someone else interested in it." -- Lore Sjöberg
John C wrote:
perfect for the right scenarios
Isn't everything? :-D Are you learning to speak Marketing?
John C wrote:
I.E. business apps.
But he said "mostly ASP.NET Web Forms".
-
John C wrote:
perfect for the right scenarios
Isn't everything? :-D Are you learning to speak Marketing?
John C wrote:
I.E. business apps.
But he said "mostly ASP.NET Web Forms".
PIEBALDconsult wrote:
Isn't everything? Are you learning to speak Marketing?
Translation: It isn't a general purpose tool, it's a specific tool for a specific type of app, i.e. business apps.
PIEBALDconsult wrote:
But he said "mostly ASP.NET Web Forms".
And...your point being? There are a great many business apps consisting of Asp.net web forms, perhaps you weren't aware or perhaps I don't understand what you're getting at. Man the levels of sheer analness around here today are astounding. :) You guys would be a fun crowd at a party. ;)
"Creating your own blog is about as easy as creating your own urine, and you're about as likely to find someone else interested in it." -- Lore Sjöberg
-
John C wrote:
...I suspect few really understand what CSLA is or does...
Yeah, i sure as hell don't have a clue. Opened the web page linked to, and fell asleep by the time i got to the fourth paragraph (the third seemed to indicate it might be some sort of general-purpose persistence library, but didn't really elaborate on that). I did notice the six book cover images where I might have expected to see code or a diagram or something. Edit: Ok, read the Wikipedia page*... So it's a "framework" in the true sense, a grab-bag of interdependent features useless by themselves but intended to guide the structure of custom code. Actual features are persistence, simple data structures, undo/redo, and simple rule / validation support. I suspect those that have been using it for years love it because it all works nicely together, while those that don't use it won't use it because it's useless unless you've designed and coded your app inside its structure from the start. *I got curious about what the initials stood for...
Last modified: 23mins after originally posted --
-
Rocky judging by the responses and your question I suspect few really understand what CSLA is or does. We use it and it's perfect for the right scenarios which are typically big data centric apps with lot's of forms where data is entered and retrieved and reported upon. I.E. business apps. (It does not generate any code for you)
"Creating your own blog is about as easy as creating your own urine, and you're about as likely to find someone else interested in it." -- Lore Sjöberg
Are you still happy with CSLA John? I remember you mentioning it some time ago. I've used it for internal reporting and data-entry apps at two gigs in the past and found it solid and like anything not designed by me, a bit quirky :). I am just curious because I haven't had the chance to give it a run in at least two years.
And above all things, never think that you're not good enough yourself. A man should never think that. My belief is that in life people will take you at your own reckoning. --Isaac Asimov Avoid the crowd. Do your own thinking independently. Be the chess player, not the chess piece. --Ralph Charell
-
Are you still happy with CSLA John? I remember you mentioning it some time ago. I've used it for internal reporting and data-entry apps at two gigs in the past and found it solid and like anything not designed by me, a bit quirky :). I am just curious because I haven't had the chance to give it a run in at least two years.
And above all things, never think that you're not good enough yourself. A man should never think that. My belief is that in life people will take you at your own reckoning. --Isaac Asimov Avoid the crowd. Do your own thinking independently. Be the chess player, not the chess piece. --Ralph Charell
Yes very happy, it does what it's intended to do perfectly and it does all the plumbing in big apps so we can focus on the actual functionality related to the problem. It's very mature at this point, well thought out and since it's completely open you're not tied down to using it as it is, it's easily modified and we've done so extensively. I haven't found it quirky, just full of big concepts that you need to learn about to do that kind of work and in the end once you learn about them you find there's few better ways to accomplish it anyway. I think first and foremost it's a great learning tool even if someone were to go with some commercial alternative.
"Creating your own blog is about as easy as creating your own urine, and you're about as likely to find someone else interested in it." -- Lore Sjöberg
-
PIEBALDconsult wrote:
Isn't everything? Are you learning to speak Marketing?
Translation: It isn't a general purpose tool, it's a specific tool for a specific type of app, i.e. business apps.
PIEBALDconsult wrote:
But he said "mostly ASP.NET Web Forms".
And...your point being? There are a great many business apps consisting of Asp.net web forms, perhaps you weren't aware or perhaps I don't understand what you're getting at. Man the levels of sheer analness around here today are astounding. :) You guys would be a fun crowd at a party. ;)
"Creating your own blog is about as easy as creating your own urine, and you're about as likely to find someone else interested in it." -- Lore Sjöberg
John C wrote:
great many business apps
But not many great? :-D I'm primarily anti-Web; I don't believe it's a proper tool for business applications.
John C wrote:
analness
No, pedantic. :-D
-
John C wrote:
great many business apps
But not many great? :-D I'm primarily anti-Web; I don't believe it's a proper tool for business applications.
John C wrote:
analness
No, pedantic. :-D
PIEBALDconsult wrote:
I'm primarily anti-Web; I don't believe it's a proper tool for business applications.
At heart so am I but for a great many businesses it's ideal due to the light workstation and support requirements. We hedge our bets and have a web and winform (and cellphone) interface for our app just to be on the safe side. One guy's doing pretty good making money hosting our web app for businesses that don't want to do anything but start working.
PIEBALDconsult wrote:
No, pedantic
Yeah, that's it! I'm getting brain dead from lack of sleep and too much work today, the first thing to go is my vocabulary. :) Cheers!
"Creating your own blog is about as easy as creating your own urine, and you're about as likely to find someone else interested in it." -- Lore Sjöberg
-
PIEBALDconsult wrote:
I'm primarily anti-Web; I don't believe it's a proper tool for business applications.
At heart so am I but for a great many businesses it's ideal due to the light workstation and support requirements. We hedge our bets and have a web and winform (and cellphone) interface for our app just to be on the safe side. One guy's doing pretty good making money hosting our web app for businesses that don't want to do anything but start working.
PIEBALDconsult wrote:
No, pedantic
Yeah, that's it! I'm getting brain dead from lack of sleep and too much work today, the first thing to go is my vocabulary. :) Cheers!
"Creating your own blog is about as easy as creating your own urine, and you're about as likely to find someone else interested in it." -- Lore Sjöberg
John C wrote:
light workstation and support requirements
That's what we had back with mainframe/minicomputers and dumb termini. I'm glad I'm keeping up-to-date on OpenVMS; it'll be back. Well, go get some rest; I'll read up on CSLA.
-
After having tried most of them, I have come to the conclusion that I am better off with stored procedures (of cours SP are also well suited with these ORMs) together with a home tailored data layer. The problems I have experienced are: *The time saved by using ORMs instead of writing your own layer, is in the long run near zero since you run into all kinds of issues with ORMs that needs tweeking *Performance issues caused by bloated object layer *Performance issues with generated SQL *Very, and I mean very, bad suitability with web apps (which is what I do) If I were doing a desk top app that needs data access, I would seriously consider using a ORM (preferably Project Castle´s ActiveRecords or SubSonic). For web development? Forget it. Too many headaches, and too much time spend on nothing - time that is better spend on writing SPs and a simple data access layer. Of course, this is all IMHO :)
"When you have made evil the means of survival, do not expect men to remain good. Do not expect them to stay moral and lose their lives for the purpose of becoming the fodder of the immoral. Do not expect them to produce, when production is punished and looting rewarded. Do not ask, `Who is destroying the world?' You are."
-Atlas Shrugged, Ayn RandRohde wrote:
For web development?
Not sure how the presentation layer technology affects the data access layer technology, as it is abstracted by the business layer... Or is there something I'm missing...
____________________________________________________________ Be brave little warrior, be VERY brave
-
There have been some chatter here lately and I am about to lunch into some major development over the following couple of months. I am thinking of trying out EF new CTP: http://blogs.msdn.com/adonet/archive/2009/11/04/ado-net-entity-framework-community-technology-preview-released.aspx[^] Yes, I understand there might be some issues but by the first third of next year I would think most should be fixed with the release of VS 2010, but who knows.. Then there is Subsonic which I have not used yet: http://subsonicproject.com/[^] And today I read a post about CSLA (which is much more than involved): http://www.lhotka.net/cslanet/[^] And then there is NHibernate (which I have had no experience with but others seem to like): http://nhforge.org/[^] I am sure there are others as well. They work I will be doing is mostly ASP.NET Web Forms (possibly light if MVC works out for me), ASP.NET MVC (expecting to be heavy use), Silverlight and WPF. Any ideas? I have to learn something and get with it, just want to make sure there will be light at the end of the tunnel :) ANY help is GREATLY appreciated!
Rocky <>< Recent Blog Post: Win2008 Server without FrontPage Extensions, really?
I've never used NHibernate extensively, but the feeling is that it's huge and quite hard to learn. SubSonic is much, much more simply and it works pretty well. While I was not totally convinced about the 2.2 version, the new 3.0 release is simply terrific. There might be a few bugs around, but they're usually fixed in the trunk or alternatively you can easily find patches. If your project is not that big, SubSonic might be the perfect solution (SimpleRepository for simple scenarios, ActiveRecords for all others). I evaluated EF a while ago (v1) and the main problem was that it was hard to unit test. NH and SS do not have this problem and they also support other DBMS natively. All of them support LINQ queries that translate the SQL command, which is great. Besides that, all ASP.NET MVC videos I've seen used Linq2Sql, not EF...
If you truly believe you need to pick a mobile phone that "says something" about your personality, don't bother. You don't have a personality. A mental illness, maybe - but not a personality. - Charlie Brooker My Photos/CP Flickr Group - ScrewTurn Wiki v3
-
Rohde wrote:
For web development?
Not sure how the presentation layer technology affects the data access layer technology, as it is abstracted by the business layer... Or is there something I'm missing...
____________________________________________________________ Be brave little warrior, be VERY brave
I have not yet used an ORM that plays nicely with web applications. The problem isn't the presentation technology per se, but the fact that web development is stateless which introduces a heap of problems with sessions, object tracking etc. For example, Entity Framework v1 was totally unusable with any form of disconnected scenarios (and thus web development). The same goes for L2S. You could shoe-horn these into a web development project, for example to use L2S in a disconnected scenario you could simply delete all entity relations and manage it all manually, but then what is the point?
"When you have made evil the means of survival, do not expect men to remain good. Do not expect them to stay moral and lose their lives for the purpose of becoming the fodder of the immoral. Do not expect them to produce, when production is punished and looting rewarded. Do not ask, `Who is destroying the world?' You are."
-Atlas Shrugged, Ayn Rand -
There have been some chatter here lately and I am about to lunch into some major development over the following couple of months. I am thinking of trying out EF new CTP: http://blogs.msdn.com/adonet/archive/2009/11/04/ado-net-entity-framework-community-technology-preview-released.aspx[^] Yes, I understand there might be some issues but by the first third of next year I would think most should be fixed with the release of VS 2010, but who knows.. Then there is Subsonic which I have not used yet: http://subsonicproject.com/[^] And today I read a post about CSLA (which is much more than involved): http://www.lhotka.net/cslanet/[^] And then there is NHibernate (which I have had no experience with but others seem to like): http://nhforge.org/[^] I am sure there are others as well. They work I will be doing is mostly ASP.NET Web Forms (possibly light if MVC works out for me), ASP.NET MVC (expecting to be heavy use), Silverlight and WPF. Any ideas? I have to learn something and get with it, just want to make sure there will be light at the end of the tunnel :) ANY help is GREATLY appreciated!
Rocky <>< Recent Blog Post: Win2008 Server without FrontPage Extensions, really?
I think similar questions will remain there for a while. A couple of years at least! I have collected some information from StackOverflow and combined that with my own experience with many ORMs which produced this discussion: Which ORM? LINQ To SQL, Entity Framework? LLBLGen? NHibernate?...? http://weblogs.asp.net/meligy/archive/2009/10/31/which-orm-linq-to-sql-entity-framework-llblgen-nhibernate.aspx[^] I hope it might help those who are looking for this kind of questions. Mohamed Meligy Senior Developer, Team Lead Backup (.Net Technologies) – Applications Delivery - TDG Injazat Data Systems P.O. Box: 8230 Abu Dhabi, UAE. Mobile: +971 50 2623624, +971 55 2017 621 E-mail: eng.meligy@gmail.com Weblog: http://weblogs.asp.net/meligy
-
With respect to Devforce... *The time saved by using ORMs instead of writing your own layer, is in the long run near zero since you run into all kinds of issues with ORMs that needs tweeking DevForce allows you to regenerate the model at any time, with no changes to your own code at all. You simply modify the database to support your new functionality, re-run the object mapper and add code to access your new properties. *Performance issues caused by bloated object layer The object layer inherits from .NET DataRow, so there really isn't a bloated object layer. Sure, you can add all kinds of generated before-set and after-set handlers, but only if you really need them. *Performance issues with generated SQL You can bind entities to the result set from a stored procedure as well as perform "pass-thru" queries. These are queries that you write yourself to improve performance. *Very, and I mean very, bad suitability with web apps (which is what I do) We use it in a classic Winforms desktop app, but I can't see why it would be any more difficult to use it on a wep application. In fact, that is actually kind of the point - you have a single model, complete with business rules, data validation, logic etc that can be accessed by different ends of your business, so you have internal desktop apps using the exact same model as your customers on the web. Also, I would *never* try writing my own entity framework to match my database. It's way too much work, especially when you can just rebuild the entire model from your database in less than 30 seconds. Just my 2c.
The StartPage Randomizer - The Windows Cheerleader - Twitter
Well Devforce is actually the one I haven't used, so I can't really comment on it, other than I will definitely try it out sometime. My experience with these kinds of product do me leave me very skeptical though I must say :laugh: :laugh:
"When you have made evil the means of survival, do not expect men to remain good. Do not expect them to stay moral and lose their lives for the purpose of becoming the fodder of the immoral. Do not expect them to produce, when production is punished and looting rewarded. Do not ask, `Who is destroying the world?' You are."
-Atlas Shrugged, Ayn Rand -
There have been some chatter here lately and I am about to lunch into some major development over the following couple of months. I am thinking of trying out EF new CTP: http://blogs.msdn.com/adonet/archive/2009/11/04/ado-net-entity-framework-community-technology-preview-released.aspx[^] Yes, I understand there might be some issues but by the first third of next year I would think most should be fixed with the release of VS 2010, but who knows.. Then there is Subsonic which I have not used yet: http://subsonicproject.com/[^] And today I read a post about CSLA (which is much more than involved): http://www.lhotka.net/cslanet/[^] And then there is NHibernate (which I have had no experience with but others seem to like): http://nhforge.org/[^] I am sure there are others as well. They work I will be doing is mostly ASP.NET Web Forms (possibly light if MVC works out for me), ASP.NET MVC (expecting to be heavy use), Silverlight and WPF. Any ideas? I have to learn something and get with it, just want to make sure there will be light at the end of the tunnel :) ANY help is GREATLY appreciated!
Rocky <>< Recent Blog Post: Win2008 Server without FrontPage Extensions, really?
In defense of O/R mappers and code-gen tools, the evidence is overwhelmingly in favor of their use, particularly in corporate enterprise development. I manage a development team as well as the projects themselves. In any given project, there's no way I can cost-justify having a developer re-invent the wheel by hand-writing a data and entity layer each time (with inconsistent results, at best). A plumber doesn't make his own pipes and tools (EACH time!) he does a job, instead he uses pre-built parts and tools to ensure consistency and reliability. Writing "plumbing" code distracts from the real problem domain at hand. Developers should focus on business logic and rules, not writing SqlDataReader commands, ad nausea. As far as frameworks go, you may consider the open source framework netTiers as well. I used it on my last project, and really liked it (I also looked at CSLA, and even have Lhotka's book, but it's just a bit... unwieldy at times). netTiers is used with the code-gen tool CodeSmith, which you can get an eval of. netTiers does (most) everything all the other major O/R mappers do. The API is pretty easy to work with; you can build a Service Layer or Domain Model; it's built on the Microsoft Enterprise Library Application Blocks; provides easy-to-manage entity state (IsDirty, etc.); supports workflow pipeline processing (broken rules list, etc.) and is, *literally*, infinitely customizable. It also builds a complete Web Services tier in WCF, an IIS website along with custom Web and Form controls. Pretty much everything you could possibly need. All you do is point CodeSmith/netTiers towards a database, configure some settings, and everything is done in a few minutes. It will save you a month (at least) of development effort. And the netTier-generated code screams on database calls. No performance issues whatsoever (and I deal with some big data sets). Btw, CodeSmith aldo comes with the complete CSLA framework for gen'ing, AND NHibernate, WilsonORMapper, LinqToSql, NuSoft, and a crap-load of other helpful stuff. Lol, I swear I'm affiliated with either companies! Good Luck, Patrick Pitre
-
I have not yet used an ORM that plays nicely with web applications. The problem isn't the presentation technology per se, but the fact that web development is stateless which introduces a heap of problems with sessions, object tracking etc. For example, Entity Framework v1 was totally unusable with any form of disconnected scenarios (and thus web development). The same goes for L2S. You could shoe-horn these into a web development project, for example to use L2S in a disconnected scenario you could simply delete all entity relations and manage it all manually, but then what is the point?
"When you have made evil the means of survival, do not expect men to remain good. Do not expect them to stay moral and lose their lives for the purpose of becoming the fodder of the immoral. Do not expect them to produce, when production is punished and looting rewarded. Do not ask, `Who is destroying the world?' You are."
-Atlas Shrugged, Ayn RandRohde wrote:
Entity Framework v1 was totally unusable with any form of disconnected scenarios
Could you elaborate pls, as I have used it quite well... Maybe I'm doing something wrong... Visual Studio has a project template to build web applications on top of EF, which are quite nice in my opinion, but I'm more of a Win dev so maybe there's something I do not know about
____________________________________________________________ Be brave little warrior, be VERY brave
-
Rohde wrote:
Entity Framework v1 was totally unusable with any form of disconnected scenarios
Could you elaborate pls, as I have used it quite well... Maybe I'm doing something wrong... Visual Studio has a project template to build web applications on top of EF, which are quite nice in my opinion, but I'm more of a Win dev so maybe there's something I do not know about
____________________________________________________________ Be brave little warrior, be VERY brave
There are lot of stuff about it on teh interwebs: http://www.udidahan.com/2007/03/30/entity-framework-disconnected-problems-solutions/[^] http://oakleafblog.blogspot.com/2007/03/operation-and-entity-framework.html[^] etc. etc.
"When you have made evil the means of survival, do not expect men to remain good. Do not expect them to stay moral and lose their lives for the purpose of becoming the fodder of the immoral. Do not expect them to produce, when production is punished and looting rewarded. Do not ask, `Who is destroying the world?' You are."
-Atlas Shrugged, Ayn Rand -
Rocky judging by the responses and your question I suspect few really understand what CSLA is or does. We use it and it's perfect for the right scenarios which are typically big data centric apps with lot's of forms where data is entered and retrieved and reported upon. I.E. business apps. (It does not generate any code for you)
"Creating your own blog is about as easy as creating your own urine, and you're about as likely to find someone else interested in it." -- Lore Sjöberg
I didn't get any impression at all that CSLA was a ORM tool. Until I got to your post, I was afraid I'd missed something. We used nHibernate at my most recent job, and it was fine as long as your tables had keys, but if they didn't, you had to write your own SQL for your queries. The thing was that we needed the single-table queries far less than we needed to write our own queries. We were hitting a RDB database that was decades old (in terms of design), and not all of the tables had been modernized to have foreign keys, so it was kind of a pain in the butt. To add to the complexity, we threw WCF into the mix. nHibernate doesn't officially support WCF, so it took a month or so to iron out the problems. One of the biggest pains in our collective asses was that every time we added a new method to the nHibernate-generated class library, we had to delete the service reference from our project, re-build all of the sub-projects in a certain order, and then re-add the nHibernate service to the application project. This process added about 30 minutes to our get-latest process (when we retrieved new code from source controls), and sometimes, this happened two or three times a day.
.45 ACP - because shooting twice is just silly
-----
"Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997
-----
"The staggering layers of obscenity in your statement make it a work of art on so many levels." - J. Jystad, 2001 -
PIEBALDconsult wrote:
I'm primarily anti-Web; I don't believe it's a proper tool for business applications.
At heart so am I but for a great many businesses it's ideal due to the light workstation and support requirements. We hedge our bets and have a web and winform (and cellphone) interface for our app just to be on the safe side. One guy's doing pretty good making money hosting our web app for businesses that don't want to do anything but start working.
PIEBALDconsult wrote:
No, pedantic
Yeah, that's it! I'm getting brain dead from lack of sleep and too much work today, the first thing to go is my vocabulary. :) Cheers!
"Creating your own blog is about as easy as creating your own urine, and you're about as likely to find someone else interested in it." -- Lore Sjöberg
John C wrote:
Yeah, that's it! I'm getting brain dead from lack of sleep and too much work today, the first thing to go is my vocabulary. Smile
Aye, maybe we should all get wasted and enjoy the weekend. It's the end of a hard week and I'm in the same boat as you are. My brain needs some alcohol to relax and maybe start to work again.
-
Yes very happy, it does what it's intended to do perfectly and it does all the plumbing in big apps so we can focus on the actual functionality related to the problem. It's very mature at this point, well thought out and since it's completely open you're not tied down to using it as it is, it's easily modified and we've done so extensively. I haven't found it quirky, just full of big concepts that you need to learn about to do that kind of work and in the end once you learn about them you find there's few better ways to accomplish it anyway. I think first and foremost it's a great learning tool even if someone were to go with some commercial alternative.
"Creating your own blog is about as easy as creating your own urine, and you're about as likely to find someone else interested in it." -- Lore Sjöberg
I agree with John. We use it for both WinForms and WebForms development and it works great. It does have a descent learning curve, but most frameworks that do what this one does have a fairly steep learning curve. I would definitely recommend it if your project size is medium to large. You should certainly get the book(s) and follow the active forum while you come up to speed. I have looked into some of the other offerings, but none match CSLA.NET. Rockford Lhotka did an incredible amount of work to limit the amount of work that developers using the framework must do in order to get a scalable, n-tier system up and running. Kelly.