GrapeCity ActiveReports for .NET 16.0J
ASP.NET Core のミドルウェア
ActiveReportsユーザーガイド > レポートの表示 > JSビューワの使用 > ASP.NET Core のミドルウェア

ASP.NET Core のミドルウェアとは、要求と応答を処理するためのソフトウェアです。各ミドルウェアコンポーネントは特定の目的を果たし、一方のミドルウェアがユーザーを認証し、もう一方のミドルウェアがCSS、JavaScriptなどの静的ファイルを処理します。これらのミドルウェアコンポーネントは、一緒に要求パイプラインを構成します。

要求パイプラインは、StartupクラスのConfigureメソッドで構成されます。要求パイプライン内の各ミドルウェアコンポーネントは、ASP.NET Coreで要求がどのように処理されるかを決定します。ASP.NET Core Webアプリケーションテンプレートによって開発されたデフォルトのコードは、ミドルウェアのセット(IApplicationBuilderインターフェイスのUseDeveloperExceptionPageおよびUseStaticFiles)を使用して、アプリケーションの要求パイプラインを設定します。ミドルウェアは、要求パイプラインに追加された順序で実行されます。

レポートをブラウザ上に表示するには、ASP.NET Core のミドルウェアでActiveReportsのJSビューワを構成する必要があります。これは、ConfigureメソッドにUseReporting()ミドルウェアを追加することで実現できます。これにより、ActiveReportsのAPIとハンドラのミドルウェアが構成されます。

  1. ASP.NET Coreプロジェクトを作成する

  2. Visual Studio 2019を開き、検索ボックスに[ASP.NET Core Webアプリ]を入力して、新しいプロジェクトを追加します。
    Create a New Project dialog

    または、特定のアプリケーションを構築するフレームワークのテンプレートを選択します。

    • AngularでのASP.NET Core(Angularアプリケーションとの組み込み用)
    • React.jsでのASP.NET Core(React.jsアプリケーションとの組み込み用)
    • ASP.NET Core(空)(JavaScriptアプリケーションとの組み込み用)
  3. プロジェクト名を入力し、[次へ]をクリックします。

    Create a New Project dialog

  4. ターゲットフレームワークに「.NET 5.0」を選択し、「HTTPS用の構成」オプションを無効にし、[作成]をクリックします。


    Create a new ASP.Net Core Web Application dialog

    ASP.NET Core のミドルウェアでActiveReportsを構成する

  5. [ソリューションエクスプローラー]で、ソリューションを右クリックし、[NuGet パッケージの管理]を選択します。

  6. 次のパッケージをプロジェクトに追加します。

    GrapeCity.ActiveReports.Aspnetcore.Viewer.ja
    
  7. [ライセンスへの同意]ダイアログで、[同意する]をクリックします。

  8. プロジェクトフォルダ内に [Reports]フォルダを作成します。Reportsフォルダには、ビューワに表示するレポートを配置します。

  9. レポートの[ビルドアクション]プロパティが「埋め込みリソース」に設定されていることを確認します。

  10. Startup.csファイルを開き、上部に次のusingステートメントを追加します。

    using GrapeCity.ActiveReports.Aspnetcore.Viewer;
    
  11. 以下のようにStartup.csの内容を変更し、アプリケーションがActiveReportsを使用できるようにします。

    Startup.cs
    コードのコピー
    using Microsoft.AspNetCore.Builder;
    using Microsoft.AspNetCore.Hosting;
    using Microsoft.Extensions.Configuration;
    using Microsoft.Extensions.DependencyInjection;
    using Microsoft.Extensions.Hosting;
    using GrapeCity.ActiveReports.Aspnetcore.Viewer;
    namespace JsViewer_Core
    {
        public class Startup
        {
            public Startup(IConfiguration configuration)
            {
                Configuration = configuration;
            }
            public IConfiguration Configuration { get; }
            // このメソッドはランタイムによって呼び出されます。このメソッドを使用して、コンテナにサービスを追加します。
            public void ConfigureServices(IServiceCollection services)
            {
                services.AddRazorPages();
            }
            // このメソッドはランタイムによって呼び出されます。このメソッドを使用して、HTTP要求パイプラインを構成します。
            public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
            {
                if (env.IsDevelopment())
                {
                    app.UseDeveloperExceptionPage();
                }
                else
                {
                    app.UseExceptionHandler("/Error");
                }
                app.UseReporting(settings =>
                {
                    settings.UseEmbeddedTemplates("JsViewer_Core.Reports", this.GetType().Assembly);
                    settings.UseCompression = true;
                });
                app.UseStaticFiles();
                app.UseRouting();
                app.UseAuthorization();
                app.UseEndpoints(endpoints =>
                {
                    endpoints.MapRazorPages();
                });
            }
        }
    }
    

    Visual Studio 2022を使用して、.Net 6.0を対象とするアプリケーションを作成する場合は、Program.csファイルを次のように変更します。

    Program.cs
    コードのコピー
    using GrapeCity.ActiveReports.Aspnetcore.Viewer;
    
    var builder = WebApplication.CreateBuilder(args);
    // コンテナにサービスを追加します。
    builder.Services.AddRazorPages();
    
    var app = builder.Build();
    // HTTP要求パイプラインを構成します。
    if (!app.Environment.IsDevelopment())
    {
        app.UseExceptionHandler("/Error");
        // HSTSの既定値は30日です。本番シナリオでは変更することをお勧めします。詳細については、「https://aka.ms/aspnetcore-hsts」を参照してください。
        app.UseHsts();
    }
    app.UseHttpsRedirection();
    app.UseStaticFiles();
    app.UseReporting(settings =>
    {
        settings.UseEmbeddedTemplates("JsViewer_Core.Reports", System.Reflection.Assembly.GetEntryAssembly());
        settings.UseCompression = true;
    });
    app.UseRouting();
    app.UseAuthorization();
    app.MapRazorPages();
    app.Run();
    

    UseEmbeddedTemplatesの最初の引数では、レポートに対して正しい名前空間が指定されていることを確認してください。