Fatti:
Fatti:
A. S._, nato nel 1958, contitolare, unitamente alla moglie, della M._ Sagl e attivo presso di essa in qualità di pittore responsabile, dal 1° giugno 1999 è stato posto al beneficio di una mezza rendita d'invalidità per un grado di incapacità al guadagno del 50% (decisione 12 aprile 2001 dell'Ufficio AI del Cantone Ticino [UAI]).
Nel corso del mese di dicembre 2003 l'UAI ha avviato una procedura di revisione d'ufficio del diritto alla rendita, al termine della quale ha decretato la soppressione di quest'ultima (decisione del 10 maggio 2004). A motivazione del provvedimento, l'amministrazione ha rilevato che, pur essendo la situazione valetudinaria rimasta invariata (capacità lavorativa del 50% come amministratore dell'impresa), il grado d'invalidità risultava essere sceso al di sotto della soglia minima del 40% già a partire dall'anno 2000 a dipendenza di un miglioramento della situazione reddituale dell'interessato. A fronte di un guadagno senza invalidità di fr. 110'000.- annui, l'UAI ha infatti accertato un reddito da invalido - che ancora nel 1999 era di soli fr. 43'382.- -, di fr. 67'639.- per l'anno 2000, di fr. 78'000.- (oltre a fr. 40'000.- a titolo di gratifica) per il 2001, di fr. 69'804.- per il 2002 e di fr. 72'692.- per il 2003. Per non avere informato l'amministrazione della sostanziale modifica della situazione economica, l'interessato si è inoltre visto revocare il versamento della rendita con effetto retroattivo al 1° gennaio 2000. Il provvedimento è quindi stato sostanzialmente confermato anche in seguito all'opposizione interposta dall'avv. Elio Brunetti per conto dell'assicurato (decisione su opposizione dell'8 luglio 2004).
Nel corso del mese di dicembre 2003 l'UAI ha avviato una procedura di revisione d'ufficio del diritto alla rendita, al termine della quale ha decretato la soppressione di quest'ultima (decisione del 10 maggio 2004). A motivazione del provvedimento, l'amministrazione ha rilevato che, pur essendo la situazione valetudinaria rimasta invariata (capacità lavorativa del 50% come amministratore dell'impresa), il grado d'invalidità risultava essere sceso al di sotto della soglia minima del 40% già a partire dall'anno 2000 a dipendenza di un miglioramento della situazione reddituale dell'interessato. A fronte di un guadagno senza invalidità di fr. 110'000.- annui, l'UAI ha infatti accertato un reddito da invalido - che ancora nel 1999 era di soli fr. 43'382.- -, di fr. 67'639.- per l'anno 2000, di fr. 78'000.- (oltre a fr. 40'000.- a titolo di gratifica) per il 2001, di fr. 69'804.- per il 2002 e di fr. 72'692.- per il 2003. Per non avere informato l'amministrazione della sostanziale modifica della situazione economica, l'interessato si è inoltre visto revocare il versamento della rendita con effetto retroattivo al 1° gennaio 2000. Il provvedimento è quindi stato sostanzialmente confermato anche in seguito all'opposizione interposta dall'avv. Elio Brunetti per conto dell'assicurato (decisione su opposizione dell'8 luglio 2004).
B. Patrocinato dall'avv. Brunetti, S._ si è aggravato al Tribunale delle assicurazioni del Cantone Ticino, chiedendo il ripristino della prestazione e contestando in particolare l'importo del reddito senza invalidità accertato dall'amministrazione che, a mente dell'interessato, andava fissato in almeno fr. 130'000.-, come attestato dalla C._ SA, società che si occupa(va) della gestione contabile della M._ Sagl.
Per pronuncia dell'8 novembre 2004, il Tribunale cantonale delle assicurazioni, statuendo per giudice unico, ha respinto il ricorso e ha confermato, nel suo risultato, l'operato dell'amministrazione. Partendo dalla constatazione che l'assicurato, nel 1995-1996, aveva percepito, da sano, un salario annuo di fr. 78'000.-, il primo giudice, adeguato il dato all'evoluzione dei salari per gli anni in questione, ha ritenuto quale reddito da valido i seguenti importi: fr. 78'390.- per il 1997, fr. 78'939.- per il 1998, fr. 79'176.- per il 1999, fr. 80'205.- per il 2000, fr. 82'210.- per il 2001, fr. 83'690.- per il 2002, fr. 84'862.- per il 2003 e fr. 85'456.- per il 2004. Confrontando questi dati con il reddito da invalido accertato dall'amministrazione e riconosciuto dalle parti, il giudice di prime cure ha rilevato un tasso d'invalidità del 16% per il 2000, del 5% per il 2001, del 17% per il 2002, del 14% per il 2003 e del 14% per il 2004, del tutto insufficiente per giustificare il mantenimento del diritto a una rendita. In via abbondanziale, il giudice cantonale ha precisato che la prestazione andava comunque soppressa anche se si intendeva considerare quale reddito senza invalidità per gli anni 1999-2003 l'importo di fr. 110'000.- attestato dal datore di lavoro nell'aprile del 2004. Ad ogni modo, ha escluso che il calcolo dell'invalidità potesse realisticamente fondarsi sull'importo di fr. 130'000.- invocato, pendente lite, dall'assicurato a questo titolo. E questo non solo in ragione della discrepanza con quanto affermato dal datore di lavoro prima della resa della decisione amministrativa, ma anche per l'ampiezza del preteso aumento salariale (66%) rispetto agli anni 1995-1996, che nessun elemento agli atti avrebbe ragionevolmente permesso di considerare. Infine, ritenendo la documentazione agli atti sufficiente per statuire nel merito della vertenza, la Corte cantonale ha respinto la domanda di audizione del responsabile della C._ SA.
Per pronuncia dell'8 novembre 2004, il Tribunale cantonale delle assicurazioni, statuendo per giudice unico, ha respinto il ricorso e ha confermato, nel suo risultato, l'operato dell'amministrazione. Partendo dalla constatazione che l'assicurato, nel 1995-1996, aveva percepito, da sano, un salario annuo di fr. 78'000.-, il primo giudice, adeguato il dato all'evoluzione dei salari per gli anni in questione, ha ritenuto quale reddito da valido i seguenti importi: fr. 78'390.- per il 1997, fr. 78'939.- per il 1998, fr. 79'176.- per il 1999, fr. 80'205.- per il 2000, fr. 82'210.- per il 2001, fr. 83'690.- per il 2002, fr. 84'862.- per il 2003 e fr. 85'456.- per il 2004. Confrontando questi dati con il reddito da invalido accertato dall'amministrazione e riconosciuto dalle parti, il giudice di prime cure ha rilevato un tasso d'invalidità del 16% per il 2000, del 5% per il 2001, del 17% per il 2002, del 14% per il 2003 e del 14% per il 2004, del tutto insufficiente per giustificare il mantenimento del diritto a una rendita. In via abbondanziale, il giudice cantonale ha precisato che la prestazione andava comunque soppressa anche se si intendeva considerare quale reddito senza invalidità per gli anni 1999-2003 l'importo di fr. 110'000.- attestato dal datore di lavoro nell'aprile del 2004. Ad ogni modo, ha escluso che il calcolo dell'invalidità potesse realisticamente fondarsi sull'importo di fr. 130'000.- invocato, pendente lite, dall'assicurato a questo titolo. E questo non solo in ragione della discrepanza con quanto affermato dal datore di lavoro prima della resa della decisione amministrativa, ma anche per l'ampiezza del preteso aumento salariale (66%) rispetto agli anni 1995-1996, che nessun elemento agli atti avrebbe ragionevolmente permesso di considerare. Infine, ritenendo la documentazione agli atti sufficiente per statuire nel merito della vertenza, la Corte cantonale ha respinto la domanda di audizione del responsabile della C._ SA.
C. Sempre patrocinato dall'avv. Brunetti, S._ interpone ricorso di diritto amministrativo al Tribunale federale delle assicurazioni, al quale ribadisce le richieste di prima sede. Dei motivi si dirà, per quanto occorra, nei considerandi.
L'UAI propone la reiezione del gravame, mentre l'Ufficio federale delle assicurazioni sociali (UFAS) ha rinunciato a determinarsi.

Diritto:
Diritto:
1. Il giudizio impugnato concerne prestazioni dell'assicurazione per l'invalidità. Giusta l'art. 132 cpv. 1 OG nella versione di cui alla cifra III della legge federale del 16 dicembre 2005 concernente la modifica della LAI (in vigore dal 1° luglio 2006), in deroga a quanto previsto dagli art. 104 e 105 OG, il Tribunale federale delle assicurazioni può, nell'ambito di una procedura vertente sull'assegnazione o il rifiuto di prestazioni assicurative, anche esaminare l'adeguatezza della decisione querelata e non è vincolato dall'accertamento dei fatti da parte dell'istanza precedente. A norma dell'art. 132 cpv. 2 OG, queste deroghe non si applicano se il giudizio impugnato concerne prestazioni dell'assicurazione per l'invalidità. Nondimeno, secondo la cifra II lett. c della legge del 16 dicembre 2005, il diritto previgente si applica ai ricorsi pendenti davanti al Tribunale federale delle assicurazioni al momento dell'entrata in vigore della modifica. Poiché al 1° luglio 2006 il presente ricorso era pendente dinanzi al Tribunale federale delle assicurazioni, il suo potere cognitivo è regolato dal previgente art. 132 OG, il cui tenore corrisponde al nuovo cpv. 1.
1. Il giudizio impugnato concerne prestazioni dell'assicurazione per l'invalidità. Giusta l'art. 132 cpv. 1 OG nella versione di cui alla cifra III della legge federale del 16 dicembre 2005 concernente la modifica della LAI (in vigore dal 1° luglio 2006), in deroga a quanto previsto dagli art. 104 e 105 OG, il Tribunale federale delle assicurazioni può, nell'ambito di una procedura vertente sull'assegnazione o il rifiuto di prestazioni assicurative, anche esaminare l'adeguatezza della decisione querelata e non è vincolato dall'accertamento dei fatti da parte dell'istanza precedente. A norma dell'art. 132 cpv. 2 OG, queste deroghe non si applicano se il giudizio impugnato concerne prestazioni dell'assicurazione per l'invalidità. Nondimeno, secondo la cifra II lett. c della legge del 16 dicembre 2005, il diritto previgente si applica ai ricorsi pendenti davanti al Tribunale federale delle assicurazioni al momento dell'entrata in vigore della modifica. Poiché al 1° luglio 2006 il presente ricorso era pendente dinanzi al Tribunale federale delle assicurazioni, il suo potere cognitivo è regolato dal previgente art. 132 OG, il cui tenore corrisponde al nuovo cpv. 1.
2. Oggetto del contendere è la soppressione, retroattiva al 1° gennaio 2000, della (mezza) rendita d'invalidità precedentemente assegnata al ricorrente. Soppressione che le precedenti istanze hanno motivato con il fatto che quest'ultimo non avrebbe più presentato, a partire da tale data, un'incapacità di guadagno pensionabile.
2. Oggetto del contendere è la soppressione, retroattiva al 1° gennaio 2000, della (mezza) rendita d'invalidità precedentemente assegnata al ricorrente. Soppressione che le precedenti istanze hanno motivato con il fatto che quest'ultimo non avrebbe più presentato, a partire da tale data, un'incapacità di guadagno pensionabile.
3. Nei considerandi dell'impugnata pronuncia, cui si rinvia, il primo giudice ha già compiutamente - perlomeno per quanto riferito allo stato di fatto giuridicamente determinante realizzatosi dopo il 1° gennaio 2003 (<ref-ruling>) - esposto le norme legali e i principi giurisprudenziali disciplinanti la materia, rammentando in particolare i presupposti che reggono il diritto a una rendita d'invalidità (<ref-law>, nella versione applicabile prima e dopo l'entrata in vigore, il 1° gennaio 2004, della 4a revisione dell'AI [<ref-ruling>]) e illustrando il metodo generale di confronto dei redditi per la determinazione del grado d'invalidità di assicurati esercitanti un'attività lucrativa (<ref-law>; per quanto concerne la disciplina applicabile allo stato di fatto realizzatosi prima del 1° gennaio 2003, cfr. per contro l'<ref-law>, nella versione in vigore fino al 31 dicembre 2002). Al giudizio impugnato può quindi essere prestata adesione pure per quanto concerne l'esposizione dei presupposti per una revisione della rendita d'invalidità in seguito a una modifica del diritto (<ref-law> e <ref-law>; in merito alla situazione valevole prima dell'entrata in vigore della LPGA cfr. la giurisprudenza resa a proposito dell'abrogato art. 41 vLAI, che ha mantenuto la propria validità anche sotto l'egida del nuovo ordinamento [<ref-ruling>]). Dev'essere così ribadito che per ammettere l'esistenza di una modifica del diritto alla rendita occorre confrontare la situazione di fatto al momento della decisione iniziale di assegnazione della prestazione con quella vigente all'epoca del provvedimento litigioso (<ref-ruling> consid. 3.5.2, 125 V 369 consid. 2 con riferimento), ritenuto che costituisce motivo atto a dar luogo a revisione della rendita d'invalidità ogni modifica rilevante nelle circostanze di fatto suscettibile di influire sul grado d'invalidità e, quindi, sul diritto alla pensione. Di conseguenza, si può procedere alla revisione della rendita non soltanto nel caso di una modifica sensibile dello stato di salute, bensì anche qualora le conseguenze dello stesso sulla capacità di guadagno, pur essendo esso rimasto immutato, abbiano subito una modifica notevole (<ref-ruling> consid. 3.5, 113 V 275 consid. 1a; vedi pure <ref-ruling> consid. 2b e 390 consid. 1b).
3. Nei considerandi dell'impugnata pronuncia, cui si rinvia, il primo giudice ha già compiutamente - perlomeno per quanto riferito allo stato di fatto giuridicamente determinante realizzatosi dopo il 1° gennaio 2003 (<ref-ruling>) - esposto le norme legali e i principi giurisprudenziali disciplinanti la materia, rammentando in particolare i presupposti che reggono il diritto a una rendita d'invalidità (<ref-law>, nella versione applicabile prima e dopo l'entrata in vigore, il 1° gennaio 2004, della 4a revisione dell'AI [<ref-ruling>]) e illustrando il metodo generale di confronto dei redditi per la determinazione del grado d'invalidità di assicurati esercitanti un'attività lucrativa (<ref-law>; per quanto concerne la disciplina applicabile allo stato di fatto realizzatosi prima del 1° gennaio 2003, cfr. per contro l'<ref-law>, nella versione in vigore fino al 31 dicembre 2002). Al giudizio impugnato può quindi essere prestata adesione pure per quanto concerne l'esposizione dei presupposti per una revisione della rendita d'invalidità in seguito a una modifica del diritto (<ref-law> e <ref-law>; in merito alla situazione valevole prima dell'entrata in vigore della LPGA cfr. la giurisprudenza resa a proposito dell'abrogato art. 41 vLAI, che ha mantenuto la propria validità anche sotto l'egida del nuovo ordinamento [<ref-ruling>]). Dev'essere così ribadito che per ammettere l'esistenza di una modifica del diritto alla rendita occorre confrontare la situazione di fatto al momento della decisione iniziale di assegnazione della prestazione con quella vigente all'epoca del provvedimento litigioso (<ref-ruling> consid. 3.5.2, 125 V 369 consid. 2 con riferimento), ritenuto che costituisce motivo atto a dar luogo a revisione della rendita d'invalidità ogni modifica rilevante nelle circostanze di fatto suscettibile di influire sul grado d'invalidità e, quindi, sul diritto alla pensione. Di conseguenza, si può procedere alla revisione della rendita non soltanto nel caso di una modifica sensibile dello stato di salute, bensì anche qualora le conseguenze dello stesso sulla capacità di guadagno, pur essendo esso rimasto immutato, abbiano subito una modifica notevole (<ref-ruling> consid. 3.5, 113 V 275 consid. 1a; vedi pure <ref-ruling> consid. 2b e 390 consid. 1b).
4. Nella presente fattispecie, le parti sono concordi nel ritenere che le condizioni di salute dell'insorgente sono rimaste invariate nel periodo in esame intercorrente tra la decisione di assegnazione della mezza rendita e il provvedimento in lite. La circostanza, oltre ad essere ormai pacifica, trova pure riscontro negli atti medici all'inserto. Incontestato è inoltre pure il reddito da invalido determinato dall'amministrazione e ripreso dalla pronuncia cantonale impugnata. Unico oggetto litigioso resta in sostanza l'accertamento del reddito da valido posto a fondamento del calcolo d'invalidità.
4.1 Il ricorrente insiste affinché la determinazione del grado d'invalidità avvenga sulla base di un reddito da valido di fr. 130'000.-. A motivazione della propria richiesta, evidenzia l'attendibilità del dato espresso dalla C._ SA in data 30 giugno 2004 nonché l'arbitrarietà del giudizio cantonale su tale punto, che a torto avrebbe pure negato l'audizione del responsabile della società di gestione contabile, T._, impedendogli di circostanziare quanto dichiarato in precedenza dalla società.
4.2 Per determinare il reddito ipotetico conseguibile dalla persona assicurata senza il danno alla salute (reddito da valido), occorre stabilire quanto la stessa, nel momento determinante (corrispondente all'inizio dell'eventuale diritto alla rendita), guadagnerebbe, secondo il grado di verosimiglianza preponderante, quale persona sana (<ref-ruling> consid. 4.3.1 con riferimento). Tale reddito dev'essere determinato il più concretamente possibile. Di regola ci si fonda sull'ultimo reddito che la persona assicurata ha conseguito prima del danno alla salute, se del caso adeguato al rincaro e all'evoluzione reale dei salari (<ref-ruling> consid. 4.3.1), o comunque sul salario che potrebbe essere conseguito in un posto di lavoro identico nella stessa azienda o in un'azienda simile (cfr. ad esempio la Circolare, edita dall'UFAS, sull'invalidità e la grande invalidità nell'assicurazione per l'invalidità [CIGI], cifra marg. 3025). Nel caso in cui non fosse possibile quantificare in maniera attendibile il reddito ipotetico che l'assicurato avrebbe potuto conseguire senza l'invalidità, ci si rifà a valori empirici o statistici (VSI 1999 pag. 248 consid. 3b). Per il resto, occorre tenere conto del principio che vuole - in assenza di indizi concreti che impongano una diversa valutazione - che la persona assicurata avrebbe di regola, e conformemente all'esperienza generale, continuato l'attività precedentemente svolta senza invalidità (RAMI 2000 no. U 400 pag. 381 consid. 2a).
4.3 Tutto ben ponderato, questa Corte non vede motivo per non aderire alla valutazione dell'autorità giudiziaria cantonale.
Tenendo conto dei principi giurisprudenziali suesposti, la pronuncia impugnata poteva infatti ben partire dal presupposto che l'assicurato avrebbe continuato a svolgere la sua professione così come l'aveva esercitata in passato. Orbene, date queste premesse, mal si vede per quale ragione il riferimento al salario effettivamente percepito dall'interessato prima dell'intervento del danno alla salute sarebbe inconsistente o addirittura arbitrario. Oltre a essere incontestabile, questo salario (fr. 6'000.- x tredici mensilità), opportunamente adeguato all'evoluzione statistica dei salari, costituisce infatti l'unico dato certo che consenta di effettuare una previsione affidabile a proposito dell'importo che il ricorrente avrebbe potuto conseguire senza il danno alla salute. Ora, sulla scorta di questi dati, il ricorrente non si avvicina nemmeno lontanamente alla soglia minima del 40% che gli avrebbe permesso di quantomeno mantenere il diritto a una rendita (ridotta).
E comunque, a prescindere da queste considerazioni, anche dovendo riconoscere l'avvenuto miglioramento economico dell'Impresa, che i dati all'inserto sembrano effettivamente confermare, appare nondimeno ardito il tentativo del ricorrente di rimettere ora in discussione l'attendibilità della dichiarazione 22 aprile 2004, con la quale il datore di lavoro - o addirittura l'interessato stesso, unico socio (insieme alla moglie) nonché solo gerente della società - aveva attestato, in data non sospetta, in fr. 110'000.- annui il guadagno presumibile senza invalidità per gli anni in questione. La contestazione appare tanto più ingiustificata se si considera che S._, a seguito dell'incapacità lavorativa, si occupava sostanzialmente degli aspetti amministrativi dell'azienda, svolgendo "diverse mansioni d'ufficio, come la stesura di preventivi e la redazione delle fatture" (ricorso di diritto amministrativo, pag. 4). Egli doveva di conseguenza anche poter disporre degli strumenti e delle indicazioni necessari per attestare (o far attestare) con cognizione di causa il presumibile salario senza invalidità. In tali condizioni, l'importo indicato nell'attestato del 22 aprile 2004 - non da ultimo anche in ragione dell'importanza che una simile dichiarazione doveva rivestire ai fini della decisione e che non poteva di certo sfuggire al suo autore - ben difficilmente può ora essere fatto passare per il frutto di una dichiarazione avventata e approssimativa, avvenuta senza cognizione di causa, come invece si vuol fare credere.
Il giudizio cantonale convince infine anche per quanto concerne la valutazione espressa dal primo giudice in merito all'inattendibilità del reddito dichiarato, pendente lite, dalla C._ SA e quantificato in fr. 130'000.- annui. Alla motivazione della pronuncia impugnata può integralmente essere rinviato. In particolare merita tutela anche la rinuncia, da parte della Corte cantonale, all'audizione del teste Tantardini, la cui assunzione - se non per confermare il contenuto della dichiarazione precedente - nulla avrebbe verosimilmente potuto aggiungere o modificare ai fini della presente valutazione (apprezzamento anticipato delle prove; Kieser, Das Verwaltungsverfahren in der Sozialversicherung, pag. 212 no. 450; Kölz/Häner, Verwaltungsverfahren und Verwaltungsrechtspflege des Bundes, 2a ed., pag. 39 no. 111 e pag. 117 no. 320; Gygi, Bundesverwaltungsrechtspflege, 2a ed., pag. 274; cfr. anche <ref-ruling> consid. 4a, 122 III 223 consid. 3c, 120 Ib 229 consid. 2b, 119 V 344 consid. 3c e riferimenti).
Il giudizio cantonale convince infine anche per quanto concerne la valutazione espressa dal primo giudice in merito all'inattendibilità del reddito dichiarato, pendente lite, dalla C._ SA e quantificato in fr. 130'000.- annui. Alla motivazione della pronuncia impugnata può integralmente essere rinviato. In particolare merita tutela anche la rinuncia, da parte della Corte cantonale, all'audizione del teste Tantardini, la cui assunzione - se non per confermare il contenuto della dichiarazione precedente - nulla avrebbe verosimilmente potuto aggiungere o modificare ai fini della presente valutazione (apprezzamento anticipato delle prove; Kieser, Das Verwaltungsverfahren in der Sozialversicherung, pag. 212 no. 450; Kölz/Häner, Verwaltungsverfahren und Verwaltungsrechtspflege des Bundes, 2a ed., pag. 39 no. 111 e pag. 117 no. 320; Gygi, Bundesverwaltungsrechtspflege, 2a ed., pag. 274; cfr. anche <ref-ruling> consid. 4a, 122 III 223 consid. 3c, 120 Ib 229 consid. 2b, 119 V 344 consid. 3c e riferimenti).
5. La procedura è gratuita (art. 134 OG, nella versione in vigore fino al 30 giugno 2006; cfr. consid. 1).

Per questi motivi, il Tribunale federale delle assicurazioni pronuncia:
Per questi motivi, il Tribunale federale delle assicurazioni pronuncia:
1. Il ricorso di diritto amministrativo è respinto.
1. Il ricorso di diritto amministrativo è respinto.
2. Non si percepiscono spese giudiziarie.
2. Non si percepiscono spese giudiziarie.
3. La presente sentenza sarà intimata alle parti, al Tribunale cantonale delle assicurazioni, Lugano, e all'Ufficio federale delle assicurazioni sociali.