【Orchard Core从零开始】(1)VS中手动创建CMS项目
Orchard Core包含两种不同类型的目的:
Orchard Core Framework:基于ASP.NET Core的、构建模块化和多租户的应用程序框架,旨在开发SaaS应用,托管DLL名为OrchardCore.Application.Cms.Core.Targets。
Orchard Core CMS:基于Orchard Core Framework开发的完整网站内容管理系统(CMS),托管DLL名为OrchardCore.Application.Cms.Targets。
其中Orchard Core Framework(OrchardCore.Application.Cms.Core.Targets)不包含任何前台主题,只包含TheAdmin主题和Blank site、Headless site两个配方,仅用于以下情形:
开发Decoupled CMS;
开发Headless CMS;
从零开发一个带主题的站点。
而Orchard Core CMS(OrchardCore.Application.Cms.Targets)包含3种不同的建站策略:
Full CMS:该模式使用一个主题和多个模板来渲染内容,主要面向创建一个几乎不需要开发的、包含前后台的完整CMS系统。
Decoupled CMS:该模式默认无前台模板,仅包含后台。需要使用Razor Pages或MVC Actions创建所有前台模板,并使用内容服务获取具体内容。
Headless CMS. 该模式仅含管理内容的后台,需要创建另一个独立的前台应用,并使用GraphQL或者REST APIs获取所有托管内容。
本文以引用OrchardCore.Application.Cms.Targets创建一个CMS为例。
1、在VS中新建一个ASP.NET Core Empty项目:
2、为项目取一个名称:
取消勾选“Place solution and project in the same directory”是为了后续创建模块或主题时放在各自的子目录中。
3、右键单击项目名称,选择“Manage NuGet Packages...”打开Nuget Package Manager添加“OrchardCore.Application.Cms.Targets”。
4、修改Program.cs
(1)若有以下代码先去掉:
builder.Services.AddRazorPages();
app.MapGet("/", () => "Hello World!");
添加以下代码:
builder.Services.AddOrchardCms();
(2)若有以下代码也去掉:
app.UseHttpsRedirection(); app.UseRouting(); app.UseAuthorization(); app.MapRazorPages();
添加以下代码:
app.UseOrchardCore();
5、F5运行,浏览器打开。
选择相应的配方(Recipe)则启用对应的建站策略:
Orchard Core Framework:Software as a Service;
Full CMS:Agency、Blog、Coming Soon;
Decoupled CMS:Blank site;
Headless CMS:Headless site。
参考资料:https://docs.orchardcore.net/