情報応用演習Ⅰ(2024)

【T9a】簡易ブログソフトウェアの作成 Part.Ⅰ ~ 認証機能の組み込み(2/14)

プロジェクトタイプASP.NET Core Web アプリ(Model-View-Controller)
プロジェクト名T9a
ソリューション名PIT9
ターゲットフレームワーク.NET 8.0(長期的なサポート)
最上位レベルのステートメントを使用しない使用する(チェックオフ)

9a-2. 既存のウェブログソフトウェアを体験する

読者の中には自分でウェブログ(= ブログ ,ウェブページ上で書く日記)を作成した経験がある者もいるかもしれないが,既存のウェブログサービスを利用したことはあっても 自分でウェブログソフトウェアを設置して利用 した経験のある者は少ないかもしれない. 本節ではまず既存のウェブログソフトウェアをセットアップして,ウェブログソフトウェアがどのような挙動をするものなのかを体験してみよう.

幸い,ASP.NET Core で作成されたウェブログソフトウェアとしてPiranha CMSというソフトウェアがある. セットアップや使用方法も簡単なためまずはこれをセットアップしてみよう.以下の手順を行おう. 以降の手順では Visual Studio のプロジェクトが作成される.このためまずは以前と同じ手順で空のソリューションPIT9を作成してから作業を行おう.

Piranha CMS のセットアップ
  • 【手順】Piranha CMSのセットアップ
    1. 作成した PIT9 ソリューションのソリューションフォルダにTestBlogという名前のフォルダを作成する.
      • Visual Studio でコマンドラインターミナル1を開き_のコマンドを実行するとよい(_).
    2. _に示すコマンドを実行する(_).
      • 初回実行時は_の1行目コマンド(Piranha CMS のプロジェクトのテンプレートのインストール)はかなり時間がかかるので気長に待つこと
      • また, 1行目のコマンドはそのシステムでは一度実行するだけでよい .以降 Piranha CMS のインスタンスを作成する際は2行目以降を実行するか,もしくは Visual Studio の新規作成画面にプロジェクトテンプレートが登録されているのでそこから選択すればよい.
    3. ソリューション PIT9 に作成したプロジェクトを追加する.
      1. ソリューションエクスプローラー上で,ソリューション PIT9 を右クリックして「エクスプローラーでフォルダを開く」をクリックする(_).
      2. 開いたフォルダに TestBlog というフォルダがあるはずなのでこれを開く(_).
      3. フォルダ内に TestBlog.csproj というファイルがあるはずなので,これを選択してシフトキーを押しながら TestBlog.csproj を右クリックして「パスのコピー」をクリックする.もしくは,エクスプローラー右上の→「パスのコピー」をクリックする(_).
    4. Visual Studio に戻ってソリューションエクスプローラーの PIT9 を右クリックして「追加」→「既存のプロジェクト」をクリックし,「既存プロジェクトの追加」ダイアログのファイル名に先ほどのパスを貼り付けて「開く」ボタンをクリックする(__).
    5. デフォルトではHTTPSでの接続が前提となっているので,これをHTTPでの接続に変更する. Properties/launchSettings.json を_に示すように変更する.
    6. 実行ボタンの右側の▼をクリックして, TestBlog が選択されているのを確認してから「実行」ボタンをクリックする.
      • このプロジェクトは通常の ASP.NET Core ウェブアプリなので,起動するとウェブブラウザが起動し,ページが表示される.
    7. ページ内にあるSeed some dataボタンをクリックしてセットアップを完了する(_).
フォルダの作成とカレントディレクトリの変更
PS> mkdir TestBlog
PS> cd TestBlog
Piranha CMSのセットアップのためのコマンド
PS> dotnet new install Piranha.Templates
PS> dotnet new piranha.mvc
launchSettings.jsonの修正
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
{
  "profiles": {
    "TestBlog": {
      "commandName": "Project",
      "launchBrowser": true,
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      },
      "applicationUrl": "http://localhost:5000"
    }
  }
}

これでソフトウェアのセットアップは済んだので,管理ページにアクセスしてページを作成してみよう.

  • 【手順】Piranha CMSにおける記事の作成
    1. URLの末尾を書き換えてhttp://localhost:5000/manager/にアクセスする(_).
    2. ユーザー名にはadmin,パスワードにはpasswordと入力して「」ボタンをクリックする(_).
    3. 画面左の「」(Pages)をクリックする.
    4. 最初から作成済みになっている「Home」「Blog」「Docs」というページを,その左にある「」ボタンをクリックして削除する(_).
      • 確認が表示されたら「Delete」ボタンをクリックする.
    5. 画面右上の「+Add Page」→「Standard page」をクリックする(_).
    6. ページ内容を適当に編集する(_).
      1. ページタイトルに日本語を使っている場合は「」ボタンを押して「Slug」に適当な英字のタイトルをつける必要がある.
      2. ページ内容を追加する場合は画面下の「」ボタンを押して「Content」をクリックすればよい. -「Save」ボタンをクリックし,エラーがなければ「Publish」(公開)ボタンをクリックする(_). -「」ボタンをクリックするとページを表示できる(_)
記事の作成

勝手を覚えたらほかのページを作成したり,管理ページのほかの項目を適当に触って使用感を確かめておこう. 当然のことながらここではウェブログソフトウェアを読者らのPC内でローカルで動作させているだけなので,公開したページの内容が インターネットに公開される懼れはない.

ウェブログソフトウエアには今回紹介した Piranha CMS 以外にも,様々な言語で作成された,様々なプラットフォームで動作可能なものがある. 参考としてよく使用されるブログソフトウェアを以下に挙げる.興味のある者は調べてみるとよいだろう.

  • 【よく使用されるブログソフトウェア・CMS】
    • WordPress(わーどぷれす)
      • おそらくもっともよく用いられているブログソフトウェア.開発言語はPHP.データベースはMySQL.
    • Movable Type(むーばぶるたいぷ)
      • 古くからあるブログソフトウェア.開発言語はPHPとPerl.データベースはMySQL.
    • XOOPS(ずーぷす)
      • ブログソフトウェアというよりもいわゆるCMS(コンテンツ管理システム)のひとつ.開発言語はPHP.データベースはMySQL.
    • Drupal(どるーぱる)
      • これもCMSのひとつ.開発言語はPHP.データベースはMySQL/PostgreSQL/SQLite.
    • Hugo(ひゅーごー)
      • 静的サイトジェネレーターとよばれるソフトウェアのひとつで,上述のようなサーバに設置するタイプのブログソフトウェアとは少し異なるもの.開発言語はGo.データベースは使用しない.
      • ちなみにこの指導書もHugoを用いて作られている.
    • etc...etc...

ここで紹介したものも含めサーバーに設置するタイプのブログソフトウェアはおおむね似たような使用感である. 今回,本章で作成するウェブログソフトウェアはここまでリッチなものではないが,ソフトウェアの基本的な設計は同様なものである.

ちなみに,これまでも EF Core の操作でも使用してきたが _dotnetコマンドは, .NET の最も重要なユーティリティ である.dotnet newコマンドは Visual Studio のプロジェクトを生成するコマンドである.実はこれを用いると「コンソールアプリ」や 「ASP.NET Core ウェブアプリ」などVisual Studio のプロジェクト作成画面で表示されるすべての種類の プロジェクトを作成することができる(参考). 興味のある読者は調べてみるとよい.


  1. タブのタイトルは「開発用PowerShell」もしくは「Developer PowerShell」となっている. ↩︎

Last updated on 2024-06-19
Published on 2024-06-19

Powered by Hugo. Theme by TechDoc. Designed by Thingsym.