템플릿 엔진을 구현하려면 일반 C#/.NET 4 구문 만 사용하여 정적 입력의 이점을 얻으려고합니다.C# DSL 구문에 대한 아이디어
그런 다음 템플릿 언어를 사용하여 도메인 특정 언어 (HTML4, XHTML, HTML5, RSS, Atom, Multipart Emails 등)을 만들 수 있습니다.
.NET 4에서 최고의 DSL 중 하나 (하나가 아닌 경우)는 SharpDOM입니다. HTML 관련 DSL을 구현합니다.
SharpDOM을 보면 .NET (4)을 사용하여 할 수있는 것에 깊은 인상을 받았습니다.
.NET에서 사용자 지정 DSL을 구현하는 데별로 잘 알려지지 않은 방법이 있다고 생각합니다. 아마도 Ruby뿐만 아니라 여전히 그렇습니다.
내 질문에 : 사용자 지정 DSL을 구현하는 데 사용할 수있는 C# (4) 특정 구문 기능은 무엇입니까? 내가 지금 생각할 수있는
예 : 나를 위해
// HTML - doesn't look tooo readable :)
div(clas: "head",
ul(clas: "menu", id: "main-menu",() => {
foreach(var item in allItems) {
li(item.Name)
}
}) // See how much noise it has with all the closing brackets?
)
// Plain text (Email or something) - probably too simple
Line("Dear {0}", user.Name);
Line("You have been kicked off from this site");
는 소음의 최소 양의 구문을 마련하기 정말 어렵습니다.
다른 언어 (Boo, IronRuby 등)에 대해서도 말하고 있지 않으며, 다른 템플릿 엔진 (NHaml, Spark, StringTemplate 등)에 대해서도 말하고 있지 않습니다.
현재 구현 세부 사항을 찾는 것이 아니라 구체적인 구문의 디자인에 대해 생각하고있는 경우 사람들이 코드를 작성하는 방법에 대한 좋은 예가 있습니다. –
@Dmitriy Nagirnyak (귀하의 경우 템플리트 엔진) 및 도메인 전문가 (C# GUI 개발자)와 도메인 사용자 (귀하의 선택)가 귀하의 DSL에 대한 대상입니다. 그래서 나는 이것이 대답할만한 질문이 아니라 목표 청중에 달려 있다고 말할 것입니다. 다른 템플릿 엔진의 구문을 비교하는 설문 조사를 만들어 사람들이 사용하는 것을 찾아내는 것이 좋습니다. –
대상 고객은 C# developers입니다. 구문을 비교하는 설문 조사를 만들 수 없습니다. 구문이 아직 없습니다.이 질문의 puprose는 C# 4에서 사용 가능한 구문을 찾아내는 것입니다. –