Nube de desarrollo de código bajo, desarrollo eficiente de pila completa, desarrollo de aplicaciones cruzadas, lanzamiento gratuito, implementación flexible. Proporcione soporte integrado para el desarrollo, las pruebas, la implementación y la operación y el mantenimiento, y una plataforma integrada de desarrollo, operación y mantenimiento DevOps verdaderamente de bajo código y alta eficiencia. La plataforma PaaS de código bajo, la capa clave de la arquitectura de la nube empresarial, realmente mejora la arquitectura, el desarrollo, la operación, el mantenimiento y la gobernanza de las aplicaciones empresariales.
La provisión de la plataforma PaaS de código bajo es una capa importante de la arquitectura de nube SaaS-PaaS-IaaS, que proporciona capacidades importantes como el desarrollo de alta productividad, el mercado/ecología de aplicaciones, la programación de recursos, la tenencia múltiple, la plataforma intermedia de datos, la integración empresarial y servicios públicos Brindar soporte integral para la especificación, el intercambio, la implementación, la operación y el mantenimiento, la integración y el gobierno de las aplicaciones en la nube.
A diferencia del modelo de desarrollo tradicional, la nueva canalización de DevOps en la plataforma PaaS de bajo código toma el mercado de aplicaciones y los arrendatarios como nodos clave, realiza el desacoplamiento completo del desarrollo, la administración y la implementación de aplicaciones en la nube, y simplifica en gran medida la complejidad y la relevancia. del ciclo de vida de la aplicación, mejora revolucionariamente la eficiencia y la capacidad de mantenimiento de la tubería de software.
[Benchmark]
public void RentReturn_Single() => ArrayPool<char>.Shared.Return(ArrayPool<char>.Shared.Rent(4096));
private char[][] _arrays = new char[4][];
[Benchmark]
public void RentReturn_Multi()
{
char[][] arrays = _arrays;
for (int i = 0; i < arrays.Length; i++)
arrays[i] = ArrayPool<char>.Shared.Rent(4096);
for (int i = 0; i < arrays.Length; i++)
ArrayPool<char>.Shared.Return(arrays[i]);
}
La plataforma de desarrollo rápido JNPF arrastra y suelta los módulos visuales de los códigos existentes en el flujo de trabajo para crear aplicaciones, sin escribir códigos repetitivos, y puede enfocarse en el 10 % importante de la aplicación.
El diseñador de procesos integra un diseñador de forma libre y un motor de procesos, y admite procesos lineales, procesos padre-hijo, procesos de división y combinación sincrónicos y procesos de división y combinación asíncronos, todos los cuales realizan el diseño visual, y lo que ve es lo que ve. conseguir.
private int[] _values = Enumerable.Range(0, 100_000).ToArray();
[Benchmark]
public int Find() => Find(_values, 99_999);
private static int Find<T>(T[] array, T item)
{
for (int i = 0; i < array.Length; i++)
if (EqualityComparer<T>.Default.Equals(array[i], item))
return i;
return -1;
}
El diseñador de portal de JNPF proporciona una variedad de estilos de portal predefinidos.Los usuarios pueden arrastrar y soltar libremente componentes en el lienzo para la configuración y el diseño, y diseñar páginas de portal personalizadas simplemente arrastrando y configurando.
Todo el proceso de operación de edición visual, diseño libre de páginas, controles de arrastrar y soltar en la página, configuración de contenido y enlace de datos para diferentes controles, puede construir rápidamente una pantalla grande profesional, hermosa y genial sin ningún código.
[Benchmark]
public int GetLength()
{
ITuple t = (5, 6, 7);
Ignore(t);
return t.Length;
}
[MethodImpl(MethodImplOptions.NoInlining)]
private static void Ignore(object o) { }
usando System.Text.Json;
espacio de nombres SerializeToFile
{ public class WeatherForecast { public DateTimeOffset Date { get; colocar; } public int TemperatureCelsius { get; colocar; } cadena pública? Resumen { obtener; colocar; } }
public class Program
{ public static void Main() { var weatherForecast = new WeatherForecast { Date = DateTime.Parse("2019-08-01"), TemperatureCelsius = 25, Summary = "Hot" };
string fileName = "WeatherForecast.json";
string jsonString = JsonSerializer.Serialize(weatherForecast);
File.WriteAllText(fileName, jsonString);
Console.WriteLine(File.ReadAllText(fileName));
}
}
}
// salida:
//{"Fecha":"2019-08-01T00:00:00-07:00","TemperaturaCelsius":25,"Resumen":"Caliente"}
Después de que el ingeniero de back-end prepara los datos, el front-end solo necesita especificar la fuente de datos, escribir la instrucción SQL, definir el estilo del informe y el método de interacción básico, y el motor de informes puede completar el siguiente trabajo de presentación de datos.
private FileStream _fileStream;
private byte[] _buffer = new byte[1024];
[Params(false, true)]
public bool IsAsync { get; set; }
[Params(1, 4096)]
public int BufferSize { get; set; }
[GlobalSetup]
public void Setup()
{
byte[] data = new byte[10_000_000];
new Random(42).NextBytes(data);
string path = Path.GetTempFileName();
File.WriteAllBytes(path, data);
_fileStream = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read, BufferSize, IsAsync);
}
[GlobalCleanup]
public void Cleanup()
{
_fileStream.Dispose();
File.Delete(_fileStream.Name);
}
[Benchmark]
public void Read()
{
_fileStream.Position = 0;
while (_fileStream.Read(_buffer
#if !NETCOREAPP2_1_OR_GREATER
, 0, _buffer.Length
#endif
) != 0) ;
}
[Benchmark]
public async Task ReadAsync()
{
_fileStream.Position = 0;
while (await _fileStream.ReadAsync(_buffer
#if !NETCOREAPP2_1_OR_GREATER
, 0, _buffer.Length
#endif
) != 0) ;
}