Должен ли я попробовать F # с MVC3 и ASP.net ?

#asp.net-mvc-3 #f#

#asp.net-mvc-3 #f#

Вопрос:

Я работаю над новым проектом для contract. Обычно я использую c # asp.net и razor. Проблема в том, что говорится в моем портфолио. C # C # C # C # C # снова и снова. Я полагаю, что с точки зрения портфолио может быть полезно иметь немного больше разнообразия. С другой стороны, функциональный язык кажется интересным подходом, поскольку asp.net MVC3 очень функционально ориентирован в том, что касается контроллеров. Итак, кто-нибудь пробовал использовать F # для этого и оказалось ли это полезным или просто мешало?

Я спрашиваю, потому что контроллеры, похоже, выигрывают от функциональности, в то время как модели, похоже, выигрывают от объектно-ориентированного языка.

Комментарии:

1. попробуйте это в свободное время в качестве хобби-проекта. не пытайтесь, если вы работаете на клиента!

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

Ответ №1:

Я написал несколько примеров использования MVC3 с сочетанием F # и C #, и это работает довольно хорошо, и я также создал шаблон, который можно использовать в качестве отправной точки (который скоро должен появиться в галерее Visual Studio):

Есть несколько приятных моментов в использовании F # в реализации модели / контроллеров:

  • Типы F #, такие как записи, очень упрощают реализацию модели домена
  • Вы также можете использовать асинхронные рабочие процессы F # для реализации асинхронных контроллеров (см. Этот фрагмент)

Немного раздражает то, что поддержка LINQ в текущей версии F # немного ограничена (писать сложные запросы с большим количеством объединений и группировок непросто). Однако вы можете использовать dynamic operator, если вызываете хранимые процедуры (см., Например, этот пост в блоге).

(Я также написал несколько статей об этом, которые еще не опубликованы — я могу отправить вам черновик, если вы отправите мне электронное письмо по адресу tomas@tomasp.net )