2009-05-13 30 views
6

Có ai đó đã chuyển mẫu netTiers được đặt thành các mẫu T4 của Visual Studio không? Hoặc là có một hệ thống phạm vi tương tự? Có ai sử dụng T4 trong môi trường làm việc không? Điều gì (nếu có) sự khác biệt lớn là có giữa Codesmith và T4?CodeSmith v.s. T4: .netTiers level suite

+0

Tôi cũng quan tâm để biết cách mọi người khắc phục thực tế là mỗi mẫu T4 chỉ tạo ra một tệp đầu ra. –

+0

http://www.olegsych.com/2008/03/how-to-generate-multiple-outputs-from-single-t4-template/ –

Trả lời

5

Tôi dabbled in T4 cho một chút - hey, nếu nó miễn phí và bao gồm trong VS2008, sử dụng nó, phải không?

Ý tưởng cơ bản của tôi là tạo một bộ mẫu để đọc bảng cơ sở dữ liệu và tạo các lớp ORM "cuộn riêng của bạn" từ đó.

Tôi đã từ bỏ T4, thất vọng và không thể lấy ngay cả những thứ cơ bản nhất để làm việc đó là một miếng bánh ở CodeSmith.

Ngay cả một nhiệm vụ đơn giản như chọn máy chủ, cơ sở dữ liệu và bảng để sử dụng không thể được thực hiện trong T4 một cách hiệu quả từ "bên ngoài" bản thân mẫu. Có, bạn có thể mã hóa tất cả các giá trị này dưới dạng các giá trị chuỗi thành một mẫu T4 - nhưng thực tế, đó không phải là giải pháp, phải không?

CodeSmith có hỗ trợ tuyệt vời để chọn máy chủ, cơ sở dữ liệu và bảng và bạn có thể đặt các thuộc tính đó trên mẫu và chỉ cần chọn những gì bạn muốn và để mẫu làm công cụ của bạn trên bảng cụ thể mà bạn đã chọn.

Kết luận của tôi: T4 có triển vọng nhưng "chưa có". Nó có thể làm việc cho các kịch bản rất đơn giản, nhưng ngay bây giờ, đó là ý kiến ​​của tôi ở đâu đó gần như linh hoạt và mạnh mẽ như Codesmith.

Đối với một kịch bản như .netTiers, tôi sẽ gắn bó với Codesmith trong thời gian này.

Marc

+0

Tất nhiên, bạn có thể có cài đặt trong một mẫu riêng biệt và chỉ bao gồm nó trong mẫu thế hệ chính. Bằng cách này, tệp cài đặt của bạn sẽ nhỏ và mọi thứ sẽ được chứa trong một tệp. Có thể gọi là 'settings.tt' –

+0

@Robert: chắc chắn - nhưng điều đó không giải quyết được vấn đề cơ bản - không có cách nào dễ dàng chuyển các tham số tới các mẫu T4 ngay bây giờ - một hạn chế ** MAJOR ** theo ý kiến ​​của tôi –

+0

Tôi biết đây là một câu hỏi cũ, nhưng chỉ trong trường hợp bất cứ ai tình cờ gặp phải các cuộc thảo luận - T4 bây giờ có một chỉ thị "Tham số". http://www.olegsych.com/2010/05/t4-parameter-directive/ – EBarr

5

T4 không phải là CodeSmith. Có, bạn chỉ định tham số trong tệp .tt dưới dạng mã C# hoặc Visual Basic và sử dụng chỉ thị < # @ include #> để tham chiếu việc triển khai thực tế của logic tạo mã. Đây không phải là mã hóa cứng hơn việc chỉ định cùng một thông tin trong một tệp XML với CodeSmith.

Đối với bộ mẫu T4 giống như NetTiers, hãy xem S # arp Kiến trúc: http://code.google.com/p/sharp-architecture/.

1

Nếu bạn đang tìm kiếm triển khai T4 của DAL được hỗ trợ tốt là Nguồn mở với giao diện LINQ cũng như giao diện Fluent của riêng nó sẽ tạo trình bao bọc cho Bảng, Procs được lưu trữ, Chế độ xem, v.v. SubSonic 3.0. SubSonic 2.2 có cùng độ tốt trừ đi giao diện T4 và LINQ và đang ở chế độ phát hành. SubSonic 3.0 có trong Alpha nhưng bạn có thể tải xuống mã hoặc .dll và các mẫu T4 nếu bạn muốn.