2012-10-10 5 views
0

안녕하세요, 저는 신속하게 앱을 개발할 수 있도록 작은 프레임 워크를 구축하고 있습니다. 나는 Generic을 사용하여 보일러 플레이트 코드를 반복적으로 작성하는 것을 피하는 데 도움이되는 모든 종류의 기술을 사용하고있다.MonoTouch 상용구 코드 생성

내 프레임 워크에서 모델 객체를 기반으로 일부 코드를 생성하는 것이 좋습니다. JIT 컴파일은 MonoTouch에서 사용할 수 없다는 것을 알고 있지만, 컴파일 직전에 코드를 생성하는 것이 유용하다고 생각합니다. 몇 가지 템플릿을 사용합니다.

MonoTouch에서 컴파일하기 전에 코드를 생성하는 데 도움이되는 유틸리티가 있습니까?

누구나이 방법을 실험 했습니까?

+0

MonoDevelop의 T4 템플릿을보고 있습니다. [링크] http://mjhutchinson.com/journal/2010/05/03/t4_templates_monodevelop [/ 링크] 재미있을 것 같습니다 ... –

+0

자세한 내용은 다음과 같습니다. 템플릿을 기반으로 도메인 객체에 대한 표준 컨트롤러를 생성 할 것입니다. –

답변

0

아주 특별한 이유가없는 한 추가 코드를 생성하는 것이 왜 도움이되는지 나는 알지 못합니다.

MonoTouch의 AOT 프로세스는 사용중인 제네릭 유형을 자동으로 결정하고 해당 유형의 원시 코드 만 생성합니다.

특정 이유는 AOT 컴파일러가 사용중인 제네릭 유형을 판별 할 수없는 경우가 있기 때문입니다 (실제로이 문제를 실제로 실행하기 전에 해결하면 안됩니다. 코드는 단지 컴파일 시간이 느려지고 앱이 더 커지고 장치/설치 프로세스로 업로드하는 데 아무런 이득도없이 느려집니다.

+0

자세한 내용은 다음과 같습니다. 나는 템플릿을 기반으로하고 다음과 같은 코드를 사용하여 도메인 객체에 대한 표준 컨트롤러를 생성 할 것입니다 : 'List lst = 새 목록 (); ' –

+0

조금 혼란스러워 보입니다. AOT/JIT : 프로젝트에서 자신 만의 목적을위한 코드를 생성하려는 경우, 파일을 생성하여 프로젝트에 추가하면됩니다. 실행 중 AOT 또는 JIT를 사용하든 관련이 없습니다. –

+0

네 말이 맞다. 아마 AOT는 오해의 소지가있는 용어 일 것이다. MonoTouch로 JIT 컴파일을 할 수 없다는 말을 사용했습니다. JIT 컴파일러로 실행할 수있는 코드가 있지만 MonoTouch에 JIT가 없기 때문에 접근 방식을 변경하기로 결정했습니다. MonoTouch에서 코드 생성을위한 솔루션을 알고 있습니까? –

0

VS에서 사용하는 것처럼 MonoDevelop에 T4 템플릿을 사용하십시오.

<#@ template language="C#v3.5" #> 
<#@ assembly name="Path/To/your/assembly" #> 

<#@ import namespace="Your.Namespace1" #> 
<#@ import namespace="Your.Namespace1" #> 

// Write your T4 template transformations. 

당신이 .TT 파일을 저장할 때마다, 중첩 된 .cs 파일이 생성됩니다

이 같은 .TT 확장 및 콘텐츠로 새 파일을 만듭니다.