欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

发布基于Orchard Core的友浩达科技官网

程序员文章站 2022-05-13 22:40:35
2018.9.25 日深圳市友浩达科技有限公司发布基于Orchard Core开发的官网 http://www.weyhd.com/。 本篇文章为你介绍如何基于Orchard Core开发一个公司网站。Orchard Core是一个免费和开源的社区交流项目,致力于在ASP.NET Core平台开发应 ......

2018.9.25 日深圳市友浩达科技有限公司发布基于orchard core开发的官网 。 本篇文章为你介绍如何基于orchard core开发一个公司网站。orchard core是一个免费和开源的社区交流项目,致力于在asp.net core平台开发应用程序和可重用性组件。它将创建用于asp.net core应用和扩展的共享组件,以及修改这些组件以便使其应用于终端用户,脚本人员和开发者。如果您现在是.net core 跨平台的爱好者,想找一个基于asp.net core开发的开源框架,orchard core是一个很不错的选择,orchard core是一个基于asp.net core构建的可扩展与模块化设计的开源cms系统,全部代码在github上已开源,其中使用了很多框架和最佳实战,它的架构设计值学习 。

官方文档介绍:

github: https://github.com/orchardcms/orchardcore

orchard core是全新一代的asp.net core cms。支持模块化和多租户。整个orchard core就是通过一个个模块module组成的,整个网站由主题和业务模块组成。基于orchard core开发网站主要分为2项任务:开发自定义主题和自定义模块。具体到友浩达的官方网站来说,我们需要自定义主题和自定义 微信公众号和新闻管理模块。

首先需要安装.net core sdk开发包,推荐微软最新的稳定的.net core 2.1 版本。同时推荐安装visual studio 15.8,如果安装了最新版本的visual studio 也就安装了最新的稳定版本.net core sdk。

打开vs2017 新建一个saasapp的asp.net core web应用程序,

然后选择空模板

安装orchardcore包

选择诸如 .net 这种成熟的生态系统,其最大的优势之一,就是第三方软件包和插件的量非常庞大。正如其它的软件包系统一样,你可以下载并安装 .net 软件包,以获取协助,来完成几乎任何能想到的任务和难题。

nuget 即是包管理工具,也是官方的软件包仓库( )。你可以在网页上检索 nuget 软件包,并在自己的机器上使用终端(或者 visual studio 里的图形界面)安装它们

nuget包命令 目前预览版需加 -pre

install-package orchardcore.application.cms.targets -pre

或者在nuget搜索 orchardcore.application.cms.targets

项目开发

打开startup.cs ,在configureservices加入

然后删除configure 中的

app.run(async (context) =>

{

await context.response.writeasync("hello world!");

});

加入

app. useorchardcore();

最终如下:

namespace saasapp

{

public class startup

{

// this method gets called by the runtime. use this method to add services to the container.

// for more information on how to configure your application, visit https://go.microsoft.com/fwlink/?linkid=398940

public void configureservices(iservicecollection services)

{

services.addscoped<iresourcemanifestprovider, resourcesbuilder.resourcemanifest>();

services.addorchardcms();

services.configure<identityoptions>(options =>

{

options.password.requiredigit = false;

options.password.requirelowercase = true;

options.password.requireuppercase = true;

options.password.requirenonalphanumeric = false;

options.password.requireduniquechars = 3;

options.password.requiredlength = 6;

});

}

// this method gets called by the runtime. use this method to configure the http request pipeline.

public void configure(iapplicationbuilder app, ihostingenvironment env)

{

if (env.isdevelopment())

{

app.usedeveloperexceptionpage();

}

app.useorchardcore();

}

}

这里要和大家说一下的resourcesbuilder.resourcemanifest,我们用我们bootstrap中文网的cdn资源替换了内置的google cdn资源,解决我们伟大的那堵墙所阻止的jquery库,如果不替换,进入到orchard core 的管理后台,你就会发现无法点开管理菜单。

然后运行程序,打开浏览会看到初始化安装界面。输入对应信息,然后完成安装。

注意密码必须包含大小写数字和字符才能成功提交。如上图中出现红色是不行的。安装好后配置一下,最终如下:

后台为/admin ,可以进入查看相关设置

为orchard core创建自定义模块

我们将创建一个自定义模块来扩展orchard core。你需要一个已经安装了orchard core的web项目,上一章我们已经完成了这个工作。我们使用visual studio 2017打开项目。我们将添加一个新的.net core class library项目来包含我们的模块:

orchard core需要从web项目到每个模块或主题的引用。所以让我们继续现在添加引用,这样我们就不会忘记了。单击web项目上的“添加引用”,然后将web项目中的引用添加到新模块:

安装模块要求

一旦我们有了一个项目,我们就需要为项目添加一些东西,以便orchard core将其识别为一个模块。打开nuget包管理器,并安装 orchardcore.module.targets包。这个包包括(除其他外)我们需要能够添加扩展点的抽象。如果您要创建主题,请安装orchardcore.theme.targets

我们要添加的第一件事是我们的startup 类。这个类允许我们挂钩orchard core的启动管道; 这是我们做注册依赖项或路由等事情的地方。最基本的启动类看起来像这样:

using microsoft.extensions.dependencyinjection;

using orchardcore.modules;

namespace cvmdesktop

{

public class startup : startupbase

{

public override void configureservices(iservicecollection services)

{

}

}

}

再添加一个清单文件manifest.cs

每个模块和主题都需要有一个清单,它是一assembly:module 标签。清单存储orchard用于描述系统模块和主题的元数据,例如名称,版本,描述,作者和标签。下面是我们的清单样例:

using orchardcore.modules.manifest;

[assembly: module(

name = "cvmdesktop",

author = "weyhd",

website = "http://weyhd.com",

version = "0.0.1",

description = "cvm manage",

category = "infrastructure"

)]

此时,我们可以构建并运行。登录站点的管理面板,您将看到模块显示在“模块”页面中:

自定义模块添加admin菜单以及配置permission

1.在自定义模块项目中安装nuget包 orchardcore.environment.navigation

2.新建adminmenu.cs类

继承inavigationprovider并实现buildnavigation方法。

在builder中可设置多级菜单,在最后一级可以设置菜单请求路径以及权限。

3.新建permission.cs类

继承ipermissionprovider并实现getdefaultstereotypes以及getpermissions方法。

4.启动项目,进入后台启用模块

在左侧菜单即可看到新增的菜单

自定义模块中添加数据库curd操作

根据github上的issues#2248

1.新建index类引用yessql.indexes命名空间,继承mapindex类

此index包含实体中部分字段,亦可全部一致。

2.新建indexprovider类,继承indexprovider<t>

t表示数据操作实体类

3.重写describe方法

4.在map()中映射index类与实体类相关字段。

5.新建migrations类

继承datamigration,需要引用orchardcore.data.migration命名空间。需要安装nuget包orchardcore.data.abstractions。

6.添加create方法

注意名称必须是create,返回类型为int

在create方法中创建表

7.在想实现curd操作的地方注入yessql.isession,使用yessql中的isession进行相关curd操作即可

8.可使用imemorycache配合isession进行相关操作,如