pre-sale questions : performance + manageability

Thread is closed for posting
6 posts, 0 answers
  1. Sharbel Lutfallah
    Sharbel Lutfallah avatar
    26 posts
    Member since:
    Feb 2006

    Posted 09 Jan 2009 Link to this post

    I am a long time user of Telerik controls, and am very interested in the ORM that telerik has acquired.  I have a few pre-sale questions:

    1) Performance:  We currently build our own classes and populate them with Data Readers.  We tried Linq-to-Sql on a project and it didnt perform well. 

    a) I realize that OA doesnt use reflection, but I would expect at least some performance degregation compared to Data Readers, is it substantial? 

    b) Is using LINQ slower than using the object query language?  I really like LINQ because of the intellisense, but I fear that using it with OA is slower?  Comments on this would especially be appreciated as its a big factor.

    2) Manageability:  We work exclusively with web-apps under source control with Source Gear Vault. With the few minutes I played with the Express version, it would appear that OA requires web-apps to have a seperate class-library project in the solution that makes that actual map, while the web-app holds a reference to that class library.... which is fine.  Here are my concerns/questions regarding this:

    a) How does source control play into the picture?  When I played with the free version, I had to keep all the class library project 'checked out' so it can update.  Do the files get deleted and regenerated like linq to sql, or do they just get updated?  Hopefully not deleted as it causes a lot of issues with the source control (it was actually a nightmare!).

    b) How reliable is the reverse engineering when a project has already been built, and a column is added to a db table?  Is it just a matter of running the reverse engineering item in the menu again, against the class library?  I know this is the theory, but honestly when i was fooling around with the free version last night, this didnt seem to work.

    Thanks for any help!

  2. Dimitar Kapitanov
    Admin
    Dimitar Kapitanov avatar
    632 posts

    Posted 10 Jan 2009 Link to this post

    Hi Sharbel Lutfallah,
    1) Performance:  Using readers is the fastest possible solution. The goal here is to see whether ORM performance is acceptable for your application and consider using it. The potential gain is increased productivity for your developers and easier maintenance of the code base.

    a) Again it depends on the type of application you want to use the ORM framework in. The best approach is to make a sample case using OpenAccess and see whether it works for you. There shouldn't be considerable degradation in the most scenarios (also you should take into account the persisting feature, the persistence of the changes to the database, which is not possible using readers), but what I can assure you is that we took the best approaches to guarantee minimum overhead introduced by our tool. 

    b) LINQ and OQL statements are directly translated to command trees, executed by the runtime, so  no considerable overhead should be experienced also.
    2) Manageability:  At the moment we are able to enhance only library projects, that is why you require additional project for that. However my opinion is that this is also the best practices: to have the data model separated in a different place. The great news are that soon we will provide direct enhancement for web apps (your code should reside in App_Code folder), also we will integrate into web.config file and use the default connection strings there.

    a) Some files are modified by OA, and yes, currently we have some issues regarding the source control checkouts. We will address this in the near future (Q1 release)  and will resolve the issues.

    b) Reverse engineering should be able to resolve the update by schema merge operation which is provided inside the wizard. And it works as described. If there is a problem with your concrete case, you should tell us more about it, so that we could reproduce and possibly fix/resolve any issue or fault behavior.
        
    Also just wanted to add that we are committed to provide the best possible support in the industry and also resolve high priority problems (showstoppers) even by providing custom builds if necessary.

    All the best,
    Dimitar Kapitanov
    the Telerik team

    Check out Telerik Trainer, the state of the art learning tool for Telerik products.
  3. Sharbel Lutfallah
    Sharbel Lutfallah avatar
    26 posts
    Member since:
    Feb 2006

    Posted 10 Jan 2009 Link to this post

    Thank-you Dimitar,

    I downloaded the trial and while I had a hack of a time understanding how to get going (I understand you guys are still getting things going with demos and docs, you guys rock ordinarily in that dept!!) .  I did spend some time late last night building a database schema for an upcoming project, and was able to reverse engineer it quite nicely.

    I agree that having a separate project for the data model is best practice, I was just a bit concerned that it would pose some issues with our source control, but investigating further, it seems ok.

    The updating/merging of database schemas is working, however I am only seeing the change in the ClassName.Telerik.OpenAccess.cs files.  Do I then have to manually go into that file and grab the new properties from the commented out code at the bottom, then plug them into my ClassName.cs ??  My ClassName.cs file does not get update automatically when I add a new column and merge with the reverse engineering wizard?

     
  4. Zoran
    Admin
    Zoran avatar
    534 posts

    Posted 12 Jan 2009 Link to this post

    Hello Sharbel Lutfallah,

    For now you can manually change the property in the ClassName.cs. There is also a region of commented code in the end of the ClassName.Telerik.OpenAccess.cs file, called "main class file contents". The code in this region is up to date and you can replace the existing code in the ClassName.cs with it. We do not replace the code automatically to prevent overwriting any changes in the ClassName.cs made manually by the developer .

    Do not hesitate to share your experience with our tool further, as this can only help us make OpenAccess better.

    All the best,
    Zoran
    the Telerik team

    Check out Telerik Trainer, the state of the art learning tool for Telerik products.
  5. Sharbel Lutfallah
    Sharbel Lutfallah avatar
    26 posts
    Member since:
    Feb 2006

    Posted 12 Jan 2009 Link to this post

    Hi Zoran,

    Yup, thats what I was doing (going to the commented code), i just wanted to make sure it was what I should be doing and that the main classname.cs file was not supposed to update.

    I understand 100% why you are not updating it to prevent code overwrite (thanks for that, really).

    One feature that Telerik might consider is a flag in the Generate wizard so the developer can decide if they want the commented code injected in the classname.cs file.  Keep it commented mind you, just plug it in the file as an option so that we dont have to open another file and figure out what has changed... this option could inject commented merged changes for us at the top/bottom of the file for the developer's convenience.

    Just a thought!
  6. Dimitar Kapitanov
    Admin
    Dimitar Kapitanov avatar
    632 posts

    Posted 16 Jan 2009 Link to this post

    Hello Sharbel Lutfallah,
    We will evaluate your idea and include it in our TODO list. Thanks for the suggestion.

    Greetings,
    Dimitar Kapitanov
    the Telerik team

    Check out Telerik Trainer, the state of the art learning tool for Telerik products.
Back to Top