はじめに
当社はC#での開発を主に行っておりますが、そのC#をベースとするCMSには様々なものがございます。
弊社で主に扱ってきたものとしてはSitecore、そしてKentico Xperience(Kentico Kontent)といったものがあり、いずれもこのネスケラボで紹介、説明したことがありますが、どちらもグローバル対応の、かつ、「有償」のCMSとなります。
今回はやや視点を変え、C#ベースの「OSS」のCMSを2つ紹介したいと思います。
Orchard Core
まず1つ目は「Orchard Core」になります。
上記リンクのOrchard Coreのサイトの一番下までスクロールしてもらうと「.NET Foundation」というロゴがあります。
この.NET Foundationは、マイクロソフトによって設立された非営利団体で、.NETエコシステムについてオープンソース開発と協力の促進を行っていて、MicrosoftだけでなくAWS等、様々な企業がスポンサーとなっています。
そして、Visual Studio+C#で開発しているプログラマーの皆さんが普段使っているであろうNuGetもこの.NET Foundationによって作られています。
その.NET Foundationが管理するプロジェクトの1つがこのOrchard Coreになります。
元々ASP.NET MVCプラットフォームで作られた「Orchard CMS」というCMSが存在していたのですが、これを.NET Coreで再開発したものがこのOrchard Coreとなります。
そしてこのOrchard Coreは以下の2つで構成されています。
- Orchard Core Framework : ASP.NET Core 上でモジュール式のマルチテナントアプリケーションを構築するためのアプリケーション フレームワーク
- Orchard Core CMS : Orchard Core Framework 上に構築された Web コンテンツ管理システム (CMS)
Orchard Coreの特徴
Orchard CoreはヘッドレスCMSとしても利用できますし、通常のCMSのような使い方もできます。
また、当社はCMSによるWeb開発も行っているのですが、そのときにお客様より要求される基本的な機能も網羅しております。
例えば以下のようなものが挙げられます。
-
Roleによる権限設定:Roleという概念でコンテンツの編集可・不可の設定等が行えます
-
期限付き公開:この日時になったらコンテンツを公開するといった設定が可能です
-
ワークフロー:コンテンツ承認ワークフローが作成できます
Umbraco
次にもう1つのCMS、Umbracoについて説明します。
まずCMSの学習方法として、そのCMSを作った会社なりコミュニティがオンラインドキュメントやチュートリアルを提供しているはずなので、それに従って学習していくことで基本的な使い方を学ぶことができます。
Orchard Coreは特定の会社等が開発サポートを行ってくれるわけではなく、自分たちでGithubのドキュメントやコードを読み、疑問点があればStackOverflow等で問い合わせる必要がありますので、学習コストがやや高いものになります。
また、OSSとなるとセキュリティ周りを心配される方がいらっしゃるかと思いますが、そういった方には「Umbraco」が望ましいかもしれません。
このUmbraco、10年前の2013年には以下の記事で取り上げられており、この記事に書かれているように今も海外では様々なサイトで使われています。
オンラインドキュメント等も全てをチェック・比較できたわけではありませんが、公式サイトからすぐにアクセスでき、内容も整理されているようです。
また、パートナー制度やトレーニング(有償)も受けられますし、有償のサポートプランを契約すれば開発に関するサポート・アドバイスも受けられます。
このように様々な形でのフォローを受けることができますのでその点ではOrchard Coreより学習コストは下がりそうです。
Umbracoの特徴
Umbracoは単純なCMSに留まらず、様々な種類・機能があります。
種類としては
- Umbraco CMS
- Umbraco Cloud
- Umbraco Heartcore
Umbraco CloudはUmbracoのSaaS版、HeartcoreはヘッドレスCMSになります。
アドオンによりフォーム機能やEコマース機能も追加できます。
また前述の内容と関連しますが、サポートプランによっては以下のURLの「Bugfix warranty 」に書かれているように「We guarantee a fix within 7 business days from the date of confirmation for defects in the Umbraco CMS that are considered of the highest severity (severity level 1) or relate to security. 」、つまり「重大な不具合は7日間以内に修正する」とありますので、「OSSはセキュリティやサポートが。。」とお考えの方にとっては非常に良いのではと思います。
ちなみに、もしUmbracoにおいてセキュリティ上重要な問題が発覚し、それが修正された場合はBugfix warrantyを利用しない場合であってもその修正内容が展開されます。
また、Umbracoは管理画面の日本語化にも対応しています。ただし、全ての箇所を細かくチェックできてはいないため一部が英語のままになっている可能性があり、その点だけ注意してもらえればと思います。
Application Insightsの利用
あとは運用時のやや開発者寄りに踏み込んだお話を。
C#、かつAzureを利用している開発者の方であればApplication Insightsを利用して、パフォーマンスやエラー等のチェックを行えるようにしていると思います。
CMSの場合はその内部処理がブラックボックスとなってしまって、Application Insightsを組み込んでも問題の追及ができない場合があるのですが、今回紹介した2つのCMSについてはApplication Insightsが利用可能であり、パフォーマンスの監視であったり、何か問題があった場合もその追及が容易になります。
最後に
他にもDotNetNuke(以下DNN)という、これもC#ベースのCMSもありまして、UmbracoやDotNetNukeについては特に海外においてかなり実績があるようです。
DNNもUmbraco同様、パートナー制度であったり、学習・習得にあたって様々な情報が提供されているようです。DNNも他のCMS同様ヘッドレスCMSやSaaS化を行っているようで複数の製品が出ています(まだ調べきれていないため、今回は詳しい紹介は割愛します)。
以上のようにOSSでもいろいろな選択肢があります。
どれもCMSの機能として必要なものは一通り揃えており、更にヘッドレスCMSも含めると更に選択肢が広がり、採用にあたっては非常に判断が難しいものになります。
工数・費用が削減でき、非エンジニアでもコンテンツの編集ができるというCMSのメリットはもちろん大きいのですが、そのCMSのバージョンアップや仕様変更、ライセンスやサポート価格の変更等、使用するCMSによっては制限やデメリットも少なからずあることは既にCMSを利用されている方々はもちろんご存じかと思いますが、これから採用を考えている方々にも十分にご理解いただいた上で採用をご検討いただければと思います。
実際、元々お客様側ではCMSの利用を考えていたのですが、我々がお客様から色々とヒアリングさせていただき検討を重ねた結果、フルスクラッチで実装して対応するといった案件もありました。
もちろんCMSを採用することで大幅に工数の削減を実現できた案件もあるのですが、重要なのは手段よりもお客様が本当に求めているものが何なのかであり、それを踏まえた上でその実現方法を提案できればと思います。
もしCMSの採用、もしくは入れ替えを検討されているお客様は是非当社にご相談ください。
何がお客様に適したものであるかを現状のお悩みやご希望を伺いつつ、ご一緒に検討させていただければと思います。
CMSによるサイト開発に限らず、フルスクラッチでのWebサイト、ツール開発、スマホアプリやHoloLensと多岐に渡って開発を行っておりますのでお気軽にお問い合わせください。