У меня есть решение ASP.NET MVC, и у меня есть большое количество классов HtmlHelper в проекте ASP.NET MVC, которые берут данные и генерируют различные фрагменты html для отображения на разных страницах.Где я должен поместить общий код генерации HTML в проект ASP.NET MVC?
Теперь мне нужно запустить кучу запланированных заданий, и многие из этих заданий создают электронные письма. Я переместил все эти задания в отдельный проект в решении (так называемый AdminJob.csproj), но теперь я обнаружил, что мне нужно создать несколько писем с очень похожим HTML, как у меня на моих страницах просмотра. Я стараюсь, чтобы задания администратора не зависели от проекта ASP.NET MVC (поскольку я хотел бы запустить проект adminjob как командную строку, если это необходимо), и я также хочу избежать создания моего проекта ASP.NET MVC имея зависимость от проекта AdminJob (поскольку это просто кажется странным).
Любые предложения о том, как я могу избежать дублирования одного и того же кода рендеринга HTML как в моем проекте ASP.NET MVC, так и в моем проекте AdminJob?
Единственное, о чем я могу думать, это создать еще один проект в решении под названием «ViewHelpers» или что-то в этом роде и перенести все мои HTMLHelpers в этот проект, чтобы на него могли ссылаться как мои MVC-проекты, так и проект AdminJob. Кажется, немного переборщить, чтобы иметь отдельный проект только для этого кода, но я не могу думать о другом решении, которое не создает дублирование.
Любые другие предложения для лучшего способа сделать это и избежать дублирования?
Ваше предложение кажется логичным. Этот вопрос в первую очередь основан на мнениях и будет интерпретироваться как не относящийся к теме. – Nkosi
Я не согласен с тем, что это полностью основано на мнениях, поскольку я ищу здесь наилучшую практику, и это похоже на обычную ситуацию, когда у вас есть как просмотр MVC, так и создание электронной почты с перекрывающимися требованиями, поэтому я думаю, что есть доказательства и основанные на принципе ответы, учитывая разделение проблемы и другие цели. Любые предложения по какой-то вещи изменить в вопросе, чтобы вы подумали, что это будет меньше от темы? – leora
Я бы пошел, как вы предложили, создав отдельный проект для общего кода. Но не создавайте его как «SharedHTML» или что-то в этом роде, в итоге появится больше кода, который должен быть общим, и вы можете использовать этот проект для всего этого. – Dinei