This question is locked. New answers and comments are not allowed.
Hello, I am looking into solutions to replace the existing ORM in a fairly large project.
So far to me I'm leaning toward using LLBLGen to handle it, but since my company owns and uses Telerik products they would like to use OpenAccess instead of buying another tool.
One major benefit of OpenAccess that I keep reading about is how great your support is, so i got the idea to try to explain my concerns to you and see what insight you can offer.
So I'm wondering if you could help persuade me that your solution will work as well as LLBLGen, or help me find the limitations it might have in my specific case.
Here are 5 questions regarding each of the 5 situation that are detailed below these:
1. Will I be able to use reverse mapping to be able to use our current database, then start using forward mapping so that OpenAccess can generate the alter scripts instead of me doing that? (Our project often adds new columns or new objects)
2. To convert it from DataAdaptors will I be able to use Regex replaces in the code, or will each load/save take manual changes to all the properties?
3. Linq-to-SQL would start using tons of RAM if i selected all the rows and columns and basically freeze, so I only select the IDs and use Take(), not the rest of the properties. What kind of overhead would OpenAccess have compared to Linq-to-SQL, or the frameworks LLBLGen supports?
4. Any concern with different applications using different copies of the OpenAccess built pieces at the same time? What would happen if i update a database to have newer columns but keep trying to use older code that does not have that column? (Would it cause any exceptions when only adding new columns, would it cause that data to be deleted if the row was saved with the older version?)
5. I guess this goes back to the overhead concerns in question 3.
In my ASP.Net product we have the following situation that i'm wondering how much of it will need to be rewritten to work with either OpenAccess or the frameworks LLBLGen can generate:
1. The previous ORM put all the properties for the same "business object" into the same table, so we've ended up with the main table having 230 columns, most of which are always null.
2. It used DataAdaptors and DataSets, so it uses that style of calls to load/save data
3. To get the speed we needed when filtering from a selection of say 1000 rows (which in the DataSet would have 230 columns each) I built a Linq-to-SQL interface that gets the IDs that i load into the DataSet
4. We have 2 or 3 seperate apps which access the same database (they write to different sections so locking isn't a huge concern) with in general 5 users on both of those at a time
5. We need to export data fairly often, so exporting 1000 rows with data that might be generated using any number of those 230 columns
Other concerns:
I've used your product in a small project in an early version, it seemed like the design interface was somewhat slow to work with, and we never bothered upgrading the version (I can't remember if we tried but it was difficult to do or the project just completed)
1. How well do you claim that the design interface will work with a table with 230 columns, and others with 150 columns at the same time?
2. When i used it I thought I had the ability to store multiple business objects in the same row, so each different object would have the ability to select different columns. Do you have that ability or was i mistaken?
2. How seamless is upgrading from one version of OpenAccess to a newer one? The RadControls seem to change significantly on all major versions, so I neglect to upgrade those much of the time.
Thank you for any insight you can give me, I need to decide if I want to fight for my previous opinions or change them and agree to using OpenAccess.
So far to me I'm leaning toward using LLBLGen to handle it, but since my company owns and uses Telerik products they would like to use OpenAccess instead of buying another tool.
One major benefit of OpenAccess that I keep reading about is how great your support is, so i got the idea to try to explain my concerns to you and see what insight you can offer.
So I'm wondering if you could help persuade me that your solution will work as well as LLBLGen, or help me find the limitations it might have in my specific case.
Here are 5 questions regarding each of the 5 situation that are detailed below these:
1. Will I be able to use reverse mapping to be able to use our current database, then start using forward mapping so that OpenAccess can generate the alter scripts instead of me doing that? (Our project often adds new columns or new objects)
2. To convert it from DataAdaptors will I be able to use Regex replaces in the code, or will each load/save take manual changes to all the properties?
3. Linq-to-SQL would start using tons of RAM if i selected all the rows and columns and basically freeze, so I only select the IDs and use Take(), not the rest of the properties. What kind of overhead would OpenAccess have compared to Linq-to-SQL, or the frameworks LLBLGen supports?
4. Any concern with different applications using different copies of the OpenAccess built pieces at the same time? What would happen if i update a database to have newer columns but keep trying to use older code that does not have that column? (Would it cause any exceptions when only adding new columns, would it cause that data to be deleted if the row was saved with the older version?)
5. I guess this goes back to the overhead concerns in question 3.
In my ASP.Net product we have the following situation that i'm wondering how much of it will need to be rewritten to work with either OpenAccess or the frameworks LLBLGen can generate:
1. The previous ORM put all the properties for the same "business object" into the same table, so we've ended up with the main table having 230 columns, most of which are always null.
2. It used DataAdaptors and DataSets, so it uses that style of calls to load/save data
3. To get the speed we needed when filtering from a selection of say 1000 rows (which in the DataSet would have 230 columns each) I built a Linq-to-SQL interface that gets the IDs that i load into the DataSet
4. We have 2 or 3 seperate apps which access the same database (they write to different sections so locking isn't a huge concern) with in general 5 users on both of those at a time
5. We need to export data fairly often, so exporting 1000 rows with data that might be generated using any number of those 230 columns
Other concerns:
I've used your product in a small project in an early version, it seemed like the design interface was somewhat slow to work with, and we never bothered upgrading the version (I can't remember if we tried but it was difficult to do or the project just completed)
1. How well do you claim that the design interface will work with a table with 230 columns, and others with 150 columns at the same time?
2. When i used it I thought I had the ability to store multiple business objects in the same row, so each different object would have the ability to select different columns. Do you have that ability or was i mistaken?
2. How seamless is upgrading from one version of OpenAccess to a newer one? The RadControls seem to change significantly on all major versions, so I neglect to upgrade those much of the time.
Thank you for any insight you can give me, I need to decide if I want to fight for my previous opinions or change them and agree to using OpenAccess.