Torna indietro   Hardware Upgrade Forum > Software > Programmazione

HONOR CHOICE Projector Air Pro: piccolo, portatile e con Netflix
HONOR CHOICE Projector Air Pro: piccolo, portatile e con Netflix
Un proiettore economico, che fa della portabilità e immediatezza i suoi punti di forza. Adatto per una camera da letto o per la casa vacanze, è basato su sistema proprietario Linux ma offre piena compatibilità ufficiale a Netflix
ASUS ProArt GoPro Edition è il notebook compatto per chi crea
ASUS ProArt GoPro Edition è il notebook compatto per chi crea
Un notebook sviluppato in collaborazione con GoPro ma che risponde al meglio alle necessità di tutti coloro che creano contenuti video: robustezza, design, potenza di calcolo e funzionalità si abbinano al meglio tra di loro, pur se a prezzo di un costo elevato per via della tanta memoria onboard
Fable e Sol a confronto: due cartoni animati creati su un PC con RTX 3090
Fable e Sol a confronto: due cartoni animati creati su un PC con RTX 3090
Ho affidato ai due modelli lo stesso mestiere ma non lo stesso identico prompt: trasformare una storia illustrata in un video usando una RTX 3090 e modelli locali. Ne sono usciti due film, due applicazioni e due idee opposte di efficienza. Fucina, progettata con Fable 5, colpisce di più nei primi secondi. Storyboard Studio, costruito con ChatGPT/Codex, regge meglio sulla distanza e vince il confronto complessivo, ma di stretta misura
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 05-08-2010, 15:40   #1
Maxti
Member
 
Iscritto dal: Mar 2010
Messaggi: 53
[C#] creare un programma versatile

Ciao,

vi spiego il problema: devo creare un progetto winforms che utilizza un activeX per mostrare a video delle immagini. Qual'è sarebbe la tecnica migliore per rendere il programma abbastanza 'generico', nel senso che se volessi utilizzare un activeX diverso non debba creare il progetto da zero?
Per esempio nell'activeX ho una funzione che fa partire la visualizzazione, ma vorrei che la stessa funzione si potesse adattare ad un altro activeX che ovviamente avrà la stessa tipologia di merodo ma con parametri diversi.

Grazie
Maxti è offline   Rispondi citando il messaggio o parte di esso
Old 05-08-2010, 16:48   #2
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
Ciao

Ti rispondo quello che a me è stato insegnato da molti degli esperti qui sul forum. Per quanto possa sembrare paradossale (in ambito OOP), non pensare ad una "generalizzazione" prematura. Focalizzati sul realizzare quello che ti serve in questo momento. Rifattorizzando spesso il tuo lavoro, potrai individuare al meglio ciò che può essere generalizzato e crearti magari una tua libreria riutilizzabile. Questo è ciò che ti consiglio se sei, come me, in una fase iniziale in termini di conoscenze e di esperienza.

my 2 cents
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 05-08-2010, 19:03   #3
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
Originariamente inviato da Maxti Guarda i messaggi
Ciao,

vi spiego il problema: devo creare un progetto winforms che utilizza un activeX per mostrare a video delle immagini. Qual'è sarebbe la tecnica migliore per rendere il programma abbastanza 'generico', nel senso che se volessi utilizzare un activeX diverso non debba creare il progetto da zero?
Per esempio nell'activeX ho una funzione che fa partire la visualizzazione, ma vorrei che la stessa funzione si potesse adattare ad un altro activeX che ovviamente avrà la stessa tipologia di merodo ma con parametri diversi.

Grazie
Se vuoi un software il più possibile "generico" che non sia limitato esclusivamente all'utilizzo di un singolo ActiveX (per quale scopo vorresti usare ActiveX differenti? Ma soprattutto perchè usare ActiveX per visualizzare immagini?), devi per prima cosa pensare che il tuo software è un software per la visualizzazione di immagini. Qundi pensare prima alle funzionalità che il tuo software intende esporre, visualizzazione foto singola/galleria, zoom, eventuali ritocchi (non ho idea di cosa tu voglia fare con le foto). Una volta definite le funzionalità, definirai i dati che ti sono necessari e da qui un livello Adapter verso il tuo ActiveX. Il giorno che dovrai cambiare ActiveX dovrai scrivere un nuovo strato di Adapter ma il tuo software continuerà a funzionare come prima.

Questo sempre tutto molto in generale perchè poi bisognerebbe capire meglio cosa intendi fare di preciso. E gli strumenti che hai a disposizione.
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 05-08-2010, 19:14   #4
nuovoUtente86
Senior Member
 
Iscritto dal: Mar 2007
Messaggi: 7863
Come ti hanno già fatto notare, più o meno esplicitamente, il principio fondamentale è quello di straficare il tuo software, facendo attenzione al fatto che ogni livello sia indipendente dagli altri. Per esaltare tale strutturazione e consentire poi la comunicazione tra le varietà entità, esistono innumerevoli modi.
nuovoUtente86 è offline   Rispondi citando il messaggio o parte di esso
Old 06-08-2010, 10:57   #5
Maxti
Member
 
Iscritto dal: Mar 2010
Messaggi: 53
Grazie per le risposte.
In realtà non sono sicuro di adottare questa soluzione perchè mi sembra un approccio un pò complicato e essendo agli inizi mi servirebbe tempo per capire come fare e purtroppo non ne ho molto.
L'idea potrebbe essere quella di creare un interfaccia (winforms) che sia un contenitore che istanzia volta per volta l'ActiveX da utilizzare che sarà implementato all'interno di un controllo utente in una dll.
Il problema è che ogni controllo utente che andrà implementato poi nel winforms dovrà contenere gli stessi metodi, in modo che quest'ultimo veda sempre le stesse funzioni.
Però a livello di codice non ho idea di come poter fare, penso che si debba utilizzare dei metodi della classe reflection come assembly.load, ma sinceramente non conosco nulla di questo argomento, quindi penso che lascerò perdere o nel caso mi servisse un altro activex potrei pensarci in futuro.
Maxti è offline   Rispondi citando il messaggio o parte di esso
Old 06-08-2010, 11:43   #6
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da Maxti Guarda i messaggi
Il problema è che ogni controllo utente che andrà implementato poi nel winforms dovrà contenere gli stessi metodi, in modo che quest'ultimo veda sempre le stesse funzioni.
Quello che stai descrivendo qui si può esprimere con una interfaccia.
Il che riporta a quanto detto da tommino, quando ha nominato Adapter.

Una brevissima spiegazione del concetto di Adapter puoi leggerla su wikipedia, qui.

Quote:
In realtà non sono sicuro di adottare questa soluzione perchè mi sembra un approccio un pò complicato e essendo agli inizi mi servirebbe tempo per capire come fare e purtroppo non ne ho molto.
E' anche vero, però, essendo tu (per ora) poco avezzo a queste cose, e avendo poco tempo, che sarebbe meglio procedere per gradi.
In tal senso le considerazioni già fatte da RaouL_BennetH mi sembrano sensate; procedi a implementare quello che devi senza pensare troppo alla faccenda dello slegare l'interfaccia grafica dall'ActiveX specifico.

Una volta che avrai fatto funzionare il tuo programma, potrai poi pensare a "rifattorizzarlo" applicando Adapter.
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


HONOR CHOICE Projector Air Pro: piccolo, portatile e con Netflix HONOR CHOICE Projector Air Pro: piccolo, portati...
ASUS ProArt GoPro Edition è il notebook compatto per chi crea ASUS ProArt GoPro Edition è il notebook c...
Fable e Sol a confronto: due cartoni animati creati su un PC con RTX 3090 Fable e Sol a confronto: due cartoni animati cre...
Il tablet rugged leggero e sottile: Lenovo ThinkTab X11 offre resistenza, doppia USB-C e batteria rimovibile Il tablet rugged leggero e sottile: Lenovo Think...
AMD Advancing AI 2026: l'hardware AMD per le elaborazioni IA del futuro, tra GPU, CPU e robot AMD Advancing AI 2026: l'hardware AMD per le ela...
Nuova rimodulazione da TIM: rincari fino...
Il satellite LINK che dovrebbe salvare i...
DAZN introduce il diritto di ripensament...
Perplexity porta Personal Computer su Wi...
El Paso ospiterà il nuovo hub AI ...
AMD si assicura fino a 2,5 GW di capacit...
WhatsApp porta chiamate e videochiamate ...
I robot aspirapolvere da non perdere ora...
MacBook Ultra con display OLED e un nuov...
Recensione Corsair Harpoon v2 Wireless: ...
Nasce il primo OLED con film cristallino...
Altman smonta una delle più grand...
JVC HA-S59W in prova: le cuffie on-ear l...
Professore nasconde una trappola nel com...
I chip di NVIDIA attuali progettano quel...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 23:15.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v