SSbits - Home page
Site by Carbon Crayon
Submit a Post >

Blog - News, interviews and lots more

SilverStripe 3.0 Review

SSBss3review

The eagerly awaited SilverStripe 3 has been available in a stable state for a while now, it's even had a minor release in the form or 3.0.1. But how does it shape up when compared to it's long established predecessor, SilverStripe 2?

Having now had time to really have a play with it and even do some project work with it there are 2 statements swirling around my head. 1: SilverStripe 3 is absolutely awesome and 2: We won't be using SilverStripe 3 for complex production sites just yet . Confused? Let me explain.

The CMS Interface

The new interface is slick, usable and very flexible.

The most obvious change to SilverStripe is the User interface, and I am so glad (read relieved!) to say it is an absolute peach. Despite concerns about  the demotion of the site tree leading to confusing workflows, the late changes ensured the tree is persistent and seamlessly transitions between full screen and page editing mode, allowing a more (believe it or not) fluid and focused work-flow than previously.

Another great introduction is full screen relation edit forms, no more popups in popups and confusing multi DOM editing. Now we can simply step through related objects editing as we go and using the breadcrumbs at the top of the CMS to navigate. As small a change as it seems, this is a game changer for us at Aab Web, really opening up the possibilities for both Model Admin and in-page Grid Fields to be used in ways that previously were messy and unintuitive.

CMS Breadcrumbs make editing related objects far more intuitive than popups.

The new Tab system is also great, far more intuitive with only 3 default tabs;  Content, Settings and History (yes, History is now in a place you can actually explain over the phone!). Some may argue that there is now less space to create new  Tabs, and that is true, but what they have done is encouraged you to be smarter with your form structure. A great example of this is the 'Metadata', which is now placed in an expanding ToggleCompositeField underneath the content editor. Using a combination of these expanding fields and a reduced number of top level tabs means you can still create just as many fields but in a way that will be easier to find and more intuitive to use for your clients.

Other bits  worth a mention are improvements to the way URLSegments are now handled (no more alerts!!), the file upload fields with drag and drop uploading and in-page property editing which is super slick and very useful and of course the Grid Field which now makes Model Admin a far more accomplished interface.

 

Model Admin interface is greatly improved by the prescence of the new Grid Field.

 I was surprised to find that when going back to 2.4, it felt like such a step back, the clunky interface is just so....dated. It was great in its day, but I am now really excited about the prospect of showing clients SS3, I can already hear the 'oooohs' and 'aahhhss' as they drop a file in or switch to and from preview mode.

The API

Once you look past the cosmetic changes to the CMS, there is actually a much more significant change to SilverStripe 3. It is now a full blown, standalone application framework. Although initially this may not prove terribly interesting to many SS developers, in time this could be the thing which truly sets it apart from much of the competition. Not only is the 'Framework' (formerly known as Sapphire) now stand alone, but it has had major improvements which should now enable truly scalable sites. 'Can you use it to build Twitter?'. Well, it's certainly much more feasible than it was with Sapphire 2.4 and that in itself is a very exciting prospect.

For those who don't intend to use the framework on its own there is still plenty to be pleased about. The new DataObject collection methods are intuitive and lazy loading means they are efficient, although they will mean much existing code will need to be reworked. The templating system has also been completely re-written and now behaves exactly as you would expect and adds a list of great new features which will allow far more dynamic templates as well as even more intuitive for front-end developers to get to grips with. For me, just being able to use 'not' in an <% if %> is improvement enough!

Another new feature worthy of mention is the yml config files. Although I am yet to try them for myself, I am assured they will provide far more flexibility and improve performance. If this is true then it all sounds good to me, even if I do need to learn a new way to write my config.

And.....the Party Stoppers?

So at this point you're probably thinking it all sounds so great, why not use it for all projects? I wish I could say it was ready for that, in so many ways it would make projects easier and more exciting. Unfortunately there are a few bits which although likely simple to fix, mean we just can't hand it over to clients yet.

Take for example the site tree. It looks great, and on first inspection it also works great. But try moving pages around, deleting them, un-publishing and publishing and you start to get strange things happening, like child pages not showing up, or parent pages unable to expand to show their child pages. To be fair I was unable to reproduce this today, so perhaps I just hit a strange edge case previously.

Then there is the preview mode, which also seems to work well, until you move to another page on the site and press 'edit' at which point you are returned to a blank page in the CMS, or worse press the 'Pages' link and the edit button disappears. A similar thing happens when reverting a page to the previous version under the history tab.

More minor annoyances include the fact that the (awesome) file field doesn't collapse properly sometimes when loading a page making it confusing for users, and  the fact that you can't put image thumbnails into the gridfield summary. And remember, DataObjectManager is not (and never will be) SS3 compatible, so for now we don't have a nice way to have multiple file uploads automatically followed by edit forms for each, a great feature for a gallery or document store.

Another issue is drag-and-drop sorting of Data Objects. This was super simple to add using the DataObjectManager in 2.4, but as that module is not compatible with SS3 (and never will be) it was a big surprise to find that it wasn't offered by the new Grid Field. There is a 3rd party module available here which does a reasonable job (albeit a little more conveluted than DOM), but not having it in the core really feels like a glaring ommision.

Although all of the above are stopping us using SS3 for production, they are all relatively simple fixes when compared to the amount of great work that has already been put in, so I don't anticipate it to be too long before they are fixed (in fact 3.0.2, currently in RC1 already addresses some of them).

Conclusion

I don't think there is any doubt in my mind that SilverStripe has taken an enormous leap forward with SS3. Using it gives me a great feeling that I am in front of a state of the art piece of software and developing with it makes we wonder how I put up with 2.4s 'quirks' for so long. The only problem is, it still feels like it's in beta.

As soon as we get a truly stable version (I suspect that will be 3.1.0) there really will be very little reason to look elsewhere for almost any client project. SilverStripe will do it all, elegantly, efficiently and above all else with style. Eat your heart out Wordpress.

Aram Balakjian avatar

Aram Balakjian

Aram is a web developer running London based agency Aab Web. He has a strong passion for developing attractive, usable sites around the SilverStripe CMS.

  • Simon Erkelens
    10/09/2012 1:43pm (2 years ago)

    A few of the issues you mention, are already fixed. They are, in my opinion minor.

    I'm having more issues with the ModelAdmin. It's not always loading the edit/add field, but stays on the list. Which is far more confusing.

    I somewhat agree. I've taken the step, I'm building a major project in SS3.

  • RoyalPulp
    10/09/2012 3:56pm (2 years ago)

    Hi Aram,

    I am just switching to SS3 for small & easy projects and have encountered many of the issues you described above.

    I have enhanced the GridField with 2 Modules: SortableGridField and GridFieldBulkEditingTools - still very buggy, but with those Components you get a smell of good old DataObjectManager.

    I have Thumbnails in my GridFields, just like this:
    static $summary_fields = array(
    "Thumbnail",
    ...
    );
    function getThumbnail (){
    $image = $this->Image();
    if ($image && $image->ID){
    return $image->CMSThumbnail();
    }
    return " --- ";
    }
    Have a nice day,
    Hendrik

  • Aram Balakjian
    10/09/2012 4:27pm (2 years ago)

    @Simon Erkels - Yep looks like the dev team are getting through the bug list pretty quickly which is great, 3.0.2 seems to fix many of those issues. Hopefully they can all be fixed by 3.0.1

    @RoyalPulp - Thanks for the code, strange I thought I had tried it that way, the same as with 2.4. Will try again, maybe I missed something.

  • joel
    10/09/2012 9:14pm (2 years ago)

    Hi Aram,

    Interesting article, and I too agree. SS3 is in overall still very beta.

    We've managed to create a larger Learning Management System with SS3, but we did not use the CMS in this project at all. That simply didn't work.

    However, the API has actually been working quite well (in our opinion) going all the way back to the first Alpha release. The API is though not as easy as the old one, but I guess we just have to get use to datalist and the new query language for that.

    I've switched about 3 sites to SS3 for using the new CMS and our clients seems ok with the early issues, but even with the latest releases of the CMS and some of the modules, there are still many unsolved errors.

    But I think everybody is working very hard on this project and it keeps getting better everyday... I kind of miss DOM, since GridField hasn't been that obvious to me, but I guess in time GridField will get better, at least I hope so...

  • iSense Daniel
    11/09/2012 3:47am (2 years ago)

    Thanks Aram, this is very much appreciated.

    I've generally learned from books, it is what works for me and something I've struggled with in Silverstripe is the lack of books available. The irc is great but does anybody know of any books in the works now that Silverstripe 3.0 is out?

  • Aram Balakjian
    11/09/2012 8:45am (2 years ago)

    @joel - Yes you are right, the Framework is actually very accoumplished and solid, it's more the CMS side which is a little buggy at the mo. Yea, DOM will be sorely missed I think, it was just so simple to use and feature rich!

    @iSense - I don't think there will be any SS3 books for a little while, but it probably won't be too long before one of the existing ones is updated. We are planning to run a few tutorials using the new API in the coming weeks/months so keep en eye out for them :)

  • Nick Jacobs
    11/09/2012 9:11am (2 years ago)

    Nice review aram..it'd be great to see some basic tutorials on the framework/API popping up...look forward to reading them.

  • Micschk
    11/09/2012 10:10am (2 years ago)

    Hi Aram!

    Though I agree that some of the showstoppers you describe are annoying, I simply mention them to clients and promise they'll be fixed in upcomming releases. So far I haven't had anyone complain (5 sites/apps in SS3 so far, 2 of which major).

    Indeed, we've also lost time debugging core issues/updating some modules, but I see that as an investment in our tools, and for us it's really a part of working with open source software. Overall I think the SS3 pros overway the cons by far. Not only for clients, but especially for developers (I find the api/framework a joy to work with).

    By the way, another way to show thumbnails in the datagrid we use is by including this code in the summary:

    public static $summary_fields = array(
    'FeaturedImage.StripThumbnail' => '',
    ....
    );

  • Micschk
    11/09/2012 10:20am (2 years ago)

    @iSense This doesn't answer your question, but have you tried just using any of the 2.4 books? Both of them are pretty good, I guess the one by Ingo would be best for SS3, since that's most focussed on SS core code (the one by Philipp Krenn uses more modules like DOM, which are not SS3 compatible).

    Generally, most code examples from Ingo's book should just work as long as you apply these 'updates' (under 'Upgrading'): http://doc.silverstripe.org/framework/en/trunk/changelogs/3.0.0

    What's nice about 3.0 is that a lot of classes contain code examples in their docblocks (if you use an editor like Netbeans, it will show the examples). Also the developer documentation has improved *a lot* compared to 2.4 to my opinion.

  • opticblaze
    11/09/2012 12:43pm (2 years ago)

    @Micschk I have been working through both books and have found it is still really relevant. The biggest hickups have been working with gridfield as apposed to the old way of doing it ...(ComplexTableField...i think), but u must say that i am loving GridField...it is the coolest things since sliced bread!

    I know that it is still early days..but i find it frustrating that the silverstripe site does not have that many good examples of how to use the code for SS3. It took me some time to get what i needed for GridField as well as how to use PaginatedList.

    One good thing is that sites like ssbits is arround to help the semi geeks find their way :-)

  • Adrian van Vliet
    11/09/2012 2:08pm (2 years ago)

    Thanks so much for this review, Aram. I've waited with getting into SS3, waiting for any word about it from you: a reliable word from an independent developer I know and trust.

  • Aram Balakjian
    11/09/2012 4:26pm (2 years ago)

    @Adrian - Thanks for your kind comments, glad it was useful for you :)

  • Monkey
    15/09/2012 10:28am (2 years ago)

    Hi Aram,
    Looking forward for some great tutorials for SS3 from you.

    Thanks for sharing your knowledge.

  • Wojtek Tajak
    15/09/2012 11:59am (2 years ago)

    Very useful review. Best regards Aram

  • Tim
    21/09/2012 4:01am (2 years ago)

    great review Aram - like Adrian, I've been holding off using SS3 until reputable developers such as yourself fully adopted it. I'm not ashamed to say I rely on your helpful tips on an almost weekly basis!

    Looking forward to the future of SS3 and all the SS3 tutorials that will no doubt be featured on ssbits.

    cheers

  • Aled Brown
    02/10/2012 4:57pm (2 years ago)

    Great review. I've done 2 sites in SS3. One really easy to get going. But the other had many modifications and I had to take my old library of 2.4 code and upgrade it or find a way to replicate behaviour in 3.0. Boy, it's great! I love SS3.

    The problem with old 2.4 sites is that I used to do so much customisation using modules that you now just don't need installed. So there's a quite a lot of work to upgrade old sites for me.

    Yes, old 2.4 books are fine with 3.0. Lots of things still work if you introduce them slowly into a blank project and upgrade them using the docs. I thought nothing would work but lots of stuff still does. Anything that had DOM switch it to GridField yourself. It's not too hard once you figure it out.

    The future is bright for SS3. I just hope performance is better on larger sites.

    The new form style system is amazingly handy when you need to make a form meld into a designers layout.

    The CMS does have a few glitches but they will be sorted and lots of them have been fixed.

    I wish I had time to contribute some tutorials on 3.0 to help others in the transition but I barely have time to breathe at the moment. :(

  • iSense Daniel
    02/11/2012 12:32am (2 years ago)

    @Aram, bit late on reply but thanks. I've been thinking in the absence of a book I'll be getting my hands on every ssbits tut I can to get up to speed. You have a real gift for educating in a simple and clear manner that gives me confidence. You should write a book ;)

    @Micschk Very helpful. I have both books but am still relatively new to Silverstripe. I have used DOM quite a bit which may have held my prep for 3.0 back a bit. Sounds like Ingo's book and upgrading notes should help me get up to speed when I finally make the jump to 3.0

  • FrankHodson
    30/06/2014 11:52am (26 days ago)

    Good

Post a comment ...

You cannot post comments until you have logged in. Login Here.

Advertisement

Site of the Month

Find SSbits on

Top Contributers

Rank Avatar Name
1 article image Aram Balakjian
2 article image Daniel Hensby
3 article image Marcus Dalgren
4 article image Hamish Campbell
5 article image njorndare
6 article image Ty Barho
7 article image Martijn van Nieuwenhoven
8 article image Darren-Lee
9 article image Roman Schmid
10 article image Matt Clegg

View full leaderboard


Advertisement