Tôi có một thứ khá phức tạp được nhồi vào mẫu T4. Về cơ bản tôi có một cái gì đó giống nhưCó điều gì ngoài đó để làm cho mã T4 thêm ... sạch không?
{= foo =} văn bản hơn ...
và chuyển đổi nó thành một lớp (xem) như sau:
public class MyView
{
public string foo{get;set;}
public string Write()
{
return [email protected]" more text...";
}
}
Các mã được tạo là tất nhiên phức tạp hơn nhiều so với điều này. Dù sao, mẫu T4 là hơn 600 dòng mã ngay bây giờ và thực sự trở thành không thể quản lý nhanh. Tôi tin rằng vấn đề chính là trộn mã và "nội dung" (tức là mã tĩnh). Tôi không thực sự chắc chắn làm thế nào để xóa sạch vấn đề này mặc dù (trong khi tất nhiên không ảnh hưởng đến mã được tạo ra). Tôi cũng không thấy bất kỳ cách khả thi nào để kiểm tra đơn vị mã T4 của tôi, ngoài việc thử nghiệm nó cho các lỗi thực thi T4. Và tất nhiên có vẻ là nhiệm vụ gần như không thể thử nghiệm của nó được tạo ra mã.
Có bất kỳ khung hoặc kỹ thuật loại "kiểu xem nào" mà tôi có thể sử dụng để làm cho mã mẫu T4 của tôi sạch hơn không?
Đây có thể không phải là một tùy chọn, nhưng tôi thích [Resharper Templates] (http://www.jetbrains.com/resharper/features/code_templates.html) trên mẫu T4. Ngoài ra, [Resharper] (http://www.jetbrains.com/resharper/) cũng là một công cụ tuyệt vời cho các ứng dụng khác. Cũng đáng giá. – TylerOhlsen
Resharper là một công cụ tốt, nhưng IMHO so sánh Resharper Templates với T4 là so sánh táo và cam. Mẫu Resharper đang quảng bá mẫu chống sao chép-dán với công cụ hỗ trợ dẫn đến ngày càng nhiều mã dự phòng mà bạn phải duy trì, do đó làm tăng chi phí bảo trì. T4 (và các công cụ khác) giảm thiểu dư thừa trong đó bạn viết một chương trình meta (có dự phòng thấp) tạo ra các tạo phẩm mã (với số lượng lớn redudancy). Điều quan trọng là kết nối thông thường giữa chương trình meta và mã được tạo sẽ không bị mất. – FuleSnabel