Non siamo andati a Barcellona a sentirne parlare dal vivo, ma un video del genere di certo non passa inosservato, come la notizia che Microsoft ha annunciato la possibilità di integrare in un futuro relativamente prossimo le funzionalità offerte dal kinect con Windows Phone, nel video per esempio vediamo uno dei minigiochi presenti nel videogame Kinect Adventures, in cui due donne interagiscono con i loro windows phone e mettono in difficoltà il povero giocatore di turno.
Per approfondimenti riguardo a questa notizia vi rimando ad una "mini-intervista” disponibile sul sito Xbox.Com
http://www.xbox.com/en-US/Press/Archive/2011/0214-Windows-Phone-7-Kinect-Demo
Sono ansioso di vedere quali giochi tireranno fuori prossimamente sul market
E.
Non so se vi è mai capitato, ma nel caso spero possa esservi utile, di dover dichiarare che non è più consigliato l’utilizzo di una vostra classe o di un vostro metodo a seguito di modifiche al progetto. Qualsiasi sia il vostro caso vi basta decorare il vostro metodo o un’interfaccia o una classe) e decorarla con l’attributo Obsolete

Come potete vedere la classe espone 3 costruttori: il primo senza parametri si limita a segnalare un warning nel caso si usi quel metodo, il secondo, oltre al warning visualizza un messaggio, ed il terzo invece indica al compilatore di trattare l’utilizzo del metodo come errore.
spero possa esservi utile in qualche modo per esempio nel caso stiate facendo un pò di refactoring sulla vostra applicazione e vogliate tener traccia di quanto è cambiato nel tempo.
E.
E’ da un pò che non scrivo post sul blog (mea culpa), ed è sia un piacere che un dispiacere ricominciare parlandovi dell’ultima UgiAltNet conference che si è tenuta a Milano Sabato 21. Quando dico ultima intendo nel vero senso della parola, è una notizia che rimbalza ormai da diversi giorni su twitter, la chiusura dei lavori (definitiva) da parte dell’ugiAlt.net conference che negli ultimi anni ha lavorato su binari paralleli per la divulgazione delle metodologie oltre la piattaforma .Net. Non è mia intenzione dilungarmi a riguardo, anzi vi rimando al blog di Emanuele Delbono per notizie dai veri addetti ai lavori, ma mi permetto di parlarne solo perché insieme ad Antonio ho avuto l’onore di partecipare da speaker a quest’ultima edizione, anche se non riesco a trovare le giuste parole per descrivervi l’aria che si respirava.
Nella nostra sessione abbiamo parlato di una delle feature più interessanti della prossima versione del framework, e mi riferisco all’async framework (o Task-based Asynchronous Pattern), di cui troverete slide e demo in questo post sul blog di Antonio. Per la demo avrete bisogno di scaricare Visual Studio 2011. Spero possiate gradire.
E.
Esistono 2 modi per scrivere commenti in un file .cshtml
<!-- Commento -->
oppure
@* Commento *@
potete alternare le due sintassi a seconda che stiate commentando una vostra porzione di codice o del semplice html
E.
E’ pronta la nuova CTP 5 di Entity Framework
Non mi soffermerò su tutte le feature introdotte (anche perchè sono un bel pò) ma vi rimando a questo link e vi lascio qui quelle che mi sono saltate subito all’occhio
- Divertendomi su WPF trovo veramente interessante l’uso delle ObservableCollection.
- Validation basata sulle DataAnnotation
Spero di poter testare un pò tutte le feature a breve
E.
- Encapsulate Field ==> CTRL + R + E
- Extract Interface ==> CTRL + R + I
- Promote local variable to parameter ==> CTRL + R + P
- Rename ==> CTRL + R + R
- Remove Parameters ==> CTRL + R + V
- Reorder Parameters ==> CTRL + R + O
- Extract Method ==> CTRL + R + M
E’ chiaro Microsoft non intende abbandonare la comunità degli sviluppatori Vb.net e la conferma è arrivata con il rilascio dei tools di sviluppo per windows phone 7 (per ora solo in CTP con features limitate e compatibile solo con la versioni full di Visual Studio 2010) anche per i vibettini (disponibili per il download a questo indirizzo)
Serializzatore…quale scegliere e perchè?
Diciamo, innanzitutto, che dal framework 3.0 abbiamo la possibilità di scegliere come serializzare un grafo di oggetti (che bello ora abbiamo l’imbarazzo della scelta T_T), ma in base a cosa scelgo? beh… ho fatto un pò di test ed ho evidenziato quelli che, dal mio punto di vista, potrebbero essere pregi e difetti dell’uno e dell’altro.Iniziamo rispettando i più anziani:
XmlSerializer:
- Serializza tutte le property , tranne quelle che gli viene detto di ignorare (ricordate che lavora solo sulle property pubbliche)
- Controllo completo sull'xml generato (posso scegliere quale property rendere un attribute e cosa un element)
DataContractSerializer:
- Serializza solo quello che viene decorato come da serializzare (anche datamember privati)
- può serializzare classi decorate con l'attributo [Serializable] (lo vedo un pregio se voglio usare questo serializzatore senza dover ridecorare tutte le mie classi,ma guardando l’xml generato…sembra quasi un difetto)
- ho letto su internet che rende la serializzazione più veloce del 10% rispetto ad XmlSerializer ma sui test fatti da me siamo su un ordine leggermente diverso
- su 1 elemento
- DataContractSerializer 34ms
- XmlSerializer 204ms
- su 900000 elementi (senza oggetti innestati)
- DataContractSerializer 1863ms
- XmlSerializer 3750ms
- su 900000 elementi (di cui 9000 con altri oggetti contenuti che contengono a loro volta altri 3000 oggetti)
- DataContractSerializer 2458ms
- XmlSerializer 3691ms
- Crea solo element e non attribute (su questo voglio indagare meglio, ma finora non ho avuto modo di fargli creare attribute), l’unico controllo che ho sui membri decorati con [DataMember] sono “IsRequired, Name, Order, DefaultValue”
considerando il divario prestazionale che si è creato tra le due serializzazioni, direi che se devo scegliere come serializzare, indipendentemente dal modo (nodi ed attributi), beh…non ho molti dubbi su cosa scegliere (anche se non vi nascondo che voglio fare ancora qualche test, magari con un grafo più complesso)
viceversa se voglio che il mio xml abbia una struttura ben precisa (magari che rispecchi uno Schema XSD contenente anche degli attributi) beh devo adattare il mio sviluppo e le mie classi all’utilizzo con XmlSerializer perchè è lui la scelta migliore
Se non mi preoccupano ne prestazioni ne schema, sceglierei (personalmente) DataContractSerializer perchè le decorazioni necessarie rendono più chiaro, per chi guarda le nostre classi, cosa intendiamo esporre
sperando come sempre di essere stato utile a qualcuno attendo eventuali vostri rimproveri o suggerimenti
E.
Non so nei vostri uffici o abitazioni se è accaduto lo stesso…ma quando qui da me hanno scoperto il logo di google interattivo dell’altro giorno si è bloccato tutto l’openspace per una ventina di minuti…per chi se lo fosse perso http://macek.github.com/google_pacman/
di tanto in tanto fa bene staccare la spina
Available to this address the newest version of the Enterprise Library. Among the updates, the most interesting (imm&ho):
- Asynchronous data access support
- Optimized cache scavenging
- Support for the .NET 4.0 Framework and integration with Microsoft Visual Studio 2010
- Integration with Windows Presentation Foundation (WPF) validation mechanisms
- Major architectural refactoring that provides improved testability and maintainability through full support of the dependency injection style of development
while other features are:
- Dependency injection container independence (Unity ships with Enterprise Library, but you can replace it with a container of your choice)
- Programmatic configuration support, including a fluent configuration interface and an XSD schema to enable IntelliSense
- Redesign of the configuration tool to provide:
- A more usable and intuitive look and feel
- Extensibility improvements through meta-data driven configuration visualizations that replace the requirement to write design time code
- A wizard framework that can help to simplify complex configuration tasks
- Data accessors for more intuitive processing of data query results
- Honoring validation attributes between Validation Application Block and DataAnnotations
- Support for complex configuration scenarios, including additive merge from multiple configuration sources and hierarchical merge
- Better performance when logging
- A reduction of the number of assemblies
- Support for the .NET 4.0 Framework and integration with Microsoft Visual Studio 2010
- Improvements to Unity
If you don't know the Enterprise Library: we are talking about a group of libraries that abstract operations performed daily by almost developers in the world, for example DataAccess, Logging, Validation, Dependency Injection, Unit Test
Scenario: sono stanco di farmi filtri sul registro degli eventi per avere i messaggi (d’errore, di warning, di info…… a seconda del trace level) che riguardano la mia applicazione, oggi faccio i capricci come i bambini, e voglio un EventSource tutto per me
Semplice da realizzare, e forse non è nemmeno da considerare un capriccio,perchè effettivamente scrivere nell’eventlog in un’area riservata solo a me mi da la possibilità di distinguere facilmente poi eventuali errori in maniera più efficiente e senza dover ricorrere a dei filtri, che poi dovrò esportare ed importare, quando passerò dall’ambiente di sviluppo a quello di test, e mi toccherà rifarlo quando passerò da test a produzione (no vi prego, io al massimo voglio fare click su “publish” per andare in produzione)
il codice che potete usare per testare il tutto è:
EventSourceCreationData source = new EventSourceCreationData("test", "testLogFile");
if (!EventLog.Exists("testLogFile"))
EventLog.CreateEventSource(source);
EventInstance inst = new EventInstance(20, 1, EventLogEntryType.Error);
EventLog.WriteEvent("test", inst, "messaggio da loggare");
//e qui il codice per pulire se non vogliamo lasciare nessuna traccia del nostro log
if (EventLog.SourceExists("test"))
EventLog.DeleteEventSource("test");
if (EventLog.Exists("testLogFile"))
EventLog.Delete("testLogFile");

A questo punto (in verità l’avrei già detto almeno 20 righe fa) perché dovrei scegliere di loggare in questo modo e non usare log4net…e farlo in altri modi: su un file di log, o su un db…o tanti altri modi. Vi risponderò parafrasando un noto personaggio…”LA RISPOSTA E’…NON LO SO”, nel senso che ci sono realtà in cui magari non è permesso l’uso di librerie sviluppate dall’esterno, o situazioni che richiedono una soluzione ad alta personalizzazione, insomma…ci sono svariati motivi per scegliere di loggare così, e come sempre condivisibili o meno
E.
Microsoft ha rilasciato il “Windows MultiPoint Mouse Software Development Kit (SDK)”, che in parole povere permette l’interazione di una vostra applicazione con più mouse contemporaneamente
Questo è il link per il download
Mentre a questo indirizzo trovate gli esempi di utilizzo di questa tecnologia (tra cui microsoft mouse mischief di cui ha parlato Antonio qualche giorno fa sul suo blog)
Sul sito si parla di un utilizzo in ambito didattico, che a pensarci bene è cosa buona e giusta, ma, sarà perché ultimamente penso spesso alla creazione di un gioco (e sono sempre più convinto che non sia cosa da poco, anzi…non avrò mai il tempo di farlo per davvero), a me è venuto subito in mente la possibilità di creare un “quiz da salotto” del tipo che il giocatore che clicca per primo sulla risposta esatta vince
Ma indubbiamente gli scenari di utilizzo sono molteplici, anzi mi interesserebbe conoscere il punto di vista di chi leggerà questo post, e dei possibili utilizzi che farebbe (non vale leggere l’articolo ufficiale e poi rispondere) :)
Saluti.
E.
All’indirizzo http://downloads.red-gate.com/ebooks/DotNet/NET_Perf_and_Test_eBook.zip potrete trovare un ebook (gratuito)
questi i capitoli presenti:
- Chapter 01: Introduction - The What and the Why
- Chapter 02: Understanding Performance Targets
- Chapter 03: Performance and Load Test Metrics
- Chapter 04: Implementing your Test Rig
- Chapter 05: Creating Performance Tests
- Chapter 06: Next Steps - Profiling
- Chapter 07: Performance Profiling
- Chapter 08: Memory Profiling
- Chapter 09: The Performance Testing Process
- Chapter 10: Common Areas for Performance Improvement
- Chapter 11: Load Balancing
- Chapter 12: Internet Information Server (IIS)
- Chapter 13: HTTP Optimization
io ho soltanto iniziato la lettura delle prime pagine, e mi sembra piuttosto semplice, purtroppo non ho abbastanza tempo per leggerlo e darvi un parere completo entro breve tempo, ma penso che possa valere la pena di dedicargli un minimo di attenzione ;)
E.
Che dire, l’argomento è tutt’altro che ostico, anzi appena mi è balenata l’idea di postare su questo argomento, mi sono subito risposto <<ma a che pro? lo sanno anche i sassi>> e poi ho pensato :<<Beh però quando hai iniziato a fare applicazioni .Net nemmeno tu lo sapevi, su posta per chi ha appena iniziato>> e quindi eccomi qui :)
Dopo questa interessantissima prefazione passiamo ai fatti
- Scenario
- Mi trovo a voler aggiungere sezioni di configurazione personalizzate al file di configurazione che mi sia possibile recuperare a runtime
- Soluzione
- Aggiungo al file di configurazione (se non è già presente) la sezione (scusate il gioco di parole)
- <configSections>
</configSections>
- Ci creo dentro un gruppo di sezioni
-
- <sectionGroup name="OpenSourceFactory.MyApplication">
</sectionGroup>
- A questo punto dentro sectionGroup dobbiamo metterci qualcosa e cosa?
- <section name=”ConfigFiles” type=”System.Configuration.NameValueSectionHandler”/>
-
- Ora la section è stata aggiunta al file di configurazione, di conseguenza il parser non mi darà nessun errore se scrivo questo
- <OpenSourceFactory.MyApplication>
<ConfigFiles>
<add key="DefaultConfigPath" value="C:\MyApplication\config\default.xml" />
</ConfigFiles>
</OpenSourceFactory.MyApplication>
-
- ed ora i passi per accedere al file di configurazione
- prima di tutto aggiungete al vostro progetto un riferimento a “System.Configuration”
- NameValueCollection colSet = ConfigurationManager.GetSection("OpenSourceFactory.MyApplication/ConfigFiles") as NameValueCollection;
- risolvete ConfigurationManager se non lo avete già fatto
- string path = colSet["DefaultConfigPath"];
Sperando di essere stato utile a qualcuno, vi saluto fino al prossimo post.
E.
Oggi stavo personalizzando un pò la configurazione del mio nuovo portatile quando entro nelle impostazioni del touchpad e sotto scopro questo button:
ma che farà?
E.
Più Post
Pagina seguente »