Ho letto alcuni articoli e ho guardato molte lezioni/esercitazioni su YT su DI e IoC, ma non ho trovato alcun layout consigliato di cataloghi nella soluzione VS.Qual è la struttura di cartelle consigliata dei cataloghi nel progetto usando IoC
Sto parlando del progetto (un gioco per esempio) in cui si dispone di alcune classi/interfacce, logger, provider di database, servizi WCF, WPF livello di presentazione (che è in realtà diverse del progetto) ...
Is c'è qualche progetto di pattern, che mostra come dovrei organizzare il mio progetto, quindi il prossimo programmatore esperto non perderà tempo a capire cosa sta succedendo? Come stiamo parlando di "self commented code", sto parlando di "self commented project structure".
Ad esempio, dovrei inserire tutte le interfacce nel catalogo "Interfacce"? O dovrei (nel caso del logger) creare il catalogo "Logger" e mettere lì l'interfaccia, le classi, la classe con i metodi di estensione (tutti concentrati sulla registrazione). Codice focalizzato su Board, nel catalogo "Board". Catalogo separato per "Campo" ecc. Ecc.
In questo momento la struttura sembra così. Non sono sicuro di "Business" lì e Logger. Ho un'interfaccia in un catalogo diverso da altre classi di logger. Devo chiamare il fornitore di Log4Net? o adattatore? o decoratore? È solo una classe di logger che implementa l'interfaccia ILogger
. Ecco la schermata: link
Ecco il codice di esempio (non c'è CIO ancora, ma tutti si accorge ci saranno 3 interfacce non mappati molto semplice.):
public class Game
{
public IBoard Board { get; set; }
public Game(IBoard board)
{
Board = board;
}
}
public interface IBoard {}
public class Board : IBoard
{
public IField[,] Fields { get; set; }
public Board(IField field, int boardWidth, int boardHeight)
{
Fields = new IField[boardHeight, boardWidth];
Fields.Initialize();
}
}
public interface IField {}
public class Field : IField {}
public interface ILogger
{
void Log(LogEntry entry);
}
Strictly based based - usa layout che funziona per te/la tua squadra. Spesso il framework che si utilizza suggerisce un layout (ad esempio, ASP.Net MVC suggerisce cartelle di controller/modelli/viste), ma non esiste un vero e proprio standard d'oro (e probabilmente varierà anche tra diversi contenitori DI). –
Dai un'occhiata alla [cipolla] (https://rules.ssw.com.au/do-you-know-the-layers-of-the-onion-architecture) architettura – qujck