Paso a Paso: .NET Core y Entity Framework Core

Saludos hoy quiero mostrarles como funciona net core fuera de windows yo estare usando MAC OS , pero antes debemos cumplir con una serie de prerrequisitos los cuales son:

OS Prerrequisitos
Windows Windows: Debemos .NET Core SDK for Windows o ambos Visual Studio 2015 Update 3* y .NET Core 1.0 for Visual Studio installedo.
linux, mac o docker Guia para instalar aca  .NET Core

A codear !

  • Paso 1

Abrimos la terminal y escribimos

mkdir sampleefcore
  • Paso 2

Creamos un nuevo proyecto

cd sampleefcore
dotnet new
  • Paso 3

Creamos el archivo de configuración llamado appsettings.json en el cual indicaremos la conexión a la base de datos para este ejemplo usaremos SQLite.

{
  "ConnectionStrings": {
    "Sample": "Data Source=sample.db"
  }
}
  • Paso 4

Ahora modificamos el archivo de proyecto, el cual es el project.json para agregar las dependencias EntityFrameworkCore que especificamos en el archivo appsettings.json

{
  "version": "1.0.0-*",
  "buildOptions": {
    "debugType": "portable",
    "emitEntryPoint": true,
    "copyToOutput": {
      "include": "appsettings.json"
    }
  },
  "dependencies": {
    "Microsoft.Extensions.Configuration": "1.0.0",
    "Microsoft.Extensions.Configuration.Json": "1.0.0",
    "Microsoft.EntityFrameworkCore": "1.0.0",
    "Microsoft.EntityFrameworkCore.Sqlite": "1.0.0"
  },
  "frameworks": {
    "netcoreapp1.0": {
      "dependencies": {
        "Microsoft.NETCore.App": {
          "type": "platform",
          "version": "1.1.0"
        }
      },
      "imports": "dnxcore50"
    }
  }
}
  • Paso 5¬†

Restauramos los paquetes, para ellos ejecutamos el siguiente comando.

dotnet restore
  • Paso 6

Ahora creamos el contexto de EntityFrameworkCore, para ello creamos un archivo y lo llamamos SampleContext.cs y copiamos el siguiente código:

namespace ConsoleApplication
{
    using Microsoft.EntityFrameworkCore;

    /// <summary>
    /// The entity framework context with a Venta DbSet 
    /// </summary>
    public class VentaContext : DbContext
    {
        public VentaContext(DbContextOptions<VentaContext> options)
            : base(options)
        { }

        public DbSet<Venta> Ventas { get; set; }
    }

    /// <summary>
    /// A factory to create an instance of the VentaContext 
    /// </summary>
    public static class VentaContextFactory
    {
        public static VentaContext Create(string connectionString)
        {
            var optionsBuilder = new DbContextOptionsBuilder<VentaContext>();
            optionsBuilder.UseSqlite(connectionString);

            var context = new VentaContext(optionsBuilder.Options);
            context.Database.EnsureCreated();

            return context;
        }
    }

/// <summary>
    /// /// A simple class representing a Venta
    /// </summary>
    public class Venta
    {
        public Venta()
        {
        }

        public int Id { get; set; }

        public string Producto { get; set; }

        public string Caracteristic { get; set; }
    }
}
  • Paso 7

Modificamos el Program.cs con el siguiente código

namespace ConsoleApplication
{
    using System;
    using Microsoft.Extensions.Configuration;

    public class Program
    {
        public static void Main(string[] args)
        {
            // Enable to app to read json setting files
            var builder = new ConfigurationBuilder()
                .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);

            var configuration = builder.Build();

            // Get the connection string
            string connectionString = configuration.GetConnectionString("Sample");

            // Create a Venta instance
            var user = new Venta() { Producto = "Soda", Caracteristic = "Pepsi" };

            // Add and Save the Venta in the database
            using (var context = VentaContextFactory.Create(connectionString))
            {
                context.Add(user);
                context.SaveChanges();
            }

            Console.WriteLine($"Product was saved in the database with id: {user.Id}");
        }
    }
}
  • Paso 8

Compilamos nuestra aplicación con el siguiente comando

dotnet build
  • Paso 9

Si todo está bien estamos listos para correr nuestra aplicación.

dotnet run

Fin

Ahora aqui les dejare un peque√Īo video de como funciona ¬†la aplicaci√≥n.

Usando dotnet para p√°ginas .NET en linux

Un ping√ľino feliz.
Correr en Linux una aplicación hecha en .NET Core ahora es muy sencillo usando unos comandos con dotnet.

La versi√≥n actual es .NET Core 1.0.1 (1.0.2 √ļnicamente en macOS) y la documentaci√≥n oficial menciona que podemos correr una aplicaci√≥n web en Ubuntu. Ubuntu es una distribuci√≥n de linux muy popular, la √ļltima versi√≥n es la 16.04, aunque dotnet se puede instalar en la versi√≥n 14.

Es importante mencionar que los comandos que se exponen en este art√≠culo no consideran que quien los ejecute se encuentre detr√°s de un proxy. En ese caso, el ambiente debe ser configurado para que las variables de entorno “http_proxy” y “https_proxy” se encuentren configuradas de manera global al igual que configurar apt. Apt, podr√≠a no funcionar bien y en ese caso deber√≠an configurar la opci√≥n No-Cache. De igual forma, algunas de las herramientas adicionales como “npm” y “bower” deben estar configuradas correctamente.

Instalar dotnet

.NET Core se descarga desde un repositorio , así que hay que registrarlo para poder descargar desde ahí.

La rutina crea un archivo “/etc/apt/sources.list.d/dotnetdev.list” este sirve como el canal para descargar los archivos requeridos para la instalaci√≥n. Se debe considerar que “xenial” es para Ubuntu 16 y “trusty” para Ubuntu 14.

A diferencia de la versión oficial, estamos usando keyserver.ubuntu.com para descargar la llave del repositorio, esto solamente será necesario si tenemos problemas con la documentación oficial.

Crear una aplicación .NET Core

Una aplicación desarrollada con .NET Core puede correr sin problemas independientemente de la plataforma. Si un programador sigue la documentación oficial  podrá crear un directorio y correr unos comandos para poner en funcionamiento una aplicación, sin embargo existen herramientas como Yeoman.

Yeoman es representado por un sujeto con herramientas en la mano.

Yeoman es una herramienta que permite inicializar una aplicaci√≥n web (entre otras) de manera sencilla. Utiliza una arquitectura modular, de tal manera que podemos instalar varios “generadores” que se encargar√°n de llenar las plantillas.

Yeoman, el generador

Con Yeoman instalado, basta con abrir una consola y correr el comando “yo aspnet”. Al ejecutarse, un men√ļ aparece en pantalla, en el cu√°l se puede seleccionar el tipo de aplicaci√≥n que deseamos crear. El programador puede seleccionar “Web Application Basic (without Membership and Authorization)”, eso crear√° una simple aplicaci√≥n, pero no est√° limitada a ello, por lo cu√°l se puede elegir cualquier otra.

Seleccionando el tipo de aplicación.

Una vez que se ha seleccionado el tipo de aplicaci√≥n, Yeoman nos preguntar√° que tipo de “framework UI” queremos usar, entre los cuales se puede elegir entre:

Seleccionando el framework UI.

Una vez elegido el tipo de dise√Īo deseado, se procede a ponerle un nombre a la aplicaci√≥n. Ese nombre ser√° el nombre de la carpeta que se crear√° en el directorio donde est√© corriendo Yeoman.

Eligiendo el nombre.

Corriendo la aplicación

Una aplicaci√≥n desarrollada en .NET Core, debe restaurarse primero para poder ser ejecutada. Para ello, dotnet cuenta con el comando “restore”, que permite que la aplicaci√≥n descargue lo necesario para que corra sin problemas.

Ejecutando el comando dotnet restore

Una vez que la aplicaci√≥n ha sido restaurada, es cuando puede ser ejecutada por medio del comando “run”

cd miapp
sudo dotnet run --urls http://*:80;

Ejecutando el comando dotnet run --urls

Cuando la aplicación se encuentra corriendo, esta puede ser visualizada por cualquier navegador.

Una p√°gina web en el navegador.

Recomendaciones

.NET Core viene con muchas mejoras y aunque a√ļn le queda camino por recorrer, se puede decir que va por buen camino. En la aplicaci√≥n de ejemplo se uso el modificador “–urls”, esto para permitir que se vea la p√°gina en el puerto 80, ya que de manera predeterminada corre en “http://localhost:5000”.

Visual Studio 15

New Visual Studio Installer

Para todos nosotros que hemos estado esperando la¬† pr√≥xima versi√≥n de Visual Studio¬† (con nombre en c√≥digo Visual Studio¬†“15” ), sabremos que uno de los¬†¬†grandes temas de lanzamiento del productos es la instalaci√≥n y la actualizaci√≥n. Microsoft y su equipo a¬† reestructurado la instalaci√≥n para hacerla ¬†m√°s peque√Īa de forma predeterminada, m√°s r√°pida y m√°s fiable y m√°s f√°cil de manejar.

En el ¬†// Build¬†de este a√Īo, vimos¬†el primer avance experimental de la nueva experiencia de la instalaci√≥n, con el m√°s peque√Īo “n√ļcleo editor de” carga √ļtil para Visual Studio con un peso de aproximadamente 320 MB en el disco.

La experiencia de instalación

La configuraci√≥n es probablemente la √ļnica experiencia que cada uno de nosotros como usuarios de¬†Visual Studio compartimos,¬†Microsoft esta interesado en tu opini√≥n antes de lanzar una versi√≥n final por lo que a habilitado una encuesta puedes llenarla aqu√≠.

Elija su Stack, Obtenga un instalador

Otra cosa interesante que est√°n haciendo es segmentando las “cargas de trabajo” ya que en versiones anteriores ten√≠amos todo instalado aun no fu√©semos a trabajar con ellas. Las versiones recientes de ¬†Visual Studio siempre han tenido una opci√≥n de configuraci√≥n avanzada donde se puede instalar caracter√≠sticas a un nivel muy granular, y en Visual Studio “15” ¬†nos¬† ¬†daran a√ļn m√°s control del que tiene en la actualidad VS.

Han estado haciendo investigaciones sobre lo que debe ser el derecho de cobro de las cargas de trabajo (es decir sobre lo que queremos tener instalado o no), y han llegado al siguiente concluso:

  • El desarrollo de la plataforma de Windows universal
  • Desarrollo web (incl. ASP.NET, mecanografiado, Azure utillaje)
  • Desarrollo de aplicaciones de escritorio de Windows con C ++
  • Desarrollo de aplicaciones m√≥viles multiplataforma con .NET (incl. Xamarin)
  • El desarrollo de aplicaciones de escritorio .NET
  • El desarrollo de Linux y la IO con C ++
  • Desarrollo de aplicaciones m√≥viles multiplataforma con C√≥rdoba
  • Desarrollo de aplicaciones m√≥viles con C ++ (incl. Android, iOS)
  • Oficina / SharePoint complemento en el desarrollo
  • El desarrollo de Python web (incl. Django y¬†Flask support)
  • La ciencia de datos y aplicaciones anal√≠ticas (incl. R, F #, Python)
  • Desarrollo Node.js
  • Desarrollo de juegos multiplataforma (incl. Unidad)
  • Nativo de Windows desarrollo de juegos (incl. DirectX)
  • Almacenamiento y procesamiento de datos (incl. SQL, Hadoop, Azure ML)
  • Desarrollo y gesti√≥n de servicios en la nube Azure
  • Desarrollo de extensiones de Visual Studio

Si eres como yo de los curiosos¬†aqu√≠¬†puedes descargar ¬†Visual Studio “15” Preview

Esto es todo no olviden llenar la encuesta aquí.

Copiar archivos UNIX/Linux

Linux_logoEn esta entrada trataremos el comando cp que sirve para copiar archivos.

Al utilizar el comando cp en Linux, los ficheros pueden ser copiados al mismo directorio o por el contrario a un directorio diferente. Si el fichero va a ser copiado al mismo directorio donde existe el fichero original, el nuevo fichero debe tener un nombre diferente. Por el contrario, si el fichero va a ser copiado a otro directorio, el fichero puede tener cualquier nombre. Al ejecutar el comando cp en Linux, el fichero original no cambia.

Ejemplo:

cp archivo1 archivo2 es el comando que hace una copia de archivo1 en el directorio de trabajo actual y lo llama archivo2

Si por el contrario queremos copiar un fichero a un directorio utilizando el comando cp en UNIX/Linux, la sintaxis ser√° la siguiente:

cp archivo1 /home/usuario/archivos/

Copiar m√ļltiples archivos

si queremos copiar más de un archivo (archivo1,archivo2,archivo3) a un mismo directorio utilizamos el siguiente código:

cp archivo1 archivo2 archivo3 /home/usuario/archivos/

Copiar todos los archivos que se encuentren dentro de un directorio a otro.

En caso de que tengamos la necesidad de pasar todos los ficheros que se encuentran dentro de un directorio a otro, hacemos lo siguiente:

cp /home/usuario/archivos/* /home/usuario/Nuevos-archivos

Cabe destacar que no copiamos el directorio archivos, sino todos los ficheros que est√°n dentro del directorio archivos.

Pero en caso de que queramos copiar un directorio completo, como es el caso hipot√©tico en el cual copiaremos la carpeta ‚Äúarchivos‚ÄĚ (/home/usuario/archivos/) en ‚Äú/home/usuario/test/‚ÄĚser√≠a el siguiente:

cp /home/usuario/archivos/  /home/usuario/test/

Como vemos es un comando muy √ļtil, este tambi√©n puede ser usado con Flags¬†en su sintaxis, a continuaci√≥n dejar√© una lista de flags com√ļnmente m√°s usados.

Backup:
-b
Crea un backup en el destino en el caso en el que exista un archivo llamado igual que el que queremos generar.

Force:
-f
Fuerza el borrado de los archivos destino sin consultar o avisar al usuario.

Interactive:
-i
Informa antes de sobrescribir un archivo en el destino indicado.

Link:
-l
Realiza un link en vez de copiar los ficheros.

Preserve:
-p
Realiza la copia de los ficheros y directorios conservando la fecha de modificación de los archivos y carpetas originales.

Copia recursiva:
-r
Copia de forma recursiva.

Suffix:
-S SUFFIX
A√Īade la palabra ‚ÄúSUFFIX‚ÄĚ (o la palabra que le indiquemos, por ejemplo BACKUP) a los archivos de backup creados con el flag ‚Äú‚Äďb‚ÄĚ.

Update:
-u
El comando cp en unix/linux no copia un archivo o directorio a un destino si este destino tiene la misma fecha de modificación o una fecha de modificación posterior comparándola con el archivo o directorio que queremos mover.

Verbose:
-v
Muestra lo que se est√° ejecutando.

Mas info aquí.

 

Esto es todo por el momento alguna duda, comentario o sugerencia no duden en escribirme.

 

 

 

Que es .NET Core

Microsoft anuncia la disponibilidad de .NET Core 1.0

Microsoft ha anunciado la disponibilidad de .NET Core 1.0, ASP.NET Core 1.0 y Entity Framework Core 1.0, los cuales están disponibles para Windows, OS X y GNU/Linux a través de la instalación de .NET Core 1.0.

.NET Core 1.0 forma parte del proyecto de Microsoft para ir liberando .NET bajo licencia MIT, ofreciendo un framework Open Source para crear aplicaciones web modernas, librerías y aplicaciones de consola, incluyendo las librerías y herramientas necesarias. Además Microsoft ha liberado extensiones tanto para Visual Studio como Visual Studio Code para poder crear proyectos con .NET Core. Para aquellos que estén interesados en programar con este framework, Microsoft ha publicado también documentación en su sitio web, detallando aspectos como el hecho de que es Open Source y haciendo una breve comparativa con Mono y la rama oficial .NET Framework.

Las siguientes características definen de una forma clara Core .NET:

  • Implementaci√≥n flexible: se puede incluir en su aplicaci√≥n o instalar lado a lado tanto a nivel del usuario como de la m√°quina.
  • Multiplataforma: Se ejecuta en Windows, MacOS y Linux; puede ser portado a otros sistemas operativos. Los sistemas operativos soportados (OS), CPU y de la aplicaci√≥n escenarios crecer√° con el tiempo, proporcionados por Microsoft, otras empresas y los individuos que contribuyan al proyecto.
  • Herramientas de l√≠nea de comando: Todos los escenarios de productos pueden ser ejercidos en la l√≠nea de comandos.
  • Compatible: .NET Core es compatible con .NET Framework, Xamarin y Mono, a trav√©s de la biblioteca est√°ndar de .NET.
  • Open Source: La plataforma .NET Core es de c√≥digo abierto, utilizando el MIT y Apache 2 licencias. La documentaci√≥n est√° disponible bajo CC-BY. .NET Core es un proyecto de la Fundaci√≥n .NET.

Lenguajes

El lenguaje C # es el principal (F # y VB son los próximos) se puede utilizar para escribir aplicaciones y bibliotecas para .NET Core. Los compiladores ejecutan en .NET Core, lo que le permite desarrollar para .NET Core en cualquier lugar que se ejecuta. En general, no utilizará los compiladores directamente, sino indirectamente utilizando las herramientas del SDK.

El compilador de C # Roslyn y las herramientas .NET centrales son o pueden ser integrados en varios editores de texto y entornos de desarrollo, incluyendo Visual Studio, Visual Studio Code, Sublime Text y el amado Vim, por lo que el desarrollo de .NET Core ofrece una opción de desarrollo en su entorno de codificación favorito y OS. Se proporciona esta integración, en parte, por la buena gente del proyecto OmniSharp.

Arquitectura

.NET Core es una aplicaci√≥n .NET multiplataforma. Las preocupaciones primarias arquitect√≥nicos √ļnicas para .NET Core est√°n relacionados con proporcionar implementaciones espec√≠ficas de la plataforma para las plataformas soportadas.

Las principales diferencias entre .NET y Mono Core:

App-models РMono soporta un subconjunto de las app-models de .NET Framework (por ejemplo, Windows Forms) y algunos adicionales (por ejemplo, Xamarin.iOS) a través del producto Xamarin. .NET Core no es compatible con estos.
API РMono soporta un gran subconjunto de las API de .NET Framework, utilizando los mismos nombres de ensamblado y factorización.
Plataformas – Mono es compatible con muchas plataformas y CPU.
Open Source РMono y .NET Core tanto el uso de la licencia MIT y son proyectos de la Fundación .NET.
Enfoque – El enfoque principal de Mono en los √ļltimos a√Īos es plataformas m√≥viles, mientras .NET Core se centra en las cargas de trabajo en la nube.

Para mas info visitar la documentación oficial aquí

Aquellos que quieran instalarlo sobre GNU/Linux, oficialmente ofrece soporte para RHEL, Ubuntu, Linux Mint, Debian, Fedora, CentOS, Oracle Linux y openSUSE. También existe una imagen de Docker para el despliegue de aplicaciones.

Descargar .NET Core.

Fuente | Microsoft

Listando directorios y archivos UNIX/Linux -Tutorial-

   Linux_logo            ls (list)

En cada inicio de sesión, el directorio de trabajo actual es el el directorio principal. Nuestro directorio principal tendrá el mismo nombre que nuestro nombre de usuario

aquí un ejemplo donde yheredia es el nombre de usuario:

ubun01

Para listar lo que está en nuestro directorio principal escribimos ls , este comando lista el contenido del directorio de trabajo actual.

Si ejecutamos el comando ls probablemente no haya archivos visibles (si somos usuarios de una reciente instalación), en ese caso, el prompt no nos mostrará nada, pero puede haber algunos archivos creados por el administrador de sistemas cuando la cuenta fue creada.

ls¬†no har√° el trabajo de listar los archivos o directorios contenidos en el directorio que nos encontremos, si √©stos al inicio ¬†de su nombre de archivo o directorio contiene un punto (.), esta clase de archivos son conocidos como archivos o directorios ocultos y usualmente contienen¬†importantes programas de configuracion, ellos est√°n ocultos porque no deberias modificar los archivos al menos que estes muy familiarizado con el entorno UNIX/LINUX !! ūüôā

Para listar todos los archivos que se encuentran en nuestro directorio incluso aquellos que est√°n ocultos escribimos en la terminal escribimos:

ls -a

Como podemos ver este comando lista los archivos y directorios que usualmente est√°n ocultos

ubun02

Observando la imagen todos los archivos y directorios que comienzan con un punto (.) por ejemplo .profile (ejemplo archivo) o .cache (ejemplo directorio) son archivos y directorios ocultos.

Para obtener más información sobre este comando escribimos en la terminal

man ls

Esto es todo, hasta la pr√≥xima alguna duda, sugerencia o comentario no duden¬† escribirme ! ūüôā

Introducción a UNIX

El Kernell , Shell etc..

Desde que decid√≠ crearme una base s√≥lida sobre este sistema operativo tan demandante para profesionales de la tecnologia de alto rendimiento empec√© ¬†Linux_logouna b√ļsqueda en Google, y conclu√≠ en aprender todo lo b√°sico dictado para dominar Unix , muchos quieren aprender Linux, pero al final,¬†Sun Solaris, Red Hat,¬†GNU/Linux, Ubuntu, y MacOS X son tipos de Unix, si estoy equivocado alguno que me lea me aclarara.

Estructura del sistema operativo UNIX

El sistema operativo Unix est√° constituido por tres partes:

  • El Kernel
  • El Shell
  • Los programas

Que es el Kernel ?

El Kernel es el n√ļcleo del sistema operativo, este maneja y asigna el tiempo de ejecuci√≥n en memoria de los programas, ¬†maneja el almacenamiento de ficheros¬†y las comunicaciones en respuesta a las llamadas al sistema.

Como un ejemplo ilustrado de como el Shell y el Kernel trabajan juntos, supongamos que un usuario escribe  en la terminal el siguiente comando rm miarchivo que eliminará el archivo llamado miarchivo Р. El Shell busca el en sistema de almacenamiento de archivos el archivo que contiene el programa rm, luego pide al Kernel a través de llamadas del sistema, para ejecutar el programa rm en miarchivo. Cuando el proceso de rm miarchivo  haya terminado de ejecutarse, el Shell  luego devuelve el indicador de UNIX% o $ para el usuario, lo que indica que se está a la espera de nuevas órdenes.

Que es el Shell ?

El shell act√ļa como una interface entre el usuario y el kernel. Cuando un usuario accede al sistema, el programa de acceso comprueba el nombre de usuario y la contrase√Īa, y luego inicia otro programa llamado El Shell. El Shell es un command line interpreter (CLI), este interpreta los comandos que el usuario escribe y se encarga de que puedan llevarse a cabo, cabe destacar que los comandos son programas en si mismos: cuando terminan de ejecutarse, El Shell da al usuario otro mensaje ya sea un % o $ dependiendo nuestros sistemas.

Muchos usuarios configuren su propia Shell, los usuarios pueden usar diferentes Shells en la misma computadora.

La Shell mantiene una lista de comando que hayamos escritos, si necesitamos repetir un comando, usamos las teclas de control arriba , abajo para acceder a la lista de comandos previos.

Archivos y procesos

Todo en UNIX es un archivo o un proceso.

Un proceso es un programa en ejecuci√≥n identificado por un √ļnico PID (process identifier).

Un archivo es una colección de datos. Estos son creados por el usuario usando editores de texto, compiladores etc.

Ejemplos de archivos:

  • un documento ( texto)
  • un archivo que contiene c√≥digo de alg√ļn lenguaje de programaci√≥n

Ejemplo de proceso:

Adjunto la imagen donde se muestran los procesos usando la herramienta htophtop

La estructura del directorio

Todos los archivos están agrupados juntos en el directorio. El sistema de archivo está organizado en una estructura jerárquica, como un árbol invertido. La cima  de la jerarquía es tradicionalmente llamada Root identificada con un slash /

aquí un ejemplo

unix-tree

En el diagrama de arriba , vemos el directorio home¬† ug1 ,¬†“ee51vn” contiene dos subdirectorios¬†(docs and pics) y un archivo llamado report.doc.

El directorio completo para el archivo¬†report.doc¬†es¬†“/home/its/ug1/ee51vn/report.doc”

Esto es todo, hasta la pr√≥xima alguna duda, sugerencia o comentario no duden¬† escribirme ! ūüôā

 

 

Ejecutar aplicacion C# en Linux (Ubuntu Server)

Si alguna vez te has preguntado cómo programar en el poderoso lenguaje de programación C# bajo el SO Linux esta, es tu entrada.

Linux_logo

etSq-1

Esto lo logramos utilizando el paquete mono-gmcs, el proyecto mono es una implementación Open Source del .NET Framework.

Manos a la Obra !!! 

Nota: El SO que utilice en esta entrada es Ubuntu server.

Vamos a nuestra terminal  e instalamos el paquete mono-gmcs, para compilar nuestros programas C#.

sudo apt-get install mono-gmcs

En ocaciones este no funciona, como en mi caso, me funciono este

sudo apt-get install mono-complete

Esto sucede porque el mono-gmcs es el paquete del compilador y el mono-complete es el stack completo.

Una vez completado el proceso de instalación crearemos un directorio en el cual crearemos un archivo .CS el cual contendrá el código C#.

Creamos el directorio llamado cSharp.

sudo mkdir cSharp

Verificamos que el directorio se creó correctamente.

ls

Nos debe mostrar una salida similar a esta.

cs01

Ahora procedemos a entrar al directorio.

cd cSharp

Una vez dentro usaremos el editor de texto integrado en la terminal NANO, para escribir nuestro archivo de código C#.

Ejecutamos el siguiente comando

sudo nano holaMundo.cs

Nos aparecer√° una algo similar a esto

cs02

Ahora procedemos a escribir nuestro c√≥digo C#, en nuestro caso escribiremos una peque√Īa clase que imprimir√° en la terminal Hola Mundo Open Source, Microsoft Love Linux .

 

using System;
 
namespace holaMundo
{
    class holaMundo
    {
        public static void Main (string[] args)
        {
            Console.WriteLine ("Hola Mundo Open Source, Microsoft Love Linux");
        }
    }
}

Al terminar nuestra terminal deber√° lucir similar a esta.

cs03

 

Procedemos a guardar pulsando la combinación de teclas CTRl+O, al momento de guardar, recordemos que tenemos que salvar el archivo en extensión .CS

cs04

 

Luego de guardarlo, para salir de Nano usamos la combinación de teclas CTRl+X, verificamos que nuestro archivo se haya creado correctamente

ls

cs05

Ahora en la terminal ejecutaremos el siguiente comando el cual nos compilara nuestro código.

 sudo mcs holaMundo.cs

Si verificamos el archivo resultante es un .exe

cs06

Para ejecutar el exe resultante de nuestro código vamos a correr el siguiente comando

 

mono holaMundo.exe

el cual nos dar√° como resultado algo similar a esta

cs07

En resumen El proyecto Mono nos permite ejecutar nuestros .exe resultantes de código C# en ambiente Linux.

Cualquier duda, sugerencia o comentario no duden es escribirme.

 

 

 

 

 

 

 

 

 

 

Como instalar Golang en Linux (Ubuntu server)

Como instalar Golang en Linux (Ubuntu server)

golang-openfest-2012-121113022326-phpapp02-thumbnail-4El lenguaje de programación Go es un proyecto de código abierto para hacer los programadores más productivos. Go es expresivo, conciso, limpio y eficiente.

En esta entrada vamos a instalar Golang en Linux (Ubuntu Server).

En la terminal actualizamos los repos:

sudo apt-get update

Instalamos Go

sudo apt-get install golang

Cuando termine de instalar los paquetes corremos el siguiente comando para ver que version se instaló en nuestro sistema.

go version

Al ejecutar el comando tendremos la siguiente salida (especificamente ubuntu).

go

Exportamos la configuración que vamos a necesitar en nuestro bash_rc 

export GOROOT=/usr/lib/go

export GOBIN=/usr/bin/go

Hecho esto ya estamos listos para desarrollar en Golang.

Dudas, sugerencias y comentarios no duden en escribirme ! ūüôā