dicembre 2007 - Posts
Da qualche settimana, non è possibile accedere al newsgroup italiano Microsoft dal seguente sito http://www.microsoft.com/italy/communities/newsgroups/default.mspx, per coloro che vogliono visualizzare e postare in tale newsgroup, via web, la soluzione la trovate in questo post http://blogs.dotnethell.it/vincent/Problemi-di-accesso-dallinterfaccia-Web-dei-Newsgroup-Microsoft.__12567.aspx .
Ringranzio l'amico Roberdan, per la dritta ;-))).
Da qualche settimana, non è possibile accedere al newsgroup italiano Microsoft dal seguente sito http://www.microsoft.com/italy/communities/newsgroups/default.mspx, per coloro che vogliono visualizzare e postare in tale newsgroup, via web, la soluzione la trovate in questo post http://blogs.dotnethell.it/vincent/Problemi-di-accesso-dallinterfaccia-Web-dei-Newsgroup-Microsoft.__12567.aspx .
Ringranzio l'amico Roberdan, per la dritta ;-))).
Oggi segnalo un programma gratuito per Visual Studio Net riguardante la creazione dei diagrammi UML. Tale programma scaricabile dal seguente sito http://www.tangiblearchitect.net/modellingtools.html permette di aggiungere all'ambiente di sviluppo Visual Studio Net, la possibilità di creare diagrammi.

Oggi segnaliamo un programma gratuito di CMS, ossia un software per la gestione dei contenuti di un sito. Mojoportal http://mojoportal.com/ è un progetto gratuito, scritto in C#, per la gestione dei siti, il software funziona sia sotto Windows, che in ambiente Mono (linux o mac) davvero un ottimo strumento per la programmazione web, in ambito .Net.
Che dirvi... buona creazione dei siti :-)))

Vi segnalo questo sito http://blog.shareoffice.it/emanuele/articles/9365.aspx dove potete leggere un interessante articolo riguardante la programmazione Office, tramite VSTO. In particolare viene descritto come creare uno smart tag in VB.Net e C#.
Che dirvi... buona lettura :-)))
Vi segnalo questo articolo http://blog.shareoffice.it/emanuele/archive/2007/12/14/9358.aspx riguardante la programmazione Word, tramite VB.net.
Buona lettura :-)))
Vi segnalo questo articolo http://blog.shareoffice.it/emanuele/archive/2007/12/10/9338.aspx che illustra una tecnica in Ado.Net e Sql, di come rilevare la descrizione di un campo.

Vi segnalo questo nuovo articolo http://blog.shareoffice.it/emanuele/articles/9334.aspx riguardante la programmazione Excel 2003, in particolare tramite VBA, viene descritto come creare una barra dei pulsanti.
Che dirvi... buona lettura :-)))
Primo PDF http://www.primopdf.com/ è un programma gratuito che permette di stampare in formato pdf. Questo software, oltre che è gratuito si può utilizzare anche nello sviluppo software. Utilizzando le api, si possono fare delle stampe in pdf, direttamente dai propri programmi, la seguente pagina http://www.primopdf.com/primopdf_api.aspx fornisce informazioni ed un esempio di codice in Visual Basic Script.
Articolo Filenet: Eliminare le queue (code) di Filenet tramite la tecnologia .Net (Vb.Net e C#)

Figura 1
Introduzione
In questo articolo conclusivo sulla programmazione Filenet, vedremo l'ultima parte riguardante le queue, in particolare come cancellare una coda (queue) tramite la tecnologia .Net, in particolare con il linguaggio VB.Net e C#, le classi che utilizzeremo a tale scopo, sono queue, queuequeryspecification e queueentry. Si crea una nuova form, nella quale inseriamo tre label per i vari titoli, due controlli listbox, che avranno il compito di riportare i dati da cancellare e due pulsante, uno per eliminare il dato selezionato e l'altro per chiudere la finestra. La form dovrà avere un aspetto simile a quella illustrata in figura 1.
Variabili a livello di form e modifica del costruttore
Si creano a livello di form, due oggetti, uno di tipo queue e l'altro di tipo queuequeryspecification, di seguito si riporta un esempio di codice.
Vb.Net
Dim ObjQueue As IDMObjects.Queue
Dim ObjQueueQuery As IDMObjects.QueueQuerySpecification
C#
IDMObjects.Queue ObjQueue;
IDMObjects.QueueQuerySpecification ObjQueueQuery;
Fatta tale operazione, si modifica il costruttore della form, aggiungendo come argomento un oggetto library, usato in precedenza per effettuare il login a filenet, tale oggetto avrà il compito di creare un isanza dell'oggetto queue, da un determinato workspace (Anagrafica) e queue (dati).
Di seguito si riportano i frammenti di codice delle suddette operazioni.
Vb.Net
Public Sub New(ByVal Objlibreria As IDMObjects.Library)
InitializeComponent()
'inizializzoObjQueue = New IDMObjects.Queue
ObjQueueQuery =
New IDMObjects.QueueQuerySpecification
'imposto la classeObjQueue = Objlibreria.GetObject(IDMObjects.idmObjectType.idmObjTypeQueue, "ANAGRAFICA/DATI")
ObjQueueQuery = ObjQueue.CreateQuerySpecification()
CaricaDati()
End Sub
C#
public FrmEliminaCoda(IDMObjects.Library objlibreria)
{
InitializeComponent();
ObjQueue = new IDMObjects.Queue ();
ObjQueueQuery =
new IDMObjects.QueueQuerySpecification();
//imposto la classeObjQueue = (IDMObjects.Queue) objlibreria.GetObject(IDMObjects.idmObjectType.idmObjTypeQueue, "ANAGRAFICA/DATI", null, null, null );
ObjQueueQuery = ObjQueue.CreateQuerySpecification();
}
Funzione per il caricamento dei dati
La funzione carica dati, ha il compito di valorizzare i controlli listbox con i valori delle queue. Tramite l'oggetto QueueQuerySpecificatio viene eseguita una query, ossia permette di fare una ricerca di determinati valori, mentre con l'oggetto QueueBrowseSet, valorizziamo gli oggetti tramite la proprietà value. Mentre con il metodo movenext scorriamo per tutti i dati.
Di seguito si riporta il frammento di codice di tale funzionalità.
Vb.Net
Private Sub CaricaDati()
Try
'flag per l'accesso al sistema di filenet
ObjQueueQuery.CheckUser =
False
'Indica i valori delle code
ObjQueueQuery.EvenIfDelayed =
False
'permette di impostare o restituire un valore in base allo stato delle queue inserite, ossia se il ritorno della query è incompleta.
ObjQueueQuery.Incomplete = IDMObjects.idmQueueIncompleteOpt.idmIncompleteOK
ObjQueueQuery.MinPriority = 0
'restituisce tutti gli entry anche se sono loccati ossia bloccati
ObjQueueQuery.Status = IDMObjects.idmQueueBusyOpt.idmBusyOK
'oggetto per il risultato della queryDim ObjQueueBrowser As New IDMObjects.QueueBrowseSet
ObjQueueBrowser = ObjQueueQuery.Browse()
Dim ObjErrorManager As New IDMError.ErrorManager
Dim ObjErrori As IDMError.Errors
Dim StrTestoErrore As String = ""Dim objErrore As IDMError.Error
'se la ricerca ha esito negativo ossia no trova nulla restituisce il seguente numero di errore
If ObjErrorManager.Errors.Count > 0 Then
ObjErrori = ObjErrorManager.Errors
If objErrore.Number = -2147208689 Then
MessageBox.Show(
"non ci sono code", "FileNet", MessageBoxButtons.OK, MessageBoxIcon.Information)
Exit Sub
End If
End IfFor inconta As Integer = 1 To ObjQueueBrowser.RecordCount
lstNome.Items.Add(ObjQueueBrowser.Entry.Properties(
"Nome").Value)lstCognome.Items.Add(ObjQueueBrowser.Entry.Properties("Cognome").Value)
'mi sposto avanti di un record
If ObjQueueBrowser.MoreResults = True Then
ObjQueueBrowser.MoveNext()
End IfNext
Catch ex As Exception
Dim ObjErrorManager As New IDMError.ErrorManagerDim ObjErrori As IDMError.Errors
Dim StrTestoErrore As String = ""Dim objErrore As IDMError.Error
If ObjErrorManager.Errors.Count > 0 Then
ObjErrori = ObjErrorManager.Errors
'ciclo per tutti gli erroriFor Each objErrore In ObjErrori
StrTestoErrore = objErrore.Description
Next
Else
StrTestoErrore = ex.Message
End If
MsgBox(StrTestoErrore)
End Try
End Sub
C#
private void CaricaDati()
{
try
{
//flag per l'accesso al sistema di filenet
ObjQueueQuery.CheckUser = false;
//Indica i valori delle codeObjQueueQuery.EvenIfDelayed = false ;
//permette di impostare o restituire un valore in base allo stato delle queue inserite, ossia se il ritorno della query è incompleta.
ObjQueueQuery.Incomplete = IDMObjects.idmQueueIncompleteOpt.idmIncompleteOK ;
ObjQueueQuery.MinPriority = 0;
//restituisce tutti gli entry anche se sono loccati ossia bloccati
ObjQueueQuery.Status = IDMObjects.idmQueueBusyOpt.idmBusyOK ;
//oggetto per le queryIDMObjects.QueueBrowseSet ObjQueueBrowser = new IDMObjects.QueueBrowseSet();
ObjQueueBrowser = ObjQueueQuery.Browse();
for (int intconta = 1; intconta <= ObjQueueBrowser.RecordCount; intconta++)
{
lstNome.Items.Add(ObjQueueBrowser.Entry.Properties[
"Nome"].Value);
lstCognome.Items.Add(ObjQueueBrowser.Entry.Properties[
"Cognome"].Value);
//verifico la fineif (ObjQueueBrowser.MoreResults == true)
{
ObjQueueBrowser.MoveNext();
}
}
}
catch (Exception ex)
{
IDMError.ErrorManager ObjErrorManager =
new IDMError.ErrorManager();
IDMError.Errors ObjErrori;
string StrTestoErrore = "";
IDMError.Error ObjErrore;
//verifico che in filenet ci siano erroriif (ObjErrorManager.Errors.Count > 0)
{
ObjErrori = ObjErrorManager.Errors;
//ciclo per tutti gli erroriforeach (IDMError.Error objErrore in ObjErrori)
{
StrTestoErrore = objErrore.Description;
}
}
else
{
StrTestoErrore = ex.Message;
}
MessageBox.Show(StrTestoErrore, "FileNet");
}
}
Funzione per eliminare la coda selezionata.
Per eliminare una queue (coda) dobbiamo utilizzare il metodo delete dell'oggetto queueentry, il quale elimina il record selezionato.
La funzionalità di elimina, situato nell'evento click del pulsante elimina, permette di eliminare il record selezionato nella lista box, in particolare filtrando per il campo cognome. E' buona norma prima di eliminare il dato accertarsi che esso esista. Di seguito si riporta il codice delle suddette operazioni.
Vb.net
Try
ObjQueueQuery = ObjQueue.CreateQuerySpecification()
ObjQueueQuery.Filters(
"Cognome").Value = lstCognome.Text
'verifico se ho trovato il recordDim ObjQueueBrowser As New IDMObjects.QueueBrowseSet
ObjQueueBrowser = ObjQueueQuery.Browse()
Dim ObjErrorManager As New IDMError.ErrorManager
Dim ObjErrori As IDMError.Errors
Dim StrTestoErrore As String = ""Dim objErrore As IDMError.Error
'se la ricerca ha esito negativo ossia no trova nulla restituisce il seguente numero di errore
If ObjErrorManager.Errors.Count > 0 Then
ObjErrori = ObjErrorManager.Errors
If objErrore.Number = -2147208689 Then
MessageBox.Show(
"Attenzione il record non esiste", "FileNet", MessageBoxButtons.OK, MessageBoxIcon.Information)
Exit Sub
End If
End IfDim ObjQueueEntry As New IDMObjects.QueueEntry
ObjQueueEntry = ObjQueueBrowser.Entry
ObjQueueEntry.MakeReadWrite()
ObjQueueEntry.Delete()
CaricaDati()
Catch ex As Exception
Dim ObjErrorManager As New IDMError.ErrorManagerDim ObjErrori As IDMError.Errors
Dim StrTestoErrore As String = ""Dim objErrore As IDMError.Error
If ObjErrorManager.Errors.Count > 0 Then
ObjErrori = ObjErrorManager.Errors
'ciclo per tutti gli erroriFor Each objErrore In ObjErrori
StrTestoErrore = objErrore.Description
Next
Else
StrTestoErrore = ex.Message
End If
MsgBox(StrTestoErrore)
End Try
C#
try
{
ObjQueueQuery = ObjQueue.CreateQuerySpecification();
ObjQueueQuery.Filters[
"Cognome"].Value = lstCognome.Text ;
//verifico se ho trovato il recordIDMObjects.QueueBrowseSet ObjQueueBrowser = new IDMObjects.QueueBrowseSet();
ObjQueueBrowser = ObjQueueQuery.Browse();
IDMError.ErrorManager ObjErrorManager = new IDMError.ErrorManager();
IDMError.Errors ObjErrori;
string StrTestoErrore = "";
//se la ricerca ha esito negativo ossia no trova nulla restituisce il seguente numero di erroreif (ObjErrorManager.Errors.Count > 0)
{
ObjErrori = ObjErrorManager.Errors ;
foreach (IDMError.Error ObjErrore in ObjErrori)
{
if ( ObjErrore.Number == -2147208689)
{
MessageBox.Show("Attenzione il record non esiste", "FileNet", MessageBoxButtons.OK, MessageBoxIcon.Information);return ;
}
StrTestoErrore = ObjErrore.Description;
}
}
IDMObjects.QueueEntry ObjQueueEntry = new IDMObjects.QueueEntry();
ObjQueueEntry = ObjQueueBrowser.Entry;
ObjQueueEntry.MakeReadWrite();
ObjQueueEntry.Delete();
CaricaDati();
}
catch (Exception ex)
{
IDMError.ErrorManager ObjErrorManager =
new IDMError.ErrorManager();
IDMError.Errors ObjErrori;
string StrTestoErrore = "";
IDMError.Error ObjErrore;
//verifico che in filenet ci siano erroriif (ObjErrorManager.Errors.Count > 0)
{
ObjErrori = ObjErrorManager.Errors;
//ciclo per tutti gli erroriforeach (IDMError.Error objErrore in ObjErrori)
{
StrTestoErrore = objErrore.Description;
}
}
else
{
StrTestoErrore = ex.Message;
}
MessageBox.Show(StrTestoErrore, "FileNet");
}
Conclusioni:
In questo articolo, si è visto come eliminare le code (queue), informazioni importanti relative ai documenti, gli oggetti utilizzati (queue, QueueQuerySpecification, QueueBrowseSet e queueentry) sono gli oggetti da utilizzare per la gestione delle queue. Tramite la parola download è possibile scaricare il progetto di esempio utilizzato nell'articolo.
Download esempio
Siti web di riferimento:
http://www.filenet.com/Italiano/index.asp Italia
http://www.filenetinfo.com/mk/get/feis_ita_reg Per richiedere gratuitamente il cd "FileNet is Essential"
http://www.filenet.com/ (Inglese)
Segnalazione Tools: Editor per Asp.net
Vi segnalo questo interessante tools http://www.codeplex.com/rte per la tecnologia Asp.Net, in particolare sul sito codeplex è possibile scaricare gratuitamente un controllo da inserire nelle proprie pagine web, un editor di testo.
Un tools interessante per coloro che intendono dotare i propri siti Asp.net, di un controllo per la scrittura di testo.
Per download e maggiori informazioni visitate il seguente sito http://www.codeplex.com/rte
Che dirvi... buona programmazione :-))))

Scheda libro
| Lingua |
Inglese |
| Caratteristiche |
300 pagine [191mm x 235mm] |
| ISBN |
1847190987 |
| ISBN 13 |
978-1-847190-98-7 |
| Autore |
Cristian Darie, Bogdan Brinzarea |
| Argomento |
Technologies Microsoft & .NET, AJAX |
| Anno di edizione |
luglio 2007 |
| Prezzo |
Euro 33 |
Il framework Ajax rilasciato da Microsoft nel 2007 http://www.microsoft.com/downloads/details.aspx?FamilyID=ca9d90fa-e8c9-42e3-aa19-08e2c027f5d6&DisplayLang=en e con l'apporto della comunità Asp.net http://asp.net/ajax/downloads/ è una nuova tecnologia per la programmazione WEB. Questa nuova tecnologia, che sarà inclusa con la nuova versione di Visual Studio 2008, permette ai programmatori web, di creare applicazione web con prestazioni elevate, con una maggior velocità nell'eseguire le varie operazioni (caricamento dati, gestione della pagina, ecc). Il libro Microsoft Ajax Library Essentials client-side Asp.Net Ajax 1.0 Explained http://www.packtpub.com/ajax-csharp-essentials/book , edito della case editrice Packt Publishing ( http://www.packtpub.com ) illustra in modo esaustivo questa nuova tecnologia. Gli autori Bogdan Brinzarea e Cristian Darie ( http://www.cristiandarie.ro ) di questo libro, sono scrittori di numerosi pubblicazione. Il libro è un ottima guida per chi si sta avvicinando alla programmazione Web con il Framework Ajax e la tecnologia Asp.Net, nel libro non è incluso nessun cd-rom o dvd, il codice sorgente degli esempi utilizzati nel libro, si possono scaricare dal seguente sito http://www.packtpub.com/support/book/ajax-csharp-essentials oppure qua http://www.packtpub.com/files/code/0987_Code.zip , il libro è composto da 8 capitoli ed una appendice
Ma vediamo in dettaglio i vari capitoli che compongono questo manuale.
Nel primo capitolo viene fatta un introduzione riguardante l'architettura Ajax, ossia come funziona e com'è strutturata. In un primo tempo vengono forniti al lettore informazioni riguardante il sistema Ajax, e di come funziona, oltre a fornire siti interessanti attinenti a questo argomento. Continuando in questo capitolo, viene illustrato come configurare tale sistema e creare la prima applicazione web.
Il secondo capitolo è dedicato ai fondamenti di questo framework. I vari esempi, illustrano il concetto di questa architettura, in particolare illustrando l'utilizzo degli oggetti xmlhttp su cui si basa Ajax, ossia Javascript e Xml
Con il terzo capitolo gli autori illustrano l'utilizzo del linguaggio Javascript, con questa tecnologia. Dopo una breve introduzione riguardante la programmazione ad oggetti, si passa ad una serie di esempi di Javascript. Il capitolo è tutto dedicato al Javascript ed all'utilizzo di alcune funzioni. La parte conclusiva del capitolo è rivolta a Json.
In questi primi tre capitoli si è visto l'architettura della programmazione Web, con il quarto capitolo ci si addentra al framework Microsoft Ajax, fornendo nozioni sulle componenti, (Ajax library, Asp.net 2.0 ajax Extensions, Ajax controll toolkit Base Classe (.Net and Javascript) e Ajax control toolkit components) e sulla comunicazione (WebRequest). Continuando con il capitolo viene spiegato l'utilizzo di Ajax e Asp.Net 2.0 tramite vari esempi con il linguaggio C#.
Il quinto capitolo è dedicato alla programmazione ad oggetti di Javascript e l'utilizzo delle classi di Microsoft Ajax Library .
Il sesto capitolo è dedicato alla creazione di componenti client. In questo capitolo si parla dell'utilizzo DOM. delle classi Sys.Application e Sys.components, l'evento per il caricamento (load) dell'oggetto e della fase di chiusura (unload) .
Nel settimo capitolo viene affrontato un caso di studio, ossia un possibile scenario che si può verificare e di come affrontarlo. Il capitolo è rivolto alla creazione di un componente client.
Il capitolo conclusivo, l'ottavo, riguarda gli strumenti di debug e le tecniche da utilizzare per fare il debug della web application. In questo capitolo il lettore, comprende gli strumenti ed i passi per eseguire il debug di un pagina Web Ajax, per i browser più utilizzati quali Internet Explorer e FireFox, oltre all'ambiente di sviluppo Visual Studio 2005.
La parte conclusiva del libro, fornisce al lettore indicazioni delle classi e funzioni che possono tornare utile al programmatore nello sviluppare applicazioni professionali.
Di seguito si riportano i titoli dei vari capitoli
Chapter 1: AJAX and ASP.NET
Chapter 2: AJAX Foundations
Chapter 3: Object-Oriented JavaScript
Chapter 4: Introducing the Microsoft AJAX Library
Chapter 5: OOP with the Microsoft AJAX Library
Chapter 6: Creating Client Components
Chapter 7: Case Study: Timer and EnhancedTextBox
Chapter 8: Debugging Tools and Techniques
Appendix A: Microsoft AJAX Library Reference
Conclusione:
Un valido libro per chi si avvicina alla programmazione Asp.NEt e Ajax, il linguaggio degli esempi è in C#. Il libro può essere acquistato anche via web, al seguente indirizzo http://www.packtpub.com/ajax-csharp-essentials/book
Si fa presente che tale libro può essere acquistato anche in formato PDF.

Sono lieto di informarvi che sulla rivista VBJ http://webonline.gruppoinfomedia.it/dac/index.php?form_rivista=vbj&form_rivistanum=77 di questo mese (numero 77) sono stati pubblicati, ben due miei articoli riguardante la programmazione Office, tramite VSTO 2005.
Se vi capita di leggervi, fatemi sapere cosa ne pensate ;-)))
Che dirvi... buona lettura ;-))))
Da questo sito http://www.microsoft.com/downloads/details.aspx?FamilyID=38ed2670-a70a-43b3-87f3-7ab67b56cbf2&DisplayLang=en potete scaricare il nuovo database per ambiente mobile. Questa nuova versione presenta diverse novità
Per maggiori informazioni e download visitate il sito indicato.

Da questo sito http://www.microsoft.com/downloads/details.aspx?FamilyID=8315654b-a5ae-4108-b7fc-186402563f2b&DisplayLang=it potete scaricare il nuovo runtime di VSTO 2005 SE, per far eseguire le applicazioni create in questo ambiente.
Questo aggiornamento risolve alcuni bug, della versione precedente.
More Posts
Next page »