약 3 개월 전에 기업용 웹 응용 프로그램 (실제로는 일련의 작은 웹 응용 프로그램)을 개발해야한다고 들었지만 원하는 기술을 선택할 수 있다고 들었습니다.
저는 VS/C#/.Net에 가장 익숙하기 때문에 ASP.NET WebForms 또는 ASP.NET MVC2 중 무엇을 선택해야하는지에 대한 딜레마가 있습니다 - 당신과 달리 나의 유일한 배경은 Windows Forms (WinForms)와 작은 WPF. 그래서 저는 WebForms과 MVC를 연구 (및 시도)해야했습니다.
당신처럼, 내 애플도 구글이나 애플 같은 사람이 아니라, 수천 개의 버튼과 박스가있는 늪지대의 표준 회사 앱이 될 것이라는 것을 깨달았다. WebForms는 배포가 가장 빠를 것 같았지만 테스트하고 장기간 유지하기가 어렵습니다. MVC는 훨씬 더 가파른 학습 곡선을 가졌지 만 일단 구축되면 테스트 및 유지 관리가 간편해질 것입니다.
나는 WebForms를 1 주일간 만 들었다. 그래서 나는 그것에 대해 정말로 언급 할 수 없다. 그러나 MVC는 확실히 내가 기대했던 모든 것입니다.
예, 가파른 학습 곡선입니다.나에게 새로웠다 개념 :
- 모델 - 뷰 - 컨트롤러 (MVC) 우려의
- 분리 (SoC에)
- 모델 바인딩
- 단위 테스트 및 테스트 기반 설계 (TDD)
- 조롱과
- 의존성 주입 (DI) 도움이
책을 스텁의 나 대부분이었다 :
, CSS (MVC, 모델, DI, TDD 바인딩) , 자바 스크립트.
전반적으로 처음에는 상당한 양의 램프 업 작업이있는 것으로 보이지만 기존 응용 프로그램을 유지 보수하고 확장하는 것은 꽤 힘들었습니다. 제가 변경 요청을 받았을 때마다 상당히 쉬웠으며 일정에 맞춰 정시 또는 때로는 제공 할 수있었습니다.
이상적인 세계에서 MVC 앱을 작성하는 것은 2 인으로 발생합니다. 한 사람이 핵심 코드를 작성하고 두 번째 사람이 UI 및 뷰 (HTML, CSS, Javascript)를 작성합니다. 모두 혼자서 할 수는 있지만. (내가 지금하고있는 것은 ...)
나는 엔터프라이즈에서 배포하는 몇 가지 발목을 잡았다. 내부적으로 회사에서는 Windows Server 2003과 IIS6을 실행하고 있습니다. 불행히도, 우리는 가상 경로를 사용할 때 IIS6에서 앱을 올바르게 배포 할 수 없었습니다. (CSS 파일에 대한 모든 참조는 깨졌습니다.) MVC를 배포 할 계획이라면 IIS7 이상을 사용하는 것이 좋습니다. MVC는 IIS6에서 작동하지만 IIS 부서에서 어떻게 작동 시킬지 알아 내려고합니다.
편집 : 나는 당신의 질문에 직접적으로 대답 한 적이 없다는 것을 깨달았습니다. 여기 간다 :
내 개인적인 경험은 예, 학습 곡선이 좋은 모델 및 UI를 구축하기위한 가파른하다는 것을 말했다,하지만 난 정말 내가 그와 함께 일한지 웹 개발자 아니에요있다 핸디캡. 좋은 소식은 MVC 기술이 꽤 성숙했다는 것입니다.
네, 커뮤니티는 꽤 잘 발달되어 있습니다. StackOverflow뿐만 아니라 MS의 ASP.NET MVC 하위 포럼에서 많은 좋은 답변을 얻을 수 있습니다.
WebForms을 코딩하는 데 개인적인 경험이 없지만 많은 WinForms 응용 프로그램을 코딩 했으므로 대략적으로 느껴집니다. 이 MVC 응용 프로그램을 빌드하는 데 3 배 더 길다. 초기 투자는 곰이지만 정기적 인 유지 보수 및 개선이 더욱 빨라질 것입니다. 특히 앱이 성장함에 따라 ... 프로그래머 팀이있는 것 같으므로 팀원이 더 빨리 갈 수 있습니다. 학습/작업량.
이전에 WebForms에 대한 경험이 없었지만 내가 말할 수있는 것은 ASP.NET MVC를 배우면서 이전 ASP가 없었기 때문에 무슨 일이 벌어지고 있는지 이해하려고 애를 썼다는 것입니다. NET 배경.(예 : 회원 및 역할 제공 업체 - 최근에 내 자신의 코드를 작성해야했습니다. 소년은 재미있었습니다 ...) 더하기 측면에서, 나는 "일을하는 오래된 방법"(일명 WebForms)이없는 것을 알지 못했습니다 어느 한 쪽. PostBack/CodeBehind에 열중 한 팀원이 있다면 MVC가 처음에는 이상하게 보일 것입니다. 그러나 MVC가 제공하는 장점을 팀에서 보게 될 것입니다.
아, MVC와 WebForms를 혼합 할 수 있습니다. 그것은 전부 또는 전제가 아닙니다. 비록 내가 신발에 있다면 MVC를 가능한 한 많이 채택하려고 노력할 것이지만 분명히 더 명확한 곳에서는 WebForms 만 사용해야합니다.
좋아,이게 도움이 되었으면 좋겠어. :-)
+1, 에릭 버크 만화 전용! : P –
+1, 위와 같이 :) – twk