Newsgroup: it.comp.lang.delphi
Titolo: una dritta per Delphi for .NET per sviluppatore pentito

Sono un ex sviluppatore Delphi (dalla versione 1 per win 3.1 alla Delphi 5) 
poi passato a Microsoft C# per sviluppare in ambiente web/IIS (
ASP.NET
).
Abbiamo buttato via due anni a filosofeggiare, ed ora siamo tornati 
indietro, abbiamo acquistato Delphi 2005 Architect e stiamo tentando di fare 
il porting delle vecchie applicazioni per Delphi 5 sulla piattaforma 
Microsoft .NET.
Premettendo che stiamo cercando di capire le implementazioni che 
scaturiscono dal supporto per i namespaces del framework .net, ora abbiamo 
un serio problema di cui non capiamo la fonte:
se apro un nuovo progetto Delphi Windows Forms VCL for .NET e inserisco un 
semplice controllo preso dalla palette Data Controls, ripeto uno qualsiasi, 
senza settare alcuna proprietą, ed eseguo l'applicazione, mi si genera un 
errore di runtime "System.Security.SecurityException with message 'Request 
failed'" e non riesco a capirne il motivo.
Ovviamente se il form non ha nessun controllo preso dalla palette "data 
controls" l'applicazione parte senza problemi.
Datemi una mano, vi prego, ho lottato 2 anni per spiegare che Visual Studio 
era anni luce indietro e ora non riesco a ripartire.
VCL for .NET dovrebbe tranquillamente farmi utilizzare i componenti data 
access in una form windows, e che cavolo!!!
Grazie 

Prova su un pc dove non hai installato 
vs.net
AS


ok ci provo ma ci sono quindi controindicazioni ad avere Visual Studio 2003 
Enterprise Architect in contemporanea sulla stessa macchina?
Da VisualStudio riesco comunque a lavorare, senza problemi.
Se fosse così sarò costretto a usare due PC...
Grazie comunque
AleVi 

 Enterprise Architect in contemporanea sulla stessa macchina?
lasciamo perdere le speculazioni intellettuali...
Nessuno ti dira' mai che la presenza di un sw è incompatibile con la 
presenza di altri sw.
Il mio suggerimento nasce solo dalla considerazione di ordine pratico 
che a te serve un delphi2005 che funzioni.
Comincia a ridurre le troppe variabili in gioco...
Hai troppe cose che potrebbero causare il tuo problema.
Quindi, riparti da zero...
Prendi un pc, lo formatti, ci metti os, il fw e poi installi delphi2005 
e vedi se va.
Poi, ti fai una immagine di questo pc, ma non usare il backup di sistema 
di windows che NON RIPORTA LO STATO DEL SISTEMA ESATTAMENTE COME PRIMA.
Poi installi 
vs.net
 e vedi cosa succede.
Per rimuovere altre varibaili ed altre complessità, non installare altri 
sw tipo office, clients di database etc etc.
AS

 un serio problema di cui non capiamo la fonte [...]
Non ho ben capito quali siano i problemi riguardo i "namespace", ad ogni 
modo concordo con quanto suggerito da Alberto in merito ad una 
reinstallazione della macchina.
Sulla mia convivono addirittura ambienti relativi alla prossima versione 
di .NET, ma siccome spesso l'installazione di questi tool, in quanto 
ambienti di sviluppo, modifica in parte la configurazione del framework, 
è possibile che utilizzando Visual Studio e producendo soluzioni con 
questo ambiente siano state apportate modifiche ad impostazioni di 
sicurezza che, in qualche modo, impediscono l'esecuzione del codice 
"gestito" su D2005.
Detto questo, aggiungo il mio personale "bentornato all'ovile"... sono 
in fase di ripasso approfondito dello sviluppo con D2005 su Win32 e di 
approfondimento su 
VCL.NET
, quindi sarò contento di condividere 
esperienze e opinioni a riguardo. :-)
Ciao,
   Marco.
-- 
MARCO «Alka» BREVEGLIERI   <marco [@] abls [.] it>
 
http://www.marco.breveglieri.name

 Enterprise Architect in contemporanea sulla stessa macchina?
Nessuna controindicazione. Anzi, se usi Delphi 2005 con C#, questo 
beneficia della presenza di Visual Studio, con il quale puoi creare i 
DataSet da zero ed editarli visualmente. In tal senso l'ambiente Borland 
è piuttosto carente perchè ti permette di creare un DataSet solo a 
partire dalla DataTable e poi ti fa editare solo il codice XML sorgente. 
Il fatto che siano presenti entrambi ti permette, da Delphi, di eseguire 
direttamente un'istanza di Visual Studio con la quale colmare queste 
lacune. La cosa è triste, ma meglio evitare commenti.
Io in genere installo sempre per ultimo l'ambiente che uso più spesso, 
per evitare che altre installazioni "interferiscano" con la sua 
configurazione. Quindi ti posso consigliare di provare ad installare 
prima Visual Studio e poi Delphi, in modo che il primo, installandolo, 
non influisca sull'installazione del secondo.
Ciao,
Gianluca.

 lacune. La cosa è triste, ma meglio evitare commenti.
Non ho ben capito a quale procedura fai riferimento con questi singoli 
passaggi. :-/


 indietro, abbiamo acquistato Delphi 2005 Architect e stiamo tentando di > fare il porting delle vecchie applicazioni per Delphi 5 sulla
Cosa avete trovato di cosi' deleterio in 
vs.net
 da fare un passo del
genere? Puoi dare qualche info?
Credo che la cosa interessi un po tutti, qui...
Senza ovviamente scatenare guerre di religione. ;-)
AS

 Senza ovviamente scatenare guerre di religione. ;-)
Uuuuh, questo sarà molto difficile.
Sono già pronto alla "crociata"... scherzo. ;-)


 Sono già pronto alla "crociata"...
Marco, come 6 euforico, stamane...
Cosa hai fatto questo weekend..??? ;-))))
AS

 Cosa hai fatto questo weekend..??? ;-))))
Ho letto 1/3 di "Mastering Borland Delphi 2005"... :-D
Ciao,
   Marco.


 Ho letto 1/3 di "Mastering Borland Delphi 2005"... :-D
Credevo qualcosa di meno "professionale" e piu' "ludico", a meno che tu
non abbia sedotto una sviluppaTRICE delphi..... ;-P
AS

 passaggi. :-/
Mi riferisco alla creazione di un DataSet tipizzato vuoto (non VCL.Net 
ma un DataSet di ADO.Net). In VS.Net2003 è possibile, mentre in Delphi 
.Net puoi farlo solo generandolo a partire da una DataTable già 
inserita, ad esempio, nel form. Inoltre l'editazione del DataSet stesso 
può essere fatta solo attraverso il codice XML, mentre, in VS.Net2003 
hai un editor visuale abbastanza comodo.
Oltre al fatto che spesso, ridenominando gli elementi XML (ma spesso 
anche gli attributi delle classi), pur compilando correttamente 
l'applicazione, l'Intellicode continua a mostare i vecchi membri ed il 
compilare Jit continua a segnalare errori che non esistono.
Ciao,
Gianluca.

 hai un editor visuale abbastanza comodo.
Ora ho capito a cosa ti riferivi, sorry... :-)
Sì, un editor simile a quello di Microsoft è presente in Delphi ma solo 
per i componenti BDP, mentre Borland non ha evidentemente ritenuto 
necessario spendere tempo per replicare un wizard di Visual Studio per 
le piattaforme di accesso ai dati proprie di Microsoft quali OLE DB e 
ODBC (e forse SQL Server).
Ognuno tenta di spingere le proprie librerie... :-)
Ciao,
   Marco.
-- 
MARCO BREVEGLIERI
  (
http://www.marco.breveglieri.name
)

 ha scritto nel messaggio 
news:1127719972.6...@g14g2000cwa.googlegroups.com...

Grazie intanto a tutti anche solo per avermi letto.
Ti spiego cosa abbiamo sbagliato, sperando di non annoiarvi...
La mia azienda abbandonava per scelta il settore dello sviluppo dei software 
gestionali, abbracciando invece la rivendita e assistenza di uno già fatto, 
e si lanciava nello sviluppo di interfacce web (essendo già ISP e operatore 
telefonico) e così doveva scegliere una piattaforma.... siamo nel 1999.
Prova una roba che si chiamava credo Intrabuilder, ovvero JAVA di Borland 
per siti web, ma detto tra noi perchè inseguire la chimera di creare 
software multipiattaforma quando il nostro mercato è al 99% Microsoft? E 
così diventammo Microsoft Certified Partner, passammo a ASP, applicammo il 
Visual Basic (che detto per inciso è quanto di più lontano ci possa essere 
da un linguaggio OOP) e ci divertimmo a fare siti con ASP & Microsoft 
Commerce Server 2000 (gran bella piattaforma).
Così scoprimmo 
ASP.NET
 e il bel C#, proseguimmo nello sviluppo perchè 
finalmente si sviluppava ad oggetti per il web, si compilava ed era davvero 
una bella piattaforma, dato che senza alcun problema i nostri web creano 
account di active directory, di SQL Server, aprono cartelle, sincronizzano 
dati bidirezionalmente, aprono caselle di posta in Exchange, scrivono nel 
radius ecc... insomma si sarà capito che uno sviluppatore di Delphi (ma 
prima ancora di Turbopascal e TurboVision) si innamorò del C# e si divertiva 
davvero tanto a prendere in giro il mercato dei PHPpisti.
Corsi e ricorsi storici ed ora abbiamo un cliente che ci ha commissionato un 
sistema gestionale per un centinaio di sedi distaccate, e ci troviamo a 
dover ampliare l'interfaccia e le funzioni del nostro gestionale rivenduto, 
che è scritto in C#, ma le "Windows Forms" in VS sono una vera cagata 
rispetto a Delphi, sia per ricchezza di componenti che per stabilità del 
tool di sviluppo, sia per la ancor mega cagata di 
ADO.NET
 che costringe a 
sviluppare stateless anche in una rete locale....
allora io dico: diamo una occhiata al nuovo Delphi, che dice di essere 
compatibile con .NET, che è la piattaforma migliore per lo sviluppo, sempre 
tenendo conto del nostro mercato, e vediamo se possiamo sviluppare 
l'interfaccia del client con delphi, rispolverando tutte le vecchie 
librerie, ricompilando il pascal in dll riutilizzabili e dando ai 
programmatori (che nel frattempo sono stati sostituiti con gente che conosce 
solo il C# applicato a 
ASP.NET
) una libreria di oggetti compilata nel pascal 
.NET ma estesa da quel punto in poi da C#, sempre in Delphi, e finalmente 
riutilizzando ADO o OLEDB da dentro un bel datamodule di Delphi, e vediamo 
cosa ne esce...
Insomma una bella scommessa, per me che sono il legale rappresentante della 
società e capo del settore sviluppo.... 

 ha scritto nel messaggio 
news:dh42c3$1343$1...@newsreader2.mclink.it...

Ho appena installato Delphi 5 su un PC quasi vergine, dove non c'era Visual 
Studio, e funziona perfettamente.
A questo punto, dato che non posso pensare di avere 2 pc per sviluppare 
sulla scrivania, e non posso nemmeno pensare di riformattare la mia attuale 
postazione di lavoro (4 anni di perfetto funzionamento, senza ingrippamenti) 
faro una bella cosina: installo Microsoft Virtual PC sulla macchina e dentro 
ci installo Delphi 5, e tutto funge di sicuro!
Grazie a tutti per i consigli 

 società e capo del settore sviluppo.... 
Azz! tu 6 uno di quelli che tartassa gli sviluppatori con la logica del 
"si, è una latrina, ma andiamo di fretta!"??? ;-)))
A parte cio, grazie x tutte le info. :-)
AS

 società e capo del settore sviluppo.... 
Dato che ci rimetti di tuo (parlo da legale rappresentante a legale 
rappresentante), informati in modo estremamente approfondito su ciò che 
puoi fare direttamente in Delphi o in C# e come costruire i tuoi 
assembly nel modo corretto accertandoti che la strada che hai scelto non 
ti precluda magari l'apertura verso qualche esigenza che avresti potuto 
risolvere brillantemente, sempre con Delphi, adottando un'altra 
soluzione. :-)


 ho molte perplessita...
Anche io non ho ben capito le caratteristiche del sistema... :-)
Buonanotte a tutti! ;-)


 di raggiungere l'obiettivo prefissato?
Si tratta di ricompilare la parte visuale delle applicazioni, scritte a suo 
tempo con Delphi 5, in modo da ottenere un progetto .net compilato e 
ereditabile da c# builder.
La nostra applicazione tipo è un client che manipola un database attraverso 
un DataModule e dei componenti di accesso (BDE o dbExpress, fa lo stesso). 
Ora se apro quel vecchio progetto, Delphi mi propone di aggiornarlo a Delphi 
per .NET, quindi ottengo un progetto che usa 
VCL.NET
, poi lo ricompilo, 
prendo le cose da ereditare e le metto nell'object repository, ed infine (ma 
quì ho il dubbio) apro C# Builder e chiedo di ereditare da quegli oggetti 
che sono nel repository, in modo che il mio sviluppatore che ora non conosce 
pascal ma solo C# non fara fatica a smanettare con eventi, proprietà e 
metodi di oggetti che ho scritto in pascal anni fa, tanto gli funzionano lo 
stesso.
Il grosso handicap di 
ASP.NET
 così come partorito da Visual Studio è infatti 
che sono completamente assenti tutte le possibilità concesse dall'ambiente 
di delphi usando un datamodule centralizzato per l'applicazione con dentro 
tabelle, campi e datasource, con tutto quanto poi concerne l'aggiornamento 
degli oggetti visuali di editing. Insomma non vogliamo più scrivere 
NomeOggetto.DataBind(), bensì definire i comportamenti di 
accesso/lettura/scrittura/validatori nel datamodule, come dio comanda, e non 
dentro i componenti tipo Label, TextBox, DropDown. Se poi il DataModule a 
sua volta usa architetture disconnesse dai dati tipo clientdataset non è più 
un problema, tanto i controlli dell'applicazione non vedono nulla di tutto 
ciò. Fare questo in visual studio .net è un suicidio di migliaia di righe di 
codice.
AleVi 

 Anche io non ho ben capito le caratteristiche del sistema... :-)
AS

 reflection è come bere un caffe...
Non volevo dire che *Reflection* non è potente, anzi.
A volte, però, è necessario scrivere righe e righe di codice per 
ottenere l'accesso ad un banale metodo di una classe all'interno di un 
assembly.
In ogni caso, con Delphi.NET, sia WinForms che 
VCL.NET
, posso sempre 
scegliere se usare le mie care funzioni RTTI (che poi sfruttano 
anch'esse la Reflection) o usare direttamente Reflection. :-P
Va sottolineato che l'uso di Reflection, come per la RTTI Win32, deve 
essere il più possibile evitato poichè particolarmente degradante in 
termini di prestazioni.
Ciao,
   Marco.
