IronXLを.NETでAzure上で実行できますか?

This article was translated from English: Does it need improvement?
Translated
View the article in English

はい。 IronXLはAzure上で使用することができ、C#およびVB.NETアプリケーションでQRコードおよびバーコードを生成できます。また、スキャンされた画像からバーコードおよびQRコードを読み取ることもできます。

IronXLは、MVCウェブサイト、Azure Functionsなど、複数のAzureプラットフォームで徹底的にテストされています。


ステップ 1

はじめにIronXLをインストールする

最初に NuGet でインストール: https://www.nuget.org/packages/IronXL.Excel

Install-Package IronXL.Excel

チュートリアルの方法

パフォーマンスとAzureティア

私たちは、AzureのB1ホスティングレベルがエンドユーザーのライブラリのニーズに非常に適しているとおすすめしています。 高スループットシステムを作成している場合、これをアップグレードする必要があるかもしれません。

フレームワークの選択

IronXL for Core および Framework の両方が Azure 上で動作することを確認しました。 .NET Standardアプリケーションは、速度と安定性において若干のパフォーマンス優位性があるようですが、プロセス内でより多くのメモリを使用します。

Azureの無料ティアホスティングは遅いです。

Azureの無料および共有のティア、ならびに消費プランは、QR処理には適していません。 私たちは、自分たち自身で使用しているAzure B1ホスティング/プレミアムプランを推奨します。

Docker on Azure

Azure上でのDocker

パフォーマンスをAzureで制御する能力を得る一つの方法は、IronXLアプリケーションとFunctionsをDockerコンテナ内で使用することです。

私たちは包括的な IronXL Azure Docker チュートリアル LinuxおよびWindowsインスタンス向けのものであり、読むことが推奨されています。

公式 Azure Function サポート

IronXLはAzure Functionをサポートします (Azure Functions V3(アジュール ファンクションズ V3)). これはまだV4でテストされていませんが、当社のキューにあります。

動作するAzure Functionコード例

Azure Functions v3.3.1.0+でテスト済み。 サンプルコードはこちら

    [FunctionName("barcode")]
    public static HttpResponseMessage Run(
            [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
            ILogger log)
    {
        log.LogInformation("C# HTTP trigger function processed a request.");
        IronXL.License.LicenseKey = "Key";
        var MyBarCode = BarcodeWriter.CreateBarcode("IronXL Test", BarcodeEncoding.QRCode);
        var result = new HttpResponseMessage(HttpStatusCode.OK);
        result.Content = new ByteArrayContent(MyBarCode.ToJpegBinaryData());
        result.Content.Headers.ContentDisposition =
                new ContentDispositionHeaderValue("attachment") { FileName = $"{DateTime.Now.ToString("yyyyMMddmm")}.jpg" };
        result.Content.Headers.ContentType =
                new MediaTypeHeaderValue("image/jpeg");
        return result;
    }
    [FunctionName("barcode")]
    public static HttpResponseMessage Run(
            [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
            ILogger log)
    {
        log.LogInformation("C# HTTP trigger function processed a request.");
        IronXL.License.LicenseKey = "Key";
        var MyBarCode = BarcodeWriter.CreateBarcode("IronXL Test", BarcodeEncoding.QRCode);
        var result = new HttpResponseMessage(HttpStatusCode.OK);
        result.Content = new ByteArrayContent(MyBarCode.ToJpegBinaryData());
        result.Content.Headers.ContentDisposition =
                new ContentDispositionHeaderValue("attachment") { FileName = $"{DateTime.Now.ToString("yyyyMMddmm")}.jpg" };
        result.Content.Headers.ContentType =
                new MediaTypeHeaderValue("image/jpeg");
        return result;
    }
<FunctionName("barcode")>
Public Shared Function Run(<HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route := Nothing)> ByVal req As HttpRequest, ByVal log As ILogger) As HttpResponseMessage
		log.LogInformation("C# HTTP trigger function processed a request.")
		IronXL.License.LicenseKey = "Key"
		Dim MyBarCode = BarcodeWriter.CreateBarcode("IronXL Test", BarcodeEncoding.QRCode)
		Dim result = New HttpResponseMessage(HttpStatusCode.OK)
		result.Content = New ByteArrayContent(MyBarCode.ToJpegBinaryData())
		result.Content.Headers.ContentDisposition = New ContentDispositionHeaderValue("attachment") With {.FileName = $"{DateTime.Now.ToString("yyyyMMddmm")}.jpg"}
		result.Content.Headers.ContentType = New MediaTypeHeaderValue("image/jpeg")
		Return result
End Function
VB   C#