2009-11-09 3 views
1

어쩌면 이상하게 보일 것입니다. 자유롭게 편집 할 수 있습니다. FP의 관점에서 ASP.net은 무엇입니까?FP의 관점에서 ASP.net이란 무엇입니까?

나는 FP를 배우고 있는데, 나는 매일 사용하는 기술, 말 그대로 ASP.Net을 FP의 논리적 부분으로 나눌 수 없기 때문에 혼란 스럽다.

이제 모든 ASP.Net 시스템을 다루는 것은 큰 상태 모나드와 같습니다. 일반적으로 ASP-net 불가지론 코드를 호출 할 때처럼 OnPreRender를 사용합니다. 나는 aspx와 같은 종류의 메타 프로그래밍을 취급한다. 사용자 정의 컨트롤이란 무엇입니까? 사용자 정의 컨트롤? 어떤 컨텍스트 (기능 환경)를 구분해야합니까 - http 컨텍스트? 제어 컨텍스트? 페이지 컨텍스트? 어쩌면 나는 페이지 핸들러를 처리하는 것과 같은 명백한 것을 볼 수 없다. == 델리게이트 == lambdas? 나는 기본적으로 맞습니까? 누구나 ASP.Net에 더 신선한 표정을 제안 할 수 있습니까? 특히 고전적인 표현인가?

'web-forms-suck'을 알면 이해가되지 않습니다. 저는이 특별한 환경에서 FP의 힘과 'turing-complete'를 어떻게 사용해야하는지 알고 싶습니다.

+0

다음을 명확히하십시오 ... FP는 무엇을 의미합니까? –

+1

@ 리카르도 : 태그를 읽고 추측 할 수있을 것입니다! –

답변

0

ASP.Net은 일종의 IO 모나드입니다. 모나드에서 사용할 수있는 IO 작업의 종류는 HTTP 요청을 읽고 HTTP 응답에 쓰는 작업입니다.

순전히 기능적 언어로 작성된 웹 응용 프로그램 서버를 살펴 보는 것이 교육적 일 수 있습니다. Happstack은 전적으로 하스켈로 작성되었습니다.

1

이렇게 생각할 수도 있지만 너무 유용하다고는 생각하지 않습니다. 문제는 ASP.Net 자체가 기능적 스타일로 작성되지 않았다는 것입니다.

은 (모든 프레임 워크/언어에서) 부작용과 기능 구성 측면에서 글을 읽기가 훨씬 쉽고 유용합니다. 우선 상태에 의존하기 시작합니다 (ASP.Net에서 제외). 대신 불변의 데이터, 입력 및 출력에 대해 생각하기 시작합니다.

작은 예제로서, 문자열을 contintation으로 수정하는 대신 String.format과 같은 함수 (메서드)를 사용하십시오. 이런 작은 것들은 OO 환경에 기능적 스타일을 적용하려고 할 때 큰 도움이 될 것입니다.

실제로 FP 학습에서 이익을 얻으려면 OO 계층 구조 및 상속의 관점보다는 구성 및 합성 가능성 (실제 단어 ??)에 대해 생각해보십시오.

관련 문제