2009-11-09 13 views
1

Возможно, я буду выглядеть странно. Не стесняйтесь редактировать и т. Д. Что такое ASP.net с точки зрения FP?Что такое ASP.net с точки зрения FP?

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

Теперь я рассматриваю всю машину ASP.Net как большую государственную монаду, для которой я обычно использую OnPreRender, как точку вызова агностического кода ASP-net. Я рассматриваю aspx как метапрограммирование. Что такое пользовательский контроль? Специально контроль? В каких контекстах (функциональных средах) мы должны различать - http-контекст? контрольный контекст? контекст страницы? Может быть, я не вижу ничего очевидного, как обработка обработчиков страниц == делегаты == lambdas? Я в основном прав? Может ли кто-нибудь предложить более свежий взгляд на ASP.Net - особенно классический?

Не имеет смысла знать, что «веб-формы-сосать» - я хотел бы знать, как использовать силу и «совершенствовать» FP в этой конкретной среде.

+0

Просьба пояснить следующее ... что означает FP? –

+1

@ Рикардо: прочитайте теги, и я уверен, что вы можете догадаться! –

ответ

0

ASP.Net - это своего рода монашка IO. Виды IO-действий, доступных в монаде, - это те, которые читаются из HTTP-запросов и записываются в ответы HTTP.

Возможно, это образовательный взгляд на сервер веб-приложений, написанный на чисто функциональном языке. Happstack написан полностью в Haskell.

1

Вы можете думать об этом так, но я не уверен, что это слишком полезно. Проблема заключается в том, что ASP.Net не был написан в функциональном стиле.

Было бы намного проще и полезнее начать просмотр вещей вы пишите (в любом формате/языке) с точки зрения побочных эффектов и функциональной композиции. Начните полагаться на состояние меньше (за исключением, в ASP.Net, где вы должны), и вместо этого начать думать с точки зрения неизменных данных, входов и выходов.

В качестве небольшого примера вместо того, чтобы думать о модификации моей строки с конкатенацией, начните использовать функции (методы), такие как String.format. Небольшие вещи, подобные этому, помогут в значительной степени при попытке применить функциональный стиль к среде OO.

Для того, чтобы действительно извлечь выгоду из вашего обучения FP, попробуйте подумать о композициях и композиционной способности (реальное слово?), А не в терминах иерархии и наследования OO.

Смежные вопросы