Il Forum di IoProgrammo sta lentamente evolvendo, con il contributo di tutti i membri potrebbe diventare il più importante punto di incontro di conoscenze e competenze relative al variegato mondo della programmazione in Italia. Con questo post lancio una "sfida": affiancare al classico modello domanda+risposta un nuovo tipo di messaggio, il mini-articolo. I programmatori più smaliziati potrebbero in questo modo condividere i loro "piccoli-grandi segreti" con i meno esperti. Molte tecniche (spesso banali) sono ignorate da chi si avvicina alla nostra forma d'arte preferita. Se i responsabili di IoProgrammo sono d'accordo con l'iniziativa si può anche pensare ad un incentivo, magari un abbonamento premio al miglior mini-articolo del mese. :-)
Attendo i vostri commenti (eventualmente negativi) sulla proposta, nel frattempo rompo il ghiaccio con un mini-articolo su Delphi .NET:
Una delle caratteristiche del .NET Framework è rappresentata dall'indipendenza dal linguaggio. In poche parole con Delphi .NET possiamo utilizzare TUTTI i componenti (controls nella terminologia .NET) e le classi implementate in C#, VB.NET, Managed C++ (ma ovviamente vale anche il viceversa!). In questo modo potremo coniugare le incredibili capacità RAD di Delphi .NET+VCL.NET con una base di codice praticamente infinita!
Dopo aver trovato il componente o la classe che fa al caso nostro non dobbiamo fare altro che importarlo/a in Delphi .NET. Distinguiamo due casi: i componenti visuali dalle librerie di classi.
A)Per importare un componente (visuale) è sufficiente cliccare sulla voce Installed .NET Components del menu Component. Troveremo il componente nella linguetta prescelta della Tool Palette, pronto per essere incluso nelle form dell'applicazione che stiamo sviluppando.
B)A titolo di esempio vediamo come impiegare Mapack, una libreria open-source SCRITTA IN C# orientata all'algebra lineare e prelevabile da http://www.aisto.com/roeder/dotnet. Supponendo di aver eseguito i passi 1) e 2) si crea un'instanza e si richiama un metodo:
var M:IMatrix; // Dichiaro la variabile M di tipo IMatrix (tutta la classe è scritta in C# ma per noi non ci sono problemi!) begin M := Matrix.Create(2,2); // Creo una matrice 2x2 M[0,0] := 2.0; M[0,1] := 1.0; M[1,0] := 2.0; M[1,1] := 1.0; // Ho inserito 2 righe linearmente dipendenti => Det=0 DeterminanteLabel.Text := 'Determinante = '+M.Determinant.ToString; // Mostro il risultato in un controllo Label end;
Oltre agli strumenti RAD e all'indispensabile VCL.NET ora possiamo contare su una vera e propria miniera di codice!
Riferimenti: