Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
|
highlevel:csharp:mono [2009/09/07 15:41] alfred |
highlevel:csharp:mono [2020/05/09 09:25] (actual) |
||
|---|---|---|---|
| Línea 1: | Línea 1: | ||
| ====== Mono ====== | ====== Mono ====== | ||
| + | ===== A tener en cuenta ===== | ||
| + | Como Mono es multiplataforma el separador de ruta puede ser distinto en Windows (''\'') que en Linux (''/''). Para evitar eso deberíamos hacer lo siguiente: | ||
| + | <code csharp> | ||
| + | string path = String.Format(".{0}scripts{0}jquery.js", System.IO.Path.DirectorySeparatorChar); | ||
| + | </code> | ||
| + | |||
| ===== Data Bases ===== | ===== Data Bases ===== | ||
| Línea 74: | Línea 80: | ||
| ==== XSP2 ==== | ==== XSP2 ==== | ||
| ''xsp2'' es el nombre del servidor de asp.net especial para mono. Al ejecutar el comando ''xsp2'' se crea un servidor en el puerto 8080 en el directorio donde se ejecute, aunque pueden configurarse sus aplicaciones web (''webapp''). | ''xsp2'' es el nombre del servidor de asp.net especial para mono. Al ejecutar el comando ''xsp2'' se crea un servidor en el puerto 8080 en el directorio donde se ejecute, aunque pueden configurarse sus aplicaciones web (''webapp''). | ||
| + | |||
| Línea 82: | Línea 89: | ||
| * ''Acción de construcción: Definición de la aplicación.'' | * ''Acción de construcción: Definición de la aplicación.'' | ||
| * ''Copiar al directorio de salida: Copiar siempre.'' | * ''Copiar al directorio de salida: Copiar siempre.'' | ||
| + | |||
| + | |||
| + | |||
| + | ===== C# Shell ===== | ||
| + | * [[http://www.mono-project.com/CsharpRepl]] | ||
| + | Desde //Mono 2.2// podemos tener una shell dinámica como la que tiene Python. Para ello desde la consola escribiremos ''csharp'', si quisieramos una con GUI haremos ''gsharp'' (las ''mono-tools'' tendrán que estar instaladas). | ||
| + | |||
| + | |||
| + | ==== Uso ==== | ||
| + | Podemos mostrar variables o valores facilmente: | ||
| + | <code csharp> | ||
| + | csharp> "a" == "a"; | ||
| + | true | ||
| + | csharp> (3 + 4) != 2; | ||
| + | true | ||
| + | csharp> var b = 3; | ||
| + | csharp> b; | ||
| + | 3 | ||
| + | </code> | ||
| + | === Funciones de utilidad === | ||
| + | * **help;**: Muestra la ayuda. | ||
| + | * **quit;**: Sale del shell. | ||
| + | * **ShowVars();**: Muestra las variables definidas. | ||
| + | * **ShowUsing();**: Muestra los using utilizados. | ||
| + | * **LoadPackage(string);**: | ||
| + | * **LoadAssembly(string);**: Carga la dll indicada: | ||
| + | <code csharp> | ||
| + | csharp> LoadAssembly("/home/alfred/Projects/dllTest/dllTest/bin/Debug/dllTest.dll"); | ||
| + | csharp> dllTest.MyClass.Saludo(); | ||
| + | "Hola caracola!!" | ||
| + | </code> | ||
| + | |||
| + | ==== gsharp ==== | ||
| + | Además de lo que se puede hacer desde el shell también podremos: | ||
| + | * Mostrar imágenes. | ||
| + | <code csharp> | ||
| + | Image.FromFile("/home/alfred/Escritorio/about.jpg"); | ||
| + | </code> | ||
| + | * Utilizar la función ''Plot'' para representar funciones matemáticas: | ||
| + | <code csharp> | ||
| + | Plot(x => 15*Math.Sin(x/7), x=> x*x); | ||
| + | </code> | ||
| + | |||
| + | ==== Notas ==== | ||
| + | * Los archivos .dll que se guarden en el directorio ''csharp'' o ''gsharp'' de la ruta que devuelva ''Environment.GetFolderPath (Environment.SpecialFolder.ApplicationData)'' se cargarán al inicio. | ||
| + | * Para ejecutarlo en Windows haremos: | ||
| + | - Start -> All Programs -> Mono 2.6.1 for Windows -> Mono-2.6.1 Command Prompt | ||
| + | - ''c:\> gsharp'' | ||
| + | |||
| ===== Notas ===== | ===== Notas ===== | ||
| * La aplicación [[http://mono-project.com/MoMA|MoMA]] sirve para analizar un ensamblado creado en el framework .NET y te indica si es portable a Mono. | * La aplicación [[http://mono-project.com/MoMA|MoMA]] sirve para analizar un ensamblado creado en el framework .NET y te indica si es portable a Mono. | ||
| * En las [[http://www.mono-project.com/Start|Guías de inicio]] de mono encontrarás recursos sobre como crear aplicaciones de escritorio, acceder\crear webservices... | * En las [[http://www.mono-project.com/Start|Guías de inicio]] de mono encontrarás recursos sobre como crear aplicaciones de escritorio, acceder\crear webservices... | ||
| + | ==== Linq en MonoDevelop 2.0 ==== | ||
| + | Aunque el intellisense no funcione correctamente, el siguiente código compila correctamente para un proyecto en versión 3.5 y con las referencias ''System'' y ''System.Core'' agregadas: | ||
| + | <code csharp> | ||
| + | using System; | ||
| + | using System.Linq; | ||
| + | using System.Collections.Generic; | ||
| + | using System.Data.Linq; | ||
| + | |||
| + | namespace PruebaLinq | ||
| + | { | ||
| + | class MainClass | ||
| + | { | ||
| + | public static void Main(string[] args) | ||
| + | { | ||
| + | List<string> l = new List<string>(); | ||
| + | l.Add("hola"); | ||
| + | l.Add("buenos días"); | ||
| + | l.Add("qué tal?"); | ||
| + | l.Add("todo bien?"); | ||
| + | |||
| + | var b = (from s in l select s).ToList(); | ||
| + | foreach (var i in b) | ||
| + | Console.WriteLine(i); | ||
| + | Console.ReadLine(); | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | </code> | ||