문제

내가 마지막 고용주에서 JSP/Struts 개발자로서 담당했던 프로젝트 중 하나는 회사의 모든 Java 웹 개발자가 표준 중 하나를 가져올 수 있는 테마 태그 라이브러리(모든 WebSphere 서버에 공유 라이브러리로 존재)였습니다. 인트라넷, 공개 등과 같은 테마최소한의 노력으로.테마에는 머리글, 바닥글, 탐색, CSS 및 자바스크립트 링크 등이 포함되었습니다.선택한 탭을 선택하는 등의 옵션을 제공하면 사용자가 항목을 약간 맞춤 설정할 수도 있습니다.

이 설정은 표준 UI 요소를 중앙 집중식으로 변경할 수 있고 사이트 개발자의 노력 없이 테마를 사용하는 모든 사이트에서 자동으로 가져오기 때문에 이상적이었습니다.

12월에 시작한 새 직장에서는 ASP.NET을 사용하도록 전환했습니다.우리는 통일된 모양과 느낌을 가져야 하는 다양한 사이트를 운영하고 있기 때문에 여기서는 테마 앱과 비슷한 것을 제안하고 싶습니다.

이를 달성하는 가장 좋은 방법은 무엇입니까?이 작업을 수행하기 위해 테마를 업데이트하기 위해 아무것도 다시 컴파일할 필요가 없습니다.

편집하다:

더 나은 대답을 기대했지만 .NET 신들은 분명히 내가 달성하려는 것을 승인하지 않았습니다.발견된 세 가지 옵션은 다음과 같습니다.

  1. 마스터 페이지를 DLL로 컴파일하고 GAC에 넣습니다.이것은 간단한 경우에는 작동하지만 해킹으로는 너무 취약합니다.우리 사이트에서 제대로 작동하지 못했습니다.

  2. 각 웹앱의 마스터 페이지에 가상 디렉터리를 만듭니다. 매우 편안한 개발 환경을 조성하지는 못하더라도 실제로는 작동합니다.그러나 우리가 벗어나려고 노력하고 있는 것 중 하나는 각 웹 애플리케이션 내부에 가상 디렉터리를 생성해야 한다는 것입니다.주사위가 없습니다.

  3. 여러 개의 사용자 정의 컨트롤을 만들고 이를 DLL로 컴파일한 후 GAC에 넣습니다. 제가 선택한 답변입니다.이는 중앙 집중화가 가장 덜한 옵션이고 각 사이트의 개발자에게 더 많은 작업이 필요하지만 Microsoft가 축복하는 유일한 방법인 것 같습니다.

결론적으로 저는 이 문제로 인해 .NET에 대해 상당히 실망했습니다.큰 계획에서 마스터 페이지는 코드일 뿐이므로 여러 웹 응용 프로그램에서 사용하기 위해 쉽게 중앙 집중화할 수 없는 이유가 없습니다.이는 JSP/Java에 비해 큰 손실인 것 같습니다.

도움이 되었습니까?

해결책

일부 UI를 사용자 지정 컨트롤이나 서버 컨트롤(MVC가 아닌 경우) 형태로 넣은 다음 GAC에 배치하여 배포할 수 있습니다.해당 어셈블리의 컨트롤에 대한 모든 참조는 GAC의 최신 버전에서 가져옵니다.앱 수준이 아닌 서버 수준에서 제어되는 Machine.config를 통해 작업을 수행할 수도 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top