2010-05-09 32 views
20

Những ngày này tôi quan tâm đến việc học F # và muốn sử dụng nó cho các ứng dụng GUI. Rất tiếc, tôi không có nền trước nào trong .Net hoặc C#. Có tài nguyên nào tốt (trang web, sách) để học điều này mà không phải trải qua C# trước không?Cách tìm hiểu lập trình GUI trong F #

Rất cám ơn trước.

+1

Đây là một chút giống như nói làm thế nào tôi có thể học cách vẽ bằng bút chì;) – Benjol

+4

@Benjol: Tại sao? Tôi có thể hiểu rằng bạn tin rằng lập trình GUI nên ở trong một IDE như VB, C#, Java, Delphi, vv Tôi không nghĩ đó là cách duy nhất, và câu trả lời đưa ra các lựa chọn tốt. Có thể là ý tưởng tốt hơn là kết hợp F # với C# như trong một trong các liên kết, nhưng có thể sau đó lập trình hoạt động chức năng không quá tệ. Ý kiến ​​của bạn là gì? –

Trả lời

19

Cuốn sách Real-world Functional Programming mà tôi đã viết với Jon Skeet (xin lỗi vì quảng cáo!) dự kiến ​​một số kiến ​​thức hiện có của ngôn ngữ hướng đối tượng (ví dụ như C#) nhưng nó giải thích vắn tắt tất cả các tính năng cao cấp hơn mà C# đã so với, cho ví dụ, Java.

Nó có một vài ví dụ về lập trình GUI sử dụng WinForms (một khung công tác hiện đại hơn sẽ là WPF, nhưng một số khái niệm cơ bản là giống nhau). Bạn có thể có một cái nhìn tại một vài ví dụ, bởi vì có một số nội dung miễn phí liên quan đến giao diện:

  • Chapter 4 (tình cờ, có sẵn như là một mẫu :-) miễn phí) cho thấy làm thế nào để thực hiện một ứng dụng cho phép vẽ đồ thị đơn giản sử dụng tính năng cơ bản.
  • Programming user interfaces using workflows (trích đoạn miễn phí) cho thấy một mô hình tiên tiến đó là rất hữu ích cho việc viết các ứng dụng phản ứng (như tôi biết, điều này không được mô tả bất cứ nơi nào khác trong nhiều chi tiết)

Theo như tôi biết, Robert Pickering của Beginning F# cũng có một số ví dụ về giao diện người dùng và nó cũng bao gồm một số ví dụ WPF (mặc dù tôi chưa có cuốn sách, vì vậy tôi không biết chính xác nó chứa gì).

Tuy nhiên, không sách nào trong số các cuốn sách F # sẽ làm cho bạn trở thành Chuyên gia GUI. Bạn vẫn sẽ cần phải dành thời gian tìm hiểu về WinForms/Silverlight/WPF để biết thêm chi tiết. Có rất nhiều ví dụ trong C# trên internet và sau khi đọc một trong những điều trên, bạn có thể dịch chúng trực tiếp sang F #, nhưng việc mua một cuốn sách cụ thể về công nghệ cũng có thể là một ý tưởng hay.

+0

Bạn có thể sử dụng trình thiết kế winform/WPF trong studio trực quan với F # không? –

+1

@BlueRaja: Không trực tiếp, nhưng bạn có thể tạo một dự án C# chỉ để chứa mã do nhà thiết kế tạo ra. Xem bài đăng này: http://stackoverflow.com/questions/2604589/seeing-c-windows-forms-project-code-from-f/2604735#2604735 –

+1

Tôi đã có cuốn sách của bạn Tomas và tôi muốn nói đó là một nơi tuyệt vời để bắt đầu. –

5

Tôi vừa có cuốn sách Lập trình chức năng trong thế giới thực và nếu bạn muốn kết hợp F # với nội dung GUI là cuốn sách dành cho bạn vì nó có nhiều ví dụ và nó nhảy ngay vào đó. Đó là lý do chính tôi nhận được nó :) Trực tuyến Tôi đã đi qua điều này và tôi thích ví dụ F # ​​/ DirectX. F#.NET tutorials and examples

5

Sách của tôi Visual F# 2010 for Technical Computing có một chương dành cho đồ họa sử dụng WPF và bao gồm các điều khiển WPF cơ bản và sử dụng WPF từ tương tác F #. Ngoài ra còn có nhiều bài viết trong The F#.NET Journal bao gồm WPF (cuộn xuống và chạy một số bản demo có thể tải xuống). F# News của chúng tôi thường chứa các bài đăng trên blog ngắn với các ứng dụng F # dựa trên WPF trong đó, ví dụ: Game of Life in 32 lines of F#.

2

Nhà thiết kế Gui vẫn ổn. Nhưng bạn có thể tạo một lớp F # để chứa cùng một mã như nó sẽ. Học cách mã hóa các biểu mẫu bằng tay rất hữu ích. Cá nhân tôi sẽ giới thiệu nó qua phương pháp sử dụng trình thiết kế C# để tạo mã và sau đó giao tiếp với nó (điều này sẽ phức tạp hơn nhiều so với việc cần thiết). Bên cạnh đó, tất cả các lớp tồn tại trong C# cho winforms hoặc lập trình WPF đều giống nhau cho F # và được thiết kế cố ý để sử dụng dễ dàng bằng bất kỳ ngôn ngữ nào sử dụng nền tảng .net.

+1

Cảm ơn. Tôi đã tham gia vào việc học của mình sau khi hỏi câu hỏi này bằng cách tiếp cận của bạn, tình cờ sử dụng IronPython, vì vậy tôi đồng ý một cách chân thành. –

Các vấn đề liên quan