msgbartop
Around Software Development and Innovation
msgbarbottom

27 Feb 11 Scrivere codice .NET migliore

Un ottimo suggerimento al fine di migliorare il codice .NET che scriviamo è quello di considerare i warning del compilatore C# come errori, per abilitare tale impostazione basta andare nelle proprietà del progetto, nel Tab Build e nella sezione “Treat warnings as errors” e spostare il radio button su All.

Questo vi darà un pò di problemi all’inizio, ma con l’abitudine scriveremo del codice migliore :)

Antonio

27 Feb 11 Esempi di codice su Sync Framework

Vi servono esempi di codice su Sync Framework…andate a questo link.

Nella code gallery troverete esempi basati su SQL Server, SQL Server CE, Oracle, WCF,etc

Antonio

27 Feb 11 Estrarre un XmlDocument da una classe serializzata con DataContractSerializer

Avevo l’esigenza di estrarre da un classe serializzata come XML con un DataContractSerializer di WCF un oggetto di tipo XmlDocument.

Riporto il codice di esempio che potrebbe esser utile a qualcuno.Ecco la classe da serializzare:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Serialization;

namespace WcfServices
{
  [DataContract(Name="PROVA",Namespace="http://prova.schemas.it")]
  public class UserMessage
  {
    [DataMember]
    public string MessageType{get;set;}
    [DataMember]
    public string Message { get; set; }
    [DataMember]
    public DateTime Date { get; set; }
  }
}
Ora riporto il codice che serializza in un MemoryStream l'oggetto e
successivamente lo riporta in un XmlDocument:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Serialization;
using System.IO;
using System.Xml;

namespace WcfServices
{
  public class SerializationHelper
  {
    public static XmlDocument Serialize(UserMessage msg)
    {
      XmlDocument doc = new XmlDocument();
      //use Memory Stream as support object
      MemoryStream mem=new MemoryStream();
      DataContractSerializer dcs = new DataContractSerializer(typeof(UserMessage));
      //write data into memory stream
      dcs.WriteObject(mem, msg);
      //set cursor at begin for reading
      mem.Position = 0;
      doc.Load(mem);
      return doc;
    }
  }
}
Bye
Antonio

27 Feb 11 Cellular emulator e 64 bit

Per chi non lo sapesse volevo segnalare il fatto che il Cellular Emulator, un ottimo tool di MS che consente di emulare le funzionalità di un vero cellulare con Windows Mobile non gira su macchine e SO a 64 bit.

Questa pagina di MSDN fornisce ulteriori info.

Tale mancanza , (nel mio caso avendo anche una macchina a 32 bit è un problema trascurabile) tuttavia, può creare non pochi problemi.

L’unico modo per ovviare è usare un VM magari con Virtual PC che contenga un SO a 32 bit.

Antonio

27 Feb 11 Mobile Application Blocks

Se avete bisogno di una libreria che espanda le funzionalità di .NET Compact Framework con funzionalità come Configuration, IOC, Authentication, Disconnected Web Services,etc

Date uno sguardo al Mobile Application Blocks.

Antonio

27 Feb 11 PInvoke Wizard

Vi segnalo questo tool molto interessante per generare le chiamate verso codice unmanaged.

E’ stato scritto da Paul Yao, gia autore di ottimi testi su .NET Compact Framework.

Antonio

27 Feb 11 Bug EF 4 Designer

In questo periodo sto lavorando molto con VS2010 ed EF 4, però purtroppo ho riscontrato un bug nel designer che non permette la creazione in maniera corretta di associazioni del tipo M:N.

In particolare viene settato alla creazione dell’associare l’attributo StoreGeneratedPattern=”Identity”, mediante il quale si specifica il pattern di generazione della chiave dell’oggetto (ad esempio come identity).

Trattandosi in realtà di un riferimento che viene tradotto in una foreign key nel db, tale attributo risulta inutile nonchè dannoso, dato che ad esempio alla generazione del db tale attribute crea un campo identity autogenerato anche nella foreign key.

Questo link spiega un workaround e in maniera approfondita il problema.

A presto

Antonio

27 Feb 11 ADO.NET 4 Entity Framework Feature CTP 3

Entity Framework Feature è un insiene di interessanti estensioni per EF 4. In particolare abilita le cosidette  self tracking entites che possono essere utilizzate in applicazioni multi tier come DTO.

Tale set dalla versione RC di VS2010 viene installato di default con .NET 4.0.

Se sviluppate applicazione di classe Enterprise multi tier vi consiglio vivamente di dare uno sguardo. ;)

Qui trovate maggiori info.

Antonio

27 Feb 11 Biztalk 2009 Tutorials & TCP Adapter

Lavorare su EAI è veramente un’esperienza essenziale per chi vuole acquisire conoscenza nella sviluppo di soluzioni complesse.

Ultimamente ho iniziato a lavorare con BizTalk 2009 per un progetto, ed ho iniziato a muovere i primi passi con i tutorial di Microsoft, oltre ad un ottimo libro della Wrox (anche se per Biztalk 2006).

Come da requisiti avevamo necessità di un adapter basato su TCP per dialogare con applicazioni esistenti, ne trovate uno completo di codice sorgente su Codeplex.

Essendo gratutito ve ne consiglio vivamente l’utilizzo se avete la necessita di dialogare con applicaioni mediante TCP, dato che BizTalk non fornisce di default un adapter TCP.

Antonio

27 Feb 11 Transazioni “Orphan” su SQL Server con Process ID -2

In questi giorni mi è capitato per la prima volta, lavorando su un progetto molto vasto e complesso su SQL Server di riscontrare nel monitor di SSMS delle transazioni con Process ID -2 in stato Locked. Indagando a fondo tra documentazione e blog vari ho riscontrato che si trattava di transazione orfane, che fanno riferimento a transazioni distribuite fallite (mediante DTC) ed inoltre i record coinvolti risultavano lockati.

Per rimuovere i lock e riportare il sistema in uno stato coerente bisogna dal DTC della macchina da cui è partita la transazione (oopure verificare sulle macchine-cluster coinvolte) rimuove la transazione che ha causato i lock.

Potete trovare ulteriori informazioni al seguente link.

Antonio