Differnza Fra Librerie e Sottoprogetti

di il
7 risposte

Differnza Fra Librerie e Sottoprogetti

In una soluzione in genere una applicazione mvc... se voglio rendere il codice più pulito specie per grandi progetti è buona norma dividere codice in aree specializzate esempio Servizio database, ma qual ' è la differza fra inserire librerie o progetti?

7 Risposte

  • Re: Differnza Fra Librerie e Sottoprogetti

    La differenza e' abbastanza ""filosofica".

    Comunque puoi ragionare in questo modo:

    1) una "libreria" e' un insieme di funzionalita' che puoi usare PIU' VOLTE in progetti DIVERSI
    2) un ""sotto progetto" e' una PARTE del progetto che si occupa di implementare una specifica ""funzionalita"".
    Difficilmente un "sottoprogetto" puo' esseer ""riutilizzato"" in un'altro progetto.
  • Re: Differnza Fra Librerie e Sottoprogetti

    Provo a rispiegarmi forse non mi sono spiegato bene


    A volte fo confusione
    Creo una soluzione Sito
    Creo un progetto asp net core MVC e la chiamo web , e ci implemento le pagine web
    Poi Nella soluzione creo un progetto net core console (es progetto database) e ci implemento una classe che si occupa si letture su database

    Imposto progetto web come di avvio e principale, utilizzo poi il progetto database come dipendenza
    Come fosse una libreria il metodo funziona ma qualè è la differenza se invece avessi creato una libreria database
  • Re: Differnza Fra Librerie e Sottoprogetti

    Ciao

    La domanda è chiarissima, però la soluzione "migliore" è quella che va meglio nella tua realtà.

    Dal punto di vista dipendenze non vi è alcuna differenza: entrambe le soluzioni proposte generano una DLL di accesso al DB che deve poi essere referenziata nel progetto principale (web).

    Quello che cambia è la modalità di sviluppo, quindi devi vedere quale va meglio nella tua realtà.

    Di norma, nel caso da te specificato, ci si trova meglio ad avere una soluzione unica con tre progetti:
    - Frontend
    - Backend
    - Shared

    Il motivo è semplice: sono progetti molto legati fra loro, pertanto:
    - Se devi implementare qualcosa, spesso intervieni in tutti i livelli/progetti
    - Difficilmente uno dei progetti lo userai in altri software
    - Si usano 3 progetti diversi anzichè uno unico per questione di "pulizia". Se domani vuoi cambiare DB di riferimento, tocchi solo il backend. Se vuoi cambiare motore di visualizzazione, cambi solo il frontend


    Quando conviene fare una libreria esterna? Nel momento in cui ti accorgi che hai del codice che può essere riutilizzato e che NON è accoppiato al resto dell'applicativo.
    Ad esempio, se devi gestire l'audit della base dati e sviluppi qualcosa che funziona con Entity Framework, allora ti viene molto più comodo fare una soluzione esterna (libreria):
    - Audit e funzionalità dell'applicativo sono spesso cose distinte. Quindi possono benissimo vivere una senza l'altra
    - Molto probabilmente in un altro progetto che usa Entity Framework puoi voler gestire l'audit, quindi puoi riutilizzare la libreria


    Spero di aver risposto alla tua domanda
  • Re: Differnza Fra Librerie e Sottoprogetti

    Grandissimo ....
    grazie
  • Re: Differnza Fra Librerie e Sottoprogetti

    Creo un progetto asp net core MVC e la chiamo web , e ci implemento le pagine web
    Poi Nella soluzione creo un progetto net core console (es progetto database) e ci implemento una classe che si occupa si letture su database
    Però in questo caso io non creerei un altro progetto nella soluzione ma inserirei semplicemente le classi di gestione del DB nel progetto ASP Net Core MVC, magari le metterei in una cartella apposita per tenere il progetto ordinato.
    Fare un altro progetto mi sembra una complicazione inutile.
  • Re: Differnza Fra Librerie e Sottoprogetti

    Lucios ha scritto:


    Fare un altro progetto mi sembra una complicazione inutile.
    Dipende. Magari la logica di accesso ai dati può servire in un servizio (es. per importazione) oltreché nell'applicazione Web: in questi casi, la creazione di un progetto separato per questo tipo di layer software è praticamente imprescindibile, ed è pertanto consigliabile prevederlo fin da subito (non si sa mai quale sarà l'evoluzione del prodotto), senza contare che la "complicazione" di cui parliamo è banalmente la creazione di un progetto Class Library e l'aggiunta del suo riferimento all'interno del progetto Web... sono due clic.

    Ciao!
  • Re: Differnza Fra Librerie e Sottoprogetti

    Dipende. Magari la logica di accesso ai dati può servire in un servizio (es. per importazione) oltreché nell'applicazione Web
    Beh, sicuramente occorre fare un'analisi caso per caso. Però, nell'esempio proposto, l'accesso ad un DB, sia usando ADO che Entity Framework Core, è così semplice all'interno di ASP Net Core MVC che non so se ne vale la pena.
    senza contare che la "complicazione" di cui parliamo è banalmente la creazione di un progetto Class Library
    Io ho dovuto fare così in un caso in cui ho dovuto utilizzare delle librerie di terze parti che venivano mal digerite all'interno dell'ASP.
    Comunque hai ragione, la strada giusta va scelta a livello progettuale e non esiste una soluzione univoca.
Devi accedere o registrarti per scrivere nel forum
7 risposte