Mostrando entradas con la etiqueta mono. Mostrar todas las entradas
Mostrando entradas con la etiqueta mono. Mostrar todas las entradas

Instalar Monodevelop 3.0.5 en OpenSUSE 12.2


Buenas noches SQLeros el día de hoy vamos a instalar MonoDevelop desde el código fuente porque para esta fecha no se encuentra un paquete precompilado para OpenSUSE 12.2, aparte de eso la versión que esta para los repositorios de OpenSUSE es la 2.8.x y esa tiene un bug cuando seleccionas una solución te manda una excepción.


Nos dirigimos a la dirección http://monodevelop.com/download y seleccionamos la opción Source Code. Para este caso la url es la siguiente lo descargamos con: 

  • wget http://download.mono-project.com/sources/monodevelop/monodevelop-3.0.5.tar.bz2

Después lo descomprimimos para poderlo instalar, usando: 

  • tar -xvf monodevelop-3.0.5.tar.bz2

Ingresamos en el directorio monodevelop3.0.5 con: 
  • cd monodevelop3.0.5

Ahora vamos a configurar el paquete, usando: 
  • ./configure --prefix=`pkg-config --variable=prefix mono`
Ahora terminando la ejecución del comando usamos: 
  • make
  • make install
Esperamos y ¡listo!

Acá les dejo una captura de pantall del MonitoDevelop

Usando Mono con WebMatrix y ASP.Net MVC3

Bueno SQLeros, como ven el titulo del post vamos a hacer un pequeño ejercicio con WebMatrix, ASP.Net MVC3 y Mono. Usando un servidor ubuntu corriendo apache junto con mono 2.10. Para servir las páginas .cshtml, no perdamos tiempo y empezemos, lo primero que tenemos que hacer es crear un nuevo proyecto en WebMatrix como podemos observar en la imagen:



1. Seleccionamos la opción sitio a partir de plantilla




2. Seleccionamos la plantilla, sitio vació le escribimos un nombre y damos clic en aceptar.



3. Ya que nos presente la interfaz principal en la sección Archivos, damos clic derecho sobre la carpeta y seleccionamos la opción del menú desplegable Nuevo archivo...



4. Seleccionamos el tipo de archivo CSHTML, que es que nos interesa para este caso... :), hasta ahora muy fácil


5. En la linea número 2 vamos a agregar cierta lógica, es decir, lo que va a hacer nuestra página.

@{
    string frase = "";
    if(IsPost){
        frase = Request["frase"];
        frase = frase.Replace("a","afa").Replace("e","efe").Replace("i","ifi").Replace("o","ofo").Replace("u","ufu");
    }
}
6. ahora en la linea número 9 agregaremos un formulario, un fieldset, una label y dos inputs. Quedando el código html de la siguiente manera.
<form method="post">
    <fieldset>
        <label for="frase">Escribe una frase para traducirla a lenguaje F</label>
        <input type="text" id="frase" name="frase"/>
        <input type="submit" value="Enviar">
    </fieldset>
</form>
7. después de copiar el código agregaremos, las siguientes lineas de código de servidor, esto para terminar la lógica de la página.
8. ahora damos clic en ejecutar y vemos que efectivamente la aplicación corre sobre windows.

9. Llenamos el campo de texto, damos clic en enviar y lo que resulta es el procesamiento del texto. 
10. Para este caso funciona perfectamente, ahora vamos a hacer que funcione para GNU/Linux usando mono. =) ahora antes de configurar WebMatrix para usar un FTP y guardar los archivos en el servidor GNU/Linux. Necesitamos:
  • Instalar Mono 2.10 (Este enlace muestra una forma de instalación menos dolorosa, si pudiera dar un adjetivo diría huevona)
  • Instalar Apache y configurarlo para usarlo con mono... =)
Ya con estas herramientas configuradas y andando, configuraremos WebMatrix...
11. Ahora en la aplicación damos clic en publicar/configuración nos lanzara una pantalla similar a esta.
Donde configuramos los datos del FTP, para mi caso selecciono la opción FTP y lleno los datos que me pide.
Ingresamos los datos y validamos la configuración para ver si es correcta.
Como pueden apreciar no tengo archivos para esta carpeta que esta configurada en el FTP, aqui es donde WebMatrix pondrá los archivos para trabajar.
Cuando termina de checar los las configuraciones me dice que archivos son los que se van a mover a la carpeta del FTP ahora, para fines de practicidad y tiempo le decimos que si a todos... =)
Vamos a verificar si la publicación se realizo de manera correcta, vamos a probar el sitio web en el servidor que tenemos en GNU/Linux. Entrando a la url con el navegador. Ahora cuando entro a la url que le he dado la cual es: http://rammstein/Page.cshtml, salta un cuadro de dialogo de guardar... es decir el servidor web encuentra la página pero no la puede procesar, con el mono... Que lastima hasta aqui todo era muy fácil, pero no se preocupen.
Lo que tenemos que hacer es simplemente borrar del directorio bin/ el ensamblado llamado: "Microsoft.Web.Infraestructure.dll" usando el comando rm.
ya borrado este ensamblado. Como podemos apreciar en la siguiente imagen.

Ahora lo que nos resta es es simplemente ir a la url donde esta nuestra página o aplicación web. Y listo!
Así de rupestre! Espero les sirva este ejemplo. Les dejo el código acá, y también quedo al pendiente de los comentarios. Saludos, SQLeros!


Diez Años de .Net

En el boletín de Microsoft del MSDN Flash que recibí este día dice que ya son 10 años de .Net y justamente recuerdo cuando inicie mis días de programación con .Net.


En aquella época estaba la versión 2002 de Visual Studio

LINQ paralelo ( PLINQ ) para SQL server

Lo primero es que no corre con el framework 3.5 tiene que trasladarse ya al 4.0

Los procesadores multinúcleo ya están aquí. Los procesadores multinúcleo solo estaba disponibles para servidores y PCs de escritorio. Pero ahora, ya se están usando en teléfonos móviles y PDA, lo cual genera grandes ventajas en relación con el consumo de energía. En respuesta al aumento de disponibilidad de plataformas con procesadores multinúcleo, Parallel Language Integrated Query (PLINQ) ofrece una manera fácil de sacar partido del uso de hardware paralelo, incluidos equipos tradicionales con varios procesadores y la última ola de procesadores multinúcleo.

PLINQ es un motor de ejecución de consultas que acepta cualquier consulta LINQ to Objects o LINQ to XML y usa automáticamente varios procesadores o núcleos para su ejecución cuando estos están disponibles. El cambio en el modelo de programación es minúsculo, lo cual significa que no es necesario ser un gurú para usarlo.

Usar PLINQ es casi exactamente lo mismo que usar LINQ to Objects y LINQ to XML. Puede usar cualquiera de los operadores disponibles.


Ejemplos con conexión a base de datos.

Linq
var query = from c in db.Customers
where c.Country == "USA"
orderby c.CompanyName
select new { c.CustomerID, c.CompanyName };

plinq
var query = from c in db.Customers.AsParallel()
where c.Country == "USA"
orderby c.CompanyName
select new { c.CustomerID, c.CompanyName };


El genio Joe Duffy es el responsable de desarrollo del equipo Parallel FX de Microsoft y participa habitualmente en el blog www.bluebytesoftware.com/blog. Está escribiendo un libro, Concurrent Programming on Windows, que va a ser publicado por Addison-Wesley.

Codeplex: Hostea tu proyecto OpenSource

Si bien en sus inicios, el sitio fue muy criticado, por ser una copia de SourceForge.net


Hoy te vamos a hablar de  CodePlexde Microsoft, el que ya lleva su buen tiempo en la red, convirtiéndose en un sitio muy visitado por los programadores.


CodePlex es una herramienta que ayuda a los desarrolladores en su administración de proyectos Open Source.


Estas son algunas de las características y prestaciones que podemos encontrar en CodePlex:




  1. Posibilidad de publicar nuestros proyectos open source.

  2. Hosting para nuestros archivos de código.

  3. Página para el proyecto.  Es posible editarla.

  4. Administración de miembros del equipo de desarrollo.

  5. Upload de código.

  6. Manejo de versiones.

  7. Comunidad y área de discusiones para nuestro proyecto.

  8. Subscripciones vía RSS.

  9. Los usuarios pueden escribir reviews o comentarios por cada versión.

  10. Estadísticas de proyecto.

  11. Varios tipos de licencias para escoger, entre ellas figuran GNU y GNU v2


Proyectos interesantes publicados en el sitio:




  • AjaxControlToolkit Un conjunto de herramientas de Ajax para aplicaciones ASP.NET

  • SilverLight Toolkit Una colección de controles para la plataforma SilverLight

  • BlogEngine Es un programa con prestaciones similares a las que ofrece WordPress hecho en .NET

  • IronPython La implementación de Pythom para .NET

  • FacebookToolkit Herramientas para la manipulación de la API de Facebook

  • MVC Samples Conjunto de aplicaciones ejemplo de MVC de Microsoft

Microsoft Visual Studio 2010 En Castellano

Visual Studio 2010 es la nueva versión del entorno de desarrollo integrado para sistemas Windows que incorpora nuevas características mejoradas que hacen que todo el proceso de desarrollo, desde el diseño a la implementación, sea más sencillo.

Con este lanzamiento Visual Studio 2010 cuenta con versiones en inglés, francés, alemán, japones y español.

Visual Studio 2010 dispone de las soluciones, 2010 Profesional, 2010 Premium, 2010 Ultimate y Test Profesional 2010 que podrás compararse desde www.microsoft.com.

Interesados pueden encontrar más información acerca de Visual Studio 2010 así como acceder a la compra o descarga de una versión de prueba desde www.microsoft.com.

Los diez errores más comunes en el diseño de una base de datos

Hola SQLeros,Louis Davidson es un experto en el diseño de Base de Datosy es autor del libro SQL Server 2005 Database Design and Optimization en el artículo aquí enlazado presenta los diez errores más comunes en el diseño de una BD que el ha detectado a lo largo de su experiencia:




  • Mala planeación del diseño

  • Ignorar la normalización

  • Estándares de nomenclatura deficientes

  • Falta de documentación

  • Una sola tabla para guardar todos los valores del dominio

  • Usar columnas GUID como la única llave de una tabla

  • No usar las funcionalidades SQL para preservar la integridad de los datos

  • No usar Stored Procedures para acceder a los datos

  • Intentar construir objetos genéricos en los stored procedures

  • Falta de pruebas


En mi experiencia la mayoría de los desarrollos donde he trabajado presentan algunas de estas deficiencias en su base de datos. Creo yo que en muchos de los casos es porque se deja a un programador diseñar la base cuando debe ser haber un DBA involucrado en el proceso. Se que muchos proyectos no pueden pagar el sueldo de un DBA en exclusivo pero creo que al menos debe haber un DBA por organización que supervise el diseño elaborado por los programadores, lo mejore y le de su visto bueno.
Con las bases de datos pasa como con el diseño web, cuando se deja en manos de un programador elresultado puede ser un desastre e imagino que la mayoría de ustedes ha tenido que lidiar con chapuzas como una tabla totalmente desnormalizada (digo a veces está bien desnormarlizar para ganar en desempeño pero hay límites) y que necesita de 5 o más campos para tener una llave compuesta (y dile adios a tu idea de usar un ORM para la capa de datos), o una tabla con 20 campos que se llaman campo1, campo2, .. campoN y que nadie en la organización sabe que diablos es el campo7 o quién era el encargado de actualizarlo pero sin él tu aplicación no funciona, en fin no seguiré descargando mi frustración aquí :P . En mi opinión una forma de evitarle frustraciones a los otros programadores es que, dado que las empresas no van a querer pagar un DBA para auxiliarte en el 70% de los casos,nosotros nos documentemos con artículos como el de Louis para realizar un mejor trabajo que programar no es solo usar Spring o el último patrón de diseño.

Ctrl Alt Supr

Enero de 2004. La prensa especializada deja caer entre sus artículos uno dedicado a un ingeniero de IBM que despues de muchos años abandona la empresa. ¿Qué puede tener de especial una persona para merecer ese titular? El protagonista de esta historia se llama David J. Bradley. Tiene 55 años. Formó parte del equipo que creó el primer ordenador personal. Debe sus quince minutos de fama a haber sido quien ideó la combinación de teclas "Control+Alt+Supr" para reiniciar un ordenador.


Por esta razón Bradley entra en el Club de los Históricos de ARRAI.


¿Cuantas veces hemos usado esta combinación de teclas para reiniciar nuestros equipos? El "Control+Alt+Supr" (en inglés "Control+Alt+Delete") es uno de los pequeños iconos culturales del mundillo de la informática.


Corría el año 1981. 12 ingenieros, "los 12 del patíbulo", creaban en los laboratorios de IBM situados en Boca Ratón, Florida, el primer ordenador personal, el IBM-PC. Entre ellos estaba David J. Bradley. Fue el encargado de diseñar la BIOS de aquel primer equipo de uso doméstico. El resto de su trabajo para el "gigante azul" queda empañado por la anécdota: la creación del código de reinicio del PC.



El ingeniero David Bradley


Entró en IBM en 1975, y formó parte a partir de 1980 del equipo que desarrolló el primer ordenador personal. Entre otras cosas, es responsable del código de la ROM BIOS que llevaban los primeros PCs. Despues de 28 años y medio en IBM, Bradley la abandonó en enero de 2004. En la actualidad continúa impartiendo clase en la Universidad Estatal de Carolina del Norte. Para este ingeniero en electricidad e informática, cuantos más estudiantes vayan a carreras de ciencia y tecnología, mayor será la fuerza económica del país (en su caso, de los Estados Unidos).


David J. Bradley



Control Alt Delete


¿Por qué se desarrolló esta función? Bradley explica que a principios de los 80 en IBM se estaban haciendo pruebas de forma intensa con nuevo hardware y nuevo software. Esto provocaba que los ordenadores se quedasen colgados con facilidad. Para volver a arrancar un equipo era necesario apagarlo, esperar unos segundos a que reposara para no provocar daños al hardware, volver a arrancarlo y esperar por las rutinas de autocomprobación que ejecutaba el PC. Se tardaba más de un minuto en volver a tener el equipo operativo.


La idea de Bradley era crear un mecanismo que permitiese el reinicio "en caliente", sin tener que seguir todo ese proceso. El ahorro de tiempo era considerable, y por eso esta funcionalidad, que en un principio estaba destinada únicamente a ser conocida por los desarrolladores de IBM, se difundió paulatinamente entre el público.


¿Porqué esas tres teclas?


¿Por qué estas tres teclas? Se trataba de encontrar una combinación que no se pudiese teclear por accidente. Se eligieron dos teclas de uso poco común (Control y Alt) y la tercera se buscó justo al otro lado del teclado. Al principio Bradley pensó en la tecla "+", pero creyó que DELETE tendría más sentido. Una vez definida la solución, Bradley afirma que programarla no le llevó más de cinco minutos.



La actualidad de "Control Alt Delete"


Ya no es lo que era, ahora es más. Las versiones de Windows 2000 y XP capturan esta combinación y ofrecen un panel de opciones: el administrador de tareas, cerrar sesión o apagar de forma civilizada. En los casos extremos en que esto ya no funciona, no hay más remedio que volver al fatídico botón de reset.


Tambien se incorpora en Windows 2000 para arranque de sesión, con lo que "Control+Alt+Supr", tambien conocido como "La llave de Vulcano", o "El saludo de los tres dedos", ha dejado definitivamente de ser un truco no escrito a ser una combinación de teclas de obligado conocimiento, mucho más usada si cabe.



Hacerlo famoso


Cuando se celebraba el vigésimo aniversario de la creación del Pc, compartían escenario en una mesa redonda Bill Gates y David Bradley, entre otros. Durante una parte del evento, el tema de conversación era el mecanismo de reinicio. En el vídeo cuyo enlace ofrecemos se puede oir a Bradley bromeando con Gates, aunque este último no pone cara de estar divirtiéndose. Bradley dice: "Hacerlo llevó cinco minutos, no sabía que iba a crear un icono cultural. Pero tengo que compartir el mérito, puede que yo lo haya inventado, pero ha sido Bill el que lo ha hecho famoso."


Seguramente, Bradley fue el primer sorprendido por la fama alcanzada por su código. Algo que en principio era simple, que no llevó más de cinco minutos, se acaba convirtiendo en un icono cultural. Quizá esto nos puede enseñar a apreciar los detalles y los trabajos pequeños. Si están bien hechos y son útiles, pueden convertirse en algo con un gran significado.


La idea de Bill Gates es distinta. Adoptó el código de Bradley, le era útil y lo utilizó como un complemento para construir algo mayor. Es tambien una forma de ver como lo que hacemos, si lo compartimos, puede servirle a otra gente. Aunque podemos adivinar que Gates hubiese preferido que el "Ctrl+Alt+Supr" no fuese tan conocido por sus usuarios.


Ahora una rola del reno renardo al respecto.


Ctrl Alt Supr - Reno Renardo

Soporte Mono Touch para Ipad

A tan solo 24 hrs de la salida del SDK para Ipad, se ha completado el soporte para Mono Touch, Segun Miguel de Icaza en su blog. Otro de los colosales avances en la era de programación con Mono. Usando el esperanto de los lenguajes de programación.

Encontrar el valor de un Window Message

De vez en cuando, si trabajamos con WinForms, nos puede surgir la necesidad de manejar un evento a muy bajo nivel y para hacerlo tenemos que interceptar los famosos Window Messages, o mensajes de ventana. Estos mensajes son el mecanismo que utiliza Windows para comunicarse con una aplicación. Cuando apretamos una tecla y nuestra aplicación responde, parece que es nuestra aplicación la que ‘atrapó’ el teclazo, pero en realidad es el Sistema Operativo (SO) el que lo atrapó (debido a que el SO es quien controla el puerto donde esta conectado el teclado) y este le envía un mensaje a nuestra aplicación para que responda al mismo, normalmente imprimiendo el caracter representado por la tecla presionada. Aunque no lo parezca, el SO es quien tiene control de todo lo que sucede y cuando nuestra aplicación responde a distintos inputs, es en realidad el SO el que le ordena que haga una cosa u otra.


Si tenemos un Form y el SO determina que es necesario que sea redibujado (porque cambio su contenido por ejemplo), entonces se envía un mensaje conocido como WM_PAINT (en .NET veremos que esto dispara el evento Paint), en cambio si presionamos la tecla ‘Q’ en el teclado, entonces el mensaje recibido por nuestra aplicación es WM_KEYDOWN (también tenemos el evento KeyDown en .NET, el cual es lanzado cuando se recibe un mensaje de este tipo). Cabe aclarar que el nombre de los mensajes es solo una ayuda para nosotros los humanos, ya que los mensajes en realidad no son más que un valor entero, y estos nombres son los nombres de las constantes asociadas a los mismos.


Para interceptar estos mensajes lo que se suele hacer comúnmente es sobrescribir el métodoWndProc definido en la clase Control de la siguiente manera:



 1: ...

   2: private const int WM_PAINT = 15;

   3:

   4: protected override void WndProc(ref Message m) {

   5:

   6:     if (m.Msg == WM_PAINT) {

   7:         // Atrapamos el mensaje...

   8:     } else{

   9:         // Ignoramos el mensaje y dejamos que siga su curso

  10:         base.WndProc(ref m);

  11:     }

  12:

  13: }

  14: ...

El método WndProc es el que se encarga de procesar todos los mensajes que recibe un Form y es por eso que ese es el punto indicado para atraparlos.


Ahora el problema esta en conocer el valor de los mensajes, ya que muchas veces uno sabe que mensaje procesar, pero no sabe cual es su valor. Estos valores están definidos en la claseSystem.Windows.Forms.NativeMethods y System.Design.NativeMethods, pero lamentablemente estas clases son internas y no tenemos acceso a ellas, por lo que vamos a tener que usar .NET Reflector para ver su contenido.


La info de este post fue sacada de aquí.


Saludos

MonoDevelop 2.2 Beta 1: We go cross platform.

MonoDevelop goes cross platform.

Since the beginning of time, man has yearned to get a cross platform .NET IDE. Homer's Odyssey described one man's effort to achieve such a thing. And it was not until today, September 9th of 2009 that the world can test out such a tool.

With this release MonoDevelop leaves its cozy Linux nest and embarks on a wild adventure into the hearth of MacOS and Windows. The MonoDevelop team made this one of their major goals for this release: to turn our loved IDE into a cross platform IDE.

If you are curious about the details, check out the What is new in MonoDevelop 2.2 page.



MonoDevelop on Windows

We are not only bringing MonoDevelop to OSX and Windows as a plain GUI port, but we are also providing installers, deep operating system integration and support for native debugging on each platform.



MonoDevelop on MacOS X

In addition to becoming a cross platform IDE, there are many new features in MonoDevelop.

For instance, MonoDevelop can be used to develop ASP.NET MVC applications on OSX and Linux and Silverlight applications on OSX and Linux.

Debugger


MonoDevelop now has integrated debugger support. Not only it is able to debug Mono applications, it also can work as a frontend to GDB to debug native applications.

In addition, on Linux it is possible to debug ASP.NET pages.

New Add-ins


New exciting add-ins: ASP.NET MVC, Silverlight and iPhone (for use with MonoTouch).

Policies


A common problem that we face as open source developers is that not every project uses the same coding style. Different teams use different coding conventions. MonoDevelop now supports policies to describe how files should be edited and what defaults should be used in each:


Editor Improvements


My favorite new feature is Dynamic Abbrev (Alt-/) a feature that we brought from Emacs and that fills me with joy. That being said, for the non-Emacs lovers there are plenty of features that you asked for, and that we implemented:

  • Extensive refactoring support. And I mean, it is extensive.

  • Code templates.

  • On the fly formatting.

  • Acronym Matching in Code Completion

  • XML Documentation Shown in Code Completion

  • VI mode for those users hooked up on VI commands, they can now use those within MonoDevelop.


Another pretty cool feature is the code generation support that is triggered with Alt-Insert. When you press Alt-insert it will popup a context sensitive dialog box that offers a few options of code that could be generated at this point: ToString methods, Equals/GetHashCode methods all based on existing fields and properties.

Why go Cross Platform?


Going cross platform means that developers will have the same tool across all of the operating systems they use: Windows, Mac and Linux.

.NET developers that have been enchanted by OSX will be able to continue developing software with their favorite programming languages while enjoying OSX and will be able to go back and forth between Windows, OSX and Linux as needed. This also means that they can work with developers in other platforms, regardless of the personal choices of other team members.

As many of you know, the number of contributors to a project is linked to the number of users of that project. By expanding our market presence from Linux, we expect to get contributions, fixes, improvements, bug reports, code and add-ins from developers in other platforms.

We intend to make MonoDevelop the Eclipse of the .NET community. Just like Eclipse became the foundation for Java development, we hope that MonoDevelop will become the foundation for .NET development, and hopefully for much more than that.

A multi-system IDE


We are not religious when it comes to supporting other programming languages [1]. We want to embrace not only .NET-based projects like Gtk#, Silverlight, ASP.NET, Boo, C#, F#, Visual Basic and Windows.Forms. We are also embracing other developer platforms like Python, C/C++, Vala, and we want to expand our presence to work with the Flash, PHP, Ruby, Rails, Flex and any other communities that need a cross platform IDE.

[1] we are just religious about the fact that C# is a better programming language to build an IDE than Java is.

Thanks!


This release could not have been possible without the endless nights and the collaborations of our contributors and all of the end users that reported bugs and gave us feedback.

Posted by Miguel de Icaza on 09 Sep 2009