문제

내가 일하고있는 응용 프로그램 스캐 폴딩 프로젝트에서 나는 사용할지 여부를 결정하려고 노력하고있다. 오슬로, T4 또는 코드 코드를 생성합니다. 우리의 목표는 의존성을 최소로 유지하고 사용자 스토리에서 도메인 구동 설계를 위해 코드 생성을 구동하는 것입니다. 첫 번째 단계는 사용자 스토리에서 테스트를 만드는 것이지만 도메인 전문가가 다양한 미디어 (예 : 사용자 정의 앱, Word 등)에 스토리를 작성하고 여전히 테스트를 생성 할 수 있기를 원합니다. 이야기.

내가 지금까지 알고있는 것 :

  1. Codedom에는 .NET가 필요하지만 .NET 클래스 파일 (예 : .CS, .VB) 만 출력 할 수 있습니다. 난이도는 상당히 높습니다.
  2. T4는 Codedom 및 vs Standard+가 필요합니다. 난이도 수준은 특히 합리적입니다. T4 도구 상자.
  3. 오슬로는 매우 새롭습니다. 나는 의존성에 대해 전혀 모른다. 그러나 나는 당신이 적어도 .NET 3.5에 있어야한다고 생각한다. 또한 코드 생성 능력이나 새로운 문법을 추가하기위한 복잡성에 대해서는 확실하지 않습니다. 그러나 도메인 전문가는 아마도 Intellipad에서 사용자 스토리를 아주 쉽게 작성할 수 있습니다. 또한 단어로 스토리를 Mgrammar로 변환하는 것이 확실하지 않습니다.

위의 도구 중 하나를 사용하여 생각, 경험 등은 무엇입니까? 우리는 Microsoft 또는 오픈 소스 도구를 고수하고 싶습니다.

도움이 되었습니까?

해결책

T4- 쉬운 결정.

  • Oslo는 너무 새롭고 도구가 너무 생생하여 평가 전용 기술이 아닙니다.
  • Codedom은 런타임에 CLR 클래스를 생성 해야하는 경우 강력하고 생성 된 출력에 대한 쉬운 수정을 기꺼이 희생하려는 경우.
  • T4 (T4 툴킷 포함)는 사용하기 쉬운 범용 코드 생성 도구입니다. 지금까지의 어려움만이 빌드 타임 통합입니다.

다른 팁

일반적으로 나는 코드 생성을 완전한 모델링/코딩 스토리의 일부로 본다. 대부분의 배관이 수행되는 일반적인 프레임 워크가 동반되어야합니다. 제 생각에는 거대한 클래스를 생성하는 것이 유용하지 않지만 잘 정의 된 확장 지점 또는 후크가있는 괜찮은 프레임 워크는 유지하고 확장하는 것이 훨씬 좋습니다.

XML 또는 Oslo 도메인 언어 등 사용자 스토리에 대한 공식 언어를 정의해야합니다. Oslo는 도메인 전문가가 Oslo 툴링을 배우도록 요구합니다. Word + XML을 사용할 수 있습니다. 그런 다음 내장 된 XML 스키마를 사용하여 잘 보이는 템플릿을 Word로 정의하고 스토리가 작성된 후 공식화 된 XML 구문으로 Word에서 얻을 수 있습니다.이 XML은 XSLT 또는 LINQ를 통해 생성기를 구동하는 데 사용할 수 있습니다.

Codedom은 강력하지만 오히려 번거 롭습니다. 사용하기 쉬운 솔루션이 아니며 실제 템플릿 지원이 없습니다.

T4에 대한 경험은 없지만 템플릿 기능은 사전입니다.

Oslo 제품은 실제로 매우 새롭고 런타임 환경 인 .NET 4.0이 필요합니다. 여전히 CTP 일뿐입니다. 데이터베이스 생성 스토리에 대한 의문이 있지만 매우 강력한 환경입니다.

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

글쎄, 오슬로는 목록에 맞지 않습니다. 지금까지 코드 생성 스토리가 없습니다. 그러니 T4를 고수하십시오.

오슬로는 귀하를 위해 코드를 생성하려는 의도가 없습니다. 데이터에 따라 동작을 변경하는 런타임 (예 : C# 프로그램)을 작성해야합니다. 인터넷 브라우저처럼 볼 수 있습니다.

나는 Oslo가 Rine 언급과 같이 .NET 4.0을 필요로한다고 생각하지 않습니다. Avanade Netherland에서 인턴쉽을 위해 Oslo Mschema와 Mgrammars와 C#3.5 런타임을 만들고 있습니다. 주어진 데이터에 따라 WCF 서비스를 생성하고 실행합니다.

오슬로의 흥미로운 적용이 있습니다

  • PDC 세션 비디오에서 "New LDAP"시스템. http://microsoftpdc.com/sessions/svc28
  • 시스템, 클래스, 모듈 등에 대한 정보를 푸시 할 수있는 System.Microsoft.uml2 리포지토리에서 분석하고 보고서를 작성할 수 있습니다. 예를 들어 두 빌린 사이에 추가/제거 된 메소드가있는 보고서 작성 http://microsoftpdc.com/sessions/svr19
  • 그리고 물론 모델링
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top