.net 템플릿 엔진을 추천해주시겠습니까?
저는 .net templating 엔진을 찾고 있습니다. - 너무 많이 의존하지 않는 단순하고 가볍고 안정적인 것입니다.현재 제가 필요한 것은 템플릿화된 평문과 html 이메일을 만드는 것뿐입니다.누가 나에게 좋은 추천을 해 줄 수 있습니까?
자바의 프리마커나 Velocity 라이브러리 같은 것이 도움이 된다면요.
[업데이트] 지금까지 답변 주셔서 감사합니다 - 감사합니다.나는 당신이 이 도서관들을 이용했을 때의 추천이나 전쟁 이야기에 정말 흥미를 느낍니다.차례대로 시도하지 않고 결정을 내리는 것이 최선인 것 같습니다.
여기 몇 가지가 더 있습니다.
NVelocity에 관해서는, 캐슬 사람들이 갈아서, 여기서 개발 중입니다.
이메일의 경우 NVelocity 이상이 필요한 적이 없습니다.
RazorEngine 마이크로소프트의 Razor 파싱 엔진을 기반으로 만들어진 템플릿 엔진입니다.
https://github.com/Antaris/RazorEngine
써본 적은 없지만 ASP가 있으면 재미있어요.NET MVC 배경, 당신은 새로운 것을 배울 필요가 없을 것입니다.
더 완전한 목록
- ASP.Net 내장 WebForm View 엔진
- ASP뷰
- 브레일
- NHaml(.)함의 순항)
- 스파크
- 엔벨로시티
- StringTemplate.Net
코드스미스 제너레이터를 추천합니다.템플릿 기반 코드 생성기로 지속적인 업데이트와 활성 커뮤니티가 있습니다.다음은 CodeSmith Generator와 함께 제공되는 템플릿 목록입니다.
C# 버전을 가진 anltr.org polks의 문자열 템플릿도 있습니다.
핸들바, 레이저 엔진 및 샤프 테스트아래 TAL:
namespace ConsoleApplication4
{
class Program
{
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
//RAZOR
string razorTemplate = @"@model ConsoleApplication4.Test
<h1>@Model.Title</h1>
@if(Model.Condition1)
{
<span>condition1 is true</span>
}
<div>
@foreach(var movie in Model.Movies)
{<span>@movie</span>}
</div>";
//burning
Engine.Razor.RunCompile(razorTemplate, "templateKey", typeof(Test), new Test());
sw.Start();
var result1 = Engine.Razor.RunCompile(razorTemplate, "templateKey", typeof(Test), new Test());
sw.Stop();
Console.WriteLine("razor : "+sw.Elapsed);
//SHARPTAL
string sharpTalTemplate = @"<h1>${Title}</h1>
<span tal:condition=""Condition1"">condition1 is true</span>
<div tal:repeat='movie Movies'>${movie}</div>";
var test = new Test();
var globals = new Dictionary<string, object>
{
{ "Movies", new List<string> {test.Movies[0],test.Movies[1],test.Movies[2] } },
{ "Condition1", test.Condition1 },
{ "Title", test.Title },
};
var tt = new Template(sharpTalTemplate);
tt.Render(globals);
sw.Restart();
var tt2 = new Template(sharpTalTemplate);
var result2 = tt2.Render(globals);
sw.Stop();
Console.WriteLine("sharptal : " + sw.Elapsed);
//HANDLEBARS
string handleBarsTemplate = @"<h1>{{Title}}</h1>
{{#if Condition1}}
<span>condition1 is true</span>
{{/if}}
<div>
{{#each Movies}}
<span>{{this}}</span>
{{/each}}
</div>";
var tt3 = Handlebars.Compile(handleBarsTemplate);
sw.Restart();
var result3 = tt3(new Test());
sw.Stop();
Console.WriteLine("handlebars : " + sw.Elapsed);
Console.WriteLine("-----------------------------");
Console.WriteLine(result1);
Console.WriteLine(result2);
Console.WriteLine(result3);
Console.ReadLine();
}
}
public class Test
{
public bool Condition1 { get; set; }
public List<string> Movies { get; set; }
public string Title { get; set; }
public Test()
{
Condition1 = true;
Movies = new List<string>() { "Rocky", "The Fifth Element", "Intouchables" };
Title = "Hi stackoverflow! Below you can find good movie list! Have a good day.";
}
}
}
결과:
방금 오픈소스 프로젝트를 발표했습니다.주로 이메일 템플릿 작성을 목적으로 하지만 원한다면 파서를 직접 사용할 수도 있습니다.좀 더 자세한 내용을 읽고 제 블로그에서 소스 코드를 가져올 수 있습니다.
저는 콧수염(http://mustache.github.com/) 이 그 비용에 맞을지도 모른다고 생각합니다.
DotLiquid는 에 매우 좋은 템플릿 시스템입니다.그물.
루비의 리퀴드 마크업(Liquid Markup)에서 파생된 것으로 요구사항이 있습니다.NET Framework 3.5 이상.
이메일 템플릿 프레임워크 http://www.bitethebullet.co.uk/Email_Template_Framework.aspx 를 사용해 보십시오.
ASP에서는 잘 작동합니다.NET 및 WinForms는 현재 활발한 개발 중에 있습니다.또한 매우 좋은 설명서가 있으며 예를 쉽게 살펴볼 수 있습니다.
<ul>
<c:for-each name='n' in='System.Linq.Enumerable.Range(1, 5)' expand-text='yes'>
<li>{n}</li>
</c:for-each>
</ul>
NVelocity, a를 본 적이 있습니까?NET 포트 오브 벨로시티?http://nvelocity.sourceforge.net/
http://csharp-source.net/open-source/template-engines
http://joel.net/code/dotnet_templates.aspx
도움이 되길 바랍니다!!!
뉴벨로시티는 비록 오래되었지만 2003년에 마지막으로 출시되었습니다.
SharpTAL - 현재 개발 중이며 의존성이 없는 독립형 엔진, 빠른 속도
언급URL : https://stackoverflow.com/questions/340095/can-you-recommend-a-net-template-engine
'programing' 카테고리의 다른 글
| CSS에서 경계 불투명도를 설정할 수 있습니까? (0) | 2023.09.07 |
|---|---|
| Oracle 11g: 여러 열을 피벗 해제하고 열 이름 포함 (0) | 2023.09.07 |
| jQuery를 사용하여 드롭다운 목록을 열 수 있습니까? (0) | 2023.09.07 |
| CSS 테이블 셀 등폭 (0) | 2023.09.07 |
| 인라인 CSS로 의사 요소를 사용하기 전과 후 CSS ::를 사용하는 것? (0) | 2023.09.07 |
