Which is better for a non workflow based code that needs to be called from orchestrations.
I believe that the .Net component is a better choice :
1. .Net Component
Write a .Net component class library which exposes a static method which does the work, and can be referenced by the btprojects.
Pros : common reusable component without need for any transaction / Orchestration overheads.
2. Public Orchestration
Write a shared orchestration which does the work.
GUI based evelopment/ other BTS pros.
- The Orchestration needs to have atomic transaction enabled. If the code uses Non serializable components or Enterprise Lib components, which are not serializable, we have to make it atomic.
- All calling Orchestrations needs to be transactional, since it is calling a transactional orchestration.
- Overheads of Orchestration / Persistence to database.