ASP.NET Web API コントロール
Visual Studio テンプレートを使用するDataEngine WebAPI
サービス > データエンジンサービス > DataEngine WebAPIの生成 > Visual Studio テンプレートを使用するDataEngine WebAPI

Visual Studioを使用するDataEngine WebApiを使用するには、次の手順に従います。

手順1: 新しいWebApiアプリケーションの作成

  1. Visual Studioで、[ファイル]→[新規作成]→[プロジェクト]を選択します。
  2. インストール済みテンプレートから、[Visual C#]→[Web]→[ASP.NET Webアプリケーション(.NET Framework)]を選択します。アプリケーション.NET Frameworkのバージョンが4.5以上であることを確認します。
  3. アプリケーションの名前および場所を設定します。[OK]をクリックして、[新規ASP.NET Webアプリケーション(.NET Framework)]ダイアログを開きます。
  4. [New ASP.NET WebApplication] ダイアログで、[空]テンプレートを選択して、[Web API]オプションをオンにします。

  5. [OK]をクリックして、WebApiアプリケーションを作成します。

手順2: C1.Web.Api.DataEngine Nugetパッケージのインストール

  1. プロジェクトに、C1.Web.Api.DataEngine参照を追加します。
  2. ソリューションエクスプローラーで、[参照]を右クリックし、[NuGetパッケージの管理]を選択します。

  3. [NuGetパッケージマネージャー]で、パッケージソースとして[Grapecity]を選択します。C1.Web.Api.DataEngineパッケージを見つけ、[インストール]をクリックします。
    メモ:
    • Startup1.csクラスをアプリケーションと共に実行するには、Visual Studioアプリケーションに「Microsoft.Owin.Host.SystemWeb」Nugetパッケージをインストールします。
    • パッケージを復元すると、プロジェクトのproject.jsonファイル内の"dependencies"の下に"C1.Web.Api.DataEngine"が追加されます。

手順3:ProductData.csモデルの作成

Olapコントロールのデータソースを作成するために、[Models]フォルダに新しいクラスを作成します。

  1. [Models]フォルダに新しいクラスを追加します(例:ProductData.cs)。
  2. モデルに次のコードを追加して、Olapのデータを定義します。
    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.Linq;
    using System.Web;
    
    namespace DataEngineWebpi.Models
    {
        public class ProductData
        {
            private static Random r = new Random();
    
            public int ID { get; set; }
            public string Product { get; set; }
            public string Country { get; set; }
            public DateTime Date { get; set; }
            public int Sales { get; set; }
            public int Downloads { get; set; }
            public bool Active { get; set; }
            public double Discount { get; set; }
    
            private static int randomInt(int max)
            {
                return (int)Math.Floor(r.NextDouble() * (max + 1));
            }
            public static DataTable GetDataTable(int cnt, string tableName)
            {
                var sufix = cnt / 10000;
                string[] countries = "中国,インド,ロシア,米国,ドイツ,英国,日本,イタリア,
                ギリシャ,スペイン,ポルトガル".Split(',');
                string[] products = "Wijmo,Aoba,Xuni,Olap".Split(',');
                DataTable data = new DataTable(tableName);
                data.Columns.Add("ID", typeof(int));
                data.Columns.Add("Product", typeof(string));
                data.Columns.Add("Country", typeof(string));
                data.Columns.Add("Date", typeof(DateTime));
                data.Columns.Add("Sales", typeof(int));
                data.Columns.Add("Downloads", typeof(int));
                data.Columns.Add("Active", typeof(bool));
                data.Columns.Add("Discount", typeof(double));
                for (var i = 0; i < cnt; i++)
                {
                    object[] values = new object[] {
                     i,
                     products[randomInt(products.Length - 1)],
                     countries[randomInt(countries.Length - 1)],
                     new DateTime(2015, randomInt(11) + 1, randomInt(27) + 1),
                     randomInt(10000),
                     randomInt(10000),
                     randomInt(1) == 1 ? true : false,
                     r.NextDouble()
                    };
                    data.Rows.Add(values);
                }
                return data;
            }
        }
    }
    
先頭に戻る

手順4: アプリケーションのStartup.csの追加

  1. ソリューションエクスプローラーで、ターゲットプロジェクトを選択します。
  2. [プロジェクト]メニューで[新しい項目の追加]オプションをクリックします。
  3. [新しい項目の追加]ダイアログで、[Web]を選択し、右側のリストから[OWIN Startup クラス]テンプレートを選択します。

  4. [追加]をクリックします。Startup1.csファイルがアプリケーションに追加されます。

手順5: Startup1.csへのデータソースの登録

  1. ソリューションエクスプローラーで、Startup1.csファイルを選択して開きます。
  2. Startup1クラスのコードを置き換えます。
    サンプルのタイトル
    コードのコピー
    using System;
    using System.Threading.Tasks;
    using Microsoft.Owin;
    using Owin;
    using System.IO;
    using C1.DataEngine;
    using C1.Web.Api;
    using DataEngineWebpi.Models;
    
    [assembly: OwinStartup(typeof(DataEngineWebpi.Startup1))]
    
    namespace DataEngineWebpi
    {
        public class Startup1
        {
            private static string DATAPATH = Path.Combine
            (System.Web.HttpRuntime.AppDomainAppPath, "Data");
            public void Configuration(IAppBuilder app)
            {
                app.UseDataEngineProviders()
                    .AddDataEngine("complex10", () =>
                    {
                        return ProductData.GetData(100000);
                    })
                    .AddDataEngine("complex50", () =>
                    {
                        return ProductData.GetData(500000);
                    })
                    .AddDataEngine("complex100", () =>
                    {
                        return ProductData.GetData(1000000);
                    })
                    .AddDataSource("dataset10", () => ProductData.GetData(100000).ToList())
                    .AddDataSource("dataset50", () => ProductData.GetData(500000).ToList())
                    .AddDataSource("dataset100", () => ProductData.GetData(1000000).ToList())
                    .AddCube("cube",
                    @"Data Source=http://ssrs.componentone.com/OLAP/msmdpump.dll;
                        Provider=msolap;Initial Catalog=AdventureWorksDW2012Multidimensional",
                        "Adventure Works");
            }
        }
    }
    

    Startup1.csに上記のコードを追加したら、拡張メソッドRegisterDataEngineおよびRegisterDataSetを使用して、DataEngineデータとメモリデータを登録することができます。

    メモ: WebAPIサーバーでクロスドメイン要求をサポートする場合は、Startup1.csファイルのConfigurationメソッドに次のコードを追加します。

    app.UseCors(CorsOptions.AllowAll);

先頭に戻る

手順6: Web.configの設定

Web.configファイルを開き、以下のようにWebDAVModuleWebDAVハンドラがsystem.webServerから削除されていることを確認します。

Web.config
コードのコピー
<system.webServer>
<modules>
      <remove name="WebDAVModule" />
    </modules>
<handlers>
      <remove name="WebDAV" />
      .........
    </handlers>
</system.webServer>
先頭に戻る

手順7:プロジェクトのビルドおよび実行

  1. [ビルド]→[ソリューションのビルド]をクリックして、プロジェクトをビルドします。
  2. [F5]キーを押してプロジェクトを実行します。
    ブラウザのアドレスバーで、URLパス(http://localhost:1234/api/dataengine/complex/fieldsなど)を付加して、出力を確認します。
先頭に戻る