title: Ma come funziona il lock?

text:
Giulio Petrucci wrote:
> Idem come sopra.
> In generale: sarï¿œ che il mio C/C++ ha parecchia ruggine, sarï¿œ che sono a fine
> giornata, ma non ho capito bene come funziona. Avresti mica qualche link in
> cui e spiegato una specie di Walkthrough attraverso il fw? ;-)
Saranno circa 8 anni fa quando ho fatto il giro completo, quindi non ho
dei link, ma ricordo che c'ï¿œ un libro che spiega come funzionano i
sorgenti sscli.
Facendo una ricerca al volo adesso ho trovato questo:
http://msdn.microsoft.com/en-us/magazine/cc163791.aspx
Ad ogni modo non c'ï¿œ molto da aggiungere. L'header ï¿œ in testa a
qualsiasi reftype che puoi creare. Dentro l'header c'ï¿œ quella dword che
serve a 'lockare' l'oggetto. Poi nei sorgenti c'ï¿œ un lavorone grosso
per ottimizzare (quindi lookup tables, cache, etc.), ma tutto ciï¿œ ï¿œ
ininfluente ai fini del nostro discorso.
>
> Grazie,
> Giulio



title: Ma come funziona il lock?

author: Giulio Petrucci

text:
Ciao Raf,
On 2/4/2011 5:38 PM, Raffaele Rialdi [MVP] wrote:
[cut]
Perfetto. Grazie mille del link.
Ora corro a studiare. :-)
Ciao,
Giulio
--


title: Differenze tra eventi e delegati

text:
Quali sono le maggiori differenze tra thread e delegati?
Prima di leggere il thread poco sotto pensavo fossero parecchie, invece
mi pare di capire che sono molto meno di quelle che pensavo...


title: Differenze tra eventi e delegati

author: Raffaele Rialdi [MVP]

text:

Thread e delegati?
I thread sono l'unità di esecuzione del codice in un sistema operativo.
I delegati sono puntatori a funzioni, concetto abbinabile ad un
linguaggio ma non certo all'architettura di un sistema operativo.

Il fatto che tu possa eseguire un metodo (tramite un suo puntatore,
cioè un delegate) nel contesto di un thread differente da quello
principale, è un effetto secondario e non rende strettamente legati i
due concetti.

--
Raffaele Rialdi
http://www.iamraf.net

Weblog:
http://blogs.ugidotnet.org/raffaele

Microsoft MVP profile
https://mvp.support.microsoft.com/profile/raffaele

UGIdotNET -
http://www.ugidotnet.org/


title: Differenze tra eventi e delegati

text:
Raffaele Rialdi [MVP] ha spiegato il 06/11/2011 :

> Thread e delegati?

Ehm, thread intendevo la discussione nel ng... Non ho pensato al
possibile conflitto di termini con la programmazione...


title: Differenze tra eventi e delegati

text:

Puoi riformulare la domanda?
Quando scrivi "Quali sono le maggiori differenze tra thread e
delegati?" continuo a non capire a cosa alludi ...



title: Differenze tra eventi e delegati

text:
Raffaele Rialdi [MVP] ha detto questo domenica :

> Puoi riformulare la domanda?
> Quando scrivi "Quali sono le maggiori differenze tra thread e delegati?"
> continuo a non capire a cosa alludi ...

Scusami hai ragione, ho scritto bene nell'oggetto ma ho sbagliato nel
testo della domanda.
Quello che mi chiedo è: quali sono le differenze pratiche tra eventi e
delegati?
Cioè mi pare che in qualche modo eventi e delegati siano possano
sostituirsi, p. es. invece che fare una chiamata al delegato potrei
lanciare un evento, sbaglio?


title: Differenze tra eventi e delegati

text:
_merlinO_ wrote:
> Scusami hai ragione, ho scritto bene nell'oggetto ma ho sbagliato nel testo
> della domanda.
> Quello che mi chiedo è: quali sono le differenze pratiche tra eventi e
> delegati?

ah ok, ora è chiaro.

> Cioè mi pare che in qualche modo eventi e delegati siano possano sostituirsi,
> p. es. invece che fare una chiamata al delegato potrei lanciare un evento,
> sbaglio?

Io credo che gli eventi siano stati introdotti per dare maggiore
rilievo ad uno dei pattern più diffusi e utilizzati:
publisher/subscriber.
A livello tecnologico i multicastdelegate soddisfano i requisiti degli
eventi ma credo che si volesse fornire anche un parallelo con altre
tecnologie e linguaggi in modo che risultassero un passaggio
'naturale'.



title: Differenze tra eventi e delegati

author: pasquale [:dedalus]

text:
On 06/11/2011 22:05, _merlinO_ wrote:
> Quello che mi chiedo è: quali sono le differenze pratiche tra eventi e
> delegati?

Non è questione di differenze, perché i termini non sono sinonimi.

In sintesi:
i delegati sono una classe speciale, che definisce, in maniera
type-safe, l'indirizzo di uno (o più) metodi.

Un evento è la notifica che una certa classe è in grado di inviare a
chiunque sia interessato a monitorare i "cambiamenti" di quella stessa
classe. Chi esegue la notifica, non ha nessuna idea di chi possa essere
in ascolto in quel momento: in questo contesto il delegato, funge da
"intermediario", per collegare mittente-destinatario.


title: Differenze tra eventi e delegati

text:
pasquale [:dedalus] scriveva il 07/11/2011 :

> Non è questione di differenze, perché i termini non sono sinonimi.
>
> In sintesi:
> i delegati sono una classe speciale, che definisce, in maniera type-safe,
> l'indirizzo di uno (o più) metodi.
>
> Un evento è la notifica che una certa classe è in grado di inviare a chiunque
> sia interessato a monitorare i "cambiamenti" di quella stessa classe. Chi
> esegue la notifica, non ha nessuna idea di chi possa essere in ascolto in
> quel momento: in questo contesto il delegato, funge da "intermediario", per
> collegare mittente-destinatario.

Chiarissimo, grazie e entrambi


title: Parametri "ricorsivi" classi

author: Andrea [Work]

text:
Salve a tutti, sto progettando delle classi, e volevo sapere se un legame
doppio di questo tipo può dar problemi o è "deprecato".

Public Class Cliente

   Public Class ClienteNote
      Cliente as Cliente
      Descrizione as string
      Data as date
   End Class

   Property Cognome as String
   ....
   Property Note as ClienteNote
EndIf

In pratica nelle note risalgo all'oggetto cliente, e viceversa.

Grazie a tutti


title: Parametri "ricorsivi" classi

text:
On 28/02/2012 16:00, Andrea [Work] wrote:
> Salve a tutti, sto progettando delle classi, e volevo sapere se un legame
> doppio di questo tipo può dar problemi o è "deprecato".
No, stai solo stabilendo una relazione one-to-one tra le entità...
one question: perchè hai messo ClienteNote come sotto-classe pubblica di
cliente?

Ciao.


title: Parametri "ricorsivi" classi

text:
Il 28/02/2012 16:00, Andrea [Work] ha scritto:
> Salve a tutti, sto progettando delle classi, e volevo sapere se un legame
> doppio di questo tipo può dar problemi o è "deprecato".
>
> Public Class Cliente
>
>     Public Class ClienteNote
>        Cliente as Cliente
>        Descrizione as string
>        Data as date
>     End Class
>
>     Property Cognome as String
>     ....
>     Property Note as ClienteNote
> EndIf
>
> In pratica nelle note risalgo

risali in che modo ? Passi dei parametri in esplicito alle
funzioni, o riferimenti al container ?
Nel senso, da dentro la innermost class, come accedi alle
variabili DI ISTANZA della outermost ?
Poi non so se sia deprecato o meno ... quantomeno mi pare
rischiosissimo per uan ragione :
siccome la classe è public, se ha ANCHE un costruttore
pubblico (se non lo ha, come non detto), in teoria potresti
istanziarla da fuori. A quel punto dovresti aggiungere dei
flag interni per capire come tale classe (ClienteNote) è
stata istanziata : se risiede o meno dentro un oggetto
CLiente, e stare attento che una istanza indipendente non
cerchi di accedere a variabili di istanza di un contenitore
che non ha.
Se proprio non ti serve per altri scopi, considererei di
dichiararla private, oppure dichiarare friend tutti i suoi
costruttori (friend del container), di modo che possa essere
istanziata solo dal container stesso, che deve poterlo fare
contenendone una.
ciao
Soviet



title: Parametri "ricorsivi" classi

author: LudovicoVan

text:
"pasquale [:dedalus]" <
eurya...@gmail.com
> wrote in message
news:jiiqtu$fob$1...@dont-email.me...
> On 28/02/2012 16:00, Andrea [Work] wrote:

>> Salve a tutti, sto progettando delle classi, e volevo sapere se un legame
>> doppio di questo tipo può dar problemi o è "deprecato".

> No, stai solo stabilendo una relazione one-to-one tra le entità...

Concordo sulla relazione 1-a-1, anche se non necessariamente viene
implementata in entrambe le direzioni. In generale, con  i riferimenti
circolari in un grafo di oggetti occorre stare attenti a non creare loop
infiniti.  Ma il caso di cui sopra, anche se la relazione e' circolare, e'
molto semplice, al punto che non penso ci siano particolari avvertenze
d'uso: al limite, per esempio, il rilascio delle risorse converrebbe
centralizzarlo nella classe "master", e cose simili, nel senso che a crearsi
dei problemi li' bisogna farlo apposta. (Per quel che si intuisce
dall'esempio.)

> one question: perchè hai messo ClienteNote come sotto-classe pubblica di
> cliente?

Per quel che si intuisce dall'esempio, concordo che non dovrebbe essere una
nested class:  ClienteNote rappresenta un aggregato di proprieta' di
Cliente, la best practice per le nested class e' di usarle per incapsulare
logica non pubblica.

-LV


title: Parametri "ricorsivi" classi

text:
"LudovicoVan" <
ju...@diegidio.name
> wrote in message
news:jik1j7$p3i$1...@speranza.aioe.org...
> "pasquale [:dedalus]" <
eurya...@gmail.com
> wrote in message
> news:jiiqtu$fob$1...@dont-email.me...
>> On 28/02/2012 16:00, Andrea [Work] wrote:
>
>>> Salve a tutti, sto progettando delle classi, e volevo sapere se un
>>> legame
>>> doppio di questo tipo può dar problemi o è "deprecato".
>
>> No, stai solo stabilendo una relazione one-to-one tra le entità...
>
> Concordo sulla relazione 1-a-1
<snip>
> ClienteNote rappresenta un aggregato di proprieta' di Cliente

Ripensandoci, visto che la classe si chiama ClienteNote, al plurale, magari
qualcosa non torna?

-LV


title: Parametri "ricorsivi" classi

text:
On 29/02/2012 03:12, LudovicoVan wrote:
> In generale, con  i riferimenti circolari in un grafo di oggetti occorre
> stare attenti a non creare loop infiniti

In .NET, nello specifico, i riferimenti circolari non esistono.


title: Parametri "ricorsivi" classi

text:
Il Tue, 28 Feb 2012 16:11:23 +0100, pasquale [:dedalus] ha scritto:

>> Salve a tutti, sto progettando delle classi, e volevo sapere se un legame
>> doppio di questo tipo può dar problemi o è "deprecato".
> No, stai solo stabilendo una relazione one-to-one tra le entità...
> one question: perchè hai messo ClienteNote come sotto-classe pubblica di
> cliente?

L'esempio reale rappresenta una tabella clienti, e due tabelle correlate
(contatti e un'altra), in relazione 1:1.

Nella "mappatura" manuale avevo separato in classi fatte allo stesso modo.
Il fatto di riportare il cliente dentro la classe mi veniva comodo per
validarne la FK del db, e comunque di avere a disposizione del cliente in
una possibile futura ruotine, o comunque far si che da qualche parte la
classe ClienteContatto potesse anche vivere di vita propria (il suo metodo
Save ecc.)


title: Parametri "ricorsivi" classi

text:
Il Wed, 29 Feb 2012 02:12:50 -0000, LudovicoVan ha scritto:

>> one question: perchè hai messo ClienteNote come sotto-classe pubblica di
>> cliente?
>
> Per quel che si intuisce dall'esempio, concordo che non dovrebbe essere una
> nested class:  ClienteNote rappresenta un aggregato di proprieta' di
> Cliente, la best practice per le nested class e' di usarle per incapsulare
> logica non pubblica.

Il mio intento era di far si che la classe ClienteNote (o ClienteContatti)
potesse vivere anche di vita propria.
Nel mio esempio, al metodo Save di un cliente la classe cliente va anche ad
invocare i metodi Save delle due classi correlate.

Allo stato attuale non c'è una necessità che queste classi siano
utilizzabili anche singolarmente e fuori dal contesto del cliente. In tal
caso sarebbe meglio far diversamente?


title: Parametri "ricorsivi" classi

text:
Il Tue, 28 Feb 2012 16:53:45 +0100, Soviet_Mario ha scritto:

> risali in che modo ? Passi dei parametri in esplicito alle
> funzioni, o riferimenti al container ?
> Nel senso, da dentro la innermost class, come accedi alle
> variabili DI ISTANZA della outermost ?
> Poi non so se sia deprecato o meno ... quantomeno mi pare
> rischiosissimo per uan ragione :
> siccome la classe è public, se ha ANCHE un costruttore
> pubblico (se non lo ha, come non detto), in teoria potresti
> istanziarla da fuori. A quel punto dovresti aggiungere dei
> flag interni per capire come tale classe (ClienteNote) è
> stata istanziata : se risiede o meno dentro un oggetto
> CLiente, e stare attento che una istanza indipendente non
> cerchi di accedere a variabili di istanza di un contenitore
> che non ha.

A me per far funzionare quella classe mi serve che la proprietà
Cliente.Codice sia stata valorizzata, questo per l'unico metodo "salva" che
ora implementa la classe.
Il mio era più un discorso per capire come mappare a livello di classi una
struttura su db del tipo
Tab. CLIENTE, Tab. CLIENTEContatto, Tab CLIENTENote
tutte in relazione 1:1

Semplicemente a livello di logica del db ho separato i campi del cliente in
più tabelle, lasciando nella tabella principale solo i dati appunto
principali.

Però mi sembrava utile la possibilità di avere le classi più autonome,
anche se non c'è una necessità reale in questo specifico caso.


title: Parametri "ricorsivi" classi

text:
"pasquale [:dedalus]" <
eurya...@gmail.com
> wrote in message
news:jikjhi$vi9$1...@dont-email.me...

Se intendi i riferimenti circolari fra i progetti, non e' solo in .Net che
non sono consentiti:  ma non vedo il nesso con il problema presente.  In
generale, "riferimento circolare" e' un termine che indica semplicemente
situazioni del tipo A->B->...->C, dove A, B, C sono componenti a qualunque
livello di strazione.  Ma se e' altro che intendevi, magari prova a
spiegare...

-LV


title: Parametri "ricorsivi" classi

text:
"Andrea [Work]" <andrea.isw...@gmail.invalid> wrote in message
news:1jr19nx64k17q.2n3c3w6vq0kf$.dlg@40tude.net...
> Il Wed, 29 Feb 2012 02:12:50 -0000, LudovicoVan ha scritto:
>
>>> one question: perchè hai messo ClienteNote come sotto-classe pubblica di
>>> cliente?
>>
>> Per quel che si intuisce dall'esempio, concordo che non dovrebbe essere
>> una
>> nested class:  ClienteNote rappresenta un aggregato di proprieta' di
>> Cliente, la best practice per le nested class e' di usarle per
>> incapsulare
>> logica non pubblica.
>
> Il mio intento era di far si che la classe ClienteNote (o ClienteContatti)
> potesse vivere anche di vita propria.
> Nel mio esempio, al metodo Save di un cliente la classe cliente va anche
> ad
> invocare i metodi Save delle due classi correlate.

Quelle due affermazioni suonano contraddittorie:  o la classe "vive di vita
propria", o il suo ciclo di vita e' controllato dalla classe "master".

> Allo stato attuale non c'è una necessità che queste classi siano
> utilizzabili anche singolarmente e fuori dal contesto del cliente. In tal
> caso sarebbe meglio far diversamente?

Assunto che lo scenario e' una classe "master" e una o piu' classi collegate
che ne aggregano alcuni attributi:

La prima cosa che noterei e' che, in generale, la struttura delle classi non
deve corrispondere strettamente alla struttura dei dati:  magari nel db hai
tabelle separate per un po' di denormalizzazione e gestione piu' efficiente
dei dati e dei pattern di accesso ai dati;  al livello di classi/oggetti le
esigenze sono piuttosto diverse e la struttura puo' e spesso deve essere
diversa.

Assumendo che classi separata sia la strada da percorrere, allora anch'io
penso che cose tipo il costruttore e il metodo Save dovrebbero essere
friend, ovvero che sia la classe "master" e solo quella ad esporre
un'interfaccia per la gestione del ciclo di vita dell'entita'
corrispondente.

Comunque a questo livello non esistono regole scritte con il fuoco, solo
indicazioni di massima...

-LV


title: Parametri "ricorsivi" classi

text:
"LudovicoVan" <
ju...@diegidio.name
> wrote in message
news:jim75q$4fm$1...@speranza.aioe.org...

> In generale, "riferimento circolare" e' un termine che indica
> semplicemente situazioni del tipo A->B->...->C, dove A, B, C sono
> componenti a qualunque livello di [a]strazione.

Pardon, ovviamente intendevo A->B->...->A, dove A, B, ecc. sono...

-LV


title: Parametri "ricorsivi" classi

text:
On 29/02/2012 23:00, LudovicoVan wrote:
> Se intendi i riferimenti circolari fra i progetti
No intendo i riferimenti circolari tra oggetti, anzi per essere più
preciso intendo quello che hai detto tu
> i riferimenti circolari in un grafo di oggetti

Ho solo puntualizzato che in ambiente .NET è un problema superato perché
il GC è sempre in grado di risolverli.


title: Parametri "ricorsivi" classi

text:
On 29/02/2012 23:09, LudovicoVan wrote:
> Assumendo che classi separata sia la strada da percorrere, allora
> anch'io penso che cose tipo il costruttore e il metodo Save dovrebbero
> essere friend, ovvero che sia la classe "master" e solo quella ad
> esporre un'interfaccia per la gestione del ciclo di vita dell'entita'
> corrispondente.
Cioè metti il metodo che persiste l'istanza come messaggio dell'istanza
stessa? (per essere più chiaro, progetti cliente in modo che puoi
invocare il metodo Cliente.Save che persiste l'istanza, per esempio, su db?)


title: Parametri "ricorsivi" classi

text:
Il Wed, 29 Feb 2012 22:09:24 -0000, LudovicoVan ha scritto:

> La prima cosa che noterei e' che, in generale, la struttura delle classi non
> deve corrispondere strettamente alla struttura dei dati:  magari nel db hai
> tabelle separate per un po' di denormalizzazione e gestione piu' efficiente
> dei dati e dei pattern di accesso ai dati;  al livello di classi/oggetti le
> esigenze sono piuttosto diverse e la struttura puo' e spesso deve essere
> diversa.

Esattamente, nel mio caso devo avere diversi record, quindi nella tabella
principale ho messo solo i dati base, per avere meno campi possibili e
tutto più snello.

> Assumendo che classi separata sia la strada da percorrere, allora anch'io
> penso che cose tipo il costruttore e il metodo Save dovrebbero essere
> friend, ovvero che sia la classe "master" e solo quella ad esporre
> un'interfaccia per la gestione del ciclo di vita dell'entita'
> corrispondente.

Quindi il metodo Save interno solo alla classe master, per il resto tutto
invisibile?

Io pensavo nell'ottica che se avrò un utente che mi può modificare un
sottogruppo di dati, salva solo i suoi senza salvare tutto il cliente (dove
magari non ha diritti nemmeno per leggere informazioni o modificare).
Per questo avere il salvataggio della tabella correlata disponibile
singolarmente.

Il mio comunque era anche un discorso teorico, come avrete capito
l'esperienza non è moltissima.


title: Parametri "ricorsivi" classi

text:
Il Thu, 1 Mar 2012 11:52:34 +0100, Andrea [Work] ha scritto:

> Il mio comunque era anche un discorso teorico, come avrete capito
> l'esperienza non è moltissima.

Ovviamente intanto vi ringrazio :)


title: Parametri "ricorsivi" classi

text:
"pasquale [:dedalus]" <
eurya...@gmail.com
> wrote in message
news:jin8co$d42$1...@dont-email.me...
> On 29/02/2012 23:00, LudovicoVan wrote:

>> Se intendi i riferimenti circolari fra i progetti
>
> No intendo i riferimenti circolari tra oggetti, anzi per essere più
> preciso intendo quello che hai detto tu

Precisione per precisione, quello semmai e' cio' che tu pensi che io abbia
detto.

>> i riferimenti circolari in un grafo di oggetti

Di nuovo:  hai un "riferimento circolare" ogni volta che A->B->...->A, cioe'
si tratta di un concetto generale.  Dopodiche' i problemi a cui alludevo
sono problemi di logica, cioe' del codice che uno scrive:  mi riferivo ad
algoritmi di ricerca et similia, user code, il codice che uno scrive, non mi
riferivo a niente del dietro le quinte.

> Ho solo puntualizzato che in ambiente .NET è un problema superato perché
> il GC è sempre in grado di risolverli.

Spero sopra di aver a questo punto chiarito, altrimenti davvero vuol dire
che mi spiego malissimo (altrimenti il problema sei tu che hai deciso di
contraddirmi a tutti i costi).  In particolare, anche GC e problematiche
connesse mi pare abbiano zero a che fare con il quesito presente.

-LV


title: Parametri "ricorsivi" classi

text:
"pasquale [:dedalus]" <
eurya...@gmail.com
> wrote in message
news:jin8i7$e33$1...@dont-email.me...
> On 29/02/2012 23:09, LudovicoVan wrote:
>> Assumendo che classi separata sia la strada da percorrere, allora
>> anch'io penso che cose tipo il costruttore e il metodo Save dovrebbero
>> essere friend, ovvero che sia la classe "master" e solo quella ad
>> esporre un'interfaccia per la gestione del ciclo di vita dell'entita'
>> corrispondente.
> Cioè metti il metodo che persiste l'istanza come messaggio dell'istanza
> stessa?

Quale istanza, qui in questione ne abbiamo due di classi.

> (per essere più chiaro, progetti cliente in modo che puoi
> invocare il metodo Cliente.Save che persiste l'istanza, per esempio, su
> db?)

Se intendi che all'invocazione di Cliente.Save, Cliente.Save a sua volta
invoca ClienteNote.Save (che e' friend), si', e' quello che suggerivo, come
base di partenza.

-LV


title: Parametri "ricorsivi" classi

text:
"Andrea [Work]" <andrea.isw...@gmail.invalid> wrote in message
news:s6b1133srg0u.8...@40tude.net...

> Io pensavo nell'ottica che se avrò un utente che mi può modificare un
> sottogruppo di dati, salva solo i suoi senza salvare tutto il cliente
> (dove
> magari non ha diritti nemmeno per leggere informazioni o modificare).
> Per questo avere il salvataggio della tabella correlata disponibile
> singolarmente.

Va bene anche, ovviamente sono i requisiti che devono guidare.  Il setup che
ti suggerivo e' quello base, ma certamente puoi rendere anche il
ClienteNote.Save pubblico (e magari anche qualcos'altro, non saprei...).  A
quel punto pero' penso che ti sorgera' l'esigenza di un po' di logica di
controllo incrociato, ma, di nuovo, sono i requisiti che guidano, per cui
non posso essere piu' dettagliato di cosi'...  In generale l'unica
indicazione e' quella di chiarirsi le idee su come le classi idealmente
dovrebbero usate, e poi disegnare e implementare di conseguenza.

-LV


title: Parametri "ricorsivi" classi

text:
On 01/03/2012 14:42, LudovicoVan wrote:
> Se intendi che all'invocazione di Cliente.Save, Cliente.Save a sua volta
> invoca ClienteNote.Save (che e' friend), si', e' quello che suggerivo,
> come base di partenza.
penso che questo debba essere considerato un approccio deprecato (anche
come base di partenza) per via del fatto che la classe cliente dovrebbe
ignorare i dettagli del dominio di persistenza... ma è una mia opinione...

> altrimenti il problema sei tu che hai deciso di contraddirmi
> a tutti i costi)

??? non c'è niente di personale, esprimo solo il mio parere, in maniera,
mi pare, più che tranquilla.


title: Parametri "ricorsivi" classi

text:
"pasquale [:dedalus]" <
eurya...@gmail.com
> wrote in message
news:jio04f$7ai$1...@dont-email.me...
> On 01/03/2012 14:42, LudovicoVan wrote:

>> Se intendi che all'invocazione di Cliente.Save, Cliente.Save a sua volta
>> invoca ClienteNote.Save (che e' friend), si', e' quello che suggerivo,
>> come base di partenza.
>
> penso che questo debba essere considerato un approccio deprecato (anche
> come base di partenza) per via del fatto che la classe cliente dovrebbe
> ignorare i dettagli del dominio di persistenza... ma è una mia opinione...

Penso che semplicemente stai prendendo un abbaglio:  qui eravamo interessati
ai flussi di cio' che succede a monte, non di cio' che succede a valle.  In
particolare, il "dominio di persistenza" e' un'altra cosa che ha poco o
nulla a che fare con il quesito presente...  Ma e' una mia opinione...

>> altrimenti il problema sei tu che hai deciso di contraddirmi
>> a tutti i costi)
>
> ??? non c'è niente di personale, esprimo solo il mio parere, in maniera,
> mi pare, più che tranquilla.

OK, mi era sembrato, ma tutto e' bene quello che finisce bene.

-LV


title: Parametri "ricorsivi" classi

text:
On 01/03/2012 20:39, LudovicoVan wrote:
> Penso che semplicemente stai prendendo un abbaglio:
Io invece penso che l'abbaglio lo stai prendendo tu... ma non è
importante, può andar bene così.

Comunque no problem (niente di personale ;-) ).

Ciao,
Pasquale.


title: Parametri "ricorsivi" classi

text:
"pasquale [:dedalus]" <
eurya...@gmail.com
> wrote in message
news:jiptv8$i4c$1...@dont-email.me...
> On 01/03/2012 20:39, LudovicoVan wrote:

>> Penso che semplicemente stai prendendo un abbaglio:
>
> Io invece penso che l'abbaglio lo stai prendendo tu... ma non è
> importante, può andar bene così.

Gia', con la differenza che le tue motivazioni sono a dir poco
inconsistenti.

> Comunque no problem (niente di personale ;-) ).

Sei un imbecille e un ipocrita.

Passo e chiudo.

-LV


title: Parametri "ricorsivi" classi

text:
On 02/03/2012 10:38, LudovicoVan wrote:
> Sei un imbecille e un ipocrita.
ti commenti da solo... sei ridicolmente insicuro.

Passo e chiudo.


title: Parametri "ricorsivi" classi

text:
"pasquale [:dedalus]"  wrote in message news:jiq5n6$lm0$1...@dont-email.me...

Sono 25 anni che faccio questo mestiere, e almeno 15 che bazzico i
newsgroup:  i tuoi attacchi personali mi fanno un baffo, e che sei un altro
dei tanti ipocriti imbecilli non e' ridicolo ma neanche sconvolgente.

Baciami i coglioni, dedalus Pasquale.

-LV


title: Parametri "ricorsivi" classi

text:
On 02/03/2012 11:51, LudovicoVan wrote:
> i tuoi attacchi personali mi fanno un baffo

i miei attacchi personali... dove, quando? Oppure sei così abituato
all'auto-referenzialità da andare in bambola appena uno dice qualcosa di
contrario alle tue idee? Da come reagisci, non si direbbe che hai tutta
questa esperienza... e comunque, se vuoi, ti mando l'indirizzo di un
medico bravo...

ps: non ho più intenzione di proseguire oltre in questa discussione;
ti lascio così il tempo per studiarti qualcosa di utile! Sei un
grandissimo LV... miticoooooooooooooooo


title: Parametri "ricorsivi" classi

text:
"pasquale [:dedalus]"  wrote in message news:jiq9bj$823$1...@dont-email.me...
> On 02/03/2012 11:51, LudovicoVan wrote:

> > i tuoi attacchi personali mi fanno un baffo
>
> i miei attacchi personali... dove, quando? Oppure sei così abituato
> all'auto-referenzialità da andare in bambola appena uno dice qualcosa di
> contrario alle tue idee?
>
> Da come reagisci, non si direbbe che hai tutta
> questa esperienza... e comunque, se vuoi, ti mando l'indirizzo di un
> medico bravo...

Baciami i coglioni, dedalus Pasquale, e il medico tienitelo per i tuoi
post-sbornia.

> ps: non ho più intenzione di proseguire oltre in questa discussione;
> ti lascio così il tempo per studiarti qualcosa di utile! Sei un
> grandissimo LV... miticoooooooooooooooo

E tu sei un'altro dei tanti aspiranti venditori di videoregistratori col
mattone dentro:  mitico...

-LV


title: Creare moduli in PDF

author: Fabio

text:
Salve a tutti
A tale scopo, ho letto qualcosa riguardo sharppdf che sembra essere di
facile utilizzo, ma un po' datata e abbandonata come progetto.
Mi consigliate altro?
Ho la necessità anche di stampare i documenti prodotti.
Saluti
Fabio


title: Creare moduli in PDF

author: Luca Menegotto

text:
El di Mon, 14 Feb 2011 11:11:11 -0800, Fabio el ga scrito:
> Mi consigliate altro?
Di fronte allo stesso problema, io ho risolto semplicemente
reindirizzando la stampata a una stampante PDF. In questo modo posso
usare direttamente le classi di stampa o Crystal Reports
--
Ciao!
Luca


title: Creare moduli in PDF

text:
Fabio wrote:
> Salve a tutti
>
> A tale scopo, ho letto qualcosa riguardo sharppdf che sembra essere di
> facile utilizzo, ma un po' datata e abbandonata come progetto.
Mai scelto un progetto OpenSource pdf per non rimanere "fregato" :)
Poi ï¿œ chiaro che dipende dalla criticitï¿œ del progetto.
>
> Mi consigliate altro?
>
> Ho la necessitï¿œ anche di stampare i documenti prodotti.
Io andrei su librerie di terze parti che ti diano una garanzia di
supporto. Syberix ad esempio ï¿œ conveniente perchï¿œ non hai il problema
delle royalties.
--
Raffaele Rialdi
http://www.iamraf.net
Weblog:
http://blogs.ugidotnet.org/raffaele
Microsoft MVP profile
https://mvp.support.microsoft.com/profile/raffaele
UGIdotNET -
http://www.ugidotnet.org/


title: Creare moduli in PDF

text:

Cercavo di evitare l'uso di crystal report e creare un modulo da zero
con le classi di stampa sarebbe un lavorone
> --
> Ciao!
> Luca
Ciao
Fabio


title: Creare moduli in PDF

text:
On 15 Feb, 09:56, Raffaele Rialdi [MVP] <
malta@n0spam_vevy.com
> wrote:
> Fabio wrote:
> > Salve a tutti
>
> > A tale scopo, ho letto qualcosa riguardo sharppdf che sembra essere di
> > facile utilizzo, ma un po' datata e abbandonata come progetto.
>
> Mai scelto un progetto OpenSource pdf per non rimanere "fregato" :)
> Poi chiaro che dipende dalla criticit del progetto.
>
>
>
> > Mi consigliate altro?
>
> > Ho la necessit anche di stampare i documenti prodotti.
>
> Io andrei su librerie di terze parti che ti diano una garanzia di
> supporto. Syberix ad esempio conveniente perch non hai il problema
> delle royalties.
>
> --
> Raffaele Rialdi
http://www.iamraf.net
> Weblog:
http://blogs.ugidotnet.org/raffaele
> Microsoft MVP profilehttps://
mvp.support.microsoft.com/profile/raffaele
> UGIdotNET -
http://www.ugidotnet.org/
Ho dato un'occhiata alla guida e sembra rispondere sicuramente alle
mie esigenze, ma cercavo qualcosa di free.
A tal scopo ho trovato anche iTextSharp che sembra essere versatile
(almeno per le mie necessità attuali).
Cosa nè pensi?
Ciao
Fabio


title: Creare moduli in PDF

text:
Fabio wrote:
> Ho dato un'occhiata alla guida e sembra rispondere sicuramente alle
> mie esigenze, ma cercavo qualcosa di free.
> A tal scopo ho trovato anche iTextSharp che sembra essere versatile
> (almeno per le mie necessità attuali).
> Cosa nè pensi?
Sono rimasto fregato troppe volte da progetti open source non
supportati. Alla fine ti tocca farti una branch, aggiornartela, farci
manutenzione, trovarti i bug, ... costa molto meno comprare una
libreria.
Ovvio che se lo fai per tuo uso personale puoi fregartenere e usare
qualsiasi cosa, io parlo per progetti che abbiano un risvolto
business...
--
Raffaele Rialdi
http://www.iamraf.net
Weblog:
http://blogs.ugidotnet.org/raffaele



title: Creare moduli in PDF

text:
On 15 Feb, 11:47, Raffaele Rialdi [MVP] <
malta@n0spam_vevy.com
> wrote:
> Fabio wrote:
> > Ho dato un'occhiata alla guida e sembra rispondere sicuramente alle
> > mie esigenze, ma cercavo qualcosa di free.
> > A tal scopo ho trovato anche iTextSharp che sembra essere versatile
> > (almeno per le mie necessità attuali).
> > Cosa nè pensi?
>
> Sono rimasto fregato troppe volte da progetti open source non
> supportati. Alla fine ti tocca farti una branch, aggiornartela, farci
> manutenzione, trovarti i bug, ... costa molto meno comprare una
> libreria.
> Ovvio che se lo fai per tuo uso personale puoi fregartenere e usare
> qualsiasi cosa, io parlo per progetti che abbiano un risvolto
> business...
>
> --
> Raffaele Rialdi
http://www.iamraf.net
> Weblog:
http://blogs.ugidotnet.org/raffaele
> Microsoft MVP profilehttps://
mvp.support.microsoft.com/profile/raffaele
> UGIdotNET -
http://www.ugidotnet.org/
Grazie.
Ciao
Fabio


title: Creare moduli in PDF

text:
On Feb 15, 10:47 am, Raffaele Rialdi [MVP] <
malta@n0spam_vevy.com
>
wrote:
> Fabio wrote:
>
> > Ho dato un'occhiata alla guida e sembra rispondere sicuramente alle
> > mie esigenze, ma cercavo qualcosa di free.
> > A tal scopo ho trovato anche iTextSharp che sembra essere versatile
> > (almeno per le mie necessità attuali).
> > Cosa nè pensi?
>
> Sono rimasto fregato troppe volte da progetti open source non
> supportati. Alla fine ti tocca farti una branch, aggiornartela, farci
> manutenzione, trovarti i bug, ... costa molto meno comprare una
> libreria.
Mi sembri un po' estremista su questo punto. Considerato che e' un
punto in se' importante, mi sentirei di dire la mia: ci sono progetti
e progetti open-source, alcuni anche ad altissimo livello
professionale, cosi' come ci sono progetti e progetti in-house, alcuni
complessi e che richiedono prospettive a lungo termine, altri semplici
e rapidi, dove e' sufficiente che la libreria terza risolva il
problema dato e nulla piu', e cosi' via. Ovvero, in generale, la
*scelta fra sviluppo e acquisto* e' un'altra di quelle scelte da fare
di volta in volta sulla base di un'attenta analisi costi-benefici, non
sulla base di una ricetta fissa.
-LV


title: Creare moduli in PDF

text:
LudovicoVan wrote:
> Mi sembri un po' estremista su questo punto. Considerato che e' un
> punto in se' importante, mi sentirei di dire la mia: ci sono progetti
> e progetti open-source, alcuni anche ad altissimo livello
> professionale, cosi' come ci sono progetti e progetti in-house, alcuni
> complessi e che richiedono prospettive a lungo termine, altri semplici
> e rapidi, dove e' sufficiente che la libreria terza risolva il
> problema dato e nulla piu', e cosi' via. Ovvero, in generale, la
> *scelta fra sviluppo e acquisto* e' un'altra di quelle scelte da fare
> di volta in volta sulla base di un'attenta analisi costi-benefici, non
> sulla base di una ricetta fissa.
Prima una precisazione...
Infatti nella prima email ho dato come contesto le librerie pdf.
Nell'ultimo post ho allargato lo scope dicendo di come il sottoscritto
sia stato scottato troppe volte da progetti che poi nessuno ha più
aggiornato.
Ribadisco perciò che sinceramente non conosco progetti open source di
librerie pdf che mi diano abbastanza fiducia da usarli in un contesto
business.
Adesso vediamo il discorso più in generale.
Concordo che il discorso vada valutato di volta in volta e aggiungo che
il fattore di valutazione deve essere anche il costo dell'integrazione
di una libreria differente.
Ad esempio se integri iTextSharp e poi passi alla syberix, dovrai
cambiare parecchia logica. Questo mi fa resistere dalla tentazione di
usare in fase iniziale un opensource per poi cambiarlo in una seconda
fase.
Per altre librerie (ad esempio logging) il costo di migrazione può
essere minimale e perciò posso adottare una libreria di logging
opensource a cuor leggero.



title: stampare documentazione

author: ferradini

text:
In visual studio esiste la generazione automatica di un file di
documentazione, in formato XML
Esiste un applicativo, una classe o aggeggi vari che lo trasformino in un
file di testo?
 Basta anche qualcosa di molto semplice, anzi sarebbe auspicabile.
grazie ferradini


title: stampare documentazione

author: Mauro Servienti [MVP]

text:
Ciao ferradini,

dai un occhio a SandCastle.
.m
--
Mauro Servienti
{C67C0157-5D98-4733-A75E-93CAEE4BADC8}
Microsoft MVP - Visual C# / MCTS
http://mvp.support.microsoft.com
blog @
http://milestone.topics.it
whynot [ at ] topics [ dot ] it


title: stampare documentazione

text:
>
> dai un occhio a SandCastle.
>
troppo complicato nell'installazione


title: VB.NET interfaccia con SkyDrive o DropBox o GoogleDrive

text:
Ciao a tutti,
ho cercato un po' nel web, ma non ho trovato niente per skydrive, o almeno
gli esempi paiono solo per windows 8.

In pratica vorrei fare un'applicazione che carica un file su un account
skydrive, e mi restituisce in qualche modo lo "share link". Parlo di
WindowsApplication e XP/Win7.

Ho trovato questo:
http://msdn.microsoft.com/en-us/library/live/hh826521.aspx

Ma le Live Connect APIs sembrano solo per Win8 o mobile.

Qualche consiglio?
Grazie


author: Julio Di Egidio

text:
"Andrea [Work]" <andrea.isw...@gmail.invalid> wrote in message
news:dgx75vs52iyy$.vbwauov3s2ie.dlg@40tude.net...

Se  ho capito bene, devi usare direttamente REST, ma qualche libreria gia'
pronta forse la trovi.  Di seguito alcuni link come spunto (ho cercato per
C#, per VB forse trovi meno):

<
https://www.google.co.uk/search?q=skydrive+rest+C%23
>
<
http://msdn.microsoft.com/en-us/library/live/hh243648.aspx
>
<
http://gallery.technet.microsoft.com/scriptcenter/C-SkyDrive-API-via-Live-3f2ce65f
>
<
http://www.andrewdenhertog.com/c/how-to-upload-a-file-to-skydrive
>

HTH,

Julio


text:
Il Fri, 10 May 2013 18:27:51 +0100, Julio Di Egidio ha scritto:

> Se  ho capito bene, devi usare direttamente REST, ma qualche libreria gia'
> pronta forse la trovi.  Di seguito alcuni link come spunto (ho cercato per
> C#, per VB forse trovi meno):
>
> <
https://www.google.co.uk/search?q=skydrive+rest+C%23
>
> <
http://msdn.microsoft.com/en-us/library/live/hh243648.aspx
>
> <
http://gallery.technet.microsoft.com/scriptcenter/C-SkyDrive-API-via-Live-3f2ce65f
>
> <
http://www.andrewdenhertog.com/c/how-to-upload-a-file-to-skydrive
>
>
> HTH,

Qualcuno gi� l'avevo visto, faccio qualche prova e vi faccio sapere.
Grazie.


title: CA .Net con DTF su IS 2009-2001?

author: Alessandro Riolo

text:
Qualcuno ha esperienza di InstallShield (2009 0 2011, il 2010 l'ho saltato,
gli altri non mi interessano ;)) con DTF?
DTF sta per Deployment Tools Foundation, un framework parte di WiX che
permette di scrivere custom action in .Net (o meglio, permette a Windows
Installer di usare .Net assembly ;)). Oltre che da WiX, questa CA create con
DTF possono dovrebbero poter essere consumate daInstallShield, Visual Studio
Installer (il cui ritiro da parte di MS sembra imminente, finalmente!) o
altri applicativi similari. Il condizionale dal mio punto di vista è
d'obbligo perché ancora per un paio di mesi (sono alla fine di un ciclo di
rilascio!) mi toccherà usare funzioni da kernel.dll, user32.dll e compagnia
cantante, ma speravo di leggere qualche opinione qui se qualcuno ci ha già
messo mano!
Probabilmente la cosa che mi interessa di più è se qualcuno è riuscito a
fare TDD!
Un po di risorse trovate fino ad ora:
http://www.tramontana.co.hu/wix/lesson3.php#3.5
http://blog.deploymentengineering.com/2008/05/deployment-tools-foundation-dtf-custom.html
http://robmensching.com/blog/posts/2008/5/16/Deployment-Tools-Foundation-joins-the-WiX-toolset
http://blogs.msdn.com/b/jasongin/archive/2008/05/16/a-brief-history-of-the-deployment-tools-foundation-project.aspx
http://www.installsite.org/pages/en/msifaq/a/1044.htm
http://blogs.msdn.com/b/josealmeida/archive/2004/11/08/253831.aspx
--
ale
http://ale.riolo.co.uk


title: Importare file txt csv usando una stringa di connessione

text:
Salve a tutti
Ho un file excell che salvo come csv e file di testo.
la stringa di connessione che uso è la seguente:
string connection = @"Provider=Microsoft.Jet.OLEDB.4.0;Data
Source="+directory+@"\;Extended
Properties=""text;HDR=Yes;FMT=Delimited"";";
La stringa di connessione usa come delimitatore la ',' mentre il csv e
il txt salvati usano il ';'.
Ho provato impostando il delimitatore in questo modo:
FMT=Delimited(;), ma niente.
Come cambio il delimitatore?
Saluti
Fabio


text:

Ho risolto impostando un file schema.ini nella stessa directory del
file da importare.
Saluti
Fabio


title: [TDD] Sviluppo TDD con C#

author: marcosabba

text:
Salve a tutti, non so se vado leggermente OT, ma succede che mi sto
ponendo problemi di scope cercando di sviluppare seguendo un approccio
test driven.
Quello che mi sono chiesto quasi subito è come si concilia
l'incapsulamento con la necessità di scrivere test per metodi testabili,
dunque necessariamente pubblici.
Faccio un esempio pratico:
sto lavorando a un progetto che prevede il postprocessing di una serie
di files xml da parte di una serie di plugin, dunque abbiamo delle
classi che implementano un'interfaccia IPlugin che espone due metodi:
Init e Execute.
Uno di questi plugin deve leggere in una cartella, cercare determinati
files xml, parsarli cercando al loro interno alcuni path di ALTRI files,
costruire una lista di questi ultimi e passarli a un tool che li
processa esternamente.
Pensando TDD, dovrei scrivere per prima cosa i test per i metodi che
fanno tutte quelle operazioni, ma quei metodi dovrebbero essere
nascosti, visto che il plugin espone solo due metodi.
E' dunque necessario esporre _tutti_ i metodi da testare, rompendo
l'incapsulamento "logico" della classe? Cosa ne pensate? O sto
sbagliando a interpretare il TDD?
Grazie e ciao


title: [TDD] Sviluppo TDD con C#

text:
Ciao marcosabba,

You wrote on 07/03/2012 :
> E' dunque necessario esporre _tutti_ i metodi da testare, rompendo
> l'incapsulamento "logico" della classe? Cosa ne pensate? O sto sbagliando a
> interpretare il TDD?

una considerazione filosofica: perché è un problema che sia tutto
"public" (sia chiaro che per me lo è eccome)

Dai un occhio all'attributo InternalsVisibleTo

.m

--
blog @ //
milestone.topics.it


title: [TDD] Sviluppo TDD con C#

text:
Ciao Sabba,

On 07/03/2012 17:00, marcosabba wrote:
> sto lavorando a un progetto che prevede il postprocessing di una serie
> di files xml da parte di una serie di plugin, dunque abbiamo delle
> classi che implementano un'interfaccia IPlugin che espone due metodi:
> Init e Execute.
> Uno di questi plugin deve leggere in una cartella, cercare determinati
> files xml, parsarli cercando al loro interno alcuni path di ALTRI files,
> costruire una lista di questi ultimi e passarli a un tool che li
> processa esternamente.
> Pensando TDD, dovrei scrivere per prima cosa i test per i metodi che
> fanno tutte quelle operazioni, ma quei metodi dovrebbero essere
> nascosti, visto che il plugin espone solo due metodi.
> E' dunque necessario esporre _tutti_ i metodi da testare, rompendo
> l'incapsulamento "logico" della classe? Cosa ne pensate? O sto
> sbagliando a interpretare il TDD?

Io imposterei ogni test in questo modo:
1. set-up dell'ambiente esterno (crei dei files .xml ad hoc, con dentro
i path ad altri files sempre ad hoc, ecc ecc...)
2. lanci il plug-in
3. se l'esecuzione è andata a buon fine, il plug-in avrà avuto il suo
effetto sul "mondo esterno", e l'assertion del test deve misurare
proprio che questo effetto sia avvenuto.

Niente test dell'implementazione.
:-)

Ciao,
Giulio

--


title: [TDD] Sviluppo TDD con C#

text:
Ciao a tutti

Il 08/03/2012 06:04, Mauro Servienti [MVP] ha scritto:
> una considerazione filosofica: perché è un problema che sia tutto
> "public" (sia chiaro che per me lo è eccome)

intanto grazie per la risposta, il problema me lo sono posto perché se
non avessi avuto i test avrei tranquillamente avuto metodi privati,
dunque renderli pubblici solo perché ci sono i test, che considero come
viaggiatori su un binario parallelo, mi sembrava per lo meno "brutto",
ma questa è un'opinione "estetica". Sul fatto sostanziale, beh, avere
pubblico e privato dovrebbe essere un aiuto per il design: sapere che
alcune cose sono esposte e le vedi di fuori, altre no, aiuta la
robustezza. Poi ovviamente puoi avere tutto pubblico e aumentano le
responsabilità per chi sta "di fuori". Però non so se ho capito bene la
tua provocazione ;)

> Dai un occhio all'attributo InternalsVisibleTo
grazie, funziona, a parte il fatto che devo usare internal nella
dichiarazione dei metodi (mentre avrei usato private che non è la stessa
cosa) va benissimo e prenderò anche questa strada.
Poi col mio collega di pair abbiamo anche deciso di esternalizzare un
componente che racchiude alcuni dei metodi privati e renderlo pubblico e
testabile, ma non posso farlo con tutto.
Ciao!


title: [TDD] Sviluppo TDD con C#

text:
Ciao

Il 08/03/2012 13:44, Giulio Petrucci ha scritto:
> Io imposterei ogni test in questo modo:
> 1. set-up dell'ambiente esterno (crei dei files .xml ad hoc, con dentro
> i path ad altri files sempre ad hoc, ecc ecc...)
> 2. lanci il plug-in
> 3. se l'esecuzione è andata a buon fine, il plug-in avrà avuto il suo
> effetto sul "mondo esterno", e l'assertion del test deve misurare
> proprio che questo effetto sia avvenuto.
>
> Niente test dell'implementazione.

Eh come ci dicevamo ieri "live", il problema presenta diverse sfumature,
diciamo che a tendere il tuo approccio è il più "desiderabile", ma
durante uno sviluppo from scratch il TDD ti dovrebbe aiutare proprio a
sviluppare, quindi proprio "tirare su", anche l'interno della black box,
dunque come fare? L'internalsVisibleTo mi sembra un buon compromesso.
Ciao!


title: [TDD] Sviluppo TDD con C#

text:
On 09/03/2012 09:34, marcosabba wrote:
> dunque renderli pubblici solo perché ci sono i test

Come suggerito da Mauro, l'approccio internal+[InternalsVisibleTo] è
quello maggiormente consigliato (ovviamente, trattandosi di Mauro ;-)
)... possono poi essere usati (con minore potenza) l'attributo
condizionale [Debug] oppure l'espressione #if #endif con la compilazione
condizionale (il libro per me cult al riguardo è "The Art of Unit Test"
di Roy Osherove: trovi tutte e 3 le strade lì se hai voglia di
approfondire).

Piuttosto, l'unica cosa che non mi torna è l'affermazione che ho
quotato: se devi rendere pubblici dei metodi solo perché devi fare
unit-testing, per me, vuol dire che la responsabilità di fare quelle
cose, deve spettare a un'altra classe, che poi verrà usata privatamente
dal plugin che espone solo i 2 metodi pubblici Init e Execute...

Ciao.


title: [TDD] Sviluppo TDD con C#

text:
Ciao
Il 09/03/2012 09:52, pasquale [:dedalus] ha scritto:
> Piuttosto, l'unica cosa che non mi torna è l'affermazione che ho
> quotato: se devi rendere pubblici dei metodi solo perché devi fare
> unit-testing, per me, vuol dire che la responsabilità di fare quelle
> cose, deve spettare a un'altra classe, che poi verrà usata privatamente
> dal plugin che espone solo i 2 metodi pubblici Init e Execute...

in qualche modo allora mi confermi che questa strada
> Poi col mio collega di pair abbiamo anche deciso di esternalizzare un componente che racchiude alcuni dei metodi privati e renderlo pubblico e testabile
non è sbagliata (salvo poi mettere privato il componente nel plugin).
Faremo un mix :)

> il libro per me cult al riguardo è "The Art of Unit Test"
> di Roy Osherove
grazie, ce l'avevo ma gli ho preferito "TDD by example" di Kent Beck che
però non mi ha entusiasmato tantissimo. Gli darò presto un'occhiata,
grazie ancora

Ciao


title: [TDD] Sviluppo TDD con C#

text:
Ciao pasquale [:dedalus],

You wrote on 09/03/2012 :
> On 09/03/2012 09:34, marcosabba wrote:
>> dunque renderli pubblici solo perché ci sono i test
>
> Come suggerito da Mauro, l'approccio internal+[InternalsVisibleTo] è
> quello maggiormente consigliato (ovviamente, trattandosi di Mauro ;-)

:-)

> )... possono poi essere usati (con minore potenza) l'attributo
> condizionale [Debug] oppure l'espressione #if #endif con la compilazione
> condizionale (il libro per me cult al riguardo è "The Art of Unit Test"
> di Roy Osherove: trovi tutte e 3 le strade lì se hai voglia di
> approfondire).
>
> Piuttosto, l'unica cosa che non mi torna è l'affermazione che ho
> quotato: se devi rendere pubblici dei metodi solo perché devi fare
> unit-testing, per me, vuol dire che la responsabilità di fare quelle
> cose, deve spettare a un'altra classe, che poi verrà usata privatamente
> dal plugin che espone solo i 2 metodi pubblici Init e Execute...

in questi giorni c'è stata un interessante discussione sulla mailing
list interna di C# che ha toccato questo aspetto e la conclusione è più
o meno che se devi testare qualcosa di private o internal c'è qualcosa
che non va, perché avrebbe molto senso testare ciò che c'è di pubblico
che a sua vlta utilizza la roba internal.
E ovvio che questa è una generalizzazione e che ogni casistica è da
valutare a se.

> Ciao.



title: Build di progetti complessi

text:
Ciao a tutti,
sto scrivendo il mio primo scriptone di build per un progetto abbastanza
complesso (siamo nell'ordine dei 25 .csproj). La mia directory di
progetto è così strutturata:
MyProject/
	lib/
	src/
	test/
	...
in lib/ ci sono le librerie di terze parti (es: NLog, NHibernate, Unity,
ecc ecc...), in src/ ci sono i sorgenti e in test vengono compilati gli
unit-test. Il progetto MyWebSite dipende da MyApp.Services.Interface in
cui sono definite le interfacce dei vari componenti, che sono a loro
volta implementate da MyApp.Services.Impl. In MyWebSite qule reference
devo impostare? Perché è *necessario* impostare solo quella
all'interfaccia ma... vuoi mettere la comodità di avere già tutto pronto
nella directory di build? ;-)
Altro problema: tra le lib/ ho una libreria A che carica via reflection
una libreria B (es: Nhibernate e uno dei tre sistemi di proxing). Nel
progetto Foo che dipende da A, devo mettere anche la reference a B?
Esiste una qualche prassi ben consolidata per muoversi in scenari simili?
Grazie,
Giulio
--


title: Build di progetti complessi

text:
Ciao Giulio,
You wrote on 06/07/2011 :
> in lib/ ci sono le librerie di terze parti (es: NLog, NHibernate, Unity, ecc
> ecc...), in src/ ci sono i sorgenti e in test vengono compilati gli
> unit-test. Il progetto MyWebSite dipende da MyApp.Services.Interface in cui
> sono definite le interfacce dei vari componenti, che sono a loro volta
> implementate da MyApp.Services.Impl. In MyWebSite qule reference devo
> impostare? Perchï¿œ ï¿œ *necessario* impostare solo quella all'interfaccia ma...
> vuoi mettere la comoditï¿œ di avere giï¿œ tutto pronto nella directory di build?
> ;-)
> Altro problema: tra le lib/ ho una libreria A che carica via reflection una
> libreria B (es: Nhibernate e uno dei tre sistemi di proxing). Nel progetto
> Foo che dipende da A, devo mettere anche la reference a B?
>
> Esiste una qualche prassi ben consolidata per muoversi in scenari simili?
mettere una reference all'assembly che contineie le implementazioni non
ï¿œ un gran problema, tieni conto che se non ricordo male, i metadati
dell'applicazioni sanno questa cosa anche se non usi nulla di quello
che c'ï¿œ nell'assembly concreto quindi il rischio che in futuro qualcosa
si sminchi probabilmente c'ï¿œ, ma lo vedo come un rischio remoto.
Io in generale preferisco le post-build-action per fare quesi giochetti
e far si che tutto sia al posto giusto, sono sicuramente piï¿œ fragili e
piï¿œ complesse da manutenere ma non implicano reference che
concettualmente non ci devono essere; hanno comunque il side effect che
devi eseguire sempre una rebuild, che senza un SSD ï¿œ una vera menata.
.m
--
Mauro Servienti
{C67C0157-5D98-4733-A75E-93CAEE4BADC8}
Microsoft MVP - Visual C# / MCTS
http://mvp.support.microsoft.com/profile/mauro
blog @
http://milestone.topics.it
whynot [ at ] topics [ dot ] it


title: Build di progetti complessi

text:
Ciao Mauro,
On 7/7/2011 9:21 AM, Mauro Servienti [MVP] wrote:
> mettere una reference all'assembly che contineie le implementazioni non
> è un gran problema, tieni conto che se non ricordo male, i metadati
> dell'applicazioni sanno questa cosa anche se non usi nulla di quello che
> c'è nell'assembly concreto quindi il rischio che in futuro qualcosa si
> sminchi probabilmente c'è, ma lo vedo come un rischio remoto.
Ok. Comunque è una prassi che preferirei evitare...
> Io in generale preferisco le post-build-action per fare quesi giochetti
Ottimo! :-)
> hanno comunque il side effect che
> devi eseguire sempre una rebuild, che senza un SSD è una vera menata.
Cosa significa SSD?
Ciao e grazie,
Giulio
--


title: Build di progetti complessi

text:
Ciao Giulio,
You wrote on 07/07/2011 :
> Cosa significa SSD?
Solid State Disk: se lo provi non torni piï¿œ indietro :-)
> Ciao e grazie,
> Giulio



title: Dichiarazione della variabile

text:
Quale, tra i due metodi di dichiarazione e istanza di  un oggetto,č
preferibile?
Tempo fa, lessi che č preferibile fare le due cose separatamente
(Dichiarazione e Istanziare), ma non ricorso se per rendere il codice piů
leggibile...
Primo metodo:
Dim f  as Form2 = new Form2()
Secondo metodo:
Dim f as Form2
f = new Form2()
Ciao
nero23


title: Dichiarazione della variabile

text:
On Mar 27, 11:16 am, "NERO23" <
nero...@virgilio.it
> wrote:
> Tempo fa, lessi che è preferibile fare le due cose separatamente
> (Dichiarazione e Istanziare), ma non ricorso se per rendere il codice più
> leggibile...
Anche a me e' capitato di leggere una cosa simile, legata poi ad
un'altra pseudo-regola sul dichiarare le variabili locali in testa ad
una funzione contro il dichiararle li' dove vengono usate, tutte messe
appunto come questioni di leggibilita', ma non sono affatto d'accordo
(sia in teoria che per esperienza): le vedrei al limite come questioni
di stile, da cui semmai l'importanza di essere *consistenti/uniformi*.
Nel caso specifico poi del dichiarare e definire, direi piuttosto che
la scelta dipende specificamente dalla struttura della procedura che
stai scrivendo, quindi tutto il contrario di una regola fissa e in
nome proprio della massima leggibilita'.
Fra l'altro alcune di quelle regole/suggerimenti derivano piuttosto
dalla trasposizione di pratiche relative ad altri linguaggi, ad es. C/C
++, ed applicarle ai linguaggi tipo C#/VB lascia il tempo che trova,
per non dire che non si applicano proprio.
-LV


title: Dichiarazione della variabile

author: dedalus

text:
On 27/03/2011 12:16, NERO23 wrote:
> Primo metodo:
> Dim f  as Form2 = new Form2()
>
>
> Secondo metodo:
> Dim f as Form2
> f = new Form2()
Che io sappia questo problema affliggeva solo VB6: era consigliato il
secondo metodo per questioni di performance, in quanto, dichiarando f
con il primo metodo, si costringeva il compilatore a verificare se la
variabile fosse istanziata o meno (in pratica aggiungeva la riga
*if not f is nothing then set f =new Form2*).
A quel che mi risulta il problema non si pone nel framework .Net


title: Dichiarazione della variabile

text:
On Mar 27, 2:09 pm, dedalus <
uly...@email.it
> wrote:
> On 27/03/2011 12:16, NERO23 wrote:
>
> > Primo metodo:
> > Dim f  as Form2 = new Form2()
>
> > Secondo metodo:
> > Dim f as Form2
> > f = new Form2()
>
> Che io sappia questo problema affliggeva solo VB6
Se non ricordo (troppo) male, la prima forma in VB6 non e' proprio
consentita.
> : era consigliato il
> secondo metodo per questioni di performance, in quanto, dichiarando f
> con il primo metodo, si costringeva il compilatore a verificare se la
> variabile fosse istanziata o meno (in pratica aggiungeva la riga
> *if not f is nothing then set f =new Form2*).
A parte quanto gia' notato sopra, una verifica del genere sarebbe
alquanto senza senso.
> A quel che mi risulta il problema non si pone nel framework .Net
In .Net le due forme sono essenzialmente equivalenti.
-LV


title: Dichiarazione della variabile

text:
On 27/03/2011 21:22, LudovicoVan wrote:
> Se non ricordo (troppo) male, la prima forma in VB6 non e' proprio
> consentita.
esatto... ovviamente mi riferivo al caso analogo in vb6 della
contestuale dichiarazione e istanziazione.
Ciao ;-)


title: Dichiarazione della variabile

text:

Forse sono stato poco chiaro: il problema in VB6 non si pone affatto
perche' la forma congiunta dichiarazione-istanziazione proprio non
esiste.
-LV


title: Dichiarazione della variabile

text:
On 28/03/2011 21:19, LudovicoVan wrote:
> Forse sono stato poco chiaro: il problema in VB6 non si pone affatto
> perche' la forma congiunta dichiarazione-istanziazione proprio non
> esiste.
Ti sbagli (o forse non capisco a cosa ti riferisci):
Dim f As New Form1


title: Dichiarazione della variabile

text:
Il Sun, 27 Mar 2011 12:16:09 +0200, NERO23 ha scritto:
> Primo metodo:
> Dim f  as Form2 = new Form2()
>
>
> Secondo metodo:
> Dim f as Form2
> f = new Form2()
In .net faccio di solito
Dim f as new form2()


title: Dichiarazione della variabile

text:

No, hai ragione: viceversa, io avevo ragione solo in parte.
L'uso che menzioni e' spiegato qui, in particolare nella sezione
"Using the New Keyword":
http://msdn.microsoft.com/en-us/library/aa262302(v=VS.60).aspx
-LV


title: Microstation 2004: confronto codice VB.net e  C#

text:
Ho scritto questo messaggio su   "it.comp.lang.visual-basic " ma poi ho
pensato che questo è il newsgroup giusto.
.....................................
Bentrley Microstation 2004 (programma cad) e VB.Net/C# 2010
Ho scritto il codice in VB.net e funziona perfettamente (cerca tutti i testi
presente sul file cad, e visualizza la rotazione del testo).
Convertito in C#, mi da il seguente errore:
Errore 1 'MicroStationDGN.TextElement' non contiene una definizione di
'Rotation' e non è stato trovato alcun metodo di estensione 'Rotation' che
accetta un primo argomento di tipo 'MicroStationDGN.TextElement'.
Probabilmente manca una direttiva using o un riferimento a un assembly.
D:\00 .NET\testConsol\test\Program.cs 28 72 test
A questo punto, ho aperto contemporaneamente i due progetti (VB.Net e C#) e,
dalla finestra Visualizza-Visualizzatore_oggetti, ho confrontato i metodi
presente in una e nell'altra.
Stranamente, il metodo TextElement.Rotation lo trovo in VB.net (e quindi
funziona) ma non in C#.
Qualcuno sa darmi una spiegazione?
Grazie
Nero.23


text:

Hai dimenticato quel metodo nella conversione?
L'hai convertito automaticamente e quel metodo non è stato tradotto?
--
Raffaele Rialdi
http://www.iamraf.net
Weblog:
http://blogs.ugidotnet.org/raffaele
Microsoft MVP profile
https://mvp.support.microsoft.com/profile/raffaele
UGIdotNET -
http://www.ugidotnet.org/


text:
> Hai dimenticato quel metodo nella conversione?
> L'hai convertito automaticamente e quel metodo non è stato tradotto?
In che senso convertito?
Quando scrivo "elemText" e aggiungo il punto, non trovo "Rotation", mentre
su VB.Net c'è.
Ho convertito una serie di programmini da
vb.net
 a C# senza riscontrale
particolari problemi. Tranne questo.


text:

Forse ho capito ora ... prima avevo capito che il codice che espone
Rotation fosse stato convertito da un tool automatico (
vb.net
 => c#).
Hai capito se è solo un problema di intellisense o di compilazione?
Prova a scrivere il codice anche se intellisense non ti da il
suggerimento e vedi se compila.
Ad ogni modo dovresti capire meglio che succede guardando nella
libreria con reflector/ilspy.



text:
> Hai capito se ï¿œ solo un problema di intellisense o di compilazione?
> Prova a scrivere il codice anche se intellisense non ti da il suggerimento
> e vedi se compila.
Ho provato e mi da errore quando compilo.
> Ad ogni modo dovresti capire meglio che succede guardando nella libreria
> con reflector/ilspy.
Ho aperto la dll-microstation, ma non ci capisco nulla.
Se trovo qualcuno disponibile, gli posso mandare la dll via e-mail


text:
On Mar 24, 5:54 pm, "NERO23" <
nero...@virgilio.it
> wrote:
> Bentrley Microstation 2004 (programma cad) e VB.Net/C# 2010
>
> Ho scritto il codice in VB.net e funziona perfettamente (cerca tutti i testi
> presente sul file cad, e visualizza la rotazione del testo).
> Convertito in C#, mi da il seguente errore:
>
> Errore 1 'MicroStationDGN.TextElement' non contiene una definizione di
> 'Rotation' e non stato trovato alcun metodo di estensione 'Rotation' che
> accetta un primo argomento di tipo 'MicroStationDGN.TextElement'.
> Probabilmente manca una direttiva using o un riferimento a un assembly.
> D:\00 .NET\testConsol\test\Program.cs 28 72 test
>
> A questo punto, ho aperto contemporaneamente i due progetti (VB.Net e C#) e,
> dalla finestra Visualizza-Visualizzatore_oggetti, ho confrontato i metodi
> presente in una e nell'altra.
>
> Stranamente, il metodo TextElement.Rotation lo trovo in VB.net (e quindi
> funziona) ma non in C#.
>
> Qualcuno sa darmi una spiegazione?
Qualche idea sparsa:
E' strano che MicroStationDGN.TextElement viene riconosciuto mentre il
metodo Rotation in particolare non lo e', a meno che non sia un
extension methond definito in un assembly a parte (google non trova
niente per "MicroStationDGN.TextElement.Rotation"):
== per sincerartene, nel progetto VB naviga alla definizione del
metodo
   Rotation e vedi a quale assembly/classe appartiene.  (Oppure
dall'object
   browser, che forse e' lo stesso che il visualizzatore oggetti che
   menzionavi.)
In generale, verifica che in C# hai tutte le references di progetto
necessarie (in C# non ci sono path di ricerca come in VB); cosi' come
in C# le using in testa al file non possono essere omesse e definite
nelle opzioni di progetto come in VB: in particolare, affinche' tu
possa usare un extension method, occorre una using che importa il
namespace a cui appartiene l'extension method stesso, che altrimenti
non puo' essere risolto.
-LV


text:
== per sincerartene, nel progetto VB naviga alla definizione del
metodo
   Rotation e vedi a quale assembly/classe appartiene.  (Oppure
dall'object
   browser, che forse e' lo stesso che il visualizzatore oggetti che
   menzionavi.)
In generale, verifica che in C# hai tutte le references di progetto
necessarie (in C# non ci sono path di ricerca come in VB); cosi' come
in C# le using in testa al file non possono essere omesse e definite
nelle opzioni di progetto come in VB: in particolare, affinche' tu
possa usare un extension method, occorre una using che importa il
namespace a cui appartiene l'extension method stesso, che altrimenti
non puo' essere risolto.
Microstation ha solo il namespace 'MicroStationDGN' da referenziare.
Ciao


text:
NERO23 wrote:
>> Ad ogni modo dovresti capire meglio che succede guardando nella libreria
>> con reflector/ilspy.
>
>
> Ho aperto la dll-microstation, ma non ci capisco nulla.
Se usi reflector basta che premi F3 e scrivi il nome della classe.
Poi ci fai doppio click e te la apre nell'albero a sinistra.
A quel punto schiacci "spazio" e ti apre la finestra con il
disassemblato sulla parte destra.
Devi solo guardare come e se è definito quel metodo nella classe della
libreria.
> Se trovo qualcuno disponibile, gli posso mandare la dll via e-mail
Beh, se cerchi di imparare lo strumento ti sarà super-utile per tutte
le prossime volte ;-)



text:
On Mar 25, 5:50 am, "NERO23" <
nero...@virgilio.it
> wrote:
> Microstation ha solo il namespace 'MicroStationDGN' da referenziare.
>> nel progetto VB naviga alla definizione del metodo
Lo hai fatto? Cosa ne viene fuori?
-LV


title: Problemi con DLL

author: Alex B

text:
Ciao a tutti,
ho realizzato una DLL in C++ che importo nel mio codice C# come segue:
[DllImport("MyDLL.dll", CallingConvention = CallingConvention.StdCall,
CharSet = CharSet.Ansi, ExactSpelling = true)]
        public static extern int My_Func(string fw, SafeFileHandle
hComm, int module_type, ref int percentage);
La chiamata alla funzione My_Func nel codice C# è la seguente:
ret = My_Func (path, hComm, platform, ref percentage);
Il problema è il seguente:
La DLL compilata come Win32 e il codice C# compilato come Any CPU
funzionano perfettamente sotto Xp.
Per farlo funzionare sotto Win7 64bit devo:
1) Compilare la DLL come Win32 e anche il C# come x86
2) Compilare la DLL come x64 e il C# come Any CPU (o x64)
In questo secondo caso però l'ultimo parametro della funzione non
viene aggiornato. Il suo scopo è quello di essere incrementato durante
la chiamata alla funzione My_Func, e letto da un thread in parallelo
(nel codice C#) che ha lo scopo di incrementare una progress bar.
Premetto che il tutto funziona perfettamente su WinXp e su Win7 solo
se compilato per 32 bit. La macchina su cui eseguo le compilazioni è
una WinXp 32 Bit con VS2008
Any siggestions?
Thanks in advance


title: Opinioni su WPF

author: BlackSun

text:
Ciao,
ero curioso di avere dei feedback sull'utilizzo di WPF.
Non mi riferisco tanto al suo apprendimento quanto alle difficolta' in
fatto di controlli (se ricordo bene TreeView non esiste) o cose
simili.
Grazie mille
Ciao BlackSun


title: Opinioni su WPF

text:
Il 26/05/2011 10:07, BlackSun ha scritto:
> Ciao,
> ero curioso di avere dei feedback sull'utilizzo di WPF.
> Non mi riferisco tanto al suo apprendimento quanto alle difficolta' in
> fatto di controlli (se ricordo bene TreeView non esiste) o cose
> simili.
io ci lavoro da un anno circa, è difficile non tener conto della
difficoltà, perché a distanza di tempo scopri cose che non pensavi di
poter fare, ma magari a te servivano... prima!
Se guardi bene in rete scopri una quantità di gente che con wpf ci fa
cose fantastiche, dunque come possibilità direi che non c'è nulla di
precluso, anzi.
Se parli di "dotazioni di base" penso che ci sia tutto ciò che serve (la
treeview c'è, tranquillo) ma per padroneggiarlo ci vuole impegno,
soprattutto se ti viene chiesto di replicare in un paio di giorni le
caratteristiche di un componente vb di terze parti a pagamento (capita a
me in continuazione)...
Diciamo che secondo me usare wpf come sostituto delle tecnologie
precedenti non ha molto senso, ha più senso sfruttare le sue
caratteristiche di disaccoppiamento ui/mondo sottostante come leva per
migliorare il design e la manutenzione del codice. E' anche questo che
rende migliore un prodotto software, ma sta a te capire quanto
tempo/soldi puoi investire per realizzarci qualcosa _adesso_.
Non so se mi sono spiegato bene, ma ho finito i 5 minuti di pausa che mi
sono preso ;)


title: Opinioni su WPF

text:
Ciao BlackSun,
You wrote on 26/05/2011 :
> Ciao,
> ero curioso di avere dei feedback sull'utilizzo di WPF.
> Non mi riferisco tanto al suo apprendimento quanto alle difficolta' in
> fatto di controlli (se ricordo bene TreeView non esiste) o cose
> simili.
i controlli ci sono tutti e ti direi anche che senti molto meno la
necessità di controlli di terze parti perchè cusomizzare anche
pesantemente un controllo è un'operazione molto più facile che in
Windows Forms.
IL nodo vero è la curva di apprendimento che è decisamente ripida,
inoltre WPF usato senza M-V-VM, quindi come se fosse Windows Forms, è
un'arma a doppio taglio, quindi è necessario anche sbattere la testa
con M-V-VM.
Le potenzialità sono comunque spaventosamente e infinititamente
superiori a Windows Forms.
> Grazie mille
> Ciao BlackSun
.m
--
Mauro Servienti
{C67C0157-5D98-4733-A75E-93CAEE4BADC8}
Microsoft MVP - Visual C# / MCTS
http://mvp.support.microsoft.com/profile/mauro
blog @
http://milestone.topics.it
whynot [ at ] topics [ dot ] it


title: Opinioni su WPF

text:
Ciao,
grazie dei feedback. Sempre utile sentire opinioni di chi gia' usa
WPF.
Grazie.
Ciao BlackSun
On 27 Mag, 06:13, Mauro Servienti [MVP] <mauroservie...@online.nospam>
wrote:

> blog @
http://milestone.topics.it



title: [ASP] Intercettare la fine di una richiesta Http

text:
Ciao a tutti,
in una *banalissima* applicazione web ho una classe Foo che necessita di
intercettare la fine di una richiesta Http.
class Foo
{
	public Foo()
	{
		HttpContext.Current.ApplicationInstance.EndRequest += MyHandler;
	}
	protected void MyHandler(object sender, EventArgs args) { ... }
}
come "verifica" ho sovrascritto il metodo Application_EndRequest in
Global.asax per vedere che effettivamente la richiesta sia arrivata al
termine. Morale della favola: il metodo nel global.asax viene
correttamente richiamato al termine di ogni richiesta ma MyHandler non
viene mai richiamato.
Qualcuno può aiutarmi? :-)
Grazie,
Giulio


text:
Ciao Giulio Petrucci,

perchè non un HttpModule?
direi che quella cosa non funziona perchè l'istanza della classe viene
"rimossa" al termine della richiesta prima che possa gestire l'evento.
> Grazie,
> Giulio
.m
--
Mauro Servienti
{C67C0157-5D98-4733-A75E-93CAEE4BADC8}
Microsoft MVP - Visual C# / MCTS
http://mvp.support.microsoft.com/profile/mauro
blog @
http://milestone.topics.it
whynot [ at ] topics [ dot ] it


text:
Ciao Mauro,
On 4/19/2011 11:23 AM, Mauro Servienti [MVP] wrote:
> perchè non un HttpModule?
Oh yeah! :-)
Vado a implementare.
Ciao e grazie,
Giulio
--


text:
Ciao Mauro,
On 4/19/2011 11:23 AM, Mauro Servienti [MVP] wrote:
> perchè non un HttpModule?
Sto implementando la mia soluzione seguendo questo esempio:
http://ryanlanciaux.com/ryanlanciaux/post/NHibernate-Session-Per-Request.aspx
In generale però non riesco a capire una cosa di HttpModule, che potrei
sintetizzare nelle seguenti domande:
1. siamo sicuri che di istanze del mio FooHttpModule ce ne sarà una solo
su tutta l'applicazione?
2. supponiamo che implementi il mio http module come segue:
//code
public class MyModule : IHttpModule
{
	public void Dispose() { }
	public void Init(HttpApplication context)
	{
		context.EndRequest += Cleanup;
	}
	protected void Cleanup(object sender, EventArgs args)
	{
		var obj = HttpContext.Current.Items["pippo"];
		((IDisposable)obj).Dispose();
  	}
}
chi (o cosa) è il sender dell'evento EndRequest?
3. potete indirizzarmi verso un po' di buona documentazione?



text:
Ciao Giulio Petrucci,
You wrote on 19/04/2011 :
> Ciao Mauro,
>
> On 4/19/2011 11:23 AM, Mauro Servienti [MVP] wrote:
>> perchè non un HttpModule?
>
> Sto implementando la mia soluzione seguendo questo esempio:
>
http://ryanlanciaux.com/ryanlanciaux/post/NHibernate-Session-Per-Request.aspx
questa cosa esiste già in un "modulo" per Castle Windsor, io ti direi
di scopiazzare quello che fai molto prima.
> In generale però non riesco a capire una cosa di HttpModule, che potrei
> sintetizzare nelle seguenti domande:
> 1. siamo sicuri che di istanze del mio FooHttpModule ce ne sarà una solo su
> tutta l'applicazione?
no, ad oggi è così, ma non credo ci sia scritto da nessuna parte che
debba necessariamente essere così.
> 2. supponiamo che implementi il mio http module come segue:
> //code
> public class MyModule : IHttpModule
> {
> 	public void Dispose() { }
> 	public void Init(HttpApplication context)
> 	{
> 		context.EndRequest += Cleanup;
> 	}
> 	protected void Cleanup(object sender, EventArgs args)
> 	{
> 		var obj = HttpContext.Current.Items["pippo"];
> 		((IDisposable)obj).Dispose();
>   	}
> }
>
> chi (o cosa) è il sender dell'evento EndRequest?
Non ne ho idea ma attaccare un debugger male non fa :-)
> 3. potete indirizzarmi verso un po' di buona documentazione?
Oltre a quella su MSDN non ne conosco purtroppo.
> Ciao e grazie,



text:
Ciao Mauro,
On 4/20/2011 9:37 AM, Mauro Servienti [MVP] wrote:
> questa cosa esiste già in un "modulo" per Castle Windsor, io ti direi di
> scopiazzare quello che fai molto prima.
Uhm... la scelta qui è quella di usare Unity (e a me - onestamente - non
dispiace affatto). Comunque scopiazzare è lecito, no? Mi metto alla
ricerca... :-)
> no, ad oggi è così, ma non credo ci sia scritto da nessuna parte che
> debba necessariamente essere così.
E questo è un *bel* problema (vedi in seguito per i dettagli).
> Non ne ho idea ma attaccare un debugger male non fa :-)
E' proprio perché ho attaccato il debugger che ho fatto la domanda! ;-)
Allora, il tipo è "ASP.global_asax", e la cosa non mi sconvolge. Il
problema, o meglio il non-problema, è che "s" risulta essere *sempre* la
stessa istanza dell'applicazione. Questo è perfettamente logico ma, mi
chiedo, come gestisce la concorrenza ASP visto che l'istanza
dell'applicazione è la stessa ma ((HttpApplication)s).Request è -
ovviamente - diversa da richiesta a richiesta? Che parallelizzione c'è?
Link a riguardo?
Il problema dell'unicità modulo http è (IMVHO) correlato al punto
precedente. Il mio modulo ha questa struttura (dove IWidget e Widget
sono classi "convenzionali"):
public class WidgetModule : IHttpModule
{
	protected WidgetModule() { }
	protected virtual void CreateWidget(object s, EventArgs a) {
	        HttpContext.Current.Items[Key] = new Widget();
	}
    	protected virtual void DiscardWidget(object s, EventArgs a) {
	        var widget = (IWidget)HttpContext.Current.Items[Key];
	        widget.Cleanup();
	        widget.Close();
	        widget.Dispose();
	}
	public void Init(HttpApplication context) {
		context.BeginRequest += CreateWidget;
	        context.EndRequest += DiscardWidget;
     	}
	public void Dispose() { }
	public static string Key = "WIDGET";
   	public static IWidget GetWidget() {
		var obj = HttpContext.Current.Items[Key];
	        return (IWidget)obj;
     	}
}
l'accesso a questo modulo viene "mascherato" con una injection factory
nel container Unity che richiama un metodo STATICO del modulo. Quindi,
mi chiedo, se dovessero esserci *due* istanze del mio modulo, il metodo
statico in questione quale richiamerebbe? :-)



text:
Ciao Giulio Petrucci,

non è un problema tuo, nel senso che Context.Items è una per richiesta
Http, e il metodo statico è uno (punto), quindi accederesti ai dati
giusti a priori.



text:
Ciao Mauro,
innanzitutto grazie della risposta. :-)
On 4/20/2011 7:05 PM, Mauro Servienti [MVP] wrote:
> non è un problema tuo, nel senso che Context.Items è una per richiesta
> Http, e il metodo statico è uno (punto), quindi accederesti ai dati
> giusti a priori.
Afferrato.
:-)
Grazie,
Giulio
--


title: Problema  gestione e salvataggio Questionario

author: Romano

text:
Ciao a tutti e scusate il disturbo.
Sono alle prese con un progetto legato alla gestione di un questionario
multirisposte online.
Il problema non è tanto la presentazione ma quanto piuttosto la
creazione di una struttura dati per la memorizzazione delle risposte e
la manipolazione degli stessi.
Preciso che il tutto verrà gestito con c# a partire dal framework 2.0
es. Domanda 1
             Risp A
             Risp B
             Risp C
     Domanda 2
             Risp 2.1
             Risp 2.2
             altro   -----------------------
     etc.etc.
Ho pensato ad una gestione con xml in modo da salvare l'xml risposta in
un campo di una tabella su db.
Però ho vari dubbi: Se ad esempio nel corso del tempo viene variato il
questionario aggiungendo una nuova domanda oppure una posssibile altra
risposta alla domanda 2 come vado a gestire la deserializzazione dell'xml.
Grazie dell'interessamento e buon lavoro.


text:
On Jan 13, 8:48 am, Romano <
hinok...@gmail.com
> wrote:
>
> Ciao a tutti e scusate il disturbo.
Ciao a te.
> Sono alle prese con un progetto legato alla gestione di un questionario
> multirisposte online.
>
> Il problema non tanto la presentazione ma quanto piuttosto la
> creazione di una struttura dati per la memorizzazione delle risposte e
> la manipolazione degli stessi. [...]
>
> Ho pensato ad una gestione con xml in modo da salvare l'xml risposta in
> un campo di una tabella su db.
>
> Per ho vari dubbi: Se ad esempio nel corso del tempo viene variato il
> questionario aggiungendo una nuova domanda oppure una posssibile altra
> risposta alla domanda 2 come vado a gestire la deserializzazione dell'xml.
In teoria, crei uno script di migrazione che deserializza sulla base
del vecchio formato, eventualmente aggiorna/estende la descrizione dei
dati, infine serializza e salva nel nuovo formato.
D'altra parte ti dico, io assolutamente eviterei di usare xml. Per un
approccio efficace/che consiglierei senza dubbio: con un minimo di
astrazione sulle tipologie di domande e risposte, la struttura del
questionario puo' essere interamente definita in termini relazionali,
e poi lavori su tabelle e query.
-LV


text:
On Jan 13, 3:48 am, Romano <
hinok...@gmail.com
> wrote:
> Ciao a tutti e scusate il disturbo.
> Sono alle prese con un progetto legato alla gestione di un questionario
> multirisposte online.
>
> Il problema non tanto la presentazione ma quanto piuttosto la
> creazione di una struttura dati per la memorizzazione delle risposte e
> la manipolazione degli stessi.
> Preciso che il tutto verr gestito con c# a partire dal framework 2.0
>
> es. Domanda 1
>              Risp A
>              Risp B
>              Risp C
>      Domanda 2
>              Risp 2.1
>              Risp 2.2
>              altro   -----------------------
>      etc.etc.
>
> Ho pensato ad una gestione con xml in modo da salvare l'xml risposta in
> un campo di una tabella su db.
>
> Per ho vari dubbi: Se ad esempio nel corso del tempo viene variato il
> questionario aggiungendo una nuova domanda oppure una posssibile altra
> risposta alla domanda 2 come vado a gestire la deserializzazione dell'xml.
>
> Grazie dell'interessamento e buon lavoro.
Ciao,
ti sposto il punto di vista...
Mi è capitato 2 anni fa di dover gestire un questionario online e da
bravo sviluppatore ho iniziato a pensare a form, db, xml ecc ecc
Se ti fermi a poche domande e con un flusso semplice si può anche
sviluppare da zero ma alla fine ho optato per un prodotto commerciale:
Feedback server si chiama.
La licenza perpetua non costa molto, a me non sarebbe bastata una vita
per sviluppare tutte quelle funzionalità.
Soprattutto ciò che mi ha fatto propendere per un prodotto commerciale
è stato proprio il tuo ultimo dubbio: la variabilità delle domande.
Inoltre considera che è abbastanza complesso gestire il flusso delle
domande tipo se ad A rispondo 1 vai a C e così via.
In pratica potevo stare tranquillamente dietro a tutte le richieste
del cliente senza scrivere una riga di codice, inoltre ha una
reportistica molto raffinata.
Ah tutto su piattaforma Microsoft.
Stefano


text:

Serve molto poco per sviluppare un questionario, e solo leggermente di
piu' per generalizzare ed avere un motore di questionari totalmente
tagliato su misura delle esigenze interne.
Dall'altra parte, ammesso che riesci a trovare un prodotto gia' pronto
che funziona davvero, il che include il fatto che modificare ed
estendere e' cosa fattibile, hai comunque un prodotto che fa milioni
di cose che non ti servono e forse anche un po' di quelle che in
effetti ti servono...
> Soprattutto ciò che mi ha fatto propendere per un prodotto commerciale
> è stato proprio il tuo ultimo dubbio: la variabilità delle domande.
> Inoltre considera che è abbastanza complesso gestire il flusso delle
> domande tipo se ad A rispondo 1 vai a C e così via.
>
> In pratica potevo stare tranquillamente dietro a tutte le richieste
> del cliente senza scrivere una riga di codice, inoltre ha una
> reportistica molto raffinata.
>
> Ah tutto su piattaforma Microsoft.
Scusa ma suona proprio come un commercial, senza un dato tecnico
rilevante che sia uno...
Cio' detto, valutare fra sviluppo e acquisto e' certamente importante
e fa parte legittimamente della pratica quotidiana: ma qui come
altrove non ci sono equazioni semplici, si tratta di scelte complesse
con parecchi fattori in gioco, sia interni che esterni, sia a breve
che a lungo termine, ecc. ecc.
-LV


title: Installare framework v.4.5

author: Giacomo M

text:
Giorno,
mi spiegate come installare la versione 4.5?

Credo di averlo fatto, perchè su installazione/applicazioni di win ho
queste 2 voci:

- Microsoft .NET Framework 4.5
- Microsoft .NET Framework 4.5 Language Pack (ITA)

ma all'interno di visual studio non ho le nuove funzionalità (tipo la
classe Zip).

Qualche idea?

Anche nella directory di windows Microsoft .NET ci sono le cartelle
delle versioni fino alla 4. Nessuna traccia della 4.5.

Grazie


title: Installare framework v.4.5

text:
"Giacomo M" <
kyl...@tiscali.it
> wrote in message
news:l21f43$1lj$1...@speranza.aioe.org...
> Giorno,
> mi spiegate come installare la versione 4.5?
>
> Credo di averlo fatto, perchï¿œ su installazione/applicazioni di win ho
> queste 2 voci:
>
> - Microsoft .NET Framework 4.5
> - Microsoft .NET Framework 4.5 Language Pack (ITA)
>
> ma all'interno di visual studio non ho le nuove funzionalitï¿œ (tipo la
> classe Zip).
>
> Qualche idea?
>
> Anche nella directory di windows Microsoft .NET ci sono le cartelle delle
> versioni fino alla 4. Nessuna traccia della 4.5.

Quello credo che sia corretto.  Stai usando VS 2012?  Hai verificato che il
Fwk 4.5 sia selezionato nelle opzioni di progetto?

Julio


title: Installare framework v.4.5

text:
Il 26/09/2013 21:18, Julio Di Egidio ha scritto:
>> Anche nella directory di windows Microsoft .NET ci sono le cartelle
>> delle versioni fino alla 4. Nessuna traccia della 4.5.
>
> Quello credo che sia corretto.  Stai usando VS 2012?  Hai verificato che
> il Fwk 4.5 sia selezionato nelle opzioni di progetto?

Uso VS 2010.

--
Giacomo


title: Info print engine

author: Nemo

text:
Salve,
sono nuovo di programmazione con .net, volevo saper se esiste un modo
per realizzare il seguente caso d'uso: un "utente web" vuole creare il
template per stampare un documento, lo crea inserendo dei tag specifici
per le parti dinamiche, quindi lo carica sull'applicazine web. Adesso
può generare file pdf, odt o docx con i dati valorizzati dinamicamente.

Ho visto che in java già ci sono alcuni progetti che fanno questo
(JODReports, xdocreport), ho identificato lo standard per i template
(Nvelocity), mi manca una libreria che permetta la lettura del file docx
o odt per la sostituzione dei tag (Esempio:Project: $project.Name) e poi
generare pdf, docx oppure odt.

Sapete se ci sono librerie che fanno anche parzialmente questo lavoro,
anche con licenza commerciale?

Grazie


title: Info print engine

text:
Ciao Nemo,

You wrote on 25/06/2012 :
> Sapete se ci sono librerie che fanno anche parzialmente questo lavoro, anche
> con licenza commerciale?

per i docx c'è l'SDK di OpneXML che ti permette di fare tutto quello
che vuoi, non è facile ma puoi fare tutto.

> Grazie

--
blog @ //
milestone.topics.it


title: Info print engine

text:
Hai documentazione oppure esempi, per poter leggere e scrivere un file
docx e trasformarlo in pdf?

Grazie



title: Info print engine

text:
Ciao Nemo,

You wrote on 27/06/2012 :
> Hai documentazione oppure esempi, per poter leggere e scrivere un file docx e
> trasformarlo in pdf?

l'SDK di Microsoft contiene tutto, dalla documentazione ad un tool
ottimo per smanacciare con i documenti.

.m

--
blog @ //
milestone.topics.it


title: sapere se una applicazione gira a 32 o 64

author: vbMizio

text:
Ciao a tutti,
sto scrivendo una applicazione VB2008, che girera' sia su sistemi 32 che 64
bit.
L'applicazione deve  fare delle operazioni leggermente differenti (chiamare
dei filtri DirectShow) se sta girando a 32 o 64 bit.
Posso sapere, in runtime, che "piega" ha preso l'applicazione stessa? Posso
sapere come sta girando?
Grazie e ciao... Maurizio


author: Raffaele Rialdi [MVP]

text:

IntPtr.Size restituisce 4 se è a 32 bit oppure 8 se gira a 64 bit

--
Raffaele Rialdi
http://www.iamraf.net

Weblog:
http://blogs.ugidotnet.org/raffaele

Microsoft MVP profile
https://mvp.support.microsoft.com/profile/raffaele

UGIdotNET -
http://www.ugidotnet.org/


text:
Grazie Raffaele per la risposta.
Semplice, conciso, efficace :-)


text:
"vbMizio"  wrote in message
news:4ea564e4$0$1384$4faf...@reader2.news.tin.it...

> Posso sapere come sta girando [32 o 64 bit]?

http://msdn.microsoft.com/en-us/library/system.environment.is64bitoperatingsystem.aspx

http://msdn.microsoft.com/en-us/library/system.environment.is64bitprocess.aspx

HTH,

-LV


text:
Ciao Ludovico, grazie per la risposta,
...
>
http://msdn.microsoft.com/en-us/library/system.environment.is64bitoperatingsystem.aspx

>
http://msdn.microsoft.com/en-us/library/system.environment.is64bitprocess.aspx

...
Interessante, anche se queste proprieta' sono disponibili dal FW 4, quindi
nel mio caso specifico, non utilizzabili.
Buono comunque a sapersi.


text:
"vbMizio"  wrote in message
news:4ea661d4$0$1389$4faf...@reader2.news.tin.it...

> Interessante, anche se queste proprieta' sono disponibili dal FW 4, quindi
> nel mio caso specifico, non utilizzabili.

Hai ragione, scusa, me ne sono accorto dopo...

Occhio pero' che , a quanto leggo su StackOverflow, la soluzione proposta da
Raf per fwk precedenti al 4 e' da prendere con alcune cautele:
http://stackoverflow.com/questions/336633/how-to-detect-windows-64-bit-platform-with-net

-LV


text:
LudovicoVan wrote:
> Occhio pero' che , a quanto leggo su StackOverflow, la soluzione proposta da
> Raf per fwk precedenti al 4 e' da prendere con alcune cautele:
>
http://stackoverflow.com/questions/336633/how-to-detect-windows-64-bit-platform-with-net

>
> -LV

Ottimo link.
Da quanto capisco nel link, il caso in cui non funziona è relativo solo
ad una applicazione che gira a 32 bit su un OS a 64 bit che ha il
framework.net
 a 32 bit installato.
Di fatto però in questo caso l'applicazione sta girando a 32 bit e
quindi il sistema 'size' funziona perché dice come sta girando il
processo.

Se però a vbMizio serve sapere se l'OS è a 64 bit e l'applicazione
_potrebbe_ girare a 64 bit, allora ovviamente non va bene.

Capisco male? Non ho modo di fare prove nell'immediato...



text:
"Raffaele Rialdi [MVP]" <
malta@n0spam_vevy.com
> wrote in message
news:mn.cbf57dba1...@n0spamvevy.com...
> LudovicoVan wrote:

>> Occhio pero' che , a quanto leggo su StackOverflow, la soluzione proposta
>> da Raf per fwk precedenti al 4 e' da prendere con alcune cautele:
>>
http://stackoverflow.com/questions/336633/how-to-detect-windows-64-bit-platform-with-net

>
> Ottimo link.
> Da quanto capisco nel link, il caso in cui non funziona è relativo solo ad
> una applicazione che gira a 32 bit su un OS a 64 bit che ha il
>
framework.net
 a 32 bit installato.

Anch'io non ne so piu' di quello che ho intravisto in alcuni post qua e la',
comunque mi pare di capire che bisogna anche tenere conto della specifica
versione di OS per via delle librerie di Windows che cambiano.

> Di fatto però in questo caso l'applicazione sta girando a 32 bit e quindi
> il sistema 'size' funziona perché dice come sta girando il processo.
>
> Se però a vbMizio serve sapere se l'OS è a 64 bit e l'applicazione
> _potrebbe_ girare a 64 bit, allora ovviamente non va bene.
>
> Capisco male? Non ho modo di fare prove nell'immediato...

Direi che i dettagli (ed eventuali semplificazioni) dipendono, come anche tu
noti, dallo specifico dei requisiti di vbMizio.  Fra l'altro non mi e' mai
capitato di avere bisogno di una cosa del genere (tanto meno in .Net), ma mi
e' capitato di avere configurazioni di build diverse (ed eventuali direttive
preprocessore nel codice) a seconda della piattaforma di destinazione.

Sarei interessato a sentire quali sono in effetti i requisiti di vbMizio,
almeno il linea di massima: ovvero qual e' "il problema a monte".

-LV


text:
....
Sarei interessato a sentire quali sono in effetti i requisiti di vbMizio,
almeno il linea di massima: ovvero qual e' "il problema a monte".
....
Eccomi eccomi, sono ben felice di rispondere a tutti e due (anche se mi
accodo al messaggio di Ludovico).
La mia specifica necessita' era quella di sapere se l'applicazione sta
girando a 64 bit o a 32. Questo perche' viene compilata per "Any CPU", ma in
base al tipo di esecuzione deve caricare dei filtri directshow piuttosto che
altri.
Dal momento che questi filtri li devo "forzare" io, mi serve di sapere quali
devo chiamare, dato che alcuni sono per 32 bit, altri per 64; in questo
caso, quindi, mi serve di sapere il modo di esecuzione dell'applicazione, e
non dell'ambiente del SO.
Spero di essere stato chiaro.


text:
vbMizio wrote:
> La mia specifica necessita' era quella di sapere se l'applicazione sta
> girando a 64 bit o a 32. Questo perche' viene compilata per "Any CPU", ma in
> base al tipo di esecuzione deve caricare dei filtri directshow piuttosto che
> altri.
> Dal momento che questi filtri li devo "forzare" io, mi serve di sapere quali
> devo chiamare, dato che alcuni sono per 32 bit, altri per 64; in questo caso,
> quindi, mi serve di sapere il modo di esecuzione dell'applicazione, e non
> dell'ambiente del SO.
> Spero di essere stato chiaro.

In questo caso 'size' dovrebbe essere sufficiente.

Potresti cadere nel caso in cui sei su un OS a 64 bit ma la tua app
viene caricata a 32 bit perché c'è la versione x86 del
fx.net
 ma alla
fine poco importa per il tuo scopo.

Ad ogni modo con una manciata di test su delle VM dovresti verificare
subito se ti funziona a dovere.



title: Configuration collections: sollevare un'eccezione per collezione vuota

text:
Ciao a tutti,
Avete da consigliarmi una best practice per dove/come sollevare un'eccezione
quando una collection nel mio file di configurazione e' vuota (non ha
elementi)?  (Ovviamente mi riferisco ad una sezione custom.)
Al momento sollevo una ConfigurationErrorsException dal PostDeserialize
della ConfigurationElementCollection stessa, e il tutto da' risultati
piuttosto buoni visto che lo stack trace in effetti punta al file di
configurazione:  comunque mi chiedevo se e' l'approccio piu' diretto/piu'
correto, visto non sono riuscito a trovare indicazioni in rete e comunque
non mi pare che si possa fare dagli attributi...
Grazie,
-LV


title: [OT] Message in a bottle

text:
Vediamo se c'è ancora qualcuno all'ascolto, o se abbiamo tutti ceduto ai
forum...


title: [OT] Message in a bottle

text:
On Friday, April 3, 2015 at 7:56:52 AM UTC+1, Luca Menegotto wrote:

> Vediamo se c'è ancora qualcuno all'ascolto, o se abbiamo tutti ceduto ai
> forum...

C'e' sempre qualcuno in ascolto... ;)

Julio


title: [OT] Message in a bottle

text:

Ma comunque va bene cosi': a parte che i newsgroup richiedono un'altra mentalita' dai forum, ma qua i coordinatori manco il manifesto del grouppo si sono mai sentiti in dovere di completare, ovvero hanno semplicemente usurpato uno spazio ma certo non per svilupparlo...  ergo fate bene a guardare altrove, completamente altrove!

Julio


title: Quale difficoltà per una applicazione di embedding browser

author: PP

text:
Salve,
premetto che non conosco c#. Ho guardato un'oretta il linguaggio
sfogliando un libro della collana pocket di apogeo. Ho qualche
esperienza di programmazione in php (procedurale, poco ad oggetti)
anche se so cosa è una classe un oggetto e un metodo (ma non un
delegato :-) )
Vorrei realizzare un'applicazione fatta così:
- deve incorporare il browser (pensavo di provare IE che mi pare di
aver capito che con la WebBrowser Class non sia difficilissimo).
Vorrei valutare anche l'incorporamento di Firefox con
http://www.geckofx.org/
- deve rilevare la risoluzione del monitor principale e massimizzarsi
per occupare tutto lo spazio (niente bordi ma solo browser fullscreen)
(per esempio se monitor ris. HD 1920x1080) deve occupare tutto lo
schermo.
- vorrei poi impostare l'url a cui l'applicazione (e il broser
incorporato)  deve puntare in modo intelligente (esempio scritta su
file, leggendo da file di configurazione). Se non è impostata una url
vorrei far vedere un contenuto alternativo di default (esempio
immagine o pagina web locale)
- vorrei prevedere un meccanismo si uscita dall'applicazione  (tipo
doppio click in un quadrante dell'applicazione e software si chiude)
E' complesso fare un roba così ?
Se non riuscissi io, quanto mi potrebbe costare farla fare a qualcun
altro ?
Grazie in anticipo


text:
PP wrote:
> Salve,
> premetto che non conosco c#. Ho guardato un'oretta il linguaggio
> sfogliando un libro della collana pocket di apogeo. Ho qualche
> esperienza di programmazione in php (procedurale, poco ad oggetti)
> anche se so cosa è una classe un oggetto e un metodo (ma non un
> delegato :-) )
Benvenuto.
Vale certamente la pena che approfondisci su qualche libro (Es: CLR via
C#) per capire bene il framework prima del linguaggio che è piuttosto
semplice da imparare.
>
> Vorrei realizzare un'applicazione fatta così:
>
> - deve incorporare il browser (pensavo di provare IE che mi pare di
> aver capito che con la WebBrowser Class non sia difficilissimo).
> Vorrei valutare anche l'incorporamento di Firefox con
http://www.geckofx.org/
Non ho esperienza su quel componente, ma se ti devi limitare a quanto
ho letto, webbrowser è sufficiente.
Ci sono alcune operazioni avanzate (sottoscrizione a certi eventi del
del webbrowser) che possono essere più tricky visto che webbrowser è un
mero wrapper del componente COM di IE.
Tieni anche conto che il webbrowser non è al 100% IE. Quindi certe
pagine potrebbero non piacergli. Fai dei test così vedi se ti può
bastare.
>
> - deve rilevare la risoluzione del monitor principale e massimizzarsi
> per occupare tutto lo spazio (niente bordi ma solo browser fullscreen)
> (per esempio se monitor ris. HD 1920x1080) deve occupare tutto lo
> schermo.
Se usi winform ti basterà settare una manciata di proprietà della form
per togliere bordi e caption. Dovrebbe bastare:
FormBorderStyle = FormBorderStyle.None;
WindowState = FormWindowState.Maximized;
>
> - vorrei poi impostare l'url a cui l'applicazione (e il broser
> incorporato)  deve puntare in modo intelligente (esempio scritta su
> file, leggendo da file di configurazione). Se non è impostata una url
> vorrei far vedere un contenuto alternativo di default (esempio
> immagine o pagina web locale)
La navigazione la decidi tu da codice, se non ricordo male con il
metodo navigate
>
> - vorrei prevedere un meccanismo si uscita dall'applicazione  (tipo
> doppio click in un quadrante dell'applicazione e software si chiude)
intercetti l'evento del click e poi chiami il metodo Close della tua
finestra principale
>
> E' complesso fare un roba così ?
decisamente no... può essere una app su cui fare un po' di esperienza
con un libro sotto mano.
--
Raffaele Rialdi
http://www.iamraf.net
Weblog:
http://blogs.ugidotnet.org/raffaele
Microsoft MVP profile
https://mvp.support.microsoft.com/profile/raffaele
UGIdotNET -
http://www.ugidotnet.org/


author: Marcello Cantelmo

text:
L'alternativa open-source a .NET Reflector (che a partire da marzo non
sarà più gratuito) si chiama ILSpy. Il core del progetto è mono-cecil
0.9.4 ed è basato su FW 4.0.
il codice decompilato, al momento, viene restituito solo in IL e c#
Per maggiori informazioni:
www.ilspy.net
Marcello Cantelmo
www.cantelmosoftware.com


text:
Marcello Cantelmo wrote:
> L'alternativa open-source a .NET Reflector (che a partire da marzo non
> sarà più gratuito) si chiama ILSpy. Il core del progetto è mono-cecil
> 0.9.4 ed è basato su FW 4.0.
>
> il codice decompilato, al momento, viene restituito solo in IL e c#
>
> Per maggiori informazioni:
www.ilspy.net
Per una lista di alternative rimando a questo link:
http://stackoverflow.com/questions/2425973/open-source-alternatives-to-reflector
Monoflector credo sia molto promettente.
--
Raffaele Rialdi
Microsoft .NET MVP
http://mvp.support.microsoft.com
 -
http://italy.mvps.org
 UGIdotNET - User Group Italiano .NET
http://www.ugidotnet.org
 Weblog:
http://blogs.ugidotnet.org/raffaele


title: L'alternativa open-source a .NET Reflector

text:
> Per una lista di alternative rimando a questo link:
http://stackoverflow.com/questions/2425973/open-source-alternatives-t.
..
>
> Monoflector credo sia molto promettente.
ciao Raf,
e grazie per la precisazione.
Personalmente ritengo ILSpy (sviluppato dal team di SharpDevelop)
leggermente più avanti!
E' stata già implementata una procedura avanzata di "flow-analysis"
che -senza tanti giri di parole- elimina l'offuscazione (leggi:
"alterazione del control-flow") di alcuni obfuscator -> commerciali:
{s4}, ect., ect. e cloni (...chi legge il mio blog sa bene di cosa
parlo) -> 34zfusc4t0r, b4b3l, ect., ect.
Chi si è affidato a tali prodotti deve nuovamente correre ai ripari.
ora, servono, nuove idee di protezione!
ciao
Marcello Cantelmo
www.cantelmosoftware.com


author: LudovicoVan

text:
On Feb 20, 8:26 am, Marcello Cantelmo <
i...@cantelmosoftware.com
>
wrote:
> > Per una lista di alternative rimando a questo link:
http://stackoverflow.com/questions/2425973/open-source-alternatives-t.
..
>
> > Monoflector credo sia molto promettente.
>
> ciao Raf,
>
> e grazie per la precisazione.
>
> Personalmente ritengo ILSpy (sviluppato dal team di SharpDevelop)
> leggermente più avanti!
Da "*la* alternativa" a "leggermente piu' avanti" si fanno
progressi! :P
> E' stata già implementata una procedura avanzata di "flow-analysis"
> che -senza tanti giri di parole- elimina l'offuscazione (leggi:
> "alterazione del control-flow") di alcuni obfuscator -> commerciali:
> {s4}, ect., ect. e cloni (...chi legge il mio blog sa bene di cosa
> parlo) -> 34zfusc4t0r, b4b3l, ect., ect.
>
> Chi si è affidato a tali prodotti deve nuovamente correre ai ripari.
> ora, servono, nuove idee di protezione!
Se io e mio cuggino ci mettiamo a parlare *completamente in chiaro*
fra noi, non ci capisce nessuno!! (Buttata li': tema interessante...)
-LV


text:
ciao LV,
> Da "*la* alternativa" a "leggermente piu' avanti" si fanno
> progressi! :P
:-) ...se oltre a decompilare implicitamente rimuovono anche tecniche
di protezione...sono più avanti! :-D
> Se io e mio cuggino ci mettiamo a parlare *completamente in chiaro*
> fra noi, non ci capisce nessuno!! (Buttata li': tema interessante...)
oops! ...hai ragione! ho sostituito "a, e" con "4, 3" per non fare
"pubblicità" ai cloni! ...(che hanno copiato le idee di
protezione...rilasciando inizialmente prodotti
gratuiti...trasformandoli poi a pagamento)...ed ora ricevono un
bell'effetto boomerang... ;-)
ciao
Marcello Cantelmo
www.cantelmosoftware.com


text:
> ciao Raf,
ciao Marcello
>
> e grazie per la precisazione.
Volevo solo integrare l'informazione.
>
> Personalmente ritengo ILSpy (sviluppato dal team di SharpDevelop)
> leggermente più avanti!
>
> E' stata già implementata una procedura avanzata di "flow-analysis"
> che -senza tanti giri di parole- elimina l'offuscazione (leggi:
> "alterazione del control-flow") di alcuni obfuscator -> commerciali:
> {s4}, ect., ect. e cloni (...chi legge il mio blog sa bene di cosa
> parlo) -> 34zfusc4t0r, b4b3l, ect., ect.
>
> Chi si è affidato a tali prodotti deve nuovamente correre ai ripari.
> ora, servono, nuove idee di protezione!
Il 90% delle volte uso reflector sullo stesso
fx.net
 (questione di
abitudine visto che sono disponibili i sorgenti per buona parte).
A me personalmente non interessa copiare linee di codice dai progetti
opensource, figuriamoci da quelli compilati, quindi il fattore
protezione non è di mio personale interesse se non per scopi didattici.
Ad ogni modo almeno con una lista ciascuno può provare e scegliere
secondo il proprio criterio.



author: Giulio Petrucci

text:
Ciao LudovicoVan,
On 2/20/2011 11:41 AM, LudovicoVan wrote:
> Se io e mio cuggino ci mettiamo a parlare *completamente in chiaro*
> fra noi, non ci capisce nessuno!! (Buttata li': tema interessante...)
Tema *decisamente* interessante.
Varrebbe la pena di sviluppare, no?
;-)
Ciao,
Giulio
--


text:
On Feb 21, 8:40 am, Giulio Petrucci <sis...@nonono.boh> wrote:
> On 2/20/2011 11:41 AM, LudovicoVan wrote:
>
> > Se io e mio cuggino ci mettiamo a parlare *completamente in chiaro*
> > fra noi, non ci capisce nessuno!! (Buttata li': tema interessante...)
>
> Tema *decisamente* interessante.
> Varrebbe la pena di sviluppare, no?
> ;-)
A: Mi sento cosi' male... che mi consigli?
B: Smetti di prendere il caffe'!
*Sembra* innocua... a meno che tu non sappia che io non ho mai bevuto
caffe', e che piuttosto era un modo di mia nonna di prendere in giro
mio nonno su certe particolari sue idiosincrasie un po' discutibili...
(che non e' vero: e' solo un tentativo di esempio.)
http://voveo.blogspot.com/2008/10/evidentemente-niente.html
Non ho ancora una teoria: il concetto cui accenno sopra deriva
dall'analisi dei linguaggi naturali, in particolare dal rapporto fra
lingua e idioletto. La situazione ideale e' la seguente: se io e mio
cugino venissimo catturati dal nemico, come fare a comunicare senza
neanche dare a vedere che una particolare comunicazione e' in atto? Di
sicuro non scambiandoci frasi del tipo "rog ti permeli" (e se suonasse
come qualche dialetto nordico, non era mia intenzione...) Ma non c'e'
estrapolazione semplice/diretta ai *codici*, se non per il fatto che
la migliore protezione e' "fare tutto alla luce del sole"... una tesi
tanto radicale quanto bene si sposa con un principio cardine di
qualita' del codice: *leggibilita'*.
Comunque ci devo pensare meglio: piuttosto l'avevo buttata li' per
sentire se a chi si occupa piu' professionalmente di me di sicurezza
faceva suonare qualche campanello. In ogni caso temo sarebbe un tema
da approfondire in altra sede.
-LV