Cliente de CNBlogs con Flutter y herramientas .NET para desarrolladores

Una aplicación desarrollada con Flutter que ofrece acceso completo a la plataforma CNBlogs desde dispositivos Android e iOS. La interfaz prioriza la simplicidad sin sacrificar funcionalidad.

Características principales

  • Navegación por el feed principal de blogs
  • Sección de noticias tecnológicas
  • Foro de preguntas y respuestas (博问)
  • Microblogging mediante publicaciones efímeras (闪存)
  • Gestión personal de contenidos publicados
  • Acceso al repositorio de conocimiento
  • Panel de seguimiento de seguidores

Configuración inicial

Antes de compilar el proyecto, crear un archivo .env en la raíz con las credenciales de la API:

clientId={{cnblog_client_id}}
clientSecret={{cnblog_secret_id}}
notRobotCookie=CfDJ8EOBBtWq0dNFoDS-ZHPSe51ATHuFFilG3imii1Hj5WZ-TAK98xT4mJquvSMlYdkzfVCmpAWdt1VyGSpqZ5Q8GulXT3q-Essgs3ttLCLRTzIqo0Klt-nZCkblG6ST2zI2Og

Los binarios compilados están disponibles en la sección Releases del repositorio en GitHub.


DFrame: Framework de pruebas de carga distribuidas para .NET

DFrame es una solución para ejecutar pruebas de estrés en arquitecturas distribuidas, compatible con .NET y Unity. Permite definir escenarios de carga mediante código C# puro, eliminando dependencias de interfaces gráficas complejas o formatos de configuración externos como XML, JSON o YAML.

Además de HTTP/1, es posible evaluar rendimiento sobre HTTP/2 y gRPC programando directamente en C#.

Arquitectura

El sistema se divide en dos componentes:

  • DFrame.Controller: Interfaz web construida con Blazor Server
  • DFrame.Worker: Scripts de escenarios de prueba en C#

Implementación básica

// dotnet add package DFrame
using DFrame;

// Puerto WebUI: 7312, Puerto Worker: 7313
DFrameApp.Run(7312, 7313);

public class EjemploCarga : Workload
{
    public override async Task ExecuteAsync(WorkloadContext ctx)
    {
        Console.WriteLine($"Procesando unidad de trabajo: {ctx.WorkloadId}");
    }
}

Tras iniciar la aplicación, acceder a http://localhost:7312 para configurar y lanzar las pruebas.

Escenarios con inyección de dependencias

using DFrame;
using Microsoft.Extensions.DependencyInjection;

var app = DFrameApp.CreateBuilder(7312, 7313);
app.ConfigureServices(servicios =>
{
    servicios.AddSingleton<HttpClient>();
});
await app.RunAsync();

public class PeticionHttpGet : Workload
{
    private readonly HttpClient _cliente;
    private readonly string _ruta;

    public PeticionHttpGet(HttpClient cliente, string ruta)
    {
        _cliente = cliente;
        _ruta = ruta;
    }

    public override async Task ExecuteAsync(WorkloadContext ctx)
    {
        await _cliente.GetStringAsync(_ruta, ctx.CancellationToken);
    }
}

Configuración simplificada para métodos HTTP

using DFrame;

var app = DFrameApp.CreateBuilder(7312, 7313);
app.ConfigureWorker(config =>
{
    config.IncludesDefaultHttpWorkload = true;
});
app.Run();

Esta opción habilita endpoints genéricos para GET, POST, PUT y DELETE recibiendo url y body como parámetros.

Despliegue en clúster

Para conectar nodos Worker a un Controller centralizado:

using DFrame;
using Microsoft.Extensions.Hosting;

await Host.CreateDefaultBuilder(args)
    .RunDFrameWorkerAsync("http://localhost:7313");

Modalidades de ejecución

Modo Descripción
Request Total fijo de peticiones con concurrencia definida
Repeat Escalado progresivo similar a Ramp-Up
Duration Ventana temporal fija para la prueba
Infinite Ejecución continua hasta intervención manual

Rhea: Sistema de gestión de tareas y proyectos

Rhea es una plataforma de administración de tareas desarrollada con C# y .NET 6, orientada a equipos de desarrollo y profesionales individuales. Ofrece funcionalidades comparables a herramientas como Jira, Redmine o Trello.

Stack tecnológico

  • Backend: C# / .NET 6
  • Frontend: Angular con Angular CDK
  • Base de datos: SQL Server con Entity Framework Core
  • Caché: Redis
  • Comunicación en tiempo real: SignalR

Organización jerárquica

La información se estructura en niveles: WorkspaceSpaceFolderList, permitiendo adaptar la herramienta a flujos de trabajo diversos.

Vistas disponibles

  • Lista: Vista tabular con filtros y ordenamiento
  • Tablero Kanban: Columnas configurables con arrastrar y soltar
  • Calendario: Visualización temporal de hitos y deadlines
  • Línea temporal: Perspectiva cronológica de actividades

Personalización

La interfaz permite alternar entre múltiples temas y paletas de colores sin restricciones.

Acceso: https://rhea.cc

Etiquetas: Flutter CNBlogs .NET Blazor DFrame

Publicado el 8-11 22:31