Sono uno sviluppatore ASP.NET MVC che inizia appena con il mio primo grande progetto su rotaie, ma sono confuso da dove mettere la tua logica aziendale? su ASP.NET creo una libreria che contiene servizi (Domain driven design) che gestiscono la logica di business, ho sentito dire che rail utilizza un concetto di fat skin skinny controller ma ho alcuni progetti in ASP.NET che aggiungono tutta la logica al controller creerebbe un gran casino, c'è un altro modo?Dove entra in gioco la logica di business?
risposta
Vai al concetto di FatModels e SkinnyControllers. I tuoi modelli dovrebbero sapere come si comportano e cosa dovrebbero fare.
Quando i tuoi modelli diventano troppo grassi, estraili in moduli riutilizzabili e includili nel modulo.
- Example of taking a fat controller (with logic) and moving to a model
- Example of taking code from the views and moving into the model
Si può facilmente verificare il comportamento di modelli che utilizzano RSpec (o test/unit o shoulda). Quindi puoi verificare che l'applicazione si comporti correttamente usando Cucumber.
Ciao lettori futuri! Quanto sopra ha senso, ma piuttosto che continua ad ingrassare la tua modella, controlla http://blog.codeclimate.com/blog/2012/10/17/7-ways-to-decompose-fat-activerecord-models/ –
I trova https://github.com/orgsync/active_interaction molto promettente. –
È possibile inserire la business logic ovunque si desideri (anche nelle visualizzazioni! Anche se è una cattiva idea).
Direi se la logica è legata a un oggetto del mondo reale, quindi inserirla nel modello. Altrimenti, utilizzare il controller. Ma spetta a te decidere come farlo per la tua app. I modelli servono a modellare le cose e i controllori servono a controllare le cose.
"Business Logic" o qualcuno potrebbe chiamarlo "Dominio logico" non appartiene a nessuna parte vicino a Rails e/o al tuo progetto .NET MVC. Rails e MVC dovrebbero dipendere dal tuo dominio non viceversa. Consiglierei di leggere su Onion Architecture di Jeffery Palermo o di guardare "Architecture the Lost Years" di Robert Martin. (Penso che sia quel discorso comunque). Probabilmente ci sono più risorse di quelle, ma ti ringrazierai più tardi per aver trattato sia Rails che .NET MVC come i framework di terze parti che sono, e non la casa principale della tua applicazione.
ho visto il discorso e ho sentito questa idea espressa molte volte, ma non ho mai visto un esempio concreto o una dimostrazione di come ottenere ciò. come novizio, ha senso in linea di principio, ma non posso davvero concettualizzare come portarlo in pratica. hai un esempio di app per rotaie che segue questa pratica che potrei guardare, o un articolo con un esempio più concreto? –
penso che questo articolo del blog offre una buona panoramica di una strategia di incorporare Domain Driven Design con nel quadro rotaie: http://www.smashingboxes.com/domain-logic-in-rails/
TL; DR
refactoring del modelli binari classici in depositi, e utilizzare un livello facciata nei controller per interagire con il modello di dominio.
Sto lottando con questo un po 'di me stesso, e quanto sembra prevalere il modello Fat Controller, qualsiasi cosa "grassa" nel software sembra essere un odore, violando una singola responsabilità.
- 1. business class logica
- 2. Logica di business di Django Rest Framework
- 3. ENTRA/Dove CONCETTI
- 4. Dove posizionare la logica aziendale in Symfony2?
- 5. CakePHP - dove mettere la logica di servizio
- 6. dove posizionare la logica specifica delle risorse
- 7. Reindirizza la pagina mvc asp.net dalla classe logica business
- 8. ServiceStack, dove posizionare la logica aziendale?
- 9. Come semplificare la logica "IF" del business complicato?
- 10. Logica del gioco Libgdx in Render?
- 11. Dove entra un registratore in DDD?
- 12. Separazione logica di gioco e rendering
- 13. logica di business separazione da PHP Doctrine 2
- 14. Dove dovrebbe andare la logica di calcolo in un'app Rails?
- 15. Dove inserire la logica di reindirizzamento in Drupal?
- 16. dove mettere la logica di validazione? In servizio o deposito?
- 17. Dove posizionare la logica di menu in Laravel?
- 18. Implementare la logica di business in un app server con molla
- 19. Dove posizionare il ciclo di gioco principale nel gioco Android
- 20. Symfony2: l'approccio migliore per utilizzare la logica business (repository) nell'entità o controller
- 21. Ciclo di gioco con timer separato per il rendering e logica di gioco
- 22. Dove scrivere Database e Business logic in MVC?
- 23. Dove inserire la manipolazione dei dati e il codice di logica aziendale nell'applicazione ASP.NET MVC?
- 24. Dove convertire il modello di business per visualizzare il modello?
- 25. Dove inserisco la logica di codifica nella mia applicazione di Reazione
- 26. Dove posizionare la logica aziendale è il livello di modello di Symfony 2?
- 27. Dove va la logica aziendale in un metodo modello in Django Rest Framework?
- 28. Cosa sono i Business Objects e cos'è la Business Logic?
- 29. Il modo migliore per separare la logica di gioco dal rendering per un gioco frenetico per Android con OpenGL?
- 30. Dove dovrebbe essere posizionata la logica aziendale quando si utilizza Doctrine 2 e Zend Framework
cosa intendi per "business logic"? – sethvargo
puoi anche provare a creare moduli e inserirli nella tua directory lib – stephenmurdoch