programing

ASP를 사용하는 가장 큰 장점.넷 MVC 대 웹 폼

bestprogram 2023. 4. 22. 10:58

ASP를 사용하는 가장 큰 장점.넷 MVC 대 웹 폼

하나를 사용하면 다른 하나를 사용할 때보다 어떤 장점이 있습니까?

ASP.net MVC의 주요 장점은 다음과 같습니다.

  1. 렌더링된 HTML에 대한 전체 제어를 사용합니다.

  2. 문제를 깔끔하게 분리(SoC)합니다).

  3. Test Drived Development(TDD; 테스트 주도 개발)를 유효하게 합니다.

  4. JavaScript 프레임워크와의 손쉬운 통합.

  5. 웹 상태 비저장성 설계에 따릅니다.

  6. SEO를 유효하게 하는 RESTful URL.

  7. ViewState 이벤트 및 PostBack 이벤트 없음

ASP.net Web Form의 주요 장점은 다음과 같습니다.

  1. RAD 개발을 제공합니다.

  2. winform 개발에서 나온 개발자를 위한 쉬운 개발 모델.

ASP.NET Web Forms와 MVC는 Microsoft가 개발한2개의 웹 프레임워크입니다.둘 다 좋은 선택입니다.웹 프레임워크는 다른 프레임워크로 대체되지 않으며 단일 프레임워크로 '합병'할 계획도 없습니다.지속적인 지원과 개발은 Microsoft에 의해 병행되어 이루어지며, 어느 쪽도 없어지지 않을 것입니다.

이러한 각 웹 프레임워크는 장점과 단점을 제공합니다.이들 중 일부는 웹 애플리케이션을 개발할 때 고려해야 합니다.웹 애플리케이션은, 어느쪽의 테크놀로지를 사용해 개발할 수 있습니다.이것에 의해, 특정의 애플리케이션의 개발이 다른 테크놀로지에 비해 간단하게 선택할 수 있습니다.또, 그 반대도 가능합니다.

ASP.NET 웹 폼:

  • 개발 지원 상태 • Windows 응용 프로그램과 마찬가지로 웹 응용 프로그램이 사용자가 수행한 작업을 인식하고 있는 것처럼 착각합니다.즉, '위저드' 기능을 구현하기가 조금 더 쉬워집니다.웹 양식은 개발자에게 이러한 복잡성의 많은 부분을 숨깁니다.
  • 신속한 어플리케이션 개발(RAD) • 웹 폼의 제공을 '점프'하여 시작할 수 있습니다.이것은 일부 MVC 커뮤니티에 의해 논란이 되고 있지만 마이크로소프트에 의해 추진되고 있다.결국 개발자의 전문성 수준과 그들이 익숙한 것이 무엇인지로 귀결된다.웹 양식 모델은 경험이 적은 개발자에게 학습 곡선이 적을 수 있습니다.
  • 대형 컨트롤 툴박스 • ASPMVC는 jQuery(Javascript)를 통한 리치 클라이언트 측 컨트롤에 의존하는 보다 원시적인 컨트롤 세트를 제공하는 반면, NET Web Forms는 훨씬 더 크고 견고한 툴박스(Web 컨트롤)를 제공합니다.
  • 성숙·2002년부터 존재해, 질문이나 문제등에 관한 정보가 풍부합니다.서드파티제의 제어기능이 향상됩니다.기존 툴킷을 고려해야 합니다.

ASP.NET MVC:

  • 우려의 분리(SoC) • 기술적 관점에서 MVC 내의 코드 구성은 매우 깨끗하고 체계적이며 세분화되어 기능 면에서 웹 애플리케이션의 확장이 용이합니다(희망).개발의 관점에서 훌륭한 디자인을 촉진합니다.
  • 클라이언트측 툴과의 손쉬운 통합(풍부한 사용자 인터페이스) • 웹 애플리케이션은 데스크탑에 표시되는 애플리케이션만큼 풍부해지고 있습니다.MVC를 사용하면 웹 양식보다 훨씬 쉽고 매끄럽게 이러한 툴킷(jQuery 등)과 통합할 수 있습니다.
  • 검색 엔진 최적화(SEO)/상태 비저장 • URL은 검색 엔진에 더 적합합니다(예: mywebapplication.com/users/ 1 - myweb 애플리케이션/users/getuser.aspx(세션 내 ID 전달)에 비해 ID가 1인 사용자 검색).마찬가지로 MVC는 스테이트리스이기 때문에 같은 창에서 여러 웹 브라우저를 생성하는 사용자의 번거로움이 없어집니다(세션 충돌).이와 같이 MVC는 상태 비저장 웹 프로토콜에 대해 '격돌'하는 대신 이를 고수합니다.
  • 고도의 제어가 필요한 개발자와 잘 동작한다.ASP의 많은 제어가 필요하다.NET 웹 양식은 페이지를 렌더링할 때 볼 수 있는 원시 HTML의 대부분을 자동으로 생성합니다.이로 인해 개발자에게 골칫거리가 될 수 있습니다.MVC를 사용하면 렌더링된 내용을 완벽하게 제어할 수 있고 놀라운 일도 없습니다.더욱 중요한 것은 HTML 양식이 일반적으로 성능 향상과 같은 웹 양식보다 훨씬 작다는 것입니다. 이는 심각하게 고려해야 할 사항입니다.
  • 테스트 주도형 개발(TDD) • MVC를 사용하면 사물의 웹 측면에 대한 테스트를 보다 쉽게 작성할 수 있습니다.추가 테스트 레이어는 예기치 않은 동작에 대한 또 다른 방어 레이어를 제공합니다.

인증, 인가, 설정, 컴파일 및 도입은 모두 2개의 웹 프레임워크 간에 공유되는 기능입니다.

클래식 ASP를 기억하는 사람이라면 누구나 HTML과 Javascript가 혼합된 코드를 사용하여 페이지를 여는 악몽을 기억할 것이다.- 아무리 작은 페이지라도 그것이 무엇을 하고 있는지 알아내는 것은 힘들었다.내가 틀릴 수도 있고, 나도 틀렸으면 좋겠지만, MVC는 그 나쁜 옛날로 돌아간 것 같아.

ASP의 경우넷은 구세주로 불리며 코드와 콘텐츠를 분리하여 웹디자이너가 HTML을 만들고 코더가 뒤에 있는 코드로 작업할 수 있도록 했다.ViewState를 사용하지 않으려면 ViewState를 꺼야 합니다.만약 어떤 이유로 코드를 뒤에 사용하지 않으려면 기존 ASP와 마찬가지로 코드를 html 안에 넣을 수 있습니다.PostBack을 사용하지 않을 경우 처리를 위해 다른 페이지로 리다이렉트했습니다.ASP를 사용하지 않으려면.넷 컨트롤 표준 HTML 컨트롤을 사용했습니다.ASP를 사용하지 않을 경우 Response 객체를 조회할 수도 있습니다.Net runat="서버"를 제어할 수 있습니다.

지금까지의 뛰어난 지혜로 보아(클래식 ASP를 프로그램한 적이 없는 사람일 가능성이 있다)는, 코드와 컨텐츠의 혼합의 시대로 돌아가, 「관심 사항의 분리」라고 부를 때가 되었다고 생각하고 있습니다.물론 더 깨끗한 html을 만들 수 있지만 클래식 ASP를 사용하면 가능합니다.「코드가 너무 많으면 올바르게 프로그래밍하고 있지 않다」라고 하는 것은, 「클래식 ASP 로 올바르게 구조화되어 코멘트가 끝난 코드를 작성했을 경우, ASP 보다 훨씬 깨끗하고 좋은 것입니다.네트워크"

코드와 컨텐츠의 혼합으로 되돌아가고 싶다면, PHP를 사용해 그러한 개발을 실시하는 것을 검토해 보겠습니다.ASP에 문제가 그렇게 많다면.NET 그럼 왜 그 문제를 수정하지 않는 거죠?

마지막으로 새로운 레이저 엔진은 html과 코드를 구별하는 것이 더욱 어렵다는 것을 의미합니다.적어도 ASP에서 개폐 태그(<% 및 %>)를 찾을 수 있지만, 이제 유일한 표시는 @ 기호입니다.

PHP로 이동하여 누군가 다시 코드와 콘텐츠를 분리할 때까지 10년을 더 기다려야 할 때일 수 있습니다.

만약 당신이 PHP나 JSP와 같은 다른 개발자들과 일하고 있다면, 당신은 페이지 변환이나 협업을 훨씬 쉽게 할 것이다. 왜냐하면 당신은 그 모든 '나쁜' ASP를 가지고 있을 것이기 때문이다.모든 장소에서 NET 이벤트 및 제어.

MVC의 문제는 "전문가"에게도 귀중한 시간을 많이 소비하고 많은 노력이 필요하다는 것입니다.비즈니스는, 테크놀로지에 관계없이, 기본적인 「빠른 솔루션」에 의해서 추진됩니다.WebForms는 시간과 비용을 절약하는 RAD 기술입니다.시간이 더 걸리는 것은 기업에서는 용납할 수 없습니다.

  1. 적절한 AJAX(예: JSONResult는 부분적인 페이지백 넌센스 없음)
  2. 뷰스테이트 없음+1
  3. HTML ID의 이름은 변경되지 않습니다.
  4. HTML = 블러트 없이 깔끔하게 XHTML 또는 표준 준수 페이지를 렌더링할 수 있습니다.
  5. 생성된 AXD javascript가 없습니다.

가장 큰 장점은 모델 레이어, 뷰 레이어 및 컨트롤러 레이어를 명확하게 분리할 수 있다는 것입니다.처음부터 좋은 디자인을 홍보하는 데 도움이 됩니다.

나는 ASP에 비해 MVC의 장점을 보지 못했다.넷. 마이크로소프트는 10년 전 MVC의 해답으로 UIP(사용자 인터페이스 프로세스)를 고안했다.그것은 실패였다.그때 UIP로 큰 프로젝트(4명, 디자이너 2명, 테스터 1명)를 했는데 정말 악몽이었어요.

단지 과대 광고를 위해서 시류에 편승하지 마세요.위의 모든 장점은 이미 ASP에서 이용할 수 있습니다.넷(더 많은 미세 조정 기능 포함) [ASP의 신기능]ASP의 넷4 ]넷 4).

귀사의 개발팀 또는 단일 개발자가 ASP를 사용하는 경우.넷은, 고객의 만족을 위해서(근무 시간의 지불을 실시하는) 아름다운 제품을 신속히 제작하는 것 뿐입니다.MVC는 귀중한 시간을 소비하여 Asp와 동일한 결과를 제공합니다.인터넷 :-)

프란시스 샤나한

  1. 왜 부분 포스트백을 "말도 안 되는 일"이라고 합니까?이는 Ajax의 핵심 기능으로 Atlas 프레임워크와 Telerik과 같은 훌륭한 서드파티 컨트롤에서 매우 잘 활용되고 있습니다.

  2. 뷰스테이트에 대한 당신의 의견에 동의합니다.그러나 개발자들이 뷰스테이트를 비활성화하는 데 주의를 기울이면 렌더링되는 HTML의 크기를 크게 줄일 수 있기 때문에 페이지가 가벼워집니다.

  3. ASP에서는 HTML 서버 컨트롤만 이름이 변경됩니다.순수 HTML 컨트롤이 아닌 NET Web Form 모델.그게 뭐든 간에, 왜 그렇게 이름이 바뀌었을까 봐 걱정하는 거야?클라이언트측에서 많은 Javascript 이벤트를 처리하고 싶은 것은 알지만, 웹페이지를 스마트하게 설계하면 원하는 ID를 모두 얻을 수 있습니다.

  4. ASP도.NET Web Forms가 XHTML 표준을 충족하고 있어 부풀어 오르는 일은 없습니다.이것은 왜 MVC 패턴이 필요한지에 대한 정당성이 아닙니다.

  5. 다시 말하지만 왜 AXD Javascript에 신경을 쓰십니까?왜 아프세요?이는 다시 유효한 이유가 아닙니다.

지금까지 저는 클래식 ASP를 사용한 어플리케이션 개발의 팬입니다.NET Web 폼예: 드롭다운 목록 또는 그리드 뷰를 바인딩하려면 최대 30분 동안 20줄 이하의 코드가 필요합니다(물론 최소).하지만 MVC의 경우, 개발자들에게 얼마나 고통스러운지 말해보세요.

MVC의 가장 큰 단점은 ASP 시절로 돌아간다는 것입니다.서버 코드와 HTML을 혼재시키는 스파게티 코드를 기억하십니까?mvcascript, HTML, JQuery, CSS, Server 태그 등이 혼재된 MVC aspx 페이지를 읽어보세요.이 질문에 대답할 수 있는 사람이 있나요?

또한 웹 폼은 Telerik과 같은 서드파티 제어 프로바이더의 지원 및 성숙도를 높임으로써 얻을 수 있습니다.

웹 양식에서는 뷰스테이트, 이벤트 검증 등의 태그를 제외하고 거의 모든 html을 손으로 렌더링할 수도 있습니다.단, PageAdapters로 삭제할 수 있습니다.GridView나 html 렌더링 출력이 잘못된 다른 서버 측 컨트롤을 사용하도록 강요하는 사람은 없습니다.

MVC의 가장 큰 장점은 SPEED!

을 사용하다그러나 컨트롤러/액션에 BL 및 DAL 로직 전체를 삽입하는 것은 금지되지 않습니다.이는 웹 양식(예: MVP 패턴)에서도 수행할 수 있는 보기 분리입니다.MVC에 대해 사람들이 언급하는 많은 것들이 웹 형태로 이루어질 수 있지만, 약간의 추가 노력이 필요합니다.
주요 차이점은 요구가 뷰가 아닌 컨트롤러로 전송되고 두 계층이 분리되며 웹 양식과 같이 부분 클래스를 통해 연결되지 않는다는 것입니다(뒤에 aspx + 코드).

나의 2센트:

  • ASP.net 양식은 신속한 애플리케이션 개발 및 비즈니스 가치 창출에 매우 적합합니다.지금도 대부분의 인트라넷 어플리케이션에서 사용하고 있습니다.
  • MVC는 검색 엔진 최적화에 매우 적합합니다.URL과 HTML을 보다 광범위하게 제어할 수 있기 때문입니다.
  • MVC는 일반적으로 훨씬 얇은 페이지를 생성합니다. 뷰스테이트가 없고 HTML이 깔끔합니다. = 빠른 로딩 시간
  • MVC는 페이지의 일부를 캐싱하기 쉬우며 -MVC는 :-개인 의견 쓰는 것이 즐겁습니다;-)

MVC를 사용하면 페이지에 여러 개의 폼을 표시할 수 있습니다.알고 있는 작은 기능이지만 편리합니다.

또, MVC 패턴은, 특히 몇개월 후에 재방문했을 때에, 코드의 유지보수를 용이하게 합니다.

MVC 컨트롤러:

    [HttpGet]
    public ActionResult DetailList(ImportDetailSearchModel model)
    {
        Data.ImportDataAccess ida = new Data.ImportDataAccess();
        List<Data.ImportDetailData> data = ida.GetImportDetails(model.FileId, model.FailuresOnly);

        return PartialView("ImportSummaryDetailPartial", data);
    }

MVC 표시:

<table class="sortable">
<thead>
    <tr><th>Unique Id</th><th class="left">Error Type</th><th class="left">Field</th><th class="left">Message</th><th class="left">State</th></tr>
</thead>
<tbody>
    @foreach (Data.ImportDetailData detail in Model)
    {
    <tr><th>@detail.UniqueID</th><th class="left">@detail.ErrorType</th><th class="left">@detail.FieldName</th><th class="left">@detail.Message</th><th class="left">@detail.ItemState</th></tr>
    }
</tbody></table>

그게 얼마나 어려워요?View State, BS 페이지 라이프 사이클 없음...아주 효율적인 코드일 뿐이죠

소규모 사이트의 유일한 장점은 6) SEO를 지원하는 RESTful url. 7) ViewState 이벤트와 PostBack 이벤트 없음(및 일반적으로 퍼포먼스가 향상됨)입니다.

소규모 사이트에 대한 테스트는 문제가 되지 않으며 사이트가 올바르게 코딩되어 있으면 설계상의 이점도 없습니다.MVC는 여러 가지 방법으로 난독화되어 변경을 가하기가 어렵습니다.나는 아직 이러한 장점이 가치가 있는지 없는지를 판단하고 있다.

대형 멀티 개발자 사이트에서 MVC의 장점을 명확하게 알 수 있습니다.

내가 발견한 주요 장점은 그것이 프로젝트를 더 테스트 가능한 구조로 만들도록 강요한다는 것이다.이것은 웹 폼(MVP 패턴)에서도 쉽게 할 수 있지만, 개발자가 이것을 이해할 필요가 있습니다.많은 경우 그렇지 않습니다.

웹 양식과 MVC는 모두 실행 가능한 도구이며, 서로 다른 분야에서 탁월합니다.

저는 개인적으로 B2B/LOB 앱을 주로 개발하고 있기 때문에 웹 폼을 사용하고 있습니다.단, 유닛 테스트에서는 95+%의 코드 커버리지를 달성할 수 있는 MVP 패턴으로 항상 실시합니다.이를 통해 웹 컨트롤의 속성 테스트를 자동화할 수 있으며 다음과 같은 뷰에서 속성 값이 노출됩니다.

bool IMyView.IsAdminSectionVisible{
       get{return pnlAdmin.Visible;}
       get{pnlAdmin.Visible=value;}
    }

)MVC에서는 모델을 폴링하지 않고서는 이 레벨의 테스트를 쉽게 실시할 수 없다고 생각합니다.

포스트백 이외의 컨트롤을 사용하는 것에 대해서, 기존의 asp.net 환경에 어떻게 스머시 할지를 고민하는 것에 대해서, 더 이상 망설이지 않게 되었습니다.

즉, 모던(자유사용) Javascript 컨트롤은 사각형 홀의 느낌에 둥근 페그를 맞추려고 하지 않고 이것저것 모두 사용할 수 있습니다.

최신 Javascript 컨트롤과 JSON 요청은 MVC를 사용하여 훨씬 쉽게 처리할 수 있습니다.다른 많은 메커니즘을 사용하여 한 액션에서 다른 액션으로 데이터를 게시할 수 있습니다.그래서 웹 양식보다 MVC를 더 선호합니다.또, 경량 페이지도 작성할 수 있습니다.

개인적으로는 ASP의 가장 큰 단점이라고 생각합니다.넷 MVC란CODE BLOCKS와 혼합된.HTML...
html 지옥을 유지 보수하는 개발자들에게...

언급URL : https://stackoverflow.com/questions/102558/biggest-advantage-to-using-asp-net-mvc-vs-web-forms