2009-06-02 5 views
10

우리는 ASP.NET 프로젝트를 비교적 중요한 프로젝트에 사용할 계획입니다. 개발 팀은 4 명의 개발자와 Technical Lead로 구성됩니다. 개발자 2 명과 Tech Lead는 ASP.NET WebForms 프로젝트에서 함께 일했고 그 기술을 사용하고 있다고 자신합니다.ASP.NET MVC를 처음 사용할 때의 주요 위험

우리는 첫 번째 WebForms 프로젝트에서 사용 된 접근법 중 일부 (예 : UpdatePanels의 과도한 사용, ListView, 부풀린 ViewState 등의 컨트롤에 대한 지식 부족 등)를 살펴볼 때 조금 뒤죽박죽입니다.

우리는이 프로젝트를 1 년 후에 되돌아 보지 말고 몇 가지 ASP.NET MVC 접근 방식을 사용하는 것이 중요합니다.

경험에 비추어 볼 때 처음으로 ASP.NET MVC를 사용할 때 누구나 인용 할 수있는 주요 위험이 있습니까?

저는 전구가 계속 켜져있는 데에 대해 생각하고 있습니다. 특정 전구를 배울 때까지 싸우고 있다고 느끼는 프레임 워크의 일부입니다. 그런 종류의 일입니다.

+4

1 년 후 코드를 뒤돌아보고 쓴 글을 보니 정상적인 것이 아닙니까? 특히 새로운 프레임 워크? 노인이 MVC 패턴에 익숙하지 않으면 아무도 손을 잡고 처음으로 멋진 코드를 작성할 수 없습니다. –

+0

@Chad - 아마도 맞을 것입니다. 저는 우리가 직면 할 수있는 약점을 최소화하려고 노력하고 있습니다! –

답변

2

내가보기에 가장 큰 위험은 상태없는 매체로 돌아 왔을 때의 위험입니다.

포스트 백이 사라졌습니다. 대부분의 서버 컨트롤은 사라졌습니다. Viewstate가 사라졌습니다. 이벤트 중심 모델이 사라졌습니다.

devs가 asp.net 웹 양식을 사용하여 사이트를 구축 한 적이 있고 다른 웹 기술을 사용하지 않은 경우, 그들은 많은 학습을하고 있습니다.

+2

많은 학습이 될 수 있지만 좋은 학습 이겠지요 .--) 유감스럽게도 많은 웹 양식 개발자는 웹에 대해 거의 알지 못합니다. 많은 경우 전형적인 클래식 ASP 개발자보다 생각이 덜한 사람입니다 대부분의 코드가 스파게티로 끝났지 만 HTTP POST 및 GET을 중단하십시오. 나는 웹 폼 친구들이 MVC에 관해 배우는 것이 건강하다고 믿는다. 왜냐하면 웹 애플리케이션에서 실제로 일어나는 일을 배우게된다는 의미이기 때문이다. 나는 그것이 stateless 매체에 _return_이라는 것에 동의하지 않는다. 웹은 항상 상태없는 매체였습니다. 웹 양식이 사실을 숨기지 않는 방식으로 숨겼습니다. –

+0

오, 정말. 그것은 매우 좋은 학습이며, 개발자를 위해 매우 유익합니다. HTTP의 견해와 사용법을 실제로 보여주는 것 이상이라면. 너무 많은 webforms 사람들에게 반환을 말하면 * 상태가 좋습니다. Viewstate는 알 수없는 사람들에게는 서툴 롭고 추악하지만 너무 많은 asp.net 개발자들에게는 웹이 작동하는 방식입니다. –

0

나를 위해 가장 큰 것들은 모델 바인딩을 이해하고 유형화 된보기를 가질 수 있다는 것입니다.

경로를 올바르게 보호해야합니다.

+0

세부 사항을 추가 할 수 있습니까? 모델 바인딩 - 강력하게 형식화 된 뷰를 말하는 겁니까? 당신의 노선을 확보한다는 것은 무엇을 의미합니까? –

7

사용은 강력하게보기 입력 된 각보기

간단한 이유에 대한 새로운 모델을 만들 : 그것은 당신의 모델이 당신의보기에서 separted되어 있는지 확인하는 것입니다. 리팩토링을해야하는 경우 한 부분 만 끊을 수 있습니다. 따라서 "최신 뉴스"라는보기가 있다면 "LatestNewsViewModel"이 있어야합니다. 실제 모델/데이터베이스에서 데이터를 가져 와서 뷰에 전달한 뷰 모델을 만드는 것은 컨트롤러의 작업입니다. 또한 View에 추가 물건이 필요하다고 결정한 경우 ViewModel과 Controller 액션을 변경하기 만하면되므로 전체 Data Access Layer를 리팩터링 할 필요가 없습니다.

성능

내가 큰 영향을 미칠 수있는 성능 문제 및 최적화에 대한 this slideshow을 확인하는 것이 좋습니다.

+1

링크에서 흥미로운 슬라이드 쇼, 감사합니다 :) –

+1

나는 당신의 모델이 그들이 사용되는 견해 (걱정의 분리)에 대해 "주의"해서는 안된다는 인상하에있었습니다. "정당한"데이터를 나타내는 모델과 뷰에서 사용하기 위해 특별히 지정된 모델의 두 가지 클래스를 제안합니까? –

+0

예. 기본적으로 데이터베이스에 대한 데이터 읽기 및 쓰기를 처리하는 일반적인 Model 클래스가 있지만 각 뷰에 대해 별도의 Model 클래스가 있으므로 뷰 모델이라고도합니다. 이러한 뷰 모델은 실제로 아무것도 수행하지 않으며, 뷰의 필요한 데이터를 정확하게 보유합니다. 그런 다음 컨트롤러는 "정상적인"모델과 대화하여 필요한 데이터를 정확하게 가져 와서 적절한 ViewModel의 인스턴스를 만든 다음 채우고 (강하게 입력 된)보기로 보냅니다. 처음에는 과도한 것으로 보이지만 나중에는 리팩토링 두통을 덜어줍니다. –

2

Scotts Guthrie의 블로그에서 무료 eBook을 다운로드 할 수 있습니다. 처음부터 ASP.NET MVC 사이트를 만드는 방법에 대한 자세한 안내를 제공합니다.

관련 문제