Tôi có một giải pháp ASP.NET MVC, và tôi có một số lượng lớn các lớp HtmlHelper bên trong dự án ASP.NET MVC lấy dữ liệu và tạo ra các đoạn mã html khác nhau để hiển thị trên các trang khác nhau.Tôi nên đặt mã tạo mã HTML được chia sẻ trong dự án ASP.NET MVC ở đâu?
Tôi hiện phải chạy một loạt các công việc đã lên lịch và nhiều công việc trong số đó tạo email. Tôi đã chuyển tất cả các công việc này thành một dự án riêng biệt trong giải pháp (được gọi là AdminJob.csproj), nhưng bây giờ tôi thấy rằng tôi phải tạo một số email có HTML tương tự như tôi có trong các trang xem của mình. Tôi đang cố gắng để giữ cho các công việc quản trị từ có một phụ thuộc vào dự án ASP.NET MVC (như tôi muốn chạy dự án adminjob như là một dòng lệnh nếu cần thiết), và tôi cũng muốn tránh có dự án ASP.NET MVC của tôi có một sự phụ thuộc vào dự án AdminJob (vì điều đó có vẻ lạ).
Bất kỳ đề xuất nào về cách tôi có thể tránh sao chép cùng một mã hiển thị HTML trong cả dự án ASP.NET MVC và dự án AdminJob của tôi? Điều duy nhất tôi có thể nghĩ đến là tạo một dự án khác trong giải pháp có tên là "ViewHelpers" hoặc thứ gì đó như thế và di chuyển tất cả HTMLHelpers của tôi vào dự án đó để nó có thể được tham chiếu bởi cả dự án MVC và dự án AdminJob của tôi. Có vẻ như một chút quá mức cần thiết để có một dự án riêng biệt chỉ dành cho mã này, nhưng tôi không thể nghĩ ra một giải pháp khác không tạo ra sự trùng lặp.
Bất kỳ đề xuất nào khác về cách tốt hơn để thực hiện việc này và tránh bất kỳ sự trùng lặp nào?
Đề xuất của bạn có vẻ hợp lý. Câu hỏi này chủ yếu là dựa trên ý kiến và sẽ được hiểu là không có chủ đề. – Nkosi
Tôi không đồng ý rằng điều này hoàn toàn dựa trên ý kiến vì tôi đang tìm cách thực hành tốt nhất ở đây và có vẻ như một tình huống phổ biến nơi bạn có cả chế độ xem MVC và email với các yêu cầu chồng chéo. mối quan tâm và các mục tiêu khác. Bất kỳ đề xuất nào cho một số điều để thay đổi trong câu hỏi để làm cho bạn nghĩ rằng nó sẽ ít hơn chủ đề? – leora
Tôi sẽ thực hiện như bạn đã đề xuất, tạo một dự án riêng cho mã được chia sẻ. Nhưng đừng tạo nó dưới dạng "SharedHTML" hoặc bất kỳ thứ gì như thế, cuối cùng nhiều mã sẽ được chia sẻ sẽ hiển thị và bạn có thể sử dụng dự án này cho tất cả những điều đó. – Dinei