Mono para principiantes, 1ra Parte

Después de haber empezado el aprendizaje de C#, he decido empezar este pequeño cursito, para poder enseñar de manera básica, como usar C# y mono en Linux.

El objetivo es dar un conocimiento básico y finalmente en las últimas entregas, poder dar una idea de como implementar mono, tanto con GTK# como con Qt 4 a través de qyoto.

La primera pregunta que algunos se harán es: ¿Qué es Mono?

Mono es una plataforma creada para facilitar a los desarrolladores, la creación de aplicaciones multiplataforma, patrocinada por el proyecto Xamarin.

Es una implementación opensource de Microsoft.NET, basada en los estandars ECMA para C# y el CLR (la máquina virtual que ejecuta el código, el recolector de basura y el manejador de recursos).

Mono permite la creación de aplicaciones para Linux, Windows, Osx, iOS, Android, Windows Phone etc…, además de poder usar como interfaz, Windows Forms en Windows, Gtk y Qt en Linux, Cocoa en Osx.

Mono permite la integración de C#, Visual básic, Java, Python, Ruby, Eiffel, F# y otros lenguajes, en un mismo programa. El compilador de C# es licenciado bajo MIT/X11 y GPL. Las herramientas bajo licencia GPL, el runtime, bajo LGPL 2.0, las librerías bajo MIT X11, y ASP.NET, MEF, DLR, AJX, bajo la Microsoft Permissive Licence y la APACHE2.

Para saber más sobre las patentes y tener aclarado porque en realidad no hay ningún peligro, remito a la misma web de mono. http://www.mono-project.com/License

¿Que podemos hacer con Mono?

Podemos crear desde aplicaciones multiplataforma rápidamente, a base de datos conectadas a Mysql, Postgresql etc…, a páginas webs .
Entornos de Desarrollo

Actualmente tenemos a Monodevelop , uno de los IDEs más completos en Linux, el cual funciona en Linux, Windows y Mac OSX.

Permite además, la escritura multilenguaje, entre ellos C#, Visual basic.net, C/C++ y Vala.

Instalación

En este caso voy a enseñar como instalar la última versión en Ubuntu y derivadas, en otras distros en cambio, como Opensuse o Archlinux, encontraremos la última versión en los repositorios oficiales.

Primero , añadiremos el repositorio

add-apt-repository ppa:keks9n/monodevelop-latest

Luego actualizaremos y instalaremos el entorno y las bibliotecas

apt-get update && sudo apt-get install monodevelop-current

Una vez instalado todo, tendremos que reiniciar el sistema.

IDE, PRIMER PROGRAMA

Abriremos Monodevelop, luego Menú » Archivo » Nuevo » Solución y se nos abrirá un cuadro de dialogo, llamado nueva solución como este :

Nueva solución_001

Le daremos a c#, proyecto de consola, y entraremos el nombre del proyecto y le daremos una ubicación y finalmente le damos a aceptar, y así se nos abrirá el clásico y famoso Hola Mundo.

HolaM - Program.cs- - MonoDevelop_003

En este primer programa, nos encontraremos con dos cosas básicas:

1: La función Main principal, la cual es obligatoria para ejecutar cualquier programa, ya que el interprete buscará esa parte, para empezar a ejecutarlo. En este caso, diferenciamos de otros lenguajes que la palabra reservada Main, empieza por mayúsculas y no podemos equivocarnos ya que , de otra manera, el programa no funcionaria.

2: La orden Console.WriteLine();
Esta orden nos permite mostrar texto en pantalla. Console.WriteLine, se encuentra dentro del espacio de nombre «System», por eso como puedes ver, al inicio del programa se incluye la orden «using System».

Console.WriteLine , nos permite mostrar texto, poniéndolo entre comillas dobles, o variables, poniéndolas sin comillas.

Finalmente, ejecutaremos el programa, dandole a la tecla F5.

VARIABLES

En C#, tenemos diferentes tipos de variables entre ellas:
int para números enteros, float para números con decimales ,double para números con decimales pero con doble precisión, char para caracteres, string para cadenas de texto, bool para «True» o «false» y decimal . (También hay otros tipos, pero por ahora no es necesario saberlos todos, nos conformamos con los principales).

Las variables se declaran de la siguiente manera:

int coste = 3;
float cuenta = 3.145;
decimal balance = 23.3456677544;
char letraInicial = 's';
string nombre = "mikasa";
double misNumeros = 3153456.43345643;

Dicho de otra manera : tipoVariable nombreVariable = datos;

Para más información sobre los tipos os dejo el siguiente enlace : http://msdn.microsoft.com/es-es/library/ms228360%28v=vs.90%29.aspx

IMPRIMIR VARIABLES EN LA TERMINAL

Primero declaramos una variable dentro de la función MAIN , por ejemplo :

int precioDeCoste = 14;
int Iva = 6;
int sumaTotal = Iva + precioDeCoste;
Console.WriteLine( sumaTotal);

Os dejo una captura.

HolaM - Program.cs - MonoDevelop_005

Nos saldrá en pantala el resultado de haber ejecutado en la variable sumaTotal, la suma de la variable precioDeCoste y la variable Iva.

COMENTARIOS

Tenemos dos maneras de hacer comentarios, la primera es la manera clásica, la de los comentarios de una linea y se hace de la siguiente manera:

Se pone delante del texto, dos barras : // Este es un comentario de una linea

Los comentarios multilínea se hacen de la siguiente manera:

Se antecede el texto con un : «/*» y finalizándolo con un «*/»

HolaM - Program.cs- - MonoDevelop_006

Bueno, dejo esta primera parte aquí, la semana que viene, intentaré hablar más profundamente del uso de las variables, introduciré las sentencias if, while y for, y explicaré por encima que son los objetos, las clases y las funciones.

Un saludo.


Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.

  1.   F3niX dijo

    Bueno, yo he programado algunas app sencillas en C# con mono, una de las cosas que me hizo cambiar (fue que odio Gtk, con todas mis fuerzas), nada como el framework QT, y otra de las cosas es que python me parece un mucho mejor lenguaje , que también permite muy fácil migración entre plataformas.

    Ademas de esto debo admitir que MonoDevelop es uno de los mejores ide del mundo libre, solo superado por QTCreator que mi manera de ver las cosas le lleva mucho por delante, admitiento que c++ para mi es un dolor de cabeza.

    Aunque ahora tenemos Pycharm version Comunnity Edition, (que aunque no es opensource es gratis, igual que sublime) para python y la verdad es muy bueno «Python+Pychar + QtDesigner» o «Sublime + Pycharm + QtDesigner» es mucho mas fácil de trabajar que en MonoDevelop. Sin mencionar que Django, Web2Py , son mucho mejor que trabajar en mono la parte web.

    Lo que quiero decir es que me parece buena idea si alguien que programa en Visual Studio .Net desea migrar a alternatibas libres con Mono esta bien, pero si un fiel entusiasta del software libre que esta aprendiendo programación en estos momentos porque mejor no usar plataformas completamente libres desde el principio como C++ o Python… Que nunca pasan de moda y que están cada día mas en auge.

    Ahora cualquier tutorial de programación es bien recibido, y cualquier programador que piense ayudar a la comunidad sea en Mono, o en cualquier otro lenguaje, es bienvenido también.

    Saludos

    1.    nano dijo

      Cambiaría Pycharm por Ninja-IDE

      1.    F3niX dijo

        Me gusta + Pycharm a Ninja Ide le falta todavía, para ninja ide, prefiero Sublime.

        1.    nano dijo

          La cosa de Pycharm es que la versión gratuita es prácticamente lo mismo que Ninja IDE :/

          1.    F3niX dijo

            El autocompletado de pycharm es demasiado bueno, el code refactor tambien, la integración con git es genial. Esas tres cosas no se las he podido encontrar a Ninja-Ide ni con plugins.

            En contra PyCharm usa «JAVA», y es pesado, pero eclipse también lo usa y sin embargo ya ves lo usado que es.

            Ahora a Ninja-Ide le veo mucho futuro pero le falta muchas caracteristicas por aplicar. Es mi forma de ver las cosas

    2.    pandev92 dijo

      Puedes usar mono C# con qt tranquilamente, usando qyoto, dejé el enlace en el post.

      1.    F3niX dijo

        Si lo se, como dije no estoy en contra de Mono, incluso C# me parece un lenguaje muy sencillo de aprender. Y hasta tengo uno que otro cursillo aprobado, pero como dije existen tecnologías totalmente libre para alguien que valla iniciando en el mismo, y no le exijan ninguna plataforma en especifico.

        Yo defiendo bastante python, pero estoy haciendo el primer nivel de la certificación Oracle Java Develop SE, sencillamente porque algo tengo que añadir a mi curriculum, y porque la demanda de desarrolladores java «aveces» es buena en Venezuela. Aunque este ultimo año han incrementado bastantes las de DJango, y espero algún día dedicarme completamente a la programación.

        PD: Admas de Qyoto también esta Qt4Dotnet para c#

  2.   F3niX dijo

    PD: Aleja esos links a la MSDS de microsoft . Tienes acá la documentación de mono: http://docs.go-mono.com/ jaja.

    1.    pandev92 dijo

      Pero están en inglés xd

  3.   msx dijo

    Mono: la cuña de Microchot en las plataformas libres.
    No, gracias.

    1.    eliotime3000 dijo

      Bueno, si la costumbre sigue ahí, pueda ser que le hagamos una venganza tipo EEE, y probablemente el C# sea libre.

    2.    nano dijo

      No es lo ideal y puedo concordar contigo en eso, pero, cuando tratas de, por ejemplo, crear un programa que funcione en todas las plataformas y usar algún lenguaje conocido, pues no es mala opción.

      Mis compañeros son unos idiotas fanáticos de Java y no quieren mirar para los lados, luego encontraron C# y ahora aman C# y hablan pestes de Python, por ejemplo.

      Mono es una manera de trabajar desde distintas plataformas un solo programa, yo me encuentro en diatriba ya que el concepto es genial y sirve, pero no necesariamente me gusta C#

      1.    msx dijo

        Por más que vistan a la mona de seda, o al Mono en este caso, sigue siendo terreno Microsoft, desarrollado en primera instancia para portar el framework .NET a GNU+Linux.

        Es Mono realmente necesario para desarrollar aplicaciones multiplataforma?
        La respuesta es clara y contundente: NO.

        No es necesario porque la clase de aplicaciones a las que está orientado Mono [b]no son ni chicha ni limonada[/b]: la velocidad extra de C Shit, digo Sharp, sobre Python, es sólamente relevante al momento de utilizar aplicaciones complejas y que hagan un uso intensivo de los recursos locales como HW y sistema operativo base. Para *absolutamente* todo lo demás existe Python+Qt o, si hablamos de aplicaciones para el ambiente empresarial, el otro horror CamelCase llamado Java.

        Entonces, si deseamos que una aplicación local medianamente compleja funcione de forma optimizada en distintas plataformas la única opción viable es programar dicha aplicación teniendo en cuenta las características del entorno en donde se va a ejecutar y usar C++.

        Vos leíste las licencias de Mono? No es sólamente un berrinche anti-Microsoft (que aclaro, conozco lo mierda de empresa que es y tengo mis razones para combatirla) sino el estar sujeto a sus políticas arbitrarias.

        Podés codear todas las aplicaciones que se te ocurran en PythonQt de forma que no sólo sean multiplataforma sino hasta híbridas local/cloud con el mismo rendimiento pero mejor escalabilidad que el resto de las alternativas.
        Ahora, cuando cada ciclo del procesador cuenta las únicas alternativas son C/C++.

        Analizalo Nano: si la verga .NET y Mono fueran lo que publicitan entonces hoy todo se estaría desarrollando de esa manera, todo: los navegadores web, los reproductores de música, las planillas de cálculo, los editores de imágenes, lo que quieras, en principio codearíás todo una vez y lo portarías con mínimos cambios a cualquier plataforma, no es cierto!? Je, que raro que ya no esté sucediendo.. >:D

        No te dejes enroscar por una víbora que vende espejitos de colores (siendo el latiguillo ‘multiplataforma’ uno de ellos).
        Yo soy del palo PHP y con Python tengo mis reservas, más de práctica que de fondo, pero Python hoy permite codear tanto de forma local, desde una herramienta de consola, pasando por una robusta aplicación de escritorio a un completo website, CRM o la aplicación web que imagines. Es una realidad tangible, lo de Mono es humo que se viene vendiendo desde hace rato y permanece acotado a una comunidad nicho.

        Si hay algo que caracteriza al F/LOSS es la sagacidad de los desarrolladores a los que no les podés vender cualquier pavada usando sólamente palabras que suenan bien – eso dejalo para los ‘desarrolladores’ que usan ‘tecnologías’ Microsoft -, si Mono fuera realmente la maravilla que pretende ser ya estaría ampliamente adoptado en todo tipo de proyectos ‘multiplataforma’.

        Again, el dulce ‘multiplataforma’ como app local es una mentira, el verdadero concepto de multiplataforma está en la web.
        Si Mono fuera lo que pretende ser entonces por qué no programar las grandes aplicaciones y los juegos en C# aprovechar el triple de mercado en vez del ofrecido por una sola plataforma?

        Mono? No, gracias, que se vuelva a trepar al árbol del que se cayó.

        1.    pandev92 dijo

          Primero, C# es más usado que python mundialmente, aunque de muy poco

          http://blog.uchceu.es/informatica/indice-tiboe-de-junio-de-2013-ranking-de-los-lenguajes-de-programacion-mas-usados/

          Segundo, dejé el enlace con las licencias más arriba y explicado claramente, así que si quieres darte un portazo contra lo que está escrito, pues adelante…

          Java es una porqueria en cuanto a rendimiento y es el segundo lenguaje más usado, tu razonamiento no tiene sentido. Es como que yo diga » SI Linux fuera tan bueno como dicen, sería usado por el 90% de los usuarios de escritorio, pero como lo usan el 1/2% es una porquería».

          Y finalizando, a muchos desarolladores ni siquiera les importa la idea de hacer aplicaciones multiplataforma, y si las hicieran, las harían con java .

          1.    eliotime3000 dijo

            No es por ser eticoso, pero con C «michi» me confunde. Mejor prefiero trabajar con el mastodonted Java o el magnífico C++ (aunque este año recién me enseñen el C# con el Visual Studio de los mil demonios.

          2.    pandev92 dijo

            Lo siento @eliotime3000, pero a dia de hoy no he conocido una aplicación java para escritorio que funcione realtivamente rápido…:/, sobre c+++, claro que es mejor, pero se me hace muy difícil .

          3.    eliotime3000 dijo

            @pandev92:
            Te comprendo, ya que con Java, he programado y los resultados son un desastre. En cuanto a C++, me encanta por su complejidad y lo ligera que es a la hora de trabajar.

            En fin, es un desmadre trabajar con la tecnología de Microsoft, en especial, si usas Visual Studio .NET.

          4.    Ed dijo

            1) Vi tu cuenta en Phoronix

            2) Tiobe no puede utilizarse como referencia.

            3) ¡¿Tiboe o TIOBE?!

          5.    msx dijo

            Comienzo respondiéndote de esta manera:
            http://techrights.org/wiki/index.php/Image:Mono-the-trojan.png

            «Primero, C# es más usado que python mundialmente, aunque de muy poco
            http://blog.uchceu.es/informatica/indice-tiboe-de-junio-de-2013-ranking-de-los-lenguajes-de-programacion-mas-usados/»
            Es bastante lógico teniendo en cuenta que Python recién se está haciendo realmente usado desde hace muy poco tiempo atrás y M$ viene metiendo jodiendo desde hace rato.

            «Segundo, dejé el enlace con las licencias más arriba y explicado claramente, así que si quieres darte un portazo contra lo que está escrito, pues adelante…»
            Tu fanboyismo con Micro$oft no tiene límites, o sí?
            http://en.swpat.org/wiki/.NET,_C-sharp,_and_Mono
            Cito:
            «OIN protection
            Mono (version 1.1.10) is one of the software packages that OIN members promise not to use their patents against.[2] Version 1.1.10 is from 2005.
            In November 2010, Microsoft bought 882 patents from Novell (as a sub-part of a larger sale in which Attachmate bought most of Novell). This may have significantly weakened OIN. (Can you help? The consequences of this are not known. Information very welcome here: Novell#Does_this_weaken_OIN.3F)»
            Aunque luego es verdad que ese mismo párrafo termina:
            «Microsoft probably didn’t acquire any patents that would be dangerous to users of Mono. Firstly, Microsoft already had .Net patents, so if Novell had any, this would just be a surplus. Secondly, it seems that Microsoft’s patent promise(s) would apply equally to newly acquired patents. For these two reasons, the newly acquired patents are only as dangerous as the patents that Microsoft already had, so they’re just surplus.»
            no queda claro si en un futuro nuevos desarrollos .NET _SI_ estén patentados de forma que efectivamente agarren de las pelotas a los desarrolladores de C#.
            Es un modelo -deiabólico- simple y que ha demostrado ser provechoso siempre.

            No sólo eso, como bien dice el artículo de la wikipedia acerca de Silverlight/Moonlight:
            «An open source implementation of Silverlight, called Moonlight, has been included since Mono 1.9.[38] Moonlight 1.0, which supports the Silverlight 1.0 APIs, was released January 20, 2009. Moonlight 2.0 supports Silverlight 2.0 and some features of Silverlight 3.0.[39] A preview release of Moonlight 3.0 was announced in February 2010 and contains updates to Silverlight 3 support.[40]
            The Moonlight project was abandoned on May 29, 2012.[41] According to Miguel, two factors sealed the fate of the project: Microsoft added «artificial restrictions» that «…made it useless for desktop programming…», and the technology had not gained enough traction on the web.»
            el problema con tu amado Micromierda es que pueden patear el tablero cuando se les cante tal como lo hicieron con Silverlight.
            DEPENDER DE LOS DESIGNIOS DE UNA CORPORACION AMARGA COMO HISTORICAMENTE ES MICROSOFT EN VEZ DE ELEGIR COMUNIDADES DE DESARROLLO OPENSOURCE ES PEGARSE DOS TIROS DE ESCOPETA EN SENDOS PIES.
            http://en.wikipedia.org/wiki/Mono_(software)

            ///
            Sigamos.

            «Summary: Mono at FOSDEM got cancelled and there is generally almost no Mono coverage these days»
            Qué sentido tiene invertir en un proyecto muerto o con muy, muy poco interés por parte de developers brillantes en una plataforma que huele mal desde sus inicios y que sólamente tiene a un Ballmer disfrazado de porrista saltando y diciendo «Go Mono, Go!»? Quién carajo quiere eso!? Ah sí, pandev92, cierto.
            http://techrights.org/2013/02/07/mono-dying/

            Mono Can Now be Treated Like a Microsoft Project:
            «ummary: With Microsoft copyrights, patents, and licences in Mono, as well as a CEO who worked for Microsoft and financial backing from Microsoft veterans, it is naive to treat Mono as anything other than an extension of Microsoft

            Both Mono and Miguel de Icaza hardly make the news anymore. Perhaps due talk family life, the latter mostly left the public scene and after his new company, Xamarin, received some funding from a Microsoft veterans’ VC, it is safe to assume that Microsoft interests/leadership will inherit more responsibilities over this project. It helps openwash .NET and pretend it is cross-platform. Moonlight did the same for Silverlight. As Richard Hillesley put it earlier this week, Microsoft is now more directly involved. To quote his column: “Microsoft gave a certain level of encouragement to Mono in the knowledge that the project helped to spread the word and bring developers into the Microsoft fold. It is also true that many individuals within Microsoft had a genuine interest in promoting the idea of ‘open source’, usually with strings attached, and Mono gave credibility to Microsoft’s claim that its technologies were multi-platform, accessible to free software developers and a ‘part of the open web’.»
            http://techrights.org/2013/05/30/microsoft-project-in-foss-gown/

            Latest Debian GNU/Linux Installs Gnote When Mono is Removed:
            Summary: Interesting decision from Debian developers/packagers, who help those that reject and eject Mono
            http://techrights.org/2013/07/16/gnote-in-debian/
            Aunque Debian implemente GNU+Linux para el orto igualmente siguen siendo campeones de la difusión de sistemas operativos libres y universales y eso hay que defenderlo a muerte.

          6.    msx dijo

            Una aplicación Java de escritorio que funcione relativamente rápido? MuCommander, go google it. MUY rápido, diría.

            Respecto a:
            Java es una porqueria en cuanto a rendimiento y es el segundo lenguaje más usado, tu razonamiento no tiene sentido. Es como que yo diga ” SI Linux fuera tan bueno como dicen, sería usado por el 90% de los usuarios de escritorio, pero como lo usan el 1/2% es una porquería”.

            Claro, quizás con una segunda lectura comprendas lo que escribí, te invito. Si todavía no lográs interpretarlo avisame y con gusto te lo explico detalladamente.

            «Y finalizando, a muchos desarolladores ni siquiera les importa la idea de hacer aplicaciones multiplataforma, y si las hicieran, las harían con java»
            A VER, PARA QUE QUEDE CLARO: el MANTRA de Microshit al momento de traer .NET a GNU+Linux era PRECISAMENTE demostra que su desarrollo era (con voz http://goo.gl/hDqLwY) MULTIPLATAFORMA.
            So, de qué fucking hablás?

            Si amás a Microsoft y eso te hace feliz… y bueno, bienvenido sea, la vida es corta, si disfrutás… eso… bueno, allá vos, es tu vida, pero por lo menos salí del closet en vez de disfrazar tu sentimiento con otros argumentos.

        2.    nano dijo

          Nah, sabes bien que yo soy de Python, y últimamente mucho de php y JS por cuestiones de trabajo, lo mio es más el desarrollo web (más con los conceptos y API’s e JS para el trabajo asíncrono multi-proceso, está de puta madre).

          Lo que yo digo es que, en caso de llegar a ser imperioso usar C#, así como que ya no pueda renegar más de ello y tal, pues quizá use mono, pero sigo sin sentirme demasiado amigo de esa plataforma.

        3.    jhcs dijo

          hola , oyes amigo que recomiendas como ide de programacion que utilize python y qt? Espero su pronta respuesta.

          1.    M dijo

            Yo uso Emacs para todo así que no sabría decirte, pero una rápida pregunta la máquina omnisciente devuelve varios hits: http://lmgtfy.com/?q=ide+for+python+and+qt

  4.   eliotime3000 dijo

    Muy bueno, pero si uno usa Debian Stable (Wheezy), se tiene que añadir el backport en /etc/apt/sources.list la siguiente línea (o bien editando el archivo con GNU Nano o usando Orígenes de Software y/o similares) >>

    deb http://badgerports.org precise main

    Si los que usan Debian Testing y/o Unstable, MonoDebelop ya está disponible.

  5.   Lewis dijo

    string nombre = «mikasa»;
    //SNK detected.

    Por cierto, alguien ha usado Vala-C o granite? (Esto es elementaryOS)

    1.    pandev92 dijo

      Hahaha me pillastes 😛

    2.    nquiroga dijo

      jajajajjaja, si yo también lo vi

  6.   marianogaudix dijo

    A ELAV le gusta programar con MONO C# .
    ELAV es un fiel seguidor de Miguel De Icaza y de su proyecto MONO .

    https://blog.desdelinux.net/miguel-de-icaza-das-asco/

    1.    elav dijo

      Me lo quitaste de la boca, digo, de los dedos.. U_U

      1.    marianogaudix dijo

        ja,ja,ja ……….

  7.   felipe dijo

    Confiezo que me he sentido tentado a aprender C#, dado que la plataforma NET permite trabajar con este lenguaje y se pueden crear aplicaciones de escritorio que corren en cualquier maquina con NET instalado, es decir aprender un lenguaje que me sirva para crear programas que corran en el 90% de las computadoras del mundo es bastante tentador(Claro que hay muchas versiones de NET y se lo debe instalar primero para poder usarlo), mucho mas que aprender a programar para el 1%(XD lo siento linuxeros). Java es tambien bastante tentador, dado que te permite programar algo que funcionara en el 100% de las computadoras del planeta(Hay que instalar Java y Salvando las diferencias entre versiones de java y aspectos que no funcionan igual en todos los sistemas operativos) La mejor opcion parece java. Aunque NET es mucho mas rapido que Java, Java esta mas extendido. Mejor ir por Java. Ademas, MONO no es NET, y no hay nada que garantice que funcionara en WIndows, ni mucho menos en otras distros.

    Por Cierto en archlinux, antes este programa no andaba. Desde que se popularizo arch, misteriosamente comenzaron a andar mas programas.

    1.    nano dijo

      Bajo la misma premisa, preferible usar Python, que funciona absolutamente en todos los sistemas operativos y dependiendo de que tipo de binding utilices puedes seguramente trabajar mucho más rápido en tiempo de ejecución de Java.

      1.    Felipe dijo

        Es muy lindo python, pero en el manejo de base de datos se queda corto, para hacer que python pueda trabajar con mysql habia que bajarse un conector que solo estaba disponible para arquitectura de 32bits, por ende necesitabas usar python de 32bits y myslq de 32bits. Despues para que funcione habia que hacer unos pasos muy extensos. Python esta pensado para trabajar con slqlite. Y la «orientacion a objetos» es un chiste, claro esta muy lindo para sacar programas de escritorio simples y rapidos, en 10 minutos con pyqt sacas algo lindo, no apostaria por python para algo realmente complejo si para algo simple.

        1.    F3niX dijo

          De que estas hablando? que el conector de python para mysql es malo? desde cuando no usas python? Desde que salio a la luz el pep 249 http://www.python.org/dev/peps/pep-0249 que regula todas las conexiones de BD en un proceso unificado con tres pasos y con tres lineas ya tienes una bd corriendo.

          «Orientacion a objetos» un chiste?, en python todo es un objeto si quieres usar tu bd como un objeto usas MySqlAlchemy que es un ORM, y hasta las consultas a tu bd son un tratadas como objeto. Esto tambien es implementado en Django y sus modelos.

          Y por ultimo el conector(Difícil de instalar por cierto) solo usando el apt-get install python-mysql, y ya puedes hacer un import MySQLdb, y crear una conexion y un cursor.

          Sin hablar de que es mucho mas productivo para un programador trabajar con PyQt o PySide que Trabajar con C++ que es el nativo de QT, en stackover flow tienes una discucion de cual de los dos lenguajes es mas productivo, no quiero mencionar lo obvio aca.
          http://stackoverflow.com/questions/3139414/qt-programming-more-productive-in-python-or-c

          Pienso que deberías leer un poco antes de comentar y no decir que tu amigo tuvo(pasado) dificultades para bajarse un conector que se instala con un simple apt, paman, yum..

          Saludos

          1.    F3niX dijo

            No las he hecho en windows pero las he portado sin cambiar nada de codigo solo instalando sus respectivas dependencias e instalando python, y si no tienes apt porque estas en windows tienes PIP y lo puedes instalar asi «python pip install mysqldba», que gran diferencia con el apt.

            Si no te gusta usar pip lo tienes al estilo windows , aca tienes ambos conectores para 32bit y para amd64 en ejecutable.exe
            http://www.codegood.com/archives/129

            Saludos.

          2.    felipe dijo

            programaste alguna vez con python accediendo a bd myslq en win? Yo nunca hable de linux, deberias leer bien mi comentario por que nunca nombre a pyside, ni a ningun amigo. Ja

        2.    nano dijo

          De todos modos no es mi campo, el escritorio. Donde se ve la potencia de Python es en Django, por ejemplo.

          Aunque creo que el problema de manejo de bases de datos se ha mejorado toneladas en los últimos tiempos, llevo tiempo desconectado de las listas.

          1.    F3niX dijo

            La potencia de Python se enfoca en mejorar la productividad del desarrollador, al mejorar los tiempos destinados a un proyecto, para esto se mejora la calidad de código, haciéndolo mas fácil de mantener. Esto en un entorno empresarial aumenta las ganancias al lograr poder poner un producto en el mercado en el menor tiempo y con la mayor calidad posible, con el minimo de desarrolladores asignados al proyecto.

            Es un tripletazo tanto para las empresas como para los desarrolladores informales.

          2.    nano dijo

            Y eso no te lo discuto, pero luego viene el problema del performance y de qué o cual lenguaje usar.

            Realmente Python puede tranquilamente equipararse con Java en tiempo de ejecución, pero a veces esa productividad no compensa la pérdida de potencia que brinda un compilado como C++ por ejemplo.

            He ahí uno de los dilemas

    2.    pandev92 dijo

      Claro que funcionará en windows, y siempre además, recuerda que en windows puedes ejecutar hasta las versiones .net 1.0…, del año del nacimiento de Cristo ahahah.

  8.   edo dijo

    Funciona exactamente igual que java (mismo codigo donde sea)?

    1.    F3niX dijo

      No exactamente pero muy parecido, java tiene mas amplitud de plataformas.

      1.    nano dijo

        ¿Python? Dude, python basta con tenerlo instalado en la pc y ya. En todo caso, también las librerías (igual que Java) y a trabajar.

        De hecho solo tienes que instalarlo en Windows porque viene por defecto en Linux y OsX … es bastante multiplataforma.

        1.    F3niX dijo

          Pense que preguntaba por C#, compare C# con java, jamas compare python, sabes que programo en Python Nano. -.-

          1.    dhunter dijo

            Pues estamos en la misma página, le apuesto a Python con todo, yo digo como Google «Python cuando podemos y C++ cuando debemos».

  9.   Brizno dijo

    Qt4. Así de fácil. Y que los windowslerdos sigan tragando monos.

    1.    pandev92 dijo

      http://techbase.kde.org/Development/Languages/Qyoto

      Qyoto makes it possible to develop Qt applications using C#, or any other .NET language. Qyoto uses SMOKE, and offers access to almost all Qt classes. It is free and open source with the LGPL license.

    2.    eliotime3000 dijo

      Entre el mastodonte de Java y el mono de C#, opto por el mastodonte.

  10.   izzyvp dijo

    ¿Es posible crear aplicaciones usando windows forms en linux con esto?

    1.    pandev92 dijo

      Si pero…

      Looks alien on non-Windows platforms.

      http://www.mono-project.com/Gui_Toolkits

  11.   Rodolfo dijo

    No hay que discutir por lenguajes de programacion para eso estan los gustos si uno es mejor que otro cada quien es libre de escoger, yo programe en java y me va bien por mas lento que c++ en cuanto a consumo de memoria honestamente. Pero en lo personal me gusta. Creo qeu uno como programador tiene sus principios pero si queres retarte a uno mismo lo mejor es saber al menos un poco de cad uno y los que te gusten o tengas mas posibilidades economicas aprenderlos completamentes o masterizarlos si puedes. Cada lenguaje tiene su pro y contra. Python es un buen lenguaje pero para cosas grandes no da basto como darian otro lenguajes. Por ello depende de la necesidad de uno.
    Saludos.

  12.   Irvandoval dijo

    Mala experiencia con MonoDevelop en KDE , se me crasheaba seguido y siento que no da el ancho para trabajar con ASP.NET a nivel de facilidad
    (me dejaron hacer una pagina web con ASP.NET en la universidad)

    1.    pandev92 dijo

      No se si usabas qtcurve para el tema, porque por ejemplo se que es un bug reconocido.

      1.    Irvandoval dijo

        Si lo usaba y al iniciar me aparecia un mensaje advirtiéndome eso precisamente, cambie qtcurve por oxygen. Los problemas que se me presentaban eran mas que todo en el autocompletado de asp

  13.   Irvandoval dijo

    Por curiosidad quize instalar monodevelop con el ppa que posteaste y el paquete
    monodevelop-current no se encuentra en el , a diferencia de monodevelop-lastest

    1.    Irvandoval dijo

      *monodevelop-latest

  14.   marianogaudix dijo

    La sintasis de C# le gana a C , C++ y Python .
    Lo he podido comprobar yo mismo .
    Usando Mono Gtk y VALA Gtk .
    C# es lo mas parecido a C pero evolucionado .
    He trabajado con C++ y la verdad la sintaxis suele ser muy complicada si no tienes un manual de referencia , en muchos aspectos no tiene nada en común con C en sintaxis .
    C# no necesita archivos de cabecera como (C y C++ )
    La velocidad de C# y VALA es igual a la de C al ejecutarse .
    Con C# te ahorras tiempo al programar ya que la sintaxis es muy simple .

  15.   Miguel dijo

    Gracias por el cursillo, espero con impaciencia el siguiente tema. Espero aprender de una vez un lenguaje de programacion 😀

    1.    pandev92 dijo

      Si Microsoft hubiera podido hacer algo contra Mono, ya lo hubiera hecho, de eso puedes estar seguro. A día de hoy , no tiene más peligro que el de usar Java o Qt.

  16.   Maxiro dijo

    Muy bueno! pero tengo una consulta, no tiene mono un diseñador de ventas como tiene visual studio o qt design?

    1.    pandev92 dijo

      http://www.zimagez.com/zimage/capturadepantalla-041013-163033.php

      Claro que si xdd, por ejemplo en el mismo ide en gtk xd…

  17.   Bryan Rodríguez dijo

    La instalación no es igual a como la pones en el tutorial. Hay cosas que no me quedaron claro como todas las funciones que aparecen al principio pero no se, no soy profesional en este lenguaje.

    1.    pandev92 dijo

      Lol en que no es igual la instalación? Sino encuentras el paquete monodevelop, usa synaptic, lo buscas y le das doble click.

      1.    Bryan Rodríguez dijo

        Ya lo pude instalar pero tuve que tipear algunos comandos en la terminal pero muchas gracias.

  18.   mss-devel dijo

    .NET en Linux es una huevada que solamente se le ocurrión al hdp de Icaza

  19.   carlos dijo

    quiero saber como instalar .Net framework

  20.   Damian dijo

    Sinceramente el post es de un fanático a MicroShit.

    ¿C# multiplataforma? ¿que mierda tiene en el cerebro este señor?. Lo invito a que compile Banshee y mire su carpetas llenas de archivos .dll y un par de .exe le dejo el link http://banshee.fm/.

    C# no es multiplataforma ni el proyecto mono hace magia, lo que hace básicamente es permitir que por medio de sus bibliotecas después de compilar el .exe se pueda ejecutar entonces toca tener instalado para siempre Mono de lo contrario no se podrá ejecutar nada incluso después de haber compilado el programa, si Microsoft no dijo nada contra el proyecto Mono es porque tiene un interés muy claro y ya ven lo que paso con Xamarin ya que esa compañía lo que quiere es expandirse para su propio beneficio no para el beneficio del informático.

    Link Banshee Archlinux: https://www.archlinux.org/packages/extra/x86_64/banshee/

    Invito al dueño del post para que revise las dependencias y contenidos del paquete.