RAVAL v2.10.2EN

Download

RAVAL è libera: si usa, si modifica e si ridistribuisce con la licenza MIT.

RAVAL 2.10.2

La libreria compilata (RAVAL.dll per .NET 10), i commenti per l'IntelliSense (RAVAL.xml), la licenza, il README e le schede.

RAVAL-2.10.2.zip

255 kB

Il tutorial in PDF

«Avalonia solo in codice»: dal primo programma ai componenti di RAVAL, con le figure. Da leggere e stampare.

PDF

9.5 MB

Per usarla

  • .NET 10 SDK, Windows, Linux o macOS.
  • Avalonia 12.1.4 (pacchetti NuGet Avalonia, Avalonia.Desktop, Avalonia.Themes.Fluent).
  • Nel progetto: <Reference Include="RAVAL"><HintPath>lib\RAVAL.dll</HintPath></Reference>, con la DLL nella cartella lib del progetto.

Le versioni

  • 2.10.0: tema e lingue, scritti da zero (le idee di RTRANSLATE, non il codice).
    • RThemes.Standard(), la tavolozza grafite di ASTRIP resa standard.
    • RTheme: chiaro, scuro o come il sistema, ricordato in RSettings, menu e bottone sole/luna, cambio senza riavviare.
    • RLang: un file per lingua (JSON o INI via RSettings), T con il testo predefinito e le chiavi mancanti aggiunte al file, Tr per i controlli che cambiano lingua da soli, i testi di RAVAL già in italiano.
    • Paragrafi 16.6 e 16.7 del tutorial, scheda DOC/RApp.md, prove in TEST_RAVAL\ProveLingue.cs.
  • 2.9.0: RChart fa anche il plotter XY e il registratore.
    • RSeries.Style (linea, punti o tutti e due) con ascisse in qualunque ordine; At per bisezione.
    • TimeAxis con le divisioni su tempi tondi (RTime); MinX e MaxX.
    • RLiveSeries per i dati dal vivo da qualunque thread, ridisegnati a lotti, con la finestra che scorre.
    • Zoom con la rotella, spostamento trascinando, doppio clic per tornare: il marcatore si mette al rilascio di un clic fermo.
    • Le etichette d'ascissa che si toccherebbero si saltano; nella legenda le serie a punti hanno un pallino.
    • Paragrafo 21.4 del tutorial (esempio Registratore.cs), prove in TEST_RAVAL\ProveCurve.cs.
  • 2.8.0: gli altri grafici.
    • RSmithChart e RPolarChart vengono dal simulatore ASTRIP (MIT), tradotti e completati: zoom e spostamento della vista, marcatori con frequenza, Z e VSWR, cerchi colorati, esportazione a 300 dpi; il polare in dB, con lo zero in alto e il verso orario per i diagrammi d'antenna.
    • RSmithMath (cartella RF, senza Avalonia): Γ, Z, VSWR, i cerchi della griglia, stabilità, Rollett, guadagno unilaterale e rumore.
    • RBarChart, barre affiancate o impilate; RHeatMap, la mappa di colori con quattro scale.
    • Capitolo 21 del tutorial (esempio GraficiRF.cs), prove in TEST_RAVAL\ProveGraficiRF.cs; gli inciampi passano al 22.
  • 2.7.0: tabelle grandi e oggetti.
    • RVirtualTable: un ListBox virtualizzato con colonne a larghezza fissa. LoadCsv, ordine per valore o alfabetico, filtro, scelta sempre riferita a Rows. Centomila righe si aprono in 0,3 s e si ordinano in 0,2.
    • RPropertyList.Show(oggetto): le proprietà pubbliche, modificabili, riscritte nell'oggetto con la conversione al tipo, Rejected per i testi che non si convertono, attributi di System.ComponentModel.
    • RFormat.TryParse, e Parse che legge «10 MHz» anche senza unità indicata.
    • Capitolo 20 del tutorial (esempio Archivio.cs), prove in TEST_RAVAL\ProveVirtuale.cs; gli inciampi passano al 21.
  • 2.6.0: appunti e trascinamento. RClipboard: testo, tabelle con le tabulazioni da e verso un foglio di calcolo (SetTable, GetTable, Tsv, Cells), immagini, file come percorsi. RDrop: i file lasciati su un controllo arrivano a un metodo, solo quelli dei modelli («*.csv»); il puntatore dice subito se il controllo li accetta, e la classe drop (con droparea in RStyles.Clean) colora il riquadro. Scheda DOC/RDialoghi.md, capitolo 19 del tutorial (esempio Scambio.cs), prove in TEST_RAVAL\ProveAppunti.cs; gli inciampi passano al 20.
  • 2.5.1: manutenzione, senza funzioni nuove.
    • RImage rispetta l'opacità dei controlli: prima un valore attenuato o una riga di stato al 75% uscivano pieni nelle immagini.
    • RChart.Culture (predefinita: invariante) fa scrivere assi e marcatori con il punto, come tabella e CSV; prima usava la virgola del computer.
    • RSettings in JSON scrive gli accenti come sono, non come à.
    • Le figure di ESEMPI_RAVAL escono ad almeno 300 dpi e 2400 pixel (prima 96 dpi, sotto la regola dei libri), e gli esempi dei componenti hanno lo stile Clean: i bottoni della barra non sono più grigi.
    • Prove in TEST_RAVAL\ProveCorrezioni.cs.
  • 2.5.0: dialoghi e file in una riga. RDialog (Info, Warning, Error con i dettagli dell'eccezione e la riga nel log, Confirm, Ask, Choose; testi cambiabili per un'altra lingua) con la finestra RDialogBox, la cui risposta (Answer) vale −1 per Esc e crocetta. RFiles apre i selettori di file e cartelle con i tipi scritti «nome|.a;.b» e risponde con il percorso; ReadText e WriteText per i file di testo. Scheda DOC/RDialoghi.md, capitolo 18 del tutorial (esempio Appunti.cs), prove in TEST_RAVAL\ProveDialoghi.cs; gli inciampi passano al 19. I commenti /// di RTree e RTreeNode ora stanno anche loro negli 80 caratteri di UI.
  • 2.4.0: i dati dell'albero senza Avalonia. RNode (cartella Data) legge JSON e XML in una classe sola, con le letture per percorso e predefinito (GetInt("server.port", 5080), "server/@port"), la modifica (Set, Add, Remove), la scrittura (ToJson, ToXml, Save) e il passaggio da un formato all'altro. RTreeNode.FromJson e FromXml passano da RNode, che resta nel Tag di ogni nodo (prima c'era il JsonNode o l'XElement); nuovi RTreeNode.FromNode e RTree.LoadNode. Scheda DOC/RDati.md, paragrafo 17.3 del tutorial, prove Dati in TEST_RAVAL\ProveAlbero.cs.
  • 2.3.0: l'albero. RTreeNode (testo, valore, chiave del percorso, figli aggiunti o letti da un caricatore la prima volta che servono; FromJson, FromXml, FromFolder) e RTree, un TreeView riempito in codice che costruisce le voci solo quando un nodo si apre (centomila valori JSON in meno di due decimi di secondo), con scelta, Opened, Find per percorso, filtro e casella di ricerca. Prove in TEST_RAVAL\ProveAlbero.cs, scheda DOC/RGrafica.md, capitolo 17 del tutorial (esempio Albero.cs); gli inciampi passano al 18.
  • 2.2.0: log e impostazioni, scritti da zero con licenza MIT (le idee vengono dal modo di lavorare dei programmi dell'autore, il codice no): RLog con i livelli, i colori (sulla console e nella finestra, anche a 24 bit e per singola riga), il file che ruota e un thread suo, RLogView per vederlo dal vivo, RSettings in JSON (RJsonSettings) o INI (RIniSettings) con le stesse chiamate, Remember per la finestra che riapre dov'era, RRecentFiles per i file recenti; RStyles.Apply(controllo) per gli stili di un solo controllo. Prove in TEST_RAVAL\ProveApp.cs, scheda DOC/RApp.md, capitolo 16 del tutorial (esempio Registro.cs); gli inciampi passano al 17.
  • 2.1.6: documentazione allineata alla libreria. Il riferimento (DOC_RAVAL) scrive anche gli eventi e i campi pubblici, che prima mancavano, e mette i pezzi pronti di RAva sotto «Ready-made look»; il tutorial ha il capitolo 15 nuovo, uno strumento di misura con RChart, RTable, RPropertyList, RFormat, RCsv, RImage e RStyles (esempio ESEMPI_RAVAL\Esempi\Strumento.cs, figure 15_strumento), e gli inciampi passano al capitolo 16. Nessuna funzione della libreria cambiata.
  • 2.1.5: RImage.SavePng scrive nel PNG la risoluzione vera (blocco pHYs in pixel al metro, con il suo CRC), come chiedono i libri; RImage.SetDpi e RImage.Dpi per i PNG fatti altrove.
  • 2.1.4: RImage disegna a 96 dpi su una bitmap già grande quanto la risoluzione chiesta, con la scala come trasformazione: a 300 dpi RenderTargetBitmap perdeva le scritte disegnate dopo un ritaglio (la legenda e i marcatori di RChart). RChart lascia a destra lo spazio per l'ultima etichetta dell'asse.
  • 2.1.3: RTable non esce più dall'array quando le colonne cambiano dopo le righe: le celle che mancano restano vuote (trovato da ASTRIP, che rifà le colonne della tabella dei marcatori).
  • 2.1.2: una curva di RChart senza nome si disegna ma resta fuori dalla legenda e dalle letture dei marcatori (le nuvole del Monte Carlo).
  • 2.1.1: RCsv: le colonne di numeri, le curve di un RChart e le righe di una RTable in CSV, con le virgolette di RFC 4180, e la lettura.
  • 2.1.0: le funzioni grafiche e di conversione (chieste da ASTRIP): RChart con RSeries, RLimit e i marcatori al clic, RTicks (divisioni 1-2-5), RImage (figure a qualunque dpi), RFormat (prefissi SI scritti e riletti), RColor (mescolare, esadecimale, luminanza, tavolozza), RTable e RPropertyList, RStyles (stili in codice senza lambda, Clean, Accent) e in RAva Caption, Card, Bar, ToolbarButton, CodeBox. Provate in TEST_RAVAL/ProveGrafica.cs; scheda in DOC/RGrafica.md.
  • 2.0.0: RAVAL è in inglese per tutti, anche per il libro italiano: classi, estensioni, commenti dei sorgenti e messaggi di errore. Le estensioni hanno il nome della proprietà che impostano (Margin, Content, Background...), gli eventi On... (OnClick, OnEnter...), i pannelli pronti HStack, VStack, Grid; le classi sono RThemes, RRequest, RResponse, RHttpError. Il JSON degli errori è { "error": "..." }. Non è compatibile con la 1.x: la tabella dei nomi vecchi e nuovi è in DOC/NOMI_2.0.md. Il riferimento delle classi per il sito lo genera DOC_RAVAL.
  • 1.3.9: anche <Company> e i testi (README, tutorial) nominano solo Ing. Roberto Arato; il nome della ditta resta nel logo e in copertina. Nessuna funzione cambiata.
  • 1.3.8: il titolare del copyright è Ing. Roberto Arato: intestazioni dei sorgenti, LICENSE, <Copyright> in Directory.Build.props, README. Nessuna funzione cambiata.
  • 1.3.7: accessibilità (RAVAL\UI\RAvaAccesso.cs, chiesta da AVA_BOOK): Nome(s) per il nome che annuncia il lettore di schermo; Contenuto("_Prenota") mette anche il nome «Prenota», perché Avalonia lo annuncerebbe con il trattino. Provate in TEST_RAVAL\ProveAccesso.cs.
  • 1.3.6: voci dei menu (RAVAL\UI\RAvaMenu.cs, chieste da AVA_BOOK): AlClic per il MenuItem e Tasto("Ctrl+S"), che mette insieme InputGesture e HotKey; provate in TEST_RAVAL\ProveMenu.cs.
  • 1.3.5: le intestazioni di tutti i sorgenti dicono «Licenza MIT: vedi il file LICENSE» al posto di «Tutti i diritti riservati». Nessuna funzione cambiata.
  • 1.3.4: Sfondo e Imbottitura valgono anche per il TextBlock, che in Avalonia 12 ha Background e Padding (segnalato da AVA_BOOK); prima davano l'errore «non ha questa proprietà».
  • 1.3.3: licenza MIT (file LICENSE, PackageLicenseExpression nel .csproj, README, tutorial); il codice si scarica da https://raval.aratoingegneria.it. Nessuna funzione cambiata.
  • 1.3.2: il commento di AlInvio e il tutorial dicono come si comporta davvero Invio in una TextBox (una riga: passa; AcceptsReturn: va a capo e lo segna gestito) e l'ordine inverso dei gestori della stessa fase; misurati con la tastiera finta in TEST_RAVAL\ProveInvio.cs. Nessuna funzione cambiata.
  • 1.3.1: i sorgenti di RAVAL\UI portati entro 80 caratteri per riga, per le figure del libro; nessuna funzione cambiata.
  • 1.3.0: RServer (API JSON su Kestrel) con RRichiesta, RRisposta, RErroreHttp; avvio senza await (Avvia/Ferma), con un thread (Esegui) o con await. Nel tutorial il capitolo 2 nuovo su thread, Task e await (esempi --thread e sei diagrammi) e il capitolo 14 sul server.
  • 1.2.0: testo e cornici (Corpo, Grassetto, Colore, Bordo, Imbottitura, Sfondo...), pannelli pronti (InRiga, InColonna, Griglia), eventi senza lambda (AlCambioTesto, AlInvio, AlSpunta, AlCambioSelezione, Ogni, AlCambioTema), colori (RAva.Pennello, RTemi). RAva è divisa per gruppo in più file (partial); nel tutorial il capitolo 12 le spiega con una rubrica.
  • 1.1.0: RAVAL tiene solo gli strumenti per scrivere codice Avalonia. Visualizzatore HTML, classi PDF e miniature dei PDF sono usciti dalla libreria, e con loro i capitoli 12 e 13 del tutorial.
  • 1.0.0: prima versione (estensioni, visualizzatore HTML, classi PDF).