MVC로서의 XSL (좋아요) 선언 언어는 강력한 모델을 통해 볼 수 있습니까?

StackOverflow https://stackoverflow.com/questions/301314

  •  08-07-2019
  •  | 
  •  

문제

거대한 XSL 팬으로서 ASP.NET의 독점적 인 MVC 프레임 워크에서 XSL을 뷰로 사용하게되어 매우 기쁩니다. 모델의 객체는 .NET의 XML Serializer를 사용하여 후드 아래에서 직렬화되며, 각 객체 또는 속성이 어떻게 변하는지를 선언하기 위해 상당히 원자력 XSL 템플릿을 사용합니다.

예를 들어:

  <xsl:template match="/Article">
    <html>
      <body>
        <div class="article">
          <xsl:apply-templates />
        </div>
      </body>
    </html>
  </xsl:template>

  <xsl:template match="Article/Title">
    <h1>
      <xsl:apply-templates />
    </h1>
  </xsl:template>

  <xsl:template match="@*|text()">
    <xsl:copy />
  </xsl:template>

이 메커니즘은 목록의 마지막 항목에 템플릿이 일치하는 등 기본 일치 템플릿을 빠르게 무시할 수 있습니다. . 공통 공유 템플릿을 분할 및 포함시킬 수 있습니다.

하지만

XSL의 Verbosity 단점을 무시할 수는 있지만 (Visual Studio Schema Intellisense + 스 니펫이 실제로 매끄럽고, VS- 팀에게 칭찬하기 때문에) 모델에서 강한 물체보다 지능이없는 단점은 실제로 나를 괴롭히는 것입니다.

나는 ASP.NET MVC + 사용자 컨트롤을 실제로 보았고 실제로 그것을 좋아하기 시작했지만 궁금합니다.

우리가 반복하고있는 XML에 대해 일종의 지능을 얻는 방법이 있습니까? .mvc-view?

(아마도 대답을 알고있을 것입니다 : "아니요", 그리고 나는 Phil Haack의 완전히 멋진 MVC Shizzle을 곧 사용해 줄 것입니다 ...)

도움이 되었습니까?

해결책

객체의 직렬화 된 (XML) 형태를 사용하여 VS의 XML 편집기와 함께 편집 할 수 있습니다. (vs2008을 사용합니다).

그런 다음 XSD 스키마를이 XML 문서에 연결하십시오. XSD, EXE가 생성 한 스키마를 사용하고 직렬화/사제화에 사용됩니다.

당신은 당신이 무료로 Intellisense를 얻는 것을 볼 수 있습니다!

또한 스키마를 편집하고 추가하는 경우

    <xs:annotation>
      <xs:documentation>
        Helpful Explanation.
      </xs:documentation>
    </xs:annotation>

XML 편집기는 프롬프트뿐만 아니라 가능한 요소 또는 속성 이름 및 값, 그러나 "도움이되는 설명"도 팝업 될 것입니다. 주석 데이터가 XML 스키마에 입력 된 모든 것에 대해.

XML 스키마를 XML 문서에 연결하는 방법을 배우려면 지역 VS2008 도움 또는 MSDN 온라인에서 찾으십시오, 또는 읽으십시오 여기.

이것이 도움이 되었기를 바랍니다.

건배,

Dimitre Novatchev

다른 팁

이것은 일종의 주제이지만 XSL (t)로 CMS를 만드는 경로와 지적 이외의 다른 이유로 ASP.NET MVC를 추천 한 고통을 겪었습니다. 그러나 그것은 좋습니다.

원래 XSL을 사용하여 뷰를 데이터와 분리했습니다. 그러나 디자이너들은 모두 HTML처럼 보였기 때문에 대부분 열심히 진행되는 것을 발견했습니다. 더 많은 각도 괄호 등과 나는 계속 대화를하고있었습니다. 모든 것 안에서 "

XSL은 또한 슬 루오 우드 였고, 매우 추억은 배고프다. 메모리 오류가 부끄러워서 늦게 나아갈 때까지. 물론 캐싱은 더 많은 메모리를 사용합니다.

우리가 MVC를 사용한 이후로 돌아 보는 것은 실제로 없었습니다. 정말 모험적인 느낌이 들면 자신만의 시야 엔진을 만들 수있는 옵션도 있습니다. 따라서 필요하다고 느꼈던 곳에 약간의 XSL을 유지할 수 있습니다.

실제로 이미 프로젝트를 기반으로 한 프로젝트가 있습니다. mvccontrib 도서관.

이것이 당신의 결정에 도움이되기를 바랍니다

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top