IronXLを.NETでAzure上で実行できますか?
はい。 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