¿Puedo ejecutar IronBarCode con .NET en Azure?

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

Sí. IronBarCode puede ser usado en Azure para Generar QR & Códigos de Barras en Aplicaciones C# & VB .NET, y también Leer Códigos de Barras & Códigos QR desde Imágenes Escaneadas.

IronBarCode ha sido probado a fondo en múltiples plataformas Azure, incluyendo sitios web MVC, Azure Functions y muchos más.


Primer paso

1. Instale IronBarCode para empezar

Primera instalación con NuGet:https://www.nuget.org/packages/BarCode

Install-Package BarCode

Tutorial

2. Rendimiento y niveles de Azure

Recomendamos que los niveles de alojamiento Azure B1 son muy adecuados para las necesidades de biblioteca de nuestros usuarios finales. Si están creando un sistema de alto rendimiento, puede que sea necesario actualizarlo.

3. Elección del marco

Hemos comprobado que tanto IronBarCode para Core como para Framework funcionan en Azure. Las aplicaciones .NET Standard parecen tener una pequeña ventaja de rendimiento en cuanto a velocidad y estabilidad, pero utilizan más memoria en el proceso.

El alojamiento gratuito de Azure es lento

Los niveles gratuitos y compartidos de Azure, así como el plan de consumo, no son adecuados para el procesamiento de QR. Recomendamos Azure B1 hosting/Plan Premium, que es lo que utilizamos nosotros mismos.

4. Docker en Azure

Una forma de obtener la capacidad de controlar el rendimiento en Azure es utilizar aplicaciones y funciones IronBarCode desde contenedores Docker.

Disponemos de unIronBarCode Azure Docker tutorial para instancias Linux y Windows y es una lectura recomendada.

5. Soporte oficial de Azure Function

Función Azure compatible con IronBarCode(Funciones Azure V3). Hasta ahora no se ha probado con la V4, pero está en nuestra cola.

Ejemplo de código de función Azure

Probado en Azure Functions v3.3.1.0+. Código de ejemplo

[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.");
    IronBarCode.License.LicenseKey = "Key";
    var MyBarCode = BarcodeWriter.CreateBarcode("IronBarcode 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.");
    IronBarCode.License.LicenseKey = "Key";
    var MyBarCode = BarcodeWriter.CreateBarcode("IronBarcode 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.")
	IronBarCode.License.LicenseKey = "Key"
	Dim MyBarCode = BarcodeWriter.CreateBarcode("IronBarcode 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#