Applicazione Console ...

di il
10 risposte

Applicazione Console ...

Ciao a tutti,
sono Filippo e sono nuovissimo del portale. Complimenti è veramente ben fatto
Ho un cliente che ha un applicazione scritta in Delphi 7, mi hanno chiesto di poter interfacciare il loro applicativo,( che ha una funzione di invio e-mail in automatico) a .NET.
Inizialmente volevo creare un Dll in C#, ma dopo parecchie ricerche e studi, mi sono accorto che Delphi avrebbe (anzi non puo') linkarsi ad una dll scritta in C# ... confermate questo ?
Allora ho deciso di creare un' applicazione console in C# che riceve qualche parametro dal "chiamante" (l' app. in Delphi) ed esegue l' invio della mail.
Trattandosi di applicazione esterna, qualcuno sa' se l'app scritta in C# può rilasciare un qualsiasi parametro (tipo boolean o simile) al chiamante per comunicare se l' operazione è andata a buon fine o no ?

Grazie mille in anticipo
Filippo Di Franco

10 Risposte

  • Re: Applicazione Console ...

    meme ha scritto:


    Ciao a tutti,
    sono Filippo e sono nuovissimo del portale. Complimenti è veramente ben fatto
    Ho un cliente che ha un applicazione scritta in Delphi 7, mi hanno chiesto di poter interfacciare il loro applicativo,( che ha una funzione di invio e-mail in automatico) a .NET.
    Inizialmente volevo creare un Dll in C#, ma dopo parecchie ricerche e studi, mi sono accorto che Delphi avrebbe (anzi non puo') linkarsi ad una dll scritta in C# ... confermate questo ?
    Allora ho deciso di creare un' applicazione console in C# che riceve qualche parametro dal "chiamante" (l' app. in Delphi) ed esegue l' invio della mail.
    Trattandosi di applicazione esterna, qualcuno sa' se l'app scritta in C# può rilasciare un qualsiasi parametro (tipo boolean o simile) al chiamante per comunicare se l' operazione è andata a buon fine o no ?

    Grazie mille in anticipo
    Filippo Di Franco
    Ehhh??
    1) le DLL sono DLL, al massimo ActiveX (registrate)
    Non mi è chiarissimo però cosa vuoi fare.
    Se per qualche motivo vuoi far colloquiare il programma X (di cui non hai il sorgente) col programma Y (di cui ce l'hai) la situazione non è proprio incoraggiante.
    Se invece hai i sorgenti di entrambi ti basta fare una banale socket UDP su cui il programma X (delphi) riceve i messaggi del programma Y (C# o quello che vuoi)
  • Re: Applicazione Console ...

    >>>Allora ho deciso di creare un' applicazione console in C# che riceve qualche parametro dal "chiamante" (l' app. in Delphi) >>>ed esegue l' invio della mail.
    quindi hai il sorgente delphi ? ,
    lo scopo del programma è spedire le email da .net?
    i due programmi sono (saranno) sullo stesso server?
  • Re: Applicazione Console ...

    ..
  • Re: Applicazione Console ...

    +m2+ ha scritto:


    Ehhh??
    1) le DLL sono DLL, al massimo ActiveX (registrate)
    Non mi è chiarissimo però cosa vuoi fare.
    Se per qualche motivo vuoi far colloquiare il programma X (di cui non hai il sorgente) col programma Y (di cui ce l'hai) la situazione non è proprio incoraggiante.
    Se invece hai i sorgenti di entrambi ti basta fare una banale socket UDP su cui il programma X (delphi) riceve i messaggi del programma Y (C# o quello che vuoi)
    Che una Dll sia una Dll ... non c'è dubbio ! Una Dll C# comunque non può essere usata da Delphi come una "Dll standard", questo te lo posso assicurare !
    Detto questo, è stato esplicitamente chiesto un componente esterno ... che spedisca una e-mail !!!
    Perchè non è incoraggiante ??
    Quando ti commissionano una Dll o un componente esterno non sempre devi avere il sorgente dell' applicazione ... ci sono solo dei parametri da rispettare
    Ti ringrazio per il suggerimento ... ma mi sembra una soluzione un po' troppo articolata.

    Grazie
  • Re: Applicazione Console ...

    meme ha scritto:


    Che una Dll sia una Dll ... non c'è dubbio ! Una Dll C# comunque non può essere usata da Delphi come una "Dll standard", questo te lo posso assicurare !
    Dipende banalmente dal passaggio dei parametri.
    Resta il fatto che non mi è chiarissimo come il programma delphi dovrebbe chiamare una DLL di cui non sa nulla.
    A meno di non avere il sorgente, del programma delphi.
    Ma in tal caso è del tutto inutile tutto "l'ambaradam".
    Detto questo, è stato esplicitamente chiesto un componente esterno ... che spedisca una e-mail !!!
    Mi va benissimo che spedisca una email.
    Ma di cosa?
    Un report?
    Un file?
    Un "qualcosa" ?
    Perchè non è incoraggiante ??
    Quando ti commissionano una Dll o un componente esterno non sempre devi avere il sorgente dell' applicazione ... ci sono solo dei parametri da rispettare
    Mi fai qualche esempio concreto?
    Ti ringrazio per il suggerimento ... ma mi sembra una soluzione un po' troppo articolata.

    Grazie
    Bhè è una soluzione che funziona.
    C'è differenza tra una soluzione semplice, ma che non funziona, e una corretta, e che funziona.

    Diciamo che ho una "certa" esperienza con programmi delphi, e una "certa" esperienza nell'integrare qualsiasi cosa.
  • Re: Applicazione Console ...

    Ovviamente sto dando per scontato di scrivere in C# una DLL "vera", e non una DLL C#, cioè bytecode .NET che funziona solo con il relativo runtime.
    Tocca quindi usare Unmanaged Exports. Comunque se spieghi meglio cosa vuoi fare vediamo la soluzione migliore.


    La "fusione" (a pagamento) è più semplice
    https://crystalnet-tech.com/RuntimeLibrary/RuntimeLibrary4Delphi
  • Re: Applicazione Console ...

    +m2+ ha scritto:


    Ovviamente sto dando per scontato di scrivere in C# una DLL "vera", e non una DLL C#, cioè bytecode .NET che funziona solo con il relativo runtime.
    Tocca quindi usare Unmanaged Exports. Comunque se spieghi meglio cosa vuoi fare vediamo la soluzione migliore.


    La "fusione" (a pagamento) è più semplice
    https://crystalnet-tech.com/RuntimeLibrary/RuntimeLibrary4Delphi
    In pratica l'applicazione o Dll, dovrà solo inviare una e-mail (per questo ho pensato di usare le classi SmtpClient e MailMessage) con un semplice allegato PDF ... tutto quà !
    Il chiamante mi passerebbe solo l' indirizzo del destinatario (To) un eventuale BCC e un riferimento al file PDF da inviare, tutti i parametri relativi al server di posta sono già inseriti in un file INI.

    Ho già sviluppato tutto (funzionante ... ) ... devo solo capire come "impacchettarlo"

    L' idea di una Dll "vera" non mi spiace ...
  • Re: Applicazione Console ...

    meme ha scritto:


    In pratica l'applicazione o Dll, dovrà solo inviare una e-mail (per questo ho pensato di usare le classi SmtpClient e MailMessage) con un semplice allegato PDF ... tutto quà !
    Il chiamante mi passerebbe solo l' indirizzo del destinatario (To) un eventuale BCC e un riferimento al file PDF da inviare, tutti i parametri relativi al server di posta sono già inseriti in un file INI.
    OK, ma COME il chiamante ti passa l'indirizzo e il PDF?

    Magicamente "glielo leggi dal pensiero" (del programma delphi?)
    Oppure esiste già una funzione delphi per inviare con SMTP, e lo vuoi intercettare per "carpire" cosa vuole fare, per poi farlo fare al tuo programma?

    Il sorgente delphi ce l'hai o no?
    Questa è la prima domanda.
    Se "no", come vuoi "convincere" il programma a chiamare una DLL, un programma console, o qualsiasi cosa, passandogli un indirizzo di posta (???) e un PDF (???) ?

    Ho già sviluppato tutto (funzionante ... )
    Bhè dai... diciamo un 8 minuti (in delphi) tutto compreso.
    Forse 12 minuti col supporto SSL (inviare da caselle gmail per capirci).
  • Re: Applicazione Console ...

    +m2+ ha scritto:


    Ho già sviluppato tutto (funzionante ... )
    Bhè dai... diciamo un 8 minuti (in delphi) tutto compreso.
    Forse 12 minuti col supporto SSL (inviare da caselle gmail per capirci).
    Bhè dai ... te ne do' anche 15 di minuti per realizzare un progettino esempio per degli studenti alle prime armi !

    Progettare un' applicazione (che funzioni e seria) ci vuole un po' di più

    In ogni caso ho risolto, grazie a tutti per l' aiuto !

    Ciao
  • Re: Applicazione Console ...

    meme ha scritto:


    Progettare un' applicazione (che funzioni e seria) ci vuole un po' di più
    Bhe funziona ed è serissima
Devi accedere o registrarti per scrivere nel forum
10 risposte