May 7th, 2008 by Delivery
No comments »
May 5th, 2008 by Delivery
No comments »
In questi giorno ho ricevuto delle mail che mi segnalavano l’impossibilità a contattarmi mediante il form “Contact me” del mio blog. MI scuso con tutti quelli che hanno provato a farlo e che non sono riusciti.
Comunque il tutto è stato ripristinato
Grazie
April 29th, 2008 by Delivery
No comments »
A chi non è mai venuto in testa di crittare i propri dati in maniera abbastanza sicura? A me di certo capita tutti i giorni. Spero che questo breve tutorial possa aiutarvi a realizzare una encription abbastanza potente:
Vi allego la classe pronta all’utilizzo:
StringsExtensions.zip
Vi basterà importarla nel vostro codice:
ImportsWindowsApplication1.StringExtensions
ed utilizzare i metodi in questo modo:
Dim stringaDaCrittare = "Ciao Gaetano"
Dim stringaCrittata As String
stringaCrittata = stringaDaCrittare.Trim.CryptFromString("gaetano")
In questo modo abbiamo crittato la nostra stringa “stringaDaCrittare” con il metodo Rfc2898DeriveBytes messo a disposizione già dal Framework 2.0. Il metodo “CryptFromString” necessita si una password di crittazione assegnata ogni volta dall’utente (password di crittaggio e decrittaggio devono coincidere ovviamente)
Dim stringaCrittata = "A8 B4 C9 F1 A2"
Dim stringaDaDecrittare As String
stringaDaDecrittare = stringaCrittata.Trim.DecryptFromString("gaetano")
…qualora voleste decrittare una stringa precedentemente crittata con lo stesso metodo (e password!)
Semplice no?
Riferimenti alla classe “Rfc2898DeriveBytes” qui
April 24th, 2008 by Delivery
No comments »
Auguri di
alla mia dolce metà per il suo COMPLEANNOOOOOO!!!! 
FELIZ CUMPLEANOS MI NINITA!
April 23rd, 2008 by Delivery
No comments »
Con il seguente codice avrete la possibilità di gestire l’autenticazione del report principale e di tutti i sottoreport da esso richiamati, oltre alla possibilità di passare eventuali parametri impostati nel report (nell’esempio vengono letti da quarystring, ma potrebbero benissimo essere parametri di session…). Il mio problema era proprio quello di settare i parametri di connessione dei singoli sottoreport. E’ la funzione “SetDBLogonForSubreports” che svolge questo compito.
Spero possa esservi di aiuto: (prerequisiti: Visual Studio 2005 e CrystalReports)
Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Shared
Imports System.IO
Partial Class _Default
Inherits System.Web.UI.Page
Private MyReport As ReportDocument
Private Sub ConfigureCrystalReports()
'carico il report
MyReport = New ReportDocument()
Dim reportPath As String = Server.MapPath("TuoReportMaster.rpt")
MyReport.Load(reportPath)
'passo i parametri di connessione al report
Dim myConnectionInfo As ConnectionInfo = New ConnectionInfo()
'parametri presenti nel webconfig
myConnectionInfo.DatabaseName =
System.Configuration.ConfigurationManager.AppSettings("Database")
myConnectionInfo.UserID =
System.Configuration.ConfigurationManager.AppSettings("UserName")
myConnectionInfo.Password =
System.Configuration.ConfigurationManager.AppSettings("Password")
myConnectionInfo.ServerName =
System.Configuration.ConfigurationManager.AppSettings("Server")
'autentico il mio report principale
SetDBLogonForReport(myConnectionInfo, MyReport)
'autentico tutti i sottoreport richiamati dal report principale
SetDBLogonForSubreports(myConnectionInfo, MyReport)
'passo eventuali parametri al report principale
Dim paramFields As New ParameterFields()
Dim discreteVal As New ParameterDiscreteValue()
Dim parametro1 As New ParameterField()
Dim parametro2 As New ParameterField()
'passo il primo parametro
parametro1.ParameterFieldName = "@Parametro1DelReport"
discreteVal = New ParameterDiscreteValue()
discreteVal.Value = Request.QueryString("Parametro1")
'in questo caso leggo da una querysting
MyReport.SetParameterValue("@Parametro1DelReport", discreteVal.Value)
'passo il secondo parametro
parametro2.ParameterFieldName = "@Parametro2DelReport"
discreteVal = New ParameterDiscreteValue()
discreteVal.Value = Request.QueryString("Parametro1")
'secondo parametro anche passato in querysting
MyReport.SetParameterValue("@Parametro1DelReport", discreteVal.Value)
End Sub
Private Sub SetDBLogonForReport(ByVal myConnectionInfo
As ConnectionInfo, ByVal myReportDocument As ReportDocument)
'subroutine che setta i parametri di connessione del report principale
Dim myTables As Tables = myReportDocument.Database.Table
Dim myTable As CrystalDecisions.CrystalReports.Engine.Table
For Each myTable In myTables
Dim myTableLogonInfo As TableLogOnInfo = myTable.LogOnInfo
myTableLogonInfo.ConnectionInfo = myConnectionInfo
myTable.ApplyLogOnInfo(myTableLogonInfo)
Next
End Sub
Private Sub SetDBLogonForSubreports(ByVal myConnectionInfo
As ConnectionInfo, ByVal myReportDocument As ReportDocument)
'subroutine che setta i parametri di connessione di
'tutti i sottoreport richiamati dal report principale
Dim mySections As Sections = myReportDocument.ReportDefinition.Sections
Dim mySection As Section
For Each mySection In mySections
Dim myReportObjects As ReportObjects = mySection.ReportObjects
Dim myReportObject As ReportObject
For Each myReportObject In myReportObjects
If myReportObject.Kind = ReportObjectKind.SubreportObject Then
Dim mySubreportObject As SubreportObject =
CType(myReportObject, SubreportObject)
Dim subReportDocument As ReportDocument =
mySubreportObject.OpenSubreport mySubreportObject.SubreportName)
SetDBLogonForReport(myConnectionInfo, subReportDocument)
End If
Next
Next
End Sub
Protected Sub Page_Load(ByVal sender As Object,
ByVal e As System.EventArgs) Handles Me.Load
'richiamo i parametri di configurzione
ConfigureCrystalReports()
'esporto il report in pdf
Dim oStream As New MemoryStream ' // using System.IO
oStream = MyReport.ExportToStream
(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat)
Response.Clear()
Response.Buffer = True
Response.ContentType = "application/pdf"
Response.BinaryWrite(oStream.ToArray())
Response.End()
End Sub
End Class
Se tutto è stato impostato correttamente dovreste vedere il vostro bel pdf saltare fuori
April 21st, 2008 by Delivery
No comments »
Gironzolando per il web mi sono imbattuto in questa bellissima web-application interamente scritta in Silverlight:
http://www.windowsvista.si/main.htm
Davvero carina (anche se è tutto in sloveno).
April 19th, 2008 by Delivery
No comments »
In questi giorni mi sono dedicato interamente allo sviluppo di un’applicazione client ed avevo l’esigenza di modificare continuamente da form la connessione al Database (sqlServer). Immaginate quanto sia seccante ogni volta andare nell’ app.config e cambiare ogni volta i parametri. Beh..ecco un trucchetto che potrebbe esservi utile per fare una cosa del genere a Runtime:
Ovviamente non abbiamo accesso in scrittura all’app.config quindi la prima cosa da fare è crearci una Property all’interno del namespace My in questo modo:
Public WriteOnly Property RunTimeConnectionString() As String
Set(ByVal value As String)
My.Settings("MiaConnectionString") = value
End Set
End Property
Bene..ora nell’evento MySettings_PropertyChanged (cioè alla modifica delle nostre impostazioni) testiamo la connessione (non è obbligatorio ma facciamolo per evitare che l’applicazione vada in crash 
Private Sub MySettings_PropertyChanged(ByVal sender As Object, ByVal e As
System.ComponentModel.PropertyChangedEventArgs) Handles Me.PropertyChanged
Dim connection As New SqlClient.SqlConnection
connection.ConnectionString = My.Settings("MiaConnectionString")
Try
connection.Open()
Catch ex As Exception
MsgBox("Errore di connessione al Database. Verificare la connessione",
MsgBoxStyle.Critical, "Connessione")
Finally
connection.Close()
End Try
End Sub
Ok..ci siamo quasi. Ora creiamoci una bella form dove inserire i dati relativi alla nostra connessione al Database. Creiamo qualcosa di simile:

Ora non ci resta che salvare le impostazioni relative alla nostra connessione mediante la chiamata alla nostra Property creata in precedenza in questo modo:
My.Settings.RunTimeConnectionString = "Data Source=" & ServerTxt.Text & ";Initial Catalog=
" & dbTxt.Text & ";Persist Security Info=True;
User ID=" & userTxt.Text & "; Password=" & passTxt.Text
Le informazioni relative nostra conenssione sono state aggiornate!!! 
March 31st, 2008 by Delivery
No comments »
In un atollo delle Maldive un turista italiano appena giunto per una vacanza di una settimana tutto incluso, nota un pescatore locale che esce la mattina con la sua barca a remi e dopo circa due ore ritorna con una cesta di pesce. Lo osserva incuriosito il primo giorno, il secondo giorno ed al terzo giorno decide di volerlo conoscere.
"Come mai tutte le mattine stai fuori in mare solo due ore a pescare invece che tutta la mattinata?".
Il pescatore risponde: "E allora?".
"Come e allora? Stando fuori tutta la mattina avresti modo di prendere molti più pesci e li potresti vendere ai ristoranti e agli abitanti delle altre isole…".
Il pescatore risponde: "E allora?".
"Come e allora? Dopo qualche mese inizieresti ad avere una Clientela affezionata che con il passaparola ti porterebbe ulteriori Clienti e potresti così restare fuori in barca tutta la giornata per pescare ancora più pesci".
Il pescatore risponde: "E allora?".
"Come e allora? Dopo un anno avresti i soldi necessari per comprarti anche un motore per la barca per riuscire a pescare anche più lontano".
Il pescatore risponde: "E allora?".
"Come e allora? Dopo qualche anno potresti pagare delle persone del tuo villaggio per venire a darti una mano a pescare".
Il pescatore risponde: "E allora?".
"Come e allora? Tra una decina di anni potresti avere più di una barca ed aver messo da parte molti soldi".
Il pescatore risponde: "E allora?".
"Come e allora? Una volta in pensione, con tutti quei soldi riuscirai a goderti la vita".
Il pescatore risponde: "E io cosa sto facendo adesso?"
Stiamo molto attenti a “vivere nel futuro” spostando sempre la nostra felicità sempre più avanti, quando finalmente saremo laureati, saremo diventati Dirigenti, avremo finito di pagare il mutuo o avremo raggiunto la tranquillità economica. Ogni giorno merita di essere vissuto pienamente ed è sempre ricco di tanti splendidi momenti, sta a noi saperne godere
March 12th, 2008 by Delivery
No comments »
Ho deciso di aggiornarmi seriamente alle nuove tecnologie visto che il lavoro me ne da sempre meno possibilità. L’unica strada possibile (per ora) è quella di seguire i vari blog di discussione a soprattutto…..quella di comprare dei NUOVI MANUALI. Ecco una lista di quelli che per il momento ritengo più utlili:
- Visual Basic 2008 (VB.NET 9)
- LINQ
- Windows Presentation Foundation (WPF)
- Windows Workflow Foundation (WWF)
- Windows Communication Foundation (WCF)
- Visual Studio 2008
- XAML e Silverlight
- ASP.NET 3.5
- AJAX
Se avete consigli su quali e dove acquistarli segnalatemi pure il link alla pagina…ve ne sarei grato!!
February 21st, 2008 by Delivery
No comments »
Non posso mancare all’evento che farà tappa anche in quel di Bologna il 4 Marzo:
http://www.microsoft.com/italy/launch2008/default.mspx
Se ci siete…come sempre…battete un colpo! 