OrchardCMS / OrchardCore

Orchard Core is an open-source modular and multi-tenant application framework built with ASP.NET Core, and a content management system (CMS) built on top of that framework.
https://orchardcore.net
BSD 3-Clause "New" or "Revised" License
7.33k stars 2.36k forks source link

How do I create the structure and content of a page? #11853

Closed mehranrezaei closed 2 years ago

mehranrezaei commented 2 years ago

I have been using the previous version of Orchard for several years. I have developed several modules and themes for that.

The previous version was a CMS similar to WordPress. It had the capabilities to manage and produce the content of a website. For example, the previous version was initially equipped with a WYSIWYG editor, and then the Layouts module was developed. It was also possible to create custom elements or compatibility with Bootstrap. Similar to things like the Elementor in WordPress.

But now that I have started using the new version of Orchard, OrchardCore, I can not understand this ecosystem. I know that the new version is designed as two independent parts, a Framework and a CMS to be more useful. However, the new version also has a content management system. In this section, I do not see sufficient possibilities for managing the content of a site, even creating a simple page! I do not even see the possibility of making a simple row or column!

In general, when I installed OrchardCore, I came across a super-fast platform that has no ability to manage a normal website. If OrchardCore is to be used only as a framework or Back-End, then what was the purpose of creating the CMS section?

Is there a plan to create something like the Elementor for this super fast platform? At the very least, have there been examples of modules that provide such a feature for OrchardCore?

Also, similar to other platforms that provide migration instructions when they have major updates, is there an instruction or example for OrchardCore to learn how to migrate modules or themes? For example, I do not know how to create database tables or Records in OrchardCore or how I can make a query on content items or other Records. Because as far as I know there is no NHibernate or EF in this version. Or whether the concepts of themes, Layers, Zones, Widgets, Parts, etc. still exist in the new version or not. Many things are unknown to me, and despite my intense desire to migrate to this super-fast system that uses the best technology of the day, I really do not know how to meet my needs in it.

Please guide me in these cases.

MikeAlhayek commented 2 years ago

Start looking at the docs.

I don’t know much about the previous version of OC, but I know we have WYSISYG in OrchardCore. So if you only want that just add HtmlPart to your content type. I don’t know much about Elementor support, but you should be able to use it by implementing Elementor editor for the HTML field. https://docs.orchardcore.net/en/latest/docs/reference/modules/Html/

ns8482e commented 2 years ago

OrchardCore is designed to use document database using YesSql that internally using Dapper and SQL.

All content items are stored in Document table that contains json document data. YesSql provides material indexes - each indexes has it’s own table.

CMS capabilities conceptually inherited from OrchardCMS including ContentManagement (ContentPart, ContentType, ContentField )DisplayManagement ( Layer, Themes, Layer, Widget,Rules,Placement) and available in OrchardCore

OrchardCore is designed for Content first approach that support more scenarios like headless and decoupled, using api and graphql, templates and display management also support liquid syntax and ability edit liquid from Admin UI

Yes There is no ootb design first modules like elementor/LayoutPart. However there is Flow module that lets you design pages and by taking advantage of display management you can implement different design views for same content data

mehranrezaei commented 2 years ago

Thank you for your answers.

A very large percentage of developers need a content management system. Like WordPress. But .NET developers are not interested in WordPress. For reasons you probably know. Like old technology and architecture, very low speed, more difficult development for .NET programmers and etc.

The previous version of Orchard was a solution for .NET developers as a replacement for WordPress! It seems that OrchardCore does not currently have the ability to create and manage a real website. So to achieve a CMS we need a large amount of personal development. Therefore, this version will no longer meet the needs of a high percentage of audiences. This is my personal opinion and I know many are against it!

I also think the development of OrchardCore with the same features and facilities and objectives of the previous version but with the new .NET technology could be very welcomed because of the speed and supporting multi-platforms and attractive improvements of the new .NET.

On the other hand, to create a dedicated website with special needs, I do not know why I have to depend on this platform. Why not develop directly with .NET Core? Is it just for features like Multi tenancy? What percentage of scenarios require this feature? Why should I rely on YesSql, which may not be widely used and has no definite future? And I do not know how much it can meet my future needs?

The previous version was a multi-purpose CMS that was almost as easy to extend. The new version is practically a framework and for any work you need a huge amount of development. And even if we want to count on the plugins that may be developed on this system in the future for the main features of a CMS, we will end up with the problems that WordPress has. It means interference, incompatibility and slowness of the system!

I think the goal of Orchard was to provide a content management system in the .NET ecosystem as an alternative to WordPress. Now we may have lost the goal!

Of course, I know that very professional programmers have been involved in the development of OrchardCore, and their work is certainly invaluable. But I'm not sure this platform can actually be considered the new version of Orchard. Because it does not meet the same needs. Maybe the goals have changed.

Thank you.

Skrypt commented 2 years ago

I don't think there is any issue with YesSQL since it is based on Dapper which is a reliable third-party library that has been proven to be one the most efficient of them all (ORMs). Orchard Core doesn't try to be like WordPress because it doesn't have a module gallery as there was in Orchard. Of course, we removed the parts that were making Orchard slow; and the dynamic compilation on runtime was one part that did not make sense to keep as we are now in the Docker containers/deployment world. Using containers is far more reliable than allowing to load assemblies on runtime. It has always been an issue in .NET frameworks to effectively remove assemblies from runtime so unless something new happens we won't be able to have module installations at runtime as WordPress has. Fact: .NET is not PHP.

If you compare the number of modules that Orchard Core has vs Orchard you will see that we took time to include most of the features that were useful in Orchard and now they are supported in the source code directly by the community. Also, Orchard Core has better documentation than Orchard had back then. And yes, it tries to be a framework AND a CMS but the difference is that both try to be kept separated so that some can use only the framework for their own usage. The CMS part has been kept pretty much the same except that now you can use Liquid to create Views for your shapes on runtime (no need to compile). Also, the Layout module has been replaced by the Flow module because we felt that it needed a refresh so that it could be used with a "Live Preview" window.

We don't have a tool like Elementor in Orchard Core because it is an inline HTML editor and Orchard never had an efficient inline editor developed by anyone. There have been requests in the past about having these kinds of editors but as you can see Elementor is an external product of the WordPress ecosystem; it is not WordPress.

mehranrezaei commented 2 years ago

@Skrypt, @ns8482e, @CrestApps Thank you so much for your answers.

With your explanation, I learned new things about OrchardCore. But I think there is still the main problem.

@Skrypt, You are right about Elementor. It is a plugin. But keep in mind that WordPress also has editors like Gutenberg and Block Editor by default, as this is required in a CMS.

In my opinion, the Flow module does not have the necessary efficiency to build and manage content. Especially for those who are not programmers!

Although in Orchard I have implemented the possibility of using Liquid and also @LombiqTechnologies had provided a module for this, I do not think this feature is enough.

We had a problem with the Orchard, and it was that, the Orchard CMS was not very easy to use for non-programmers. I think the new version will be difficult for programmers as well and will require a lot of personal development. Usually when we talk about CMS we are talking about something that we can install and start producing website content. Otherwise, its audience will be very small.

You know better than anyone the potential of the OrchardCore platform and its power. I think that without the facilities that this platform can be used by the public and non-programmers, this unique platform can not show all its power and capabilities and be used by few people.

However, it may be a little early to judge, or I may not be familiar enough with the new system. Maybe changing your approach about removing the Editor and Layout module and replacing the Flow module has given us more flexibility that I have yet to discover.

The fact is that the first time I installed the new version, I could not communicate with it and understand how to generate page content. Keep in mind that I am a programmer and I am quite familiar with the previous version. Ordinary people who want to use this platform as a CMS will probably have more problems.

I'm trying to start reading the documentation for the new version.

Thanks to all the friends who participate in this discussion. I would like to know the opinion of others about this.

jptissot commented 2 years ago

I haven't personally played with this module but have a look at : https://github.com/EtchUK/Etch.OrchardCore.Blocks

This might be what you are looking for. There are many javascript libraries out there that focus on the issue you are trying to solve. Maybe create something similar to Flow or the above mentionned blocks module might be a good addition to OrchardCore. I do agree that it can be hard for non programmers to get started and create pages, maybe something to improve in the future.

ns8482e commented 2 years ago

@mehranrezaei the issue with design based solution like layout part as in O1 or /Elementor/Wix is that tied to structural design (theme/css/html) targeting web, it might ease the end user but it has limitation that implementation has to stick with one/other tech implementation.

For example OC CMS provides flow part but really base implementation is tied to bootstrap - if you choose implement another css ( material web for example) or tech you really need to override all shapes ( and you can override in OC but) IMO that's like counter productive.

Sometime back I had written about flow part you can read here

The good part of OC is that it provides best of both worlds - it provides API and IOrchard helper for headless/decoupled, with that you can get the content and you can use tech like ASP.NET/Vue/React of your choice for displaying or you can use OOTB OC's display management and rendering and take advantage of templates and placements.

Here's link/discussions/workaround related to Layout part in OC CORE

If you are really want to build things all your self on ASP.NET core but want to leverage OC framework - you could use SaaS recipe.

mehranrezaei commented 2 years ago

@jptissot @ns8482e Thank you so much for the threads you gave. I will definitely check them.