En este post tan solo veremos como crear una ventanita usando System.Windows.Forms desde una aplicación C# (usando el compilador mono).
¿Por qué mono?
Porque me parece adecuado para quienes quieren aprender .Net sin necesidad de instalar Windows.
¿Por qué no usar Wine para instalar Visual Studio .Net?
Porque siempre hay algún error al instalar dependencias en Linux, al menos así los he tenido. Creo que la mejor opción es siempre usar Visual Studio desde Windows.
Hola.cs
using System;
using System.Windows.Forms;
public class Hola{
public static void Main(string[] args){
try{
MessageBox.Show("Hola, estoy usando windows forms desde Linux");
}
catch(Exception ex){
Console.Error.WriteLine("Error: ["+ex.Message+"]");
Environment.Exit(0);
}
}
}
Compilar: mcs Hola.cs -r:System.Drawing.dll -r:System.Windows.Forms.dll
Ejecutar: mono Hola.exe
Salida:
domingo, 31 de mayo de 2015
sábado, 23 de mayo de 2015
¿Por qué Perl?
Tal vez a muchos no les llame la atención el lenguaje de programación Perl, tal vez ni sepan que existe, o que ventajas o desventajas tiene con respecto a lenguajes como Java o Python. Sin embargo, considero que no se pierde el tiempo en conocerlo.
Cuando recién iniciaba la carrera, los profesores recomendaban usar lenguajes como C para aprender los conceptos básicos de la programación. Conforme pasaba el tiempo hablaban de lenguajes o entornos de programación como Visual Basic o Delphi (Pascal) y según ellos eran los ideales para conseguir un trabajo. Después con el boom de las aplicaciones web, PHP se convirtió en el lenguaje más popular.
Lenguajes como Java y C# comenzaban a tener más adeptos, así como entornos de desarrollo o IDES como Visual Studio, Eclipse y NetBeans. Nadie hablaba de lenguajes como Perl o LISP. Eso era del conocimiento de los más nerds de los nerds.
La primera vez que escuche sobre Perl fue en un foro sobre trucos de programación (no recuerdo el nombre) y servidores,se recomendaba el uso de ese lenguaje si querías ser administrador de sistemas y base de datos (si de esos gorditos bonachones que saben un buen de cosas y que te dan un buen de soluciones a tus dudas de programación y de sistemas). Había interesantes scripts para la administración de servidores, detección de intrusos en red, y hasta para la recuperación de datos. Eso sí algunos scripts eran bastante complejos de entender.
Pero a todo esto ¿por qué Perl? ... con este lenguaje se puede hacer todo, desde las clásicas aplicaciones tipo consola hasta aplicaciones web. Incluso aplicaciones con interfaz gráfica. Es relativamente fácil de aprender si tienes familiaridad con lenguajes como C o PHP (de hecho este último se inspiro en el).
No es la octava maravilla del mundo, tienes sus ventajas y desventajas como cualquier otro.
Update:
Larry Wall explica por qué Perl es parecido al lenguaje humano:
Links
http://trabajodeprogramacionperl.blogspot.mx/p/que-es-y-para-que-sirve.html
Larry Wall explica por qué Perl es parecido al lenguaje humano:
Links
http://trabajodeprogramacionperl.blogspot.mx/p/que-es-y-para-que-sirve.html
domingo, 17 de mayo de 2015
Programando en C# no. 4
En esta ocasión crearemos un programa que nos permita conectarnos a una base de datos MySQL desde C# (usando Mono).
Necesitamos lo siguiente:
Tabla persona:
create table persona(id int auto_increment,nombre varchar(45),apellidoP varchar(45));
insert into persona(nombre,apellidoP) values ("Armando","Cadena"), ("Juan","Villa"), ("Maria","Estevez");
Una vez descargada la librería la instalamos (desde la terminal Linux):
sudo gacutil -i MySql.Data.dll
ConexionBD.cs
using System;
using System.Data;
using MySql.Data.MySqlClient;
public class ConexionBD{
public static void Main(string[] args){
string connectionString =
"Server=localhost;" +
"Database=test;" +
"User ID=root;" +
"Password=5432;" +
"Pooling=false";
IDbConnection dbcon;
dbcon = new MySqlConnection(connectionString);
dbcon.Open();
IDbCommand dbcmd = dbcon.CreateCommand();
string sql =
"SELECT nombre, apellidoP " +
"FROM persona";
dbcmd.CommandText = sql;
IDataReader reader = dbcmd.ExecuteReader();
while(reader.Read()) {
string FirstName = (string) reader["nombre"];
string LastName = (string) reader["apellidoP"];
Console.WriteLine("Nombre: " +
FirstName + " " + LastName);
}
reader.Close();
reader = null;
dbcmd.Dispose();
dbcmd = null;
dbcon.Close();
dbcon = null;
}
}
Compilación:
mcs Monaso.cs -r:System.Data.dll -r:/home/Codemonkey/Documentos/librerias/mysql-connector-net-6.9.6-noinstall/v4.0/MySql.Data.dll
Ejecución:
mono Monaso.exe
Links
http://www.monodevelop.com/documentation/
Necesitamos lo siguiente:
- Usar la base de datos "test" de MySQL
- Crear una tabla llamada "persona"
- Descargar la librería MySql para .Net
Tabla persona:
create table persona(id int auto_increment,nombre varchar(45),apellidoP varchar(45));
insert into persona(nombre,apellidoP) values ("Armando","Cadena"), ("Juan","Villa"), ("Maria","Estevez");
Una vez descargada la librería la instalamos (desde la terminal Linux):
sudo gacutil -i MySql.Data.dll
ConexionBD.cs
using System;
using System.Data;
using MySql.Data.MySqlClient;
public class ConexionBD{
public static void Main(string[] args){
string connectionString =
"Server=localhost;" +
"Database=test;" +
"User ID=root;" +
"Password=5432;" +
"Pooling=false";
IDbConnection dbcon;
dbcon = new MySqlConnection(connectionString);
dbcon.Open();
IDbCommand dbcmd = dbcon.CreateCommand();
string sql =
"SELECT nombre, apellidoP " +
"FROM persona";
dbcmd.CommandText = sql;
IDataReader reader = dbcmd.ExecuteReader();
while(reader.Read()) {
string FirstName = (string) reader["nombre"];
string LastName = (string) reader["apellidoP"];
Console.WriteLine("Nombre: " +
FirstName + " " + LastName);
}
reader.Close();
reader = null;
dbcmd.Dispose();
dbcmd = null;
dbcon.Close();
dbcon = null;
}
}
Compilación:
mcs Monaso.cs -r:System.Data.dll -r:/home/Codemonkey/Documentos/librerias/mysql-connector-net-6.9.6-noinstall/v4.0/MySql.Data.dll
Ejecución:
mono Monaso.exe
Links
http://www.monodevelop.com/documentation/
martes, 5 de mayo de 2015
Julia en ejemplos no. 3: Creando "clases"
Retomando los ejemplos de código en Julia en esta ocasión conoceremos como crear estructuras Type. Semejantes a las clases de lenguajes como C, Python y Java.
¿Cómo creo una "clase"?
Con la siguiente sintaxis:
type Nombre_Tipo
...
...
end
Ejemplo. Crear una "clase" en Julia introduciendo valores y mostrarlas en pantalla.
Definiremos entonces:
type Objeto
propiedades::Function
#constructor
function Objeto()
this = new()
#método para imprimir valores
function ObtenerDatos(altura::Int64,ancho::Int64,grosor::Int64)
println("Objeto{alto:",altura,"ancho:",ancho,"grosor:",grosor,"}")
end
this.propiedades = ObtenerDatos
return this
end
end
#función externa para introducir datos
function entrada(prompt::String="")
print(prompt)
chomp(readline())
end
#bloque principal del programa
begin
objeto = Objeto()#instancia
altura = int(entrada("Introduce altura:"))
ancho = int(entrada("Introduce ancho:"))
grosor = int(entrada("Introduce grosor:"))
objeto.propiedades(altura,ancho,grosor)
end
Ejecución del código: julia Clase.jl
Links
http://chrisvoncsefalvay.com/2015/02/14/types-and-inheritance.html
https://thenewphalls.wordpress.com/2014/02/19/understanding-object-oriented-programming-in-julia-part-1/
¿Cómo creo una "clase"?
Con la siguiente sintaxis:
type Nombre_Tipo
...
...
end
Ejemplo. Crear una "clase" en Julia introduciendo valores y mostrarlas en pantalla.
Definiremos entonces:
- Una estructura Type con el nombre de "Objeto"
- Un método llamado "propiedades"
- Un método para mostrar las "propiedades"
- Una función externa que nos permita introducir datos
type Objeto
propiedades::Function
#constructor
function Objeto()
this = new()
#método para imprimir valores
function ObtenerDatos(altura::Int64,ancho::Int64,grosor::Int64)
println("Objeto{alto:",altura,"ancho:",ancho,"grosor:",grosor,"}")
end
this.propiedades = ObtenerDatos
return this
end
end
#función externa para introducir datos
function entrada(prompt::String="")
print(prompt)
chomp(readline())
end
#bloque principal del programa
begin
objeto = Objeto()#instancia
altura = int(entrada("Introduce altura:"))
ancho = int(entrada("Introduce ancho:"))
grosor = int(entrada("Introduce grosor:"))
objeto.propiedades(altura,ancho,grosor)
end
Ejecución del código: julia Clase.jl
Links
http://chrisvoncsefalvay.com/2015/02/14/types-and-inheritance.html
https://thenewphalls.wordpress.com/2014/02/19/understanding-object-oriented-programming-in-julia-part-1/
Etiquetas:
clases,
julia,
orientación a objetos,
type
domingo, 3 de mayo de 2015
Gavin King habla sobre el nicho de mercado de Ceylon
Esta es la entrevista más reciente a Gavin King sobre el lenguaje Ceylon: https://www.voxxed.com/blog/2015/04/wheres-the-market-niche-for-ceylon/
Les dejo el vídeo:
Links
http://www.javamexico.org/foros/ceylon/%C2%BFdonde_esta_el_nicho_de_mercado_para_ceylon
http://ceylon-lang.org/blog/
Les dejo el vídeo:
Links
http://www.javamexico.org/foros/ceylon/%C2%BFdonde_esta_el_nicho_de_mercado_para_ceylon
http://ceylon-lang.org/blog/
Suscribirse a:
Entradas (Atom)