Serenity RRS feed

All replies

  • Dave, thanks for sharing.

    I do not know about Serenity, but quickly scanning the PDF available from your link looks very interesting.

    It seems open source, standard ASP.NET MVC, uses code generation, built in I18N, multi-tenancy, is responsive, has a nice UI template our of the box and produces a very professional looking UI very quickly.

    Given that it produces/uses standard ASP.NET MVC means that one is not likely to paint yourself into a corner as you can just manually extend the application as required. Being open source means that one can dig in if required.

    It probably doesn't have a significant following as yet, but hopefully that will change.

    Best would be to do one of his tutorials (e.g. Movie database) and get a feel for it and to then do a small sample project of our own.

    I've definitely added it to my list of development tools to play with.

    Thanks again.

    Regards, Xander. My Blog

    Wednesday, July 20, 2016 9:47 PM
  • Thanks Dave, very good pointer.

    The tutorial is very well done and can be either replayed or just read to get a quick understanding of Serenity.

    The only downside compare to LightSwitch is that there is no visual editor. Any change implies touching the code, so someone who does not know C# and Javascript will probably not feel confortable, but anyway I doubt that it has ever been possible to build a real application with LightSitch if your are not a programmer, although that was LS initial story-telling.

    Another point I still have to test is how you can update an application when the requirements change (database schema changes). That's the problem with most code generators. My initial feeling is that there is not a clear separation beetween the generated code, and the custom code. But I still have to investigate.

    Anyway, certainly a very good Platform for small projects.

    I would recommand everybody concerned with the future of Lightswitch to give Serenity a try.



    Benoit Sarton

    Monday, July 25, 2016 6:26 AM
  • Xander, Yes, I'm planning on going through the tutorial later this week. Also, wanting to do a code gen on a small production database I have.

    Benoit, you bring up some good points. I did see where he used code-first and generated migration scripts for data base changes so I don't think that that will be a problem.

    Take care and please share any insights if you play around with Serenity.


    Monday, July 25, 2016 5:03 PM
  • Hi Dave,

    The thanks for this. I would be interested to know how you get on with it.


    Andrew Fleet

    Tuesday, July 26, 2016 4:11 PM
  • Also I work with Lightswitch few years. Sorry that Microsoft no longer follow this project. I had a look at Serenity and it seems the ideal replacement
    Thursday, August 4, 2016 7:35 AM
  • Thanks Dave, this really has some promise.  For kicks I went through the process of adding one of my LS tables to the sample 'Serene' project (not hard to do-- see the 'Sergen' code generator documentation here for connecting a table to the project and having it build the ORM and UI code for you.)

    Once I did that I fired up Serene and could see the lightswitch table in the application.  Your rows display as a grid by default, pageable and sortable, with filtering built in, very nice.  Click on a row and you get a details dialog with the information for that particular row.  All this UI work is done for you via Sergen, but you can customize the code once it's generated.  The Serenity tutorials discuss this stuff.

    Now for the not-so-nice part.  The LS metadata fields on each table are preventing a save of  existing or creation of new records.  The trouble comes, I believe, in the Created and Modified (or the RowVersion) columns LS puts in our tables.  See the attached image for more, but somewhere in Serenity's ORM code it's squawking about a conversion from varbinary to datetimestampoffset.

    This has happened on two LS tables I brought into Serenity, one of which is a simple lookup, so it's not just a fluke on one of my tables, I don't think.  I'm trying to see what's up.


    Saturday, August 6, 2016 9:58 PM
  • A quick update.  I'm not sure if this is a terrific workaround, but here's what I did to get past the problem I mentioned above.

    If you look here in the tutorial you'll see how the author discusses removing a 'genre' mapping from his movie database.  A similar thing can be done for our LS table mappings.

    Serenity (and this is my beginner's perspective, after a couple of hours with it) has 'Rows' 'Column' and 'Form' C# classes mapped for each table that Sergen touches-- Sergen in fact, creates these classes for us.  

    'Rows' and 'Column' deal with database ORM mappings, and are the classes we're most interested in here.  I believe the 'Form' class has to do with what fields appear in the UI and what display names are used, etc.

    In the 'Rows' and 'Column' class I removed any hint of the Created, Modified, and RowVersion fields.  I also pulled those fields from the 'Form' class  When I did this and rebuilt and relaunched the system I could then edit and create new entries in Serene for my LS table.

    Saturday, August 6, 2016 11:23 PM
  • Hi Jim,

    Thank you for the tips.  I don't use the intrinsic LS database but I am sure many people do.

    I am still playing around with it and have not yet determine if this is the one that I will use for my customers portal.  So, for Admin maintenance type forms I am planning on using it.

    Sunday, August 7, 2016 5:38 AM
  • Hello all, Serenity author here,

    Someone wrote in Github about this thread here, so wanted to drop by.

    I can't say if Serenity is Lightswitch replacement that you are looking for, as i don't have any prior experience with it, but it's clear that they have some common ground.

    It should be possible to generate and customize editing interface for your existing LS apps with Serenity. I have many such Serenity apps that has to work with legacy databases (here legacy means, designed by someone else, for some other platform) and they work fine. You might have some minor problems like @Jim had with datetimestampoffset type fields. It is expected as i didn't use such data type before. Feel free to open issues in GitHub for such problems. 

    It might also be helpful if someone can share a Lightswitch app schema (SQL script) for me to have a look.

    Best regards,


    Friday, August 19, 2016 12:45 PM
  • Hi Volkan,

    First off, thank you for reaching out to the LightSwitch community.

    I'm hoping that you will get various opinions of the way people use LS.

    For example, I do not use LS Intrinsic database, I use a Sql Server external Database.

    Also, I use LS 2011 which is in older version that only generates Silverlight code.

    The three type of datasources that are allowed in this version is Database, SharePoint, and WCF RIA Service.

    I use Database and WCF RIA Service.  The Database datasource is fairly straight forward.

    WCF RIA Service are extremely powerful as they allow you to use POCO as tables and Functions that return IQueryable of the POCO object.

    This is just the way I use LS and I'm sure that others will respond with the way they use LS.

    A good blog is http://lightswitchhelpwebsite.com/Blog.aspx

    Friday, August 19, 2016 1:24 PM