11 marzo 2025 08:31
Mi serve un'app...me la faccio fare dall'AI
Problema: nel nostro “vecchio” ERP BC14 (aka NAV) la visualizzazione delle fatture elettroniche in Xml provenienti da Arxivar avviene tramite un viewer esterno e fino ad ora la soluzione era stata utilizzare Ms Edge in modalità IE11(unico browser rimasto che applica la trasformazione xslt in html e la renderizza in un formato “umano”). Peccato che ci vogliano settordici click e che ultimamente si verificassero problemi di stampa (ctrl-p non faceva comparire la dialog di print).
Decisione drastica: mi scrivo io un viewer banalissimo e “me lo faccio fare dalla AI” visto che tutti dicono che in mezz’ora si fanno fare un sito di e-commerce con collegamento al modulo finance, logistica e BI con analisi predictive compresa!! #sarcasm
Risultato finale: in 1h29’ ho portato a casa il compito ovvero una app WPF che prende in input il path del file xml, lo parsa per estrarre il nome del suo xsl, lo trasforma in html, lo fa vedere in un controllo webview2, lancia in automatico il panel di print preview, si autoadatta alla height in pixel del display/pc, ha un’icona personalizzata, gestisce un paio di eccezioni, ha un installer click-once e ci è rimasto tempo anche per un easter-egg sotto un certo evento :-)

Da notare che saranno stati 6 o 7 anni che non scrivevo un’app desktop (wpf e winform) e che in tutta la mia vita ne avrò fatte una decina che sono poco più di un Hello World.
La AI mi ha aiutato? Enormemente rispetto a cercarmi le informazioni che mi servivano su motori di ricerca, stackoverflow, siti, forum, ecc.
Ma è tutto merito suo? Direi proprio di no, perché ho la presunzione di credere che io abbia fatto le domande giuste conoscendo già il background. Sapevo cosa fosse un Xml e un suo stylesheet xsl, sapevo che una trasformation può generare xhtml visualizzabile da un browser, sapevo che esiste e si può mettere un controllo dentro un’app desktop che la trasforma praticamente in edge, che un evento javascript windows.print() lancia la stampa, che un parametro da riga di comando si legge con un array di args[], ecc. ecc. Quello che mi mancava era non dico lo “syntactic sugar” per mettere insieme la ricetta (è molto di più… è un Bimbi, se non un sous-chef a tua disposizione) ma proprio quei micro-pezzi di codice che sarei dovuto andare a cercarmi in n posti trovando magari soluzioni diverse e non sapendo quale adottare.
Ha suggerito il 100% di soluzioni giuste? No! Prendere i parametri con un args[] da passare alla main window overridando app OnStartup mi creava dei casini che invece con un banale Environment.GetCommandLineArgs() ho risolto più velocemente. Chiudere l’app con il suggerito Application.Current.Shutdown() era molto meno responsive di un banale this.Close(), e altre piccole cosuccie.
Ci avrei messo di più 5 anni fa? Secondo me almeno il doppio o il triplo. E di sicuro non avrei fatto domande in linguaggio naturale, ma venendo da quasi 30 anni di internet sarei ancora rimasto ancorato al fatto che a Google si debba parlare con keyword, operatori booleani e poco altro.
Che tool ho usato? Un browser con copilot.microsoft.com (con vicino aperto il tab di Gemini pronto a entrare in soccorso se chatgpt avesse fallito). Mi chiedo perché spendo 100$/anno di Github Copilot visto che poi uso il sito free… Lo considero un fallimento di UI/UX dentro Visual Studio se preferisco usare un browser esterno; poi però capita che mi legge nel pensiero (o semplicemente guarda le righe sopra che ho appena scritto) e mi propone un pezzettone di codice dove basta fare TAB e dirsi… “sì, i 100$ te li meriti!”
Unico difetto che imputo al sito copilot. Non tiene più una history (perlomeno con un account ms personale) ho chiuso per sbaglio il browser e ho dovuto riformulare le domande. D’altronde è free e in qualcosa si deve distinguere dai tool a pagamento di OpenAI.
EDIT: tornando alla home, vicino al textbox di input c'è un'icona con un orologio che mostra la viewing history
Per il resto…beh, è proprio un peccato morire, chissà cosa vedranno i dev del futuro!
