Qualcuno ha utilizzato correttamente Windows Workflow per un motore di regole / convalida di business?

11

Mi chiedevo se qualcuno ha usato con successo Windows Workflow Foundation per un motore BusinessRules / Validation, o se conosci qualche codice di esempio o articoli su questo.

Se lo hai già usato, cosa ne pensi? Com'è confrontato con altri sistemi BusinessRule / Validation?

Penso a regole come

if (A, B, and C) 
    AllowAccess();

O

if (Value between X and Y)
    return true;
    
posta Rachel 06.05.2011 - 19:32
fonte

2 risposte

5

Ho iniziato a costruire un motore utilizzando WWF WCF diversi mesi fa. Non so quanto sia complessa la tua regola base, ma la nostra era piuttosto grande. Quando hai il potenziale per qualcosa come 40.000 rami, il WWF non è una buona idea. In alternativa, ho finito per costruire un motore che utilizzava tabelle di eccezioni logiche in SQL. Le righe memorizzerebbero i valori di base, nonché le stringhe formattate per le formule che variavano tra le eccezioni. In combinazione con un linguaggio dinamico (io ho usato un motore IronPython embedded con una fascia e si potrebbe utilizzare un motore JScript incorporato), la logica potrebbe essere determinato ad un livello altamente astratto al volo. Sono così felice di aver seguito questa strada. Trascina logica sembra grande, ma gli uomini d'affari non sarà mai in grado di usarlo, nonostante la commercializzazione, e sarà solo rallentare uno sviluppatore giù IMHO, diventando rapidamente un nido di topi .

Aggiornamento: Se sei ancora interessato, qui è la guida di . Non è certamente espansivo, ma ha alcuni video decenti. Per quanto riguarda l'installazione, i nostri ingegneri di rete hanno fatto il setup per me (politica aziendale per manutenzione, sicurezza, ecc.), Ma presumibilmente era quasi identico all'impostazione di un servizio WCF di base. Fondamentalmente gettalo in una directory virtuale nella ISS. Poiché di solito è un processo a lunga esecuzione, prestare particolare attenzione alla gestione della memoria durante la scrittura del servizio. Non smaltire alcune risorse più e più volte per 6 mesi si sommerà davvero e il tuo server non sarà felice.

    
risposta data 06.05.2011 - 19:44
fonte
1

Devo concordare con ironcode. Abbiamo scritto un sistema in stile diagramma di flusso drag-and-drop un paio di anni prima che uscisse il nuovo Biztalk (abbastanza stranamente). L'idea era che i non programmatori potessero programmare e il sistema sarebbe facilmente mantenibile e modificabile.

Il risultato: hai ancora bisogno di "analisti di business" che avessero bisogno di essere altamente qualificati come un programmatore, ma nella nuova "lingua" del sistema WWF. Quindi non hai guadagnato molto lì. Il debugger non era neanche lontanamente buono come un vero sistema di sviluppo, quindi hai perso lì. Avevi anche bisogno dei programmatori per scrivere i moduli complessi che costituivano il nucleo dei dati e l'elaborazione della GUI. Anche la scalabilità si è esaurita molto rapidamente. Semplici regole di business erano facili da mettere insieme, ma una volta superata una dozzina si era in spaghetti.

Penso che abbia dei vantaggi, ma fondamentalmente staresti meglio usando un motore di scripting per legare moduli personalizzati.

Però è stato fantastico per i tipi di marketing, realizzati per una grande demo:)

    
risposta data 15.12.2011 - 00:58
fonte