Friday, November 30, 2007

Silverlight 1.1 Tools Alpha per VS 2008

. Friday, November 30, 2007
0 commenti

Notizia di qualche giorno fa, è possibile scaricare da questo indirizzo l'estensioni per lo sviluppo Silverlight 1.1 con Visual Studio 2008 versione finale.

Read More »»

Tuesday, November 27, 2007

Debug CSS e DOM

. Tuesday, November 27, 2007
0 commenti

v5b1 Il francese Jean-Fabrice Rabaute ha realizzato DebugBar, un plugin per il browser Internet Explorer che consente di effettuare debug del DOM.
Se vogliamo fare paragoni è simile a Firebug (ottima estensione per Firefox).
Il tool è orientato soprattutto per il debug del DOM e dei CSS, e supporta dalla versione 5 alla 7 di IE.
Altro plugin interessante, creato dallo stesso autore è Companion.JS dedicato invece per il debugger di javascript.

Read More »»

Sunday, November 25, 2007

Grafici flash in Asp.Net 2.0

. Sunday, November 25, 2007
16 commenti

Se si vogliono inserire nelle proprie pagine asp.net grafici flash, esistono diverse library free e non. Fra le tante segnalo:

  • FusionCharts Free: può essere usata con diversi linguaggi, non solo con Asp.Net, ma anche ASP, PHP, JSP, Ruby on Rails, con la possibilità di generare grafici a barre, linee, torta, aree.
  • amCharts: 4 tipi di grafici: torta, linee & area, barre, bolle. Costo della licenza: da 85 a 275 euro.
  • Open Flash Chart: 35 tipi differenti, con una serie di effetti di mouse-over applicati sul grafico flash. Il progetto è rilasciato in GNU General Public License.

Ho fatto qualche esperimento usando proprio Open Flash Chart.
Per implementare il tutto basta:

  1. Scaricare la library.
  2. Compilare il progetto contenuto nella cartella dot-net-ofc-library.
  3. Referenziare la OpenFlashChart.dll generata con il passo 2.
  4. Nella vostra applicazione web creare una cartella aspnet_client, con una sottodirectory OpenFlashChart, in cui bisogna copiare il file open-flash-chart.swf e la cartella js( si trovano al seguente path: dot-net-ofc-library\WebTest\aspnet_client\OpenFlashChart).

Adesso si può iniziare a scrivere un pò di codice.
Per usare OFC.NET bisogna registrare la library attraverso il comando:

<%@Register TagPrefix="ofc" Namespace="OpenFlashChart" Assembly="OpenFlashChart" %>

e creare il controllo chart tramite il tag:



   1: <ofc:Chart Width="200" Height="200" Url="pageData.aspx" runat="Server" />

Il parametro più importante è senza ombra di dubbio Url che indica la risorsa dati per il grafico. Può essere sia un file html statico oppure generare il tutto dinamicamente tramite la library.
Nel caso specifico la pagina pageData.aspx contiene il codice per generare un chart a barre 3D:


   1: Dim graph As OpenFlashChart.Graph = New OpenFlashChart.Graph()
   2: graph.LegendX = New LegendX("Chart Test", 12, "#FF0000")
   3: graph.StepsY = 5
   4: graph.MaxY = 50
   5: Dim chart As OpenFlashChart.Charts.Bar3D = _
      New OpenFlashChart.Charts.Bar3D(10, "#001100", "Legend", 10)
   6: chart.Data.Add(20)
   7: chart.Data.Add(30)
   8: chart.Data.Add(40)
   9: chart.Data.Add(10)
  10: graph.Data.Add(chart)
  11: Response.Write(graph.ToString())
  12: Response.End()


Il codice è molto semplice, infatti tramite l'uso della library possiamo settare una serie di property per definire l'aspetto grafico del controllo chart, settare testo e formattazione di varie etichette, ecc.
Ora possiamo compilare ed osservare il risultato, ma qui son sorti i primi problemi.
Se visualizzo il tutto con Firefox, nessun problema ma se provo a lanciare la pagina aspx con il browser Internet Explorer 6 SP2(con la versione 7 non ho ancora avuto modo di fare un test a proposito) il grafico viene generato ma compare un errore javascript:
ofc1Ho pensato banalmente di aver dimenticato di settare la property ID del controllo chart.
Il risultato con mia grande sorpresa non cambia, ma peggiora Angry.
Sono così andato a spulciare il codice della library, in particolar modo la classe Chart.cs che contiene il metodo RenderContents attraverso il quale viene appunto renderizzato il controllo nella pagina aspx.
Dall'analisi del codice, si può notare che se si tratta di un SWFObject(di default è true) viene iniettato nella pagina uno script.
Perchè l'inserimento di questo script nella pagina?
Lo script SWFObject consente di rilevare il plugin flash, quindi ci consente di aggiungere contenuto flash con pochissime righe di codice, ma soprattutto evita sul browser Internet Explorer l'attivazione dei controlli ActiveX.
Proprio in questa porzione di codice ho fatto una "piccola modifica" cioè:


  1. l'id del div contenitore è dato da ClientID del controllo chart più il carattere "_" più il valore della property SequenceId
  2. l'id passato a new SWFObject è dato dal value della property ClientID( non ofc annegato nel codice).

In questo modo l'errore javascript non compare più e gira perfettamente anche su Internet Explorer:
ofc2

Read More »»

Saturday, November 24, 2007

Button della dialog box di File Download

. Saturday, November 24, 2007
0 commenti

Dalla versione 6 di Internet Explorer SP2 e successiva è possibile disattivare i button della dialog box di File Download:
FileDownload

Più precisamente è possibile non visualizzare il button Open o Save, inserendo un meta tag nell'head della pagina.
Nel caso del button Open:

   1: <head>
   2:     <META name="DownloadOptions" content="noopen">
   3:     <title>Pagina senza titolo</title>
   4: </head>

Nel caso del button Save:



   1: <head>
   2:     <META name="DownloadOptions" content="nosave">
   3:     <title>Pagina senza titolo</title>
   4: </head>

Read More »»

Thursday, November 22, 2007

VBMigration

. Thursday, November 22, 2007
2 commenti

vbmigration Pochi minuti fa son venuto a conoscenza che Francesco Balena ha aperto il sito/blog sul tool VB Migration Partner.
Di cosa si tratta?
Di un tool che permette di convertire applicazioni scritte in VB6 in applicazione VB.NET.
Per cercare di partecipare alla fase beta del programma non vi resta che leggere le FAQ.

Read More »»

Label verticali

.
0 commenti

Un mio collega mi ha mostrato una classe css che permette di posizionare il testo in verticale(non sapevo fosse possibile):

vertical1

   1: .labelVertical
   2: {
   3:     writing-mode:tb-rl;
   4: }

 


Se invece si desidera visualizzare il contenuto dell'oggetto ruotato lungo l'asse orizzontale:

vertical2



   1: .labelVertical
   2: {
   3:     writing-mode:tb-rl;
   4:     filter:flipv fliph;
   5: }



Tali attributi sono supportati solo su Internet Explorer(essendo frutto di casa Microsoft) almeno fino al rilascio del CSS 3.0.

Read More »»

Tuesday, November 20, 2007

Breakpoints condizionali

. Tuesday, November 20, 2007
0 commenti

In Visual Studio 2005 come nel 2008 è possibile inserire dei breakpoints condizionali:

break

  • F9 per inserire il breakpoint,
  • Tasto destro sul break,
  • Selezionare la voce Condizione,
  • A questo punto compare una dialog box in cui definire la condizione.

 


Nel caso di Visual Studio 2003 la procedura di inserimento è leggermente diversa:

break1

  • Tasto destro sulla riga di codice su cui è stato inserito il breakpoint,
  • Selezionare la voce Proprietà punto di interruzione,
  • Selezionare la voce Condizione.

 

 

Read More »»

Monday, November 19, 2007

Visual Studio 2008 RTM ed Express

. Monday, November 19, 2007
0 commenti

La notizia del giorno è ovviamente il lancio di Visual Studio 2008.
Per chi possiede un abbonamento ad MSDN può effettuare il download delle varie immagini ISO di Visual Studio 2008 Team Suite in lingua inglese, per tutti gli altri è possibile scaricare le versioni Express.
Oppure è sempre possibile la versione trial di Visual Studio 2008 Team Suite a 90 giorni.

Read More »»

Saturday, November 17, 2007

SpaceTime

. Saturday, November 17, 2007
0 commenti

SpacetimeSpacetime è un browser 3D molto particolare, nel senso che ogni pagina aperta viene trattata come un unico oggetto.
Interessante anche la modalità di ricerca su siti come ebay, Yahoo, Google, flickr, amazon e YouTube.
E' possibile farsi un'idea provandolo in versione beta oppure guardando i vari filmati sulla home.

Read More »»

Friday, November 16, 2007

ASP.NET Control: Rich Text Editor

. Friday, November 16, 2007
0 commenti

rtb Un controllo rich text box scritto da Kannan Sundarajan in ASP.NET AJAX.
E' possibile provare le features su questo sito.

Read More »»

Thursday, November 15, 2007

CSSVista

. Thursday, November 15, 2007
0 commenti

Se si vuole programmare per il web è utile saper usare i fogli di stile, ma spesso si perde un pò di tempo nel verificare il risultato sia su IE che su Firefox.
Per ovviare, esiste un utile strumento CSSVista, che permette di editare il nostro css e di vederne i risultati contemporaneamente su Internet Explorer e Firefox.
Prerequisito, avere sul proprio pc il .NET Framework 2.0.

Read More »»

Wednesday, November 14, 2007

Windows Live Spaces Photos API

. Wednesday, November 14, 2007
0 commenti

Sono state rilasciate in versione alpha le API di Windows Live Spaces Photos e Spaces Photos Interactive SDK. Tra le varie features:

  • Upload e download foto.
  • Creare, modificare o eliminare foto dagli album.
  • Elenco degli album/foto di un utente.
  • Modifica/cancellazione del contenuto di una voce esistente.

Read More »»

Tuesday, November 13, 2007

32feet.NET

. Tuesday, November 13, 2007
0 commenti

32feet 32feet.NET è un'interessante library per utilizzare sia le periferiche Bluetooth che quelle d'infrarossi IrDA in applicazioni .NET, tra l'altro è supportato anche il Compact Framework.

Read More »»

Monday, November 12, 2007

Microsoft Search Server 2008 Express

. Monday, November 12, 2007
0 commenti

Rilasciata una macchina virtuale da montare con Microsoft Virtual Server, del prodotto utile per l'indicizzazione/ricerca di documenti aziendali: Microsoft Search Server 2008 Express (free).

Read More »»

Sunday, November 11, 2007

Visual Studio in black

. Sunday, November 11, 2007
0 commenti

darkVSPer dare una veste "dark" a Visual Studio, i passi da seguire:
Strumenti => Opzioni => Ambiente => Tipi di carattere e colori => Testo
Indicare alla voce Primo piano elemento il colore bianco mentre alla voce Sfondo elemento il colore nero.

Read More »»

Saturday, November 10, 2007

Toolbar e Attributes

. Saturday, November 10, 2007
0 commenti

Tutti i controlli che ereditano da System.Web.UI.WebControls espongono una proprietà Attributes, alla quale è possibile aggiungere una serie di attributi(nome attributo = valore) che solo in fase di rendering vengono inseriti tra il tag di apertura e quello di chiusura HTML del controllo stesso.
Se per esempio volessimo, avere una dialog box di conferma su un Button si può procedere nel modo classico:

   1: btn.Attributes.Add( "onclick", "confirm('Sei sicuro di voler cancellare?');");

Nel caso di un ToolbarButton è necessario seguire una strada diversa:


   1: string script = "<script language=\"javascript\">function buttonClickHandler(){" +
   2:                 "if(event.flatIndex == 0){" +
   3:                 "if(window.confirm(\"Sei sicuro di voler cancellare?\")){" + 
   4:                  GetPostBackClientEvent( Toolbar1, "0") + "}}}</script>";
   5: Page.RegisterClientScriptBlock( "confirmDelete", script);
   6: Toolbar1.Attributes.Add("onbuttonclick", "javascript:buttonClickHandler()");

Attraverso il metodo RegisterClientScriptBlock si inietta nella pagina Asp.Net il blocco di script.
La parte più interessante della funzione javascript buttonClickHandler è quando si verifica la property flatIndex che ritorna l'indice del button che ha scatenato l'evento.
Nel caso specifico verifico che sia 0 cioè il primo button e genero lo script __doPostBack.
Per far ciò uso il metodo GetPostBackClientEvent di cui ho già parlato in un precedente post.

Read More »»

Friday, November 9, 2007

Web Translator

. Friday, November 9, 2007
0 commenti

Dal Translation team blog apprendo che esiste un add-in che consente di tradurre le pagine del proprio sito o blog tramite Windows Live Translator.
Il tutto indicando la lingua corrente( it ) e copiando lo script che viene generato nel proprio blog:

<script type="text/javascript"
src
="http://translator.live.com/TranslatePageLink.aspx?pl=it">
</script>

Read More »»

Wednesday, November 7, 2007

Windows Live Tools per VS 2008

. Wednesday, November 7, 2007
0 commenti

E' possibile scaricare il toolkit per Windows Live che comprende una serie di controlli server da usare in applicazioni Asp.Net:

Inoltre è presente un nuovo modello: ASP.NET Windows Live Web Site.
Il tutto è possibile solo con Visual Studio 2008.

Read More »»

Windows Live Calendar

.
0 commenti

Da oggi è possibile usare in versione beta il servizio Windows Live - Calendario, attraverso il quale è possibile:

  • creare più calendari,
  • ricevere promemoria attraverso Windows Live Alerts,
  • condividere il proprio calendario in vari formati( HTML, xml ecc),
  • supporto Outlook e Google calendar.

Read More »»

Blog MSDN Italia

.
0 commenti

Dal blog di Andrea Boschin apprendo che da alcuni giorni è stato aperto il blog di MSDN Italia, i cui autori sono i membri del DPE di Microsoft Italia.
Assolutamente da seguire e sottoscrivere.

Read More »»

Tuesday, November 6, 2007

VMRCPlus

. Tuesday, November 6, 2007
0 commenti

Solo oggi son venuto a conoscenza che il tool VMRCPlus, utile per l'amministrazione di Virtual Server 2005 è stato reso pubblico. Fino a qualche tempo fa, era solo ad uso interno di Microsoft.
A questo link una panoramica delle funzionalità di questo interessante tool.

Read More »»

Monday, November 5, 2007

__doPostBack e argomenti

. Monday, November 5, 2007
0 commenti

Se in Asp.Net si deve simulare un postback ci sono diverse strade più o meno eleganti.
Supponiamo di avere un controllo input di tipo button, sul cui evento onclick dobbiamo eseguire prima una funzione di validazione lato client(validation) e solo in caso affermativo eseguire un postback:

btnValidation.Attributes.Add( "onclick", "if(validation())"
+ Page.GetPostBackClientEvent( btnValidation, "submit"));

In Asp.Net 1.1, è possbile usare GetPostBackClientEvent, metodo esposto dalla classe Page, che permette di avere sempre un corretto riferimento al controllo di cui si vuole simulare il postback sul server.
In Asp.Net 2.0 il metodo in questione è targato come obsoleto, a tal riguardo vi rimando al metodo ClientScriptManager.
La funzione GetPostBackClientEvent invoca GetPostBackEventReference che restituisce il prototipo della funzione javascript che se invocata causa un postback.
Accetta due parametri: l'id del controllo ed un argomento e restituisce una stringa simile a questa:
__doPostBack('idPostBack', 'submit')
Lato server è possibile anche recuperare l'argomento passato, nel seguente modo:

if( Request["__EVENTARGUMENT"] == "submit")
{
}

La stessa operazione si può anche effettuare lato markup:

<INPUT id="btnValidation" runat="server" type="button" value="Button" runat="server"
onclick
='if( validation())<%GetPostBackClientEvent(btnValidation,"submit")%>'>

Volendo, in modo molto meno elegante si può risolvere eseguendo sul form un submit:

<INPUT id="btnValidation" onclick="if( validation()){
document.forms[0].myHiddenField.value='submit';
document.forms[0].submit();}"
type="button" value="Button">

Dopo aver eseguito la funzione validation valorizzo un campo hidden myHiddenField, ed eseguo il submit del form.
Lato server verifico se il campo hidden, necessario per capire chi ha scatenato il submit, è stato valorizzato:

if( Request.Form[ "myHiddenField"] != string.Empty &&
Request.Form[
"myHiddenField"] == "submit")
{
//Richiamo il mio metodo
}

Read More »»

Sunday, November 4, 2007

Poster .Net Framework 3.5

. Sunday, November 4, 2007
0 commenti

Al seguente link è possibile scaricare il poster "Microsoft .NET Framework 3.5 Commonly Used Types and Namespaces".
Fonte: Paul Andrew

Read More »»

BizTalk Server 2006 extensions

.
0 commenti

Sono state rilasciate le Estensioni BizTalk Server 2006 R2 per Windows Workflow Foundation SDK.
Ormai la scelta tra BizTalk e WF diventa meno difficile dato che questo kit riunisce sia l'enorme versatilità di WF che la robustezza dei servizi di BizTalk.

Read More »»

Saturday, November 3, 2007

Javascript: DateNow

. Saturday, November 3, 2007
0 commenti

Recentemente ho dovuto scrivere un piccolo script javascript che mostrasse la data corrente nel formato giorno/mese/anno.
Sono però, rimasto sorpreso dalla funzione getMonth(), in quanto non "funziona" nello stesso modo della getDate() o della getYear().
Infatti getMouth restituisce i mesi numerati da 0 a 11, indi la funzione deve essere scritta nel seguente modo:

function getDateNow()
{
var date = new Date();
alert(date.getDate()
+ "/" + (date.getMonth() + 1) + "/" + date.getYear());
}

Read More »»

Friday, November 2, 2007

Cache e Memory Pressure

. Friday, November 2, 2007
0 commenti

Quando c'è una memory pressure significa che il sistema ha bisogno di più memoria.
In Asp.Net può capitare che oggetti messi in cache possono essere rimossi "istantanemante", il perchè, viene spiegato in questo interessante post.

Read More »»

Community Credit Prize

.
0 commenti

Congratulations. You won 10th Prize in the October 2007 Contest.
Open any music media in your computer, the USB Dancing Robot will start dancing along the music Reads the media digital output. Dance in syncs with your favorite tunes. Bright LED lights that flash along with the beat of your music. No batteries required.

Read More »»

Thursday, November 1, 2007

Esistenza di record duplicati

. Thursday, November 1, 2007
0 commenti

Può capitare di dover controllare e recuperare record doppi in una tabella, in tal caso si può far uso delle tabelle derivate cioè quelle istruzioni Select in una clausola From di uno statement:

select T1.*
from nameTable as T1
join
(
select
col1,
col2
from nameTable
group by col1, col2
having count(*) > 1
)
as T2 on T2.col1 = T1.col1
and T2.col2 = T1.col2

Read More »»