ASP.NET Coreで作るブログ管理用サイト(OAR ADMIN)
WordPressだったら最初から実装されている管理サイトですが、私の場合、学習を兼ねて自分でブログサイトを作成・構築したため、そんな便利なものは当然用意されていません。
ないものは作るしかないので、公開サイト同様にASP.NET Coreを使ってブログ用の管理サイトを作りました。
目次
- ログイン機能
- 記事の検索
- 記事の登録
- デプロイ機能
- 将来的な実装
ログイン機能
記事の検索
今回の管理サイトのメイン機能である記事の検索画面。
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などのバージョンアップ対応もやっておきたいところですが、こちらも緊急性は低く、ブログサイト自体の優先度が以前よりも下がったので、リニューアルレベルの改修がないと対応しないと思います。
デプロイに時間がかかる点は、現状、シングルスレッドでの動作となっていて、マルチスレッドにすれば改善する可能性があるので、時間があったらやってみます。