title: Silverlight 4 e WCF RIA controllo dei dati inseriti

author: Giovanni

text:
Un saluto a tutti.

Premessa, per la verifica dei dati sul record corrente mi sono costruito un
CustomValidator che verifica i dati presenti sulla maschera di inserimento,
vedi sotto per il richiamo:

<CustomValidation(GetType(ControlloDati), "VerificaTADett")> _
<MetadataTypeAttribute(GetType(TADett.TADettMetadata))> _
Partial Public Class TADett........

Ho tralasciato la classe del CustomValidator.

Ora ho la necessita di recuperare la data sul record precedente e
confrontarla con la data presente sul record che stò per inserire. E'
possibile dare in pasto al CustomValidator la variabile che riporta i data
del record precedente (per il recupero della data nessun prb) per fare un
confronto con quella del record in fase di inserimento? Se si come? Oppure
devo intraprendere altre strade?

Grazie e ciao

Giovanni


title: WebApi o WCF data services

author: Stefano Paparesta

text:
Scusate, ma la confusione nella mia testa aumenta. Devi implementare un applicativo mobile che invia dati ad un servizio\web site quando è in presenza di rete. Adesso mi vengono i dubbi, qual'è la tecnologia che potrebbe fare al caso mio ?
Con tutte le varianti che nel tempo si sono stratificate di servizi WCF mi sono perso. Mi potete aiutare a fare chiarezza ?

Grazie


title: WebApi o WCF data services

author: Raffaele Rialdi [MVP]

text:

I WCF data services servono per creare servizi che aderiscano alle
specifiche oData.

<digressione>
oData è uno standard creato da MS e rilasciato sotto la open promise
che ora ha "vita propria" e sta evolvendo nelle specifiche.
È particolarmente indicato per servizi che devono pubblicare dati in
una modalità CRUD e REST-like.
Dico "like" perché lo stile architetturale REST dovrebbe andare ben
oltre la mera CRUD. Leonard Richardson ha creato un "maturity level"
che va da zero a tre. La CRUD è a livello 2 mentre il meglio di REST si
ottiene con il livello 3 che è Hypermedia.
</digressione>

Le WebApi sono librerie che permettono lo sviluppo di servizi in stile
REST. Attenzione che usare WebApi non significa automaticamente
produrre servizi REST. Il developer continua a fare la differenza a
seconda di come usa le WebApi.
Le WebApi sono nate dal team di WCF ma quando erano ancora in beta
hanno visto che molte delle scelte erano analoghe a quelle di Asp.net
MVC. Perciò prima della RTM (un giorno prima della mia sessione dei
Community Days 2012) hanno fatto un mega-refactoring spostando tutto
dentro Asp.net MVC.

Se vieni a Webnet conference (
http://webnetconf.eu/
) e trovi ancora
posto (credo ci sia una coda di prenotazione) io e Jef parleremo in due
sessioni distinte di WebApi.

Per il tuo caso, ti consiglio di scegliere la tecnologia più comoda per
il tuo device. Solitamente REST è più semplice per questi scopi.
Uno dei fattori primari per scegliere tra SOAP e REST solitamente è in
funzione della varietà e numero dei client. SOAP ha un contratto rigido
e facile da rompere (dal punto di vista del versioning). Mentre REST è
più dinamico (specie se implementato bene con Hypermedia) e quindi si
presta bene agli scenari con tanti client e magari anche eterogenei.

ciao

--
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: WebApi o WCF data services

text:
Grazie Raf, questa cosa che dici su webApi é interessante cioé che nn basta per avere un buon servizio REST, mi puoi indicare qualche risorsa in merito ? Ammetto la mia ignoranza, OData nn l'ho seguito molto, ma in che scenari puó essere utile usarlo ?

St.efano


title: WebApi o WCF data services

text:

Beh negli eventi che io e altri abbiamo tenuto, si è parlato molto (e
continueremo a farlo) del discorso.
Se cerchi REST e Hypermedia troverai molte discussioni/articoli/blog in
giro.

oData è molto utile per esporre dei feed di dati. L'anno scorso ho
fatto una sessione a Milano ipotizzando che il futuro DataLayer potesse
essere fondamentalmente fatto solo di un client oData e poco più.
Niente più accesso al DB diretto, ma solo strati di servizi "generici"
come oData oppure specializzati per scenari specifici.
Questo è un discorso piuttosto lungo e senza una demo risulta un po'
difficile dimostrarti il valore della soluzione.



title: Timezone del browser

author: MadLuke

text:
Ciao a tutti,
    cercavo di capire se nell'oggetto Request.Browser fosse
disponibile la Timezone (l'offset) del browser che ha inviato la
Request ma non ho trovato nulla, davvero non esiste?
Ciao e grazie, MadLuke.


title: Timezone del browser

author: LudovicoVan

text:
On Monday, April 11, 2011 2:30:40 PM UTC+1, MadLuke wrote:
>     cercavo di capire se nell'oggetto Request.Browser fosse
> disponibile la Timezone (l'offset) del browser che ha inviato la
> Request ma non ho trovato nulla, davvero non esiste?
Purtroppo no:
http://stackoverflow.com/questions/338482/can-you-determine-timezone-from-request-variables
Le soluzioni proposte sono fondamentalmente due: 1) server-side dall'IP della richiesta usare un geolocation service; 2) usare JS client-side per ricavare il timezone offset e scriverlo magari in un campo hidden da cui poi leggerlo server-side al primo postback (oppure passato senza post-back, via AJAX).
-LV


title: Gestione delle transazioni

author: Giulio Petrucci

text:
Ciao a tutti,
vi illustro un problema "di concetto" nella speranza che qualcuno possa
aiutarmi a trovare una soluzione legata a una implementazione in C# (su
framework 4.0). A contorno vi dico che nel mio scenario vivono:
- un db su SQL Server 2008
- NHibernate come O/RM
- millemila applicazioni che accedono allo stesso db :-) Per semplicità
riduciamole a tre app: X, Y e Z.
Ho bisogno che le app che sviluppo io (X e Y) accedano al db in maniera
tale da bloccarlo, almeno in certi scenari critici. Questo perché devono
essere valutati vincoli a livello applicativo che devono poter rendere
eventualmente impossibile l'inserimento di un nuovo record, ecc ecc...
Potete darmi qualche consiglio? Posso usare le transaction di
NHibernate? Oppure usare il TransactionScope di cui - lo confesso - non
ho ancora capito a fondo il senso/funzionamento? A tal proposito: avete
qualche link a qualche risorsa per approfondire?
Ciao e grazie,
Giulio
--


title: Gestione delle transazioni

text:
On Feb 28, 11:34 am, Giulio Petrucci <sis...@nonono.boh> wrote:
> Ciao a tutti,
Ciao Giulio, non sono sicuro di poter rispondere efficacemente al tuo
quesito, ma potresti preliminarmente chiarire alcuni punti?
> vi illustro un problema "di concetto" nella speranza che qualcuno possa
> aiutarmi a trovare una soluzione legata a una implementazione in C# (su
> framework 4.0). A contorno vi dico che nel mio scenario vivono:
> - un db su SQL Server 2008
> - NHibernate come O/RM
> - millemila applicazioni che accedono allo stesso db :-) Per semplicità
> riduciamole a tre app: X, Y e Z.
Non e' chiaro se l'O/RM risiede in un layer a se' stante attraverso
cui tutti i client devono passare...
> Ho bisogno che le app che sviluppo io (X e Y) accedano al db in maniera
> tale da bloccarlo, almeno in certi scenari critici.
Intendi dire che le altre applicazioni sono fuori dal tuo controllo?
Anche il database lo e'?
> Questo perché devono
> essere valutati vincoli a livello applicativo che devono poter rendere
> eventualmente impossibile l'inserimento di un nuovo record, ecc ecc...
Forse non rilevante in prima istanza, pero' considera che esistono
diversi livelli di transaction isolation. Da quel punto di vista, per
suggerire in dettaglio una strategia occorrerebbe sapere esattamente
quali sono le operazioni che devi fare.
> Potete darmi qualche consiglio? Posso usare le transaction di
> NHibernate? Oppure usare il TransactionScope di cui - lo confesso - non
> ho ancora capito a fondo il senso/funzionamento? A tal proposito: avete
> qualche link a qualche risorsa per approfondire?
Su NHibernate non ho idea, ma su TransactionScope e temi collegati fai
una ricerca su Internet e su MSDN (e tutti i dettagli sul
funzionamento delle transazioni e i livelli di isolation li trovi
nella documentazione di SqlServer): c'e' parecchissimo materiale...
cerca anche distibuted transactions.
-LV


title: Gestione delle transazioni

text:
Ciao Ludovico,
On 2/28/2011 3:47 PM, LudovicoVan wrote:
> Ciao Giulio, non sono sicuro di poter rispondere efficacemente al tuo
> quesito, ma potresti preliminarmente chiarire alcuni punti?
Ma certo. :-)
> Non e' chiaro se l'O/RM risiede in un layer a se' stante attraverso
> cui tutti i client devono passare...
No. Ogni app ha il suo data access layer (fatto con NHibernate).
> Intendi dire che le altre applicazioni sono fuori dal tuo controllo?
Esatto.
> Anche il database lo e'?
Parzialmente. Ma ai fini del problema possiamo dire di si nel senso che
posso leggere e scrivere record ma nulla più.
> Forse non rilevante in prima istanza, pero' considera che esistono
> diversi livelli di transaction isolation. Da quel punto di vista, per
> suggerire in dettaglio una strategia occorrerebbe sapere esattamente
> quali sono le operazioni che devi fare.
Faccio un esempio.
class Foo {
     string Label { get; set; }
}
Un "vincolo" mi impone che non ci siano due righe della tabella Foo con
lo stesso valore per il campo Label. Sul db non c'è nessun vincolo
unique. Dato che sia l'app X che l'app Y possono inserire righe nella
tabella Foo, devo "lockare" durante il processo di creazione in modo da
poter leggere se ci sono altri record ed eventualmente annullare
l'operazione.
> Su NHibernate non ho idea, ma su TransactionScope e temi collegati fai
> una ricerca su Internet e su MSDN (e tutti i dettagli sul
> funzionamento delle transazioni e i livelli di isolation li trovi
> nella documentazione di SqlServer): c'e' parecchissimo materiale...
Il problema è che la documentazione MSDN è una ottima reference. Ma se
hai bisogno di imparare da zero non è proprio il top!
:-)



title: Gestione delle transazioni

text:

OK, ma in giro per il Web trovi anche tutorial, blog, discussioni, e
chi piu' ne ha piu' ne metta. Comunque, ammesso che le prove di base
con sessioni e transazioni di NHibernate tu le abbia gia' fatte, temo
che ti occorra proprio un esperto appunto di NHibernate...
-LV


title: Nomenclatura: conflitti tra namespace e nome delle classi

text:
Ciao a tutti,
In una applicazione, ho un componente che si chiama FooManager.
Che convenzione seguite per non avere un namespace XYZ.FooManager e al
suo interno la classe FooManager?
Grazie,
Giulio
--


text:

XYZ.Foo.FooManager ?
Es. System.Configuration.ConfigurationManager.
-LV


title: ASP.NET sqlserver mysql

author: MasterControl

text:
ciao,

l'accesso da ASP.net verso Sqlserver rispetto a Mysql offre più vantaggi
dal punto di vista prestazioni/ funzionalità?

grazie


title: ASP.NET sqlserver mysql

author: Mauro Servienti [MVP]

text:
Ciao MasterControl,

You wrote on 18/05/2012 :
> ciao,
>
> l'accesso da ASP.net verso Sqlserver rispetto a Mysql offre piï¿œ vantaggi dal
> punto di vista prestazioni/ funzionalitï¿œ?

no, non direi.
L'unica differenza che io ritengo essere sostanziale ï¿œ la licenza GPL
di MySql che ti obbliga, se vuoi avere MySql "gratis", a utilizzare GPL
anche per il tuo software quindi a rilasciare i sorgenti e caz*i e
mazzi :-)

> grazie

.m

--
blog @ //
milestone.topics.it


title: ASP.NET sqlserver mysql

text:
"Mauro Servienti [MVP]" <maurose...@online.nospam> wrote in message
news:mn.91987dc56...@online.nospam...
> Ciao MasterControl,
> You wrote on 18/05/2012 :
>> ciao,
>>
>> l'accesso da ASP.net verso Sqlserver rispetto a Mysql offre più vantaggi
>> dal punto di vista prestazioni/ funzionalità?
>
> no, non direi.
> L'unica differenza che io ritengo essere sostanziale è la licenza GPL di
> MySql che ti obbliga, se vuoi avere MySql "gratis", a utilizzare GPL anche
> per il tuo software quindi a rilasciare i sorgenti e caz*i e mazzi :-)

Come ho gia' avuto modo di dire, questo non e' corretto: MySql e' equiparato
ad un servizio di sistema e in quanto tale puo' essere usato anche da
software non GPL.

La differenza principale fra i due e' che, non appena uno va oltre la
versione Express di SQL Server, le funzionalita' disponibili sono di gran
lunga maggiori di quelle che MySql offre: ovviamente a pagamento perche' la
versione Express non e' per uso commerciale (ma puo' essere usata in
sviluppo).

-LV


title: ASP.NET sqlserver mysql

text:
Ciao LudovicoVan,

You wrote on 18/05/2012 :
> "Mauro Servienti [MVP]" <maurose...@online.nospam> wrote in message
> news:mn.91987dc56...@online.nospam...
>> Ciao MasterControl,
>> You wrote on 18/05/2012 :
>>> ciao,
>>>
>>> l'accesso da ASP.net verso Sqlserver rispetto a Mysql offre più vantaggi
>>> dal punto di vista prestazioni/ funzionalità?
>>
>> no, non direi.
>> L'unica differenza che io ritengo essere sostanziale è la licenza GPL di
>> MySql che ti obbliga, se vuoi avere MySql "gratis", a utilizzare GPL anche
>> per il tuo software quindi a rilasciare i sorgenti e caz*i e mazzi :-)
>
> Come ho gia' avuto modo di dire, questo non e' corretto: MySql e' equiparato
> ad un servizio di sistema e in quanto tale puo' essere usato anche da
> software non GPL.

A quanto si dice qui:
http://www.mysql.com/about/legal/licensing/index.html

non sembra così, ma potrei sbagliarmi, e sinceramente non avendo nessun
interesse in MySql va bene così :-P

> La differenza principale fra i due e' che, non appena uno va oltre la
> versione Express di SQL Server, le funzionalita' disponibili sono di gran
> lunga maggiori di quelle che MySql offre: ovviamente a pagamento perche' la
> versione Express non e' per uso commerciale (ma puo' essere usata in
> sviluppo).

Sul blog ufficiale di Sql Express dicono che ci puoi fare quello che
vuoi:
http://blogs.msdn.com/b/sqlexpress/archive/2004/07/04/172952.aspx

Sempre che tu ti stia riferendo alla versione Express di Sql Server.

> -LV



title: ASP.NET sqlserver mysql

text:
"Mauro Servienti [MVP]" <maurose...@online.nospam> wrote in message
news:mn.93267dc57...@online.nospam...
> Ciao LudovicoVan,
> You wrote on 18/05/2012 :
>> "Mauro Servienti [MVP]" <maurose...@online.nospam> wrote in message
>> news:mn.91987dc56...@online.nospam...
>>> Ciao MasterControl,
>>> You wrote on 18/05/2012 :
>>>> ciao,
>>>>
>>>> l'accesso da ASP.net verso Sqlserver rispetto a Mysql offre piï¿œ
>>>> vantaggi dal punto di vista prestazioni/ funzionalitï¿œ?
>>>
>>> no, non direi.
>>> L'unica differenza che io ritengo essere sostanziale ï¿œ la licenza GPL di
>>> MySql che ti obbliga, se vuoi avere MySql "gratis", a utilizzare GPL
>>> anche per il tuo software quindi a rilasciare i sorgenti e caz*i e mazzi
>>> :-)
>>
>> Come ho gia' avuto modo di dire, questo non e' corretto: MySql e'
>> equiparato ad un servizio di sistema e in quanto tale puo' essere usato
>> anche da software non GPL.
>
> A quanto si dice qui:
>
http://www.mysql.com/about/legal/licensing/index.html

>
> non sembra cosï¿œ,

Non mi pare che quel documento contraddica cio' che ho detto.

> ma potrei sbagliarmi, e sinceramente non avendo nessun interesse in MySql
> va bene cosï¿œ :-P

Si', sara' quello...  :)

>> La differenza principale fra i due e' che, non appena uno va oltre la
>> versione Express di SQL Server, le funzionalita' disponibili sono di gran
>> lunga maggiori di quelle che MySql offre: ovviamente a pagamento perche'
>> la versione Express non e' per uso commerciale (ma puo' essere usata in
>> sviluppo).
>
> Sul blog ufficiale di Sql Express dicono che ci puoi fare quello che vuoi:
>
http://blogs.msdn.com/b/sqlexpress/archive/2004/07/04/172952.aspx

Se e' cosi': un'occhiata alla licenza di SQL Server Express gliela darei, e'
un post del 2004 e usa il tempo futuro.

-LV


title: ASP.NET sqlserver mysql

text: grazie a tutti :)


title: ASP.NET sqlserver mysql

author: Paolo opg

text:
"LudovicoVan" <
ju...@diegidio.name
> wrote in
news:jp5c4c$hgn$
1...@speranza.aioe.org
:

> "Mauro Servienti [MVP]" <maurose...@online.nospam> wrote in
> message news:mn.93267dc57...@online.nospam...
>> Ciao LudovicoVan,
>> You wrote on 18/05/2012 :
>>> "Mauro Servienti [MVP]" <maurose...@online.nospam> wrote in
>>> message news:mn.91987dc56...@online.nospam...
>>>> Ciao MasterControl,
>>>> You wrote on 18/05/2012 :
>>>>> ciao,
>>>>>
>>>>> l'accesso da ASP.net verso Sqlserver rispetto a Mysql offre più
>>>>> vantaggi dal punto di vista prestazioni/ funzionalità?
>>>>
>>>> no, non direi.
>>>> L'unica differenza che io ritengo essere sostanziale è la licenza
>>>> GPL di MySql che ti obbliga, se vuoi avere MySql "gratis", a
>>>> utilizzare GPL anche per il tuo software quindi a rilasciare i
>>>> sorgenti e caz*i e mazzi
>>>> :-)
>>>
>>> Come ho gia' avuto modo di dire, questo non e' corretto: MySql e'
>>> equiparato ad un servizio di sistema e in quanto tale puo' essere
>>> usato anche da software non GPL.
>>
>> A quanto si dice qui:
>>
http://www.mysql.com/about/legal/licensing/index.html

>>
>> non sembra così,
>
> Non mi pare che quel documento contraddica cio' che ho detto.
>

hum...
dice esplicitamente che:

For OEMs, ISVs, and VARs who distribute MySQL with their products, and do
not license and distribute their source code under the GPL, MySQL
provides a flexible OEM Commercial License.

io leggo ISV come sviluppatore (independent software vendor); ovvero se
non fai open source allora devi pagare una licenza.

>> ma potrei sbagliarmi, e sinceramente non avendo nessun interesse in
>> MySql va bene così :-P
>
> Si', sara' quello...  :)
>
>>> La differenza principale fra i due e' che, non appena uno va oltre
>>> la versione Express di SQL Server, le funzionalita' disponibili sono
>>> di gran lunga maggiori di quelle che MySql offre: ovviamente a
>>> pagamento perche' la versione Express non e' per uso commerciale (ma
>>> puo' essere usata in sviluppo).
>>
>> Sul blog ufficiale di Sql Express dicono che ci puoi fare quello che
>> vuoi:
>>
http://blogs.msdn.com/b/sqlexpress/archive/2004/07/04/172952.aspx

>
> Se e' cosi': un'occhiata alla licenza di SQL Server Express gliela
> darei, e' un post del 2004 e usa il tempo futuro.
>
> -LV
>
>

qui c'e' la pagina aggiornata:
http://www.microsoft.com/sqlserver/en/us/editions/2012-

editions/express.aspx

e qui le faq sulle licenze abbastanza recenti:
http://download.microsoft.com/download/2/8/C/28C1D480-2A2A-4DA3-9BA6-

C9A2F48F9AE4/SQLServer2012_EditionsLicensing_FAQ_Nov2011.docx

la faq nr 4 dice proprio:
Developer, Express and Compact Editions will also continue to be
distributed without licensing or pricing changes.

non ci sono costi di licenza o di acquisto.

l'unico vincolo e' la registrazione: se ti registri puoi redistribuire il
pacchetto d'installazione con il tuo prodotto.

in pratica se non vuoi registrarti vai dal cliente, fai scaricare a lui
il pacchetto d'installazione e sei (dovresti essere?) in regola comunque.

--
Paolo opg

BE AWARE that this post uses a fake reply-to address
to contact me write to:
janickg ( at ) hotmail ( dot ) com
--


title: ASP.NET sqlserver mysql

text:
Paolo opg <
spamc...@tiscali.it
> wrote in
news:XnsA057A619048BEsp...@193.43.96.1
:

[cut]
>>
>>>> La differenza principale fra i due e' che, non appena uno va oltre
>>>> la versione Express di SQL Server, le funzionalita' disponibili
>>>> sono di gran lunga maggiori di quelle che MySql offre: ovviamente a
>>>> pagamento perche' la versione Express non e' per uso commerciale
>>>> (ma puo' essere usata in sviluppo).
>>>
>>> Sul blog ufficiale di Sql Express dicono che ci puoi fare quello che
>>> vuoi:
>>>
http://blogs.msdn.com/b/sqlexpress/archive/2004/07/04/172952.aspx

>>
>> Se e' cosi': un'occhiata alla licenza di SQL Server Express gliela
>> darei, e' un post del 2004 e usa il tempo futuro.
>>
>> -LV
>>
>>
>
> qui c'e' la pagina aggiornata:
>
http://www.microsoft.com/sqlserver/en/us/editions/2012-

> editions/express.aspx
>
> e qui le faq sulle licenze abbastanza recenti:
>
http://download.microsoft.com/download/2/8/C/28C1D480-2A2A-4DA3-9BA6-

> C9A2F48F9AE4/SQLServer2012_EditionsLicensing_FAQ_Nov2011.docx
>
> la faq nr 4 dice proprio:
> Developer, Express and Compact Editions will also continue to be
> distributed without licensing or pricing changes.
>
> non ci sono costi di licenza o di acquisto.
>

si vabbe'...
posso usare la scusa del 'e' venerdi' pomeriggio'?
ho letto 'changes' come 'charges'...

in ogni caso qui:
http://www.microsoft.com/italy/server/sql/2008/prodinfo/express.mspx

dice esplicitamente che 'SQL Server 2008 Express � un'edizione gratuita
di SQL Server' con 'Diritti gratuiti di ridistribuzione per gli ISV
(Independent Software Vendor)'.

unisci al 'without licensing or pricing changes' e ottieni il risultato
voluto...



title: ASP.NET sqlserver mysql

text:
"Paolo opg" <
spamc...@tiscali.it
> wrote in message
news:XnsA057A619048BEsp...@193.43.96.1...
> "LudovicoVan" <
ju...@diegidio.name
> wrote in
> news:jp5c4c$hgn$
1...@speranza.aioe.org
:
>> "Mauro Servienti [MVP]" <maurose...@online.nospam> wrote in
>> message news:mn.93267dc57...@online.nospam...
>>> Ciao LudovicoVan,
>>> You wrote on 18/05/2012 :
<snip>

>>>> MySql e'
>>>> equiparato ad un servizio di sistema e in quanto tale puo' essere
>>>> usato anche da software non GPL.
>>>
>>> A quanto si dice qui:
>>>
http://www.mysql.com/about/legal/licensing/index.html

>>> non sembra cos�,
>>
>> Non mi pare che quel documento contraddica cio' che ho detto.
>
> hum...
> dice esplicitamente che:
>
> For OEMs, ISVs, and VARs who distribute MySQL with their products, and do
> not license and distribute their source code under the GPL, MySQL
> provides a flexible OEM Commercial License.
>
> io leggo ISV come sviluppatore (independent software vendor); ovvero se
> non fai open source allora devi pagare una licenza.

ISV e' di solito un programma specifico a cui ci si iscrive, non si e' ISV
automaticamente.  Infatti li' si parla di software OEM e se clicchi su "More
Info" vieni rimandato al licensing di MySql Embedded.  Per quanto ne so (non
sono un avvocato e questa *non* e' una consulenza legale, piuttosto riporto
il risultato delle mie indagini) a MySql installato sul server come DBMS
(che e' legalmente equiparato ad un servizio di sistema), puo' accedere
qualunque software: cosi' funziona la GPL, che e' virale ma non
completamente irraggionevole (vedi in generale il caso di Linux: non per
niente il link a GPL da MySql rimanda alla FAQ del "GNU Operating System").

>>>> La differenza principale fra i due e' che, non appena uno va oltre
>>>> la versione Express di SQL Server, le funzionalita' disponibili sono
>>>> di gran lunga maggiori di quelle che MySql offre: ovviamente a
>>>> pagamento perche' la versione Express non e' per uso commerciale (ma
>>>> puo' essere usata in sviluppo).
>>>
>>> Sul blog ufficiale di Sql Express dicono che ci puoi fare quello che
>>> vuoi:
>>>
http://blogs.msdn.com/b/sqlexpress/archive/2004/07/04/172952.aspx

>>
>> Se e' cosi': un'occhiata alla licenza di SQL Server Express gliela
>> darei, e' un post del 2004 e usa il tempo futuro.
>
> qui c'e' la pagina aggiornata:
>
http://www.microsoft.com/sqlserver/en/us/editions/2012-

> editions/express.aspx

OK, avete ragione su SQL Server Express, e' gratuito per qualunque uso: ho
controllato direttamente l'EULA.  Ci sono pero' delle restrizioni tecniche,
che non sono andato a spulciare...

Bottom line, mi pare di poter concludere che entrambi i prodotti, MySql e
SQL Server Express, sono gratuiti per qualunque uso "finale".  Ci sono
ovviamente delle differenze funzionali (e se uno sviluppa per Windows e
.NET, sono dell'opinione che la scelta piu' efficace resti SQL Server).

-LV


title: ASP.NET sqlserver mysql

author: Andrea Saltarello

text:
Il 18/05/2012 21:20, LudovicoVan ha scritto:

> Per
> quanto ne so (non sono un avvocato
nemmeno io, ed � proprio per questo che in azienda abbiamo interpellato
degli avvocati (pi� di uno per avere maggior "sicurezze"). La questione
� "semplice":
- se non acquisti la licenza commerciale, stai usando MySQL sotto GPL
- la licenza GPL asserisce che ogni "derivative work" di software GPL
deve essere sotto GPL
- la licenza GPL non fornisce una definizione di "derivative work"
- in fase di dibattimento, un avvocato sosterrebbe che un sw basato su
MySQL sia "derivative work" poich�, semplicemente, senza MySQL il
software applicativo non funziona
- in un sistema giuridico di tipo "civil law" (quale � quello italiano),
eventuali sentenze pro/contro l'uso gratuito di MySQL a scopo
commerciale non sono, in assenza di leggi specifiche o di precise
indicazioni della licenza (ancora una volta quel "derivative work"), da
considerarsi indicative di come andrebbe una causa perch� ogni causa fa
praticamente storia a s�

ergo, se usi MySQL senza pagare la licenza incroci le dita affinch�, ove
tale uso ti fosse contestato, l'eventuale giudice/giuria interpreti in
modo a te favorevole la dizione "derivative work" (ma considerando che
l'avvocato della controparte giocher� la carta "senza MySQL non
funziona, quindi � un lavoro derivato").
Una precisazione: esattamente come LudovicoVan, nemmeno io sono un
avvocato; sto solo riportando quanto emerso da consulenze "preventive"
(e quindi basate su uno scenario "ipotetico" e non "pratico") da noi
richieste ad avvocati

--
.A
GUISA -
http://www.guisa.org

UGIdotNET -
http://www.ugidotnet.org

Read my blog at:
http://blogs.ugidotnet.org/pape


title: ASP.NET sqlserver mysql

text:
"Andrea Saltarello" <andysal...@NOgmailSPAM.com> wrote in message
news:jp7qrs$s8e$1...@tdi.cu.mi.it...

> - la licenza GPL asserisce che ogni "derivative work" di software GPL deve
> essere sotto GPL

Usare MySql *non* e' derivative work.

> - la licenza GPL non fornisce una definizione di "derivative work"

Wrong.

Poi ovviamente "la questione e' semplice": ognuno faccia come crede.

-LV


title: MediaElement in uno scenario MVVM

text:
Ciao a tutti,

sto cercando di usare un componente MediaElement in uno scenario MVVM.
Il componente MediaElement (per quello che mi serve) espone i seguenti
metodi/property:

- .Source: property di tipo Uri che indica il file da suonare
- .Play()/Pause()/Stop(): metodi dal significato ovvio. :-)

ho un viewmodel che per ora contiene solo la property MediaSource (di
tipo Uri) a cui viene bindata la property Source del componente
MediaElement nello XAML:

//ViewModel
class MediaPlayerViewModel : INotifyPropertyChanged {
	//...
	public Uri MediaSource { get; set; }
}

<!-- NELLO XAML -->
<MediaElement x:Name="mediaElement" Source="{Binding MediaSource}"  .../>

La domanda è: come faccio a "controllare" il media element dal view
model? E' possibile? E' giusto (in un'ottica 100% MVVM)? Oppure sono
completamente fuori strada?

Grazie,
Giulio

--


title: MediaElement in uno scenario MVVM

text:
Ciao Giulio,

You wrote on 17/11/2011 :
> La domanda è: come faccio a "controllare" il media element dal view model? E'
> possibile? E' giusto (in un'ottica 100% MVVM)? Oppure sono completamente
> fuori strada?

dovrei chiedere a Corrado Cavalli e Giorgio che ci hanno lavorato
parecchio per un progetto aziendale ma a naso direi che non puoi se non
facendoti un bel set di attached properties (o behaviors) che facciano
il lavoro sporco, e a quel punto saresti 100% m-v-vm

.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: MediaElement in uno scenario MVVM

text:
Giulio Petrucci wrote:
> La domanda è: come faccio a "controllare" il media element dal view model? E'
> possibile? E' giusto (in un'ottica 100% MVVM)? Oppure sono completamente
> fuori strada?
>

I metodi di un controllo sono il punto debole di MVVM.
Per punto debole intendo ciò per cui scrivi più codice di quanto
sarebbe lecito attendersi.

A seconda dello scenario puoi risolvere in modi diversi.
Sistema 1:
Crei un custom control (non user control) che è un mero wrapper ed
esponi proprietà sul cui trigger chiami i rispettivi metodi.
Per esempio una proprietà status che è di un tipo enum con play, pause,
stop, etc.

Se vuoi che sia bindabile dovrai farla diventare una DP e usare la
notifica per chiamare i metodi.
Questo è un po' più rognoso perché lo stato del controllo non è a posto
fino a che non viene chiamata applytemplate.

Non mi piace perché fai fare da metodo alle property e questo è un
*pessimo* vizietto di tutto mvvm.

Altro sistema: user o custom control.
* Aggiungi un tuo command al controllo
* Lo bindi al viewmodel in modo OneWayToSource
* Lo esegui dal viewmodel verso il controllo
in pratica lo usi a reverse

IMHO è un vero schifo :)
E dopo essere riuscito a risolvere il problema in entrambi i modi ti
dico chiaramente che è bene valutare se ne vale veramente la pena o no.
Vince il sistema che è più semplice, più facile da capire per chi lo
legge dopo che tu l'hai scritto, e più manutenibile.

Con tutte le critiche, devo anche dire che mvvm è il minore dei mali
perché mettere tutto con gli event-handler è pure peggio :)

--
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: MediaElement in uno scenario MVVM

text:
Ciao Raffaele,

You wrote on 18/11/2011 :
> I metodi di un controllo sono il punto debole di MVVM.
> Per punto debole intendo ciò per cui scrivi più codice di quanto sarebbe
> lecito attendersi.

verissimo, purtroppo M-V-VM si basa sul concetto di stato e di
variazione dello stato per cui le property sono la scelta naturale ma i
metodi sono un delirio che richiede forzature e compromessi spesso
noiosi e arzigogolati. I command ogni tanto sono una buona soluzione ma
troppo spesso sono anch'essi una mezza forzatura.



title: MediaElement in uno scenario MVVM

text:
Mauro Servienti [MVP] wrote:
> verissimo, purtroppo M-V-VM si basa sul concetto di stato e di variazione
> dello stato per cui le property sono la scelta naturale ma i metodi sono un
> delirio che richiede forzature e compromessi spesso noiosi e arzigogolati. I
> command ogni tanto sono una buona soluzione ma troppo spesso sono anch'essi
> una mezza forzatura.
>

Sostanzialmente adotti un pattern per tradire altre best-practices
dall'altra parte e questo rompe la mis-credenza che adottare un pattern
implichi codice 100% clean.

La reale usabilità dei pattern è strettamente legata alla tecnologia
che ci sta sotto, motivo per cui non ritengo sia un delitto
contestualizzare certe scelte e "rompere" il pattern stesso qualora
questa sia:
- una decisione scelta con cognizione di causa
- un reale vantaggio in termini di ciclo di vita del software



title: MediaElement in uno scenario MVVM

author: marcosabba

text:
Il 17/11/2011 17:16, Giulio Petrucci ha scritto:
> La domanda è: come faccio a "controllare" il media element dal view
> model? E' possibile? E' giusto (in un'ottica 100% MVVM)? Oppure sono
> completamente fuori strada?

Questo esempio non mi dispiace, non so se è "pure MVVM" ma secondo me
serve alla "causa" (ed è simile all'approccio che hai seguito ieri in
ufficio):

http://tinyurl.com/8xcvdbl

ciao


title: MediaElement in uno scenario MVVM

text:
Ciao Raffaele,

You wrote on 18/11/2011 :
> Mauro Servienti [MVP] wrote:
>> verissimo, purtroppo M-V-VM si basa sul concetto di stato e di variazione
>> dello stato per cui le property sono la scelta naturale ma i metodi sono un
>> delirio che richiede forzature e compromessi spesso noiosi e arzigogolati.
>> I command ogni tanto sono una buona soluzione ma troppo spesso sono
>> anch'essi una mezza forzatura.
>>
>
> Sostanzialmente adotti un pattern per tradire altre best-practices dall'altra
> parte e questo rompe la mis-credenza che adottare un pattern implichi codice
> 100% clean.
>
> La reale usabilità dei pattern è strettamente legata alla tecnologia che ci
> sta sotto, motivo per cui non ritengo sia un delitto contestualizzare certe
> scelte e "rompere" il pattern stesso qualora questa sia:
> - una decisione scelta con cognizione di causa
> - un reale vantaggio in termini di ciclo di vita del software

amen :-)

.m

--
blog @ //
milestone.topics.it


title: MediaElement in uno scenario MVVM

text:
Ciao Marco,

On 18/11/2011 10:33, marcosabba wrote:
> Questo esempio non mi dispiace, non so se è "pure MVVM" ma secondo me
> serve alla "causa" (ed è simile all'approccio che hai seguito ieri in
> ufficio):
[cut]

Effettivamente è un modo per arrivare al punto in maniera abbastanza
rapida. Se mi permetto però, "contesto" un paio di cose che non mi
piacciono. :-)

1. il command parametrico che fa switch sul tipo di comando. :-)
2. il problema "centrale" è aggirato impostando il media element come
property del ViewModel. Non credo che la cosa sia "il male", ma per
avere le cose ben fatte bisogna necessariamente (IMVHO) passare da un
container IoC che gestisca l'associazione view-viewmodel (cfr. thread di
un paio di settimane fa tra me e Mauro). Questo significa che quando
parte un progetto, questo deve stare *SUBITO* sulle giuste direttrici. ;-)

Ciao,
Giulio

--


title: MediaElement in uno scenario MVVM

text:
Ri-ciao,

On 21/11/2011 10:04, Giulio Petrucci wrote:
> 1. il command parametrico che fa switch sul tipo di comando. :-)
> 2. il problema "centrale" è aggirato impostando il media element come
> property del ViewModel. Non credo che la cosa sia "il male", ma per
> avere le cose ben fatte bisogna necessariamente (IMVHO) passare da un
> container IoC che gestisca l'associazione view-viewmodel (cfr. thread di
> un paio di settimane fa tra me e Mauro). Questo significa che quando
> parte un progetto, questo deve stare *SUBITO* sulle giuste direttrici. ;-)

3. ma che pena può essere testare una cosa del genere? :-)

Ciao,
Giulio

p.s. qualcosa comunque toccherà inventarsi... :-/
--


title: MediaElement in uno scenario MVVM

text:
Ciao Giulio,

You wrote on 21/11/2011 :
> 1. il command parametrico che fa switch sul tipo di comando. :-)
> 2. il problema "centrale" è aggirato impostando il media element come
> property del ViewModel. Non credo che la cosa sia "il male", ma per avere le
> cose ben fatte bisogna necessariamente (IMVHO) passare da un container IoC
> che gestisca l'associazione view-viewmodel (cfr. thread di un paio di
> settimane fa tra me e Mauro). Questo significa che quando parte un progetto,
> questo deve stare *SUBITO* sulle giuste direttrici. ;-)

una terza possibilità sarebbe di rivedere tutta la logica e dire:

- hai un ViewModel diciamo "Main";
- inietti via UI Composition il tuo UserControl che hosta il media
player;
- tutto dipende da un motore di IoC e ogni pezzo ha una dipendenza dal
message broker;
- il MainViewModel si limita a "sparare" messaggi per chiedere il
cambio di stato del media player;

> Ciao,
> Giulio



title: Join in LINQ (assurdo???) (NHibernate inside)

text:
Ciao a tutti,
vado al sodo:
class Foo {
     string X { ... }
     string Y { ... }
     string Z { ... }
     Bar Bar { ... }
}
class Bar {
    string A { ... }
    srting B { ... }
}
ISession session = ...;
var fooQuery = session.Query<Foo>().Where(...condizioni...);
var barQuery = session.Query<Bar>().Where(...condizioni...);
se faccio:
var query = from f in fooQuery
                  join b in barQuery
                  on f.Bar equals b
		select f;
la query "scoppia", devo quindi ripiegare su :
var query = from f in session.Query<Foo>()
                  join b in session.Query<Bar>()
                  on f.Bar equals b
		where f.X = blablabla ...condizioni...
		where b.A = blablabla ...condizioni...
		select f;
il mio problema è questo: le clausole WHERE vengono costruite in maniera
"dinamica" sulla base dello stato di un query object.
E' possibile riportare la sintassi dichiarativa funzionante in forma
impertativa?
Sbaglio qualcosa? Il linq provider di NH è una chiavica?
Grazie,
Giulio
--


text:
Ciao a tutti,
On 6/21/2011 6:23 PM, Giulio Petrucci wrote:
[cut]
ho fatto qualche altra prova:
> ISession session = ...;
> var fooQuery = session.Query<Foo>().Where(...condizioni...);
> var barQuery = session.Query<Bar>().Where(...condizioni...);
sono le .Where() sulla seconda query (la "inner" nella join, insomma)
che danno fastidio.
Qualche aiuto?
Grazie,
Giulio
--


title: [WPF] Navigazione TreeView via tastiera

text:
Ciao a tutti.
Sono incappato in un problema che sto affrontando "a forza bruta" ma so
che non ne uscirò vivo:
se facciamo un semplice treeview e usiamo un datatemplate per i
treeviewitems, limitandoci ad usare dei textblock riusciamo a "navigare"
all'interno dell'albero con i tasti freccia in modo agevole: con i tasti
up e down andiamo su e giù per i nodi dei vari livelli e con i tasti
destra e sinistra espandiamo o collassiamo i rami.
La cosa cambia se nel datatemplate mettiamo qualcosa di editabile, tipo
una textbox, perché, giustamente, i tasti vengono intercettati ad uso
della textbox.
Come fareste per evitare questo comportamento, cioè, per escludere i
tasti up e down dall'essere intercettati dalla textbox (sempre che sia
giusto: servirebbero ad esempio in una textbox multilinea)?
Pensate che sia più corretto usare, come ho visto in giro, textblock che
diventano textbox in fase di edit?
ciao e grazie


title: [WPF] Navigazione TreeView via tastiera

text:

Si, decisamente. Anche perché grazie ai template sostituire un banale
textblock in un più complesso user control di editazione con tanto di
pulsantini e quant'altro è decisamente semplice.
>
> ciao e grazie
prego, ciao
--
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: [WPF] Navigazione TreeView via tastiera

text:
Il 17/05/2011 18:15, Raffaele Rialdi [MVP] ha scritto:
> Si, decisamente. Anche perché grazie ai template sostituire un banale
> textblock in un più complesso user control di editazione con tanto di
> pulsantini e quant'altro è decisamente semplice.
ok, adesso però mi sorge un problema, se per il template dello stato non
editabile uso qualcosa del genere (è solo un esempio preso modificando
un esercizio)
         <DataTemplate x:Key="DisplayModeTemplate">
             <StackPanel>
                 <TextBlock Text="{Binding ElementName=mainControl,
Path=FormattedText}" Margin="5,3,5,3" />
                 <Button></Button>
             </StackPanel>
         </DataTemplate>
vedo che navigando l'albero il focus non passa da un nodo all'altro, ma
"entra" nello stackpanel e passa dal texblock al button.
Nel mio caso reale, con una griglia più complessa, la pressione del
keydown si "spanocchia" tutti i componenti della griglia prima di
passare all'elemento successivo.
C'è qualche modo di "raggruppare" i componenti che devono avere il
focus, o meglio, la selezione del treeitem, o è proprio strutturalmente
impossibile?
Grazie ancora


title: [WPF] Navigazione TreeView via tastiera

text:
marcosabba wrote:
> ok, adesso però mi sorge un problema, se per il template dello stato non
> editabile uso qualcosa del genere (è solo un esempio preso modificando un
> esercizio)
>
>          <DataTemplate x:Key="DisplayModeTemplate">
>              <StackPanel>
>                  <TextBlock Text="{Binding ElementName=mainControl,
> Path=FormattedText}" Margin="5,3,5,3" />
>                  <Button></Button>
>              </StackPanel>
>          </DataTemplate>
>
> vedo che navigando l'albero il focus non passa da un nodo all'altro, ma
> "entra" nello stackpanel e passa dal texblock al button.
> Nel mio caso reale, con una griglia più complessa, la pressione del keydown
> si "spanocchia" tutti i componenti della griglia prima di passare
> all'elemento successivo.
> C'è qualche modo di "raggruppare" i componenti che devono avere il focus, o
> meglio, la selezione del treeitem, o è proprio strutturalmente impossibile?
Dovresti provare ad usare l'attached property IsFocusScope sullo
stackpanel (l'elemento container) che ha il compito di "ricordare"
qual'è l'elmento con il focus quando passi ad un blocco di controlli ad
un altro.
In altre parole con quella attached prop crei dei gruppi logici di
focus indipendenti.
Prova a giocarci e vedi se è quello che cerchi ...
>
> Grazie ancora
Prego



title: [WPF] Navigazione TreeView via tastiera

text:
Il 18/05/2011 10:32, Raffaele Rialdi [MVP] ha scritto:
> Dovresti provare ad usare l'attached property IsFocusScope sullo
> stackpanel (l'elemento container) che ha il compito di "ricordare"
> qual'è l'elmento con il focus quando passi ad un blocco di controlli ad
> un altro.
> In altre parole con quella attached prop crei dei gruppi logici di focus
> indipendenti.
> Prova a giocarci e vedi se è quello che cerchi ...
non era quello che cercavo, ma studiandomi per benino l'argomento
FocusScope ho trovato la soluzione:
<Setter Property="KeyboardNavigation.DirectionalNavigation" Value="None" />
impostato sullo stile del template del treeviewitem fa quello che mi
serviva. Sei stato "maieutico" ;)
grazie ancora!


title: [WPF] Navigazione TreeView via tastiera

text:
marcosabba wrote:
> non era quello che cercavo, ma studiandomi per benino l'argomento FocusScope
> ho trovato la soluzione:
>
> <Setter Property="KeyboardNavigation.DirectionalNavigation" Value="None" />
>
> impostato sullo stile del template del treeviewitem fa quello che mi serviva.
> Sei stato "maieutico" ;)
>
> grazie ancora!
LOL prego :)



title: Stream

author: GennarinOSpion

text:
Ciao,

sono arrivato a studiare le operazioni di I/O sui file.

Una domanda... quando il programma dirige uno stream di byte verso una
destinazione, a basso livello cosa accade?

grazie


title: Divertirsi un po' con gli Expression Tree

text:
Ciao a tutti,
prendendo spunto da questo post di Raf:
http://blogs.ugidotnet.org/raffaele/archive/2009/04/17/un-po-di-free-style-con-linq-e-gli-expression-tree.aspx
ho provato questa cosa qui. Ho una classe
public class Person
{
	Int32 Age { get; }
}
e un metodo che ne fa la ricerca in una sorgente dati che implementa
IQueryable<Person> (nella fattispecie, una sessio di NHibernate), così:
public IList<Person> Find(int? minAge, int? maxAge)
{
	//...
}
che ritorna tutte le persone con 'Age' maggiore di minAge (se definito)
e minore di maxAge (se definito). Mi piaceva fare una cosa così:
protected readonly Func<int, Expression<Func<Person, bool>>>
FilterByMinAge = min => (p => p.Age >= min);
protected readonly Func<int, Expression<Func<Person, bool>>>
FilterByMaxAge = max => (p => p.Age <= max);
Expression<Func<Person, bool>> whereClause = null;
IQueryable<Person> query = ...;
//blablabla
if (where != null) query = query.Where(where);
return query.ToList();
Il mio problema è: come costruisco il BLABLABLA? :-) Nel senso: sulla
base dei valori dei parametri minAge e maxAge e della loro eventuale
nullità, come faccio a definire dinamicamente la expression da passare
poi al provider linq?
Grazie,
Giulio
p.s. un problema "a latere" sarebbe: come faccio a testare
"separatamente" la generazione di tale expression? Non riesco proprio a
figurarmi nessun modo per farlo. Anche riguardo a questo problema, ogni
suggerimento è strabene accetto! :-)
--


text:
Ciao Giulio Petrucci,
You wrote on 30/11/2010 :
> Il mio problema è: come costruisco il BLABLABLA? :-) Nel senso: sulla base
> dei valori dei parametri minAge e maxAge e della loro eventuale nullità, come
> faccio a definire dinamicamente la expression da passare poi al provider
> linq?
PredicateBuilder :-)
http://www.albahari.com/nutshell/predicatebuilder.aspx
.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


text:
Ciao Mauro,
On 11/30/2010 7:31 PM, Mauro Servienti [MVP] wrote:
> PredicateBuilder :-)
>
http://www.albahari.com/nutshell/predicatebuilder.aspx
Uhm... segue un approccio molto simile a quello che ho seguito io
"artigianalmente"... peraltro approccio a cui sono arrivato scopiazzando
qua e là, e anche dalla fonte da te linkata! :-)
Leggendo il post, tuttavia, ci sono cose che mi lasciano un po'
perplesso e già che ci siamo... :-) Ad esempio, non capisco quanto sia
"ortodossa" la scelta di mettere su una cosa del genere:
public partial class Product
{
   public static Expression<Func<Product, bool>> IsSelling()
   {
     return p => !p.Discontinued && p.LastSale > DateTime.Now.AddDays (-30);
   }
}
Tu/voi che ne pensi/pensate?
Ciao,
Giulio
--


text:
Ciao Giulio,
You wrote on 01/12/2010 :
> public partial class Product
> {
>    public static Expression<Func<Product, bool>> IsSelling()
>    {
>      return p => !p.Discontinued && p.LastSale > DateTime.Now.AddDays (-30);
>    }
> }
>
> Tu/voi che ne pensi/pensate?
sinceramente non saprei, sono molto condizionato dall'approccio basato
su "Specification" quindi probabilmente poco obiettivo.
Mi piace molto l'idea del Layered Expression Tree proposta da Andrea
Saltarello, e in quell'ottica probabilmente quella cosa ha un suo
perchè.



text:
Ciao Mauro,
On 12/1/2010 10:05 PM, Mauro Servienti [MVP] wrote:
> sinceramente non saprei, sono molto condizionato dall'approccio basato
> su "Specification" quindi probabilmente poco obiettivo.
> Mi piace molto l'idea del Layered Expression Tree proposta da Andrea
> Saltarello, e in quell'ottica probabilmente quella cosa ha un suo perchè.
L'approccio LET l'ho seguito pure io, ma non gli avevo mai dato un nome
(grazie Andrea! :-)) però... non significa solo rimbalzare un
IQueryable<T> in giro per il mondo, finché non abbiamo la nostra query e
lì poi "risolverla"? In che senso dici che nell'ottica LET mettere un
metodo statico nell'entità ha un suo perché? Io non la trovo una brutta
scelta (se non quando, ad esempio, ti trovi ad avere una interfaccia...
e allora lì son dolori), ma mi sembra un appesantimento "tassonomico"
abbastanza importante. :-)
In generale: per approccio basato su Specification cosa intendi?
Potresti farmi un qualche esempio?
Grazie e buona giornata,
Giulio
--


title: [VB.NET] delegates passati a un costruttore con AddresOf

text:
Avrei una domanda banale.

In una classe che serve da indice e supporto ad altra classe
con dati "pesanti" (sono sei variabili double, ma queste
classi servono per farne array), al fine di evitare la
duplicazione fisica dei dati, ho deciso di passare un indice
intero ed un puntatore a funzione (DELEGATE) al suo costruttore.

Purtroppo ho fatto la scelta con leggerezza, pensando per
abitudine (C++) che il puntatore a funzione, o delegate (se
poi sono esattamente analoghi), consumasse tanto spazio
quanto un qualsiasi puntatore o indirizzo di memoria.

A posteriori mi faccio un po' di paranoie, temendo il peggio
(che vengano ad es. passati anche metadati di qualche
natura, firma della funzione o altre info x introspezione),
e quindi non sono nemmeno più sicuro di avere risparmiato
spazio.
Allora vi ritorco la domanda :
quanto spazio (in byte) occupa una variabile reference di
tipo DELEGATE, assegnabile con AddressOf Procedure ?
Inoltre : occupa uno spazio fisso ? (oddio ci spero) O
dipende dalla funzione ?

grazie di ogni dritta
ciao
Soviet


text:
Il 10/01/2012 16:06, Soviet_Mario ha scritto:

ad ulteriore integrazione dei dubbi precedenti.
Se inizializzo un puntatore a funzione MEMBRO non SHARED,
quindi legato ad istanza, quando verrà richiamato da fuori
tramite il delegato ... vedrà a sua disposizione anche i
DATI di istanza (Quelli che non avevo voluto ricopiare) vero ?
riciao
Soviet



text:
"Soviet_Mario"  wrote in message
news:4f0c5409$0$1386$4faf...@reader2.news.tin.it...

> non sono nemmeno più sicuro di avere risparmiato spazio.

Ah, adesso capisco: stai cercando di risparmiare un byte ogni 2
fastastiliardi, attraverso un codice che ti ci vuole un mese solo a capire
che cosa vuol dire... :)

> quanto spazio (in byte) occupa una variabile reference

Che io sappia, tutte le references sono references e occupano esattamente lo
stesso spazio (proprio come era per i puntatori).

Comunque tutto cio' e' documentato, devi solo spulciare un po' in MSDN...

-LV


text:
Il 18/01/2012 19:18, LudovicoVan ha scritto:
> "Soviet_Mario"  wrote in message
> news:4f0c5409$0$1386$4faf...@reader2.news.tin.it...
>
>> non sono nemmeno più sicuro di avere risparmiato spazio.
>
> Ah, adesso capisco: stai cercando di risparmiare un byte ogni 2
> fastastiliardi,

beh non proprio.
In una lista di oggetti (Che contengono array
tridimensionali di double, diciamo fino a qualche centinaio
di coordinate, ho messo un puntatore alla funzione di
istanza di quella classe che mi legge internamente tali
coordinate, ma non ero sicuro di come trattasse la
reference, acc. a me)

> attraverso un codice che ti ci vuole un mese solo a
> capire che cosa vuol dire... :)

:-)
Eh, quello a prescindere ! LOL.

>
>> quanto spazio (in byte) occupa una variabile reference
>
> Che io sappia, tutte le references sono references e occupano
> esattamente lo stesso spazio (proprio come era per i puntatori).

benissimo, questa è cosa giusta e buona da sapere.

>
> Comunque tutto cio' e' documentato, devi solo spulciare un po' in MSDN...

A volte non trovo gli argomenti perché se il gergo specifico
aggiornato non lo conosci in modo corretto, tante volte
formuli la query come ce l'hai in testa "tu" e non focalizzi
le pagine di interesse.
Purtroppo sono ben lontano da una padronanza minimale di NET
(per fortuna più passa il tempo e più il rapporto di amore /
odio propende per la seconda ... salvo la multiple
inheritance e l'odio per le interfacce), e sto perdendo
praticamente il vizio di riscrivere contenitori ed oggetti
esistenti per abusare a piene mani di quelli built in (a
parte la serializzazione, che non mi entra e non mi piace)

In più non ho capito la scelta filosofica di fondo tra
ValueTypes e RefTypes ... ho un vago sospetto che la
persistenza dei primi sia stata prevista essenzialmente per
ragioni di efficienza nel passaggio/copia di piccoli oggetti
(per i quali invocare meccanismi elefantiaci di GC,
reference count, liste di attesa della distruzione, etc,
sarebbero stati un costo eccessivo, nonostante magari
l'omogeneità di accesso). Però magari nemmeno ci ho preso
ciao
Soviet

>
> -LV
>


text:
"Soviet_Mario"  wrote in message
news:4f173c71$0$1388$4faf...@reader2.news.tin.it...
> Il 18/01/2012 19:18, LudovicoVan ha scritto:

> In una lista di oggetti (Che contengono array tridimensionali di double,
> diciamo fino a qualche centinaio di coordinate, ho messo un puntatore alla
> funzione di istanza di quella classe che mi legge internamente tali
> coordinate, ma non ero sicuro di come trattasse la reference, acc. a me)

Un centinaio di oggetti per i 24 byte dei tre double fa 2.4K, cioe' se non
e' proprio un'applicazione performance-critical ed il famoso bottle-neck in
qualche funzione super-annidata, stai comunque risparmiando una goccia nel
mare.  Ma quello che cerco di comunicare qui e' un'indicazione generale: il
codice va prima di tutto scritto a regola d'arte (o, da manuale), con
leggibilita', semplicita' e (conseguentemente) manutenibilita' al primo
posto.  Ottimizzare (per esempio denormalizzando, oppure andando a limare
sui cicli di CPU o sui singoli byte) viene sempre dopo e sempre e solo dove
e quando serve, e ovviamente ha un costo rispetto ai criteri ideali di
partenza, cioe' ci si perde in leggibilita', manutenibilita' ecc.

> > Comunque tutto cio' e' documentato, devi solo spulciare un po' in
> > MSDN...
>
> A volte non trovo gli argomenti perché se il gergo specifico
> aggiornato non lo conosci in modo corretto, tante volte

E' vero che d'acchitto non e' di facile lettura, ma se prendi l'abitudine di
consultare la documentazione ogni volta che stai usando qualcosa che non usi
proprio tutti i giorni (personalmente la considero parte integrante del
lavoro quotidiano), la documentazione si fa rapidamente piu' chiara, e come
si chiamano le cose e dove trovarle piano piano viene fuori pure.  Te lo
dico anche per esperienza personale, visto che ho cominciato con Microsoft e
.Net una decina di anni fa, prima usavo altro (in particolare il Borland
Delphi, che e' OO Pascal, per applicazioni Windows) e ricordo anch'io di
avere avuto difficolta' inizialmente: ma poi tutto si fa piu' chiaro.

> salvo la multiple inheritance e l'odio per le interfacce

A me non piace l'abuso delle interfacce in nome della testability (un'altra
delle ovvie aberrazioni), ma per il resto non bisognerebbe avere certe
avversioni.  L'ereditarieta' multipla a volte si', farebbe comodo, ma ad
oggi non ho ancora trovato nulla che non si potesse costruire ugualmente al
costo forse di una minima duplicazione di codice e magari di qualche
capriola con i generics...

In generale, la filosofia dietro .Net e' quella di fornire un framework
molto potente ma allo stesso tempo ragionevolmente semplice da usare e senza
tutte le super-complicazioni del codice nativo.  Questo consente alti
livelli di produttivita' e relativamente pochi "sbattimenti" anche a chi non
e' un super-professionista e non mastica C++ e WinAPI a colazione.  Questo
ovviamente pero' viene al costo di qualche sofisticazione in meno, ma se
proprio .Net ti sta stretto, l'unico consiglio sarebbe quello di passare a
C++ nativo appunto: ma in realta' non lo consiglio, a meno che non sono i
proverbiali progetti segreti per la NASA... :)

> e sto perdendo praticamente il vizio di riscrivere contenitori ed oggetti
> esistenti per abusare a piene mani di quelli built in (a parte la
> serializzazione, che non mi entra e non mi piace)

That is very good, there is never point in reinventing the wheel,
soprattutto se il framework in questione ti offre delle soluzioni built-in
di alta qualita'.  C'e' veramente poco margine per le ottimizzazioni in user
code in .Net...

> In più non ho capito la scelta filosofica di fondo tra ValueTypes e
> RefTypes ... ho un vago sospetto che la persistenza dei primi sia stata
> prevista essenzialmente per ragioni di efficienza nel passaggio/copia di
> piccoli oggetti

Non e' l'unico approccio possibile, in ogni caso e' un approccio abbastanza
convenzionale per un sistema la cui filosofia e' essenzialmente
strongly-typed.  Value types e reference types, prima ancora che un diverso
memory model, hanno una diversa *semantica*!  L'efficienza, come le
performances, e' al primo posto solo nelle priorita' dei principianti: 9/10,
un codice scritto a regola d'arte e' *anche* (aggratis!) un codice
performante e quant'altro...

-LV


text:
Il 19/01/2012 12:24, LudovicoVan ha scritto:
> "Soviet_Mario"  wrote in message
> news:4f173c71$0$1388$4faf...@reader2.news.tin.it...
>> Il 18/01/2012 19:18, LudovicoVan ha scritto:
>
>> In una lista di oggetti (Che contengono array tridimensionali di
>> double, diciamo fino a qualche centinaio di coordinate, ho messo un
>> puntatore alla funzione di istanza di quella classe che mi legge
>> internamente tali coordinate, ma non ero sicuro di come trattasse la
>> reference, acc. a me)
>
> Un centinaio di oggetti per i 24 byte dei tre double fa 2.4K, cioe' se
> non e' proprio un'applicazione performance-critical ed il famoso
> bottle-neck in qualche funzione super-annidata, stai comunque
> risparmiando una goccia nel mare.

mah ... una goccia per ogni oggetto. Ma di quegli array
vaganti ce ne ho parecchi.
Già solo se campiono dei punti su una superficie sferica a
8-10 cerchi e 12 punti per cerchio, ho 300 double. Metti di
avere un centinaio di oggetti grafici che vagano (avanti e
indietro tra array di calcolo 3d, di rendering 2d, e altre
strutture temporanee), credo che sia più leggero spostare
solo o assegnare delle gran reference.
Anche se commetto ancora errori

L'altro giorno ho assegnato come facevo in VB 6 un array ad
un altro array. E mi sorprendevo che dopo il rendering mi
trovavo soprascritti i dati originali.
Beh, usando array.copy(sorg, dest, size) non accedeva più.
Quel che ottenevo era non di copiare i dati ma di assegnare
la reference. Buccia di banana. In VB6 invece si copiavano i
dati.

> Ma quello che cerco di comunicare qui
> e' un'indicazione generale: il codice va prima di tutto scritto a regola
> d'arte (o, da manuale), con leggibilita', semplicita' e
> (conseguentemente) manutenibilita' al primo posto.

non ci riesco molto ma sono d'accordo. Anche perché se non è
leggibile, perdo le fila.
Questo cavolo di modellatore per cui mi sono preso una fissa
mostruosa, è già oltre le ottanta paginate di roba, e non ho
più la più vaga idea di quante classi ci siano e come
interconnesse. Il fatto che il motore funziona mi sorprende
quasi (mi sforzo di interconnettere il meno possibile, chiaro).
Ma fino al motore di calcolo ancora ci capivo abbastanza.
Ora mi è presa la fissa che voglio renderlo scriptabile, non
sono riuscito a fare il grafo di regole sintattiche come
volevo inizialmente. Pensavo di fare dei patterns di
sintassi errate a corto raggio. Poi sono passato a un
generatore di regole che produrrebbe tutte le possibili
sintassi corrette (ma sono stato ingenuo, già ho scoperto
che tra vari tipi di parentesi, metacaratteri opzionali,
delimitatori etc, l'istruzione più banale che allocava un
singolo punto dotato di nome mi ha sfornato 432 possibili
sintassi corrette ... sono rimasto basito. Devo
necessariamente rinunciare alla risoluzione analitica
lineare, iterativa diciamo, per tornare all'enunciazione
ricorsiva, di regole in termini di sotto regole, se no per
descrivere tutte le possibili enunciazioni delle istruzioni
di scripting non mi basta più il disco fisso).
Cmq sia concordo che l'esigenza di leggibilità è la priorità
suprema appena scrivi qualcosa di un po' incasinato, se no
ti ci perdi dentro.

> Ottimizzare (per
> esempio denormalizzando, oppure andando a limare sui cicli di CPU

sulla velocità non ci penso proprio, perché non ho idea
dell'efficienza delle singole istruzioni o containers vari.
Sullo spazio dipende, a volte lo spreco è eclatante e non
difficile da limare, allora da fastidio lasciarlo in loco.
Ma per spreco essenzialmente intendo le operazioni di copia
fisica di parametri dentro e fuori lo stack, o magari
eseguire miriadi di concatenazioni su stringa da pochi byte
ognuna, o redim una dietro l'altra. Ci sono cose che son
proprio brutte come design.
Per le stringhe sto cominciando a usare StringBuilder (che
forse è più simile alle vecchie BStr che non il classico
tipo String di NET, che non è poi tanto simile al vecchio).
E per gli array, sempre più spesso liste, che non
ridimensionano per niente.

> o sui
> singoli byte) viene sempre dopo e sempre e solo dove e quando serve, e
> ovviamente ha un costo rispetto ai criteri ideali di partenza, cioe' ci
> si perde in leggibilita', manutenibilita' ecc.
>
>> > Comunque tutto cio' e' documentato, devi solo spulciare un po' in >
>> MSDN...
>>
>> A volte non trovo gli argomenti perché se il gergo specifico
>> aggiornato non lo conosci in modo corretto, tante volte
>
> E' vero che d'acchitto non e' di facile lettura, ma se prendi
> l'abitudine di consultare la documentazione ogni volta che stai usando
> qualcosa che non usi proprio tutti i giorni (personalmente la considero
> parte integrante del lavoro quotidiano), la documentazione si fa
> rapidamente piu' chiara, e come si chiamano le cose e dove trovarle
> piano piano viene fuori pure. Te lo dico anche per esperienza personale,

si ma tu sei programmatore di mestiere. Io no, solo hobby.
Inoltre da qualche anno i periodi di urgenza estrama sono
rarefatti. Giusto da 3 settimane mi son messo a costruire
questo modellatore (che graficamente non ha grosse pretese,
ragiona solo in termini wireframe, non ha nemmeno il
concetto di superficie ... e probabilmente non riuscirò a
estenderlo a posteriori)

> visto che ho cominciato con Microsoft e ..Net una decina di anni fa,
> prima usavo altro (in particolare il Borland Delphi, che e' OO Pascal,
> per applicazioni Windows) e ricordo anch'io di avere avuto difficolta'
> inizialmente: ma poi tutto si fa piu' chiaro.
>
>> salvo la multiple inheritance e l'odio per le interfacce
>
> A me non piace l'abuso delle interfacce in nome della testability
> (un'altra delle ovvie aberrazioni), ma per il resto non bisognerebbe
> avere certe avversioni.

touchè !

> L'ereditarieta' multipla a volte si', farebbe
> comodo, ma ad oggi non ho ancora trovato nulla che non si potesse
> costruire ugualmente al costo forse di una minima duplicazione di codice
> e magari di qualche capriola con i generics...

effettivamente dei generics me ne faccio delle discrete
abbuffate. L'altra settimana sono riuscito per la prima
volta a fornire l'overload (con un delegato) dell'operatore
standard CompareTo e fare in modo che con una riga
(list.sort) mi si implementasse lo zordering tridimensionale
di segmenti di estremi noti.
Spero che dentro la pancia usi un algoritmo O(n) o almeno
O(n log(n)), tipo il quicksort. Ma poi non sono stato a
indagare, mi pareva di averlo letto.

>
> In generale, la filosofia dietro .Net e' quella di fornire un framework
> molto potente

si su questo non ci piove, è monumentale

> ma allo stesso tempo ragionevolmente semplice da usare e
> senza tutte le super-complicazioni del codice nativo.

eh, qui invece l'impatto di uno abituato a pensare in codice
di basso e medio livello è doccia fredda. Io non l'ho
trovato facile né naturale. Ma pace, un po' alla volta ci si
assuefà.

> Questo consente
> alti livelli di produttivita' e relativamente pochi "sbattimenti" anche
> a chi non e' un super-professionista e non mastica C++

L'impatto non felicissimo iniziale con l'ereditarietà
singola e i template non proprio robusti effettivamente l'ho
avuti perché venivo proprio dal C++ (anche da VB 6, ma .NET
è un po' più simile al C++ che al VB 6 imho, al di la della
somiglianza delle parole chiave del basic, che infatti sono
state ampliate).

> e WinAPI a
> colazione. Questo ovviamente pero' viene al costo di qualche
> sofisticazione in meno,

mah, non è questione di sofisticazione. E' l'abitudine a
scrivere codice con pochi effetti sotto il cofano, diciamo.
E quando invece scrivi delle righe che immagini ne
sottendano centinaia nascoste, ti raccapezzi a fatica.

> ma se proprio .Net ti sta stretto, l'unico

non credo che mi vada stretto, semmai non ne traggo tutto
quel che può dare.
Poi Murphy insegna che se un vestito ti va largo in 100'000
punti salvo un paio, andrai a cozzare proprio contro quel
paio dove ti servirebbe qualcos'altro :-)
Il che avviene perché se vieni dai template "veri" del C++
pensi in modo diverso, e pensare in un modo e adattarlo non
è mai una strada indolore

> consiglio sarebbe quello di passare a C++ nativo appunto: ma in realta'
> non lo consiglio,

per la verità non ho mai amato il C++ per l'efficienza (che
pure ha, sia chiaro), ma per la compattezza del codice che
puoi produrre, e la possibilità di astrarre in modo
vertiginoso. D'altra parte come RAD per costruire le
interfacce GUI e il debug al volo, con tutte le versioni di
VB mi ero sempre trovato molto bene, e ora comincio a
trovarmi anche in NET (in particolare è veramente possente
il debugging integrato)

> a meno che non sono i proverbiali progetti segreti per
> la NASA... :)
>
>> e sto perdendo praticamente il vizio di riscrivere contenitori ed
>> oggetti esistenti per abusare a piene mani di quelli built in (a parte
>> la serializzazione, che non mi entra e non mi piace)
>
> That is very good, there is never point in reinventing the wheel,
> soprattutto se il framework in questione ti offre delle soluzioni
> built-in di alta qualita'. C'e' veramente poco margine per le
> ottimizzazioni in user code in .Net...

E manco ambisco ad ottimizzare qualcosa di cui non ho
nemmeno capito bene la filosofia di fondo.
Quando non capisci tutto, credo che sia meglio lasciar fare :)

>
>> In più non ho capito la scelta filosofica di fondo tra ValueTypes e
>> RefTypes ... ho un vago sospetto che la persistenza dei primi sia
>> stata prevista essenzialmente per ragioni di efficienza nel
>> passaggio/copia di piccoli oggetti
>
> Non e' l'unico approccio possibile, in ogni caso e' un approccio
> abbastanza convenzionale per un sistema la cui filosofia e'
> essenzialmente strongly-typed. Value types e reference types, prima
> ancora che un diverso memory model, hanno una diversa *semantica*!

mah ... tipo ? A parte non poter definire/istanziare con NEW
(e non avere il GC che cmq va dietro le quinte) che altra
differenza di notazione esiste ?

> L'efficienza, come le performances, e' al primo posto solo nelle
> priorita' dei principianti: 9/10, un codice scritto a regola d'arte e'
> *anche* (aggratis!) un codice performante e quant'altro...

vabbè, vado
ciao
Soviet

>
> -LV
>


text:
"Soviet_Mario" <Soviet...@CCCP.MIR> wrote in message
news:4f182aa9$0$1387$4faf...@reader1.news.tin.it...
> Il 19/01/2012 12:24, LudovicoVan ha scritto:
>> "Soviet_Mario"  wrote in message
>> news:4f173c71$0$1388$4faf...@reader2.news.tin.it...
>>> Il 18/01/2012 19:18, LudovicoVan ha scritto:

> si ma tu sei programmatore di mestiere. Io no, solo hobby.

E pensi che sia una scusa valida?  :)  No, il fatto e' che quella e' cosa a
cui non penso nemmeno: tu poni quesiti di programmazione in uno user group
di programmazione, ed io rispondo (o ci provo) ai quesiti che poni.  Cio'
che scriviamo e' pubblico ed altri potrebbero giovarsi delle informazioni (o
disinformazioni, a seconda dei casi) che ci stiamo scambiando.  Che e' anche
il motivo per cui su certe cose mi ripeto...

>>> In più non ho capito la scelta filosofica di fondo tra ValueTypes e
>>> RefTypes ... ho un vago sospetto che la persistenza dei primi sia
>>> stata prevista essenzialmente per ragioni di efficienza nel
>>> passaggio/copia di piccoli oggetti
>>
>> Non e' l'unico approccio possibile, in ogni caso e' un approccio
>> abbastanza convenzionale per un sistema la cui filosofia e'
>> essenzialmente strongly-typed. Value types e reference types, prima
>> ancora che un diverso memory model, hanno una diversa *semantica*!
>
> mah ... tipo ? A parte non poter definire/istanziare con NEW (e non avere
> il GC che cmq va dietro le quinte) che altra differenza di notazione
> esiste ?

Diversa semantica, non sintassi: ovvero come si comportano, altrimenti detto
"cio' che ci puoi fare".  Se per esempio assegni un reference type, solo la
reference viene copiata; per un value-type hai invece una copia in un nuovo
oggetto, che e' infatti quello che ci si aspetta quando per esempio si
assegna un integer ad un altro: non ci aspetti di ottere un riferimento
all'integer di partenza.  Poi sulla storia di stack vs. heap (e questo e'
comunque un quadro semplificato), e' da considerare che anche se i dati di
un oggetto vanno nello heap, la reference di suo sta nello stack, ed il
fatto di avere uno stack strutturato come e' strutturato e' cio' che
consente cose tipo le closure... ecc. ecc., nel senso che non sono
particolarmente esperto in materia.

Ma c'e' da notare che quelle di memory management (come altre) sono
certamente questioni non semplici nei loro dettagli, ma resta il fatto che
il selling point di .Net e' appunto il fatto di *non* avere piu' la
necessita' di guardare dentro il cofano (se non al livello di dover
consultare la documentazione relativa a cio' che si sta usando? qualcosa del
genere...).  Credo che .Net sia "difficile" piu' che altro perche' e'
abbastanza enorme, un piccolo mondo a se' di cui imparare idiomi, conoscere
le risorse, e quant'altro...

In bocca al lupo con i tuoi... esperimenti!  :)

-LV


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

> Se per esempio assegni un reference type, solo la reference viene copiata;
> per un value-type hai invece una copia in un nuovo oggetto, che e' infatti
> quello che ci si aspetta quando per esempio si assegna un integer ad un
> altro: non ci aspetti di ottere un riferimento all'integer di partenza.
> Poi sulla storia di stack vs. heap (e questo e' comunque un quadro
> semplificato), e' da considerare che anche se i dati di un oggetto vanno
> nello heap, la reference di suo sta nello stack, ed il

"Un oggetto" li' e' ambiguo: avrei dovuto dire "un reference-type".

-LV


title: [WPF] System.ArgumentNullException was unhandled...

text:
"Value cannot be null.
Parameter name: d"
Questo ï¿œ quanto mi viene detto dalla mia applicazione WPF che va in
crash quando cambio la selezione in alcune comboboxes facenti parte di
un datatemplate utilizzato da alcune foglie di una treeview, e il crash
ï¿œ randomico.
Il datatemplate ï¿œ selezionato da un datatemplateselector che lo sceglie
a seconda del type del viewmodel passato al selector come parametro.
Ovviamente non ci sono errori macroscopici, e non riesco a beccare in
debug il punto di crash (l'ho seguito per mezza giornata) e purtroppo la
call stack ï¿œ vuota.
Da quanto si dice qui:
http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/fb4d0f41-bfea-409f-b8ac-e66558984b7a
parrebbe un problema del .net4, ma onestamente, anche dopo aver letto
tutta la storia, non so trovare un workaround e da quanto ho capito
neanche gli altri.
Vi ï¿œ mai capitato qualcosa di simile? Come mi suggerite di procedere?
Aggiungo sotto la stack trace:
    at MS.Internal.Data.ElementObjectRef.GetObject(DependencyObject d,
ObjectRefArgs args)
    at MS.Internal.Data.ObjectRef.GetDataObject(DependencyObject d,
ObjectRefArgs args)
    at
System.Windows.Data.BindingExpression.MS.Internal.Data.IDataBindEngineClient.VerifySourceReference(Boolean
lastChance)
    at MS.Internal.Data.DataBindEngine.Task.Run(Boolean lastChance)
    at MS.Internal.Data.DataBindEngine.Run(Object arg)
    at
System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate
callback, Object args, Int32 numArgs)
    at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object
source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
    at System.Windows.Threading.DispatcherOperation.InvokeImpl()
    at
System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(Object
state)
    at System.Threading.ExecutionContext.runTryCode(Object userData)
    at
System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode
code, CleanupCode backoutCode, Object userData)
    at System.Threading.ExecutionContext.RunInternal(ExecutionContext
executionContext, ContextCallback callback, Object state)
    at System.Threading.ExecutionContext.Run(ExecutionContext
executionContext, ContextCallback callback, Object state, Boolean
ignoreSyncCtx)
    at System.Threading.ExecutionContext.Run(ExecutionContext
executionContext, ContextCallback callback, Object state)
    at System.Windows.Threading.DispatcherOperation.Invoke()
    at System.Windows.Threading.Dispatcher.ProcessQueue()
    at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd,
Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
    at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr
wParam, IntPtr lParam, Boolean& handled)
    at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
    at
System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate
callback, Object args, Int32 numArgs)
    at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object
source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
    at System.Windows.Threading.Dispatcher.InvokeImpl(DispatcherPriority
priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
    at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg,
IntPtr wParam, IntPtr lParam)
    at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
    at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame
frame)
    at System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
    at System.Windows.Threading.Dispatcher.Run()
    at System.Windows.Application.RunDispatcher(Object ignore)
    at System.Windows.Application.RunInternal(Window window)
    at System.Windows.Application.Run(Window window)
    at System.Windows.Application.Run()
    at SpeechVillage.SpeechDraw.SpeechDraw.Main() in
D:\Documenti\***********\Visual Studio
2010\Projects\**********\obj\x86\Debug\**********.g.cs:line 50
    at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly,
String[] args)
    at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence
assemblySecurity, String[] args)
    at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
    at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
    at System.Threading.ExecutionContext.Run(ExecutionContext
executionContext, ContextCallback callback, Object state, Boolean
ignoreSyncCtx)
    at System.Threading.ExecutionContext.Run(ExecutionContext
executionContext, ContextCallback callback, Object state)
    at System.Threading.ThreadHelper.ThreadStart()


text:
On Jan 5, 4:17 pm, marcosabba <
mar...@bba.it
> wrote:
> "Value cannot be null.
> Parameter name: d"
>
> Questo quanto mi viene detto dalla mia applicazione WPF che va in
> crash quando cambio la selezione in alcune comboboxes facenti parte di
> un datatemplate utilizzato da alcune foglie di una treeview, e il crash
> randomico.
> Il datatemplate selezionato da un datatemplateselector che lo sceglie
> a seconda del type del viewmodel passato al selector come parametro.
> Ovviamente non ci sono errori macroscopici, e non riesco a beccare in
> debug il punto di crash (l'ho seguito per mezza giornata) e purtroppo la
> call stack vuota.
>
> Da quanto si dice qui:
http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/fb4d0f41-bfe.
..
> parrebbe un problema del .net4, ma onestamente, anche dopo aver letto
> tutta la storia, non so trovare un workaround e da quanto ho capito
> neanche gli altri.
> Vi mai capitato qualcosa di simile? Come mi suggerite di procedere?
Ne so veramente poco di WPF. Mi puoi far vedere qualche riga di codice
su come definisci il binding?
Dalla lettura del thread che hai linkato mi pare di capire che la
definizione del binding viene memorizzata sotto forma di expression,
non c'e' invocazione immediata: questo puo' far si' che quando poi il
binding viene effettivamente applicato, la logica dell'expression
viene eseguita ma l'oggetto sorgente non esiste piu' (o non e' mai
esistito), da cui l'eccezione.
Ammesso che quanto dico sopra abbia qualche senso, la soluzione
sarebbe assicurarsi che gli oggetti sorgente esistono a binding-time,
il che si risolve nell'istanziarli in un appropriato scope...
-LV


text:
Il 06/01/2011 17:34, LudovicoVan ha scritto:
> Ne so veramente poco di WPF. Mi puoi far vedere qualche riga di codice
> su come definisci il binding?
dunque, il binding dove credo che l'applicazione crashi (che
congiuntivo... arghhh) è più o meno questo:
//lato TARGET
     <!-- template for treeview CHILDREN items with textbox OR listbox -->
     <HierarchicalDataTemplate
x:Key="ResponseEditorLeavesHierarchicalDataTemplate" DataType="{x:Type
vm:ActionFieldViewModel}" ItemsSource="{Binding Children}">
<!-- [...] -->
<!-- qui di seguito ci sono vari controlli possibili, tra cui una
combobox al cui cambio di selezione viene ricostruita l'intera struttura
dell'albero, in quanto dipendente dalla valorizzazione di tali campi:
faccio un esempio, se in una combobox indico "voice" come sorgente di
input scelta per una certa azione utente, dovrò aggiungere dei fields
"fratelli" e/o "figli" tipo "low threshold" o "high threshold" -->
//lato SOURCE
     public abstract class TreeViewItemViewModel<T> : ViewModelBase<T>,
ITreeViewItemViewModel where T : IView
     {
//[...]
         protected ObservableCollection<ITreeViewItemViewModel> _children;
         public ObservableCollection<ITreeViewItemViewModel> Children
         {
             get { return _children; }
         }
//le mie classi viewmodel, che modellano a un livello superiore la
visualizzazione dei fields "nodi dell'albero" di cui sopra, implementano
la classe astratta di cui sopra, e il problema, da come direbbe il forum
citato, si verifica (credo) quando, modificando le collection dei miei
viewmodels "nodi", per aggiornare _children della classe astratta
faccio: (_fields è la mia "collection di livello superiore")
         void Fields_CollectionChanged(object sender,
System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
         {
             _children.Clear();
             foreach (ActionFieldViewModel afvm in _fields)
             {
                 _children.Add(afvm);
             }
         }
//da quanto scritto nel forum il problema sembrerebbe causato in qualche
modo dalla Clear, ma dopo aver fatto questa (orrenda) modifica:
         void Fields_CollectionChanged(object sender,
System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
         {
             //_children.Clear();
             //workaround in attesa che il .net4 risolva questo bug:

//
http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/fb4d0f41-bfea-409f-b8ac-e66558984b7a
             //WORKAROUND:
             int childrenNo = _children.Count;
             for ( int i = 0; i < childrenNo; i++ )
             {
                 _children.RemoveAt(0);
             }
             //END WORKAROUND
             foreach (ActionFieldViewModel afvm in _fields)
             {
                 _children.Add(afvm);
             }
         }
//il problema si riduce come frequenza ma non scompare del tutto.
Onestamente, non so che pesci pigliare.
> Dalla lettura del thread che hai linkato mi pare di capire che la
> definizione del binding viene memorizzata sotto forma di expression,
> non c'e' invocazione immediata: questo puo' far si' che quando poi il
> binding viene effettivamente applicato, la logica dell'expression
> viene eseguita ma l'oggetto sorgente non esiste piu' (o non e' mai
> esistito), da cui l'eccezione.
però _children non dovrebbe mai essere deallocato, in quanto
eventualmente lo si svuota (che sia un clear o un remove iterato), mica
lo si distrugge.
> Ammesso che quanto dico sopra abbia qualche senso, la soluzione
> sarebbe assicurarsi che gli oggetti sorgente esistono a binding-time,
> il che si risolve nell'istanziarli in un appropriato scope...
per quanto riesco a debuggare, _children non diventa mai null, dunque
c'è qualcosa sotto nel meccanismo di binding che supera le mie
conoscenze/possibilità di capire... ma non pretendo tanto, mi basterebbe
che la microsoft consigliasse un maledetto workaround nell'attesa di un
fix (tanto la mia deadline si sposta in continuazione... credo che
faranno prima loro ;)
Intanto grazie per la risposta!


text:
On Jan 7, 6:19 pm, marcosabba <
mar...@bba.it
> wrote:
> Il 06/01/2011 17:34, LudovicoVan ha scritto:
>
> > Ne so veramente poco di WPF. Mi puoi far vedere qualche riga di codice
> > su come definisci il binding?
>
> dunque, il binding dove credo che l'applicazione crashi (che
> congiuntivo... arghhh) pi o meno questo:
>
> //lato TARGET
>
>      <!-- template for treeview CHILDREN items with textbox OR listbox -->
>      <HierarchicalDataTemplate
> x:Key="ResponseEditorLeavesHierarchicalDataTemplate" DataType="{x:Type
> vm:ActionFieldViewModel}" ItemsSource="{Binding Children}">
> <!-- [...] -->
> <!-- qui di seguito ci sono vari controlli possibili, tra cui una
> combobox al cui cambio di selezione viene ricostruita l'intera struttura
> dell'albero, in quanto dipendente dalla valorizzazione di tali campi:
> faccio un esempio, se in una combobox indico "voice" come sorgente di
> input scelta per una certa azione utente, dovr aggiungere dei fields
> "fratelli" e/o "figli" tipo "low threshold" o "high threshold" -->
>
> //lato SOURCE
>      public abstract class TreeViewItemViewModel<T> : ViewModelBase<T>,
> ITreeViewItemViewModel where T : IView
>      {
>
> //[...]
>
>          protected ObservableCollection<ITreeViewItemViewModel> _children;
>          public ObservableCollection<ITreeViewItemViewModel> Children
>          {
>              get { return _children; }
>          }
>
> //le mie classi viewmodel, che modellano a un livello superiore la
> visualizzazione dei fields "nodi dell'albero" di cui sopra, implementano
> la classe astratta di cui sopra, e il problema, da come direbbe il forum
> citato, si verifica (credo) quando, modificando le collection dei miei
> viewmodels "nodi", per aggiornare _children della classe astratta
> faccio: (_fields la mia "collection di livello superiore")
>
>          void Fields_CollectionChanged(object sender,
> System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
>          {
>              _children.Clear();
>              foreach (ActionFieldViewModel afvm in _fields)
>              {
>                  _children.Add(afvm);
>              }
>          }
>
> //da quanto scritto nel forum il problema sembrerebbe causato in qualche
> modo dalla Clear, ma dopo aver fatto questa (orrenda) modifica:
>
>          void Fields_CollectionChanged(object sender,
> System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
>          {
>              //_children.Clear();
>
>              //workaround in attesa che il .net4 risolva questo bug:
>
> //
http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/fb4d0f41-bfe.
..
>
>              //WORKAROUND:
>              int childrenNo = _children.Count;
>              for ( int i = 0; i < childrenNo; i++ )
>              {
>                  _children.RemoveAt(0);
>              }
>              //END WORKAROUND
>
>              foreach (ActionFieldViewModel afvm in _fields)
>              {
>                  _children.Add(afvm);
>              }
>          }
>
> //il problema si riduce come frequenza ma non scompare del tutto.
> Onestamente, non so che pesci pigliare.
>
> > Dalla lettura del thread che hai linkato mi pare di capire che la
> > definizione del binding viene memorizzata sotto forma di expression,
> > non c'e' invocazione immediata: questo puo' far si' che quando poi il
> > binding viene effettivamente applicato, la logica dell'expression
> > viene eseguita ma l'oggetto sorgente non esiste piu' (o non e' mai
> > esistito), da cui l'eccezione.
>
> per _children non dovrebbe mai essere deallocato, in quanto
> eventualmente lo si svuota (che sia un clear o un remove iterato), mica
> lo si distrugge.
Forse banale, ma non vedo come/dove *crei* _children....?
Quel work-around non mi pare possa fare nessuna differenza. Donde e'
preoccupante che il problema sembri presentarsi randomicamente,
perche' in tal caso puo' anche darsi che *non* c'e' work-around...
Comunque non c'e' certezza finche' la reale causa del problema non
viene individuata.
> > Ammesso che quanto dico sopra abbia qualche senso, la soluzione
> > sarebbe assicurarsi che gli oggetti sorgente esistono a binding-time,
> > il che si risolve nell'istanziarli in un appropriato scope...
>
> per quanto riesco a debuggare, _children non diventa mai null, dunque
> c' qualcosa sotto nel meccanismo di binding che supera le mie
> conoscenze/possibilit di capire... ma non pretendo tanto, mi basterebbe
> che la microsoft consigliasse un maledetto workaround nell'attesa di un
> fix (tanto la mia deadline si sposta in continuazione... credo che
> faranno prima loro ;)
>
> Intanto grazie per la risposta!
In bocca al bruco! :)
-LV


text:

Yo, giusto per, visto che il problema in questione davvero mi
interessa: la mia qui era una domanda vera.
Intanto aggiungerei (rettificherei) che il comportamento pseudo-
randomico in realta' puo' avere senso, se il problema e' legato alla
garbage collection...
-LV



text:
Il 08/01/2011 19:49, LudovicoVan ha scritto:
>> Forse banale, ma non vedo come/dove *crei* _children....?
>
> Yo, giusto per, visto che il problema in questione davvero mi
> interessa: la mia qui era una domanda vera.
>
> Intanto aggiungerei (rettificherei) che il comportamento pseudo-
> randomico in realta' puo' avere senso, se il problema e' legato alla
> garbage collection...
Dunque, riassumendo il mio albero si appoggia su due viewmodel:
1) il primo che chiamo ResponseEditorViewModel e implementa una classe
astratta TreeViewViewModel che modella il "contenitore", con una
property TreeViewItemsVMCollection "creata" cosě:
_treeViewItemsVMCollection =
GetNodeCollectionFromApplicationContext(currentApplication);
la GetNodeCollectionFromApplicationContext ritorna una
ObservableCollection<ITreeViewItemViewModel> list = new
ObservableCollection<ITreeViewItemViewModel>();
2) gli altri viewmodel modellano i nodi degli alberi, e implementano
l'interfaccia che fornisce la property Children. Nello specifico, il
viewmodel che modella le foglie il cui refresh fa crashare
l'applicazione si chiama ActionFieldViewModel, e "crea" i children cosě:
public ActionFieldViewModel(ActionViewModel avm, ILogger logger,
Application app)
{
	//avm č il parent
	App = app;
	Initialize(avm, logger);
}
private void Initialize(ActionViewModel avm, ILogger logger)
{
	//[...]
	InitTreeViewItemViewModel(avm);
}
public void InitTreeViewItemViewModel(ActionViewModel avm)
{
	_parent = avm;
	_children = new
ObservableCollection<ITreeViewItemViewModel>(BuildActionFieldChildrenList());
	//[...]
}
Da quanto dicono nel forum il problema sembra effettivamente legato alla
garbage collection, in aggiunta al fatto che rispetto al .net 3.5 la
gestione della verifica dei "binding source" nel .net 4 č fatta da un
task apposito (per quello che ho capito).
Sul problema che č alla radice del bug, su Connect dicono "fixed", ma
non ci sono link:
http://connect.microsoft.com/VisualStudio/feedback/details/561752/datagrid-crash-when-applying-scaletransform-to-datagridcell#details
(ci si entra solo una volta loggati)


text:
On Jan 10, 10:30 am, marcosabba <
mar...@bba.it
> wrote:
> Il 08/01/2011 19:49, LudovicoVan ha scritto:
>
> >> Forse banale, ma non vedo come/dove *crei* _children....?
>
> > Yo, giusto per, visto che il problema in questione davvero mi
> > interessa: la mia qui era una domanda vera.
>
> > Intanto aggiungerei (rettificherei) che il comportamento pseudo-
> > randomico in realta' puo' avere senso, se il problema e' legato alla
> > garbage collection...
>
> Dunque, riassumendo il mio albero si appoggia su due viewmodel:
> 1) il primo che chiamo ResponseEditorViewModel e implementa una classe
> astratta TreeViewViewModel che modella il "contenitore", con una
> property TreeViewItemsVMCollection "creata" cos :
>
> _treeViewItemsVMCollection =
> GetNodeCollectionFromApplicationContext(currentApplication);
>
> la GetNodeCollectionFromApplicationContext ritorna una
>
> ObservableCollection<ITreeViewItemViewModel> list = new
> ObservableCollection<ITreeViewItemViewModel>();
>
> 2) gli altri viewmodel modellano i nodi degli alberi, e implementano
> l'interfaccia che fornisce la property Children. Nello specifico, il
> viewmodel che modella le foglie il cui refresh fa crashare
> l'applicazione si chiama ActionFieldViewModel, e "crea" i children cos :
>
> public ActionFieldViewModel(ActionViewModel avm, ILogger logger,
> Application app)
> {
>         //avm il parent
>         App = app;
>         Initialize(avm, logger);
> }
>
> private void Initialize(ActionViewModel avm, ILogger logger)
> {
>         //[...]
>         InitTreeViewItemViewModel(avm);
> }
>
> public void InitTreeViewItemViewModel(ActionViewModel avm)
> {
>         _parent = avm;
>         _children = new
> ObservableCollection<ITreeViewItemViewModel>(BuildActionFieldChildrenList());
>         //[...]
> }
Grazie per il feedback. Dal basso della mia pochissima familiarita'
con WPF, non vedo nulla di sospetto nel tuo codice.
> Da quanto dicono nel forum il problema sembra effettivamente legato alla
> garbage collection, in aggiunta al fatto che rispetto al .net 3.5 la
> gestione della verifica dei "binding source" nel .net 4 fatta da un
> task apposito (per quello che ho capito).
> Sul problema che alla radice del bug, su Connect dicono "fixed", ma
> non ci sono link:
http://connect.microsoft.com/VisualStudio/feedback/details/561752/dat.
..
> (ci si entra solo una volta loggati)
Si', ho visto: suppongo che il fatto che lo diano per solved ma non
forniscono un work-around o altro significa che a breve rilasceranno
una patch...
Insomma, avevi ragione a confidare che i cicli di rilascio dei sistemi
operativi sono oggi piu' rapidi di quelli di rilascio dei software
applicativi! ;)
Un ri-in bocca al lupo,
-LV


text:
Il 05/01/2011 17:17, marcosabba ha scritto:
> "Value cannot be null.
> Parameter name: d"
>
> Questo è quanto mi viene detto dalla mia applicazione WPF che va in
> crash quando cambio la selezione in alcune comboboxes facenti parte di
> un datatemplate utilizzato da alcune foglie di una treeview, e il crash
> è randomico.
[...]
> Da quanto si dice qui:
>
http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/fb4d0f41-bfea-409f-b8ac-e66558984b7a
>
> parrebbe un problema del .net4, ma onestamente, anche dopo aver letto
> tutta la storia, non so trovare un workaround e da quanto ho capito
> neanche gli altri.
> Vi è mai capitato qualcosa di simile? Come mi suggerite di procedere?
in questi giorni è uscito un hotfix per .net4 che corregge il problema:
ecco il link:
http://support.microsoft.com/kb/2461678
o più direttamente:
http://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=33315
urrà! ciao


title: Boxing e unboxing

text:
Qualcuno mi spiega in cosa consistono queste due operazioni? quali sono
le applicazioni pratiche e quali rischi comportano?


title: Boxing e unboxing

text:
Ciao merlino,

On 21/11/2011 16:13, _merlinO_ wrote:
> Qualcuno mi spiega in cosa consistono queste due operazioni? quali sono
> le applicazioni pratiche e quali rischi comportano?

te la faccio facile-facile: boxing significa prendere un value type (es:
int) e convertirlo a un'istanza di object o di una qualsiasi interfaccia
implementata dal value type. L'unboxing è il processo opposto.

int i = 23;
object o = i; //boxing;
i = (Int32)o; //unboxing;

La pagina di MSDN sul boxing/unboxing è estremamente chiara e
(stranamente) concisa:
http://msdn.microsoft.com/en-us/library/yz2be5wk.aspx

Riguardo ai rischi, l'unboxing può portare a un InvalidCastException se
l'oggetto ('o' nel nostro esempio) non è """castabile""" al value type
in questione ('int' nel nostro esempio). In generale comunque le
operazioni di boxing/unboxing sono estremamente costose (come puoi
leggere sempre nell'articolo che ti ho linkato e alla sezione "Boxing
and Unboxing" di questo articolo qui:
http://msdn.microsoft.com/en-us/library/ms173196.aspx
).

HTH,
Giulio

--


title: Boxing e unboxing

text:
Sembra che Giulio Petrucci abbia detto :

> te la faccio facile-facile: boxing significa prendere un value type (es: int)
> e convertirlo a un'istanza di object o di una qualsiasi interfaccia
> implementata dal value type. L'unboxing è il processo opposto.

Grazie per l'aiuto prezioso! :)


title: Datagridview e scrollbar

author: vbMizio

text:
Ciao,
sto usando, in un WinForm scritto con VB2008 FW3.5 sp1, un controllo
DataGridView.
E' possibile sapere se, nel disegno della stessa, sono state visualizzate
anche le scrollbar?
E' possibile, nel caso, sapere quanto le scrollbar sono larghe (nel caso
delle verticali) e/o alte (le orizzontali)?
Grazie... Maurizio


title: Datagridview e scrollbar

text:
Ciao,
mi rispondo da solo
...
>E' possibile sapere se, nel disegno della stessa, sono state visualizzate
anche le scrollbar?
E' possibile, nel caso, sapere quanto le scrollbar sono larghe (nel caso
delle verticali) e/o alte (le orizzontali)?
...
Ho trovato queste soluzioni,
per il primo quesito:
Dim DGVVerticalScroll = Me.DataGridView1.Controls.OfType(Of
VScrollBar).SingleOrDefault
poi basta testare il valore della proprieta' Visible dell'oggetto
DGVVerticalScroll
mentre per il secondo "dilemma", la soluzione e' ancora piu' semplice, dato
che il valore che cerchiamo e' dato da
SystemInformation.VerticalScrollBarWidth
Spero possa essere utile a qualcuno :-)


title: [ASP] Startup dell'applicazione.

text:
Ciao a tutti,
ho questo problema. Una applicazione web impiega circa 4 secodni per
fare il bootstrap. Ho impostato il bootstrap nell'Application_Start()
del Global.asax in modo che le singole richieste impieghino poco tempo.
Se mi metto di santa pazienza a mandare richieste http all'url a cui
risponde l'unica pagina web dell'app, vedo che la prima impiega un sacco
di tempo e le seguenti sono (praticamente istantanee). Dopo un po' di
tempo (che non sono riuscito a misurare con precisione), vedo che il
tempo impiegato per gestire una richiesta aumenta a dismisura un'altra
volta.
L'applicazione è un banalissimo web site creato con il .NET framework
3.5 che gira su un IIS 6. Qualcuno può darmi qualche indicazione?
Ciao e grazie in anticipo,
Giulio
--


title: [ASP] Startup dell'applicazione.

text:
"Giulio Petrucci" <sis...@nonono.boh> wrote in message
news:4dca54e6$0$38639$4faf...@reader1.news.tin.it...

La tua e' una domanda ricorrente, ti consiglierei di dare un'occhiata sul
Web:
http://www.google.co.uk/search?q=asp.net+startup+time
Oppure puoi fare una ricerca simile su
www.asp.net
 dove pure e' una domanda
piuttosto frequente.
Se poi hai dubbi specifici fatti sentire.
-LV

--- Posted via news://
freenews.netfront.net/
 - Complaints to
ne...@netfront.net
 ---


title: [ASP] Startup dell'applicazione.

text:
Ciao LudovicoVan,
On 5/11/2011 8:54 PM, LudovicoVan wrote:
> La tua e' una domanda ricorrente, ti consiglierei di dare un'occhiata
> sul Web:
[cut]
Grazie delle segnalazioni.
Avevo già cercato in giro ma non avevo vito questo qui:
http://stackoverflow.com/questions/56357/precompilation-and-startup-times-on-asp-net
Effettivamente il mio problema non è tanto l'avvio dell'applicazione ma
il fatto che questa si riavii ogni tot.
Grazie ancora e buona giornata,
Giulio
--


title: WPF ForeignKeyHasValueException

author: Fabio

text:
Salve a tutti
Ho due tabelle così composte:
tabella1
ID Guid
Data Datetime
IDTabella2 Guid
Tabella2
ID Guid
Nome
In tabella1, IDTabella2 rappresenta la foreignkey dell'ID di tabella2
Ho una datagrid popolata da tabella1. Ogni giorno, in automatico creo
un nuovo oggetto di tipo tabella1 con ID valorizzato, Data valorizzata
e IDTabella2 valorizzato a null e l'aggiungo alla lista.
Il controllo datagrid mi visualizza correttamente tutto quanto, ma
quando apro il dettaglio dell'item appena creato (IDTabella2=null), vi
viene sollevata l'eccezione in oggetto.
Uso linqtosql ed alla proprietà IDTabella2 ho associato una combobox
di ricerca.
Ciao
Fabio


title: Collezioni di file o sessioni ed handle

author: Alessandro Riolo

text:
C'è una qualche API nel framework per implementare funzionalità simili a
quelle offerte dai comandi NET FILE o NET SESSION senza usare funzioni
unmanaged? Non ho molte speranze (immagino il problema alla base sia
l'impossibilità di garantire che le collezioni non cambino in scenari
multithreading, che nel mio caso non avrebbero molta importanza pratica) ma
non si sa mai ;)
Ho visto che in System.Diagnostics Process può ritornare il numero di handle
aperti, c'è una qualche funzionalità per enumerarli?
--
ale
http://ale.riolo.co.uk


title: Collezioni di file o sessioni ed handle

text:
"Alessandro Riolo" <
alessand...@gmail.com
> wrote in message
news:icl7v2$63l$2...@news.eternal-september.org...
> C'è una qualche API nel framework per implementare funzionalità simili a
> quelle offerte dai comandi NET FILE o NET SESSION senza usare funzioni
> unmanaged?
Ho trovato qualche esempio che usa WMI tramite le funzionalità offerte da
System.Management. Immagino di dover interagire con le classi
Win32_ServerSession e Win32_ServerFile.
Vediamo che ne esce fuori :)
--
ale
http://ale.riolo.co.uk


title: Collezioni di file o sessioni ed handle

text:
Ciao Alessandro,
On 11/26/2010 12:26 AM, Alessandro Riolo wrote:
> Ho trovato qualche esempio che usa WMI tramite le funzionalità offerte
> da System.Management. Immagino di dover interagire con le classi
> Win32_ServerSession e Win32_ServerFile.
>
> Vediamo che ne esce fuori :)
Ok, poi però posta qualcosa... :-)
Ciao,
Giulio
--


title: alternativa a sqlite + NHibernate

text:
Ciao a tutti,

sqlite3 e il fw4.0 non vanno d'accordo.
Dunque, per la mia piccola applicazione desktop, cosa mi consigliereste
di usare?

Grazie,
Giulio

--


title: alternativa a sqlite + NHibernate

author: Julio Di Egidio

text:
"Giulio Petrucci" <sis...@nonono.boh> wrote in message
news:521e16b2$0$1368$4faf...@reader1.news.tin.it...
> Ciao a tutti,
>
> sqlite3 e il fw4.0 non vanno d'accordo.
> Dunque, per la mia piccola applicazione desktop, cosa mi consigliereste di
> usare?

SQL Server Compact?

Julio


title: alternativa a sqlite + NHibernate

text:
Giulio Petrucci wrote:
> Ciao a tutti,
>
> sqlite3 e il fw4.0 non vanno d'accordo.
> Dunque, per la mia piccola applicazione desktop, cosa mi consigliereste di
> usare?
>

Non ho esperienza diretta ma sono in parecchi ad usarlo. Che problemi
hai?

--
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: alternativa a sqlite + NHibernate

text:
>
> SQL Server Compact?
>

Avevo letto che verrà dismesso ...



title: alternativa a sqlite + NHibernate

text:
On 31/08/2013 09.47, Raffaele Rialdi [MVP] wrote:
> Non ho esperienza diretta ma sono in parecchi ad usarlo. Che problemi hai?

Ho letto on-line di diversi problemi di compatibilità con i driver...
per ora sto andando bene. Cerco un attimo gli articoli che ho letto e li
ri-posto.

Ciao,
Giulio

--


title: [ASP] Visualizzare file e cartelle

author: nervo

text:
<premesa>
Mi sono accorto solo ora del nuovo ng, quindi riscrivo qui.
</premessa>
ciao a tutto il ng
in vs 2010 vorrei realizzare una semplicissima pagina web che mi
consenta di visualizzare cartelle e file presenti all'interno di una
cartella sul mio pc, un pò come fa esplora risorse . Quale controllo
posso usare?
grazie per le risposte
nervo


title: [ASP] Visualizzare file e cartelle

text:

Se abiliti il "directory browsing" su IIS lo fa già di suo senza
scrivere nulla.
Ovviamente stai bene attento a come può essere usato perché apre
problematiche di sicurezza notevoli.
--
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: [ASP] Visualizzare file e cartelle

text:
On Thursday, 21 April 2011 08:04:53 UTC+1, nervo  wrote:
> in vs 2010 vorrei realizzare una semplicissima pagina web che mi
> consenta di visualizzare cartelle e file presenti all'interno di una
> cartella sul mio pc
Se davvero intendi il PC dell'utente, non c'e' modo (semplice) di farlo: il codice server-side gira appunto sul server quindi vede il file system del server, mentre gli script client-side non hanno il privilegio di accedere al file system dell'utente.
In teoria si potrebbe risolvere, creando per esempio un activex per IE, che poi l'utente deve installare: ovviamente e' una strada piuttosto complessa, anche perche' non c'e' modo di avere un'unica soluzione che sia cross-browser.
-LV