domenica 29 giugno 2008

Sito per le offerte di lavoro riguardante la tecnologia Microsoft

Vi segnalo questo sito http://www.msemploy.it/ che riguarda le offerte di lavoro.
In particolare, in tale portale, si trovano tutte le offerte di lavoro, riguardante il mondo dell'informatica, sulla tecnologia Microsoft.

sabato 28 giugno 2008

download PerformancePoint Server 2007 Service Pack 1


Un nuovo strumento per gli amministratori di sistema. In particolare da questo sito http://www.microsoft.com/downloads/details.aspx?FamilyID=28b1f86b-b7f2-4215-8bc9-8f8507ff8831&DisplayLang=it si può scaricare PerformancePoint Server 2007 con Service Pack 1 (SP1) è un set di server e di applicazioni di gestione delle prestazioni integrato, che è possibile utilizzare per monitorare, analizzare e pianificare le attività aziendali, nonché favorire l'allineamento, la giustificabilità e l'analisi delle iniziative dell'intera organizzazione.
Mentre per la versione a 64 bit da questo sito http://www.microsoft.com/downloads/details.aspx?FamilyID=6245c354-9191-4c4d-8c0c-c10d6c778af8&DisplayLang=it

Articolo, interoperabilità tra VBA e VSTO

In questo http://msdn.microsoft.com/en-us/library/bb931201.aspx articolo MSDN, potete leggere un interessante articolo, su come utilizzare codice VBA in VSTO.
Un ottima guida, per coloro che scrivono applicazioni per Microsoft Office system.

lunedì 23 giugno 2008

FT: Pubblicato un articolo sul sito Microsoft PMI

Oggi vorrei condividere con voi, questa piacevole notizia, in particolare sul sito Microsoft Italia PMI, è stato pubblicato un mio articolo, riguardante l’utilizzo di Infopath 2007.
L’articolo che è consultabile al seguente indirizzo web http://www.microsoft.com/italy/pmi/comefare/gestioneimpresa/modulipersonalizzati/article/article1.mspx illustra come creare un modulo personalizzato.
Spero che l’articolo sia di interesse agli utenti e che possa aiutarli nell’utilizzo di questo prodotto.
Però un ringraziamento particolare va a Luca Bertolli, autore del sito http://www.comefarea.it/ un ragazzo che ho conosciuto lo scorso settembre, e che da quel momento è nata una bella amicizia e collaborazione tra i nostri due siti.
In questi mesi, giorno dopo giorno,tra un email e l’altra, ho avuto modo di conoscere Luca, non solo a livello tecnico ma anche come uomo. Mi ha molto colpito, la sua creatività, il suo approccio all’inventiva, davvero una persona con orizzonti molti grandi, una mente aperta.
Mi ricordo ancora, quel giorno di dicembre, che mi chiamò per il gadget vista, ha sempre un idea, un vulcano di idee, un creatore di idee .
Luca lo ritengo un grandissimo uomo, una persona,che ogni azienda deve avere ,uno che fa la differenza, calcisticamente parlando, un Totti, un Roberto Baggio, un Maradona, uno che può cambiare il volto della partita, con la sua creatività, e così è Luca.
E non lo dico, perché è un amico o perché a marzo mi ha fatto un bel regalino (grazie ancora per quella piacevole sorpresa), ma perché è così, un ragazzo molto in gamba, uno che ha una forte creatività, insomma un ragazzo che da un forte valore aggiunto. Un vero amico, una prersona speciale.
Spero un giorno di avere l’onore ed il piacere di conoscerlo di persona, di stringergli la mano. Quante persone care che ho conosciuto sul web, e che ad oggi ancora non ho conosciuto di persona, molto fantastiche, sarei onorato di stringergli la mano, per quello che fanno, per la loro passione e gentilezza.
Grazie Luca, sei un ragazzo fantastico, il web ha bisogno di te.
Non vorrei dilungarmi troppo, o annoiarvi, spero di continuare a scrivere altri articoli che possano interessere i tanti lettori, che ogni giorno si affidano al web, per trovare soluzioni o accrescere la propria conoscenza.
Non c'è fuori tema, più piacevole di questo :-))).
Grazie Luca, sei un ragazzo fantastico.

download gratuito di mp3


Oggi, vi segnalo un simpatico sito, molto utile per gli amanti della musica.
Il sito beemp3 http://beemp3.com/ permette di fare delle ricerche in ambito di file musicali.
Una volta effettuata la ricerca (per artista, canzone, album o tutto) dai risultati della ricerca ,è possibile scaricare il file mp3 che si sta cercando.
Il tutto gratuitamente.

domenica 22 giugno 2008

Corso di programmazione Compact Framework VB.Net e C#

In questo articolo verrà fornita una panoramica sullo sviluppo di applicazioni per sistemi mobili con il Compact Framework (CF).


I Dispositivi
Per sistemi mobili si intendono dispositivi facilmente trasportabili, ossia che si possono portare con se senza difficoltà di spostamento. Questi strumenti sono molto utili per l’impiego lavorativo o privato anche sè spesso vengono utilizzati in ambito lavorativo. In commercio si trovano diversi modelli suddivisi in varie funzionalità, possiamo trovare gli smartphone che sono simile ad un cellulare ma con funzionalità avanzate che rispecchiano quelle dei PC. Il palmare, detto anche Pocket PC, in alcuni modelli può funzionare anche da telefono; in certi casi è penalizzato per la mancanza della tastiera. Il Tablet PC il quale ha una forma simile ad un grande block notes dotato di una penna per scrivere. Su tale sistema, utile soprattutto in ambito sanitario, infine in commercio si trova un nuovo strumento denominato Origami, simile ad un TabletPC ma con possibilità di montare una tastiera e dotato di pulsanti.


I sistemi operativi
A differenza del Tablet PC o Origami, che hanno installato un sistema operativo Windows XP i Pocket PC possono avere due tipi di sistemi operativo: o il sistema operativo Palm oppure windows mobile (versione 2003, 5, 6 o Windows CE), mentre per gli smartphone possono avere Symbian oppure Windows mobile (versione 2003, 5 o 6). Per sviluppare applicazioni per questi sistemi operativi possiamo utilizzare o il linguaggio di programmazione Visual C++ che va bene per entrambi, oppure il linguaggio Java per sistemi operativi Palm o Symbian.
Da pochi anni si ha la possibilità di sviluppare applicazioni per sistemi operativi Windows mobile, anche con la nuova tecnologia di Microsoft denominata .Net la quale mette a disposizione dello sviluppatore i due linguaggi più utilizzati, Visual Basic .Net e C# .
Di seguito, si riporta un breve schema delle versioni di Windows mobile, per fare chiarezza sulle versioni più recenti che possiamo trovare in commercio. Per rilevare la versione del sistema operativo, si deve avviare la finestra “about” o “informazioni su” del dispositivo. Lo schema riportato qui di seguito è strutturato nel seguente modo. Tramite la parola voce: viene indicato il testo che si trova nella finestra “informazioni su” o “about”, mentre con la parola versione, viene indicata la versione del sistema operativo windows mobile associato a quella voce.



Voce: Windows CE 5.0:
Versione: Windows Mobile 5.0
Voce: Windows CE 4.2:
Versione: Windows Mobile 2003 oppure Windows Mobile 2003 Second Edition
Voce: Windows CE 3.0:
Versione: Pocket PC 2002
Versione:Pocket PC 2002 Phone Edition
Versione: Pocket PC 2000,
Versione: Pocket PC Phones
Versione: SmartPhone 2002
Versione: Handheld PC 200
Versione: BE-300



Un po’ di storia ed il Compact Framework
Intorno al 2002 Microsoft mise in commercio un nuovo sistema per lo sviluppo di applicazioni in ambiente Windows e web, denominato .Net. Il quale è composto da un Framework che al suo interno contiene un insieme di classi che hanno il compito di mettere a disposizione dello sviluppatore una serie di funzionalità per eseguire diverse operazioni. Oltre alle classi si hanno a disposizione strumenti utili al programmatore e la tecnologia Asp.net per la creazione di pagine web dinamiche Per scrivere programmi con questo sistema, Microsoft ha rilasciato un ambiente di sviluppo chiamato Visual Studio Net 2002, un software che aiuta il programmatore a scrivere facilmente codice ed a generare vari file quali programmi eseguibili (.exe) pagine web o controlli (.dll). Qualche mese dopo venne rilasciato un nuovo ambiente di sviluppo, il quale permetteva di creare applicazioni anche per l’ambiente mobile (Windows mobile 2003 e Windows CE). In ambiente mobile abbiamo un Framework che si chiama Compact Framework. Tale struttura è simile al Framework, solo con qualche classe in meno.
Le versioni del Compact Framework sono la 1 .0 e la 2.0 rilasciata intorno al novembre 2005 insieme al nuovo ambiente di sviluppo denominato Visual Studio 2005. Il nuovo Compact Framework 2.0 offre un ampio assortimento di classi e nuove funzionalità per l’ambiente mobile. La possibilità di utilizzare un ambiente di sviluppo come Visual Studio Net 2003 o Visual Studio 2005, permette allo sviluppatore di creare dei programmi che possono essere testati o su un ambiente di prova, quale l’emulatore messo a disposizione di tale ambiente oppure direttamente sul dispositivo. Per effettuare delle prove del nostro programma sul dispositivo, occorre collegare il cavo usb del dispositivo mobile al personal computer e nella fase di esecuzione del programma impostare come ambiente di esecuzione il dispositivo anziché l’emulatore. Argomento che verrà discusso nei prossimi capitoli.
I linguaggi per dispositivi mobili sono diversi, Java e C++ per esempio sono dei linguaggi che si possono utilizzare per i vari sistemi operativi (Symbian e Windows mobile) mentre Visual Basic .Net e C# solo in ambiente Windows mobile entrambi nuovi per questo sistema operativo. Fino a qualche anno fa si potevano utilizzare altri linguaggi di programmazione rilasciati da Microsoft, quali Evb che sta a significare Visual Basic per ambiente mobile e Evc che sta a significare Visual C per palmare.
Con l’evento del Compact Framework 1.0, il quale offre prestazioni e risultati migliori, i linguaggi (evb ed evc) si sono utilizzati sempre di meno.
Il Compact Framework è un insieme di classi e funzionalità che permette l’esecuzione di determinati programmi e componenti, senza di esso i vari file eseguibili (.exe) e componenti (.dll) non potrebbero funzionare. Esso si installa una sola volta sul dispositivo mobile e questo può essere fatto o tramite un pacchetto di installazione, oppure tramite l’ambiente di sviluppo Visual Studio 2003 o Visual Studio 2005 collegando il palmare al computer ed effettuare il rilascio del programma sul dispositivo. Le versioni del Compact Framework sono 1.0 e 2.0 .
Il Compact Framework rappresenta un sottoinsieme del Framework, anche se le classi sono in numero minore o con qualche metodo o proprietà in meno di quelle del Framework. Inoltre contiene delle funzionalità pensate appositamente per questo ambiente. In pratica il Compact Framework contiene una serie di classi, che permettono l’esecuzione di particolari funzionalità. Il Common Language Runtime permette l’esecuzione del codice anche in ambiente mobile, a differenza del framework sono state apportate delle modifiche per tener conto delle risorse (memoria e batteria) di questi dispositivi mobili, infatti la memoria viene gestita con particolare attenzione. Il codice che viene generato non è un codice nativo che viene eseguito nella cpu, ma detto Microsoft Intermediate Language (MSIL) una serie di istruzioni indipendenti dalla CPU facilmente convertibile in codice nativo. Senza il Compact Framework i file eseguibili e le dll create appositamente per questo ambiente non possono funzionare.
Per programmare in ambiente mobile occorrono i seguenti strumenti:
ActiveSync, per sincronizzare gli applicativi quali, calendario, task, email ecc.
L’ambiente di sviluppo Visual Studio 2005 (utilizzato in questo libro) per la stesura di codice.
SDK mobile 5.0 per Pocket http://www.microsoft.com/downloads/details.aspx?familyid=83A52AF2-F524-4EC5-9155-717CBE5D25ED&displaylang=en e smartphone http://www.microsoft.com/downloads/details.aspx?familyid=DC6C00CB-738A-4B97-8910-5CD29AB5F8D9&displaylang=en ed eventualmente un dispositivo fisico.


L’ambiente di sviluppo
L’ambiente di sviluppo Visual Studio 2005 permette di generare applicazioni per ambiente Windows, Web, Office e Mobile in base alla versione scelta del prodotto si possono trovare questi tipi di progetto. Con la standard possiamo sviluppare applicazioni e controlli per ambiente Windows, web e mobile, mentre la versione tools per Office (VSTO) oltre alle funzionalità della standard anche la possibilità di programmare in ambiente Office. La Professional permette di lavorare in tutti gli ambienti elencati in precedenza ed in ambiente mobile. Per concludere esiste la versione Team Edition che, oltre a sviluppare in tutti gli ambienti, è anche , utilizzata per i lavori di gruppo. L’ambiente di sviluppo Visual Studio 2005, offre notevoli funzionalità al programmatore, aiutandolo nella creazione di applicazioni sia per palmari che per smartphone.


La scelta del progetto.
Quando si apre Visual Studio 2005 si ha la possibilità di scegliere il linguaggio che si intende utilizzare, qualora siano installati più linguaggi; in questo caso dopo aver scelto il linguaggio di programmazione vengono riportati i vari progetti che si possono generare (Windows, web, office o device) (Figura 1)



Figura 1 – La finestra per la scelta di un nuovo progetto.


Nella parte di sinistra vengono elencati i linguaggi e i progetti che si possono creare, mentre nel riquadro a destra vengono elencati i modelli che si hanno a disposizione in base al progetto selezionato.
Per la parte mobile o Smart Device si possono scegliere tre tipologie di progetti: per palmari , smartphone o Windows CE 5.0. A seconda del tipo di dispositivo scelto si hanno diversi progetti da sviluppare.


Pocket pc 2003
Per i progetti di tipo Pocket PC 2003 (Figura 2), si hanno diversi modelli, che vediamo qui di seguito.
Applicazione dispositivo: Permette la creazione di applicazione per ambiente Pocket PC 2003 o versione successive. Per applicazione si intende un programma con interfaccia grafica che esegue determinate operazioni. Queste applicazione si basano sul Compact Framework 2.0.
Libreria di controlli: Creazione di controlli per ambiente Pocket PC 2003 o versioni successive, creazione di controlli grafici, con la possibilità di inserire controlli già esistenti. Per controllo si intende un oggetto con una certa grafica, che viene inserito in una finestra detta form per eseguire determinate operazioni. Per esempio un controllo è un pulsante, un menu ecc. In questo modo l’operatore può interagire con il programma. Questi controlli si basano con il Compact Framework 2.0
Progetto vuoto: la possibilità di generare un progetto per ambiente pocket pc 2003 o versioni successive, di cui di volta in volta verranno aggiunti i vari modelli da utilizzare, basato con Compact Framework 2.0.
Libreria di classi: Permette la creazione di classi che generano dll, queste classi a differenza della libreria di controlli non hanno un interfaccia grafica per la progettazione; tali classi possono essere utilizzate dai vari progetti. Anch’essi si basano sul Compact Framework 2.0.
Applicazione console: Applicazione senza un interfaccia grafica basata sul Compact Framework 2.0.
I modelli in cui il nome è seguito tra parentesi tonde il valore 1.0 vuol dire che si basano sul Compact Framework 1.0.



Figura 2 – – I modelli installati per il progetto Pocket pc 2003.


Smartphone 2003
Per i progetti di tipo smartphone 2003 si hanno diversi modelli, che vediamo qui di seguito.
Applicazione dispositivo (1.0): Permette la creazione di applicazioni con interfaccia grafica per smartphone 2003 e versioni successive si basa sul Compact Framework 1.0
Applicazione console (1.0): Creazione di applicazione senza interfaccia grafica per smartphone 2003 o versioni successive si basa sul Compact Framework 1.0
Libreria di classi (1.0): Creazione di classi, che generano dll da utilizzare nel programma o in vari progetti, per smartphone 2003 o versioni successive basato sul Compact Framework 1.0
Progetto vuoto(1.0): La possibilità di creare un progetto vuoto e di scegliere di volta in volta il tipo di modello, basato sul Compact Framework 1.0 per smartphone 2003 o versioni successive (Figura 3).


Figura 3 – I modelli installati per il progetto smartphone 2003.


Windows CE 5.0
Per l’ambiente Windows CE 5.0, si hanno diversi modelli, basati sul Compact Framework 2.0 e Windows CE 5.0 o versioni successive. Di seguito vengono riportati i vari modelli.
Applicazione dispositivo: Creazione di un programma con interfaccia grafica, basato sul Compact Framework 2.0 per sistemi Windows CE 5.0 o versioni successive
Libreria di controlli: Creazione di controlli per ambiente Windows CE 5.0 o versioni successive, creazione di controlli grafici con la possibilità di inserire controlli già esistenti. Per controllo si intende un oggetto con una certa grafica che viene inserito in una finestra detta form, per eseguire determinate operazioni. Per esempio un controllo può essere un pulsante, un menu ecc. In questo modo l’operatore può interagire con il programma. Questi controlli si basano con il Compact Framework 2.0
Progetto vuoto: Creazione di progetti vuoti per ambiente Windows CE 5.0 o versioni successive basata sul Compact Framework 2.0, in esso si possono aggiungere di volta in volta i vari modelli
Libreria di classi: Permette la creazione di classi che generano dll, queste classi a differenza della libreria di controlli non hanno un interfaccia grafica per la progettazione, tali classi possono essere utilizzate dai vari progetti. Anch’essi si basano sul Compact Framework 2.0 e per ambiente Windows CE 5.0 o versioni successive.
Applicazione console: Creazione di un programma senza interfaccia grafica per sistemi Windows CE 5.0 o versioni successive con il Compact Framework 2.0. (Figura 4).



Figura 4 – I modelli installati per il progetto Windows CE 5.0.


Per ogni progetto troviamo nella parte inferiore delle caselle di testo, nella prima viene indicato il nome del progetto; la seconda casella permette di impostare il percorso del progetto ossia dove vengono salvati i file; mentre la terza casella permette tramite una casella combinata di scegliere se creare un nuovo progetto indipendente (crea nuova soluzione) o aggiungerlo in uno già esistente (aggiungi soluzione). L’ultima casella quella con il titolo impostato a “Nome Soluzione” permette di dare il nome alla soluzione. La soluzione ha il compito di contenere uno o più progetti. Quindi possiamo creare più progetti che si trovano in una soluzione. Di seguito si riportano i vari tipi di progetto per ambiente Pocket PC, smartphone e Windows CE, per la creazione di applicazioni.


L' Ambiente Pocket PC 2003
Dopo aver selezionato come tipo di progetto Pocket pc 2003 e come modello la voce applicazione dispositivo, viene aperto l’ambiente di sviluppo per la creazione di programmi per Pocket Pc 2003 con il Compact Framework 2.0. (Figura 5).


Figura 5 – Emulatore per l’ambiente Pockectpc 2003.


L’ambiente ci mette a disposizione un emulatore di tipo Pocket PC, il quale semplifica la progettazione dell’applicazione e nel contempo anche la possibilità di effettuare dei test prima di passare su un vero dispositivo mobile.
Al centro troviamo l’emulatore. Nella parte sinistra si trova una barra, detta barra degli strumenti, in essa ci sono dei controlli grafici che permettono di eseguire determinate operazioni in base al controllo scelto. Tramite il mouse si seleziona il controllo desiderato e lo si trascina nell’emulatore. Nella parte destra si trovano due finestre, la prima quella situata nella parte superiore, detta Esplora Soluzione , che permette la gestione della soluzione, elencando i vari progetti, le varie risorse (icone, file xml ecc.) ed altro ancora. Nel bordo superiore di questa finestra si trovano diversi pulsanti (Figura 6) che permettono di effettuare alcune operazioni.
Il primo pulsante partendo da sinistra visualizza la finestra delle proprietà dell’elemento selezionato, il secondo quello con due fogli visualizza o nasconde nella finestra esplora soluzione tutti i file inclusi nel progetto, il terzo pulsante aggiorna la finestra. Il quarto pulsante quello di colore bianco passa in visualizzazione codice, ossia nella parte in cui si devono scrivere le istruzioni per eseguire determinate funzioni. Il quinto pulsante, quello di colore grigio, passa in modalità di progettazione ossia visualizza l’aspetto grafico della finestra situata nell’emulatore. L’ultimo pulsante apre la finestra per la creazione di classi in modalità grafica. .


Figura 6 – La finestra Esplora Soluzioni.


Nella parte inferiore della finestra esplora soluzione, viene collocata la finestra delle proprietà (Figura 7), essa permette di visualizzare ed impostare i nomi ed i valori delle proprietà ed eventi di un oggetto selezionato. Le proprietà (vedere il capitolo creazione di classi) hanno il compito di impostare alcuni valori di un oggetto; questa finestra riporta nella parte superiore una casella ad elenco a discesa, dove sono visualizzati i nomi degli oggetti inseriti nell’emulatore sotto a tale casella si trovano dei pulsanti. Mentre nella parte inferiore di questa finestra è riportata la descrizione della voce di proprietà o evento selezionato.


Figura 7 – La finestra delle proprietà corrisponde ad un oggetto selezionato.


I vari pulsanti della finestra proprietà eseguono determinate operazioni, quali.
Il primo pulsante, quello con i due più, ordina le varie voci per categoria, il secondo pulsante, quello con la lettera “a z”, ordina le varie voci in ordine alfabetico, il terzo, passa in modalità proprietà quando ci si trova nell’elenco degli eventi. Il quarto pulsante, quello con il disegno del fulmine, visualizza gli eventi dell’oggetto selezionato, anche in questo caso si possono ordinare o per categoria o per nome. L’ultimo pulsante, visualizza la pagina delle proprietà del progetto selezionato.
Queste finestre possono essere nascoste facendo click sulla seconda icona posta nella barra del titolo, quella a forma di spilla, chiuse tramite il pulsante della X. Si cambia posizione tramite la freccia rivolta in basso.
Nella parte superiore dell’emulatore è presente un menu che permette la gestione del nostro programma. Di seguito si riporta una breve illustrazione delle varie voci.
• Il menu File: Riguarda la parte del progetto, ossia il salvataggio, la stampa, la creazioni di nuovi progetti, la chiusura del progetto, ecc.
• Il menu modifica: Permette di copiare incollare o tagliare codice o controlli, trovare alcune parole ecc.
• Il menu Visualizza: Permette di visualizzare le finestra proprietà, Esplora soluzione, ed altre ancora. Di passa in modalità codice o progettazione ecc
• Il menu Progetto: Riguarda la parte del progetto, ossia la possibilità di inserire un nuovo elemento o già esistente, aggiungere una classe, un riferimento ecc
• Il menu Genera: Riguarda la creazione del progetto.
• Il menu Debug: Riguarda l’esecuzione del programma e la gestione del debug, ossia la situazione in cui verificare il funzionamento del programma
• Il menu dati: permette di gestire la fonte dati da associare al progetto.
• Il menu Formato: Permette di gestire l’uso dei controlli posizionati sull’emulatore, allineamento, spaziatura ecc.
• Il menu Strumenti: Riguarda le opzioni della finestra, connessione al dispositivo, ed altro ancora.
• Il menu Finestra: Permette di passare da una finestra all’altra.
• Il menu Comunità: Riguarda la possibilità di reperire informazioni ed altro tramite internet.
• Il menu ?: Guida in linea, informazioni sul prodotto ecc


Figura 8 – Il menu e le barre contenente i pulsanti.


Sotto al menu si trova la barra degli strumenti, la quale tramite i vari pulsanti riporta in parte alcune operazione che si possono fare dai vari menu, per esempio l’icona con il singolo dischetto, permette il salvataggio della finestra attiva, mentre quello con più dischetti di tutta la soluzione. La barra degli strumenti può essere modificata aggiungendo nuovi pulsanti che eseguendo determinate compiti o rimuovendo i pulsanti visualizzati. Si notino due elementi molto importanti: il primo è la casella combinata con la scritta debug. Essa permette di eseguire il codice o in modalità Debug o Release. Le differenze sono che in modalità debug, è possibile fare il debug del programma quando è in esecuzione e di conseguenza ci si può fermare in un determinato punto, mentre in release no. Inoltre quando si deve rilasciare il programma va sempre rilasciato in modalità release in questo modo, si migliorano anche le prestazioni.
La seconda segnalazione è la casella combinata quella con la scritta “Pocketpc 2003 se – emulatore”: in essa possiamo selezionare in quale ambiente (dispositivo o emulatore) vogliamo eseguire il programma.


Figura 9 - l’emulatore per smartphone 2003.


L'Ambiente Windows CE 5.0
Se il tipo di progetto è Windows CE 5.0, l’ambiente di sviluppo Visual Studio 2005 mette a disposizione un emulatore con le stesse finestre ed impostazioni dei progetti descritti precedentemente. La differenza è solo nel tipo di emulatore e dei controlli utilizzabili in tale progetto (Figura 10).


Figura 10 - L’emulatore per l’ambiente Windows CE.


Conclusioni
In questo capitolo è stata fatta una panoramica dell’ambiente mobile e dei vari aspetti dell’ambiente di sviluppo per la creazione di applicazioni di sistemi mobili. E’ da tenere presente che tramite l’installazione del tools SDK mobile 5 per Pocket PC e smarthphone possiamo aggiungere al nostro progetto la possibilità di utilizzare anche emulatori per Windows mobile 5.0.

cellulari usati per il sociale


Oggi vi segnalo questa simpatica iniziativa http://www.cuorephone.it/ .
In particolare, per coloro che hanno un vecchio cellulare e non sanno cosa farci, anzichè buttarlo, invarlo a questa associazione, potranno contribuire al sostenimento dell'associazione medici senza frontiera.
Per ogni cellulare ricevuto, l'associazione Medici Senza Frontiera, riceveranno fino a 3 euro. La spedizione è gratuita, senza nessun costo.
Allora cosa aspettate? andate al seguente http://www.cuorephone.it/index.html per informazioni e per inviare il vostro vecchio cellulare.

lunedì 16 giugno 2008

Download Microsoft Silverlight Tools Beta 2 per Visual Studio 2008

Oggi, segnaliamo un nuovo componente per Visual Studio 2008.
In particolare da queste sito http://www.microsoft.com/downloads/details.aspx?FamilyID=50a9ec01-267b-4521-b7d7-c0dba8866434&DisplayLang=it potete scaricare un nuovo aggiornamento, la possibilità di avere tra i vari modelli di progetti in Visual Studio 2008, anche quelli relativi alla creazione di applicazioni web tramite Silverlight 2.0, dotando l'ambiente di sviluppo anche su questa tecnologia.
Per il download e maggiori informazioni, visitate il sito indicato.

domenica 15 giugno 2008

CF utilizzare le api di Windows Mobile, per effettuare le telefonate o rilevare informazioni alla SIM tramite C#

Questo esempio di codice, illustra come utilizzare le api di Windows Mobile, per effettuare delle telefonate e rilevare informazioni della SIM.


Effettuare una telefonata:


Namespace:


using System.Runtime.InteropServices;


A livello di classe creare la seguente struttura e i due campi.


private static long PMCF_DEFAULT = 0x00000001;


private static long PMCF_PROMPTBEFORECALLING = 0x00000002;


private struct PhoneMakeCallInfo


{


public IntPtr cbSize;


public IntPtr dwFlags;


public IntPtr pszDestAddress;


public IntPtr pszAppName;


public IntPtr pszCalledParty;


public IntPtr pszComment;


}


Dichiarazione di api per effettuare la telefonata


[DllImport("phone.dll")]


private static extern IntPtr PhoneMakeCall(ref PhoneMakeCallInfo ppmci);


Funzione che effettua la chiamata


unsafe private void Telefona(string numero)


{


bool avvisa = true;


IntPtr res;


//numero += '\0';


char[] cPhoneNumber = numero.ToCharArray();


fixed (char* pAddr = cPhoneNumber)


{


PhoneMakeCallInfo info = new PhoneMakeCallInfo();


info.cbSize = (IntPtr)Marshal.SizeOf(info);


info.pszDestAddress = (IntPtr)pAddr;


if (avvisa)


{


info.dwFlags = (IntPtr)PMCF_PROMPTBEFORECALLING;


}


else


{


info.dwFlags = (IntPtr)PMCF_DEFAULT;


}


res = PhoneMakeCall(ref info);


}


}


Eseguire la funzione per effettuare la chiamata


private void btnChiama_Click(object sender, EventArgs e)


{


Telefona("4250010001");


}



Rilevare il numero di telefono, individuare gli sms che si possono ricevere ed il numeri di quelli ricevuti.


Dichiarazione a livello di classe


//Identificazione numero


public enum AddressType


{



Unknown,



International,



National,



NetworkSpecific,



Subscriber,



Alphanumeric,



Abbreviated


}


//informazioni numero


public struct PhoneAddress


{


/// <summary>The address type.</summary>


public AddressType AddressType;


/// <summary>The phone number in string format.</summary>


public String Address;


}


private static long SERVICE_PROVIDER = 0x00006F46;


[StructLayout(LayoutKind.Sequential)]


private struct SimRecord


{


public IntPtr cbSize;


public IntPtr dwParams;


public IntPtr dwRecordType;


public IntPtr dwItemCount;


public IntPtr dwSize;


}


Dichiarazione api


[DllImport("sms.dll")]


private static extern IntPtr SmsGetPhoneNumber(IntPtr psmsaAddress);


[DllImport("cellcore.dll")]


public static extern int SimInitialize(uint dwFlags, int lpfnCallBack, uint dwParam, ref int lphSim);


//private static extern IntPtr SimInitialize(IntPtr dwFlags, IntPtr lpfnCallBack, IntPtr dwParam, out IntPtr lphSim);


[DllImport("cellcore.dll")]


private static extern IntPtr SimGetRecordInfo(IntPtr hSim, IntPtr dwAddress, ref SimRecord lpSimRecordInfo);


[DllImport("cellcore.dll")]


private static extern IntPtr SimReadRecord(IntPtr hSim, IntPtr dwAddress, IntPtr dwRecordType, IntPtr dwIndex, byte[] lpData, IntPtr dwBufferSize, ref IntPtr lpdwBytesRead);


[DllImport("cellcore.dll")]


private static extern IntPtr SimDeinitialize(IntPtr hSim);


[DllImport("cellcore.dll")]


public static extern int SimGetSmsStorageStatus(int hSim, uint dwStorage, ref uint lpdwUsed, ref uint lpdwTotal);


Funzione che rileva il numero del telefono e tipo


unsafe private PhoneAddress GetPhoneNumber()


{


PhoneAddress phoneaddr = new PhoneAddress();


Byte[] buffer = new Byte[516];


fixed (byte* pAddr = buffer)


{


IntPtr res = SmsGetPhoneNumber((IntPtr)pAddr);


if (res != IntPtr.Zero)


throw new Exception("Could not get phone number from SIM");


byte* pCurrent = pAddr;


phoneaddr.AddressType = (AddressType)Marshal.ReadInt32((IntPtr)pCurrent);


pCurrent += Marshal.SizeOf(phoneaddr.AddressType);


phoneaddr.Address = Marshal.PtrToStringUni((IntPtr)pCurrent);


}


return phoneaddr;


}


Richiamare la funzione da un evento click del pulsante (numero telefono e tipo)


private void btnnumero_Click(object sender, EventArgs e)


{


string informazioni = "Numero: " + GetPhoneNumber().Address + " Tipo: " + GetPhoneNumber().AddressType;


MessageBox.Show(informazioni);


}


Richiamare la funzione da un evento click di un pulsante per la gestione degli sms (totali e ricevuti)


private void btnSms_Click(object sender, EventArgs e)


{


int hSim = 0;


uint smsUsed = 0;


uint smsTotal = 0;


uint SIM_SMSSTORAGE_SIM = 0x2;


SimInitialize(0, 0, 0, ref hSim);


SimGetSmsStorageStatus(hSim, SIM_SMSSTORAGE_SIM, ref smsUsed, ref smsTotal);


MessageBox.Show("Sms Usati: " + smsUsed.ToString());


MessageBox.Show("Sms Totali: " + smsTotal.ToString());


}


Tramite la parola download è possibile scaricare il file di esempio


Download

mercoledì 11 giugno 2008

Compact Framework 1.1 avviare un processo tramite VB.Net e c#

In questo esempio di codice, vedremo come utilizzare le api di Windows Mobile, per avviare un programma eseguibile.
In alternativa al metodo start della classe process (il cf 1.1 non ne dispone) per avviare i vari processi, si può ricorrere alla dichiarazione di api (CreateProcess) per avviare un determinato programma.
Di seguito si riporta un esempio di codice.
Dichiarazione di Api e struttura


VB.Net


Declare Function CreateProcess Lib "coredll.dll" (ByVal imageName As String, ByVal cmdLine As String, ByVal lpProcessAttributes As IntPtr, ByVal lpThreadAttributes As IntPtr, ByVal boolInheritHandles As Int32, ByVal dwCreationFlags As Int32, ByVal lpEnvironment As IntPtr, ByVal lpszCurrentDir As IntPtr, ByVal si As Byte(), ByVal pi As ProcessInfo) As Integer


Public Class ProcessInfo


Public hProcess As IntPtr


Public hThread As IntPtr


Public ProcessId As Int32


Public ThreadId As Int32


End Class


C#


[DllImport("coredll.dll", SetLastError = true)]


static extern bool CreateProcess(String imageName,


String cmdLine,


IntPtr lpProcessAttributes,


IntPtr lpThreadAttributes,


bool boolInheritHandles,


Int32 dwCreationFlags,


IntPtr lpEnvironment,


IntPtr lpszCurrentDir,


byte[] si,


ProcessInfo pi);


public class ProcessInfo


{


public IntPtr hProcess;


public IntPtr hThread;


public Int32 ProcessId;


public Int32 ThreadId;


}


Codice da inserire in un evento click di un pulsante



VB.Net


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click



Dim pi As New ProcessInfo


Dim si(128) As Byte


Dim resultato As Int32



resultato = CreateProcess("calc.exe", "", IntPtr.Zero, IntPtr.Zero, 0, 0, IntPtr.Zero, IntPtr.Zero, si, pi)





End Sub


C#


private void button1_Click(object sender, EventArgs e)


{


ProcessInfo pi = new ProcessInfo();


byte[] si = new byte[128];


bool resultato = CreateProcess("calc.exe", " ", IntPtr.Zero, IntPtr.Zero, false, 0, IntPtr.Zero, IntPtr.Zero, si, pi);



}


Tramite la parola download è possibile scaricare il file di esempio.

Download esempio

download Componente aggiuntivo Microsoft SQL Server 2008 Reporting Services per le tecnologie Microsoft SharePoint

Vi segnalo un nuovo aggiornamento per sharepoint 2007 e Sql server 2008.
Da questo sito http://www.microsoft.com/downloads/details.aspx?FamilyID=c67a9276-bc20-444c-b60d-8500f4b8d713&DisplayLang=it potete scaricare un componente gratuito, in particolare un componente aggiuntivo Microsoft SQL Server 2008 Reporting Services per le tecnologie Microsoft SharePoint è un download Web che include funzionalità per l'esecuzione di un server di report nell'ambito di una distribuzione più estesa di Windows SharePoint Services 3.0 o Microsoft Office SharePoint Server 2007.
Per il download e maggiori informazioni, visitate il sito indicato.

martedì 10 giugno 2008

sharepoint 2007 impostare il valore di un campo in Windows Workflow Foundation

Il frammento di codice riportato qui di seguito, permette di impostare un campo di un raccolta ed elenchi sito.
In pratica, se abbiamo creato una colonna chiamata valoreA, possiamo impostare da un workflow il suo valore.
Di seguito si riporta il codice di tale operazioni:

VB.Net
dim item as SpListItem = workflowProperties.Item
item("valoreA") = "A"
item.Update()

C#

SPListItem item = workflowProperties.Item;
item["valoreA"] = "A";
item.Update();

Blog relativi al compact framework

Vi segnalo questo sito http://blog.opennetcf.com/ dove si possono leggere interessanti post, dei vari blogger in ambito Compact Framework.
La comunità opennetcf, da alcuni anni, offre un notevole contributo per coloro che lavorano in ambito dello sviluppo software sul palmare o smartphone.
Che dirvi.. buona lettura :-)))

domenica 8 giugno 2008

Free Silverlight Datagrid from DevExpress

Per coloro che utilizzano silverlight, possono trovare interessante questo componente http://www.devexpress.com/Products/NET/Components/Silverlight/Grid/ gratuito, in particolare un datagrid da utilizzare in silverlight.
Dal post di Joe Stagner http://blogs.msdn.com/joestagner/archive/2008/06/08/free-silverlight-datagrid-from-devexpress.aspx

sabato 7 giugno 2008

Asp.Net paginazione di un controllo gridView

Per il sito iprogrammatori http://www.iprogrammatori.it/articoli/programmazione/paginazione_controllo_gridview.asp



Figura 1


Introduzione:


In questo articolo, vedremo come applicare ad un controllo GridView (Asp.Net) la paginazione ed inserire nella prima colonna un pulsante per il rilevamento del dato della riga a cui si è fatto click. Si crea un nuovo progetto Web, inseriamo nella nuova pagina, un controllo gridView ed una label, l'aspetto dev'essere simile come mostrato in figura 1.


Fatto ciò si creano tre colonne per il controllo gridView, due di tipo boundfield ed una tipo buttonField


Di seguito è riportato il frammento di codice delle suddette operazioni.


<Columns>


<asp:ButtonField ButtonType="Button" CommandName="Seleziona" Text="Seleziona" />

<asp:BoundField DataField="Valore A" HeaderText="Valore A" />

<asp:BoundField DataField="Valore B" HeaderText="Valore B" />

<>Columns>

Impostare le proprietà del controllo GridView.


Per applicare la paginazione ad un controllo GridView, occorre impostare a true la proprietà "AllowPaging" del controllo, fatto ciò si imposta la proprietà EnabledSortingAndPagingCallBacks a true (figura 2), in questo modo ci permette di evitare di scrivere il codice per la gestione della paginazione, tale proprietà indica se deve essere eseguito il rendering dello script client per l'ordinamento e la paginazione ai client browser che supportano il callback. La proprietà pageSize, la impostiamo a 5, in questo modo avremo per ogni pagina 5 record.






Figura 2


A questo punto non ci resta, che scrivere nell'evento load della pagina, il codice per il caricamento dei dati nel controllo gridiview.


Di seguito si riporta il frammento di codice per il caricamento dei dati, il dataTable, verrà popolata con 15 righe.


VB.Net


Dim dtcColonnaA As New DataColumn("Valore A")

Dim dtcColonnaB As New DataColumn("Valore B")

Dim dttDati As New DataTable()

dttDati.Columns.Add(dtcColonnaA)


dttDati.Columns.Add(dtcColonnaB)


For conta As Integer = 1 To 15

Dim dtrRiga As DataRow = dttDati.NewRow()

dtrRiga(0) =

"Valore A di " & conta

dtrRiga(1) =

"Valore B di " & conta

dttDati.Rows.Add(dtrRiga)


Next

GridView1.DataSource = dttDati


GridView1.DataBind()



C#


DataColumn

dtcColonnaA = new DataColumn("Valore A");

DataColumn dtcColonnaB = new DataColumn("Valore B");

DataTable dttDati = new DataTable();

dttDati.Columns.Add(dtcColonnaA);


dttDati.Columns.Add(dtcColonnaB);


for (int conta = 1; conta < 16; conta++)

{


DataRow dtrRiga = dttDati.NewRow();

dtrRiga[0] =

"Valore A di " + conta;

dtrRiga[1] =

"Valore B di " + conta;

dttDati.Rows.Add(dtrRiga);


}


GridView1.DataSource = dttDati;


GridView1.DataBind();


A questo punto non ci resta che eseguire la nostra pagina.


Altri consigli.


Con il metodo precedente, si è visto come dotare il controllo gridiview,di paginazione, se nel caso, lasciamo la proprietà EnabledSortingAndPagingCallBacks a false, possiamo gestire la paginazione da codice, nel seguente modo.


Nell'evento PageIndexChanging, del controllo GridView, assegniamo alla proprietà PageIndex, del gridiview il valore della proprietà NewPageIndex della classe GridViewPageEventArgs .


Di seguito si riporta il codice, che permette di gestire la paginazione del controllo.


VB.Net


Protected Sub GridView1_PageIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewPageEventArgs) Handles GridView1.PageIndexChanging

GridView1.PageIndex = e.NewPageIndex


GridView1.DataBind()


End Sub

C#


protected

void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)

{


GridView1.PageIndex = e.NewPageIndex;


GridView1.DataBind();


}


Il pulsante buttonField


Tramite il pulsante buttonField, possiamo aggiungere al controllo GridView, un pulsante di comando. Di seguito si riporta un esempio di codice, che al click di tale pulsante, imposta la proprietà Text del controllo label, con il valore della prima colonna (A) della riga a cui si è fatto click sul pulsante.


VB.Net


Protected

Sub GridView1_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles GridView1.RowCommand

'Verifo che il pulsante a cui si è fatto click è quello giusto


If e.CommandName = "Seleziona" Then

Dim intRiga As Integer = CType(e.CommandArgument, Integer)

lbltesto.Text = GridView1.Rows(intRiga).Cells(1).Text


End If

End Sub



C#


protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)

{


//Verifo che il pulsante a cui si è fatto click èquello giusto


if(e.CommandName == "Seleziona")

{


int riga = Convert.ToInt32(e.CommandArgument);

lbltesto.Text = GridView1.Rows[riga].Cells[1].Text;



}



}


Conclusioni:


In questo articolo, si è visto come applicare ad un controllo gridiview la paginazione senza scrivere un riga di codice, inoltre si è visto come aggiungere un pulsante di comando per rilevare determinati dati. Tramite la parola download è possibile scaricare il file di esempio.


Download

Comunità italiana per ricevere aiuto

Oggi vi segnalo una comunità, nata molti anni fa, una delle prime comunità italiane di aiuto.
Il sito http://www.ioloso.it/ è una comunità in cui le persone possono fare domande e ricevere risposte dagli esperti delle risposte.
Una volta individuata la categoria, si propone la domanda e si attende la risposta dell'esperto.
Per maggiori informazioni ed altro, visitate il sito indicato.

venerdì 6 giugno 2008

Blog su Winodws Mobile

Vi segnalo il blog di Diego Magnani consultabile dal seguetne link http://windowsmobileitaly.blogspot.com/ .
Questo sito è un blog tecnico, riguardante il mondo Windows Mobile, qui potete trovare notizie, trucchi, segnalazioni e recensioni ai palmari e smartphone, con sistema operativo Windows mobile.
L'autore del sito, da anni si occupa di informazione mobile, con una forte preparazione ed esperienza su tale argomento.

Materiale formativo per lo sviluppo in Sharepoint 2007

Vi segnalo questo interessante sito http://www.microsoft.com/click/SharePointDeveloper/ che riguarda dei percorsi formativi, in materia di sviluppo applicazioni in Sharepoint 2007.
Nel sito, troverete, video, documenti, esempi di codice e tanto altro, su questa piattaforma.
Un buon punto di partenza, per coloro che si apprestano ad utilizzare questo ambiente.

mercoledì 4 giugno 2008

Convertire Database Access in Mysql


Vi segnalo un simpatico programma gratuito, per importare il vostro database Microsoft access in Mysql. Dal post del mio amico Massimo Rabbi http://www.securnetwork.net/2008/05/25/bullzip-access-to-mysql-convertire-db-in-modo-facile/ viene segnalato un programma gratuito (scaricabile da qui http://bullzip.com/products/a2m/info.php ) per convertire il vostro database Microsoft Access in Mysql.


Da notare che in tale sito, si trovano altri simpatici programmi gratuiti.


Per il download e maggiori informazioni, visitate il sito indicato.


martedì 3 giugno 2008

Codeplex problemi

Se utilizzate internet explorer versione italiana, avrete notato qualche problema con il sito Codeplex, in particolare nella gestione dei progetti (sezione Release).
Questo è dovuto, al fatto che le impostazioni sono in lingua italiana, se cambiate le impostazioni di lingua (opzioni->lingue->inglese (stati uniti)) con la lingua inglese, il problema viene Risolto.
Un ringranziamento particolare a Seb, come riportato in questo commento http://community.visual-basic.it/Alessandro/archive/2008/06/03/22940.aspx

lunedì 2 giugno 2008

Tre video formativi per la programmazione Access

Dal blog del team di Access http://blogs.msdn.com/access/archive/2008/05/29/three-new-video-demos-on-office-online.aspx viene segnalata una notizia molto interessante, in particolare tre video formativi sulla programmazione Access.
Che dirvi... buona formazione ;-))).

Visual Studio 2008 Italiano - Problemi con le news

Per color che utilizzano Visual Studio 2008, versione italiana, possono riscontrare dei problemi nella visualizzazione delle news.
Il link corretto è il suguente http://go.microsoft.com/fwlink/?linkid=35587&clcid=409 è va applicato nella casella "Canale novità pagina iniziale" opzioni->Ambiente->avvio

domenica 1 giugno 2008

Community credit


Oggi, vi segnalo un simpatica ed interessante comunità.
Community credit http://www.community-credit.com/Default.aspx è una comunità, con più di 10000 iscritti, in questa comunità, ogni giorno si affrontano persone da tutte le parti del mondo, per aggiudicarsi il premio del mese.
Infatti, per coloro che hanno un blog o sito, riguardante argomenti tecnici (Microsoft, .Net, Asp.net, C#, VB.Net, ecc) possono segnalare in questa comunità, il loro operato ed in base alla categoria (articoli, frammenti di codice, notizie, ecc) scelta acquisire un determinato punteggio.
A fine mese chi avrà totalizzato il punteggio più alto (ci sono ben 16 posizioni) vincerà un premio, in base al piazzamento in classica.
Il bello di questa comuntià è proprio quello di invogliare le persone a partecipare attivamente alla vita delle comunità, non occorre scrivere articli, ed altro in lingua inglese ma nella propria lingua.
I premi sono davvero molto belli, simpatici, da utilizzare con il proprio pc.
Che dirvi allora .. buon divertimento ;-))).