Является ли F # полезным языком для разработки .net windows - PullRequest
10 голосов
/ 17 февраля 2009

Я слышал о F #, и у Microsoft теперь есть парень, который ведет блоги и кодирует где-то об этом в Редмонде. Можете ли вы действительно написать код GUI из F # (хотелось бы увидеть пример, скажем, добавления кнопки в форму и подписки на событие onclick, например)

Имеет ли F # полный доступ ко всем .Net?

Мне, честно говоря, любопытно, и я знаю, что могу гуглить, но я бы хотел услышать от кого-то, кто действительно использует этот язык.

Ответы [ 5 ]

16 голосов
/ 17 февраля 2009

Да, вы, безусловно, можете писать приложения для WinForms - хотя вы не переопределяете метод OnClick, вы подписываетесь на событие Click.

Да, F # имеет полный доступ к .NET, хотя вы не получите очень идиоматический функциональный код, если будете использовать много изменяемых типов.

На веб-сайте Томаса Петржичека F # приведен пример исходного кода из его книги (отказ от ответственности: я тоже связан с книгой, так что я явно предвзят), где есть примеры WinForms.

4 голосов
/ 17 февраля 2009

Я очень рекомендую этот отличный пост от Скотт Хансельман , который указывает на некоторые ресурсы F #, включая примеры и презентации.

3 голосов
/ 18 февраля 2009

Но, как говорит Джон Скит, у Томаса есть несколько интересных примеров (особенно событий фильтрации / передачи), которые показывают, что, как я подозреваю, может быть хорошей точкой пересечения, т. Е. Проектируют ваш C # GUI с дизайнером, а затем пишут мозги в F #, связывая одно с другим событиями.

Это, я думаю, очень хороший подход. Проектирование сложных графических интерфейсов без дизайнера WinForms немного раздражает (хотя, разница не так велика в WPF - F # не поддерживает дизайнер WPF, но вы не потеряете столько вещей).

В любом случае, следите за обновлениями для большего количества примеров :-). Использование декларативной обработки событий (Event.filter, Event.map & friends) довольно хорошо, но в некоторых случаях это не совсем то, что вы хотите. Я просто пишу об этом главу, и я думаю, что F # дает вам действительно замечательные способы работы с GUI - исходный код будет свободно доступен на книжном веб-сайте , и я надеюсь, что напишу несколько коротких введение в мой блог, как только книга будет готова.

1 голос
/ 18 февраля 2009

Вы МОЖЕТЕ написать код GUI из F #, но я не уверен, что вы ХОТИТЕ. Если вы все равно пишете свои графические интерфейсы на C # в блокноте, то это, вероятно, вас не беспокоит. Лично я предпочитаю дизайнера, и для F # его нет, и, насколько я понял, его тоже не будет - что, вероятно, говорит о предполагаемом использовании F #.

Но, как говорит Джон Скит, у Томаса есть несколько интересных примеров (особенно событий фильтрации / конвейеризации), которые показывают, что, как я подозреваю, может быть хорошей точкой пересечения, т. Е. Проектируют ваш C # GUI с дизайнером, а затем пишут мозги в F #, связывая одно с другим событиями.

1 голос
/ 17 февраля 2009

Я на самом деле не использовал F #, только читал спецификации. Это может быть здорово для разработки WinForms, но моя немедленная реакция на это - «это не имеет значения». Пока вы используете CLR-совместимые компиляторы, вы сможете смешивать сборки F # с другими, написанными на C # / IronPython / etc.

Да, F # может использовать .NET Framework, а сборки F # могут использоваться другими сборками .NET.

Мой совет - кодировать ваши функциональные библиотеки на F #, а затем использовать любой язык .NET, который вам нравится, для написания клиентских приложений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...