2011-01-11 3 views
1

ASP.NET MVC 프로젝트의 목록에 사용자가 구성 할 수있는 필터링 시스템을 구현하고 싶습니다.C#에서 사용자가 구성 할 수있는 임의의 목록 필터링

구성 사용자는 목록에있는 개체의 속성 중 하나를 사용하여 목록을 필터링 할 수 있어야합니다. 또한 정적 클래스의 속성과 같은 현재 실행 범위의 값을 비교에 사용할 수 있어야합니다. 필터링 할 개체는 모두 같은 유형입니다.

이 시스템의 목적은 중앙 카탈로그에서 제공되는 여러 개의 '화이트 라벨'전자 상거래 사이트를 사용할 수 있지만 각 사이트마다 사용 가능한 제품의 하위 집합이 약간 다를 수 있도록하는 것입니다.

코드를 배포하는 대신 관리 인터페이스를 통해 구성을 수행해야합니다.

``1. 고려해야 할 사항 :

내 자신의 기본 구문을 구현하십시오. 비교를 나타 내기 위해 데이터베이스에 텍스트를 저장하십시오. 리플렉션을 사용하여 비교/필터링을 완료하십시오.

문제 : 내 자신을 굴리는 것이 마음에 들지 않습니다. 텍스트 오류 가능성.

`2. 작은 '비교 DLLs'을 구현하고, Spring이나 유사한 것을 사용하여 주입하십시오.

문제점 : 응용 프로그램이 웹 팜에있어 배포 오류가 발생할 수 있습니다. 관리가 어려워진다. 관리자 인터페이스가 없습니다.

이상적으로는 유지하기 쉬운 솔루션 (정보를 db로 유지)과 상당히 안전합니다 (사용자의 오류에 대한 작은 여백).

답변

0

이 문제에서 발견 된 해결책은 상당히 논란의 여지가 있지만 작동합니다.

데이터베이스에 C# 코드를 저장하고 요청시 람다 함수로 컴파일 한 다음 결과 개체를 캐싱합니다 (우리는 AppFabric Server를 사용하고 있습니다).

이 함수는 개체 목록을 필터링하는 데 사용됩니다.

우리는 사람들이 자신의 필터를 만들고 편집 할 수있는 관리 인터페이스를 제공합니다. 관리 인터페이스는 코드가 데이터베이스에 저장되기 전에 컴파일 될 수 있음을 확인합니다.

관련 문제