WCF è adatto per scrivere un'applicazione condivisa tra le applicazioni?

4

Ho sviluppato e distribuito poche applicazioni ASP.NET. A volte voglio impedire agli utenti di inserire o aggiornare un record quando:

  1. La manutenzione è in corso.
  2. Interrompi le operazioni a causa di ritardi nei pagamenti.

In una delle mie recenti applicazioni ho implementato questa funzione per controllare prima le operazioni del database per lo stato bloccato. Se una delle condizioni di cui sopra soddisfa, le operazioni del database come inserimento e aggiornamento non vengono eseguite.

Ora ho bisogno di questa funzionalità in tutte le vecchie applicazioni e nelle future applicazioni che costruisco. Voglio sapere se WCF è adatto in questo scenario perché voglio condividere metodi o un'applicazione di blocco indipendente tra varie altre applicazioni.

WCF è appropriato per questo tipo di scenario?

    
posta RPK 14.06.2012 - 18:31
fonte

3 risposte

8

Dovrei iniziare dicendo che WCF è la soluzione goto. Quello che hai menzionato sopra si adatta molto bene alla definizione SOA (Service Oriented Architecture) e WCF si comporta molto bene con SOA.

L'implementazione di un'unica applicazione di servizio di blocco, che può quindi essere integrata in tutti i componenti, sarebbe ideale perché:

  1. Quando aggiorni i metodi di blocco e di pagamento, lo fai solo in un posto. Quindi ti dà manutenibilità.
  2. Il codice viene implementato una sola volta, il che ti rende riusabile.
  3. Nell'app centrale è sempre possibile aggiungere nuovi servizi, con nuove logiche che possono essere accoppiate o disaccoppiate dal modello esistente, dai servizi esistenti. Quindi hai scalabilità.
  4. Ti dà anche freddezza, per tutti i motivi che ho menzionato sopra.

Se non altro, chiedi pure.

    
risposta data 17.06.2012 - 21:02
fonte
0

Puoi inserire un file sul tuo server web e proteggerlo inserendolo in una cartella sicura e renderlo modificabile solo dall'utente amministratore. In quel file è possibile specificare una stringa per indicare lo stato del sistema. L'accesso a questo file può essere eseguito in qualsiasi modo tu voglia. Il motivo per cui si sceglie un file è di poterlo accedere anche se il database è inattivo. Questa è una soluzione molto semplice che serve l'obiettivo che hai descritto.

Eidt: Inoltre, anziché un file separato, potresti utilizzare un elemento di configurazione sul server allo stesso scopo.

    
risposta data 17.06.2012 - 21:32
fonte
-3

Se si desidera una soluzione di blocco, un servizio Web non è necessariamente la strada da percorrere: l'overhead coinvolto è molto grande. Quindi, solo per verificare "posso fare alcune scritture ora" sono necessarie molte chiamate e una chiamata al servizio web è molto lenta (relativamente parlando).

Una soluzione più ottimizzata sarebbe mantenere le chiamate al database, ma spostare lo sql in una stored procedure che può anche controllare lo stato bloccato come parte della query. In alternativa, mantenere il controllo di blocco il più locale possibile, controllando se un file esiste è veloce (dato che il sistema operativo tende a mettere in cache tali file se vi si accede spesso) e facile, specialmente se si legge il codice delle applicazioni da file o scrivendo comunque ai registri.

    
risposta data 17.06.2012 - 23:20
fonte

Leggi altre domande sui tag