2010-05-09 17 views
20

Actualmente estoy interesado en aprender F # y me gustaría usarlo para aplicaciones de GUI. Lamentablemente, no tengo antecedentes previos en .Net o C#. ¿Hay algún buen recurso (sitios web, libros) para aprender esto sin pasar primero por C#?Cómo aprender programación de GUI en F #

Muchas gracias de antemano.

+1

Esto es un poco como decir cómo puedo aprender a pintar con un lápiz;) – Benjol

+4

@Benjol: ¿Por qué? Puedo entender que usted cree que la programación de GUI debe estar en un IDE como VB, C#, Java, Delphi, etc. No creo que sea la única forma, y ​​las respuestas dan buenas opciones. Puede ser que la mejor idea es combinar F # con C# como en uno de los enlaces, pero puede ser que la programación funcional reactiva no sea tan mala. ¿Cual es tu opinion? –

Respuesta

19

El libro Real-world Functional Programming que escribí con Jon Skeet (pena por el anuncio!) espera un cierto conocimiento existente de los lenguajes orientados a objetos (por ejemplo, C#) pero explica brevemente todas las características más avanzadas que C# se ha comparado con, por ejemplo, Java.

Tiene algunos ejemplos de programación de GUI con WinForms (un marco más moderno sería WPF, pero algunos conceptos son esencialmente los mismos). Puede echar un vistazo a algunos ejemplos, porque hay algo de contenido libre relacionado con interfaz gráfica de usuario:

  • Chapter 4 (coincidentemente, disponible como una muestra gratis :-)) muestra cómo implementar una aplicación para dibujar gráficos sencillos por medio de caracteristicas basicas.
  • Programming user interfaces using workflows (extracto libre) muestra un patrón avanzado que es muy útil para escribir aplicaciones de reactivos (que yo sepa, no se describe ningún otro lugar en tantos detalles)

Por lo que yo sé, Robert Pickering de Beginning F# también tiene algunos ejemplos de interfaz de usuario y también incluye algunos ejemplos de WPF (aunque todavía no tengo el libro, por lo que no sé qué contiene exactamente).

Sin embargo, ninguno de los libros de F # lo hará experto en GUI. Todavía necesitará pasar algún tiempo aprendiendo sobre WinForms/Silverlight/WPF en más detalles. Hay muchos ejemplos en C# en Internet y después de leer uno de los anteriores, debería poder traducirlos directamente a F #, pero comprar un libro específico de tecnología también puede ser una buena idea.

+0

¿Puedes usar el diseñador de winform/WPF en el estudio visual con F #? –

+1

@BlueRaja: No directamente, pero puede crear un proyecto de C# solo para contener el código generado por el diseñador. Ver esta publicación: http://stackoverflow.com/questions/2604589/seeing-c-windows-forms-project-code-from-f/2604735#2604735 –

+1

Tengo su libro Tomás y yo diría que es un buen lugar para comenzar –

5

Acabo de recibir el libro de programación funcional del mundo real y si desea mezclar F # con material de GUI, ese es el libro para usted, ya que tiene muchos ejemplos y se inserta directamente en él. Esa es la razón principal por la que lo obtuve :) En línea He encontrado esto y me gusta el ejemplo F #/DirectX. F#.NET tutorials and examples

5

Mi libro Visual F# 2010 for Technical Computing tiene un capítulo dedicado a los gráficos utilizando WPF y cubre los controles básicos de WPF y el uso de WPF de F # interactiva. También hay muchos artículos en The F#.NET Journal que cubren WPF (desplácese hacia abajo y ejecute algunas de las demostraciones descargables). Nuestra F# News a menudo contiene publicaciones breves en el blog con aplicaciones de F # basadas en WPF, p. Ej. Game of Life in 32 lines of F#.

2

El diseñador de Gui está bien. Pero puede crear una clase F # para contener el mismo código que lo haría. Aprender cómo codificar formularios a mano es muy útil. Personalmente lo recomendaría sobre el método de usar el diseñador de C# para crear el código y luego interactuar con él (lo que sería mucho más complicado de lo que sería necesario). Además, todas las clases que existen en C# para winforms o programación de WPF son exactamente las mismas para F # y están diseñadas intencionalmente para ser usadas fácilmente en cualquier idioma usando la plataforma .net.

+1

Gracias. Hice una parte de mi aprendizaje después de hacer esta pregunta utilizando su enfoque, por cierto, el uso de IronPython, por lo que estoy totalmente de acuerdo. –

Cuestiones relacionadas