저는 ASP.NET MVC 솔루션을 보유하고 있으며 데이터를 가져 와서 다양한 페이지에 표시 할 HTML 스 니펫을 생성하는 ASP.NET MVC 프로젝트 내에 많은 수의 HtmlHelper 클래스가 있습니다.ASP.NET MVC 프로젝트에서 공유 HTML 생성 코드는 어디에 두어야합니까?
이제 일정 잡힌 작업을 실행해야하며 이러한 작업 중 많은 작업이 이메일을 생성합니다. 이러한 모든 작업을 솔루션의 별도 프로젝트 (AdminJob.csproj라고 함)로 옮겼지만 지금은보기 페이지에있는 것과 매우 유사한 HTML로 많은 수의 전자 메일을 생성해야합니다. 관리자 작업을 ASP.NET MVC 프로젝트에 의존하지 않도록 유지하려고합니다. (필요한 경우 adminjob 프로젝트를 명령 줄로 실행하고 싶습니다.) 또한 ASP.NET MVC 프로젝트를 피하기를 원합니다. AdminJob 프로젝트에 대한 의존성이 있습니다 (이상한 것처럼 보입니다).
내 ASP.NET MVC 프로젝트와 AdminJob 프로젝트에서 동일한 HTML 렌더링 코드를 복제하지 않도록하는 방법에 대한 제안 사항은 무엇입니까?
내가 생각할 수있는 유일한 해결책은 "ViewHelpers"라고하는 솔루션에서 다른 프로젝트를 만들거나 내 HTMLHelpers를 모두 해당 프로젝트로 옮겨서 내 MVC 프로젝트와 AdminJob 프로젝트에서 모두 참조 할 수 있도록하는 것입니다. 이 코드에 대해 별도의 프로젝트를 갖는 것은 다소 과잉이라고 생각되지만 중복을 생성하지 않는 다른 솔루션은 생각할 수 없습니다.
이 작업을 수행하고 중복을 피하는 더 좋은 방법에 대한 다른 제안 사항이 있습니까?
귀하의 제안은 논리적으로 보입니다. 그러나이 질문은 주로 의견을 바탕으로하며 주제를 벗어난 것으로 해석됩니다. – Nkosi
나는 여기에 모범 사례를 찾고 있기 때문에 완전히 반대 의견에 동의하지 않는다. MVC보기와 겹치는 요구 사항을 가진 이메일 생성이있는 일반적인 상황처럼 보이므로 증거와 원칙 기반 답변이 분리되어 있다고 생각할 것이다. 우려 및 기타 목표. 당신이 그것이 주제가 적을 것이라고 생각하게하기 위해 질문에서 바꿀 어떤 것에 대한 어떤 제안? – leora
나는 당신이 제안한대로 갈 것이고, 공유 된 코드를위한 별도의 프로젝트를 만들 것이다. 그러나 "SharedHTML"또는 그와 비슷한 것으로 만들지 마라. 결국 공유해야 할 코드가 더 많이 생기게 될 것이고,이 프로젝트를이 모든 것에 사용할 수있을 것이다. – Dinei