안녕하세요. 비즈니스 로직 계층에 세션 값을 전달해야하지만 프리젠 테이션 계층에서 함수에 전달할 수 있지만 비즈니스 로직 계층에서 직접 액세스 할 수 있습니까? 또한 그것은 내가 아니라 비즈니스 로직 계층 내에서 Session
에 액세스하는 것이 좋습니다비즈니스 로직 계층에서 세션 값을 가져 오는 방법은 무엇입니까?
GetMyRecords(Count,Session["userID"].toString()); ?
안녕하세요. 비즈니스 로직 계층에 세션 값을 전달해야하지만 프리젠 테이션 계층에서 함수에 전달할 수 있지만 비즈니스 로직 계층에서 직접 액세스 할 수 있습니까? 또한 그것은 내가 아니라 비즈니스 로직 계층 내에서 Session
에 액세스하는 것이 좋습니다비즈니스 로직 계층에서 세션 값을 가져 오는 방법은 무엇입니까?
GetMyRecords(Count,Session["userID"].toString()); ?
위의 John의 답변에 따르면 비즈니스 계층의 모든 UI 요소에 액세스하지 않는 것이 이상적입니다. 프레젠테이션 계층의 세션 값을 비즈니스 계층으로 전달하여 비즈니스 계층이 자신이 어디서 오는지가 아닌 값만 인식하도록해야합니다.
프레 젠 테이션 레이어 에서 값을 전달하는 방법에 대한 두 번째 요점은 atleast 세션 [ "userID"]. toString()을 프리젠 테이션 레이어의 속성으로 배치해야합니다. 속성이기 때문에 필요한 경우 확인/유효성 검사 논리를 추가 할 수 있습니다.
또한 나는 래퍼 SessionWrapper 클래스를 가지고 있으며 세션 값에 액세스하기 위해 응용 프로그램에서이 클래스를 사용하는 것이 더 깔끔하다는 것을 알았다. 이것의 장점은 Session Persistence가 변경되면 대개 한 곳이 변경된다는 것입니다. 물론 .NET 공급자가 자신의 공급자를 만들었더라도 구성을 통해 플러그 인 할 수 있으므로 필요하지 않습니다.
같은 비즈니스 로직 계층에 직접 전달하는 좋은 방법입니다. 별도의 레이어를 사용하려는 의도는 서로 다른 용도로 사용된다는 것입니다. 예를 들어 비즈니스 로직 계층은 일반적으로 사용자 인터페이스 기술에 대한 참조를 포함해서는 안됩니다. 이 경우 Session
.
프리젠 테이션 레이어 (UI 레이어라고도 함)에서 비즈니스 레이어가 프리젠 테이션 레이어에서 수행해야하는 작업으로의 변환입니다. 누가 알아? 아마도 다음주에 상사가 비즈니스 로직을 해당 웹 서버에서 애플리케이션 서버로 옮기고 WCF 기반 통신을 사용하도록 요청할 것입니다.
명확한 분리는 내일의 모양을 모르는 경우에도 더 많은 경로를 내일까지 열어 둡니다.
존 감사합니다. 당신은 층 분리에 관해 집중하고 있습니다. 저장소 클래스를 통해 어떻게 액세스 할 수 있습니까? –
'세션'에서 제공하고자하는 정보가 더 많은 것 같습니다. 예를 들어 세션에 customerID가있는 경우 프레젠테이션 계층에서 추출한 다음 매개 변수로 비즈니스 논리 계층에 전달할 수 있습니다. 리포지토리 클래스에 관해서는 일반적으로 비즈니스 로직 계층 내에서 데이터 액세스 계층에 대한 인터페이스로만 사용합니다. 그 시나리오에서, 저장소 클래스는 표현 계층으로부터 2 층 떨어져있을 것이다. – Manfred
제정신에 감사드립니다. 세션 변수를 반환하는 비즈니스 로직 계층 외부의 저장소 클래스를 만들었습니다. 엄지 위로! –