Categorie
Associazione

AUGI Meetup 2024

Siamo entusiasti di annunciare che per l’anno 2024, l’Associazione AUGI (Appeon User Group Italiano) ha programmato una serie di 8 meetup mensili imperdibili, esclusivamente riservati agli associati! Siamo pronti a immergerci in profonde discussioni e a esplorare le ultime novità riguardanti l’associazione stessa e gli strumenti di sviluppo di Appeon.

Un Anno Ricco di Conoscenza e Condivisione

I meetup online mensili di AUGI offrono un’opportunità senza pari per gli associati di immergersi nel mondo di Appeon, condividere esperienze, apprendere nuove tecniche e stabilire connessioni significative con altri membri della comunità. Sia che siate nuovi arrivati o veterani nel campo, c’è sempre qualcosa di nuovo da imparare e da condividere.

Cosa Aspettarci

Ogni meetup sarà incentrato su argomenti rilevanti, inclusi:

  1. Introduzione alle ultime novità di Appeon.
  2. Best practice nello sviluppo di applicazioni con Appeon.
  3. Approfondimenti tecnici e case study.
  4. Consigli e trucchi per ottimizzare l’efficienza dello sviluppo.
  5. Sessioni di domande e risposte tra gli associati.
  6. E molto altro ancora!

Calendario dei Meetup 2024

Per garantire che nessuno perda un solo momento di questa preziosa opportunità, ecco il calendario completo dei meetup di AUGI per il 2024:

  • 12 aprile 2024
  • 10 maggio 2024
  • 14 giugno 2024
  • 12 luglio 2024
  • 13 settembre 2024
  • 11 ottobre 2024
  • 8 novembre 2024
  • 13 dicembre 2024

Partecipate e Crescete con Noi!

Non vediamo l’ora di accogliervi ai nostri meetup mensili, dove avrete l’opportunità di connettervi con gli altri associati, apprendere dalle loro esperienze e crescere insieme come parte della comunità AUGI.

Se siete interessati a partecipare o desiderate maggiori informazioni sui nostri eventi, su come partecipare ed iscrivervi all’associazione, non esitate a contattarci. Restate sintonizzati sul nostro blog e sui nostri canali social per gli aggiornamenti e le notizie più recenti.

Unisciti a noi nell’avventura verso l’eccellenza di Appeon nel 2024 e oltre!

Categorie
Associazione

Meetup AUGI Aprile 2024

Il 12 aprile, venerdì, si è svolto il primo Meetup online dell’AUGI per il 2024. Vorrei prima di tutto esprimere il mio sincero ringraziamento a tutti i partecipanti che hanno generosamente dedicato del tempo prezioso all’Associazione. Questo incontro è stato un’opportunità importante per tutti noi per approfondire la nostra conoscenza reciproca e per condividere idee ed opinioni sul mondo di Appeon e PowerBuilder.

Durante l’incontro si è approfonditamente discusso sul futuro di PowerBuilder, e sono emerse diverse proposte riguardanti gli argomenti da trattare sia nei prossimi meetup sia in eventi specifici.
In particolare per il prossimo meetup, previsto per il 10 maggio, è stato suggerito di concentrarsi sullo sviluppo di applicazioni web e mobile utilizzando gli strumenti di Appeon, sia per nuovi progetti sia per la migrazione di quelli esistenti sviluppati con PowerBuilder in modalità client/server.
Inoltre, temi di particolare interesse, che hanno suscitato grande attenzione e verranno considerati per futuri eventi dedicati, includono:

  • Istruzione e formazione: come portare PowerBuilder nelle scuole e il ruolo che l’AUGI può svolgere in questo contesto.
  • Utilizzo di librerie esterne ActiveX e .NET, sia per l’interfaccia utente (ad esempio Ultimate Suite) che per componenti non visivi (ad esempio Chilkat e SocketTools).
  • SOAP, docking ed altri funzioni e componenti deprecati nelle ultime release di PowerBuilder e come e con cosa sostituirli

Oltre a ciò, si è rivelato di grande interesse comprendere l’effettivo utilizzo delle diverse versioni di PowerBuilder da parte degli associati, così come i database più comunemente utilizzati. A tale scopo, verranno condotti sul gruppo Whatsapp dell’AUGI dei sondaggi per raccogliere informazioni sulle versioni di PowerBuilder utilizzate e sui database preferiti sia dagli associati che dalle loro aziende.

Come già espresso, l’Associazione si impegna innanzitutto a essere uno spazio di condivisione e di conoscenza per tutti gli utilizzatori italiani di PowerBuilder. Le discussioni avvenute durante il meetup costituiscono quindi un prezioso contributo per continuare l’opera dell’associazione nel supportare gli associati nell’utilizzo e nell’applicazione ottimale dei prodotti Appeon.

Categorie
Associazione

Campagna adesione 2024

Per il 2024 l’AUGI ha preparato un’offerta molto interessante per chi voglia associarsi per la prima volta.
Infatti per i nuovi associati l’iscrizione per l’anno 2024 sarà totalmente gratuita, mantenendo comunque tutti i vantaggi previsti per i membri dell’AUGI.

Per chi invece volesse rinnovare l’iscrizione già fatta in anni precedenti, la quota è di soli 20,00€ per tutto il 2024!

Ricordiamo i vantaggi esclusivi e riservati ai vecchi e nuovi associati:

  • Gruppo Whatsapp esclusivo, dove porre domande, dubbi e per le comunicazioni tra gli associati
  • Meetup online mensili dove incontrarsi e scambiare informazioni e opinioni con gli altri associati sul mondo Appeon
  • Eventi online o in presenza organizzati solo per i membri dell’associazione
  • Accesso all’area riservata del sito augi.group contenente video ed articoli esclusivi
  • Registrazione ed accesso alla Directory AUGI, dove saranno pubblicate le schede informative degli associati e delle aziende sponsor

Ma sopratutto la possibilità di partecipare attivamente alla più importante community italiana dedicata a PowerBuilder ed agli strumenti di sviluppo Appeon.

Per iscriversi all’AUGI basta mandare una semplice mail ad info@augi.group indicando:

  • Nome e cognome
  • Indirizzo e-mail
  • Telefono cellulare (per il gruppo Whatsapp)
  • Dati azienda, se l’adesione verrà fatta tramite l’azienda

Categorie
Associazione

1° Meeting AUGI 2024

L’associazione AUGI – Appeon User Group Italiano, il principale punto d’incontro italiano per gli sviluppatori ed utilizzatori dei prodotti Appeon, è lieta di invitarti al suo evento annuale che si terrà online il 1° marzo 2024 alle ore 17:00 al link: https://meet.google.com/uzu-rgmq-yqh.

Agenda dell’evento

  1. Presentazione dell’Associazione AUGI
    • Scopri la storia e l’evoluzione dell’Appeon User Group Italiano
    • Conosci i membri dell’associazione e le risorse disponibili per gli associati
  2. Scopi e obiettivi dell’AUGI
    • Approfondisci la missione dell’AUGI nel promuovere la conoscenza e lo sviluppo di competenze relative ai prodotti Appeon quali PowerBuilder, PowerServer e SnapDevelop
    • Esplora le opportunità di networking e collaborazione tra i membri
  3. Campagna di Adesione 2024
    • Scopri i dettagli della campagna di adesione all’associazione per il 2024 ed i vantaggi per i membri
  4. Sessione di Domande e Risposte
    • Metti in chiaro dubbi e curiosità con una sessione interattiva di domande e risposte sia sull’associazione che sui prodotti Appeon
    • Fornisci riscontri e suggerimenti per migliorare l’esperienza dell’associazione

Partecipa a questo evento imperdibile per connetterti con la principale community indipendente italiana dedicata agli strumenti di sviluppo Appeon e contribuire alla crescita della tua esperienza con i prodotti Appeon!

Come partecipare

La partecipazione è libera e gratuita.

Grazie per il tuo interesse e il tuo continuo supporto. Non vediamo l’ora di condividere con te le ultime novità e progetti dell’AUGI!

Categorie
PowerBuilder Tips

Da Byte Array a Image

In diversi contesti, ad esempio a seguito di chiamate ad API web, si rende necessario convertire un’immagine restituita come byte array nel corrispondente file. Vediamo in questo articolo come fare in C# e PB.

Indice

Introduzione
L’origine in C#
In Powerbuilder: array e blob
Consume in Powerbuilder

Introduzione

Un webservice che ritorna un’immagine è una funzionalità molto utile in molti casi d’uso. Ad esempio, può essere utilizzato per fornire immagini dinamiche in un’applicazione web o mobile, come per esempio la generazione di miniature di immagini o l’applicazione di filtri.

Un webservice che ritorna un’immagine può essere utilizzato per integrare immagini in altri sistemi, come la generazione di report, la creazione di documenti o la generazione di mappe personalizzate.

In sintesi, un webservice che ritorna un’immagine consente una maggiore flessibilità nella gestione delle immagini e consente di integrarle in altri sistemi in modo semplice e scalabile.

Questa funzionalità permette di mantenere le immagini separate dalla logica dell’applicazione , ed è utile quando l’immagine deve essere fornita da un sistema separato o per evitare che l’immagine stessa venga utilizzata da più sorgenti senza che le modifiche apportate all’immagine originale vengano riprodotte in tutte le applicazioni che la utilizzano.

L’origine in C#

In C#, è possibile convertire un’immagine in un array di byte utilizzando la classe System.IO.MemoryStream e la classe System.Drawing.Image.

La classe System.IO.MemoryStream è un flusso di memoria che consente di creare, gestire e utilizzare un buffer di memoria come se fosse un flusso tradizionale. La classe System.Drawing.Image è invece utilizzata per creare, gestire e utilizzare immagini.

Per convertire un’immagine in un array di byte, è possibile utilizzare il seguente codice:

using System.Drawing;
using System.IO;

// Carica l'immagine da convertire
Image image = Image.FromFile("path/to/image.jpg");

// Crea un nuovo flusso di memoria
using (MemoryStream ms = new MemoryStream())
{
    // Salva l'immagine nel flusso di memoria
    image.Save(ms, ImageFormat.Jpeg);
    // Recupera i dati del flusso di memoria come array di byte
    byte[] imageData = ms.ToArray();
}

Il codice sopra carica un’immagine utilizzando la classe System.Drawing.Image.FromFile() e la salva in un nuovo flusso di memoria utilizzando il metodo Save().

Infine utilizzando il metodo ToArray() del memorystream si può recuperare i dati come array di byte.
È possibile utilizzare anche il metodo Image.Save() per salvare l’immagine in un file e utilizzare la classe FileStream per leggere i dati del file in un array di byte.

using System.IO;

//Salva l'immagine nel file
image.Save("path/to/image.jpg", ImageFormat.Jpeg);

// Crea un nuovo FileStream per leggere i dati dell'immagine
using (FileStream fs = new FileStream("path/to/image.jpg", FileMode.Open, FileAccess.Read))
{
    // Crea un array di byte per contenere i dati dell'immagine
    byte[] imageData = new byte[fs.Length];
    // Legge i dati dell'immagine nel array di byte
    fs.Read(imageData, 0, (int)fs.Length);
}

Questo codice utilizza la classe System.IO.FileStream per leggere i dati dell’immagine in un array di byte. Il FileStream viene utilizzato per aprire il file in modalità lettura e utilizzare il metodo Read() per leggere i dati nel array di byte.

In entrambi i casi il risultato finale è un array di byte che contiene i dati binari dell’immagine e può essere utilizzato per scopi come la trasmissione dei dati, la memorizzazione in un database o qualsiasi altro scopo per cui si voglia utilizzare i dati binari dell’immagine.

È importante notare che ci sono diverse proprietà e metodi in C# per gestire i formati delle immagini e la loro conversione. Ad esempio, la classe Image fornisce il metodo Save() con il quale è possibile salvare l’immagine in diverse formati come Jpeg, Png, Gif e molti altri. In questo modo, è possibile scegliere il formato più appropriato per il proprio progetto.

Inoltre, si può utilizzare la classe ImageConverter per convertire un’immagine in un array di byte:

ImageConverter converter = new ImageConverter();
byte[] imageData = (byte[])converter.ConvertTo(image, typeof(byte[]));

In conclusione, convertire un’immagine in un array di byte in C# è un’operazione semplice che può essere effettuata utilizzando la classe System.IO.MemoryStream o la classe System.IO.FileStream e utilizzando le proprietà e i metodi della classe System.Drawing.Image. È importante considerare il formato desiderato per l’immagine e la gestione della memoria quando si lavora con grandi quantità di dati. Utilizzando le funzionalità appropriate e una buona gestione della memoria, è possibile creare soluzioni efficaci e scalabili per la gestione delle immagini in C#.

Inoltre, si può utilizzare la classe ImageConverter che fornisce un modo semplice e veloce per effettuare la conversione, senza doversi preoccupare di utilizzare MemoryStream o FileStream.

In generale, è importante scegliere la soluzione più appropriata per il proprio progetto, tenendo conto delle esigenze specifiche, delle prestazioni, della memoria e della compatibilità dei formati. E’ sempre una buona pratica effettuare test delle prestazioni e verificare la corretta gestione della memoria per garantire che la soluzione scelta sia adeguata per le esigenze del progetto.

In Powerbuilder: array e blob

PowerBuilder è un ambiente di sviluppo integrato (IDE) utilizzato per creare applicazioni aziendali. Tra le sue funzionalità c’è la possibilità di lavorare con array di dati e Blob (binary large object). Un array è una raccolta ordinata di dati del medesimo tipo, mentre un Blob è un tipo di dato che può contenere una grande quantità di dati binari, come immagini, documenti o file audio. In alcuni casi, potrebbe essere necessario convertire un array in un blob per la memorizzazione o la trasmissione dei dati.

La conversione di un array in un Blob può essere utile in diversi casi. Ad esempio, potrebbe essere necessario memorizzare un’immagine in un database, ma le immagini sono tipicamente rappresentate come array di byte. In questo caso, è necessario convertire l’array in un Blob prima di memorizzarlo nel database. Un altro utilizzo potrebbe essere la trasmissione di dati tramite una connessione di rete, in quanto i dati binari (come i file audio, video o immagini) possono essere più facilmente trasmessi come Blob rispetto ad array di byte.

Per convertire un array in un blob in PowerBuilder, è necessario utilizzare la funzione Blob(). Questa funzione accetta come parametro un array e restituisce un oggetto blob che rappresenta i dati dell’array.

// Creiamo un array di interi
integer li_array[]
li_array[1] = 1
li_array[2] = 2
li_array[3] = 3

// Convertiamo l'array in un blob
blob lb_blob
lb_blob = Blob(li_array)

Nell’esempio sopra, l’array “li_array” è un array di interi che contiene i valori 1, 2 e 3. La funzione Blob() viene utilizzata per convertire l’array in un oggetto blob “lb_blob” contenente i dati dell’array.

Una volta convertito l’array in un blob, è possibile utilizzarlo per la memorizzazione o la trasmissione dei dati. Ad esempio, si può memorizzare un blob in una colonna BLOB del database per salvarvi le immagini, i file audio o qualsiasi altro tipo di dati binari. Oppure, si può inviare un blob attraverso una connessione di rete, utilizzando un protocollo come FTP o HTTP, per trasmettere i dati.

D’altra parte è possibile convertire un blob in un array e viceversa.

Blob lblb_1
Any a
byte lbyte_array[], lbyte_array2[]

// initialize array
lbyte_array[] = {1,10,100,200,255}
a = lbyte_array
lblb_1 = Blob(a)
lbyte_array2[] = GetByteArray(lblb_1)

La conversione tra array e blob può essere utile in alcune situazioni specifiche in cui i dati devono essere memorizzati o trasmessi in modo differente rispetto alla loro forma originale.

In conclusione, la conversione tra array e blob in PowerBuilder è una funzionalità utile che può essere utilizzata in situazioni specifiche per la memorizzazione o la trasmissione dei dati. Tuttavia, è importante essere consapevoli delle implicazioni della conversione e valutare se sia la scelta più appropriata per il proprio progetto. Inoltre, utilizzando le funzioni appropriate, è possibile manipolare i dati all’interno del blob in modo più efficiente.

Consume in Powerbuilder

Capito quanto sopra, la visualizzazione di un’immagine che arriva da una byte array passando per un blob è un’operazione semplice e comune nello sviluppo di applicazioni.

Il primo passo per utilizzare questa funzione è quello di creare un oggetto BLOB a partire dall’array di byte. È possibile farlo utilizzando la funzione “Blob()”, passando come parametro l’array di byte. Una volta creato l’oggetto BLOB, è possibile assegnarlo a un oggetto picture.

Il codice seguente mostra come convertire un array di byte in un’immagine in PowerBuilder:

p_1.setpicture(lblob_raw)
Categorie
PowerBuilder Tips

MySQL & PB: ID autoincrementali

Gli ID autoincrementali sono tra i campi più utilizzati come chiavi primarie nelle tabelle dei database relazionali; hanno il pregio di essere compatti, facili da leggere e generati dal database, quindi automaticamente univoci.

PowerBuilder offre un ottimo supporto agli ID autoincrementali all’interno delle datawindow e dei datastore. Basta infatti specificare, nella schermata Update Properties del DataWindow Painter, qual è la Identity Column della tabella perchè PB si occupi – dopo una INSERT – di recuperare il valore generato dal database e inserirlo nel corrispondente campo della datawindow o del datastore.

Categorie
Associazione

Sviluppatori PowerBuilder italiani, unitevi!

Nel Marzo del 2018 partecipavo all’ Appeon PowerBuilder Italian Regional Seminar organizzato dalla Softpi all’Hotel Boscolo di Firenze in cui si illustravano le novità della Release 2017 di Powerbuilder e la Roadmap di Appeon per lo sviluppo del prodotto.