Welcome

Post in lingua italiana
English posts only

Syndication

Blog Stats

Bloggers (posts, last update)

Latest Posts

Adobe toglimi quell'icona!

image

Adobe nonostante sia un'azienda che produce prevalentemente prodotti dedicati all'arte grafica elettronica, difetta nel progettare l'interfaccia utente, o meglio la User Experience, dei suoi prodotti: ad esempio il suo prodotto storico Illustrator a detta di molti è meno usabile di Freehand. Potrei fare altri esempi ma è su Adobe Reader, ed in particolare sull'icona che viene obbligatoriamente inserita sul desktop, che voglio sfogarmi....

Ma a che serve? Qualcuno l'ha mai cliccata? Ormai siamo abituati ad aprire i programmi con il doppio clic sul file documento, e a volte partiamo dall'icona del programma per iniziare una nuova sessione di lavoro, un nuovo documento... ma in un reader, in un programma che per definizione non produce nulla da zero, l'icona sul desktop che serve?

posted @ 07/09/2008 22.43 by Alessandro Scardova

BizTalk Server 2009 Q&A

Per maggiori info inerenti i nuovi aggiornamenti su BizTalk server 2009 vi rimando a questa interessantissima Q&A con Oliver Sharp, General Manager della Connected System Division.

http://www.microsoft.com/presspass/features/2008/sep08/09-05BizTalk.mspx

posted @ 07/09/2008 21.49 by Nino Crudele

Il nuovo BizTalk Server 2009!

BizTalk Server 2009


Ebbene sì, come prevedevo Microsoft ha cambiato nome alla futura release BizTalk, la R3.
Il nuovo BizTalk si chiamerà BizTalk server 2009 smile_regular, la trovo una decisione corretta, soprattutto per le pesanti modifiche effettuate alle principali componenti interne.
Chiaramente il cambiare il nome a una piattaforma come questa preclude ragioni di tutto rispetto, alcune delle quali molto interessanti.

L' interfaccia di sviluppo molto più solida e affidabile, chiaramente su piattaforma 2008, framework 3.5, l'architettura interna di interconnessione dei layer di comunicazione in WCF, quest' ultima è, secondo me la cosa migliore che potesse fare Microsoft.

Altrettanto interessante il supporto ad Hyper-V, e finalmente la possibilita di effettuare multi-deploy in ambienti cluster.
RFID rimane una piattaforma a parte ma che presenta interessati nuove possibilità verso il supporto di soluzioni mobile e protocolli industriali (LLRP, TDT, TDS, WS Discovery, EPCIS support)

Supporto su TFS di gran lunga migliorato, il messaging interno rivisto per la parte di interchange di tipo recoverable.

Negli anni a seguire Microsoft ha già annunciato che effettuerà altri interessanti rilasci, in questo ordine:

Supporto di sviluppo per complex mapping, per il B2B inserimento dela possibilità di gestire complex trading partners,

Nuova ESB Guidance e nuova carburazione sulla low latency.

Altri steroidi al BAM, grandissima feature di BizTalk.

Sapete cosa significa BizTalk Server 2009 e non R3?
Significa che a differenza di quello che sapevo, BizTalk non sarà più inglobato internamente a OSLO, come si pensava, ma sarà, giustamente,  un una sua estensione. smile_regular

Sono molto felice di tutto questo, OSLO è veramente interessante e credo rivoluzionerà tante cose ma penso che determinate problematiche architetturali debbano essere focalizzate alle relative piattaforme, ritengo che la "globalizzazione" tecnologica porti solo al caos.

...smile_whatchutalkingabout

posted @ 07/09/2008 20.43 by Nino Crudele

Eliminare gli sprechi: esempi



  Dal primo principio del Lean Software Development degli esempi di spreco per ogniuna delle  principali categorie di sprechi

  1. Eliminare gli sprechi

     
    Quando si raccolgono dei requisiti che poi restano accantonati per un bel po a prendere polvere è spreco (Partially done work) 

      Quando viene implementata una funzionalità che servirà dopo ma non subito è spreco (Extra features)

       Quando due gruppi si rimpallano un lavoro o un problema da risolvere è spreco (Motion)

        Quando si comincia lo sviluppo di una funzionalità e ci si ferma per un po prima di finire senza consegnare niente al cliente è spreco (Partially done work)

         Quando si resta ad aspettare qualcosa o qualcuno per poter poter continuare il proprio lavoro è spreco (Waiting) 

       Un bug del software che rallenta il lavoro dell'utente per settimane prima di essere scoperto e risolto è uno spreco (Defects) 

       Quando bisogna tracciare o compilare documenti che nessuno vuole leggere o leggerà è spreco (Extra Process)  

       Quando si passa dalla feature che si stà implementando ad un problema urgente da risolvere per tornare alla implementazione e poi passare a sistemare una cosa avanzata dalla implementazione precedente è uno spreco (Task Switching)

Qualche altro esempio di spreco di una di queste 7 categorie dal lavoro di ogni giorno?

Tags :   |  |  |

posted @ 07/09/2008 20.27 by Luca Minudel

Add Note in MS Office Outlook via C#

Durante la fase di sviluppo di Elenoire io e Federico Degrandis abbiamo deciso di utilizzare MS Office Outlook per il salvataggio di note da Live Messenger, per risolvere il problema abbiamo utilizzato la seguente dll "Microsoft.Office.Interop.Outlook" e quindi abbiamo scritto il seguente codice per utilizzare l'istanza di Outlook :

   1:  private static Application app;
   2:   
   3:   // Metodo per la creazione di una nuova istanza
   4:  // della classe application
   5:  static ManageOutlook()
   6:  {
   7:    // se non e' gia' stata creata creo una nuova istanza della classe App
   8:    // questa mi permette di accedere alla funzioni di Outlook
   9:     if (app == null)
  10:    app = new Application();
  11:  }

fatto ciò abbiamo creato un metodo per l'aggiunta delle note

   1:  public static void AddNote(string body)
   2:  {
   3:   // creo un nuovo oggetto di tipo NoteItem usando il metodo CreateItem
   4:   // non e' possibile istanziare la class NoteItem
   5:   NoteItem note = (NoteItem)app.CreateItem(OlItemType.olNoteItem);
   6:   
   7:   // setto i vari campi con i valori passati dall'utente
   8:   note.Body = body;
   9:   
  10:   // salvo la nota
  11:   note.Save();
  12:  }

Il codice è completamente funzionante è testao, durante i test c'è stato solo un problema che continua a perseguitare il nostro progetto, le note in qualche caso vengono inserite con ritardo di ore dal momento dell'inserimento, per il momento credo che siano problemi nella dll.

posted @ 07/09/2008 17.26 by Fabrizio Lapiello

Da Flash a Silverlight

Bellissimo articolo dove viene illustrato in nove lezioni come affrontare lo stesso argomento in flash e come in silverlight.

posted @ 07/09/2008 9.48 by Paolo Ongari

[OT] Chiuso per ferie

E si va... finalmente una settimana di ferie per ricaricare le batterie dopo il cambio di lavoro della fine dello scorso anno.
Una buona possibilità di mettere alla prova la mia "nuova" (per me lo è anche se l'ho comprata di seconda mano) Nikon D70.

E chissà che al mio ritorno non privi anche Flickr per condividerne un po'.

A presto!!!

Technorati Tag:

posted @ 06/09/2008 23.42 by Nazareno

Elenoire bot for Windows Live Messenger

Questo post viene pubblicato come introduzione al progetto Elenoire ,come guida all'installazione e come complemento a questo post. Inizio con la descrizione del progetto Elenoire.

Problema

Si desidera progettare un sistema software che interagisca con Windows Live Messenger quando l’utente amministratore non è al computer o impossibilitato alla gestione di Windows Live Messenger.

Il sistema dovrà interagire con gli utenti Live che contattano l’amministratore fornendo servizi di segreteria, quali:

· Aggiunta di note in Microsoft Office Outlook 07

· Aggiunta di appuntamenti al calendario di Microsoft Office Outlook 07

Il progetto

Attualmente il progetto è completo delle funzionalità descritte in precedenza ed è scaricabile gratuitamente dal sito.

Installazione

L'analisi dell'installazione di un componente aggiuntivo parte dalla considerazione che, nella configurazione predefinita di Windows Live Messenger, i componenti aggiuntivi non sono supportati. Assicuriamoci che Messenger non sia in esecuzione, attiviamo l'editor del registro di sistema e selezioniamo la chiave HKEY_CURRENT_USER\Software\Microsoft\MSNMessenger. A questo punto dobbiamo aggiungere un valore dword 32 che chiameremo AddInFeatureEnabled ed a cui assegneremo il valore 1.

Una volta effettuata questa operazione apriamo messenger e spostiamoci nelle opzioni, vedremo che una nuova voce "Componenti aggiuntivi"  comparirà tra le schede.
comagg 
Prima di sincronizzare Elenoire con Messenger dobbiamo necessariamente registrare gli assembly nella global cache di Windows. Per installare gli assembly ci sono vari metodi :

  • utilizzo del tool di gestione "Microsoft .NET Framework 2.0 Configuration"
  • utilizzo del prompt dei comandi

Iniziamo con il tool, se sul pc che state usando non è presente il .net framework installatelo al seguente link e utilizziamo il tool di configurazione che troviamo all'interno della cartella strumenti di amministrazione. Utilizziamo l'interfaccia grafica per aggiungere i file dll che troviamo nella cartella di Elenoire.
tool 
Vediamo adesso come fare per installare gli assembly con il prompt, apriamo il prompt digitiamo "gacutil/i [spazio] nomedll.dll" per ogni dll del progetto, e automaticamente gli assembly verranno installati nella cache, il metodo consigliato è sicuramente il tool grafico, molto intuitivo e veloce da utilizzare.

Adesso non ci rimane che sincronizzare Elenoire con Messenger, apriamo messenger e torniamo nella scheda dei componenti aggiuntivi, da li selezionare la voce "aggiungi a messenger" e selezionare "MessengerAddin.Elenoire.dll" dalla cartella di Elenoire, fatto ciò dovete solo abilitare Elenoire (vedi Immagine).
messenger 

Technorati Tag: ,,

posted @ 06/09/2008 17.52 by Fabrizio Lapiello

Quando conviene avere Visual Studio in italiano

Il template ASP .NET Dynamic Data crea un sito web completo di tutto... Però con l'interfaccia localizzata nella lingua di Visual Studio. Il problema è che, sviluppando siti per clienti "locali", tipicamente ci si aspetta che le stringhe siano in italiano. Per evitare di ridefinirsi a mano tutti i messaggi nella nostra lingua, l'unico modo è avere a disposizione una copia di Visual Studio in italiano, quindi creare il sito con essa.

posted @ 06/09/2008 16.00 by Marco Minerva

IT e fantasmi dal passato...

Mi rendo conto che è molto più facile ricercare e apprendere nuove soluzioni orientate al maintenance che istruire al loro uso... (continua)

posted @ 06/09/2008 12.19 by Marco Barzaghi

ASP .NET Dynamic Data Site... Semplicemente senza parole!

Come anticipato ieri, volevo dare un'occhiata alla feature ASP .NET Dynamic Data. Ebbene... Ho creato una nuova Web Application, utilizzando l'apposito template, ho aggiunto una classe di tipo LINQ-To-SQL al progetto, ho scommentato UNA (1) riga di codice nel file Global.asax, ho premuto F5 e... L'applicazione era già lì, bella e pronta all'uso!!!! Mi ci sono voluti meno di 5 minuti per creare una completa interfaccia web per l'accesso e la modifica del database. Che dire... LA COSA MI HA LASCIATO COMPLETAMENTE SENZA PAROLE...

Technorati Tags: , ,

posted @ 06/09/2008 10.12 by Marco Minerva

[LINQ To DataSet] Interrogare tabelle Excel

Uno degli scenari in cui risulta spesso comod(issim)o ricorrere a LINQ to DataSet è l'elaborazione di dati in formato tabellare provenienti da datasheet Excel 97-2003 (.xls).
Supponiamo di voler processare, tramite il nostro applicativo, un datasheet come il seguente:

 

Alternativamente ai soliti statement di interrogazione dei DataSet, ora possiamo utilizzare LINQ to DataSet per accedere ai dati in maniera molto più potente ed espressiva, magari per effettuare operazioni complesse (magari difficilmente riproducibili con ADO.NET 2.0) o semplicemente per rendere il nostro codice maggiormente leggibile/manutenibile. A riguardo, riporto un semplice esempio di come poter sfruttare LINQ to DataSet in scenari come questo: 
 

string filename = @"C:\Sample.xls";
string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + filename + ";" + "Extended Properties=Excel 8.0;";
OleDbDataAdapter dataAdapter = new OleDbDataAdapter("SELECT * FROM [SampleData$]", connectionString);
DataTable dataTable_products = new DataTable("Products");
dataAdapter.Fill(dataTable_products);          

// Es. 1: Calcolo spese totali per prodotto
var grouped_products = from row in dataTable_products.AsEnumerable()
                       group row by new { ProductName = row.Field<string>("ProductName") }                                   
                       into productGroup                                  
                      
select new {
                                   
ProductName = productGroup.Key.ProductName,
                                   
TotalCost = productGroup.Sum(row => (double)row.Field<decimal>("UnitPrice") * row.Field<double>("Qty"))
                                 
};                                   

foreach (var product in grouped_products)
{
 
Console.Write("{0} ", product.ProductName);
 
Console.WriteLine(product.TotalCost.ToString("C"));               
}

// Es. 2: Calcolo spese totali
double total = dataTable_products.AsEnumerable().Sum(row => (double)row.Field<decimal>("UnitPrice") * row.Field<double>("Qty"));
Console.WriteLine("Total: {0}", total.ToString("C"));


Facile, rapido, LEGGIBILE... Grazie LINQ!!!

N.B.: Ovviamente il funzionamento dell'esempio riportato presuppone che la prima riga del datasheet contenga i nomi delle colonne.

Technorati Tag: ,,

posted @ 06/09/2008 2.08 by Dario Santarelli

[OT] World Names Profiler + Vacanze (finalmente)

World Names Profiler

Se siete curiosi di conoscere la diffusione del vostro cognome nel mondo, visitate questo sito.

Vacanze

Finalmente domani  inizieranno le mie vere vacanze estive (o quasi dato che siamo a settembre), staccando la spina da tutto prima dell'inizio del nuovo anno accademico e l'inizio dei nuovi progetti. Una pausa rigenerante. Alla prossima settimana.

Buon week-end a tutti

 

posted @ 05/09/2008 16.14 by Pietro Libro

SSMS di SQL Server 2008: "Saving changes is not permitted"

Ho notato solo oggi un comportamento "curioso" di SQL Server Management Studio 2008. Dovevo cambiare il tipo di dato di un campo in una tabella, quindi seleziono il Database, seleziono la tabella, vado in modalità "design", cambio il tipo di dato, salvo e...

Saving changes is not permitted. The changes you have made require the following tables to be dropped and re-created. You have either made changes to a table that can't be re-created or enabled the option Prevent saving changes that require the table to be re-created.

In pratica in SQL Server 2008, qualsiasi operazione su una tabella che comporta una DROP e una CREATE della stessa, di default è inibita. Per riavere il comportamento "classico" di SQL Server 2005, basta andare in Tools / Options / Designers e togliere la spunta su Prevent saving changes that require table re-creation:

SQL2K8_PreventSavingChanges

Le operazioni che comportano DROP+CREATE di una tabella sono:

  • Aggiunta di nuove colonne nel mezzo della tabella.
  • Eliminazione di una colonna.
  • Cambio del tipo di dato di una colonna o della sua nullability.
  • Cambio dell'ordine delle colonne nella tabella.

Riferimento: http://msdn.microsoft.com/en-us/li