TemplateDsl یک template engine مبتنی بر source generator برای قالبهای متنی تودرتو است که سازندهاش آن را برای دریافت بازخورد معرفی کرده است. templateها با C# معمولی نوشته میشوند و به متدهای render با قابلیت streaming تبدیل میشوند. تمرکز فعلی روی HTML و TemplateDsl.Html است، اما نویسنده میخواهد پشتیبانی را به قالبهای دیگر هم گسترش دهد.
سازنده، کمبودهای ابزارهای موجود در زمینهٔ static safety، کارایی، boilerplate و پشتیبانی IDE را انگیزهٔ ساخت این پروژه میداند. به گفتهٔ او، TemplateDsl خطاهای تایپی، مقدارهای نادرست attribute و نبود context لازم را به خطای compile تبدیل میکند تا این موارد در runtime آشکار نشوند.
در بخش تولید خروجی، نویسنده میگوید templateها UTF-8 را مستقیم در خروجی مینویسند و allocation میتواند تا صفر کاهش پیدا کند. templateهای async نیز خروجی را همزمان با render ارسال میکنند. داده از طریق constructor وارد میشود و منطق با C# معمولی نوشته میشود؛ templateها هم قابل تودرتو کردن، جابهجایی و استفادهٔ مجدد هستند.
بهگفتهٔ سازنده، محتوا بهصورت پیشفرض escape میشود، مگر اینکه خلاف آن صریحاً مشخص شود. همچنین تولید کد در زمان build و نبود reflection، مبنای پشتیبانی اعلامشده از trimming و native AOT است.
نمونهٔ ارائهشده یک OrderRow برای ساخت ردیف جدول و یک OrdersPage از نوع async دارد. صفحه، سفارشها را از IAsyncEnumerable<Order> میگیرد و با H.EachAsync برای هر سفارش یک OrderRow میسازد. PageContext نیز نام کاربر را در اختیار صفحه و templateهای تودرتوی آن میگذارد. در پایان، یک endpoint از نوع minimal API صفحه را با ToResult(context) برمیگرداند. این نمونه مسیر تعریف template تا بازگرداندن آن از endpoint را نشان میدهد؛ ادعاهای کارایی در متن از سوی سازنده مطرح شدهاند.

