sabato 31 marzo 2018

free ebook Entity Framework Core

Entity Framework Core Succinctly

Interessante ebook, in lingua inglese e formato pdf, che illustra le basi e l'utilizzo di Entity Framework Core per utilizzarlo in .Net.
Il manuale scaricabile gratuitamente, fornisce le basi su come utilizzare tale architettura per la gestione dei dati.
Per il download e maggiori informazioni visitate il seguente sito https://www.syncfusion.com/ebooks/entity_frame_work_core_succinctly 

venerdì 30 marzo 2018

asp.net mvc html.textbox readonly

In Asp.Net MVC nel caso che vogliamo rendere un campo di sola lettura, per esempio per visualizzare solo un campo chiave, dobbiamo utilizzare l'attributo disabled e readonly
Qui di seguito un esempio di codice.


@Html.TextBoxFor(model => model.CampoID, new { disabled = "disabled", @readonly = "readonly",   @class = "form-control"   })

Elenco Google Doodle

Se state cercando dei Google Doodle, anche quelli dello stesso giorno ma su ricorrenze di altre nazioni, qui https://www.google.com/doodles trovate l'archivio e la possibilità di consultare il Doodle di Google del giorno anche per altri paesi al mondo.

giovedì 29 marzo 2018

Download Visual Studio 2017 Version 15.7 Preview 2 e Visual Studio for Mac version 7.5 Preview 1

Importanti novità rilasciate in questi giorni, la versione anteprima di Visual Studio 2017 versione 15.7 e l'anteprima per lo sviluppo di applicazioni per Mac, ed in particolare l'ambiente di sviluppo Visual Studio form Mac versione 7.5.

Questi ambienti di sviluppo sono anteprime e si consiglia l'installazione su macchine di prove.


Come riportato in questo post https://blogs.msdn.microsoft.com/visualstudio/2018/03/21/visual-studio-2017-version-15-7-preview-2/ nel quale si parla dell'anteprima per Visual Studio 2017 versione 15.7 mentre qui https://blogs.msdn.microsoft.com/visualstudio/2018/03/21/visual-studio-for-mac-version-7-5-preview-1/ l'anteprima della versione 7.5 di Visual Studio For Mac.

Jquery rilevare il nome della classe di un tag

Tramite la proprietà classname possiamo ottenere il nome della classe.
Qui di seguito un frammento di codice di esempio.


 var nomeClasse = this.className;

mercoledì 28 marzo 2018

Rilasciato Preview 1 of ASP.NET MVC 5.2.5, Web API 5.2.5, and Web Pages 3.2.5

Come riportata qui https://blogs.msdn.microsoft.com/webdev/2018/03/19/announcing-preview-1-of-asp-net-mvc-5-2-5-web-api-5-2-5-and-web-pages-3-2-5/ rilasciata la versione Preview 1 di Asp.Net Mvc 5.2.5 e Web Api.
Essendo anteprime si consiglia l'installazione su pc di prova.

Download Announcing TypeScript 2.8

Come riportato qui https://blogs.msdn.microsoft.com/typescript/2018/03/27/announcing-typescript-2-8/ annunciata il rilascio della versione 2.8 di TypeScript.
Nel post troviamo anche degli esempi di codice.

Jquery nascondere le intestazioni delle colonne di una tabella

Nel caso che vogliamo nascondere le intestazione di una tabella, in JQuery, dobbiamo utilizzare il metodo hide, evidenziando il tag th,  qui di seguito un frammento di codice.


$('#NomeTabella th').hide();

Se invece dobbiamo visualizzarle, dobbiamo utilizzare il metodo show

$('#NomeTabella th').show();

martedì 27 marzo 2018

Evento gratuito sul IOT

Un nuovo evento quello organizzato dalla Community DotNetToscana, che per aprile, hanno pensato di far conoscere ai partecipanti la tecnologia Internet Delle Cose IOT.
Dal seguente sito https://www.eventbrite.it/e/biglietti-microsoft-student-partner-iot-day-powered-by-dotnettoscana-44359552616 potete prendere visione dell'evento, agenda, e del luogo.
Complimenti ai ragazzi della Community Toscana.

lunedì 26 marzo 2018

.Net Firma digitale verifica della firma e file

Si riporta l'articolo scritto per il sito https://www.iprogrammatori.it/articoli/programmazione/art_net-firma-digitale-con-vbnet-e-c-verific_1555.aspx


In questo articolo, riprendiamo il tema affrontato nel precedente articolo  https://www.iprogrammatori.it/articoli/programmazione/art_net-47-la-firma-digitale-tramite-dll-pks_1554.aspx nel quale aggiungiamo alle nostre applicazioni .Net, in particolare Windows Application, la gestione della firma digitale per i file.
Nel precedente articolo è stato fornito al lettore informazioni su come applicare una firma ad un file, mentre in questo vedremo come verificare la firma, ed estrare i contenuti dai file di tipo “p7m” che si sono creati, come visto nel precedente articolo.
Possiamo utilizzare il precedente progetto oppure crearne uno nuovo riguardante il modello desktop di tipo Windows Application.
Dopo aver aggiunto al progetto la libreria Pksuite come mostrato in figura 1, aggiungiamo nella nostra form, due pulsanti, uno riguardante la verifica della firma ed un altro riguardante la possibilità di estrare i file.



Figura 1 – Il riferimento alla libreria Pknet

Passiamo ora in visualizzazione codice, inseriamo lo spazio dei nomi per la gestione , qui di seguito tale dichiarazione per entrambi i linguaggi.



VB.

Imports PKNETLib

Imports System.IO

Imports System.Globalization

C#

 

using PKNETLib;

using System.Threading;

using System.IO;

using System.Globalization;



Ora nell’evento click del pulsante per la verifica della firma dobbiamo scrivere il codice che permetterà di estrapolare le informazioni relative alla firma, quale autore, data firma, data scadenza, etc.
Qui di seguito tale dichiarazioni per entrambi i linguaggi.



VB.Net

Private Sub BtnVerifica_Click(sender As Object, e As EventArgs) Handles BtnVerifica.Click

        Try

 

 

            Dim fileByte As Byte() = File.ReadAllBytes("D:\Progetti\FirmaDigitale\testvb2.pdf")

            Dim envelope As New Envelope()

            Dim verifyInfoVerifica As New VerifyInfo()

            verifyInfoVerifica = DirectCast(envelope.Verify(Nothing, fileByte), VerifyInfo)

 

            If verifyInfoVerifica.GetSignerCount() > 0 Then

                Dim testo As String = ""

                For i As Integer = 0 To verifyInfoVerifica.GetSignerCount() - 1

                    Dim informazioniFirma As SignerInfo = DirectCast(verifyInfoVerifica.GetSigner(i), SignerInfo)

                    testo = "Scaduto: " + informazioniFirma.GetStatusDesc()

                    testo &= "Inizio Validità: " + DateTime.ParseExact(informazioniFirma.GetValidStartDate(), "yyyyMMddHHmmss", CultureInfo.CurrentCulture)

                    testo &= "Fine Validità: " + DateTime.ParseExact(informazioniFirma.GetValidEndDate(), "yyyyMMddHHmmss", CultureInfo.CurrentCulture)

                    testo &= "Ente Certificato: " + informazioniFirma.GetIssuerDN()

                    testo &= "Firmatario: " + informazioniFirma.GetSubjectDN()

                Next

            End If

        Catch ex As Exception

 

            Throw ex

        End Try

 

    End Sub

C#

  private void BtnVerifica_Click(object sender, EventArgs e)

        {

            try

            {

 

 

                byte[] fileByte = File.ReadAllBytes(@"D:\Progetti\FirmaDigitale\test2.pdf");

                Envelope envelope = new Envelope();

                VerifyInfo verifyInfoVerifica = new VerifyInfo();

                verifyInfoVerifica = (VerifyInfo)envelope.Verify(null, fileByte);

 

                if (verifyInfoVerifica.GetSignerCount() > 0)

                {

                    string testo = "";

                    for (int i = 0; i < verifyInfoVerifica.GetSignerCount(); i++)

                    {

                        SignerInfo informazioniFirma = (SignerInfo)verifyInfoVerifica.GetSigner(i);

                        testo = "Scaduto: " + informazioniFirma.GetStatusDesc();

                        testo += "Inizio Validità: " + DateTime.ParseExact(informazioniFirma.GetValidStartDate(), "yyyyMMddHHmmss", CultureInfo.CurrentCulture);

                        testo += "Fine Validità: " + DateTime.ParseExact(informazioniFirma.GetValidEndDate(), "yyyyMMddHHmmss", CultureInfo.CurrentCulture);

                        testo += "Ente Certificato: " + informazioniFirma.GetIssuerDN();

                        testo += "Firmatario: " + informazioniFirma.GetSubjectDN();

                    }

                }

            }

            catch (Exception ex)

            {

 

                throw ex;

            }

 

        }






Come si vede dal frammento di codice in precedenza, da un file pdf o da un file p7m, si rilevano le informazioni del file e si passa al metodo “Verify” dell’oggetto Envelope con il quale otteniamo un oggetto di tipo VerifyInfo, che tramite il metodo GetSignerCount, ci restituisce il numero delle firme per quel file.
Se è presente almeno una firma rilevo alcune informazioni (scadenza, inizio validità etc) di tale firma tramite l’oggetto SignerInfo.
Ora vediamo come estrae i file presenti in un file di tipo “p7m”.
Nell’evento click del pulsante scriviamo il seguente codice.



VB.Net

 

Private Sub BtnEstraiFile_Click(sender As Object, e As EventArgs) Handles BtnEstraiFile.Click

        Try

            Dim fileStream As Stream = File.OpenRead("D:\Progetti\FirmaDigitale\test.p7m")

            Dim envelope As New Envelope()

            Dim verifyInfoVerifica As New VerifyInfo()

 

 

 

            verifyInfoVerifica = DirectCast(envelope.VerifyFile(String.Empty, "D:\Progetti\FirmaDigitale\test.p7m", "D:\Progetti\FirmaDigitale\prova3.jpg"), VerifyInfo)

        Catch ex As Exception

 

            Throw ex

        End Try

    End Sub

C#

   private void BtnEstraiFile_Click(object sender, EventArgs e)

        {

            try

            {

                Stream file = File.OpenRead(@"D:\Progetti\FirmaDigitale\test.p7m");

                Envelope envelope = new Envelope();

                VerifyInfo verifyInfoVerifica = new VerifyInfo();

                verifyInfoVerifica = (VerifyInfo)envelope.VerifyFile(string.Empty, @"D:\Progetti\FirmaDigitale\test.p7m", @"D:\Progetti\FirmaDigitale\prova3.jpg");

 

 

 

            }

            catch (Exception ex)

            {

               

                throw ex;

            }

        }



Tramite il metodo VerifyFile dell’oggetto di tipo Envelope passando come parametro, vuoto, nome del file con la firma, e percorso e nome del file che verrà generato, si crea il file, con il quale abbiamo impostato la firma.

Conclusioni

L’articolo ha voluto fornire e concludere la parte sulla gestione della firma digitale, in questa seconda parte, si è visto come verificare e rilevare le informazioni sulla firma e come estrae i file precedentemente apportati in un file di tipo “P7m”.
In questi due articoli si è visto uno dei tanti modi di come dotare le nostre applicazioni, di tipo Windows Application della firma digitale ai file.

domenica 25 marzo 2018

C# esempio di codice ADO.Net per popolare un dataset

Il frammento di codice qui di seguito, illustra la tecnica per popolare un dataset nel linguaggio di programmazione C#.

 string connectionStrings = System.Configuration.ConfigurationManager.ConnectionStrings["NomeConnessioneConfig"].ConnectionString;
                 DataSet DtsDati = new DataSet();

                using (SqlConnection connection = new SqlConnection(connectionStrings))
                {
                    SqlDataAdapter adapter = new SqlDataAdapter("Select * from Tabella where id=1", connection);

                 
                    adapter.Fill(DtsDati);
                }

sabato 24 marzo 2018

download Python in Visual Studio 15.7 Preview 1

 

Nella versione preview 1 di Visual Studio 15, ci saranno interessanti novità per il linguaggio Python, utilizzabile in questo ambiente di sviluppo.
Come riportato qui https://blogs.msdn.microsoft.com/pythonengineering/2018/03/13/python-in-visual-studio-15-7/ nel quale riporta alcune delle novità.


Download The UWP Community Toolkit v2.2



Come riportato qui https://blogs.windows.com/buildingapps/2018/02/28/uwp-community-toolkit-v2-2/#Cqa35XgHTlqB1rq1.97 è disponibile il Toolkit per lo sviluppo di applicazioni UWP con nuovi controlli.

Per maggiori informazioni o altri visitate il sito indicato.

free ebook introduzione Jquery

jQuery Programming Cookbook

Per coloro che vogliono avvicinarsi alla programmazione Jquery, dal seguente sito https://sf.tradepub.com/free/w_webd04/ possono scaricare un ebook in lingua inglese e formato PDF, che introduce il lettore alla programmazione web con Jquery.
Per scaricare l'ebook bisogna registrarsi gratuitamente nel sito.



venerdì 23 marzo 2018

Convertire video gratuitamente online

video converter


Dal seguente sito http://convertery.com/remote.php la possibilità di convertire i video in vari formati.
Un sito che non richiede nessuna registrazione o indirizzo email da fornire.
La conversione è ottimale, e può essere fatta tramite su file del proprio pc o tramite file presenti sul web.
Per maggiori informazioni ed altro visitate il sito indicato.


giovedì 22 marzo 2018

Microsoft Access 2016 Impostare la maschera predefinita all'apertura di un database di Access

Nel caso che abbiamo la necessità, di impostare una maschera quando si apre il database Microsoft Access 2016, dobbiamo andare nelle impostazioni del database, tramite menu File, cliccare sulla voce "Opzioni" e nella finestra che viene aperta, selezionare la voce "Database Corrente" nella parte destra, alla voce "Visualizza Maschera" impostare la maschera, il tutto come mostrato qui di seguito.



mercoledì 21 marzo 2018

Rilasciata la versione TypeScript 2.8 RC

Come riportato dal seguente post https://blogs.msdn.microsoft.com/typescript/2018/03/15/announcing-typescript-2-8-rc/ da ieri è online la nuova versione di TypeScript 2.8 Release Candidate.
Nel post sono riportate alcune novità e frammenti di codice.

free download ebook Docker

Docker Succinctly

Un nuovo ebook in formato pdf in lingua inglese che possiamo scaricare dal seguente sito https://www.syncfusion.com/ebooks/docker_succinctly riguardante Docker.

Per maggiori informazioni visitate il sito indicato.


martedì 20 marzo 2018

Elenco schema outlook mapi PropertyAccessor

Si riporta qui di seguito i vari codici da utilizzare per il metodo GetProperty della proprietà PropertyAccessor per ottenere le informazioni sull'email in ambito VSTO.

"PR_MESSAGE_CLASS" "http://schemas.microsoft.com/mapi/proptag/0x001A001E"

"PR_SUBJECT" "http://schemas.microsoft.com/mapi/proptag/0x0037001E"

"PR_CLIENT_SUBMIT_TIME" "http://schemas.microsoft.com/mapi/proptag/0x00390040"

"PR_SENT_REPRESENTING_SEARCH_KEY" "http://schemas.microsoft.com/mapi/proptag/0x003B0102"

"PR_SUBJECT_PREFIX PT_STRING8" "http://schemas.microsoft.com/mapi/proptag/0x003D001E"

"PR_RECEIVED_BY_ENTRYID" "http://schemas.microsoft.com/mapi/proptag/0x003F0102"

"PR_RECEIVED_BY_NAME" "http://schemas.microsoft.com/mapi/proptag/0x0040001E"

"PR_SENT_REPRESENTING_ENTRYID" propertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x00410102"

"PR_SENT_REPRESENTING_NAME" "http://schemas.microsoft.com/mapi/proptag/0x0042001E"

"PR_REPLY_RECIPIENT_ENTRIES" "http://schemas.microsoft.com/mapi/proptag/0x004F0102"

"PR_REPLY_RECIPIENT_NAMES" "http://schemas.microsoft.com/mapi/proptag/0x0050001E"

"PR_RECEIVED_BY_SEARCH_KEY" "http://schemas.microsoft.com/mapi/proptag/0x00510102"

"PR_SENT_REPRESENTING_ADDRTYPE" "http://schemas.microsoft.com/mapi/proptag/0x0064001E"

"PR_SENT_REPRESENTING_EMAIL_ADDRESS" "http://schemas.microsoft.com/mapi/proptag/0x0065001E"

"PR_CONVERSATION_TOPIC" "http://schemas.microsoft.com/mapi/proptag/0x0070001E"

"PR_CONVERSATION_INDEX" "http://schemas.microsoft.com/mapi/proptag/0x00710102"

"PR_RECEIVED_BY_ADDRTYPE" "http://schemas.microsoft.com/mapi/proptag/0x0075001E"

"PR_RECEIVED_BY_EMAIL_ADDRESS" "http://schemas.microsoft.com/mapi/proptag/0x0076001E"

"PR_TRANSPORT_MESSAGE_HEADERS" "http://schemas.microsoft.com/mapi/proptag/0x007D001E"

"PR_SENDER_ENTRYID" "http://schemas.microsoft.com/mapi/proptag/0x0C190102"

"PR_SENDER_NAME" "http://schemas.microsoft.com/mapi/proptag/0x0C1A001E"

"PR_SENDER_SEARCH_KEY" "http://schemas.microsoft.com/mapi/proptag/0x0C1D0102"

"PR_SENDER_ADDRTYPE" "http://schemas.microsoft.com/mapi/proptag/0x0C1E001E"

"PR_SENDER_EMAIL_ADDRESS" "http://schemas.microsoft.com/mapi/proptag/0x0C1F001E"

"PR_DISPLAY_BCC" "http://schemas.microsoft.com/mapi/proptag/0x0E02001E"

"PR_DISPLAY_CC" "http://schemas.microsoft.com/mapi/proptag/0x0E03001E"

"PR_DISPLAY_TO" "http://schemas.microsoft.com/mapi/proptag/0x0E04001E"

"PR_MESSAGE_DELIVERY_TIME" "http://schemas.microsoft.com/mapi/proptag/0x0E060040"

"PR_MESSAGE_FLAGS" "http://schemas.microsoft.com/mapi/proptag/0x0E070003"

"PR_MESSAGE_SIZE" "http://schemas.microsoft.com/mapi/proptag/0x0E080003"

"PR_PARENT_ENTRYID" "http://schemas.microsoft.com/mapi/proptag/0x0E090102"

"PR_MESSAGE_RECIPIENTS" "http://schemas.microsoft.com/mapi/proptag/0x0E12000D"

"PR_MESSAGE_ATTACHMENTS" "http://schemas.microsoft.com/mapi/proptag/0x0E13000D"

"PR_HASATTACH" "http://schemas.microsoft.com/mapi/proptag/0x0E1B000B"

"PR_NORMALIZED_SUBJECT" "http://schemas.microsoft.com/mapi/proptag/0x0E1D001E"

"PR_RTF_IN_SYNC" "http://schemas.microsoft.com/mapi/proptag/0x0E1F000B"

"PR_PRIMARY_SEND_ACCT" "http://schemas.microsoft.com/mapi/proptag/0x0E28001E"

"PR_NEXT_SEND_ACCT" "http://schemas.microsoft.com/mapi/proptag/0x0E29001E"

"PR_ACCESS" "http://schemas.microsoft.com/mapi/proptag/0x0FF40003"

"PR_ACCESS_LEVEL" "http://schemas.microsoft.com/mapi/proptag/0x0FF70003"

"PR_MAPPING_SIGNATURE" "http://schemas.microsoft.com/mapi/proptag/0x0FF80102"

"PR_RECORD_KEY" "http://schemas.microsoft.com/mapi/proptag/0x0FF90102"

"PR_STORE_RECORD_KEY" "http://schemas.microsoft.com/mapi/proptag/0x0FFA0102"

"PR_STORE_ENTRYID" "http://schemas.microsoft.com/mapi/proptag/0x0FFB0102"

"PR_OBJECT_TYPE" "http://schemas.microsoft.com/mapi/proptag/0x0FFE0003"

"PR_ENTRYID" "http://schemas.microsoft.com/mapi/proptag/0x0FFF0102"

"PR_BODY" "http://schemas.microsoft.com/mapi/proptag/0x1000001E"

"PR_RTF_COMPRESSED" "http://schemas.microsoft.com/mapi/proptag/0x10090102"

"PR_HTML" "http://schemas.microsoft.com/mapi/proptag/0x10130102"

"PR_INTERNET_MESSAGE_ID" "http://schemas.microsoft.com/mapi/proptag/0x1035001E"

"PR_LIST_UNSUBSCRIBE" "http://schemas.microsoft.com/mapi/proptag/0x1045001E"

"N/A" "http://schemas.microsoft.com/mapi/proptag/0x1046001E"

"PR_CREATION_TIME" "http://schemas.microsoft.com/mapi/proptag/0x30070040"

"PR_LAST_MODIFICATION_TIME" "http://schemas.microsoft.com/mapi/proptag/0x30080040"

"PR_SEARCH_KEY" "http://schemas.microsoft.com/mapi/proptag/0x300B0102"

"PR_STORE_SUPPORT_MASK" "http://schemas.microsoft.com/mapi/proptag/0x340D0003"

"N/A" "http://schemas.microsoft.com/mapi/proptag/0x340F0003"

"PR_MDB_PROVIDER" "http://schemas.microsoft.com/mapi/proptag/0x34140102"

"PR_INTERNET_CPID" "http://schemas.microsoft.com/mapi/proptag/0x3FDE0003"

"SideEffects" "http://schemas.microsoft.com/mapi/proptag/0x80050003"

"InetAcctID" "http://schemas.microsoft.com/mapi/proptag/0x802A001E"

"InetAcctName" "http://schemas.microsoft.com/mapi/proptag/0x804F001E"

"RemoteEID" "http://schemas.microsoft.com/mapi/proptag/0x80660102"

"x-rcpt-to" "http://schemas.microsoft.com/mapi/proptag/0x80AD001E"