Metodo per rimuovere la logica dall'interfaccia utente

7

Nei miei giorni meno esperti ho aggiunto un sacco di logica aziendale nel codice dietro il mio .aspx. Ora lo sto rivisitando, mi piacerebbe rifattorizzare il pasticcio e sistemare tutto.

Come faccio a fare questo? Se devo spostare la mia logica, dove la metto? Ho una classe separata per ogni pagina?

    
posta billy.bob 29.03.2011 - 17:01
fonte

5 risposte

5

Passaggio 1. Scrivere i casi di test unitari per la logica aziendale. Le regole aziendali appartengono al modello, soprattutto, e devi rielaborare il modello. Alcune regole aziendali non sono realmente regole "aziendali" e passano sotto controllo e talvolta persino vista. Le persone spesso sopravvalutano ciò che fa parte dell'azienda e ciò che fa parte del processo aziendale attuale, come eseguito attraverso il software attuale.

Passaggio 2. Correzione del modello per disporre della logica aziendale corretta. Esegui i test. Assicurati che le cose funzionino davvero. Troverai spesso che devi rielaborare il tuo modello (ea volte i tuoi test) mentre lo risolvi.

Alcune regole saranno in due punti: i loro luoghi legacy e il modello. Va bene, temporaneamente.

Passaggio 3. Iniziare a prendere in giro la logica aziendale dai livelli di visualizzazione / presentazione / controllo. Questo sarà difficile, e ti farà rielaborare casi di test e modello. La rilavorazione è buona, è come impari.

Questo può diventare difficile se hai sepolto un gran numero di ipotesi nella presentazione.

    
risposta data 29.03.2011 - 17:20
fonte
2

Ci sono due scuole di pensiero sull'approccio migliore .

  • La maggior parte popolare è l'approccio MVC / MVP (Model-View-Controller / Presenter).
  • Altrettanto valido è un modello più robusto - AKA Domain Driven Development o Naked Objects.

Nel primo approccio, il tuo modello si prende cura delle interazioni del database e tu organizzi la tua logica nei controller. La variante più recente delle applicazioni Web MVC fornisce una classe Controller per un insieme di Azioni (o pagine) associate. In sostanza, la mappatura utilizza un metodo per azione / pagina, con una vista corrispondente. Questi framework di app Web (come ASP.NET MVC) favoriscono la convenzione rispetto alla configurazione e hanno un'organizzazione decente.

Nel secondo approccio, tutta la logica aziendale è codificata direttamente nel modello. Logica aziendale e tutto. Essenzialmente, il modello più robusto può essere riutilizzato in entrambi gli ambienti web e desktop. Richiede molta più disciplina e pensiero creativo per evitare di scrivere per un ambiente di destinazione.

    
risposta data 29.03.2011 - 17:13
fonte
2

Prova ad adattare il tuo codice a un'architettura più simile a MVC, in questo modo la logica di business finisce in un insieme separato di classi (ad esempio non il livello di presentazione).

I controller sono la parte più complessa di MVC ed è ciò che rende MVC così potente e flessibile.

    
risposta data 29.03.2011 - 17:07
fonte
1

La tua esperienza dovrebbe aiutarti ad apprezzare i vantaggi di ASP.NET MVC .

Tuttavia, se sei più interessato a refactoring della tua attuale applicazione Web Forms, potresti dare un'occhiata a MVP in Web Form ASP.NET .

    
risposta data 29.03.2011 - 17:05
fonte
0

Ci sono un paio di libri sul refactoring C # & VB.net di Wrox. Passano attraverso il processo di codice che inizia come hai descritto. Copre OOP abbastanza da cavarsela ma non è destinato a essere completo sull'argomento.

    
risposta data 29.03.2011 - 17:09
fonte

Leggi altre domande sui tag