martedì 17 febbraio 2009
Azure all'opera
Ho creato la mia prima applicazione su Microsoft Azure la piattaforma per applicazioni Cloud di Microsoft.
Due considerazione sopra a tutte :
1) Ha un potenziale esplosivo. Rispetto alle AppEngine di Google ha dalla sua l'integrazione con i tools di sviluppo di Microsoft che rendono estremamente più produttivo il lavoro.
2) In questa prima prova la lentezza dei sistemi è però stata terribile: diversi minuti di attesa per poter vedere pubblicata una banale pagina.
Dovrebbe funzionare a questo indirizzo :
http://cinghiale.cloudapp.net/
Ma al momento è attiva solo sull'ambiente di test:
http://57fd3bdb-1bd1-427b-a7e6-2c96a28c09fe.cloudapp.net/Default.aspx
Qui ci sono una serie di video per imparare a creare la prima applicazione:
http://msdn.microsoft.com/en-us/azure/dd439432.aspx
http://blogs.msdn.com/cloud/archive/2009/02/12/windows-azure-how-do-i-videos.aspx
le Tables di Azure
Mi aspettavo di trovare in Azure un qualche tipo di connessione agli SDS (SQL Data Services).
Invece per gestire i dati in tabelle bisogna utilizzare le "Tables".
Il cui principio di utilizzo è molto simile alle Entities di Gooogle Appengine.
Così come in qualche modo simile è l'idea di uno storage locale per l'ambiente di sviluppo sul PC (anche se poi qui le tabelle finiscono su SQL Express).
Queste Tables sono importanti (in negativo) in quanto impongono di scrivere il codice per il loro utilizzo e non permettono l'uso degli strumenti visual presenti in Visual Web Developer.
In questo modo limitano molto un ipotetico vantaggio che gli ambienti di sviluppo Microsoft avrebbero apportato ad Azure rispetto ad Appengine.
Invece per gestire i dati in tabelle bisogna utilizzare le "Tables".
Il cui principio di utilizzo è molto simile alle Entities di Gooogle Appengine.
Così come in qualche modo simile è l'idea di uno storage locale per l'ambiente di sviluppo sul PC (anche se poi qui le tabelle finiscono su SQL Express).
Queste Tables sono importanti (in negativo) in quanto impongono di scrivere il codice per il loro utilizzo e non permettono l'uso degli strumenti visual presenti in Visual Web Developer.
In questo modo limitano molto un ipotetico vantaggio che gli ambienti di sviluppo Microsoft avrebbero apportato ad Azure rispetto ad Appengine.
martedì 3 febbraio 2009
controllare i cambiamenti del files system
lunedì 26 gennaio 2009
posizionare un ContextMenuStrip in una form
Private Sub Form3_MouseClick(ByVal sender As System.Object, ByVal e As
System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseClick
ContextMenuStrip1.Show(PointToScreen(e.Location))
End Sub
System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseClick
ContextMenuStrip1.Show(PointToScreen(e.Location))
End Sub
domenica 25 gennaio 2009
Esempio inserimento dati in MS-Access con parametro
Imports System.Data.OleDb
Dim cn As OleDbConnection
Dim cmd As OleDbCommand
Try
cn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\programmazione.mdb")
'stringa accesso dati
cn.Open()
cmd = New OleDbCommand("insert into tabella1 (a,b) values('prova',?) ", cn)
cmd.Parameters.Add("@b", OleDbType.Char).Value = TextBox4.Text
cmd.ExecuteNonQuery()
Catch
End Try
cn.Close()
Nota.
Si differenzia rispetto ad SQL (che vuole i nomi @nomi e non il ?)
Esempio inserimento dati in MS-SQL con parametro
Imports System.Data.Sql
Dim cn As SqlClient.SqlConnection
Dim cmd As SqlClient.SqlCommand
Try
cn = New SqlClient.SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename= " & Chr(34) & "C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\vb.mdf" & Chr(34) & ";Integrated Security=True;Connect Timeout=30;User Instance=True")
cn.Open()
cmd = New SqlClient.SqlCommand("insert into table1 (a,b) values('ii',@b) ", cn)
cmd.Parameters.Add("@b", SqlDbType.Char).Value = TextBox3.Text
cmd.ExecuteNonQuery()
Catch
End Try
cn.Close()
Me.Table1TableAdapter.Fill(Me.VbDataSet.Table1)
Note.
Si differenzia rispetto all'insert dei dati in access (che richiede il ?).
Dim cn As SqlClient.SqlConnection
Dim cmd As SqlClient.SqlCommand
Try
cn = New SqlClient.SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename= " & Chr(34) & "C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\vb.mdf" & Chr(34) & ";Integrated Security=True;Connect Timeout=30;User Instance=True")
cn.Open()
cmd = New SqlClient.SqlCommand("insert into table1 (a,b) values('ii',@b) ", cn)
cmd.Parameters.Add("@b", SqlDbType.Char).Value = TextBox3.Text
cmd.ExecuteNonQuery()
Catch
End Try
cn.Close()
Me.Table1TableAdapter.Fill(Me.VbDataSet.Table1)
Note.
Si differenzia rispetto all'insert dei dati in access (che richiede il ?).
Esempio lettura dati da MS-SQL
Imports System.Data.Sql
Dim cn As SqlClient.SqlConnection
Dim cmd As SqlClient.SqlCommand
Dim dr As SqlClient.SqlDataReader
Try
cn = New SqlClient.SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename= " & Chr(34) & "C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\vb.mdf" & Chr(34) & ";Integrated Security=True;Connect Timeout=30;User Instance=True")
cn.Open()
cmd = New SqlClient.SqlCommand("select * from table1 ", cn)
dr = cmd.ExecuteReader()
While dr.Read()
TextBox1.Text = dr(0)
TextBox2.Text = dr(1)
TextBox3.Text = dr(2)
' lettura dati
End While
Catch
End Try
cn.Close()
Dim cn As SqlClient.SqlConnection
Dim cmd As SqlClient.SqlCommand
Dim dr As SqlClient.SqlDataReader
Try
cn = New SqlClient.SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename= " & Chr(34) & "C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\vb.mdf" & Chr(34) & ";Integrated Security=True;Connect Timeout=30;User Instance=True")
cn.Open()
cmd = New SqlClient.SqlCommand("select * from table1 ", cn)
dr = cmd.ExecuteReader()
While dr.Read()
TextBox1.Text = dr(0)
TextBox2.Text = dr(1)
TextBox3.Text = dr(2)
' lettura dati
End While
Catch
End Try
cn.Close()
Esempio inserimento dati in MS-SQL
Imports System.Data.Sql
Dim cn As SqlClient.SqlConnection
Dim cmd As SqlClient.SqlCommand
Try
cn = New SqlClient.SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename= " & Chr(34) & "C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\vb.mdf" & Chr(34) & ";Integrated Security=True;Connect Timeout=30;User Instance=True")
cn.Open()
cmd = New SqlClient.SqlCommand("insert into table1 (a,b) values('RRR','RRR') ", cn)
cmd.ExecuteNonQuery()
Catch
End Try
cn.Close()
Dim cn As SqlClient.SqlConnection
Dim cmd As SqlClient.SqlCommand
Try
cn = New SqlClient.SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename= " & Chr(34) & "C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\vb.mdf" & Chr(34) & ";Integrated Security=True;Connect Timeout=30;User Instance=True")
cn.Open()
cmd = New SqlClient.SqlCommand("insert into table1 (a,b) values('RRR','RRR') ", cn)
cmd.ExecuteNonQuery()
Catch
End Try
cn.Close()
Esempio inserimento dati in MS-Access
Imports System.Data.OleDb
Dim cn As OleDbConnection
Dim cmd As OleDbCommand
Try
cn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\programmazione.mdb")
'stringa accesso dati
cn.Open()
cmd = New OleDbCommand("insert into tabella1 (a,b) values('RRR','RRR') ", cn)
cmd.ExecuteNonQuery()
Catch
End Try
cn.Close()
Dim cn As OleDbConnection
Dim cmd As OleDbCommand
Try
cn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\programmazione.mdb")
'stringa accesso dati
cn.Open()
cmd = New OleDbCommand("insert into tabella1 (a,b) values('RRR','RRR') ", cn)
cmd.ExecuteNonQuery()
Catch
End Try
cn.Close()
Esempio lettura dati da MS-Access
Imports System.Data.OleDb
Dim cn As OleDbConnection
Dim cmd As OleDbCommand
Dim dr As OleDbDataReader
Try
cn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\programmazione.mdb")
'stringa accesso dati
cn.Open()
cmd = New OleDbCommand("select * from tabella1", cn)
dr = cmd.ExecuteReader
While dr.Read()
TextBox1.Text = dr(0)
TextBox2.Text = dr(1)
TextBox3.Text = dr(2)
' lettura dati
End While
Catch
End Try
dr.Close()
cn.Close()
Dim cn As OleDbConnection
Dim cmd As OleDbCommand
Dim dr As OleDbDataReader
Try
cn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\programmazione.mdb")
'stringa accesso dati
cn.Open()
cmd = New OleDbCommand("select * from tabella1", cn)
dr = cmd.ExecuteReader
While dr.Read()
TextBox1.Text = dr(0)
TextBox2.Text = dr(1)
TextBox3.Text = dr(2)
' lettura dati
End While
Catch
End Try
dr.Close()
cn.Close()
martedì 13 gennaio 2009
il browsing delle directory su IIS 7
sabato 10 gennaio 2009
robocopy il successore di xcopy
E' già tempo in circolazione, ma io ero affezionato a xcopy e per le mie copy di backup continuavo ad utilizzare i miei vecchi comandi batch.
Ora su Vista xcopy è espressamente definito obsoleto quindi mi sono aggiornato.
Questo è il comando per copiare nella cartella di destinazione solo i file modificati più di recente.
- robocopy c:\origine c:\destinazione /e /xo
robocopy, fa molte cose in più di xcopy, ad esempio gestisce anche i percorsi di rete UNC, quindi è possibile copiare tramite pc differenti (xcopy mi pare che copiasse solo fino a 2 GB).
tools per App Engine
Giorni fa è stata rilasciata la versione 1.1 di App Engine Site Creator un tools per creare pagine web sulle App di Google.
Di fatto è una applicazione in Python che per funzionare deve essere caricata su appspot.com oppure sul runtime in locale.
Lo strumento ha al momento solo funzionalità essenziali, ma può essere personalizzato.
Le pagine e la loro struttura sono salvate nelle tabelle del Datastore.
Questo comporta un limite per chi lavora in locale: una volta create sul datastore locale le pagine non possono essere esportate, ma vanno ricreate ex-novo, anche sul datastore di Appspot.com.
Di fatto è una applicazione in Python che per funzionare deve essere caricata su appspot.com oppure sul runtime in locale.
Lo strumento ha al momento solo funzionalità essenziali, ma può essere personalizzato.
Le pagine e la loro struttura sono salvate nelle tabelle del Datastore.
Questo comporta un limite per chi lavora in locale: una volta create sul datastore locale le pagine non possono essere esportate, ma vanno ricreate ex-novo, anche sul datastore di Appspot.com.
Etichette:
google app,
python,
web 2.0
mercoledì 7 gennaio 2009
Creare grafici con Python e le Google Chart
In questa pagina http://pygooglechart.slowchop.com ci sono alcune interessanti info su come creare grafici con Python utilizzando le Google Chart.
Sono scaricabili alcuni utili esempi.
Il codice crea in locale le immagini dei grafici in formato .png
Sono scaricabili alcuni utili esempi.
Il codice crea in locale le immagini dei grafici in formato .png
Iscriviti a:
Post (Atom)