2020.7.2

ASP.NET Coreで作るブログ管理用サイト(OAR ADMIN)

WordPressだったら最初から実装されている管理サイトですが、私の場合、学習を兼ねて自分でブログサイトを作成・構築したため、そんな便利なものは当然用意されていません。

ないものは作るしかないので、公開サイト同様にASP.NET Coreを使ってブログ用の管理サイトを作りました。

目次

  • ログイン機能
  • 記事の検索
  • 記事の登録
  • デプロイ機能
  • 将来的な実装

ログイン機能

基本的に私一人しか使わないのでベーシック認証で十分でしたが、せっかくなので管理サイトに実装。

テンプレートを使ってプロジェクトを作成した際、チェック一つで基本的なログイン機能を実装できるのがVisual Studioを使う際のメリットだと思います。ただ、私が使うには機能過多だったので、不要なコードを削除するのに苦労しました。

記事の検索

今回の管理サイトのメイン機能である記事の検索画面。

Visual Studioでプロジェクトを作成する際のテンプレートで「React + Redux」タイプのものを選択したので、UIにはReactに対応したMaterial-UIを使用しています。私が使い始めた時のバージョンが「v0.x」系だったのですが、今、確認すると「v4.x」までバージョンが上がっていて、バージョンアップの速度に驚きます。

記事の登録

記事の検索画面から新規記事の登録や編集を行うことができます。

ただ、ここで登録しているのはあくまで検索用の記事データで、実際の記事はローカルで書いたHTMLファイルをサーバに手動でアップロードという手順を踏んでおり、これについては画像ファイルも同様です。

理由はアップロード機能を実装する時間がなかったからですが、GitHubのプライベートリポジトリをバックアップ替わりに使っていることもあって、ローカルで色々と作業できた方が使い勝手がいいという面もあります。

一般向けのサイトであればあり得ませんが、自分一人使うのであれば問題なく、HTMLの編集もVSCodeが使えた方が楽なので、今の形に落ち着きました。

また、VSCodeのRemort SSHを使ってサーバ上のファイルを直接編集しても良かったですが、さすがに、直接ファイルを編集するのは怖かったので、試しに何度かやった後、結局やらないことにしました。

デプロイ機能

この管理サイトの最大のウリ?がこのデプロイ機能。

管理サイト同様、記事の公開サイトもASP.NET Coreで作成しており、動的サイトへアクセスが集中すると月400円弱の貧弱なVPSサーバーでは悲鳴を上げそうだったので、静的なHTMLファイルを作成して公開用のサイトに配置するようにしています。

通常のHTML要素をAMPコンポーネントに置換したりといったことも、このデプロイ機能で実施。

記事が1000本を超えたあたりから、全ページをデプロイし直すと10分くらい時間がかかるようになってしまったので、ここはパフォーマンスの改善に取り組みたいところです。(放っておいたら終わってるので困ってはいないですけど)

将来的な実装

記事や画像ファイルのアップロード、記事の内容をWebから直接編集、複数ユーザーの対応など、やってみたいことは色々とありましたが、そこまで作り込んだところで使われる予定がないので、現状はペンディング状態です。

当初の目的であるWebシステム構築の学習としては、すでに、その役割を十分に果たしてしまった感があるので、よほど暇にならない限りはやらないと思います。

ASP.NET CoreやReact、Material-UIなどのバージョンアップ対応もやっておきたいところですが、こちらも緊急性は低く、ブログサイト自体の優先度が以前よりも下がったので、リニューアルレベルの改修がないと対応しないと思います。

デプロイに時間がかかる点は、現状、シングルスレッドでの動作となっていて、マルチスレッドにすれば改善する可能性があるので、時間があったらやってみます。

Works】関連記事