Pointui è una nuova interfaccia style iPhone per palmari che "montano" Windows Mobile.
Attualmente sono stati rilasciati degli screenshot della versione beta assieme ad un interessante video:
Fonte: blog Jason Langridge's
Labels
- .Net Framework 3.5 (7)
- Asp.Net 1.1 (21)
- Asp.Net 2.0 (44)
- Asp.Net 3.5 (23)
- Asp.Net Ajax (6)
- Asp.Net MVC (4)
- Biztalk (2)
- Blend (5)
- C# (26)
- css (10)
- DB2 (3)
- Framework 1.1 (10)
- Framework 2.0 (9)
- IE 7.0 (5)
- Interop Office (2)
- javascript (29)
- Library (11)
- Links (19)
- LINQ (1)
- Micro Framework (2)
- Microsoft (57)
- Microsoft Expression (3)
- Mobile (14)
- Office (9)
- Oracle (1)
- Photosynth (3)
- PowerShell (6)
- Regular Expression (2)
- Sharepoint 2007 (8)
- Silverlight (34)
- SQL Server 2000 (6)
- SQL Server 2005 (5)
- SQL Server 2008 (3)
- Tools (34)
- varie (46)
- VB.NET (19)
- Virtual Earth (10)
- VS 2003 (6)
- Vs 2005 (12)
- VS 2008 (20)
- VS 2010 (1)
- web (48)
- Windows (3)
- Windows Media Center (4)
- Workflow Foundation (14)
- WPF (20)
Sunday, December 30, 2007
Pointui: interfaccia iPhone style
Etichette: MobileSaturday, December 29, 2007
Sql Server Tools
Etichette: SQL Server 2000, SQL Server 2005, ToolsUna lista di vari tools sia free che commerciali, documentazione e tanto altro per Sql Server divisi per categoria sul blog di Mladen Prajdić:
- SQL Server Management Studio Add-in's
- Administration
- Best practices, analysis, health and performance
- Database Publishing to hosted servers
- Upgrade and Migration
- SQL Server Analysis Services
- SQL Server Integration Services
- SQL Server 2005 BI Development Studio (BIDS)
- Samples
- Non MS stuff
- SQL and other code Formatting
Monday, December 24, 2007
ListItemCollection e gli Attributes
Etichette: Asp.Net 1.1, Asp.Net 2.0, C#I controlli in ASP.NET come per esempio DropDownList, RadioButtonList, ListBox e CheckBoxList ereditano da System.Web.UI.WebControls.ListControl, quindi espongono il contenuto attraverso una collection Items.
In generale se si vuole modificare lo stile dei vari item si fa uso della collection Attributes, peccato che in ASP.NET 1.1 tali attributi non vengano renderizzati, si tratta di un bug.
Ovviamente in ASP.NET 2.0 tale problema non si "manifesta" (è fondamentale sottolineare come sia necessario eseguire l'add ad ogni postback, questo perchè sia in Asp.Net 1.x che in 2.0 la collezione degli attributes dei ListItem contenuti nel controllo non vengono salvati nel ViewState), infatti se per esempio vogliamo modificare l'attributo background dei singoli elementi che compongono il controllo RadioButtonList(rbList) basta valorizzare la chiave style nel seguente modo:
1: rbList.Items[0].Attributes.Add("style", "background-color:red");
2: rbList.Items[1].Attributes.Add("style", "background-color:DeepPink");
Se vogliamo ottenere lo stesso risultato anche in ASP.NET 1.1?
Nel caso specifico una possibile soluzione è quella di creare il proprio controllo ereditando da RadioButtonList ed effetturare l'override del metodo Render:
1: public class RadioButtonListPlus : RadioButtonList
2: {
3: protected override void Render(HtmlTextWriter writer)
4: {
5: ListItemCollection items = this.Items;
6: if (items.Count > 0)
7: {
8: for (int i=0; i<items.Count; i++)
9: {
10: ListItem item = items[i];
11: //Creazione del tag span
12: writer.WriteBeginTag("span");
13: AttributeCollection attrs = item.Attributes;
14: foreach (string key in attrs.Keys)
15: //Add dello stile
16: writer.WriteAttribute( key, attrs[key]);
17: writer.Write( ">");
18: //Creazione del controllo radio
19: writer.WriteBeginTag("input");
20: writer.WriteAttribute( "id", this.ClientID + "_" + i.ToString());
21: writer.WriteAttribute("type", "radio");
22: writer.WriteAttribute("name", this.UniqueID);
23: writer.WriteAttribute("value", item.Value);
24: if( item.Selected)
25: writer.WriteAttribute("checked", "checked");
26: if( this.AutoPostBack)
27: {
28: RadioButton rb = new RadioButton();
29: rb.ID = this.ClientID + "_" + i.ToString();
30: writer.WriteAttribute( "onclick", Page.GetPostBackClientEvent( rb, string.Empty));
31: }
32: writer.Write( ">");
33: //Creazione del controllo label contenente il testo da visualizzare accanto al RadioButton
34: if( item.Text.Length > 0)
35: {
36: writer.Write( "<label");
37: writer.WriteAttribute( "for", this.ClientID + "_" + i.ToString());
38: writer.Write( ">");
39: writer.Write( item.Text);
40: writer.WriteEndTag( "label");
41: }
42: writer.WriteEndTag("input");
43: writer.WriteEndTag("span");
44: }
45: }
46: }
47: }
In sostanza nel metodo Render vado a creare e manipolare l'HTML del controllo RadioButtonList, in modo da aggiungere un tag span, che fa da contenitore al controllo RadioButton e al controllo Label.
Infine nella nostra pagina aspx è necessario registrare il nuovo controllo:
1: <%@ Register TagPrefix="cc1" Namespace="namespace" Assembly="assembly" %>
1: <cc1:RadioButtonListPlus runat="server" id="rbListPlus">
2: <asp:ListItem Value="1" Selected="True">test1</asp:ListItem>
3: <asp:ListItem Value="2">test2</asp:ListItem>
4: </cc1:RadioButtonListPlus>
Thursday, December 20, 2007
Tafiti: codice sorgente
Etichette: Microsoft, SilverlightDal blog si Giuseppe Guerrasio apprendo che è stato rilasciato sul sito delle Windows Live Quick Apps il codice sorgente di Tafiti, un'applicazione che mostra le potenzialità di Silverlight e di Windows Live Search.
Read More »»Tuesday, December 18, 2007
Debug o Release?
Etichette: Framework 1.1, Framework 2.0, VB.NETTramite la reflection è possibile conoscere se un determinato assembly è stato compilato in modalità debug o release, andando a spulciare nella lista degli attributi:
1: Private Function VerifyDebug() As Boolean
2: Dim assembly As Assembly = Reflection.Assembly.LoadFile("path assembly")
3: Dim attributes() As Object = assembly.GetCustomAttributes(True)
4: If Not (attributes Is Nothing) AndAlso (attributes.Length > 0) Then
5: For i As Integer = 0 To attributes.Length - 1
6: If (attributes(i).GetType() Is GetType(System.Diagnostics.DebuggableAttribute)) Then
7: Return True
8: End If
9: Next
10: End If
11: Return False
12: End Function
Con il ciclo sugli attributi vado a verificare se è presente l'attributo DebuggableAttribute, attributo non presente se l'assembly è stato generato in modalità release. Read More »»
Saturday, December 15, 2007
MasterPage e Url
Etichette: Asp.Net 2.0In determinati scenari ci si può imbattare in un "particolare problema" che interessa le masterpage e gli url relativi.
In pratica se la masterpage e la pagina dei contenuti(aspx) si trovano nella stessa folder un codice come il seguente:
1: <IMG SRC="../test/images/in1.JPG" />
Ma supponiamo di avere una struttura di cartelle simile a quella indicata nell'immagine qui in basso:
in cui la pagina dei contenuti si trova in una folder diversa da quella della masterpage, in tal caso l'immagine non viene visualizzata.
Questo perchè il browser cerca l'immagine in un cartella superiore:
Per evitare ciò si può procedere in diversi modi, il più semplice è quello di indicare un url assoluto alla risorsa:
1: <IMG SRC="http://localhost:1146/WebTestPort/test/images/in1.JPG" />
1: <asp:Image ID="img" runat="server" ImageUrl="../test/images/in1.JPG" />
Altro modo per risolvere il problema è l'uso di un nuovo metodo messo a disposizione dal Framework 2.0: ResolveClientUrl per restituire un url idoneo, utile al client per accedere alle risorse del server web(immagini, link ad altre pagine):
1: <IMG src="<%= ResolveClientUrl("../test/images/in1.JPG")%>" />
Wednesday, December 12, 2007
I-Load per l'upload di immagini
Etichette: Asp.Net 1.1, Asp.Net 2.0, LibraryDal nuovo blog/sito di Alberto Falossi son venuto a conoscenza di un ottimo controllo ASP.NET (non free) per la gestione delle immagini e dell'upload.
Il controllo I-Load della RadActive compatibile sia con la versione 1.1 che con la 2.0 del framework permette di caricare, ritagliare, ridimensionare le immagini, con funzionalità di zoom, anteprima ecc.
E' possibile fare qualche esperimento direttamente online.
Monday, December 10, 2007
ASPhere per i web.config
Etichette: Asp.Net 1.1, Asp.Net 2.0, Tools ASPhere è un tool che permette di creare e modificare i files web.config.
Rispetto all'ambiente Visual Studio, in ASPhere è possibile eseguire le modifiche o la creazione del file di configurazione sia nella classica modalità testuale ma anche in modo visuale rendendo tutto molto più semplice ed intuitivo.
ASP.NET 3.5: preview extensions
E' possibile scaricare una preview delle extensions per ASP.NET 3.5 che comprende:
- Silverlight Controls for ASP.NET
- ADO.NET Entity Framework
- ASP.NET MVC
- ASP.NET Dynamic Data
- ASP.NET AJAX
- ADO.NET Data Services
Per quanto riguarda il quickstart lo trovate qui.
Read More »»Saturday, December 8, 2007
TIFF Multipage
Etichette: Asp.Net 2.0, C#, VB.NETTramite alcuni metodi della classe System.Drawing.Image è possibile estrapolare/salvare le immagini contenute in un TIFF, tale formato infatti, può essre costituito da più immagini divise su più pagine.
In Vb.Net:
1: Private Sub SaveTIFFMultipage(ByVal imageType As String, ByVal pathImageTIFF As String)
2: Dim file As FileInfo = New FileInfo(pathImageTIFF)
3: If (file.Exists) Then
4: Using img As System.Drawing.Image = System.Drawing.Image.FromFile(pathImageTIFF)
5: 'Recupero il numero di pagine che costituiscono il TIFF
6: Dim countPages As Integer = img.GetFrameCount( _
7: New System.Drawing.Imaging.FrameDimension(img.FrameDimensionsList(0)))
8: For i As Integer = 0 To countPages - 1
9: img.SelectActiveFrame(New System.Drawing.Imaging.FrameDimension( _
10: img.FrameDimensionsList(0)), i)
11: Dim imageThumb As System.Drawing.Image = img.GetThumbnailImage( _
12: 300, 300, Nothing, Nothing)
13: 'Salvo le immagini
14: imageThumb.Save(String.Format("c:\{0}.{1}", _
15: file.Name.Replace(file.Extension, String.Empty) + i.ToString(), imageType))
16: Next
17: End Using
18: End If
19: End Sub
private void SaveTIFFMultipage(string imageType, string pathImageTIFF)
{
FileInfo file = new FileInfo( pathImageTIFF);
if( file.Exists)
{
using( System.Drawing.Image img = System.Drawing.Image.FromFile(pathImageTIFF))
{
//Recupero il numero di pagine che costituiscono il TIFF
int countPages = img.GetFrameCount(
new System.Drawing.Imaging.FrameDimension( img.FrameDimensionsList[0]));
for( int i=0; i<countPages; i++)
{
img.SelectActiveFrame(new System.Drawing.Imaging.FrameDimension(
img.FrameDimensionsList[0]), i);
System.Drawing.Image imageThumb = img.GetThumbnailImage( 300, 300, null, IntPtr.Zero);
imageThumb.Save(string.Format(@"c:\prova\{0}.{1}", file.Name.Replace(file.Extension, string.Empty) +
i.ToString(), imageType));
}
}
}
}
I due metodi fondamentali usati allo scopo di "estrapolare" le varie immagini contenute nel TIFF sono senza ombra di dubbio GetFrameCount e SelectActiveFrame.
Tramite il primo metodo GetFrameCount sappiamo il numeto totale di frame presenti nell'immagine, mentre il metodo SelectActiveFrame seleziona e rende attivo un determinato frame all’interno dell’immagine.
Nel caso specifico utilizzo anche GetThumbnailImage per ottenere la miniatura(300X 300) dell'immagine da salvare su disco per poi visualizzarle tramite il controllo Repeater:
<asp:Repeater ID="repImage" runat="server">
<ItemTemplate>
<asp:Image ID="img" runat="server" ImageUrl='<%#DataBinder.Eval(Container.DataItem, "src")%>'/>
</ItemTemplate>
</asp:Repeater>
Wednesday, December 5, 2007
Volta technology
Etichette: .Net Framework 3.5, Microsoft, VS 2008Oggi è stata presentata la tecnologia Volta che dovrebbe aiutare lo sviluppatore nella costruzione di applicazioni web multi-tier usando Visual Studio 2008 e il .Net Framework 3.5.
Read More »»Monday, December 3, 2007
TouchPal
Etichette: MobileTouchPal è un software creato dalla CooTek e permette di aver sul proprio dispositivo mobile una tastiera virtuale "simile" a quella dell'iPhone.
Tra i prerequisiti Windows Mobile 5.0/6.0 e solo per i dispositivi dotati di touch screen QVGA (320X240) o VGA (640X480).
Fino all'8 Dicembre è possibile scaricarlo gratis.
Friday, November 30, 2007
Silverlight 1.1 Tools Alpha per VS 2008
Etichette: Silverlight, VS 2008Notizia 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
Etichette: css, IE 7.0, javascript, Tools 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.
Sunday, November 25, 2007
Grafici flash in Asp.Net 2.0
Etichette: Asp.Net 2.0, VB.NETSe 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:
- Scaricare la library.
- Compilare il progetto contenuto nella cartella dot-net-ofc-library.
- Referenziare la OpenFlashChart.dll generata con il passo 2.
- 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:
Ho pensato banalmente di aver dimenticato di settare la property ID del controllo chart.
Il risultato con mia grande sorpresa non cambia, ma peggiora .
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è:
- l'id del div contenitore è dato da ClientID del controllo chart più il carattere "_" più il valore della property SequenceId
- 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:
Saturday, November 24, 2007
Button della dialog box di File Download
Etichette: IE 7.0Dalla versione 6 di Internet Explorer SP2 e successiva è possibile disattivare i button della dialog box di File Download:
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>
Thursday, November 22, 2007
VBMigration
Etichette: Tools, VB.NET 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.
Label verticali
Un mio collega mi ha mostrato una classe css che permette di posizionare il testo in verticale(non sapevo fosse possibile):
1: .labelVertical
2: {
3: writing-mode:tb-rl;
4: }
Se invece si desidera visualizzare il contenuto dell'oggetto ruotato lungo l'asse orizzontale:
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.
Tuesday, November 20, 2007
Breakpoints condizionali
Etichette: VS 2003, Vs 2005, VS 2008In Visual Studio 2005 come nel 2008 è possibile inserire dei breakpoints condizionali:
- 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:
- 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
Etichette: VS 2008La 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.
Saturday, November 17, 2007
SpaceTime
Etichette: varie, webSpacetime è 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.