The EntitySpaces Community

Share and learn about the EntitySpaces Architecture.
Welcome to The EntitySpaces Community Sign in | Join | Help
in
Home Forums Photos

ES2008 Roadmap Published

Last post 08-06-2008, 10:18 AM by chopps. 8 replies.
Sort Posts: Previous Next
  •  03-15-2008, 10:52 AM 8411

    ES2008 Roadmap Published

    EntitySpaces 2008 Roadmap
     

    The EntitySpaces 2008 Roadmap is pretty aggressive and adds a lot of new functionality to the EntitySpaces Architecture. The EntitySpaces 2008 Alpha is already available. The remaining target dates are as follows:

    March 30th - 1st Beta

    April 27th   - 2nd Beta

    May 11th    - Official Release

    The March 30th Beta will have both CodeSmith and MyGeneration support, and will contain the C# templates, but we are unsure if the VB.NET templates will be in the March 30th release. It could be that we sneak an extra beta out if the VB.NET templates don't make the March 30th beta.  


      

    The Roadmap

    With CodeSmith Support, SubQueries, and Casting (see below) already pretty much completed, we are working on the final major portion of the EntitySpaces 2008 release. That is some class reorganization. The big change as far as class layout for ES2008 is that we intend to make the Custom classes no longer be partial classes. This means that your Custom classes and Generated class could then be housed in different assemblies. We have theorized how this is going to work and the coding is underway, hopefully, we will not hit a snag as this has been asked for quite often. However, there is an impact. For the first time since EntitySpaces shipped, we are going to require a change to your Custom Classes. This will be easy to do however and may not require any hand coding. All of the classes in the Generated layer will now be abstract. For those who have been using EntitySpaces without generating the Custom classes, this will no longer be an option, you will need to generate them. We think the over all added flexibility more than justifies this change.

    Okay, now on to the list ...

    These are listed in no particular order

    The next provider that EntitySpaces will add to its list of supported databases will be the IBM DB2 Express database. Date of inclusion, however, has not been determined.

    But I don't see my issue here?

    Our goal is to complete all of the above by the target dates, and we are making good progress. However, the schedule is aggressive. If there is something we have missed, please post a note in our EntitySpaces 2008 forums section with ES2008 Wish - { your title }

    EntitySpaces

    From mobile devices to large scale enterprise solutions in need of serious transaction support, EntitySpaces can meet your needs. Whether you’re writing an ASP.NET application with medium trust requirements, a Mono application, or a Windows.Forms application, the EntitySpaces architecture is there for you. EntitySpaces is provider independent, which means that you can run the same binary code against any of the supported databases. EntitySpaces is available in both C# and VB.NET. EntitySpaces uses no reflection, no XML files, and sports a tiny foot print of less than 200k. Pound for pound, EntitySpaces is one tough, dependable .NET architecture.

    The EntitySpaces Team


    EntitySpaces | Twitter | BLOG | Please honor our Software License
  •  03-15-2008, 11:51 AM 8412 in reply to 8411

    Re: ES2008 Roadmap Published

    A little brainstorming here ... 

    For those that are interested in the template stack you have no doubt noticed it is not mentioned in the above roadmap. This will be in our fall/winter release and will be (we believe) a revolutionary new approach to code generation. We believe it will be far more powerful than our original template stack concept. Imagine that a template is merely a group of snippets, and a snippet is a tiny code snippet with metadata engine tags in it that are replaced during code generation. For example, imagine our "Entity" template consisting of a collection of tiny snippets. There would be a property creation snippet, a LoadByPrimaryKey snippet, and so on. You can then replace any of the snippets with your own and customize. This is a far more powerful concept than what I can relay in this tiny post. This will be our own code generation system not dependent on CodeSmith or MyGeneration and will be backed by a database. You will be able to literally drag and drop snippets onto a new master template and create new classes at will. You will not have to understand any of the looping constructs or technical issues of code generation process itself. In this system (yet unnamed) everyone can be an expert in code generation.

    Also, you will be able to do true mapping (optional of course) to create objects that are not based on the actual database schema itself. Virtual views with strongly typed classes backing them, a hierarchical model that is to your liking and not just based on the schema itself, this is the direction we are going. However, we need to focus now on the first ES2008 release, and remember, things may change. But we wanted to let you know some of the longer term though processes going on.

     



    EntitySpaces | Twitter | BLOG | Please honor our Software License
  •  03-17-2008, 4:36 PM 8440 in reply to 8412

    Re: ES2008 Roadmap Published

    Over all I like the concept very much.

    I want to be clear on one concept:

    "You will be able to literally drag and drop snippets onto a new master template and create new classes at will. You will not have to understand any of the looping constructs or technical issues of code generation process itself. In this system (yet unnamed) everyone can be an expert in code generation."

    I am sure that I will want to customize the templates myself and that statement makes me worry that my hands my get tied 'a little', or that customization might become too difficult??

    The main reasons I want template stacks (not necessarily in order of importance):

    1) Have complete separation of persistence-only (ES core features) from commonly requested business-logic features like implementing IsDirty, or INotifyPropertyChanged.

    2) To be able to customize the templates and load an upgrade new version of ES and be most-likely not to have to breaking changes. (* this relates to above - the more features that really are optional, that are not intertwined deeply in templates - as they are now - the less work I would have to do).

    3) To be able to share a portion of my design easily. It would be nice to create my version of IsDirty, for example, and simply be able to post that template into a communiy resource area. As it stands now, it is impossible for me to share my customizations without great effort or without sharing everything.

    4) I imagine it to be easier to build templates if we can work on each "stack" separately and not hunt and peck for all the pieces in one large tamplate, or somehow break another template in the process.of modifying one.

    5) I believe it would be much easier to introduce error-checking, similar to compiler checking in .NET (a template stack-based model could enforce that all the 'pieces' are present, or display more helpful error info).

    I solidly believe the template stack is the way to go and I am not opposed to redeesigning my templates if the model works towards the benefits I described above. Also, I want to ensure that its not sold as a "templates for dummies" model, when it has the customization power it could have. It looks like you could have both worlds: one where new users can use existing templates and start with a robust model immediately, and two one where power-users can tweak it to fit their needs exactly.

     

  •  04-02-2008, 11:56 PM 8687 in reply to 8411

    Re: ES2008 Roadmap Published - when will source code be available?

    We have made some small changes to ES 2007 source for our needs.  We would like to start working with ES 2008, but we need source.  I understand that the source will change before the final release.  When will source code be available for ES 2008 for us folks with a source license?  We are porting our MS SQL application to Oracle, DB2, and Postgre, and the new ES 2008 features will help us get rid of about half of our raw SQL.  I would like to work with the MS SQL only version now, get rid of the raw SQL, and then finish the port after full release of ES 2008, but I would need source first.

     

  •  04-03-2008, 5:45 AM 8688 in reply to 8687

    Re: ES2008 Roadmap Published - when will source code be available?

    We are very interested in getting some mileage on the new features. We will put Developer and Source versions out on our next Beta. Are you using our "Database Independence" support with the extra Metadata maps and such?

    EntitySpaces | Twitter | BLOG | Please honor our Software License
  •  04-04-2008, 2:40 AM 8701 in reply to 8688

    Re: ES2008 Roadmap Published - Release Date

    I would love to start using ES 2008 in my new project, but it has a deadline of May 6th (i.e. before ES 2008 final is released) Sad

    Leigh
  •  04-08-2008, 2:36 AM 8773 in reply to 8688

    Re: ES2008 Roadmap Published - when will source code be available?

    Our biggest issue porting to Oracle (our first port from MS SQL) is that Oracle does not have bool or guid data types.  After getting over the initial shock, my programmer made changes to the ES 2007 source to work around this.   However, this might not have been the best way to solve the problem.  We do not want to change our MS SQL data types - guids should be stored as guids, and we don't want to change our application either.  What we did is the following:

     

    GetSystemBoolean

    Original version:

            protected System.Boolean? GetSystemBoolean(string columnName)

            {

                if (this.row == null) this.AddNew();

     

                object o = this.row[columnName];

                return (o == DBNull.Value) ? null : (System.Boolean?)o;

            }

     

    Modified version:

            protected System.Boolean? GetSystemBoolean(string columnName)

            {

                if (this.row == null) this.AddNew();

     

                object o = this.row[columnName];

                return (o == DBNull.Value) ? null : (System.Boolean?)Convert.ToBoolean(o);

            }

     

    GetSystemGuid

    Original version:

            protected System.Guid? GetSystemGuid(string columnName)

            {

                if (this.row == null) this.AddNew();

     

                object o = this.row[columnName];

                return (o == DBNull.Value) ? null : (System.Guid?)o;

            }

    Modified version (allow use string data as GUID, Oracle don’t have GUID data type):

            protected System.Guid? GetSystemGuid(string columnName)

            {

                if (this.row == null) this.AddNew();

     

                object o = this.row[columnName];

                if (o == DBNull.Value)

                {

                    return null;

                }

                else if(o is System.String)

                {

                    return new Guid((String)o);

                }

                else

                {

                    return (System.Guid?)o;

                }

            }

    If there is a better way to solve our problem, I'm happy to change, as long as I can still use my guid and bool datatypes in my C# code, and can use the same code for Oracle, MS SQL, and soon DB2.  I

    Any words of wisdom would be appreciated.

     

  •  04-08-2008, 3:47 AM 8774 in reply to 8773

    Re: ES2008 Roadmap Published - when will source code be available?

    Good Suggestions. I will sneak these changes in as long as no performance issues is caused, which I am pretty sure wont be an issue
    EntitySpaces | Twitter | BLOG | Please honor our Software License
  •  08-06-2008, 10:18 AM 10601 in reply to 8412

    Re: ES2008 Roadmap Published

    thoose features sound really sweet. Looking forward to learning more about them.

     

     

View as RSS news feed in XML