mercoledì 24 dicembre 2014

FT: B uon Natale e felice anno nuovo



L'anno si sta concludento, e come ogni anno, questo è il Fuori Tema che più desidero, freddo, the, pioggia, ferie (anche se quest'anno sono poche) e relax, periodo di godimento.

Quest'anno ho dedicato poco tempo al blog, un punto di riferimento per molti programmatori, che di volta in volta inviano l'email con apprezzamenti che mi danno la forza per andare avanti.

Molto tempo l'hoo dedicato ad un progetto sociale tecnologico che ho realizzato nella mia città, Roma, ma prometto per il prossimo anno di essere più attivo.

Qualche giorno di riposo e poi riprendo al lavoro, sperando che il 2015 porti tante cose buone.

Mi fermo qualche giorno e poi dopo le feste riprendo a postare :-).

Auguri a tutti voi programmatori ed affezionati lettori del mio blog, un Natale pieno di amore, ed un 2015 di tante soddisfazioni.

Auguri a tutti voi.

P.S: L'immagine l'ho preso dal profilo del mio amico "Claudio" :-)



domenica 21 dicembre 2014

App Shoppalo una guida per gli acquisti





Shoppalo è una guida agli acquisti che aggrega i cataloghi di centinaia di negozi online.
Con l'App di Shoppalo, si può trovare il prezzo di un prodotto e l'offerta più conveniente rapidamente dal proprio smartphone Android.
Nell'App sono presenti  le guide agli acquisti per orientarsi sulle tipologie di prodotti che si vogliono comprare.
Inoltre si possono richiedere consigli per gli acquisti al Team di Shoppalo dalla sezione Domande/Risposte dell'App.
Nell'App sono implementate tutte le funzionalità presenti sul sito ufficiale:
http://www.shoppalo.it
Qui le caratteristiche più importanti:
- Ricerca testuale e vocale dei prodotti
- Ricerca dei prodotti tramite navigazione per categoria merceologica
- Autocompletamento dei termini di ricerca per aiutare la digitazione
- Archiviazione automatica delle ultime ricerche effettuate in Cronologia
- Filtro delle offerte per marca e prezzo
- Nelle offerte visualizziamo: descrizione, metodi di pagamento, tempi e spese di consegna
- Pubblicazione domande per chiedere consigli su un prodotto che si vuole acquistare, consigli sulla manutenzione, per risolvere dei problemi, ecc
- Possibilità di rispondere alle domande degli utenti per fornire i propri consigli e mettere a disposizione la propria esperienza
- Guide agli acquisti
Link alla scheda su Google Play:
https://play.google.com/store/apps/details?id=it.shoppalo.android

giovedì 11 dicembre 2014

VBA importare i dati in un foglio Excel

Si riporta l'articolo scritto per il sito http://www.iprogrammatori.it/articoli/programmazione/art_importare-dati-in-un-foglio-excel-da-vba_1364.aspx


In questo articolo vedremo come realizzare una procedura in VBA (Visual Basic Application), la quale carica i dati da un file Excel, e li inserisce in un foglio Excel in cui viene eseguita la query.
Si crea un file Excel, nel quale andremo a rilevare i dati, questo file Excel avrà due colonne, in A1 avremo l’intestazione Nome, mentre in B1  il valore Cognome.
Inserite a vostro piacimento i dati.
Aprite un nuovo file Excel il quale caricherà i dati dal file precedentemente creato. Dopo aver aperto il programma Microsoft Excel, tramite la voce di menu “Sviluppo” fate click sul pulsante “Visual Basic” .
Aggiungere al progetto un riferimento alla libreria “Microsoft ActiveX Data Object 2.8 library” in questo modo possiamo utilizzare ADO, per aggiungere tale riferimento, fare click sulla voce “Riferimenti” e successivamente mettere la spunta a tale voce.

Stesura del codice


Si creano le varie funzioni per la gestione dei dati.
La seguente funzione permette di rilevare la stringa di connessione del file Excel dove rilevare i dati.

''''''''''''''''''''''''''''''''''''''''''''''''''
'Funzione che restituisce il pecorso della fonte dati dove rilevare i dati
'
'''''''''''''''''''''''''''''''''''''''''''''''''''
Function OttieniConnectionStringDatiOrigine() As String
Dim percorso As String
percorso = Worksheets("Foglio1").Range("B2")
Dim ConnectionString As String
 ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
                        "Data Source=c:\Dati.xlsx;" & _
                        "Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1;MaxScanRows=1;"""
OttieniConnectionStringDatiOrigine = ConnectionString
End Function


Ora si crea la funzione Macro, ossia la “Sub” che verrà richiamata dalla maschera “Macro” di Excel, che avvia la procedura di importazione dati.
La procedura riportata qui di seguito, permette di avviare il caricamento, dopo aver rilevato i dati dal file Excel, scorre il singolo recordSet per inserirlo nelle prime due celle del file Excel di Destinazione.
Qui di seguito il codice completo di tale procedura.

Option Explicit
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'Macro per importare i dati
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Sub ImportaDati()
On Error GoTo errore
'Oggetti per estrapolare i dati
 Dim ConEstrapolaDati As New ADODB.Connection
 ConEstrapolaDati.Open OttieniConnectionStringDatiOrigine
 'RecordSet per il rilevamento dei dati
 Dim RecEstrapolaDati As New ADODB.Recordset
 Dim QuerySql As String
 QuerySql = "Select Nome, Cognome From [Foglio1$]"
 RecEstrapolaDati.Open QuerySql, ConEstrapolaDati, adOpenKeyset, adLockPessimistic, 1
'verifico se sono presenti dati
If RecEstrapolaDati.RecordCount > 0 Then
    If Not RecEstrapolaDati.EOF Then
        Dim Riga As Integer
        Riga = 2
        'Inserisco i valori per ogni colonna
        Dim ContaRighe As Integer
        For ContaRighe = 0 To RecEstrapolaDati.RecordCount - 1
            Cells(Riga, 1) = RecEstrapolaDati(0) 'nome
            Cells(Riga, 2) = RecEstrapolaDati(1) 'cognome
            Riga = Riga + 1
            RecEstrapolaDati.MoveNext
        Next ContaRighe
        If RecEstrapolaDati.State = adStateOpen Then
            RecEstrapolaDati.Close
        End If
        If ConEstrapolaDati.State = adStateOpen Then
         ConEstrapolaDati.Close
        End If
        Set RecEstrapolaDati = Nothing
        Set ConEstrapolaDati = Nothing
        Exit Sub
    End If
Else
    MsgBox "Non ci sono dati da caricare.", vbInformation, "ImportaDati"
End If
        RecEstrapolaDati.Close
        ConEstrapolaDati.Close
        Set RecEstrapolaDati = Nothing
        Set ConEstrapolaDati = Nothing
 Exit Sub
'Gestione errore
errore:
    MsgBox "ERRORE: " & Err.Description, vbCritical + vbOKOnly, "ImportDati"
     On Error GoTo 0
End Sub


Il codice crea due oggetti, uno di tipo Recordset, che permette la gestione dei dati, mentre l'oggetto Connection, ha il compito di gestire la connessione al file Excel.
Tramite l'oggetto CELLS di VBA, andiamo inserire il valore del recordset nella cella.
Da notare la query SQL, nella quale il nome della tabella, o meglio del foglio è indicato tra parentesi quadrate con il simbolo dollaro.


Conclusioni


L’articolo ha preso in esame un caso reale che si può verificare, uno scenario di realizzare procedure interne al pacchetto Office, ed in particolare di Excel per l’auto caricamento dei dati.
La procedura in VBA si può estendere e renderla più flessibile.

Tramite il link download potete scaricare i file di esempio.

lunedì 8 dicembre 2014

Recensione libro: Sviluppare Universal app per Windows Phone e Windows con XAML e C#





Scheda del libro:

Autore:
Matteo Pagani
Prezzo: Euro 44,90
Caratteristiche:
608 pag - 17x24
Numero Edizione:
1
Anno di edizione: Settembre  2014
ISBN: 9788868950415
Lingua: Italiano
Rilegatura Brossura

Per gli sviluppatori la nuova piattaforma Windows 8.1 e Windows Phone 8.1 ha portato molte novità nello sviluppo di tali applicazioni. Questa nuova architettura ha cambiato anche per alcuni aspetti il modo di realizzare applicazioni, al momento sono pochi i libri in commercio che illustrano lo sviluppo di applicazioni Universal APP, un libro che ritengo interessante è quello della casa editrice LSWR http://www.lswr.it che nel mese di settembre 2014 ha pubblicato un libro fatto molto bene su tale sviluppo.

Il libro Sviluppare Universal App per Windows Phone e Windows con XAML e C# http://www.lswr.it/libro/sviluppare-universal-app-per-windows-phone/ fornisce interessanti indicazioni su tale sviluppo fornendo delle valide basi. Il libro è scritto da Matteo Pagani, uno tra gli esperti in ambito di Windows Phone e MVP qui http://www.qmatteoq.com/ il suo blog .

Ma vediamo in dettaglio i vari capitoli di questo libro.

Come in ogni buon libro che si rispetti, il primo capitolo viene fornita al lettore una valida introduzione sulle due piattaforme, quella relativa a Windows 8.1 per dispositivi PC e quella per mobile. Informazione utile per chi si avvicina per la prima volta a questo mondo.

Nel secondo capitolo, si entra nel vero sviluppo delle applicazioni, nelle prime pagine l’autore del libro fornisce indicazioni sulla struttura del progetto, i vari file e l’architettura per poter aver una valida base nello sviluppo.

Nel capitolo tre, si passa all’utilizzo dei controlli che troviamo in questa nuova versione di Windows. Nel capitolo troviamo diversi esempi di codice accompagnati da altrettante immagini. Nel capitolo troviamo esempi sul controllo Layout, Grid, Canvas, VariableSizedWrapGrid, ScrollViewer, Controllo Border, Textblock, e tanti altri. Un capitolo che fornisce al lettore una valida base ed autonomia nell’utilizzare i vari controlli.

Il capitolo quarto affronta argomenti importanti e che ogni sviluppatore deve conoscere. Nelle prime pagine viene illustrato come gestire la visualizzazione della nostra applicazione nel dispositivo, tenendo conto della risoluzione, e dimensioni, aspetti importanti da non sottovalutare. Continuando nella lettura del capitolo, si cambia argomento affrontando la navigazione tra pagine, un aspetto molto conosciuto per chi in passato ha già programmato con la tecnologia Silverlight. La parte conclusiva del capitolo riguarda il ciclo di vita del programma.

Il quinto capitolo, riguarda aspetti che ogni programmatore deve prima o poi affrontare la gestione dei file, ed il salvataggio dei dati in una base dati. Nel capitolo troviamo interessanti esempi di codice che guidano il lettore passo dopo passo nel saper gestire i file e le cartelle. Nel capitolo troviamo esempi di codice per la gestione dello storage, sqllite e le impostazioni.

Nel capitolo sesto, troviamo esempi di codice mirati al web, in particolare upload dei file, l’utilizzo di internet, utilizzare Json, la gestione dei Rss ed altri interessanti esempi di codice.

Con il capitolo 7, si passa ad alcuni aspetti che è bene sapere anche se a volte non si utilizzano, in particolare nel capitolo sono riportati esempi sulla geo localizzazione, il controllo Mapcontrol, il controllo bing maps, i sensori di movimento, il bluetooth.

Nel capitolo ottavo, vediamo come interagire con il sistema, un aspetto importante per la condivisione dei contenuti. Tra i numerosi esempi, vedremo come inviare un sms, impostare un appuntamento nel calendario, inviare una email, aggiungere eliminare o modificare un contatto e tanti altri esempi. Un capitolo che illustra in maniera esaustiva l’argomento trattato.

Il nono capitolo, l’autore del libro affronta in maniera dettagliata e con numerosi esempi di codice ed immagini l’argomento multimedialità, in particolare la gestione dei video, l’audio, l’utilizzo della fotocamera, tanti aspetti che possono tornare utile durante lo sviluppo della nostra applicazione.

Nel capitolo decimo, il lettore al termine del capitolo sarà in grado di utilizzare in maniera autonoma e senza problemi la gestione delle notifiche. In questo capitolo sono riportati numerosi esempi di codice, che guideranno passo per passo l’utente alla gestione delle notifiche.

Nel penultimo capitolo (11) viene fornita al lettore le basi per l’utilizzo di operazioni in background.

L’ultimo capitolo, (12) anche se è molto breve affronta diversi aspetti della pubblicazione. Un capitolo che fornirà al lettore quella conoscenza che gli permetterà di rendere la propria applicazioni accessibile a tutti gli utenti, pubblicandola nello store.





Qui di seguito si riportano i vari capitoli del libro. el libro.

1)  Introduzione alle Universal Windows APP.
2) Il primo proetto e i concetti base di XAML e C#.

3) I contorlli di Windows e Windows Phone.

4)  I concetti fondaimentali: Risoluzioni, navigazione, e ciclo di vita.

5) Accesso ai dati: File, Database e impostazioni.

6) Accesso ai dati: Interagire con la rete.

7) Interagire con il mondo reale.

8) Integrarsi con il sistema: Contratti ed estensioni.

9) Sviluppare applicazioni multimediali.

10) Tile e notifiche.

11) Multitasking: Effettuare operazioni in background.

12) Pubblicare un'applicazione sugli store.





Conclusioni
   
Un libro fondamentale per chi si avvicina alla programmazione per Windows 8.1 in particolare per il mobile. Un libro che fornirà al programmatore quella preparazione e conoscenza di base richiesta per lo sviluppo di applicazioni. Il manuale affronta in maniera esaustiva e completa l'argomento trattato. Un libro che ritengo fondamentale e che non deve mai mancare in una libreria di un buon programmatore.

martedì 2 dicembre 2014

Conferenza Esri Italia 2015

alt


Ritorna l'appuntamento più importante dell'anno, la conferenza Esri Italia, che si terrà il 15 e 16 aprile 2015 presso Ergife Palace Hotel di Roma.

L'evento vuole fare il punto della situazione sul GIS, riportare i vari casi di successo e le novità del momento.

L'evento è aperto a tutti ed è gratuito, per maggiori informazioni ed iscrizioni visitate il seguente sito http://www.esriitalia.it/eventi/conferenza-italiana-utenti-esri/conferenza-esri-italia-2015.html

martedì 25 novembre 2014

Entity Framework C# Creating a copy of an entity object

Nella gestione delle entità, può capire l'esigenza di avere due oggetti con gli stessi dati, compresa anche la chiave primaria. E di creare una copia dell'oggetto (tranne per il valore chiave) come nuovo record.
Se proviamo a modificare la chiave, verrà scatenata un'eccezione, nel quale non è possibile modificare il campo chiave.
Per risolvere tale problema, dobbiamo utilizzare il metodo ChangeObjectState della proprietà ObjectStateManager della classe contesto
Qui di seguito un esempio ne linguaggio C#:


MIATABELLA objTab = Dato();
  Context.ObjectStateManager.ChangeObjectState(objTab , EntityState.Added);
objTab.ProprietA1 = "Valore";
objTab.CHIAVE = "Nuovo valore";
 Context.SaveChanges();

sabato 22 novembre 2014

Ext.Net 1.x GridPanel problem cell layout Chrome

In alcune versioni di Chrome, utilizzando il controllo GridPanel versione 1.x, si verifica un errore di formattazione, con l'ultima cella disallineata alla griglia.
Per ovviare a tale problema, inserire nella parte css della pagina Aspx, il seguente stile.

 .x-grid3-cell
        {
        
            box-sizing: border-box;
        }

giovedì 20 novembre 2014

Ext.Net How to show loading mask on the page eventi click button

Nella versione 1.x di Ext.Net, se vogliamo visualizzare la maschera di attesa durante il click di un pulsante, dobbiamo impostare nell'evento click del pulsante il parametro eventMask.
L'esempio qui di seguito illustra come eseguire l'evento   click del pulsante, utilizzando il parametro per la visualizzazione della maschera di attesa.



 Click Handler="Coolite.AjaxMethods.Evento_Click({eventMask:{showMask:true, msg:'Caricamento in corso...'}});" 

 


martedì 18 novembre 2014

ext.net textfield numbers only

Nel caso che si vuole rendere il controllo  Textfield di tipo solo numerico, impostando la proprietà  MaskRe="[0-9]*"
Opppure utilizzare il controllo NumberField.

venerdì 14 novembre 2014

Download free Visual Studio Community 2013

Novità importante per tutti gli sviluppatori, da qualche giorno è possibile scaricare gratuitamente la versione Visual Studio Community 2013, un nuovo ambiente di sviluppo, simile a Visual Studio 2013 professional, ideato per singoli programmatori, studenti e per progetti open source.
Per il download e maggiori informazioni visitate il seguente sito http://www.visualstudio.com/en-us/products/visual-studio-community-vs

mercoledì 12 novembre 2014

Download Microsoft Visual Studio Ultimate 2015 Preview

Developer Tools


Dal seguente sito http://www.microsoft.com/en-us/download/details.aspx?id=44934 è possibile scaricare la versione Visual Studio 2015 preview, il nuovo ambiente di sviluppo di Microsoft.
Si ricorda che essendo una versione beta, si consiglia l'installazione su macchine virtuali.

domenica 9 novembre 2014

.Net eseguire query su database diferenti C# e VB.Net

Si riporta l'articolo scritto per il sito http://www.iprogrammatori.it/articoli/programmazione/art_eseguire-query-su-database-differenti_1355.aspx


In questo articolo vedremo come realizzare una semplcie applicazione che permette di eseguire le query su database differenti, in particolare nell'articolo vedremo come effettuare la select su un database di tipo Microsoft Access e Microsoft Sql Server, il tutto utilizzando le librerie Enterprise Library, di Microsoft.

Creazione del progetto

Si crea un progetto di tipo Windows Application, selezionando il linguaggio di programmazione di proprio interesse.
Nella form, inserimano alcuni controlli come una label, una textbox e due pulsanti.
I pulsanti avranno il compito di eseguire le query che viene per i vari database, un pulsante per il database Access e l'altro per il pulsante SQL.

Stesura del codice

Passiamo in visualzzazione codice ed aggiungiamo lo spazio dei nomi riguardante la gestione dei database ed in particolare della libreria EnterpriseLibrary.Data.
Qui di seguito si riporta tale frammento di codice:



VB.Net

 
Imports System

Imports System.Collections.Generic

Imports System.Linq

Imports System.Text

 

Imports System.IO

Imports Microsoft.Practices.EnterpriseLibrary.Data

Imports System.Data

Imports System.Data.Common

 

C#

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.IO;

using Microsoft.Practices.EnterpriseLibrary.Data;

using System.Data;

using System.Data.Common;

using System.Windows.Forms;

 

Ora dobbiamo scrivere il codice che fornita una query, o meglio un istruzione SQL la esegua a prescindere dalla fonte dati.
La funzione qui di seguito, accetta tre argomenti,  la connessione alla fonte dati, ossia la query string, il tipo di provider, ossia che base, (Sql Server, Access, Oracle, etc) e la query.
La funzione restituisce un oggetto di tipo Database, il quale viene valorizzato, quando si esegue la funzione ExecuteDAtaSet dell'oggetto di tipo Database.
Qui di seguito si riporta il frammento di codice per entrambi i linguaggi.



Vb.Net

Function GetDati(Connessione As String, Provider As String, Sql As String) As DataTable

 

        Dim RisultatoDTT As New DataTable

        Try

            Dim dbProviderFactory As DbProviderFactory = DbProviderFactories.GetFactory(Provider)

 

            Dim Database As Database = New GenericDatabase(Connessione, dbProviderFactory)

 

 

            Dim dbCommand As DbCommand

 

            DbCommand = Database.GetSqlStringCommand(Sql)

 

 

            RisultatoDTT = Database.ExecuteDataSet(dbCommand).Tables(0)

 

 

 

 

        Catch ex As Exception

            Throw ex

        End Try

 

 

        Return RisultatoDTT

 

    End Function

 

 

C#

 

          DataTable GetDati  (string Connessione, string Provider, string Sql)

        {

            DataTable RisultatoDTT = new DataTable();

            try

            {

 

                DbProviderFactory dbProviderFactory = DbProviderFactories.GetFactory(Provider);

 

                Database database = new GenericDatabase(Connessione, dbProviderFactory);

 

                DbCommand  dbCommand = default(DbCommand);

 

                dbCommand = database.GetSqlStringCommand(Sql);

 

 

                RisultatoDTT = database.ExecuteDataSet(dbCommand).Tables[0];

 

 

            }

            catch (Exception ex)

            {

 

                throw ex;

            }

            return RisultatoDTT;

        }


Ora non ci resta che scrivere la funzione per eseguire tale query.
Un pulsante richiamerà la funzione impostando come valori, la connectionstring, il tipo di database e la query.
Qui di seguito si riporta il codice per entrambi i linguaggi e per i due database.




Access

Vb.Net

Private Sub btnEsegui_Click(sender As System.Object, e As System.EventArgs) Handles btnEsegui.Click

        Dim Dati As DataTable = GetDati("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\test.mdb", "System.Data.OleDb", TxtSql.Text)

        MessageBox.Show("Record Totali: " & Dati.Rows.Count)

 

    End Sub

 

C#

private void btnEsegui_Click(object sender, EventArgs e)

        {

            DataTable Dati = GetDati(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\test.mdb", "System.Data.OleDb", TxtSql.Text);

            MessageBox.Show("Record Totali: " + Dati.Rows.Count);

 

 

        }

 

 

Sql Server

 

VB.Net

Private Sub BtnEseguiMS_Click(sender As System.Object, e As System.EventArgs) Handles BtnEseguiMS.Click

        Dim Dati As DataTable = GetDati("Server=localhost;Database=test;Trusted_Connection=True;", "System.Data.SqlClient", TxtSql.Text)

 

        MessageBox.Show("Record Totali: " & Dati.Rows.Count)

 

    End Sub

 

C#

private void button1_Click(object sender, EventArgs e)

        {

            DataTable Dati = GetDati(@"Server=localhost;Database=test;Trusted_Connection=True;", "System.Data.SqlClient", TxtSql.Text);

            MessageBox.Show("Record Totali: " + Dati.Rows.Count);

 

        }




Conclusioni
L'articolo ha voluto illustrare una tecnica per estrapolare i dati da database differenti, rendendo in questo modo il nostro programma flessibile su più fonti di dati. Questa tecnica ci permette di rendere le nostre applicazioni flessibili con un alta interoperabilità nella gestione di database differenti, senza modificare il codice.
Tramite semplici impostazioni al programma, che possono essere passate anche dall'esterno, possiamo renderlo facilmente flessibile minimazzando la manutenzione del codice.



Tramite il link download è possibile scaricare il file di esempio di questo articolo.

giovedì 6 novembre 2014

Ext.Net getValue DateField javascript

Il frammento di codice qui di seguito, illustra una tecnica di come ottenere il valore di un controllo DateField in Javascript, in formato mese anno.

DataField1.getValue().format('mY')

domenica 2 novembre 2014

Visual Studio Arduino




Se siete interessati a sviluppare le applicazioni per Arduino in ambiente Visual Studio, dal seguente sito http://www.visualmicro.com/ potete scaricare un componente per Visual Studio che integra in tale ambiente di sviluppo tale possibilità.


mercoledì 29 ottobre 2014

Free ebook: Creating Mobile Apps with Xamarin.Forms, Preview Edition

Creating Mobile Apps with Xamarin.Forms, Preview Edition















Come riportato dal seguente post qui http://blogs.msdn.com/b/microsoft_press/archive/2014/10/08/free-ebook-creating-mobile-apps-with-xamarin-forms-preview-edition.aspx la possibilità di scaricare gratuitamente un ebook contenente alcuni capitoli del libro di prossima uscita sulla creazione di applicazioni mobili con Xamarin.

Che dirvi .... buona lettura




martedì 28 ottobre 2014

Rilevare da una immagine QRCode le informazioni

Si riporta l'articolo scritto per il sito http://www.iprogrammatori.it/articoli/programmazione/art_rilevare-da-una-immagine-qrcode-le-infor_1353.aspx



In questo articolo vedremo come rilevare le informazioni contenute in una immagine di tipo QRCode, il tutto tramite .Net 4.0, con il linguaggio di programmazione VB.Net e C#
Prima di tutto bisogna scaricare la libreria Zxing il download di tale libreria si può effettuare dal seguente sito http://zxingnet.codeplex.com/ , dopo averla scaricare e decompresso la cartella, aggiungere nei riferimenti del progetto la libreria zxing.

Stesura di codice

Creare un progetto di tipo Windows Application, selezionando il linguaggio di vostro interesse, inseriamo un pulsante che all'evento click andrà a rilevare da una immagine situata nel pc, le informazioni.
Dalla finestra esplora soluzione, aggiungere il riferimento alla libreria, la quale tramite appositi metodi ci permetterà di estrapolare i dati relativi alla immagine.
Aggiungiamo lo spazio di nomi zxing, qui di seguito si riporta un esempio di codice per i linguaggi di programmazione Visual Basic Net e C#.



VB.Net

Imports ZXing

 

C#

using ZXing;

La classe BarcodeReader ci permettere di gestire le immagini di tipo QrCode, tramite il metodo Decode, passando lo stream di un file immagine, rilevare le informazioni di tale immagine.
La proprietà Text ci restituisce il testo, mentre la proprietà format il formato.
Qui di seguito si riporta un frammento di codice da utilizzare all'evento click del pulsante


VB.Net

Private Sub BtnLeggi_Click(sender As System.Object, e As System.EventArgs) Handles BtnLeggi.Click

        Dim RilevaBarcodeReader As IBarcodeReader = New BarcodeReader()

        Dim BitMapBarcode As Bitmap = Bitmap.FromFile("E:\ImgQrCode.jpg")

        Dim risultato = RilevaBarcodeReader.Decode(BitMapBarcode)

        If Not risultato Is Nothing Then

            MessageBox.Show("Formato: " + risultato.BarcodeFormat.ToString() + "  Testo: " + risultato.Text)

        End If

    End Sub

 

 

C#

  private void BtnLeggi_Click(object sender, EventArgs e)

        {

            IBarcodeReader RilevaBarcodeReader = new BarcodeReader();

            var BitMapBarcode = (Bitmap)Bitmap.FromFile("E:\\ImgQrCode.jpg");

            var risultato = RilevaBarcodeReader.Decode(BitMapBarcode);

           

            if (risultato != null)

            {

                MessageBox.Show("Formato: " + risultato.BarcodeFormat.ToString() + "  Testo: " + risultato.Text );

            }

        }




Conclusioni
L'articolo, ha voluto fornire al lettore le informazioni basilari di come rilevare le informazioni da una immagine di tipo QrCode, tramite un componente gratuito.
L'articolo prende spunto dal precedente http://www.iprogrammatori.it/articoli/programmazione/art_net-generare-un-codice-qrcode-vbnet-e-c_1346.aspx  che illustra la tecnica di come generare un immagine di tipo QrCode.
Tramite il link  "Download codice" potete scaricare il file di esempio.


Download codice







lunedì 27 ottobre 2014

Get number page pdf iTextSharp

Se vogliamo ottenere il numero delle pagine di un file pdf, tramite la proprietà NumberOfPages della classe PdfReader possiamo sapere quante pagine è composto un file pdf.

domenica 26 ottobre 2014

VB.Net Linq select Impossibile assegnare il valore null a un membro di tipo System.Int32 con tipo di valore non nullable

Può capitare che durante l'utilizzo di Linq per effettuare una select in una fonte dati il cui campo di tipo Integer, presenta valore null, visualizza il seguente messaggio "Impossibile assegnare il valore null a un membro di tipo System.Int32 con tipo di valore non nullable.".
Questo perchè il campo di tipo integer non supporta valori null.

Per ovviare a questo, durante la selezione dei campi, impostare una condizione If con un valore in caso di minore di 1 fornirà 0 oppure vuoto.


Qui di seguito un esempio in VB.Net

'Valore 0
  Dim risultato = (From Dati In MioOggetto.Metodo()  Select New With {.Campo= Dati.Nome, .Campo2= Dati.Cognome,  .CampoInteger = If(Dati.Eta> 0, Dati.Eta, 0)})


'Valore 1.


Dim risultato = (From Dati In MioOggetto.Metodo() Select New With {.Campo= Dati.Nome, .Campo2= Dati.Cognome, .CampoInteger = If(Dati.Eta> 0, Convert.ToString(Dati.Eta), Convert.ToString(""))})

martedì 21 ottobre 2014

cms Orchard

Dal seguente sito http://www.orchardproject.net/ potete scaricare un CMS gratuito in ambito Asp.Net.
Il software di facile utilizzo è gratuito.

venerdì 17 ottobre 2014

VB.Net ottenere il giorno della setitmana

Se vogliamo ottenere il giorno della settimana, tramite la proprietà DayOfWeek si ottiene il giorno della settimana.
Nel frammento di codice qui di seguito verifichiamo se è uguale a sabato.

If DateTime.Parse(Data).DayOfWeek = DayOfWeek.Saturday  then
'Codice

End If

giovedì 16 ottobre 2014

datatable add primary key column

Se vogliamo aggiungere una chiave primaria ad una colonna in maniera dinamica, dobbiamo impostare la proprietà PrimaryKey della classe DataTable con il nome della colonna.
Qui di seguito un frammento di codice.


 MioDataTable.Columns.Add(New DataColumn("ColonnaChiave"))
        MioDataTable.PrimaryKey = New DataColumn() {MioDataTable.Columns("ColonnaChiave")}

mercoledì 15 ottobre 2014

DataTable metodo find per filtrare i dati

Tramite il metodo Find della proprietà Rows, possiamo filtrare nelle colonne chiave i record.
Qui di seguito si riporta un frammento di esempio

Dim Riga As DataRow = DataTable.Rows.Find("Valore")

domenica 12 ottobre 2014

Generare codice QRCode in .Net VB.Net e C#

Si riporta l'articolo scritto per il sito http://www.iprogrammatori.it/articoli/programmazione/art_net-generare-un-codice-qrcode-vbnet-e-c_1346.aspx

Sempre più in questi ultimi mesi si utilizzano i QrCode, immagini di tipo barcode che nascondono del testo o altra informazione.
I Qrcode sono utilizzati soprattutto per rilevare informazioni (per di più siti internet) tramite dispositivi mobili, come uno smartphone e tablet, nel quale leggendo tramite apposito programma l’immagine rilevano le informazioni.
In questo articolo spieghiamo come realizzare un'applicazione che genera un codice QRCode, utilizzando una libreria gratuita quale ZXing.Net.

Libreria ZXing.Net

Prima di creare un nuovo progetto, di tipo Windows Application, si deve scaricare la libreria ZXing, dal seguente sito http://zxingnet.codeplex.com/ a questo punto nella sezione “Download” scaricare la versione più aggiornata.
Terminato il download del file e scompattato aprire il proprio ambiente di sviluppo, Visual Studio 2010 (o versione successiva) selezionando il tipo di progetto “Windows Application” in base al proprio linguaggio di interesse.
Nella form, inserite un controllo di tipo Button ed un controllo di tipo image, quest’ultimo visualizzerà l’immagine
Dopo aver decompresso il file .Zip, aggiungete il riferimento (tasto destro sul nome del progetto, nella finestra esplora soluzione e selezionare il menu “Aggiungi riferimento”) alla libreria versione 4.0.

Stesura del codice

Ora non ci resta che scrivere il codice passando in visualizzazione codice.
Occorre referenziare lo spazio di nomi per l’utilizzo della libreria zxing, inseriamo la seguente dichiarazione di spazio di nomi per i linguaggi di programmazione VB.Net e C#.


VB.Net

Imports ZXing

 

C#

using ZXing;


A questo punto nell’evento click scriviamo il codice che ci permette di generare l’immagine QrCode.
Il codice è molto semplice, dopo aver dichiarato un oggetto di tipo “IBarcodeWriter”, si stabilisce il formato di scrittura, a questo punto tramite il metodo “Write” passando un valore di tipo string, viene generato un oggetto che verrà convertito in immagine per poi essere visualizzato in un controllo picturebox.



VB.Net

Dim Testo As String = "http://www.iprogrammatori.it"

        Dim GeneraBarcode As IBarcodeWriter = New BarcodeWriter() With {.Format = BarcodeFormat.QR_CODE}

        Dim bitmapBarcode As Bitmap

        Dim risultato = GeneraBarcode.Write(Testo)

        bitmapBarcode = New Bitmap(risultato)

        PictureBox1.Image = bitmapBarcode

 

C#

string Testo = "http://www.iprogrammatori.it";

            IBarcodeWriter GeneraBarcode = new BarcodeWriter() { Format = BarcodeFormat.QR_CODE };

            Bitmap bitmapBarcode;

            var risultato = GeneraBarcode.Write(Testo);

            bitmapBarcode = new Bitmap(risultato);

            PictureBox1.Image = bitmapBarcode;

 

Conclusioni

Tramite il link “Download” potete scaricare il file di esempio utilizzato in questo articolo.
L’articolo ha voluto fornire le basi per avvicinarsi al mondo della gestione del QrCode, in particolare nella generazione dei qrcode, tramite una libreria gratuita.

Download

giovedì 2 ottobre 2014

download free Windows 10 Technical Preview


A PC running Windows Technical Preview


Dal seguente sito http://windows.microsoft.com/en-us/windows/preview-download è possibile scaricare la versione di test del nuovo sistema operativo Windows.

Ricordiamo che essenso una versione ancora in fase di sviluppo da installare e provare o su macchine virtuale o su pc di test, perchè non è una versione stabile.
Che dirvi... buono studio.


martedì 30 settembre 2014

ext.net problem RadioGroup set checked

Il frammento di codice illustrato qui di  seguito riguarda una tecnica di come impostare in un controllo Radio situato in un Radiogroup il valore di spunta.

Può capitare che durante l'apertura di una finestra (oggetto Window) il valore di un controllo Radio situato in un controllo RadioGroup non venga valorizzato.

Qui di seguito, il frammento di codice che illustra tale tecnica.





  RadioGroup1.Items[1].Checked = false;
            RadioGroup1.Items[2].Checked = false;
            var value = new InsertOrderedDictionary();
            value.Add("radio1", "true");
            RadioGroup1.CustomConfig.Add(new ConfigItem("Checked", JSON.Serialize(value), ParameterMode.Value));


lunedì 22 settembre 2014

Download ViVo Next 3.0 ed il Computer Legge per Te

ViVo Next 3.0 il computer legge per te










Rilasciata la nuova versione di Vivo Next 3.0 http://www.istitutomajorana.it/index.php?option=com_content&task=view&id=2354&Itemid=33 un programma molto importante per coloro che hanno problemi di vista.

Il programma è un ausilio visivo e vocale, adatto per ipovedenti e dislessici, la nuova versione comporta novità interessanti.

Ricordiamo che il programma è portable che non richiede nessuna installazione.

Complimenti ad Antonio e Silvio, per questo programma che hanno realizzato.









domenica 21 settembre 2014

WINDOWS EMBEDDED 8.1 Industry Pro: l'embedded facile da usare!

Il 2 ottobre 2014 alle 15 (CET) ci sarà un Seminario ON-LINE gratuito presentato da Cesare De Siena (AVNET Embedded) e da Beppe Platania (BEPS) su:

WINDOWS EMBEDDED 8.1 Industry Pro: l’embedded facile da usare!

WE8.1 Industry Pro e Industry Pro Retail vi permettono di implementare la tecnologia Windows 8.1 sui vostri dispositivi embedded in maniera rapida ed sicura.

Per conoscere i dettagli e le funzionalità del nuovo sistema operativo registratevi
qui

Agenda:

Il processo di Build da ISO/DVD (Next, next,... finito!)

 
-
Procedura semplice e veloce
 
-
Come gestire i driver di Windows
 
-
Le funzionalità di Windows
 
-
Le funzionalità Embedded
 
-
Un accenno al gestore delle funzionalità Embedded (ELM) 
 
-
Cattura dell'immagine (copia MASTER)
 
-
Duplicazione dell'immagine (copia MASTER)

l processo di Build con WSIM/WinPE (AIK)

 
-
Cos'è AIK
 
-
Cos'è WinPE
 
-
Come personalizzare Industry prima della build
 
-
Come personalizzare I'Answer-file di clonazione

ISCRIVITI AL SEMINARIO ON-LINE GRATUITO SU WINDOWS EMBEDDED 8.1 INDUSTRY PRO

Il Seminario, della durata di 45 minuti, si svolgerà on-line in italiano il 2 OTTOBRE alle 15 (CET)
Per partecipare bisogna registrarsi gratuitamente al seguente sito http://www.avnet-emb.eu/webinar/windows-embedded/italy dove si può consultare l'agenda dell'evento.