發佈基於Orchard Core的友浩達科技官網

来源:https://www.cnblogs.com/shanyou/archive/2018/09/25/9700422.html
-Advertisement-
Play Games

2018.9.25 日深圳市友浩達科技有限公司發佈基於Orchard Core開發的官網 http://www.weyhd.com/。 本篇文章為你介紹如何基於Orchard Core開發一個公司網站。Orchard Core是一個免費和開源的社區交流項目,致力於在ASP.NET Core平臺開發應 ...


2018.9.25 日深圳市友浩達科技有限公司發佈基於Orchard Core開發的官網 http://www.weyhd.com/。 本篇文章為你介紹如何基於Orchard Core開發一個公司網站。Orchard Core是一個免費和開源的社區交流項目,致力於在ASP.NET Core平臺開發應用程式和可重用性組件。它將創建用於ASP.Net Core應用和擴展的共用組件,以及修改這些組件以便使其應用於終端用戶,腳本人員和開發者。如果您現在是.NET Core 跨平臺的愛好者,想找一個基於ASP.NET Core開發的開源框架,Orchard Core是一個很不錯的選擇,Orchard Core是一個基於ASP.NET Core構建的可擴展與模塊化設計的開源CMS系統,全部代碼在GitHub上已開源,其中使用了很多框架和最佳實戰,它的架構設計值學習 。

官方文檔介紹:http://orchardcore.readthedocs.io/en/latest/

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應用程式,

image

然後選擇空模板

image

安裝OrchardCore包

選擇諸如 .NET 這種成熟的生態系統,其最大的優勢之一,就是第三方軟體包和插件的量非常龐大。正如其它的軟體包系統一樣,你可以下載並安裝 .NET 軟體包,以獲取協助,來完成幾乎任何能想到的任務和難題。

NuGet 即是包管理工具,也是官方的軟體包倉庫(https://www.nuget.org )。你可以在網頁上檢索 NuGet 軟體包,併在自己的機器上使用終端(或者 Visual Studio 里的圖形界面)安裝它們

NuGet包命令 目前預覽版需加 -Pre

Install-Package OrchardCore.Application.Cms.Targets -Pre

或者在NuGet搜索 OrchardCore.Application.Cms.Targets

image

項目開發

打開Startup.cs ,在ConfigureServices加入

image

然後刪除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 的管理後臺,你就會發現無法點開管理菜單。

然後運行程式,打開瀏覽會看到初始化安裝界面。輸入對應信息,然後完成安裝。

image

註意密碼必須包含大小寫數字和字元才能成功提交。如上圖中出現紅色是不行的。安裝好後配置一下,最終如下:

image

後臺為/Admin ,可以進入查看相關設置

image

為Orchard Core創建自定義模塊

我們將創建一個自定義模塊來擴展Orchard Core。你需要一個已經安裝了Orchard Core的web項目,上一章我們已經完成了這個工作。我們使用Visual Studio 2017打開項目。我們將添加一個新的.NET Core Class Library項目來包含我們的模塊:

image

Orchard Core需要從Web項目到每個模塊或主題的引用。所以讓我們繼續現在添加引用,這樣我們就不會忘記了。單擊Web項目上的“添加引用”,然後將Web項目中的引用添加到新模塊:

image

安裝模塊要求

一旦我們有了一個項目,我們就需要為項目添加一些東西,以便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"

)]

此時,我們可以構建並運行。登錄站點的管理面板,您將看到模塊顯示在“模塊”頁面中:

image

自定義模塊添加Admin菜單以及配置permission

1.在自定義模塊項目中安裝Nuget包 OrchardCore.Environment.Navigation

clip_image002

2.新建AdminMenu.cs類

繼承INavigationProvider並實現BuildNavigation方法。

clip_image004

在builder中可設置多級菜單,在最後一級可以設置菜單請求路徑以及許可權。

3.新建Permission.cs類

繼承IPermissionProvider並實現GetDefaultStereotypes以及GetPermissions方法。

clip_image006

4.啟動項目,進入後臺啟用模塊

在左側菜單即可看到新增的菜單

clip_image008

自定義模塊中添加資料庫CURD操作

根據Github上的issues#2248

1.新建Index類引用YesSql.Indexes命名空間,繼承MapIndex類

此Index包含實體中部分欄位,亦可全部一致。

clip_image002[5]

2.新建IndexProvider類,繼承IndexProvider<T>

T表示數據操作實體類

3.重寫Describe方法

clip_image004[5]

4.在Map()中映射Index類與實體類相關欄位。

clip_image006[5]

5.新建Migrations類

繼承DataMigration,需要引用OrchardCore.Data.Migration命名空間。需要安裝nuget包OrchardCore.Data.Abstractions。

6.添加Create方法

註意名稱必須是Create,返回類型為Int

在Create方法中創建表

clip_image008[5]

7.在想實現CURD操作的地方註入YesSql.ISession,使用yessql中的Isession進行相關curd操作即可

clip_image010

8.可使用IMemoryCache配合Isession進行相關操作,如

clip_image012


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 兩個基本類型變數相比較,=是比較它們的值是否相等 兩個對象相比是比較他們的地址值是否相等 equals()是比較對象的屬性值是否相等,前提是這兩個對象必須重寫object對象的equals方法,object對象是所有對象的基類,也就是所有對象都繼承了object對象,如果不重寫equals方法,ob ...
  • python筆記網站:http://www.runoob.com/python/python-tutorial.html ...
  • 1.pyc文件 是python預編譯後的位元組碼文件,並不是機器碼。2.PyCodeObject 是Python編譯器真正編譯成的結果; 當python程式運行時,編譯的結果是保存在PyCodeObject中。 在Python程式運行結束時,Python解釋器則將PyCodeObject寫回到pyc文 ...
  • 感謝博主提供的思路https://blog.csdn.net/softimite_zifeng/article/details/54289012 ...
  • 一、數值運算 各進位的數值計算很簡單,把各進位數轉換成 十進位數進行計算,然後再轉換成原類型即可。 舉例 :二進位之間的加法 二、位運算 什麼是位運算?程式中的所有內容在電腦記憶體中都是以二進位的形式儲存的(即:0或1),位運算就是直接對在記憶體中的二進位數的每位進行運算操作 在C#中可以對整型運算對 ...
  • MVC裡面如果直接將數據返回到前端頁面,我們常用的方式就是用return view(); 那麼我不想直接用razor語法,畢竟razor這玩意兒實在是太難記了,還不如寫ajax對接來得舒服不是 那麼我們可以這麼做 1.定義ActionResult,返回json,標記屬性可以採用HttpPost,也可 ...
  • 作者:依樂祝 原文地址:https://www.cnblogs.com/yilezhu/p/9703460.html NET Core項目發佈的時候你有沒有註意到這兩個選項呢?有沒有糾結過框架依賴與獨立部署到底有什麼區別呢?如果有的話那麼這篇文章可以參考下! 為什麼要寫這篇文章呢?因為今天同事問我框 ...
  • 1.添加初始化數據(Seed) 我們可以在初始化資料庫的過程中給資料庫添加一些數據。為了實現初始化數據(seed data)我們必須創建一個自定義的資料庫初始化器(DB initializer),並重寫其中的Seed方法。 下邊的慄子展示在School資料庫中給Standard表添加預設的數據: 第 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...