One of the things that we're planning for SilverStripe 3.0 is to have a clearer split between Sapphire and the CMS. We've given this a bit of thought internally, and I want to recommend an idea that may at first glance seem strange.
I think that we should include ModelAdmin and LeftAndMain in sapphire, not in CMS.
Why is this? I have a shallow reason and a deep reason.
- The shallow reason is SecurityAdmin. Without it, the permission system is non-configurable and of limited use. Pulling that out of Sapphire would leave Sapphire a little impotent. If we include SecurityAdmin, we need to include LeftAndMain.
- This raises a deeper issue. We are wanting to split of Sapphire, not for an abstract architectural purity, but so that it can be used to build applications that don't fit nicely into the 'managed content' paradigm. For myself, developing Dawn was such an application. I have also worked on other client applications that I can't get into detail about. In all of these cases, having a security management user interface, and having the ability to quickly create generic admin interfaces (with ModelAdmin) was very useful.
The end result will be that Sapphire gives you:
- An MVC/ORM framework
- A permission model, including a generic UI for editing permissions
- A quick way of making generic administrative interfaces
What do people think of this?
On a smaller note, I think that the File & AssetAdmin system is fairly heavily tied to the CMS, and so should be in the CMS module and not sapphire.
Thanks,
Sam
+1
Coming from an MVC background, frameworks are great for building applications quickly but the effort needed to create admin screens to manage the application is always slower and more painful than it needs to be. It often feels a little like you're writing the app a second time just to get basic CRUD features and any other custom admin functionality.
(Yes, I know some frameworks had things like scaffolding, but these were always dev features and were completely unsuitable for production use.)
If Sapphire can offer the base MVC & ORM benefits as well as a configurable generic way to quickly create admin functionality (along with the required permission model) then I think it's a great move.
Paul
I mentioned giving Sapphire custody of LeftAndMain in the split a while back so I'm all for it.
For any purists out there, another idea is to make Sapphire a pure MVC/ORM framework with no UI/UX built-in for masochists who like to build everything custom and then have module you can add in that includes UI/UX components like LeftAndMain and ModelAdmin for generic interface starting points. I'd go for that too to appease said masochists.
Matt
> --
> You received this message because you are subscribed to the Google Groups "SilverStripe Core Development" group.
> To post to this group, send email to silverst...@googlegroups.com.
> To unsubscribe from this group, send email to silverstripe-d...@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/silverstripe-dev?hl=en.
>
The most annoying part of the setup is that /admin is still CMSMain and (as far as I can tell) none of the other LeftAndMain subclasses can actually handle being the default admin interface, and parts of LeftAndMain break if you try.
With what you're suggesting, it would be nice if we could get AssetAdmin without needing the entire CMS module. Maybe decouple them enough that they're pretty much separate modules. Maybe imitate submodules? Something like cms/assetadmin/, cms/cmsmain/, cms/reportadmin/, etc so that we could just grab the folders, stick a _config.php in them and they'll work?
> --
> You received this message because you are subscribed to the Google Groups "SilverStripe Core Development" group.
> To post to this group, send email to silverst...@googlegroups.com.
> To unsubscribe from this group, send email to silverstripe-d...@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/silverstripe-dev?hl=en.
>
---
Simon Welsh
Admin of http://simon.geek.nz/
Who said Microsoft never created a bug-free program? The blue screen never, ever crashes!
- the module manager is still a theoretical entity and I don't want to rely on it just yet
- i don't want to create another git repo; we already have too many!
However, I am thinking that it would be worth structuring our files such that the content of sapphire/core could be used as this stripped down framework, and potentially we have some kind of build process to create a Sapphire Core package from it.
Sent from my iPhone
+1 to Uncle Cheese. Just provide the Security Admin in its own module then people can choose to use it in their Sapphire projects as needed.
--
You received this message because you are subscribed to the Google Groups "SilverStripe Core Development" group.
To post to this group, send email to silverst...@googlegroups.com.
To unsubscribe from this group, send email to silverstripe-d...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/silverstripe-dev?hl=en.
No virus found in this message.
Checked by AVG - www.avg.com
Version: 10.0.1204 / Virus Database: 1435/3472 - Release Date: 02/27/11
Jamie
One thing to note is that once we get a reliable package manager working, we might fracture the codebase further. The question of 'what is sapphire' is more a case of
- what would be included in a standard .tar.gz
- what would be talked about in 'sapphire documentation
Compare this to jQuery UI: you can download a package that has only the controls you need, but the complete set of them is still known as 'jQuery UI'
I think my worry about moving GUI functionality into Sapphire might be
a result of trying to customise LeftAndMain in the past and becoming
frustrated with it. If it was easier to extend and skin as required
then it would be less of a problem.
> From my point of view, we are talking about principle, here, because
> building applications with Sapphire is already possible. It's just not
> the cleanest thing in the world.
The dozens of unnecessary tables that are created are a little more than principle.
> It just doesn't make a
> whole lot of sense to be managing this sort of data in the same place
> that you create a new account for the CMS, which only requires 3
> fields.
However, I'd say that a simple UI for creating and re-setting people's passwords is a sufficiently common to include with the main product. I've certainly needed it pretty much everything I've worked on.
> I guess I just feel like, if I'm at the point where I'm
> creating my own admin interfaces for everything, why include all that
> extra bloat?
I don't think everyone will create their own admin interfaces for everything. Plenty of people will be happy with an out-of-the-box UI for internal business functions.
As a related point, what about ModelAdmin? This is something that plenty of people find useful and makes total sense in a outside of the managed-cotnent context.
Finally, would you feel differently if you actually liked the design of the out-of-the-box UI, and/or it was easily extendable and themeable, both of which are goals for SilverStripe 3?
> I think as a starting point, I would say we should aim to keep a
> framework invisible.
...
> You shouldn't be able to tell your colleague what
> Sapphire looks like, or what Symfony looks like.
I disagree; comparisons to Symfony aren't relevant because this is a way that we can differentiate ourselves.
> You may have misunderstood me... I certainly don't want a framework
> that lean.
I was simply trying to explain the logical consequence of saying "No UI". The Forms systems *is* UI, especially the more complex fields.
It's getting an overhaul, and it will be more extensible. Stay tuned! I'd recommend that you try out the alpha of SilverStripe 3 once it's released and give us feedback if you think that the API can be improved.
> Whats in the pipeline for LeftAndMain in the future? From what I understand the Prototype js lib is being removed in favour of jQuery, but I'd also like to know if there is any focus on making it a bit easier to add a basic admin area in the CMS with links in the _left panel and a form or html content in the _right panel all submitting via AJAX?It's getting an overhaul, and it will be more extensible. Stay tuned! I'd recommend that you try out the alpha of SilverStripe 3 once it's released and give us feedback if you think that the API can be improved.
--