Update 1 di X# “Anjou” pronta

Oggi, 10 luglio 2017, il gruppo X# ha rilasciato un’altra versione del loro compilatore per mettere a posto alcuni piccoli malfunzionamenti nell’integrazione Visual Studio, e per ovviare ad alcune lacune nella runtime di Vulcan.NET, modificando il compilatore e lo strumento VO-xPorter.

Questa versione è stata rilasciata sia in versione FoX che pubblica, e dimostra ancora la serietà con la quale il gruppo sta lavorando.

Inoltre nei prossimi giorni anche il traffico nel forum si è incrementato notevolmente, anche con persone fino addesso non conosciute nel nostro mondo.

Rilasciata prima versione X# “Anjou”

In data 3 luglio 2017 il gruppo di sviluppo X# ha rilasciato la prima versione non-beta del loro compilatore, sia in versione FoX che pubblica.

La differenza tra la versione pubblica e quella FoX è soprattutto un compilatore più performante (gli eseguibili sono uguali), oltre al supporto diretto e alla maggiore frequenza di rilascio versioni (circa ogni mese invece che ogni tre mesi).

Con questa versione il supporto Vulcan/VO è finito (anche se viene constatato che un software non sarà mai finito).

Per maggiori informazioni (in inglese): https://www.xsharp.info/articles/106-xsharp-anjou-general-release-available

Rilasciato una versione provvisoria di X# “Anjou”

Oggi, in data 29 giugno 2017, il team di sviluppo ha rilasciato una versione provvisoria del loro compilatore. La versione RC 5 (release candidate) è stata rilasciata al gruppo dei sottoscrittori FoX e sarà rilasciata in versione definitiva attorno al 3 luglio (se gli utenti attuali non trovano ancora degli errori rilevanti).

Per le modifiche vorrei puntare sul sito del progetto: https://www.xsharp.info

Aggiungo una nota che ritengo molto importante: oltre alla versione definitiva del VOXPorter (per portare applicativi da VO a X#) sono stati preparati anche degli esempi di migrazione e una guida abbastanza dettagliata: https://www.xsharp.info/help/migratingappsfromvotox.html

Inoltre è stata indetta non solo una nuova promozione con sconto del 30% valida fini al 31 agosto 2017, ma anche un upgrade competitivo dal programma VPS attivo che diminuisce il prezzo in base ai mesi rimanenti.

Non appena la versione definitiva sarà rilasciata, verrà anche aggiornato questo sito, e dopo ci saranno anche degli esempi di migrazione.

Librerie di terze parti nella migrazione da VO a X#

Ovviamente le librerie di terze parti sono un problema in qualsiasi aggiornamento dello strumento di sviluppo – e un problema ancora maggiore nel caso delle librerie VO che sono scritte nello stesso linguaggio dell’applicativo. Per le librerie più usate gli procedimenti sono elencati di seguito:

  • ReportPro 2. Visto che ReportPro 2 per VO non viene distribuito con le sorgenti, è impossibile fare una migrazione. Bisogna acquistare ReportPro 2 per Vulcan.NET dalla GrafX, che viene fornito con le sorgenti (e che incorpora anche parecchie correzioni). Questo attualmente può essere usato nella versione Vulcan.NET, oppure potrà essere compilato con X#.
  • ReportPro 3. Anche per ReportPro 3 vale lo stesso discorso come per la versione 2: anche in questo caso bisogna acquistare la versione per Vulcan.NET con le sorgenti, che si potrà poi compilare con X#
  • bBrowser. Almeno per il bBrowser.NET 4 posso confermare personalmente che è possibile compilare con X#, anche se con parecchi warning. Sicuramente Joachim Bieler prima o poi rilascerà anche la versione per X# – soprattutto se c’è abbastanza richiesta. Migrare la versione VO è un lavoro molto grosso che è meglio non fare.
  • VO2ADO. Ho una conferma a Robert v.d.Hulst, l’autore di questa libreria, che è impossibile la migrazione della versione VO. La versione Vulcan.NET invece può essere usata senza problemi sia in versione Vulcan.NET che anche ricompilato in X#. Non appena la runtime X# sarà disponibile, verrà rilasciata una versione nativa X#

Migrazione da Visual Objects a X#

Con il rilascio della beta 12 di X# la compatibilità con Visual Objects è ancora cresciuta.

Inoltre ho avuto modo di provare in anteprima XPorter/VO – lo strumento che legge AEF di Visual Objects e genera codice X#.

Per quanto riguarda le librerie necessarie come base dovrete sapere che esistono varie categorie

  • le librerie runtime che contengono sia le funzioni di base sia il compilatore runtime/macro Visual Objects. In VO 2.8 è la VO28run.dll, in Vulcan sono VulcanRT.dll e VulcanRTFuncs.dll. Visto che sia in Visual Objects che in Vulcan sono distribuite solo in formato compilato, il gruppo X# le dovrà riscrivere completamente da capo. Attualmente, usando la formula del BYOR, potete usare le versioni Vulcan.NET
  • le librerie di classi tipo classi GUI, RDD, OLE, Internet ecc. Queste librerie vengono fornite con Visual Objects e con Vulcan.NET sia in versione compilata che in versione sorgenti. Perciò sarà possibile per voi ricompilarli anche con X#. Attualmente il gruppo di sviluppo raccomanda di uare le versioni Vulcan.NET. La migrazione da VO oppure Vulcan dovrà essere fatta da voi stessi in quanto di tratta di codice di proprietà CA/GrafX, e perciò il team X# non ha il diritto di distribuirli. Appronterranno invece delle istruzioni su come fare
  • chi di voi usa anche i file DBF, avrà anche bisogno degli RDD. Anche questi, scritti in C/C++ come le librerie runtime, sono state distribuite da CA e GrafX solo in formato binario. Perciò anche queste librerie dovranno essere riscritte da capo. Nel frattempo anche in questo caso sarà possibile usare le versioni Vulcan.

Ovviamente questa riscrittura avrà bisogno di tempo, ma porta parecchi vantaggi. Per esempio il codice può essere rilasciato in licenza opensource, dandovi maggior sicurezza di investimento, permettendo la collaborazione e dare maggior conoscenza di quello che succede. Altra cosa non da trascurare: sia gli RDD che il compilatore macro che la libreria runtime di Vulcan.NET sono limitati al modi x86, perciò a 32 bit. Con la riscrittura in X# anche questo limite cadrà.

Su queste pagine nelle prossime settimane saranno disponibili altri articoli sulla tematica.

Rilasciata beta 12 di X#

Il 26 maggio 2017 il gruppo di sviluppo di X# ha rilasciato la beta 12 del loro compilatore – solo ai membri del programma FoX.

La nuova beta, che sarà l’ultima prima del rilascio della versione “release” il 29 giugno 2017, porta soprattuttto migliorie nell’integrazione Visual Studio 2017 e 2015 e una migliorata compatibilità con il linguaggio Visual Objects.

Inoltre il codice è stato portato al livello di C# 7, per rimanere aggiornato allo stato di release Microsoft.

Altra novità di assoluto rilievo: esiste lo scripting in X#, con un compilatore distribuibile di codice X#. Questo signifca che potete distribuire questo compilatore con il vostro programma, per scrivere ad-hoc programmi in X# oppure ampliare i vostri applicativi con dei script (che ovviamente possono accedere anche alle librerie da voi scritte.

Conferenza XBase.Future a Colonia

In questi giorni, e precisamente dal 24 al 27 aprile, si sta svolgendo la conferenza XBase.Future a Colonia con la partecipazione della maggioranza del team di sviluppo X# (presenti Robert v.d. Hulst, Nikos Kokkalis e Fabrice Foray, assente solo Chris Pyrgas).

Sono stati fatti vedere alcuni possibilità molto interessanti, come lo supporto di scripting in X#, oppure delle applicazioni X# eseguite su Linux Ubuntu e su un Raspberry Pi.

Inoltre è stata annunciata la prima versione non-beta di X# che sarà disponibile nei prossimi mesi contenente:

  • il compilatore X# stesso
  • l’integrazione in Visual Studio 2015 e 2017
  • strumenti per migrare applicativi VO e Vulcan verso X# (usando le runtime Vulcan)
  • supporto per eseguire applicativi X# in Mono e Xamarin, oltre al supporto per tutte le piattaforme .NET (x86, x64, ARM)
  • il preprocessore che permette di definirsi un proprio linguaggio – una possibilità unica nel mondo .NET
  • supporto scripting – un’altra funzionalità unica di X# (anche se non unica nel mondo XBase)

Purtroppo non mi è stato possibile essere presente a Colonia, ma le novità sono di assoluto rilievo.

Inoltre nel forum di X# si presentano persone nuove, e il progetto sembra suscitare parecchio interesse anche nel mondo Harbour e FoxPro.

Rilasciata la beta 11 di X#

Il 24 aprile il gruppo di sviluppo ha rilasciato la beta 11 di X#, inizialmente solo per i membri del programma FoX, e successivamente anche per il pubblico.

Le novità più salienti di questa beta sono:

  • Ottimimizzioni nell’integrazione in Visual Studio 2015 e 2017 con una velocizzazione netta di IntelliSense (confermata anche da utilizzatori di X# come notevole)
  • migliorie nella caratterizzazione di stringhe e char con delimitatori di singolo e doppio apice per migliorare la compatibilità con VO e Vulcan
  • Primi lavori sul dialetto Harbour (Robert v.d.Hulst e Chris Pyrgas attualmente stanno lavorando in un progetto di migrazione di un applicativo Harbour verso X# con l’aiuto del preprocessore)

Per ulteriori informazioni:https://www.xsharp.info/articles/98-xsharp-beta-11

Rilasciata la Beta 10

Il 15 marzo il team di sviluppo ha rilasciato la beta 10 di X#. Questa versione è destinata ai membri del programma a pagamento FoX.

Come punti salienti la nuova versione porta IntelliSense in Visual Studio 2015 e 2017, un nuovo keyword “ASTYPE” come in C# e, feature unica in Clipper e Visual Objects, un preprocessore.

Questo permette all’utente di definire propri statement e funzionalità che vengono poi tradotti in codice X# prima della compilazione.

Personalmente ritengo questa funzionalità unica nel mondo .NET perchè permette una personalizzazione del codice da scrivere. Infatti il preprocessore viene già usato in un progetto per portare codice Clipper/Harbour con dei statement @SAY / @GET in ambiente .NET con X#.

 

Roadmap per il 2017

Nel fine settimana scorsa (5 febbraio 2017) il gruppo di sviluppo di X# ha pubblicato un nuovo piano di sviluppo per l’anno in corso.

Hanno ammesso di non aver rispettato pienamente la roadmap per il 2016, da una parte perchè avevano sottovalutato l’impegno per la compatibilità con Visual Objects e Vulcan.NET, dall’altra parte perchè avevano aggiunte parecchie nuove funzionalità richieste dagli utenti.

Comunque, nel 2016 sono state rilasciate le versione “pubbliche” circa ogni tre mesi, mentre le versioni “FoX” sono uscite mediamente una volta la mese.

Torniamo ai piani per il 2017: è stata scartata l’idea del “enhance your runtime”, ma si procederà direttamente alla scrittura di un runtime da una parte compatibile con Vulcan.NET, ma interamente AnyCPU ( e non x86 come Vulcan.NET ) e gli RDD completamente in codice managed (non più in C++ come in Vulcan.NET).

Per aprile 2017 è pianificata la “spring release” con quasi completa la integrazione di Intellisense in Visual Studio 2017, macro-compilatore e la prima versione della runtime.

Per luglio invece si prevede la “Summer 2017” con la completa runtime X#, mentre per ottobre per la “Autumn 2017” pensano di aver un supporto preliminare per xHarbour, che si dovrebbe completare con la “Winter 2017 ” a dicembre.

Inoltre si parla che una volta terminato il supporto per xHarbour si lavorerà per Visual FoxPro – dove comunque i file DBF ne saranno supportati fin dalla prima versione del RDD DBFCDX.

Per ulteriori informazioni (in inglese): https://www.xsharp.info/articles/81-xsharp-roadmap-2017