csharp-photino-net

Aplicaciones multiplataforma en C# con Photino.NET

Photino.NET es una innovador framework de código abierto para C# que nos permite crear aplicaciones de escritorio ligeras y multiplataforma utilizando tecnologías web como HTML, CSS y JavaScript.

Está claramente inspirada por la simplicidad de Electron, pero sin el peso adicional que suele acompañar a las aplicaciones basadas en Electron.

Photino.NET busca ofrecer una alternativa eficiente y rápida para el desarrollo de aplicaciones modernas, al combinar la flexibilidad del desarrollo web con la funcionalidad de aplicaciones de escritorio.

Uno de sus puntos fuertes es su bajo consumo de recursos. Mientras que plataformas como Electron pueden consumir una cantidad significativa de memoria y espacio en disco debido a su dependencia de Chromium y Node.js.

Photino.NET soporta múltiples sistemas operativos, incluyendo Windows, Linux y macOS. Utiliza WebView2 en Windows y WebKitGTK en Linux, lo que reduce significativamente el peso de las aplicaciones.

Características de Photino.NET,

  • Multiplataforma: Compatible con Windows, macOS y Linux.
  • Ligero: Diseño minimalista para aplicaciones rápidas y eficientes.
  • Tecnologías web: Utiliza HTML, CSS y JavaScript para la interfaz de usuario.
  • Interoperabilidad: Comunicación fluida entre .NET y JavaScript.

Photino.NET es Open Source y todo su código y documentación están disponibles en el repositorio del proyecto en GitHub - tryphotino/photino.NET.

Instalación de Photino.NET

Para comenzar a usar Photino.NET lo mejor es bajar las templates de proyecto que ofrece el proyecto. Para ello hacemos:

dotnet new -i TryPhotino.VSCode.Project.Templates

Una vez que tengamos las plantillas descargadas, podemos crear una nueva app de Photino.NET haciendo,

dotnet new photinoapp -o MyPhotinoApp

Si entramos en el proyecto, y lanzamos dotnet run

cd MyPhotinoApp
dotnet run

Veremos nuestro template listo para empezar con nuestro proyecto. ¡Así de fácil!

photino-screenshot

Cómo usar Photino.NET

Una vez que hayas instalado Photino.NET, puedes empezar a crear tu aplicación de escritorio. A continuación.

Ejemplo básico

Este ejemplo muestra un ejemplo básico para ilustrar cómo inicializar y ejecutar una aplicación con Photino.NET.

using PhotinoNET;

class Program
{
    [STAThread]
    static void Main(string[] args)
    {
        new PhotinoWindow()
            .SetTitle("Mi primera aplicación Photino.NET")
            .SetUseOsDefaultLocation(true)
            .SetSize(new Size(800, 600))
            .Load("wwwroot/index.html")
            .RegisterWebMessageReceivedHandler((sender, message) =>
            {
                Console.WriteLine($"Mensaje recibido del frontend: {message}");
            })
            .Center()
            .Show();
    }
}

En este ejemplo, PhotinoWindow crea una nueva ventana y carga un archivo HTML desde la carpeta wwwroot. También se registra un manejador de mensajes para recibir mensajes desde el frontend.

Comunicación entre .NET y JavaScript

Photino.NET permite una fácil comunicación entre .NET y JavaScript, lo que es necesario para la creación de aplicaciones interactivas.

Código .NET

new PhotinoWindow()
    .SetTitle("Comunicación .NET y JavaScript")
    .SetUseOsDefaultLocation(true)
    .SetSize(new Size(800, 600))
    .Load("wwwroot/index.html")
    .RegisterWebMessageReceivedHandler((sender, message) =>
    {
        Console.WriteLine($"Mensaje recibido del frontend: {message}");
        (sender as PhotinoWindow)?.SendWebMessage("Mensaje recibido en .NET");
    })
    .Center()
    .Show();

Código JavaScript

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Photino.NET</title>
</head>
<body>
    <h1>Comunicación entre .NET y JavaScript</h1>
    <button onclick="sendMessage()">Enviar mensaje a .NET</button>
    <script>
        function sendMessage() {
            window.external.sendMessage("Hola desde JavaScript");
        }

        window.external.receiveMessage = function (message) {
            alert(`Mensaje recibido de .NET: ${message}`);
        };
    </script>
</body>
</html>

En este ejemplo, un botón en la interfaz HTML envía un mensaje a .NET, y .NET responde con un mensaje que se muestra en una alerta de JavaScript.

Distribución de la aplicación

Una vez que hayas desarrollado tu aplicación con Photino.NET, puedes empaquetarla y distribuirla fácilmente para diferentes plataformas.

Photino.NET soporta la creación de paquetes auto-contenidos, lo que simplifica la distribución de aplicaciones multiplataforma sin depender de la instalación de .NET en los sistemas de destino.