Fatti:
Fatti:
A. A.a Dopo un periodo di due mesi di accertamento delle capacità professionali presso la medesima società e dopo che già in precedenza le parti avevano avuto modo di collaborare, B._ è stato posto dall'AI al beneficio, dal 1° luglio 1999 al 30 giugno 2002, di un provvedimento d'integrazione per una riformazione quale impiegato di commercio presso la D._ SA - società specializzata nella fabbricazione, vendita e revisione di bruciatori ad olio - percependo indennità giornaliere di fr. 159.-.
La riformazione essendo terminata prima, D._ SA e B._ - società in nome collettivo (SNC) iscritta a registro di commercio dal 1995, avente per scopo la gestione di un'agenzia di investigazioni, di consulenza in genere, segnatamente nel campo assicurativo, tecnico, commerciale, custodia e manutenzione stabili, e di cui B._ è socio, unitamente all'attuale moglie V._, con diritto di firma collettiva a due - in data 23 ottobre 2001 hanno sottoscritto, con effetto dal 1° novembre successivo, un contratto di "mandato" avente per oggetto la gestione del "servizio contatori e conteggi", del "servizio immobiliare", del "servizio giuridico (sinistri ed incassi in esecuzione)" come pure delle "risorse umane (parte amministrativa)". L'accordo, della durata di un anno con rinnovo tacito in mancanza di una disdetta con preavviso di tre mesi, fissava l'onorario in fr. 6'000.- mensili, per un massimo di 150 ore, a cui si aggiungevano fr. 1'500.- a titolo di acconto sulle provvigioni e fr. 870.- a titolo forfettario di rimborso spese. Il tutto per complessivi fr. 9'006.15 mensili, IVA inclusa, che la SNC fatturava a D._ SA.
A.b A seguito di un controllo del conteggio salari eseguito il 3 aprile 2003, la Cassa di compensazione del Cantone Ticino ha accertato che negli anni sottoposti a verifica (1999-2002) la D._ SA aveva corrisposto a B._ retribuzioni per complessivi fr. 155'077.- (fr 146'987.- per salario e fr. 8'090.- per spese non ammesse), sulle quali non erano stati prelevati i contributi AVS/AI/IPG/AD e AF. Ritenendo queste retribuzioni provento da attività lucrativa dipendente, la Cassa, con decisione di tassazione d'ufficio 3 luglio 2003, ha fissato l'importo a carico di D._ SA in fr. 24'321.25 e con ulteriore decisione, di stessa data, ha preteso da B._ l'importo di fr. 10'157.55. L'8 agosto 2003 la Cassa ha confermato i propri provvedimenti e rigettato le opposizioni degli interessati.
A.c Per pronuncia dell'8 novembre 2004 il Tribunale delle assicurazioni del Cantone Ticino ha respinto i gravami di questi ultimi osservando che le retribuzioni versate andavano considerate come salario determinante proveniente da un'attività dipendente, sostanzialmente perché l'interessato aveva percepito regolarmente alla fine di ogni mese una paga, era inserito nell'organigramma della società e, infine, perché aveva svolto l'apprendistato formativo presso la medesima società.
A.d Adito su ricorso degli interessati, il Tribunale federale delle assicurazioni, nella misura in cui si riferiva ai contributi di diritto federale, ha annullato il giudizio cantonale per motivi di ordine formale e ha rinviato gli atti all'istanza precedente affinché rimediasse ad alcune carenze istruttorie rilevate e rendesse una nuova pronuncia (sentenza del 20 settembre 2005 [H 231/04 e H 233/04]).
A.d Adito su ricorso degli interessati, il Tribunale federale delle assicurazioni, nella misura in cui si riferiva ai contributi di diritto federale, ha annullato il giudizio cantonale per motivi di ordine formale e ha rinviato gli atti all'istanza precedente affinché rimediasse ad alcune carenze istruttorie rilevate e rendesse una nuova pronuncia (sentenza del 20 settembre 2005 [H 231/04 e H 233/04]).
B. Completata l'istruttoria, il Tribunale cantonale, statuendo per giudice unico, ha sostanzialmente confermato il suo precedente giudizio e ha respinto i ricorsi (pronuncia del 18 settembre 2006). In definitiva, la Corte cantonale ha ritenuto prevalenti le caratteristiche che deponevano in favore della natura salariata dell'attività in esame.
B. Completata l'istruttoria, il Tribunale cantonale, statuendo per giudice unico, ha sostanzialmente confermato il suo precedente giudizio e ha respinto i ricorsi (pronuncia del 18 settembre 2006). In definitiva, la Corte cantonale ha ritenuto prevalenti le caratteristiche che deponevano in favore della natura salariata dell'attività in esame.
C. Con separati atti, B._ e D._ SA (la cui ragione sociale è stata nel frattempo, dal 21 dicembre 2006, mutata in M._ SA), rappresentati, il primo, dall'avv. Andrea Bersani e, la seconda, dall'avv. Rossano Guggiari, hanno interposto ricorso di diritto amministrativo al Tribunale federale delle assicurazioni (dal 1° gennaio 2007: Tribunale federale), al quale chiedono l'annullamento del giudizio cantonale e delle decisioni su opposizione in lite. Dei motivi si dirà, per quanto occorra, nei considerandi.
La Cassa propone la reiezione dei gravami, mentre l'Ufficio federale delle assicurazioni sociali ha rinunciato a determinarsi.
La Cassa propone la reiezione dei gravami, mentre l'Ufficio federale delle assicurazioni sociali ha rinunciato a determinarsi.
D. Con scritto del 25 aprile 2007, il patrocinatore di B._ ha prodotto copia della decisione su opposizione 13 aprile 2007 della Cassa concernente l'imposizione contributiva, a titolo di indipendente, di V._ sull'utile netto della SNC. Facendo notare come gli onorari per le prestazioni della SNC soggiacciano già ad un'imposizione, l'avv. Bersani osserva che il mantenimento della pronuncia cantonale darebbe luogo a una inammissibile doppia imposizione per la stessa prestazione. La Cassa non si è determinata al riguardo.

Diritto:
Diritto:
1. La legge sul Tribunale federale del 17 giugno 2005 (LTF; RS 173.110) è entrata in vigore il 1° gennaio 2007 (RU 2006 1205, 1241). Poiché la decisione impugnata è stata pronunciata precedentemente a questa data, la procedura resta disciplinata dall'OG (<ref-law>; <ref-ruling> consid. 1.2 pag. 395).
1. La legge sul Tribunale federale del 17 giugno 2005 (LTF; RS 173.110) è entrata in vigore il 1° gennaio 2007 (RU 2006 1205, 1241). Poiché la decisione impugnata è stata pronunciata precedentemente a questa data, la procedura resta disciplinata dall'OG (<ref-law>; <ref-ruling> consid. 1.2 pag. 395).
2. Le impugnative inoltrate da B._ e da D._ SA concernono fatti di ugual natura e pongono gli stessi temi giuridici, per cui si giustifica la congiunzione delle cause e la resa di una sola sentenza (<ref-ruling> consid. 1 pag. 126 con riferimenti; Poudret, Commentaire de la loi fédérale d'organisation judiciaire, vol. I, pag. 343 seg.).
2. Le impugnative inoltrate da B._ e da D._ SA concernono fatti di ugual natura e pongono gli stessi temi giuridici, per cui si giustifica la congiunzione delle cause e la resa di una sola sentenza (<ref-ruling> consid. 1 pag. 126 con riferimenti; Poudret, Commentaire de la loi fédérale d'organisation judiciaire, vol. I, pag. 343 seg.).
3. La presente vertenza concerne la determinazione e la pretesa di contributi paritetici e non già l'assegnazione o il rifiuto di prestazioni assicurative. Questo Tribunale deve pertanto limitarsi ad esaminare se il giudizio di primo grado abbia violato il diritto federale, compreso l'eccesso o l'abuso del potere d'apprezzamento, oppure se l'accertamento dei fatti sia manifestamente inesatto, incompleto o avvenuto in violazione di norme essenziali di procedura (art. 132 OG in relazione con gli art. 104 lett. a e b e 105 cpv. 2 OG). D'altra parte, essendo controverse contribuzioni pubbliche, questa Corte non è vincolata dai motivi sollevati dalle parti e può scostarsi dalle conclusioni invocate a loro vantaggio o pregiudizio (art. 114 cpv. 1 OG).
3. La presente vertenza concerne la determinazione e la pretesa di contributi paritetici e non già l'assegnazione o il rifiuto di prestazioni assicurative. Questo Tribunale deve pertanto limitarsi ad esaminare se il giudizio di primo grado abbia violato il diritto federale, compreso l'eccesso o l'abuso del potere d'apprezzamento, oppure se l'accertamento dei fatti sia manifestamente inesatto, incompleto o avvenuto in violazione di norme essenziali di procedura (art. 132 OG in relazione con gli art. 104 lett. a e b e 105 cpv. 2 OG). D'altra parte, essendo controverse contribuzioni pubbliche, questa Corte non è vincolata dai motivi sollevati dalle parti e può scostarsi dalle conclusioni invocate a loro vantaggio o pregiudizio (art. 114 cpv. 1 OG).
4. Nei considerandi dell'impugnata pronuncia, cui si rinvia, l'autorità giudiziaria cantonale ha già esposto le disposizioni e i principi applicabili in materia, rammentando in particolare le regole da seguire per delimitare un'attività lucrativa dipendente da una indipendente (art. 5 cpv. 2 e art. 9 cpv. 1 LAVS; <ref-ruling> consid. 1 pag. 162; <ref-ruling> consid. 3a pag. 171 con riferimenti; cfr. <ref-ruling> segg.). Lo stesso dicasi per le considerazioni dell'istanza precedente in merito all'applicabilità (parziale, limitatamente agli aspetti procedurali) della LPGA nel caso di specie (sul fatto che la LPGA non ha comunque apportato modifiche degne di rilievo nella materia in esame v. Ueli Kieser, ATSG-Kommentar, Zurigo/Basilea/Ginevra 2003, no. 5 all'art. 10, no. 4 all'art. 11, no. 3 e 6 all'<ref-law>). A tale esposizione può essere fatto riferimento e prestata adesione non senza tuttavia ribadire che di principio si deve ammettere l'esistenza di un'attività dipendente secondo l'<ref-law> quando una delle parti, rispetto all'altra, è subordinata per quanto concerne l'impiego del tempo o l'organizzazione del lavoro, e non sopporta uno specifico rischio imprenditoriale (<ref-ruling> consid. 1 pag. 163; Kieser, Alters- und Hinterlassenenversicherung, in Schweizerisches Bundesverwaltungsrecht [SBVR], Soziale Sicherheit, 2a ed., pag. 1235, n. 98). Un'attività indipendente è invece caratterizzata da investimenti rilevanti e dall'utilizzo di uffici e personale propri. Lo specifico rischio aziendale consiste nel fatto che, indipendentemente dal successo dell'attività, insorgono delle spese che devono essere sostenute dall'assicurato stesso (DTF <ref-ruling> consid. 3c pag. 172).
4. Nei considerandi dell'impugnata pronuncia, cui si rinvia, l'autorità giudiziaria cantonale ha già esposto le disposizioni e i principi applicabili in materia, rammentando in particolare le regole da seguire per delimitare un'attività lucrativa dipendente da una indipendente (art. 5 cpv. 2 e art. 9 cpv. 1 LAVS; <ref-ruling> consid. 1 pag. 162; <ref-ruling> consid. 3a pag. 171 con riferimenti; cfr. <ref-ruling> segg.). Lo stesso dicasi per le considerazioni dell'istanza precedente in merito all'applicabilità (parziale, limitatamente agli aspetti procedurali) della LPGA nel caso di specie (sul fatto che la LPGA non ha comunque apportato modifiche degne di rilievo nella materia in esame v. Ueli Kieser, ATSG-Kommentar, Zurigo/Basilea/Ginevra 2003, no. 5 all'art. 10, no. 4 all'art. 11, no. 3 e 6 all'<ref-law>). A tale esposizione può essere fatto riferimento e prestata adesione non senza tuttavia ribadire che di principio si deve ammettere l'esistenza di un'attività dipendente secondo l'<ref-law> quando una delle parti, rispetto all'altra, è subordinata per quanto concerne l'impiego del tempo o l'organizzazione del lavoro, e non sopporta uno specifico rischio imprenditoriale (<ref-ruling> consid. 1 pag. 163; Kieser, Alters- und Hinterlassenenversicherung, in Schweizerisches Bundesverwaltungsrecht [SBVR], Soziale Sicherheit, 2a ed., pag. 1235, n. 98). Un'attività indipendente è invece caratterizzata da investimenti rilevanti e dall'utilizzo di uffici e personale propri. Lo specifico rischio aziendale consiste nel fatto che, indipendentemente dal successo dell'attività, insorgono delle spese che devono essere sostenute dall'assicurato stesso (DTF <ref-ruling> consid. 3c pag. 172).
5. B._ fa valere delle censure di ordine formale che conviene esaminare preliminarmente.
5.1 Egli chiede innanzitutto di verificare se la vertenza si prestava effettivamente a una pronuncia a giudice unico.
Pur potendo dare atto al ricorrente che la fattispecie in esame costituisce un caso limite, la scelta del Tribunale cantonale può ritenersi ancora rientrare nel suo margine di apprezzamento sottratto al potere d'intervento da parte del Tribunale federale. Già è stato detto in passato, con riferimento all'applicabile procedura cantonale ticinese (art. 2 cpv. 1 della legge di procedura per le cause davanti al Tribunale cantonale delle assicurazioni del 6 aprile 1961; RL/TI 3.4.1.1), che i membri del Tribunale cantonale delle assicurazioni possono decidere nella composizione di un giudice unico le cause che non pongono questioni di principio o che non sono di rilevante importanza. Sono state considerate tali le vertenze nelle quali il tema giuridico è già risolto da consolidata giurisprudenza federale, quelle che non presentano particolare difficoltà nell'apprezzamento delle prove o quelle nelle quali il valore di causa è estremamente ridotto (RDAT 2002 I n. 11 pag. 190 consid. 1c [U 347/98]). Orbene, il fatto che la Corte cantonale abbia assimilato la presente causa a queste vertenze per il motivo che non porrebbe questioni giuridiche di principio né presenterebbe particolari difficoltà nell'apprezzamento delle prove è difendibile.
5.2 Manifestamente infondata risulta quindi la censura con la quale l'insorgente rimprovera al primo giudice una violazione del suo diritto di essere sentito per non averlo quest'ultimo convocato per una sua (nuova) audizione e non avergli assegnato un termine per munirsi di un nuovo patrocinatore dopo che quello precedente, poco prima dell'udienza prevista per il 26 maggio, alla quale B._ aveva comunicato di non potere partecipare, aveva rinunciato al mandato. È sufficiente a questo proposito il rilievo che, dopo avere già in un primo tempo il giudice cantonale aderito a una prima richiesta di rinvio e avere spostato, il 13 febbraio 2006, la data dell'udienza al 26 maggio successivo facendo presente che non avrebbe concesso una nuova dilazione e che la chiusura, per vacanza, di istituti scolastici, che aveva determinato anche la prima richiesta, non costituiva normalmente un motivo di giustificazione, B._ non poteva seriamente pretendere di ottenere un nuovo rinvio dell'udienza per il solo fatto che, in data 21 aprile 2006, avrebbe appreso che la scuola avrebbe fatto il ponte dell'Ascensione (giovedì 25 maggio) e che in questo modo egli sarebbe stato impossibilitato a presenziare all'udienza (del 26 maggio 2006) in quanto avrebbe già "previsto da tempo in caso di ponte" il periodo di vacanza. Quest'atteggiamento si qualifica da solo ed è giustamente assimilabile, come ha rilevato il giudice cantonale, a una rinuncia perlomeno implicita al suo diritto di audizione. Per il resto, il giudice cantonale ha pertinentemente osservato che il ricorrente ha comunque avuto la possibilità di prendere atto dei verbali relativi alle audizioni delle altre persone interrogate e di fare altrimenti valere la sua posizione (v. <ref-ruling> consid. 4b pag. 126). Con riferimento alla rinuncia al mandato del precedente patrocinatore, basta per il resto osservare che l'interessato aveva almeno tre settimane di tempo per eventualmente reperire, ove lo avesse ritenuto necessario, un nuovo legale che lo rappresentasse in procedura. Malvenuto è di conseguenza il ricorrente se, dopo peraltro nemmeno avere presenziato e giustificato la sua assenza alle audizioni successive del 14 luglio 2006, rimprovera ora al giudice cantonale la violazione dei suoi diritti procedurali.
5.2 Manifestamente infondata risulta quindi la censura con la quale l'insorgente rimprovera al primo giudice una violazione del suo diritto di essere sentito per non averlo quest'ultimo convocato per una sua (nuova) audizione e non avergli assegnato un termine per munirsi di un nuovo patrocinatore dopo che quello precedente, poco prima dell'udienza prevista per il 26 maggio, alla quale B._ aveva comunicato di non potere partecipare, aveva rinunciato al mandato. È sufficiente a questo proposito il rilievo che, dopo avere già in un primo tempo il giudice cantonale aderito a una prima richiesta di rinvio e avere spostato, il 13 febbraio 2006, la data dell'udienza al 26 maggio successivo facendo presente che non avrebbe concesso una nuova dilazione e che la chiusura, per vacanza, di istituti scolastici, che aveva determinato anche la prima richiesta, non costituiva normalmente un motivo di giustificazione, B._ non poteva seriamente pretendere di ottenere un nuovo rinvio dell'udienza per il solo fatto che, in data 21 aprile 2006, avrebbe appreso che la scuola avrebbe fatto il ponte dell'Ascensione (giovedì 25 maggio) e che in questo modo egli sarebbe stato impossibilitato a presenziare all'udienza (del 26 maggio 2006) in quanto avrebbe già "previsto da tempo in caso di ponte" il periodo di vacanza. Quest'atteggiamento si qualifica da solo ed è giustamente assimilabile, come ha rilevato il giudice cantonale, a una rinuncia perlomeno implicita al suo diritto di audizione. Per il resto, il giudice cantonale ha pertinentemente osservato che il ricorrente ha comunque avuto la possibilità di prendere atto dei verbali relativi alle audizioni delle altre persone interrogate e di fare altrimenti valere la sua posizione (v. <ref-ruling> consid. 4b pag. 126). Con riferimento alla rinuncia al mandato del precedente patrocinatore, basta per il resto osservare che l'interessato aveva almeno tre settimane di tempo per eventualmente reperire, ove lo avesse ritenuto necessario, un nuovo legale che lo rappresentasse in procedura. Malvenuto è di conseguenza il ricorrente se, dopo peraltro nemmeno avere presenziato e giustificato la sua assenza alle audizioni successive del 14 luglio 2006, rimprovera ora al giudice cantonale la violazione dei suoi diritti procedurali.
6. 6.1 Nel merito, oltre a contestare l'accertamento dei fatti e l'apprezzamento delle prove da parte della Corte cantonale, i ricorrenti ravvisano una violazione del diritto federale per avere il primo giudice ingiustamente, a loro avviso, qualificato di natura dipendente l'attività svolta, nel periodo in esame, da B._ per D._ SA.
6.2 Il primo giudice, ritenuta la sovrapposizione totale d'identità tra la persona fisica (B._) e la SNC, ha accertato che il ricorrente essenzialmente non svolgeva le sue attività per conto della D._ SA presso gli uffici della SNC, bensì sul territorio e presso la SA. Ha pure rilevato che, sempre per questa attività, B._ disponeva di adeguate strutture all'interno della SA che facevano passare in secondo piano la presenza di altri fattori, quali l'iscrizione a registro di commercio, sin dal 1995, della SNC, la locazione, a nome di quest'ultima, di un ufficio di 12 mq a B._ (per una pigione di fr. 200.- mensili), l'acquisto in leasing di una vettura nel 2001, il possesso di una carta di credito per la benzina e l'esistenza, sempre a nome della SNC, di un allacciamento telefonico fisso e mobile. Sulla scorta delle risultanze istruttorie, il giudice cantonale ha stabilito che l'esistenza di strutture - comunque limitate - proprie alla SNC era utile e proporzionata allo svolgimento, solo parziale, di mandati indipendenti per altra clientela (una cinquantina), mentre non modificava il rapporto di manifesta dipendenza di B._ nei confronti di D._ SA, rafforzata dal fatto che quasi la metà del fatturato della SNC derivava dalle prestazioni fornite in favore della società ricorrente. Con riferimento all'attività svolta per quest'ultima, ha precisato che B._, inizialmente, durante il periodo di riformazione, eseguiva le sue incombenze in un ufficio presso la sede di D._ SA, mentre in seguito, quando non era in missione esterna ad eseguire le letture dei contatori presso i clienti di D._ SA, faceva capo per le incombenze amministrative agli uffici di altri collaboratori assenti. Anche e soprattutto alla luce del contratto di gestione, l'autorità giudiziaria cantonale ha evidenziato che B._ non si è in realtà assunto, con riferimento all'attività svolta per D._ SA, alcun rischio economico e d'incasso nella misura in cui la società ricorrente gli versava mensilmente l'importo pattuito sia che le ore svolte fossero le 150 massime sia che fossero di meno. Le fatture emesse venivano infatti sempre onorate entro un termine ragionevole di 10-30 giorni. In tali circostanze, a fronte di una chiara dipendenza temporale ed economica del ricorrente, della sua presenza negli uffici di D._ SA, dell'assenza di un rischio d'incasso e dell'assenza di sostanziali investimenti per l'attività specifica in esame, gli altri fattori, e segnatamente l'indipendenza nell'organizzazione della propria attività, nell'orario e nell'esecuzione del lavoro a favore della società ricorrente, come pure l'assenza di un divieto di concorrenza nei confronti di D._ SA, sono stati fatti passare in secondo piano, non da ultimo in ragione anche del ruolo rilevante assunto dal ricorrente in seno alla SA. Quest'ultimo figurava infatti nell'organigramma della D._ SA gerarchicamente superiore ai dipendenti M._ e C._ ed era da essi considerato come persona di riferimento per ogni problema, facile o difficile, relativo ai contatori, alle fatturazioni o anche a questioni assicurative. A ciò si aggiunge che B._ si è occupato della formazione e in parte dell'assunzione del personale di D._ SA, assumendosi responsabilità di rilievo.
6.3 Per quanto i fatti accertati e l'apprezzamento delle prove da parte del primo giudice possano apparire criticabili - segnatamente riguardo al ricorso di B._ agli uffici e alle strutture di D._ SA, relativizzati dai testi A._, C._ e M._ -, essi non sono manifestamente inesatti o incompleti o avvenuti in violazione di norme essenziali di procedura e vincolano di conseguenza questa Corte (v. consid. 3).
6.4 Resta pertanto da verificare se la conclusione giuridica tratta dai fatti così accertati sia lesiva del diritto federale.
6.4.1 Giustamente, l'autorità giudiziaria cantonale ha ricordato che se un assicurato, come in concreto, svolge contemporaneamente diverse attività, occorre esaminare singolarmente ogni reddito alfine di stabilire se deriva da attività dipendente o indipendente, anche nell'ipotesi in cui le attività sono state svolte per la medesima società (<ref-ruling> consid. 3b con riferimenti). In tali circostanze va relativizzato il fatto, peraltro non contestato dalla pronuncia impugnata, per cui il ricorrente ha agito in questo periodo anche per altra clientela, sebbene in qualità di indipendente. Resta infatti da considerare l'ampiezza dell'impegno temporale assunto dalla SNC e di conseguenza, in assenza di personale, dal ricorrente stesso, che era obbligato a tenersi pronto e a fornire le sue prestazioni in favore di D._ SA per un massimo di 150 ore settimanali, con possibilità di delega a terze persone tutt'al più per l'attività di lettura dei contatori di calore. Orbene, il fatto che su tali basi il giudizio impugnato abbia concluso per una dipendenza (anche) di tipo temporale non è censurabile. Né modifica l'esito di questo convincimento il fatto che in precedenza, prima di incaricare la SNC, la società ricorrente avrebbe provveduto a delegare - non si sa però esattamente in quale misura e in quali termini - a ditte esterne l'esecuzione di determinati lavori.
6.4.2 Condivisibile è inoltre la valutazione della Corte cantonale che ha negato, per l'attività in esame, l'assunzione, da parte del ricorrente, dello specifico rischio imprenditoriale. A prescindere dal fatto che la riscossione regolare - nei termini concordati e indipendentemente dall'orario effettivamente prestato - della retribuzione prevista dal contratto di gestione del 23 ottobre 2001 poteva comprensibilmente indurre il primo giudice ad assimilare l'interessato a un lavoratore dipendente che riceve sempre lo stesso salario, non va dimenticato che, oltre all'"onorario" base, l'insorgente riceveva pure l'importo forfettario non indifferente di fr. 870.- mensili a copertura delle spese d'auto, di cellulare ed altre piccole spese (caffé, aperitivi con clienti, parcheggi e parchimetri), che non dovevano pertanto essere sostenute dall'interessato. Anche in considerazione di questo fatto, oltre che per gli accertamenti, opinabili ma comunque non manifestamente errati, in relazione all'utilizzo, quantomeno parziale, delle strutture della D._ SA, coerentemente il giudice cantonale poteva escludere l'esistenza, tipica per un'attività indipendente, di investimenti rilevanti per l'attività in esame. Quanto all'assenza di personale proprio, durante il periodo in esame, per fare fronte agli impegni assunti, già è stato detto (v. DTF <ref-ruling> consid. 3c pag. 172 e i riferimenti).
6.4.3 In tali condizioni, la conclusione del primo giudice, che ha ritenuto prevalenti gli aspetti di un'attività dipendente rispetto a quelli di natura indipendente, può essere in definitiva confermata. Anche perché, per giurisprudenza, nel caso di una persona assicurata che, come in concreto, continua ad essere attiva in maniera significativa per il precedente datore di lavoro - qualifica che può attagliarsi in concreto, per il periodo di riformazione, alla società ricorrente -, vanno poste esigenze più severe per poter riconoscere con riferimento alla specifica attività lo statuto di indipendente. In questa evenienza, infatti, i criteri che parlano in favore di un'attività indipendente devono chiaramente prevalere su quelli che depongono per un'attività lucrativa dipendente (v. sentenza del Tribunale federale delle assicurazioni H 83/04 del 23 giugno 2005, consid. 3.2 con riferimenti). Ciò che però non si avvera per l'attività in esame.
6.5 Quanto precede dev'essere fatto valere per il periodo 1° novembre 2001 - 31 dicembre 2002, ossia per il periodo litigioso successivo all'entrata in vigore del contratto di gestione del 23 ottobre 2001. Per contro, tenuto anche conto dello scritto 11 novembre 2003 della Cassa all'indirizzo del Tribunale cantonale, con cui l'amministrazione, prendendo posizione sulle osservazioni del precedente patrocinatore di B._, aveva osservato che il ricorrente andava considerato salariato di D._ SA a partire dalla data di sottoscrizione del contratto di gestione (anche se già nei mesi precedenti, durante la riqualifica professionale, si potevano notare delle fatturazioni di fr. 2'000/2'100.- mensili, di per sé pure da ritenersi salario determinante) e che si potevano invece "stralciare [...] le riprese effettuate dalla Cassa per l'anno 1999 e 2000", non si impone un esame dettagliato per il periodo precedente (1° gennaio 1999 - 31 ottobre 2001). Visti anche gli atti all'incarto, questa Corte non ha serio motivo per non circoscrivere al periodo successivo all'entrata in vigore del contratto di gestione l'oggetto della ripresa (cfr. pure <ref-ruling> consid. 4b pag. 53). Nulla mutano a questo proposito le conclusioni espresse dalla Cassa in sede federale. In questa misura i ricorsi sono accolti.
6.6 Per quanto concerne infine l'eccezione di doppia imposizione dovuta al fatto che le rimunerazioni per le prestazioni fornite da B._ in favore di D._ SA già soggiacerebbero all'imposizione contributiva sotto forma di assoggettamento dei soci sull'utile netto della SNC, va da sé che la Cassa dovrà rivedere i suoi conteggi ed evitare che le rimunerazioni per la medesima attività e per il medesimo periodo vengano imposte doppiamente (v. sentenza del Tribunale federale delle assicurazioni H 77/04 del 19 giugno 2005, consid. 5.2).
6.6 Per quanto concerne infine l'eccezione di doppia imposizione dovuta al fatto che le rimunerazioni per le prestazioni fornite da B._ in favore di D._ SA già soggiacerebbero all'imposizione contributiva sotto forma di assoggettamento dei soci sull'utile netto della SNC, va da sé che la Cassa dovrà rivedere i suoi conteggi ed evitare che le rimunerazioni per la medesima attività e per il medesimo periodo vengano imposte doppiamente (v. sentenza del Tribunale federale delle assicurazioni H 77/04 del 19 giugno 2005, consid. 5.2).
7. Stante quanto precede, dovendo parzialmente accogliere i ricorsi e annullare di conseguenza la pronuncia impugnata come pure le decisioni su opposizione amministrative con riferimento alla ripresa per le rimunerazioni versate da D._ SA in favore della SNC durante il periodo 1999 - 31 ottobre 2001 (data dopo la quale ha iniziato a esplicare i propri effetti il contratto di gestione del 23 ottobre 2001), si giustifica il rinvio degli atti all'amministrazione affinché proceda al nuovo conteggio dei salari e dei contributi da riprendere per il periodo successivo. Allo stesso modo, la Cassa dovrà pure nuovamente stabilire l'importo della ripresa per le spese non ammesse durante questo periodo.
7. Stante quanto precede, dovendo parzialmente accogliere i ricorsi e annullare di conseguenza la pronuncia impugnata come pure le decisioni su opposizione amministrative con riferimento alla ripresa per le rimunerazioni versate da D._ SA in favore della SNC durante il periodo 1999 - 31 ottobre 2001 (data dopo la quale ha iniziato a esplicare i propri effetti il contratto di gestione del 23 ottobre 2001), si giustifica il rinvio degli atti all'amministrazione affinché proceda al nuovo conteggio dei salari e dei contributi da riprendere per il periodo successivo. Allo stesso modo, la Cassa dovrà pure nuovamente stabilire l'importo della ripresa per le spese non ammesse durante questo periodo.
8. La procedura è onerosa (art. 134 OG a contrario). Le spese processuali, che seguono la soccombenza, devono essere poste in parte a carico dei ricorrenti e in parte a carico della Cassa resistente (art. 135 in relazione con l'art. 156 cpv. 1 OG). Parzialmente vincenti in lite, i ricorrenti, rappresentati dai rispettivi legali, hanno diritto a ripetibili ridotte di sede federale (art. 159 cpv. 1 OG).

Per questi motivi, il Tribunale federale pronuncia:
Per questi motivi, il Tribunale federale pronuncia:
1. Le cause H 180/06 e H 183/06 sono congiunte.
1. Le cause H 180/06 e H 183/06 sono congiunte.
2. I ricorsi di diritto amministrativo sono parzialmente accolti. Il giudizio del Tribunale delle assicurazioni del Cantone Ticino del 18 settembre 2006 e le decisioni su opposizione della Cassa di compensazione del Cantone Ticino dell'8 agosto 2003 sono annullati. La causa è rinviata alla Cassa di compensazione del Cantone Ticino affinché, conformemente ai considerandi, stabilisca nuovamente i contributi di diritto federale da riprendere sui salari non notificati e sulle spese non ammesse per l'attività lavorativa fornita da B._ durante il periodo 1° novembre 2001 - 31 dicembre 2002. Per il resto, il ricorso di diritto amministrativo è respinto.
2. I ricorsi di diritto amministrativo sono parzialmente accolti. Il giudizio del Tribunale delle assicurazioni del Cantone Ticino del 18 settembre 2006 e le decisioni su opposizione della Cassa di compensazione del Cantone Ticino dell'8 agosto 2003 sono annullati. La causa è rinviata alla Cassa di compensazione del Cantone Ticino affinché, conformemente ai considerandi, stabilisca nuovamente i contributi di diritto federale da riprendere sui salari non notificati e sulle spese non ammesse per l'attività lavorativa fornita da B._ durante il periodo 1° novembre 2001 - 31 dicembre 2002. Per il resto, il ricorso di diritto amministrativo è respinto.
3. Le spese giudiziarie, di fr. 3'600.-, sono poste a carico dei ricorrenti nella misura di fr. 700.- ciascuno e dell'opponente nella misura di fr. 2'200.-.
3. Le spese giudiziarie, di fr. 3'600.-, sono poste a carico dei ricorrenti nella misura di fr. 700.- ciascuno e dell'opponente nella misura di fr. 2'200.-.
4. L'opponente verserà a ciascun ricorrente la somma di fr. 1'500.- a titolo di indennità di parte per la procedura federale.
4. L'opponente verserà a ciascun ricorrente la somma di fr. 1'500.- a titolo di indennità di parte per la procedura federale.
5. La causa viene rinviata al Tribunale delle assicurazioni del Cantone Ticino per ripartizione delle indennità di parte nella procedura precedente.
5. La causa viene rinviata al Tribunale delle assicurazioni del Cantone Ticino per ripartizione delle indennità di parte nella procedura precedente.
6. Comunicazione alle parti, al Tribunale delle assicurazioni del Cantone Ticino e all'Ufficio federale delle assicurazioni sociali.