2011-03-27 2 views
2

우리 팀은 워크 플로 기반 웹 응용 프로그램을 디자인해야했습니다. 디자인과 관련하여 조언이 필요합니다.ASP.Net 웹 응용 프로그램에 대한 워크 플로 디자인 조언?

워크 플로는 동적이어야합니다. 즉, 사용자는 특정 인터페이스를 통해 워크 플로를 정의하고 해당 시나리오에 워크 플로를 적용 할 수 있습니다. 정의는 SQL 2008 데이터베이스에 저장됩니다. 시나리오는 비즈니스에 의해 정의되며 절대 변경되지 않습니다. 따라서 워크 플로를 정의 할 수있는 시나리오는 두 가지 유형 만있을 수 있습니다. 워크 플로우는 반드시 선형 적이지는 않습니다. 어떤 종류의 주에서는 워크 플로우를 추진하게됩니다. 상태는 동적이지만 워크 플로에만 존재합니다.

워크 플로 및 상태 시스템의 예를 살펴보고 머리가 돌아가고 있습니다. 워크 플로 파운데이션이나 우리가 개발 한 것을 활용하고 싶지는 않습니다. 나는 this을 보았고 그것이 효과가있을 것이라고 생각하지만, 국가 전체 구현이 우리에게 효과가 있을지 확신하지 못합니다.

답변

3

이 작업은 WF4를 사용하여 수행 할 수 있습니다. 필자는 Objectflow를 사용 해본 적이 없기 때문에 논평 할 수는 없지만 메모리 솔루션과 IIS에서 호스트되는 ASP.NET 웹 사이트 인 것처럼 보입니다. IIS 리사이클 및 AppDomain으로 상태가 가끔씩 상실 될 수 있습니다. 일반적으로 큰 문제는 아니지만 자주 발생하지는 않지만 WF4 InstanceStore가이를 처리합니다. 또한 끈끈한 세션없이 웹 팜에서 실행하고 워크 플로우를 시스템간에 마이그레이션 할 수 있습니다.

또 다른 좋은 점은 워크 플로 디자이너입니다. WPF 컨트롤을 사용하면 자신의 앱에서 다시 호스트 할 수 있습니다. ASP.NET 또는 Silverlight 응용 프로그램이 아니지만 VS2010에서 사용하는 것처럼 사용자가 정상적인 디자이너를 사용하여 워크 플로 정의를 업데이트하도록 할 수있는 스마트 클라이언트를 제공 할 수 있습니다.

WF4의 가장 큰 문제점은 비동기 실행 특성입니다. SynchronizationContext를 사용하여 활동을 실행하고 결과 HTML을 브라우저로 반환하기 전에 워크 플로가 새 상태로 유휴 상태가 될 때까지 기다려야합니다.

+0

이것이 원래 질문의 일부가 아니지만 WF4를 엔티티 프레임 워크 4와 함께 사용하는 것에 대한 조언이 있습니까? – DDiVita

+0

사용자 지정 활동을 만들고 Execute() 메서드에서 수행해야 할 작업을 수행하십시오. 워크 플로우가 열려있는 연결로 유지 될 수 있기 때문에 데이터 컨텍스트를 그 이상으로 유지하지 않도록하십시오. – Maurice

관련 문제