Wednesday, October 31, 2007

ILMerge

. Wednesday, October 31, 2007
0 commenti

Se si ha la necessità di dover unire più assembly in un unico file, può tornare utile l'utility ILMerge che come si può capire facilmente dal nome permette di fare il merge di più assembly.
Funziona tramite riga di comando, oppure per i più pigri esiste Gilma un progetto pubblicato su CodeProject, che presenta un'interfaccia grafica semplice da usare e decisamente comoda.

Read More »»

Nuovo sito Windows Mobile

.
0 commenti

Lanciato un nuovo sito per Windows Mobile veramente stellare(cit):

Read More »»

Tuesday, October 30, 2007

Gatineau beta invito

. Tuesday, October 30, 2007
0 commenti

Avevo già parlato del servizio Gatineau la risposta di Microsoft a Google Analytics, ma adesso è possibile iscriversi a Gatineau beta per ricevere un invito.

Read More »»

Sunday, October 28, 2007

Ajax: simultaneous asynchronous requests

. Sunday, October 28, 2007
0 commenti

Qualche giorno fa mi son imbattuto in un comportamento alquanto "strano" dell'oggetto XMLHttpRequest che non son ancora riuscito a comprendere del tutto.
In sostanza dovevo ciclare sulle righe di un controllo DataGrid, inizializzare l'oggetto request da inviare al server e ricevere N risposte.
Inizialmente il codice lato client era così strutturato:

<script language="javascript">
var req = null;
function sendData()
{
var data = "";
//Recupero l'url
var url = document.Form1.action;
for (var r = 1; r<5; r++)
{
data
= "id=" + r;
httpRequest(
"POST", url, true, data);
}
}
function httpRequest(reqType, url, asynch, parameter)
{
//Instanzio l'oggetto request
if( window.XMLHttpRequest) //Browser Mozilla
{
req
= new XMLHttpRequest();
}
else if( window.ActiveXObject) //Internet Explorer
{
req
= new ActiveXObject("Msxml2.XMLHTTP");
if( !req)
{
req
= new ActiveXObject("Microsoft.XMLHTTP");
}
}
if(req)
{
if(reqType.toLowerCase() != "post") //Metodo Get
{
initReq(reqType,url,asynch);
}
else
{
if(parameter != null && parameter.length > 0)
{
initReq(reqType,url,asynch,parameter);
}
}
}
}
function initReq( reqType, url, asynch, parameter)
{
try
{
req.onreadystatechange
=function()
{
try
{
if(req.readyState == 4)
{
if(req.status == 200)
{
alert (req.responseText);
}
}
}
catch(error)
{
alert(error);
}
}
req.open(reqType,url,asynch);
if(reqType.toLowerCase() == "post")
{
req.setRequestHeader(
"Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
req.send(parameter);
//Metodo Post
}
else
{
req.send(
null); //Metodo Get
}
}
catch(error)
{
alert( error);
}
}
</script>
Per brevità ho omesso dal metodo sendData il ciclo sulle righe del controllo Datagrid, sostituendo il tutto con un ciclo da 0 a 5.
Da sottolineare come in questo metodo viene preparata la stringa da inviare al server tramite una richiesta HTTP in POST.
Il metodo httpRequest ha la funzione di determinare il tipo dell'oggetto request utilizzato dal browser.
La parte più importante avviene nel metodo initReq.
Qui infatti c'è sia il codice necessario a gestire la risposta del server, sia il codice dell'invio della richiesta in POST.
Nella gestione della risposta viene verificato che la proprietà readyState dell'oggetto request è 4 (elaborazione terminata) e che lo stato della risposta HTTP sia 200.
L'invio della richiesta avviene chiamando la open, preparando la header della richiesta HTTP, ed effettuando l'invio tramite il metodo send.
Lato server, invece ho un metodo che produce N output, in risposta ad ogni richiesta effettuata.
La stranezza è di ottenere, nel caso specifico, 4 risposte identiche. Armato di fiddler mi son accorto che le risposte che ricevo però, sono in realtà diverse:

Per ovviare allo "strano" comportamento, ho modificato lo script, creando l'oggetto request N volte nella funzione createRequest e passato come parametro sia alla funzione httpRequest che di conseguenza alla initReq:
<script language="javascript">
function sendData()
{
var data = "";
//Recupero l'url
var url = document.Form1.action;
for (var r = 1; r<5; r++)
{
data
= "id=" + r;
createRequest(
"POST", url, true, data);
}
}
function createRequest( reqType, url, asynch, parameter)
{
var req = null;
//Instanzio l'oggetto request
if( window.XMLHttpRequest) //Browser Mozilla
{
req
= new XMLHttpRequest();
}
else if( window.ActiveXObject) //Internet Explorer
{
req
= new ActiveXObject("Msxml2.XMLHTTP");
if( !req)
{
req
= new ActiveXObject("Microsoft.XMLHTTP");
}
}
httpRequest( reqType, url, asynch, parameter, req)
}
function httpRequest(reqType, url, asynch, parameter, req)
{
if(req)
{
if(reqType.toLowerCase() != "post") //Metodo Get
{
initReq(reqType,url,asynch, req);
}
else
{
if(parameter != null && parameter.length > 0)
{
initReq(reqType,url,asynch,parameter, req);
}
}
}
}
function initReq( reqType, url, asynch, parameter, req)
{
//Per brevità ho omesso il codice.
}
</script>

Read More »»

Saturday, October 27, 2007

Kirix Strata

. Saturday, October 27, 2007
0 commenti

Kirix Strata è uno speciale browser per accedere e manipolare dati contenuti in tabelle html.
Una volta recuperati i dati è possibile salvarli direttamente su db(MySQL, Oracle, ecc).
Per avere un'idea più chiara delle potenzialità di questo software vi rimando allo screencast.

Read More »»

Thursday, October 25, 2007

Javascript: EndsWith e StartsWith

. Thursday, October 25, 2007
0 commenti

Attraverso i prototype è possibile espandere le funzionalità degli oggetti base.
In questo esempio implemento due funzioni che verificano se una determinata stringa termina o inizia in un certo modo:

String.prototype.endsWith = function( eString)
{
var reg = new RegExp( eString + "$");
return reg.test( this);
}


String.prototype.startsWith = function( eString)
{
var reg = new RegExp( "^" + eString);
return reg.test( this);
}

Read More »»

Wednesday, October 24, 2007

Windows Mobile 6.1 a febbraio?

. Wednesday, October 24, 2007
0 commenti

Secondo varie voci arriva la notizia seconda la quale per febbraio 2008 sarà presentata la versione 6.1 di Windows Mobile.
Tra le nuove features un'interfaccia utente rinnovata, introducendo lo scroll orizzontale dei tabs, ma anche una maggiore integrazione con Microsoft Exchange 2007.
Per Windows Mobile 7 si dovrà attendere fino al 2009.

Read More »»

Tuesday, October 23, 2007

Virtual Earth e 3DVIA

. Tuesday, October 23, 2007
0 commenti

Dopo il servizio offerto da Google con Sketchup, anche Microsoft in collaborabione con la francese Dassault presenta un servizio simile: 3DVIA, un software per creare modelli tridimensionali da inserire in Virtual Earth.

Read More »»

Halloween Ringtones and Wallpaper

.
0 commenti

..Halloween si avvicina e per chi vuole personalizzare il proprio mobile una serie di wallpaper e suonerie a tema...

Read More »»

Sunday, October 21, 2007

Aptana

. Sunday, October 21, 2007
0 commenti

Aptana è un IDE per sviluppare applicazioni in Javascript/HTML.
Recentemente supporta anche AIR, iPhone e gli ultimi framework Ajax tra cui prototype e jQuery.
Una nota negativa che ho notato dopo qualche test, riguarda l'intellisense per il javascript non proprio perfetto.

Read More »»

Saturday, October 20, 2007

Attributo Compilation

. Saturday, October 20, 2007
0 commenti

Una delle cose che spesso ci si dimentica quando si installa una web application scritta in ASP.NET in ambiente di produzione è di impostare l'attributo Compilation a false nel web.config:

<compilation
defaultLanguage="c#"
debug
="false"
/>

Compilare l'applicazione con Compilation a true produce un peggioramento delle prestazioni, codice non ottimizzato poichè vengono prodotti file binari di debug.
Oltre a motivi prestazionali ci sono anche motivi di sicurezza.
In aiuto ci viene una nuova distribuzione introdotta nel Framework 2.0. In sostanza mentre con ASP.NET 1.1 dobbiamo andare a "manina" a disattivare la funzionalità di debug, in ASP.NET 2.0 è tutto più semplice.
Nel machine.config, possiamo impostare una distribuzione senza le funzionalità di debug, ottenendo quindi sicurezza e prestazioni:
<system.web>
<deployment retail="true"/>
</system.web>

Read More »»

Friday, October 19, 2007

Windows Media Center e Virtual PC

. Friday, October 19, 2007
1 commenti

E' possibile creare una macchina virtuale usando Virtual PC con Windows Media Center.
La cosa strana sta nel fatto che con Virtual PC 2007 non sono riuscito assolutamente nell'intento.
Dopo qualche prova ho tentato con una versione precedente Virtual PC 2004, e come mia enorme sorpresa son riuscito ad installarlo.

Read More »»

Supporto per F#?

.
0 commenti

Stando all'annuncio di S. Somasegar corporate vice president del reparto sviluppo di Microsoft, F# farà parte della squadra dei linguaggi .NET, tanto che si parla di integrazione in Visual Studio, anche sè non si conoscono ancora i tempi.

Read More »»

Thursday, October 18, 2007

Microsoft Live Labs: Listas

. Thursday, October 18, 2007
0 commenti

Listas è un nuovo tool per la creazione, l'amministrazione e la condivisione di liste, note, favoriti ecc.
Le liste create possono essere rese pubbliche in lettura o anche in scrittura in stile wiki, alla community.
Inoltre per agevolare la creazione/modifica degli elementi è possibile scaricare la listas toolbar per Internet Explorer.

Read More »»

Wednesday, October 17, 2007

Natural Interaction

. Wednesday, October 17, 2007
0 commenti

Si tratta di un software frutto della collaborazione( neanche tanto recente) tra il MIT e Microsoft Research.
Permette di descrivere in modo molto naturale oggetti e iterazioni.
Dopo questa presentazione non sono risucito a trattenermi:


I requisiti per "divertirsi":
Windows XP Tablet PC
Framework 1.1
Il software
Da sottolineare che gli oggetti possono essere di diversi materiali:

  • gomma
  • acciaio
  • legno
  • ghiaccio
  • plastica
  • argilla
  • roccia

Per tutti questi materiali possiamo impostare densità, attrito ed elasticità.
Come si può evincere dal video il software permette di inserire delle forze, ma la cosa straordinaria è il poter collegare attraverso dei connector i vari oggetti.
Dopo aver installato il software si possono osservare tre esempi, tra questi c'è quello che simula una catapulta:

Read More »»

Versione 6 per Virtual Earth

.
0 commenti

E' disponibile la versione 6 delle API di Virtual Earth.
Alcune delle nuove feature:

  • Supporto per Safari
  • Multipoint routing
  • Modificato l'engine del Geocoding

Per passare dalla versione 5 alla versione 6 è molto semplice, basta modificare il link .ashx da:
http://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=5 a
http://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6.
Fonte: Virtual Earth, a developer blog

Read More »»

Tuesday, October 16, 2007

Virtual Earth: MapCruncher beta

. Tuesday, October 16, 2007
0 commenti

E' stato rilasciato in beta MapCruncher che permette di unire le mappe di Virtual Earth con le proprie mappe creando dei Mapping Mashup.
Accetta una serie di formati vettoriali: PDF, WMF, EMF e formati rasterizzati come: JPG, PNG, TIFF, GIF, BMP.

Read More »»

Monday, October 15, 2007

Tablecloth

. Monday, October 15, 2007
0 commenti

Tablecloth permette con due sole righe di codice(collegamento al css e collegamento al js) di aggiungere uno stile d'effetto alle proprie tabelle html.
La lista delle features:

  • Adding even/odd class names to alternative rows.
  • Adding over and out class names for mouse over and mouse out states.
  • If set to true Tablecloth will highlight rows or columns (or both).
  • If set to true Tablecloth adds selected state on click. Based on preferences it then selects rows or columns (or both). Unselect elements by clicking anywhere on the page.
  • It leaves room for your upgrade. It has easily editable function that is called when you click on table cell that you can use for your own code.

Read More »»

Sunday, October 14, 2007

WebClient: connessioni multiple

. Sunday, October 14, 2007
0 commenti

La classe WebClient ci fornisce una serie di metodi per inviare e ricevere dati da qualsiasi risorsa intranet o internet specificando un indirizzo uri.
Tra i vari metodi troviamo anche DownloadFile che ci permette di scaricare su file locale i dati dall'uri.
Da sottolineare che tale metodo effettua il blocco durante il download della risorsa, se invece si vuol continuare l'esecuzione durante l'attesa della risposta del server si può vedere DownloadFileAsync.
Di default però, secondo le specifiche HTTP 1.1, un client può mantere solo due connessioni contemporaneamente aperte verso un server, ma c'è la possibilità di modificare tale "comportamento".
E' possibile indicare nel file di configurazione(app.config per windows form, web.config per web form) il numero massimo di connessioni a un host.
Tale informazione deve essere contenuta nella sezione connectionManagement:

<system.net>
<connectionManagement>
<add address="indirizzo ip" maxconnection="numero" />
</connectionManagement>
</system.net>

L'aumento del numero di connessioni può portare ad un aumento dell'utilizzo della CPU, Microsoft infatti, consiglia come valore per maxconnection 12 per n dove n è il numero di CPU.

Read More »»

Saturday, October 13, 2007

BizTalk, RFID e sushi bar

. Saturday, October 13, 2007
0 commenti

Vi starete chiedendo che cosa c'entra il sushi bar con BizTalk e gli Rfid.
Date uno sguardo a questo video.
Fonte: BizTalk Server Team Blog.

Read More »»

Friday, October 12, 2007

Windows Live Events

. Friday, October 12, 2007
0 commenti

Windows Live Events è un nuovo servizio di Microsoft, dedicato alla pianificazione di eventi.
Il serizio si basa sulla struttura di Live Spaces facilitando così l'inserimento di web part come quella di gestione del meteo, delle foto personali, mappe ecc.
Inoltre per semplificare la procedura di invito verrà recuperata la lista dei contatti sia da Messenger che da Hotmail.

Read More »»

AForge.NET

.
0 commenti

AForge.Net è un progetto veramente interessante di Andrew Kirillov. In sostanza si tratta di un framework scritto in C# che racchiude una serie di library:

  • AForge.Imaging – a library for image processing routines and filers;
  • AForge.Neuro – neural networks computation library;
  • AForge.Genetic – evolution programming library;
  • AForge.Vision – computer vision library;
  • AForge.Machine Learning – machine learning library.

Read More »»

Wednesday, October 10, 2007

CentoMETRI

. Wednesday, October 10, 2007
0 commenti

Marco Bellinaso ha pubblicato pochi giorni fa la sua ultima fatica:
CentoMetri, una community a livello cittadino.
Di cosa si tratta? Riporto qui una parte della descrizione:
"CentoMETRI è stato ideato e realizzato da un gruppo di utenti insoddisfatti dagli attuali siti web e servizi per la ricerca di informazioni relative alla propria città.
L'idea è di creare un sito che permetta di visualizzare direttamente su una mappa cittadina una quantità di informazioni quali: foto e opinioni sulle vie e quartieri, annunci per stanze e posti letto, annunci immobiliari, annunci di lavoro, un mercatino, e altro ancora.
Lo scopo è di permettere al cittadino di esplorare una zona della città non conosciuta, ma anche di dire la propria riguardo tutto quello che pensa della città, dei suoi servizi, dei suoi luoghi.
"
Il tutto in puro stile Web 2.0, facendo uso di ASP.NET 2.0 e della AJAX Library.
Cosa state aspettando? Fate un salto su CentoMETRI :).

Read More »»

SimpleViewer: una galleria in flash

.
0 commenti

SimpleViewer è un'ottima applicazione flash che permette di avere sul proprio sito web un'accattivante photogallery.
Oltre al fatto che la photogallery è interamente personalizzabile dal punto di vista grafico, il plugin consente di interfacciarsi con Flickr, precaricamento intelligente delle immagini, ecc.

Read More »»

Tuesday, October 9, 2007

Micro Framework blog

. Tuesday, October 9, 2007
0 commenti

Dal blog di Raffaele Rialdi( con al suo attivo due articoli su tale tecnologia Introduzione al Micro Framework .NET e Realizzare un'applicazione con Micro Framework.NET) un'interessante notizia sull'apertuta del blog su .NET Micro Framework.

Read More »»

Monday, October 8, 2007

Titan feature

. Monday, October 8, 2007
0 commenti

Philip Richardson sul suo blog ha indicato le nuove feature del MS CRM con nome in codice "Titan".
Personalmente trovo interessante l'integrazione con Windows Workflow Foundation.

Read More »»

FeedJit

.
0 commenti

FeedJit é un widget attraverso il quale è possibile ottenere il tracciamento di tutto il traffico in ingresso di un sito web.
Senza nessuna registrazione ma solo con l'inserimento di uno script sul proprio sito/blog si può conoscere la provenienza geografica dei visitatori, da quale altro sito web provengono, le pagine che hanno aperto ecc

Read More »»

Sunday, October 7, 2007

MS Web Application Stress

. Sunday, October 7, 2007
0 commenti

WAS è un'interessante tool che permette di simulare N client che accedono contemporaneamente ad IIS, generando report sulle performance in modo da poter individuare errori dovuti ad elevati carichi.
Inoltre qui è possibile seguire un tutorial.

Read More »»

Saturday, October 6, 2007

DB2: Dataset tipizzati

. Saturday, October 6, 2007
0 commenti

Sul plugin DB2 abbiamo discusso qui e qui, questa volta invece vedremo come generare Dataset tipizzati utilizzando le stored procedures.
I Dataset tipizzati sono entità logiche derivate dalla classe Dataset create attraverso il designer di Visual Studio.
Quando si genera un Dataset tipizzato viene creato un file schema XML  all'interno della directory App_Code.
A run-time il Framework si occupa di recuperare queste informazioni contenute nello schema e di generare le varie classi.
A questo punto possiamo generare una stored procedures:

Per generare un Dataset tipizzato da VS 2005 basta scegliere l'opzione Add new item e selezionare la voce DataSet:

Dopo aver aggiunto il Dataset compare il wizard TableAdapter, quest'ultimo è un contenitore di oggetti DataTable, nel caso specifico useremo la stored procedure creata precedemente:


Alla fine del wizard l'IDE mostra attravero l'oggetto TableAdapter la struttura della tabella, indicando informazioni sulle colonne, sulle chiavi, eventuali relazioni ecc:

Il codice per usare queste entità è estremamente semplice:

Public Function GetDb(ByVal valueNome As String) As DsTest.PROCEDURADSDataTable
Dim dt As DsTest.PROCEDURADSDataTable = New DsTest.PROCEDURADSDataTable()
Try
Dim da As DsTestTableAdapters.PROCEDURADSTableAdapter = New DsTestTableAdapters.PROCEDURADSTableAdapter()
dt
= da.GetData(valueNome)
Catch ex As Exception
'Log error
End Try
Return dt
End Function

Di contro però, i Dataset tipizzati non sono adatti per gestire grosse quantità di dati poichè si ha un notevole calo di prestazioni.

Read More »»

Deepfish

.
0 commenti

Deepfish è un browser per mobile attualmente in beta(solo per pochi utenti) che presenta una funzionalità veramente particolare cioè quella di avere la schermata completa di un sito anche su uno schermo piccolo.
Sul mio smartphone HTC S710 lo schermo da 2,4 pollici non è il massimo della capienza di conseguenza navigando su siti come quello di Microsoft i contenuti vengono agganciati uno sotto l'altro rendendo la navigazione abbastanza complicata.
Con Deepfish invece tutto il sito è visibile dando la possibilità all'utente di effettuare zoom per poter accedere ai contenuti.
La possibilità di poter partecipare alla prova della versione beta è scaduta da tempo ma si può inserire il proprio indirizzo email per avere info su nuove disponibilità.

Read More »»

Friday, October 5, 2007

Add-in per .NET Reflector

. Friday, October 5, 2007
0 commenti

Una lista di add-ins utilissimi per .NET Reflector.
Ho già fatto "miei":

  • CodeMetrics: Analyses .NET assemblies and shows design quality metrics.
  • Diff: This add-in shows differences between two versions of the same assembly.
  • AutoDiagrammer: This add-in draws class diagrams.

Read More »»

Thursday, October 4, 2007

Microsoft lancia HealthVault

. Thursday, October 4, 2007
0 commenti

Oggi Microsoft ha lanciato una nuova applicazione web HealthVault responsabile di archiviare in una base dati sicura e cifrata cartelle sanitarie, ovviamente spetterà all'individuo(paziente) decidere quali informazioni registrare.

Read More »»

Wednesday, October 3, 2007

Merge DataTable

. Wednesday, October 3, 2007
0 commenti

Il Framework 2.0 mette a disposizione il metodo Merge fra DataTable che presentano schema differenti, quindi supponendo di avere:

Dim dt1 As DataTable = New DataTable()
Dim idColumn As New DataColumn("ID", GetType(Integer))
dt1.Columns.Add(idColumn)
dt1.Columns.Add(
"Col1", GetType(String))
dt1.Columns.Add(
"Col2", GetType(String))
dt1.Columns.Add(
"Col3", GetType(String))
dt1.Columns.Add(
"Col4", GetType(String))
Dim row1 As DataRow
'Indico la chiave primaria
dt1.PrimaryKey = New DataColumn() {idColumn}

For i As Integer = 0 To 3000
row1
= dt1.NewRow()
row1(
"ID") = i
row1(
"Col1") = "Col1: " + i.ToString()
row1(
"Col2") = "Col2: " + i.ToString()
row1(
"Col3") = "Col3: " + i.ToString()
row1(
"Col4") = "Col4: " + i.ToString()
dt1.Rows.Add(row1)
Next

Dim dt2 As DataTable = New DataTable()
dt2.Columns.Add(
"ID", GetType(Integer))
dt2.Columns.Add(
"Col5", GetType(String))
dt2.Columns.Add(
"Col6", GetType(String))
Dim row2 As DataRow

For i As Integer = 0 To 3000
row2
= dt2.NewRow()
row2(
"ID") = i
row2(
"Col5") = "Col5: " + i.ToString()
row2(
"Col6") = "Col6: " + i.ToString()
dt2.Rows.Add(row2)
Next
'Richiamo il metodo Merge
dt1.Merge(dt2)
otteniamo una DataTable(dt1) composta da 3000 record e 7 colonne(ID, Col1, Col2, Col3, Col4, Col5, Col6).
Ma nel Framework 1.1 è necessario scrivere un metodo ad hoc per ottenere lo stesso risultato.
Dopo una serie di test di perfomarce su alcune soluzioni, la migliore è risultata la seguente:


Private Function MakeDataTaleToHashTable(ByVal dt2 As DataTable, ByVal key As String) As Hashtable
Dim htDt2 As Hashtable = New Hashtable
For Each row As DataRow In dt2.Rows
Dim listColumn As SortedList = New SortedList
For Each col As DataColumn In dt2.Columns
If Not (col.ColumnName = key) Then
listColumn.Add(col.ColumnName, row(col.ColumnName))
End If
Next
htDt2.Add(row(key).ToString(), listColumn)
Next
Return htDt2
End Function

'Esegue il merge fra due DataTable indicando la colonna chiave
Public Sub MergeDataTable(ByRef dt1 As DataTable, ByVal dt2 As DataTable, ByVal key As String)
Dim htDt2 As Hashtable = MakeDataTaleToHashTable(dt2, key)

For Each row As DataRow In dt1.Rows
If (htDt2.ContainsKey(row(key).ToString().Trim())) Then
Dim slColumn As SortedList = htDt2(row(key).ToString().Trim())
For Each keyColumn As String In slColumn.Keys
If Not (dt1.Columns.Contains(keyColumn)) Then
dt1.Columns.Add(
New DataColumn(keyColumn, GetType(String)))
End If
row(keyColumn)
= slColumn(keyColumn)
Next
End If
Next
End Sub
Il metodo principale è MergeDataTable che rihiama il metodo MakeDataTableToHashTable.
Quest'ultimo ha la funzione di "trasformare" la DataTable in una hashTable così formata:
1)key => valore chiave della riga;
2value => un SortedList composto:
  2.1)SortedList key => nome delle colonne
(ad eccezione della colonna chiave);
  2.2)SortdeList value => valore della riga in corrispondenza della colonna aggiunta.
Il metodo MergeDataTable esegue un ciclo su tutte le row della DataTable di destinazione(dt1 nell'esempio) e verifica se il valore della colonna chiave è contenuto nell'hashTable.
In caso affermativo esegue le operazioni di creazione delle nuove colonne e valorizzazione della riga in corrispondenza, recuperando i dati dal SortedList.
Interessante i tempi di esecuzione, nel caso specifico il tutto viene effettuato in 0,031 secondi.

Read More »»

Tuesday, October 2, 2007

Tablesorter

. Tuesday, October 2, 2007
0 commenti

Tablesorter è un plugin jQuery che come è facile intuire dal nome permette di ordinare tabelle HTML senza che la pagina effettui un postback.
Le funzionalità sono veramente interessanti:

  • Multi-column sorting
  • Parsers for sorting text, URIs, integers, currency, floats, IP addresses, dates (ISO, long and short formats), time. Add your own easily
  • Support for ROWSPAN and COLSPAN on TH elements
  • Support secondary “hidden” sorting (e.g., maintain alphabetical sort when sorting on other criteria)
  • Extensibility via widget system
  • Small code size (7,4kb packed)

Inoltre cosa non trascurabile e' compatibile con la maggior parte dei browser: Firefox, Internet Explorer, Safari, Opera ecc.

Read More »»

Monday, October 1, 2007

Office Online

. Monday, October 1, 2007
0 commenti

Adesso finalmente anche con Microsoft esiste una piattaforma gratuita Office Live Workspace per la condivisione dei documenti in formato Word, Excel, Powerpoint utilizzabile dal web sia con browser Internet Explorer che con Firefox.
Un progetto da seguire per gli sviluppi futuri.

Read More »»