Lo avevo letto tempo fa (ma non ricordo dove) ma in questo post viene dimostrato:
The basic idea is that foreach is slower than a for loop. I've pretty much always known this, but never really known how much slower it is. There's some overhead, sure, but I've always assumed it was negligible.
Il risultato può sembrare abbastanza sorprendente:
| |
foreach loop |
for loop |
| Test Run #1 |
1250 |
187.5 |
|
Test Run #2
|
984.375
|
187.5
|
|
Test Run #3
|
765.625
|
218.75
|
|
Test Run #4
|
828.125
|
203.125
|
|
Test Run #5
|
765.625
|
218.75
|
Per capirne il motivo, bisogna ravanare un po' con reflector, ma questo sarà argomento di un prossimo post
Fonte: ToddHa's WebLog : Performance Tip-O-The-Day #1 : for[each]
Sul numero di Luglio di MSDN Magazine è uscito un interessante articolo sulla condivisione del codice tra applicazioni sviluppate per sistemi desktop (quindi con il .NET Framework completo) e quelle sviluppate per i dispositivi mobili (quindi con .NET Compact Framework).
For the last several years, while developers were building Microsoft® .NET Framework client applications for Windows®, many had no idea that they could also have been creating applications for Windows Mobile® using the same skills and toolsets. But Windows Mobile wasn’t as widespread in the enterprise then, so the need to write custom applications targeting mobile devices was not as great. Today, there’s a huge demand and many desktop developers are getting their feet wet with mobile development. Unfortunately, many miss the opportunity to share their .NET code cross-platform even though it is relatively easy to do so.
[continua alla fonte]
Il mio personale consiglio (e non solo mio), è che quando si sa già che una applicazione deve "girare" su entrambe le piattaforme, conviene sempre sviluppare prima l'applicazione per il dispositivo mobile e poi "portarla" sul desktop. Il CF infatti, come noto, è un sottoinsieme del (Full)Framework e, quanto implementato nella versione 2.0 è compatibile 1:1 con il Framework normale (vuol dire che se un oggetto c'è nel CF, è uguale a quello del Framework).
Spesso però (ed è normale che sia così), le applicazioni per dispositivi mobili differiscono, se pur di poco, da quelle per normali PC ed è qui che le informazioni riportate in questo articolo sono davvero preziose.
Lettura caldamente consigliata
Share Code: Write Code Once For Both Mobile And Desktop Apps -- MSDN Magazine, July 2007
Queste alcune cose che accomunano un informatico ad una prostituta:
- Lavori a degli orari bizzarri
- Sei pagato per rendere felice il tuo cliente
- Il tuo cliente paga tanto, ma e' il tuo padrone che intasca
- Sei pagato all'ora, ma i tuoi orari arrivano fino a quando il lavoro e' finito
- Anche se sei bravo, non sei mai fiero di quello che fai
- Sei ricompensato se soddisfi le fantasie del cliente
- Ti e' difficile avere e mantenere una famiglia
- Quando ti domandano in che cosa consiste il tuo lavoro, tu non puoi spiegarlo
- I tuoi amici si allontanano da te e resti solo con gente del tuo tipo
- E' il cliente che paga l'hotel e le ore di lavoro
- Il tuo padrone ha una gran bella macchina
- Quando vai in "missione" da un cliente, arrivi con un gran sorriso
- Ma quando e' finito, sei di cattivo umore
- Per valutare le tue capacita' ti sottopongono a dei terribili tests
- il cliente vuole sempre pagare meno e tu devi fare delle meraviglie
- Quando ti alzi dal letto dici " Non posso fare questo per tutta la vita"
Stranamente....mi ci ritrovo in quasi tutte 