Buscar este blog

domingo, 25 de septiembre de 2016

Administración de procesos dotnet en Linux

Tiene poco tiempo que se libero la primera versión .Net core y todavía son escasas las herramientas y librerías disponibles para administrar y programar en este nuevo ambiente.
Por ejemplo, para usarlo con httpd, es necesario configurar httpd como un proxy inverso y ejecutar los sitios web uno por uno de forma manual.
Esto es engorroso sobre todo si tienes varios sitios, si necesitas reiniciar el servidor por ejemplo tienes que reiniciar una cantidad de procesos de forma manual, ademas cada programa en su propia ventana de screen problablemente.
Afortunadamente encontré este programa que es algo asi como la herramienta administrativa de servicios, ella das de alta tus sitios web de .Net core los habilitas o deshabilitas y se ejecutan de forma automática al iniciar el programa que es en si mismo un sitio web de .Net Core y por ello puedes realizar el control desde otro equipo.
Se llama Core Manager y esta disponible en esta dirección:
Core Manager

Puedes registrarlo como un servicio de systemd y al reiniciar tu equipo no tendrás que preocuparte por reiniciar todos los sitios uno por uno, ademas cada sitio pertenece a un grupo y puedes detener o reiniciar todos los procesos de un grupo en una sola operación lo que es útil si están relacionados por ejemplo, que usen el mismo código fuente y de esta forma los reinicias al actualizar los binarios.
Recuerden lo pueden obtener en Core Manager de SterSoft.

domingo, 11 de mayo de 2014

Quitando la pestaña de previsualización en Visual Studio

Desde Visual Studio 2012 aparecio la caracteristica de la "pestaña de previsualización".
Consiste en que cada archivo que se seleccione en el explorador de soluciones se muestra en un pestaña especia de previsualización en esta solo se muestra un documento que cambia según la selección del explorador de soluciones.
A mi me parece muy molesta esta caracteristica, quiza solo sea falta de costumbre, pero bueno aquí va la forma de eliminarlo:

Se va uno a Herramientas->Opciones->Pestañas y ventanas y se quita la opción "Permitir que los archivos se abran el pestaña de previsuzalización"

Listo

miércoles, 11 de septiembre de 2013

Audio y video con gstreamer

Una opción para la programación de audio y video en .Net es gstreamer, esta es una librería cross platform que funciona en windows, linux osx y android por lo que con el diseño adecuado tu aplicación puede funcionar en todas estas plataformas.
En cuanto a .Net el soporte se da a través de la librería gstreamer-sharp que es un binding basado en interop para acceder a las dlls nativas.
Esta librería no se encuentra en el sdk oficial pero puedes obtenerla en la pagina de ossbuild que tiene instaladores del sdk que incluyen las dlls para .Net.

Es muy fácil de usar aquí el ejemplo, unas pocas lineas de código que hacen todo:

using Gst;
 
namespace ConsoleApplication1 {
    public class PlayBinTest {
        static Element pipeline = null;
        public static void Main(string[] args) {
            Application.Init();
 
            pipeline = Gst.Parse.Launch("playbin uri=http://localhost:8000/");
            pipeline.SetState(State.Playing);
            Bus bus = pipeline.Bus;
            bus.AddWatch(EventLoop);
 
            Gst.GLib.MainLoop loop = new Gst.GLib.MainLoop();
            loop.Run();
 
            pipeline.SetState(State.Null);
            System.Console.ReadLine();
        }
        static bool EventLoop(Bus bus, Message msg) {
                switch(msg.Type) {
                    case MessageType.Eos: {
                        msg.Dispose();
                        return false;
                    }
                    case MessageType.Error: {
                        System.Console.WriteLine(msg.Structure.ToString());
                            pipeline.SetState(State.Ready);
                            pipeline["uri"] = "http://localhost:8000";
                            pipeline.SetState(State.Playing);
                        return true;
                    }
                }
            return true;
        }
    }
}

viernes, 2 de agosto de 2013

Creando sistemas de archivos con .net

Si quieres desarrollar sistemas de archivos para Linux una buena alternativa es Mono.Fuse un proyecto que usa internamente FUSE, que es la forma mas conocida de crear sistemas de archivos a nivel de usuario en Linux.

Simplemente tienes que implementar las funciones que heredas de un clase incluida en la librería y listo, por ejemplo implementas OnReadSymbolicLink para obtener la dirección a la que apunta un enlace simbólico.

miércoles, 24 de julio de 2013

Visual Studio no depura

A veces cuando queremos depurar un programa en Visual Studio 2010 el entorno no inicia la depuración, el proyecto se compila sin problemas pero el programa no inicia.
Esto puede deberse al que el proceso vshost del programa "se colgó", para solucionar esto hay que abrir el administrador de tareas y matar el proceso, después de esto se debe iniciar la depuración la próxima vez.