Archive for the ‘Software’ category

Mattinata dedicata a WP7 (Windows Phone 7)

July 15th, 2010

Stamattina avevo tutta l’intenzione di installare i tools di sviluppo per WP7 per cominciare a vedere le novità (e ce ne sono tantissime) ma soprattutto per iniziare a sviluppare qualcosa di interessante per device mobile di prossima generazione.
Grazie ad Alessandro Scardova che alla cena di ieri sera mi ha fatto venir la voglia, ora su tutte le mie stazioni di lavoro c’è quanto richiesto per lo sviluppo su WP7

Expression Blend 4  WP7 Dev Tools

 Come già detto nel blog di Alessandro nel post inerente alla Beta di WP7 Dev Tools vi ricordo anche io che è disponibile il download a questa pagina
Buon divertimento! ;)

Cancellazione progetti su TFS

July 15th, 2010

se siete dei gran “combinacasini” come me e avete l’esigenza di eliminare i progetti che avete inserito su TFS, potete seguire questa semplice guida che vi permetterà di ripulire il tutto!

Good luck

Fex (Facebook syncronization per Iphone)

September 30th, 2009

Fex (facebook exchange) è un’appicazione che permette di sincronizzare i dati dei nostri amici su Facebook con quelli presenti nella nostra rubrica contatti:

IMG_0153[1]In pochi step avremo la possibilità di importare dal più grande social network le foto dei profili dei nostri amici, le date di nascita, eventuali contatti telefonici e tanto altro. Mai più un compleanno dei nostri amici/parenti dimenticato e immagini disponibili nella nostra rubrica (e di conseguenza possibilità di visualizzarla anche nel momento in cui uno dei nostri contatti dovesse telefonarci).

L’applicazione è disponibile nell’Apple Store al prezzo di € 1,59

Consigliata

 

 

 

.

Midomi – search for music

September 30th, 2009
IMG_0152IMG_0150

La prima applicazione che vi consiglio di scaricare dall’Apple Store (gratuita) è Midomi. Questo semplicissimo software vi permetterà di riconoscere una canzone che state ascoltando in quel momento (per radio, in un locale, in auto o all’esterno) e in pochi secondi avrete il titolo della canzone, l’autore ed una innumerevole serie di informazioni oltre che link diretti a Youtube etc.

Davvero divertente ed utile soprattutto per chi, come me, non ricorda mai i titoli delle canzoni o non appena sente una canzone che gli piace vorrebbe scaricarla ma della quale non sa il titolo!

p.s Riconosce davvero molti titoli di canzoni. Ho fatto dei test su canzoni di Nino D’angelo e devo dire che sono rimasto stupefatto: le ha trovate!!

Buon divertimento!

 

 

Developing Microsoft Micro Framework…

October 27th, 2008

E’ partita una nuova avventura in questo mondo tutto da scoprire e, spero, ricco di soddisfazioni. Ultimanente mi sono un tantino “fossilizzato” nelle solite routine lavorative  di progettazione/sviluppo di applicazioni Web/Client.
Qualche giorno fa, parlando con mio fratello di proggetti vari in essere con la sua azienda SystemDesign, è venuta fuori l’idea di poter utilizzare della tecnologia Microsoft anche per lo sviluppo/gestione/controllo di microcontrollori per applicazioni in campo domotico (e non solo).

Bene è così che abbimo deciso di farci questo regalo:

Il Freescale i.MXS Development Kit che permette di sviluppare firmware per microcontrollori in linguaggio C# oltre che ad applicazioni per la piattaforma Windows Vista™ SideShow™. Non vi nego che sono ansiosissimo di tornare a casa stasera per poter metter mano su questo gioiellino costato non poco!

Di seguito qualche caratteristica tecnica:

  • i.MXS applications processor, based on the powerful ARM920T™ core
  • Clock source crystal: 32 kilohertz
  • Powered by USB bus voltage or external power adaptor
  • Multi-ICE debug support connector
  • I2C and SSI bus connector for connection to external audio CODEC SMbus interface
  • 32-megabyte (MB) SDRAM device
  • One 8-megabyte (MB) Burst Flash memory device
  • One RS232 transceiver (configured for DCE) supporting on-chip UART1 port
  • 1 UART port at CMOS level for expansion
  • On-Chip USB 1.1 interface
  • On-board 2.5 inch LCD with back-light and QVGA resolution
  • 11 separated GPIO for key-button input
  • LED indicator for power

Vi terrò informati sugli sviluppi ma sono sicuro che presto ci saranno novità carine che posterò sul mio blog

Stay tuned ;)

Diagrams on Sql Server 2005

September 17th, 2008

Ad una nuova installazione di Sql Server e quando faccio l’attach di un DB proveniente da Sql 2000 ho sempre il solito errore nel momento in cui cerco di aprire i diagrammi:
“Database diagram support objects cannot be installed because this database does not have a valid owner. To continue, first use the Files page of the Database Properties dialog box or the ALTER AUTHORIZATION statement to set the database owner to a valid login, then add the database diagram support objects.”

Vi posto il codice da eseguire per ovviare a questo fastidioso problema che non viene via nemmeno impostando la compatibilità su Sql 2005 nelle option del DB

use [master] EXEC sp_dbcmptlevel 'TuoDatabase', '90';
go
ALTER AUTHORIZATION ON DATABASE::TuoDatabase TO tuoLogin
go
use [TuoDatabase]
go
EXECUTE AS USER = N'dbo' REVERT
go
 
Spero vi sia utile ;) 

Encrypting with Rfc2898DeriveBytes

April 29th, 2008

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:

Imports
WindowsApplication1.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

Crystal Reports e passaggio di parametri a report e sottoreport

April 23rd, 2008

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 :)

Silverlight applications…

April 21st, 2008

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).

Modificare a Runtime l’impostazione della connectionString

April 19th, 2008

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 Tongue out

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:

dbsettings

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!!! Open-mouthed