Rilasciata la Beta 9 di X# in versione pubblica

In data 30 gennaio il gruppo di sviluppo di X# ha rilasciato la Beta 9 del compilatore Xbase open source, sia in versione pubblica sia in versione commerciale.

Con questa beta è stato fatto un lavoro di affinamento per la compatibilità con Visual Objects e Vulcan.NET, oltre al miglioramento dell’integrazione con Visual Studio 2015 e 2017.

Che questa versione sia più compatibile con Visual Objects delle beta precedenti ho potuto notare di persona: applicativi Visual Objects portati da Vulcan.NET che nelle beta precedenti non compilavano addesso compilano tranquillamente e funzionano perfettamente (sempre usando le DLL di compatibilità di Vulcan.NET).

Vorrei inoltre aggiungere una nota sulle differenze tra la versione libera di X# e quella destinata ai membri FoX: prima di tutto, la versione FoX porta una nuova versione circa ogni mese, mentre per la versione pubblica ci sono aggiornamenti ogni 3 mesi circa. Inoltre con la versione pubblica viene fornito il compilatore in versione debug per permettere una migliore diagnosi – la versione FoX porta con se sia la versione debug che la versione senza debug.

Sul sito X# esiste inoltre una serie di 4 articoli blog di Chris Pyrgas sugli errori che il compilatore X# ha portato alla luce sia nel codice Vulcan.NET che in librerie conosciute come bBrowser e ReportPro, ovviamente oltre agli errori che sono stati trovati in altre librerie (compreso anche codice scritto da me stesso): https://www.xsharp.info/articles/blog/76-bugs-revealed-by-x-in-existing-code-part-1

Nel forum del sito si può notare un incremento di messaggi di altri utenti che tentano di portare i loro progetti Vulcan nel nuovo ambiente, e il progetto lentamente si quadagna l’attenzione anche dei scettici, grazie anche al supporto tempestivo di Robert v.d. Hulst e Chris Pyrgas.

Beta 8 di X# per i membri FoX con supporto per Visual Studio 2017

Oggi il team di sviluppo di X# ha rilasciato una nuova versione beta del loro prodotto – la beta 8.

Caratteristica più importante è il supporto per Visual Studio 2017 – la nuovissima IDE di Microsoft presentata la settimana scorsa. X# è considerato da Microsoft un “SIM SHIPS” Partner, praticamente un prodotto che è compatibile fin dal primo giorno.

Altre novità di questa nuova release, destinata ai membri del programma FoX, sono una migliore integrazione con Visual Studio (ovviamente anche per la versione 2015), migliorie nella compilazione di codice VO e Vulcan.NET e nuove funzionalità come inizializzatori per oggetti e collezioni.

Una lista più completa delle migliorie si trova sul sito

https://www.xsharp.info/articles/68-xsharp-beta-8

Questa versione è destinata come scritto prima solo ai membri del programma FoX – la prossima versione pubblica è pianificata per Natale.

Altra cosa da menzionare: fino al 31 gennaio 2017 viene applicato uno sconto del 30% sulla tariffa annuale di abbonamento.

Il programma FoX (Friends of Xsharp) non solo da accesso a release più frequenti, ma anche a newsgroup e forum privati dove il supporto viene curato dai membri del team di sviluppo personalmente – e non solo supporto per X#, ma anche per VO e Vulcan.NET (in quanto erano loro a portare avanti lo sviluppo di questi due compilatori negli ultimi anni prima di lanciare il progetto X#).

Stringhe interpolate e estese in X#

In X# esistono delle stringhe estese e interpolate, come peraltro anche in C#. Vulcan.NET conosce solo le stringhe estese.

Si specificano con un prefisso: senza prefisso si tratta di una stringa normale (“Ciao”), con il prefisso di una “e” minuscola di una stringa estesa (e”Ciao\r”), e con una “i” minuscola (i”Ciao {Persona}”).

La string normale è proprio quello che dice il nome – una stringa che non viene trattata in nessun modo particolare. In questo tipo di stringa non è possibile usare per esempio i doppi apici “.

La stringa estesa permette di mascherare certi caratteri come il carriage return, il line feed, il tab e anche i doppi apici:

e”Ciao\tvisitatore\r\nquesta è una \”citazione\””

La stringa interpolata invece è ancora più avanzata: permette l’uso di parametri. Invece di scrivere

String.Format( “Ciao {0}”, cVisitatore )

permette di scrivere

i”Ciao {cVisitatore}”

P.S. permettete la formattazione decisamente sottto tono – sarò un decente programmatore, ma le mie capacità grafiche sono decisamente disastrose

Beta 7a di X#

Ieri sera il gruppo di sviluppo ha pubblicato una ulteriore beta, sia pubblica che per i FoX subscribers, che corregge piccoli errori parzialmente nel compilatore e soprattutto nella integrazione con Visual Studio.

Per ulteriori informazioni consultare il sito https://www.xsharp.info/articles/64-xsharp-beta-7a .

Inoltre negli ultimi giorni nel forum sono nate delle discussioni tra il team di sviluppo e parecchi utenti su tematiche techniche, e ancora una volta sia Robert van der Hulst che Chris Pyrgas hanno messo sotto prova il loro eccellente supporto e le loro capacità techniche nonchè la volontà di fare partecipare gli utenti alle decisioni tecniche prese.

Non esitate a contattarli in caso di necessità sia tramite il forum che tramite il server news: visto che nessuno di loro parla l’inglese come madrelingua non c’è da preoccuparsi di fare brutta figura per un inglese migliorabile! Inoltre il loro inglese è più facilmente capibile di quello di un inglese o americano nativo.

X# e la runtime di Vulcan.NET – BYOR

Il termine BYOR – Bring your own runtime – significa che attualmente la compatibilità di X# con Visual Objects e Vulcan.NET viene prestata dall’uso della runtime di Vulcan.NET. Questo vuole dire che chi attualmente vuole migrare applicazioni VO e Vulcan deve essere avere una licenza di Vulcan.NET 3 oppure 4 (dovrebbe bastare anche Vulcan.NET 2), e questo vuole anche dire che le applicazioni migrate possono essere solo a 32 bit (un applicativo in modalità 64 bit come le applicazioni X# non può usare componenti a 32 bit).

Entrambe le cose cambieranno nei prossimi mesi quando il team di sviluppo presenterà la propria runtime, che sarà completamente in codice AnyCPU (cioè eseguibile in ambienti 32 bit a 32 bit e in ambienti 64 bit a 64 bit). Ci sarà qualche eccezione per funzionalità che possono essere soltanto in 32 bit come il supporto MAPI (che nel sistema operativo non esiste a 64 bit ), e queste funzionalità saranno in librerie differenti proprio per permettere maggiore flessibilità.

Una ulteriore cosa molto interessante sarà il macro-compiler: questo sarà implementato con il compilatore X# stesso togliendo quasi tutti i limiti che valgono per il compilatore macro di VO e Vulcan, come la mancata possibilità di usare funzioni tipizzate oppure la massima lunghezza riga, oppure la massima lunghezza del codice stesso.

Questop permettterà di di implementare delle funzionalità data driven di altissimo livello, una particolarità che nessun altro strumento di sviluppo tranne quelli interpretati può fornire.

Beta 7 di X#

Come previsto, ieri il team di sviluppo ha rilasciata la beta 7 di X#, sia la versione pubblica che la versione per il gruppo FoX. La differenza è che nella versione pubblica viene rilasciato solo il compilatore compilato con debugging attivo, nella versione per gli utenti paganti invece esiste sia la versione debug che quella senza debug (quella senza debug è molto più veloce nella compilazione).

Il supporto BYOR è quasi finito, perciò si può iniziare a lavorare effettivamente con questo strumento di sviluppo.

Infatti la versione viene ancora chiamata “beta”, ma il team di sviluppo afferma che a un anno dalla presentazione del compilatore il prodotto non è più una promessa, ma uno strumento da usare per lavorarci seriamente. Questo lo posso affermare personalmente, in quanto le prime applicazioni fatte con X# (piccole per il momento) girano già da oltre sei mesi presso alcuni miei clienti.

Per ulteriori informazioni:

https://www.xsharp.info/articles/61-xsharp-public-beta-7

Presentata la pre-release della Beta 7 di X#

Ieri il team di sviluppo ha messo a disposizione dei membri del programma FoX una versione pre-release della Beta 7 di X#.

Oltre al lavoro fatto per migliorare il supporto di codice Vulcan c’è una novità molto particolare: X# supporta i cosidetti “interpolated strings”, cioè la possibilità di usare dei parametri all’interno di stringhe, senza dover ricorrere al metodo statico String.Format(), creando codice molto più leggibile.

Questi è un semplice esempio:

cNome := “Pinco”
cCognome := “Pallino”
cEspressione := i”il nome completo è {Pinco} {Pallino}”

ma funzionano anche delle stringhe composte così:

i”La person {Nome} ha {Eta:D3} anni”

Attualmente sembra che la prossima versione, la Beta 7, sarà messa a disposizione pubblica, cioè non solo per il gruppo persone membro di FoX.

 

X# – un prodotto europeo

La storia di VO e conseguentemente di Vulcan.NET e X# è sempre stata un progetto con forte partecipazione europea – oppure come nel caso di X# un progetto esculsivamente europeo.

Già le origini del progetto “Aspen”, origine di Visual Objects, stanno in Germania, e anche lo sviluppo del prodotto stesso veniva fatto soprattutto in Germania da programmatori tedeschi.

Poi, con la continuazione del progetto da parte della GrafX, gran parte del progetto è passato negli Stati Uniti, ma dopo qualche anno di nuovo i programmatori europei sono ritornati, fino a quando l’intero team era composto solo da personaggi del vecchio continente.

Anche la XSharp BV ha sede in Europa, precisamente in Olanda (Robert v.d.Hulst), ma un contributo forte arriva dalla Grecia (da dove arrivano sia Chris Pyrgas che Nikos Kokkalis) e dalla Francia (con Fabrice Foray).

Beta 5 di X#

Il 21 giugno il team di sviluppo ha rilasciata una nuova versione del suo strumento di sviluppo. Anche questa release è stata rilasciata solo ai sottoscrittori del programma FoX. Quando sarà rilasciata la prossima versione pubblica non è stato ancora deciso.

Le modifiche tra beta 4 e beta 5 sono abbastanza consistenti:

  • sono stati risolti parecchi problemi con i template WPF all’interno di Visual Studio e aggiunti nuovi template. Da addesso è possibile creare applicazioni WPF senza restrizioni – manca però ancora IntelliSense.
  • il compilatore è stato migliorato sopratutto per il supporto dei dialetti “Vulcan” e “VO”, dovrebbe digerire ormai gran parte del codice Vulcan e VO, tra altro permette anche codice nel costruttore di una classe prima della chiamata del costruttore padre (cosa non permessa in C# e X# dialetto “Core”

Maggiori dettagli si possono trovare sulla pagina del progetto: X# Beta 5

Personalmente sono stato in grado di compilare gran parte del mio maggior applicativo WinForms scritto in Vulcan, e continuo lo sviluppo delle mia applicazione native X#, ormai quasi esclusivamente usando XIDE.

Stato attuale di X# – Beta 4

Dopo aver lavorato parecchio con la versione attuale di X#, posso riassumere lo stato attuale (cosa funziona, cosa non funziona):

  • sviluppo nuovo di applicazioni e DLL usando il dialetto “Core” e XIDE funziona benissimo
  • sviluppo di nuove applicazione e DLL usando Visual Studio 2015 e WinForms: Intellisense manca completamente, ma il compilatore funziona e genera applicazioni stabili
  • sviluppo di applicazioni e DLL usando Visual Studio 2015 e WPF: attualmente manca ancora molto. Per aggiungere una nuova finestra bisogna modificare le impostazioni del modulo manualmente su “Build Action:Page” e “Custom Tool: MSBuild:Compile”. Per aggiungere invece un file XAML con le risorse (p.es. WindowRessources.xaml), bisogna aggiungere una finestra, togliere il file prg creato e modificare le impostazioni del modulo su “Build Action: Resource” e “Custom Tool: MSBuild:Compile”. La mia conclusione personale: per XAML attualmente X# è inusabile. Usando però la creazione di finestre in codice sorgente e XIDE (la versione preferita da me) X# funziona perfettamente.
  • migrazione di applicazioni Visual Objects e Vulcan.NET: sia le librerie di supporto che i rispettivi dialetti sono sotto sviluppo, il team sta dedicando tutte le risorse a questo.
  • Uso di DLL Vulcan.NET in applicazioni X#: per quello che ho provato, funzionava tutto, compreso l’accesso ai database DBF