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, July 29, 2007
Hide Column di una Datagrid
Spesso si ha l'esigenza di nascondere del controllo Datagrid una determinata colonna.
Lato server è possibile accedere alla collection DataGridColumnCollection e settare la property Visible a false:
myDatagrid.Columns[0].Visible = false;
E' possibile solo se abbiamo settato la proprietà AutoGenerateColumns a false.
Nel caso invece tale proprietà è impostata a true si può implementare l'evento ItemDataBound e accedere alla collection di TableCell:
private void myDatagrid_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
e.Item.Cells[0].Visible = false;
}
Un altro modo per ottenere lo stesso risultato è usare un semplice script javascript:
<script language="javascript">
var table = document.getElementById('myDatagrid');
for (var r = 0; r<table.rows.length; r++)
table.rows[r].cells[0].style.display = 'none';
</script>
Friday, July 27, 2007
Microsoft Health CUI
Etichette: Asp.Net 2.0, Asp.Net AjaxRecentemente Microsoft ha rilasciato le Design Guidance e un set di controlli, sia per Web che per Windows, di nuova generazione da usare in applicazioni mediche.
Il progetto si trova su Codeplex, mentre per avere un overview basta andare sul sito Microsoft Health Common User Interface.
Wednesday, July 25, 2007
Gatineau
Etichette: Microsoft, varie, webCos'è Gatineau?. E' il nome in codice della risposta di Microsoft a Google Analytics, un tool di analisi web. Il tutto è iniziato con l'acquisizione della società Deepmetrix nel maggio del 2006, da quel momento Microsoft ha iniziato a lavorare ad un servizio statistico in grado di constrastare quello di Google.
La fase di alpha test dovrebbe essere alle porte, staremo a vedere.
Alcune immagini:
Fonte: Ian Thomas
Sunday, July 22, 2007
C# Programming Tools
Etichette: C#Una lista di link di diversi tools, framework, class libraries divisi per categoria( Regular Expression, Obfuscators, Refactoring, Testing ecc ).
Read More »»Saturday, July 21, 2007
DisabledItems in Word
Etichette: C#, Interop OfficeQuando si cerca di aprire un file di Office e compare l'errore:
"Si è verificato un grave errore l'ultima volta che è stato aperto 'nome file'. Continuare?"
significa che tale file è stato contrassegnato come danneggiato o disattivato da Office.
Per tale motivo il file viene incluso nella lista degli Elementi Disattivati:
A questo punto si potrebbe procedere attivando gli elementi visualizzati nella finestra tramite l'apposito pulsante(Attiva), oppure si può individuare la chiave che viene generata automaticamente nel registry e cancellarla.
E' possibile interagire con il registry attraverso la classe Registry del namespace:
RegistryKey key = Registry.CurrentUser.OpenSubKey( @"Software\Microsoft\Office\11.0\Word\Resiliency", true);
if( key != null)
{
if( key.SubKeyCount > 0)
key.DeleteSubKeyTree( "DisabledItems");
key.Close();
}
Ciò che facciamo è ottenere la subkey di Resiliency, se esiste allora effettuiamo la cancellazione.
A questo punto possiamo riprovare ad aprire il file.
Tuesday, July 17, 2007
Lista Package, Stored Procedures, Parametri
Etichette: OracleIn Oracle è possibile tramite query conoscere la lista dei package:
oppure dato un package la lista delle stored procedures contenute:
infine data una stored procedure è possibile conoscere il nome dei parametri, il tipo e se sono in ingresso o uscita:
Sunday, July 15, 2007
Microsoft demos from WPC
Etichette: MicrosoftDiverse demo su tecnologie come:
- Microsoft Surface,
- Photosynth,
- Windows Live per Windows Mobile,
- Microsoft RoundTable,
- CRM,
- Microsoft SilverLight,
- Windows Server 2008,
- Windows Automotive.d
...da non perdere
Fonte: Microsoft demos per WPC
Read More »»Saturday, July 14, 2007
Bugtracker.NET
Etichette: Asp.Net 1.1, Framework 1.1Bugtracker.NET è un'applicazione web, open source, scritta in ASP.Net ( entrando così nelle mie grazie ), C# e Microsoft Sql Server, utile per il tracciamento dei bug.
Presenta una serie di feature interessanti tra cui una sorta di ACL sui progetti, in modo da controllare chi può vedere o modificare i relativi bug, oppure creare delle query ad hoc per effettuare dei filtri personalizzati, o un'utility integrata che permette di generare dei screenshot da postare insieme alla descrizione dei bug.
Per maggiori dettagli qui.
General network error. Check your network documentation.
Da qualche settimana randomicamente compare nei logs di una windows application l'errore:
General network error. Check your network documentation.
Dopo una breve ricerca su google ho visto che in molti hanno risolto inserendo nella stringa di connessione:
POOLING=FALSE
(Ovviamente in questo modo non è possibile sfruttare i vantaggi del pooling di connessione)
Dopo una settimana di test posso dire anch'io che tale fix sembra funzionare, anche se non mi è chiara ancora la causa dell'errore.
Wednesday, July 11, 2007
Cheat Sheets
Etichette: Asp.Net 2.0, css, Framework 1.1, Regular Expression, Vs 2005Una raccolta veramente interessante di Cheat Sheets, dalla formattazione di stringhe, alle regular expression, ai css e tanto altro. Da stampare.
Read More »»Monday, July 9, 2007
Photosynth
Etichette: Microsoft, PhotosynthPer chi come me si è fatto sfuggire la possibilità di testare Photosynth può rimediare andando sul sito Microsoft Live Labs.
E' possibile provare diversi ambienti che il team ha messo a disposizone:
- Gyeongbokgung, palazzo nel sud della Corea
- Piazza San Pietro
- Grassi Lakes, Canada
- Piazza San Marco
- Gary Faigin Studio, Art Studio a Seattle
Il tutto usando semplicemente il proprio browser(Explorer 6.0 e 7.0, Firefox 1.5 e 2.0). Impressionante.
Read More »»Upload file via FTP
In diversi lavori in Asp.Net 1.1 ho fatto uso di una libreria: EdtFTPNet, per superare l'ostacolo di upload di file tramite FTP. Ma il Framework 2.0 cosa offre?
Sono state introdotte due nuove classi per consentire l'uso del protocollo FTP, cioè FtpWebRequest che deriva da WebRequest e FtpWebResponse che invece deriva da WebResponse.
Il codice che ci consente di eseguire l'upload in un file è veramente molto semplice:
using System.IO;
using System.Net;
try
{
string nameFile = FileUpload.PostedFile.FileName;
//Apro una connessione
FtpWebRequest ftp = (FtpWebRequest)WebRequest.Create( System.IO.Path.Combine( "url ftp", nameFile));
//Aggiungo le credenziali
ftp.Credentials = new NetworkCredential( "username", "password");
//Indico il comando di uplaod
ftp.Method = WebRequestMethods.Ftp.UploadFile;
byte[] arrayFile = new byte[ FileUpload.PostedFile.ContentLength];
Stream read = FileUpload.PostedFile.InputStream;
//Riempio l'array
read.Read( arrayFile, 0, FileUpload.PostedFile.ContentLength);
Stream w = ftp.GetRequestStream();
//Scrivo il contenuto dell'array
w.Write(arrayFile, 0, arrayFile.Length);
w.Close();
}
catch (Exception exc)
{
//TODO: log errore
string error = exc.Message;
}
( FileUpload è l'id del nuovo webControl aggiunto in ASP.Net 2.0 che permette di selezionare un file da inviare ad un server )
Da evidenziare la possibilità di indicare tutta una serie di comandi FTP, nel caso specifico abbiamo fatto uso dell'UploadFile ma la scelta è ampia:
- AppendFile
- DownloadFile
- DeleteFile
- GetDateTimestamp
- GetFileSize
- ListDirectoryDetails
- ListDirectory
- MakeDirectory
- PrintWorkingDirectory
- Rename
- RemoveDirectory
- UploadFile
- UploadFileWithUniqueName
Sunday, July 8, 2007
Ongopongo
Etichette: varie, webSi tratta di un sito in cui è possibile condividere mappe personali create con Google Maps.
Si trova di ogni, dai posti da visitare in una determinata città, oppure i posti in cui andare a mangiare se si lavora in Vodafone Milano, oppure gli Hard Rock Cafes sparsi sul globo e tanto altro. Il tipico sito in cui perdere un pò di tempo :D.
Saturday, July 7, 2007
Silverlight ed Opera
Etichette: Microsoft, Silverlight, varieIl browser Opera versione 9.22 beta supporta la nuova tecnologia Microsoft Silverlight. Un'ottima notizia direi.
Fonte: Opera Desktop Team
LogMeIn
LogMeIn Pro è un servizio di accesso remoto veramente ben fatto.
In pratica permette dopo l'installazione di un active-x di circa 8 mega di poter controllare attraverso il browser, in totale sicurezza, i propri pc.
La versione free presenta ovviamente delle limitazioni, per esempio non è possibile il traferimento di file da pc a pc oppure la possibilità di stampare automaticamente i file remoti in locale, ad ogni modo un servizio che trovo utilissimo.
Friday, July 6, 2007
CMS Matrix
Etichette: varieCMS Matrix è un sito che raccoglie quasi 800 CMS scritti in diversi linguaggi, open source o commerciali, ma cosa più importante permette di metterli a confronto evidenziando in diverse categorie( System Requirements, Security, Support, Ease of Use, Performance, Management, Interoperability, Flexibility, Built-in Applications, Commerce ) le varie feature.
Read More »»Datagrid con scroll verticale
Per ottenere in una web application una datagrid con scroll verticale basta un semplice div, ma procediamo per ordine.
Come primo passo bisogna creare l'header della datagrid.
Supponiamo che quest'ultima sia costituita da tre colonne, l'header diventa banalmente una tabella con tre celle:
<table cellSpacing="0" cellPadding="0" width="600" border="1">
<tr>
<td width="200">LastName</td>
<td width="200">Title</td>
<td width="200">City</td>
</tr>
</table>
Adesso possiamo disattivare l'header della datagrid deselezionando la proprietà "Mostra Intestazione".
Inoltre come si può notare le celle hanno una dimensione fissa di 200px, di conseguenza per ottenere un perfetto allineamento anche le colonne della datagrid devono avere la stessa caratteristica.
Ci sono due strade per ottenere questo allineamento, lavorare con le Template Column oppure se la proprietà "AutoGenerateColumns" è impostata su true, possiamo nell'evento ItemDataBound:
private void dgrScroll_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
foreach( TableCell cell in e.Item.Cells)
cell.Width = 200;
}
Come secondo ed ultimo passo incapsulare la datagrid in un div:
<DIV style="OVERFLOW: auto; WIDTH: 613px; HEIGHT: 300px; TEXT-ALIGN: left">
<asp:datagrid id="dgrScroll" runat="server" CellPadding="0" CellSpacing="0" BorderWidth="1px"
AutoGenerateColumns="true" Width="600px">
</asp:datagrid></DIV>
Il div presenta uno stile in linea con larghezza fissa impostata a 613, cioè 600 è la dimensione fissa dell'header e della datagrid e 13 sono i pixel della scrollbar laterale.
Inoltre lo stile presenta la proprietà OVERFLOW, il quale valore indicherà al browser come comportarsi nel renderizzare la datagrid nel caso in cui le impostazioni width ed height non consentono la totale visualizzazione. In questo modo nel momento in cui la nostra datagrid supera l'altezza di 300 px allora apparirà la scrollbar verticale.
Questo è il risultato finale:
Read More »»
Wednesday, July 4, 2007
Importare contatti da Outlook 2003
Etichette: C#, Interop OfficeL'esempio fa uso di un assembly PIA( Primary Interop Assemblies ) Microsoft.Office.Interop.Outlook. Si tratta di un wrappper che ci permette di scrivere applicazioni in .NET e di comunicare con codice unmanaged dei componenti COM di Microsoft Office.
Supponiamo di voler mostrare in una datagrid i seguenti contatti:
Nel caso sulla vostra macchina è installato Office 2003 basterà referenziare l'assembly dalla tab COM:
A questo punto possiamo aggiungere le using:
using System.Reflection;
using Outlook = Microsoft.Office.Interop.Outlook;
Il metodo di estrazione e bind dei contatti:
//Istanziando la classe viene creato il processo di Outlook
Outlook.Application outlook = new Outlook.Application();
Outlook.NameSpace oNS = outlook.GetNamespace( "mapi");
DataRow row;
DataTable dt = new DataTable();
dt.Columns.Add( new DataColumn( "Nome", typeof( string)));
dt.Columns.Add( new DataColumn( "Posizione", typeof( string)));
dt.Columns.Add( new DataColumn( "Società", typeof( string)));
dt.Columns.Add( new DataColumn( "Reparto", typeof( string)));
dt.Columns.Add( new DataColumn( "Abitazione", typeof( string)));
try
{
oNS.Logon( Missing.Value, Missing.Value, true, true);
Outlook.MAPIFolder oContacts = oNS.GetDefaultFolder( Outlook.OlDefaultFolders.olFolderContacts);
Outlook.Items oItems = oContacts.Items;
Outlook.ContactItem oCi = null;
oCi = (Outlook.ContactItem)oItems.GetFirst();
while ( oCi != null)
{
row = dt.NewRow();
row[ "Nome"] = oCi.FirstName;
row[ "Posizione"] = oCi.JobTitle;
row[ "Società"] = oCi.CompanyName;
row[ "Reparto"] = oCi.Department;
row[ "Abitazione"] = oCi.MailingAddressStreet;
dt.Rows.Add( row);
oCi = ( Outlook.ContactItem)oItems.GetNext();
}
// Log off
oNS.Logoff();
oNS = null;
// Release objects
oCi = null;
oItems = null;
oContacts = null;
//Bind datagrid
dgContacts.DataSource = dt;
}
catch( Exception exc)
{
//TODO: log error
string error = exc.Message;
}
finally
{
if( outlook != null)
{
outlook.Quit();
outlook = null;
}
GC.Collect();
GC.WaitForPendingFinalizers();
}
1)se si sostituisce il while con il codice:
foreach( Outlook.ContactItem oCi in oContacts.Items)
{
row = dt.NewRow();
row[ "Nome"] = oCi.FirstName;
row[ "Posizione"] = oCi.JobTitle;
row[ "Società"] = oCi.CompanyName;
row[ "Reparto"] = oCi.Department;
row[ "Abitazione"] = oCi.MailingAddressStreet;
dt.Rows.Add( row);
}
accade una cosa strana le risorse non vengono rilasciate, di conseguenza il processo di Outlook non viene chiuso,
2)non tutte le property possono essere lette. Questo per ragioni di sicurezza, infatti se per esempio cercate di leggere la property Email1Address compare un avviso:
"Un programma sta tentando di accedere agli indirizzi di posta elettronica memorizzati in Outlook. Consentire l'operazione? Se l'operazione non è prevista potrebbe trattarsi di un virus, pertanto scegliere No"(A program is trying to access email addresses you have stored in outlook. Do you want to allow this?)
Quest'ultimo è uno dei meccanismi di Outlook per evitare che codice non autorizzato possa essere eseguito. E' presente in tutte le versioni a partire da Outlook 2000 con SP3 ed ovviamente non si può disattivare.
Esistono delle library di terze parti per ovviare come per esempio Outlook Redemption, oppure se la posta è gestita da Exchange si può vedere Outlook E-MAil Security Update. Read More »»
Tuesday, July 3, 2007
LLOOGG inviti
Etichette: varieSe qualcuno è interessato ho 4 inviti per LLOOGG. Basta chiedere e vi sarà dato!!
Read More »»Sunday, July 1, 2007
Microsoft Windows MultiPoint Software Development Kit
Etichette: MicrosoftL'ormai famoso schermo da 30 pollici touchescreen prodotto dalla Microsoft....penso proprio nessuno. Ma non tutti sanno che è possibile scaricare il kit di sviluppo:
Come si può intuire requisito fondamentale oltre al Framework 3.0 e VS 2005, due mouse USB.
Devo farci assolutamente un giro!
Second Life all'italiana?
In ItalCity3D crei il tuo avatar con cui chattare o passeggiare per le vie della città virtuale. Con la moneta locale Euro City puoi acquistare il terreno su cui costruire la casa(a disposizione ci sono 369.263 oggetti e 10.810 textures) ma soprattutto come in ogni società che si rispetti pagare le tasse(ma non basta già pagarle nella vita reale?).
Fonte: La voce d'Italia
HTC Touch
Unica pecca la mancanza come nel caso del modello HTC S-710 dell'UMTS.
About Me
- Pierluca
- Milano, Italy
- MCTS: .Net 2.0 Web MCTS: .Net 3.5 Web MCTS: .Net 3.5 WF Applications Development MCTS: Microsoft Office SharePoint Server 2007, Application Development
Blog Archive
-
▼
2007
(146)
-
▼
July
(24)
- Debugging VS 2005 con Wii
- Hide Column di una Datagrid
- Microsoft Health CUI
- Gatineau
- C# Programming Tools
- DisabledItems in Word
- Lista Package, Stored Procedures, Parametri
- Microsoft demos from WPC
- Bugtracker.NET
- General network error. Check your network document...
- Cheat Sheets
- Photosynth
- Upload file via FTP
- Ongopongo
- Silverlight ed Opera
- LogMeIn
- CMS Matrix
- Datagrid con scroll verticale
- Importare contatti da Outlook 2003
- LLOOGG inviti
- Microsoft Windows MultiPoint Software Development Kit
- Pensavo meglio....
- Second Life all'italiana?
- HTC Touch
-
▼
July
(24)