It is currently 8 June 2025, 17:08 Advanced search

strategia per separare pers. cliente dal resto del progetto

Domande e risposte su come utilizzare Instant Developer Foundation al meglio

strategia per separare pers. cliente dal resto del progetto

Postby texw » 7 November 2024, 10:57

ciao a tutti,
premetto che ho già aperto una richiesta di assistenza per quanto in oggetto, così da capire la strategia e gli strumenti consigliati da Progamma,

sono comunque curioso di capire come voi implementate questa necessità, ovvero isolare il prodotto dalle personalizzazioni fatte per i cliente presso il quale è installato, senza ricorrere a procedure hard-coded.

in particolare, faccio un esempio, una funziona generica "importa cliente" disponibile nel prodotto software, vorrei che fosse richiamata in modo diverso in base al cliente presso il quale è installato il software.

la mia strategia al momento sarebbe quella di creare un connettore (ovvero un componente INDE) per ogni cliente, creare poi una classe che implementa una specifica interfaccia che definisce il metodo "importaCliente" con parametro "codiceERP".

quindi per cinque clienti, aggiungerei al progetto cinque componenti, i quali conterrebbero una classe "Import" che implementa la interfaccia "ImportDati", la quale mi "costringerebbe" a scrivere codice in cinque diverse procedure "importaCliente".


sono arenato sul come istanziare in modo dinamico una classe piuttosto che un altra in base al cliente a cui è stata applicata la licenza, che rilevo da un file XML di configurazione, (senza passare da IF IF IF ... ovviamente)

idee?

creareFormFromClassLibrary funziona solo con videate?
CadCentric
texw
 
Posts: 497
Joined: 1 February 2018, 8:25

Re: strategia per separare pers. cliente dal resto del proge

Postby texw » 7 November 2024, 12:24

sono riuscito! ecco come ho fatto:
fase 1
- creato componente per il cliente
- creata classe che estende "Import Export" del componente principale
- aggiunto il metodo "ImportaSoggetto" che override il metodo del componente principale
- scritto il codice per importare il database ERP del cliente all'interno del metodo appena aggiunto

fase 2
- nella procedura di import generica, richiamata dalla applicazione web, istanziare la classe del cliente tramite il metodo "getFromDNA" e passando il nome della DLL letto dal file di configurazione es:

public Soggetto ImportExport.ImportaSoggetto(
string CodiceERP //
string:tipiSoggetto TipoSoggetto //
)
{
ImportExport iec = getFromDNA("ConnettoreNOMEDLLCLIENTE.dll|ImportExport", ...)
return iec.ImportaSoggetto(CodiceERP, TipoSoggetto)
}

verifico comunque domani in assistenza se ho fatto tutto correttamente

note:
- è necessario copiare la dll del cliente dall'output del componente nella cartella \bin del progetto software
- restano comunque definiti, nel progetto principale, gli oggetti Database dei vari clienti, che in fondo lo "sporcano", non è possibile spostare un database in un componente?
CadCentric
texw
 
Posts: 497
Joined: 1 February 2018, 8:25

Re: strategia per separare pers. cliente dal resto del proge

Postby r.bianco » 7 November 2024, 13:47

Bella soluzione, grazie della condivisione.
Se sono tutte installazioni separate, potresti provare con questa:

https://doc.instantdeveloper.com/?ARTID ... F1&lang=it
only work and no play makes jack a dull boy
r.bianco
 
Posts: 4979
Joined: 8 November 2010, 16:46


Return to Tips & Tricks - Foundation

Who is online

Users browsing this forum: No registered users and 66 guests

cron