venerdì 24 agosto 2007

Servizi automatici di Windows - mi levo un sassolino dalla scarpa

Penso di non essere l'unico a detestare il fatto che man mano che installiamo nuove applicazioni ci siano diminuzioni di prestazioni, un generale rallentamento di tutte le applicazioni soprattutto quando queste coinvolgono servizi che si attivano alla partenza.

Che cosa importa ad esempio che tutto sia "live" al momento dell'accensione? soprattutto che si attivino servizi che verificano in rete aggiornamenti di software come non dipendenti dall'update di Microsoft oppure rimangano in attesa dell'inserimento di smartcard o la connessione di telefonini.

Tutto questo perchè i produttori di applicazioni sono degli inguaribili egoisti, guardano il loro orticello e basta, non si preoccupano dell'utilizzatore finale, non si preoccupano del "post vendita" ma solo di "prendi i soldi e scappa", dell'usabilità e dell'integrabilità della loro applicazione neanche ci pensano.

La prima ad essere accusabile e accusata di tutto è Microsoft che quando indica le specifiche di Hardware e Software minime per un suo sistema operativo o applicazione non tiene conto assolutamente del contesto ma pensa che il suo popolo di clienti si doti solamente del sistema operativo (senza installare null'altro) oppure del sistema operativo + la sua applicazione.

Mi vengono in mente applicazioni di parecchi anni fa, quando il sistema veniva venduto senza software che doveva essere scritto ad hoc, mi capitò di installare una versione di xenix 286 + una applicazione, alla fine dell'installazione non c'era spazio per i dati :)).

Basterebbe che si cambiasse il sistema operativo in modo tale che i servizi partano sempre "alla prima richiesta" e non contestualmente alla partenza del sistema, inoltre anche per i servizi che obbligatoriamente devono essere eseguiti alla partenza sicuramente si può fare in modo che alcuni partano subito e altri siano scaglionati temporalmente in modo tale da non causare lo swap del sistema e quindi un rallentamento che causa una partenza differita che causa un rallentamento che causa un rallentamento e la partenza differita ecc.

Lo so, sono parole inutili perchè come ho detto la filosofia è "prendi i soldi e scappa" oppure di infinita arroganza data dal monopolio.

giovedì 23 agosto 2007

Una semplice applicazione con Visual Express e Sql Server 2005 Express

Come noto la serie Express 2005 può utilizzare come fonte per il design grafico dell'interfaccia ai solo Access (2007 escluso) e Sql Express 2005.

Ovviamente come qualsiasi altra applicazione .NET "da codice" è possibile connettere qualsiasi database che disponga di una interfaccia utilizzabile da .NET.

Questo esempio dimostra come si può utilizzare Visual Express 2005 per disegnare la propria applicazione con Sql Server 2005.

Il tutto parte con la consueta creazione di un nuvo progetto Windows Forms.
Prendiamo il nostro database Sql Server (mdf) e facciamo copia-incolla sul progetto (si proprio nel progetto), se abbiamo deciso di utilizzare Access questo è il momento per farlo!.

Dopo le prime prove, quando il collegamento al database funziona, ricordarsi di togliere la copia ad ogni compilazione sulle proprietà del database.

La copia del database sul progetto fa scattare il wizard che disegna il file xsd per la definizione del DataSet tipizzato.

Scegliamo la table Customers

E .. ovviamente premiamo Fine.
Successivamente compiliamo il nostro progetto per dar modo al Designer di aggiungere gli oggetti DataSet e TableAdapter generati dal Wizard tra i controlli personalizzati.

Tra i controlli disponibili selezioniamo ed aggiungiamo alla nostra form un controllo BindingSource e lo configuriamo nel seguente modo


Questo determina l'aggiunta del customersTableAdapter e del dataset.
Il controllo BindingSource è dedicato al mantenimento del collegamento tra la fonte dati locale (dataset) e i controlli a video.
Aggiuntiamo anche un controllo BindingNavigator, questo controllo consente di gestire le varie azioni che si possono intraprendere sui dati come lo spostamento del puntatore della riga corrente, l'aggiunta e l'eliminazione di righe dal dataset.
Alla fine dovremmo avere gli oggetti:

Impostiamo le sue proprietà:

Aggiungiamo un controllo Label e due TextBox
Proprietà per la IdTextBox

Proprietà per nameTextBox

Aggiungiamo anche un controllo DataGridView
Proprietà per il controllo dataGridView1:


Il controllo BindingNavigator non aggancia i comandi per l'aggiornamento del database, nè per la ricarica del dataset dal database, ho aggiunto pertanto due Button e le relative immagini, la form nell'IDE diventa simile a questa (gli ultimi due Button sul BindingNavigator sono quelli aggiunti):

Compiliamo ed eseguiamo il progetto, non dovrebbero esserci problemi o errori perchè non abbiamo ancora aggiunto una riga di codice.

I Button aggiunti ancora non funzionano vero?, infatti BindingNavigator si è agganciato alla DataTable ed è in grado di fare "da solo" navigazione, aggiunta e cancellazione righe (i comandi sono "embedded" nel controllo).
Invece i "miei" Button devono essere configurati e gestiti.
Facendo il doppio click creiamo due nuovi gestori di evento click uno per il riciclo, l'altro per il savataggio dei dati.

Salvataggio dati

Il comando preposto per il savataggio dati e l'aggiornamento nell'origine dati è l'update del DataAdapter, nel nostro caso il comando è esposto "specializzato" per il DataSet tipizzato / tabella Customers dal customerTableAdapter per cui nell'evento del salvataggio dati inseriamo:

C#
// update del dataset e aggiornamento del database
this.bindingSource1.EndEdit();
this.customersTableAdapter.Update(this.nORTHWNDDataSet.Customers);

VB.NET
Me.BindingSource1.EndEdit()
Me.CustomersTableAdapter.Update(Me.NORTHWNDDataSet.Customers)

Ricarica dati

C#
// refill del dataset
this.nORTHWNDDataSet.Customers.Rows.Clear();
this.customersTableAdapter.Fill(this.nORTHWNDDataSet.Customers);

VB.NET
Me.NORTHWNDDataSet.Customers.Rows.Clear()
Me.CustomersTableAdapter.Fill(Me.NORTHWNDDataSet.Customers)

A questo punto il nostro progetto è del tutto funzionante, per una configurazione standalone con Sql Express locale va più che bene, il database, a partire dalla cartella bin verra "attaccato" al server e scollegato alla chiusura dell'applicazione (User Instance).

Per lavorare invece con Sql Server mediante il servizio Server è necessario apportare delle variazioni al Setting (si trova tra le proprietà del progetto):

Ovviamente al posto di CYANO (il mio Windows 2003 Server) dove gira Sql Server 2005 dovrete mettere il vostro server :)).
Consiglio di fare come ho fatto io, ho aggiunto una nuova stringa in cui ho salvato la stringa originale prima di modificare la stringa di connessione.

Esempio realizzato con Visual C# Express
Esempio realizzato con Visual Basic Express

martedì 21 agosto 2007

Windows Presentation Foundation - Un bel manuale di Charles Petzold

Ho recentemente acquistato il manuale "A Guide to the Microsoft Windows Presentation Foundation" di Charles Petzold 

A prima vista si tratta di un buon manuale che ho preso per documentarmi sulla nuova modalità di scrivere le interfacce.
Dire che l'introduzione Windows Presentation Foundation sia solo una innovazione è parlarne in modo riduttivo, dovremo tutti, presto o tardi adattarci alla nuova tecnologia.
Certamente che se il passaggio "completo" avverrà con i tempi della sostituzione di vb6 con vb.net continueremo a parlare di GDI e WPF per molti, molti anni ancora. 

sabato 18 agosto 2007

VB.NET e C# la scelta dell'uno o dell'altro comporta anche uno stile di vita?

Questa dell'oggetto è la domanda che mi sono fatto vedendo il numero di posts dell'uno e dell'altro questa settimana nei NewsGroups Microsoft.
Da qualche tempo monitorizzo il numero dei posts presenti su microsoft.public.dotnet.languages.vb rispetto a microsoft.public.dotnet.languages.csharp e, per quanto riguarda i gruppi italiani della gerarchia microsoft microsoft.public.it.dotnet.vb rispetto a microsoft.public.it.dotnet.csharp
L'andamento dei due vb rispetto ai relativi csharp è rimasto costante per molto tempo: nei gruppi internazionali il numero di posts di C# è il doppio o quasi del numero di posts di VB, in quelli italiani invece C# supera di poco VB.
Questa settimana invece sia il rapporto del gruppo internazionale che quello italiano vede C# al triplo di VB.
Ora che ho spiegato la situazione la domanda: cos'è che ha determinato una situazione del genere, che i praticanti VB sono andati in vacanza molto di più di quelli C# che, al contrario hanno continuato a lavorare?.
Che si siano messi d'accordo è impossibile, pertanto ci deve essere una spiegazione.
A voi la parola!

mercoledì 15 agosto 2007

Un'amica è passata a farmi visita in casa :))

 

 

Mi mancava, è quasi impossibile vederle quando sono nel loro ambiente naturale.

Non l'ho uccisa, la foto l'ho presa nel muro esterno mentre si arrampicava.

Ho idea che fosse a caccia del povero maschio.

venerdì 10 agosto 2007

Visual Studio 2008 SDK CTP Agosto 2007

Visual studio 2008 SDK CTP Agosto 2007 è disponibile per il download.

Questa CTP contiene:

  1. Sviluppo di strumenti personalizzati per Visual Studio Shell
  2. Nuovi esempi
  3. Visual Studio Integration Package Wizard ora supporta l'aggiunta di "Test Project" 
  4. Un Help Integration Wizard più funzionale.
  5. Supporto per RANU (Run As Normal User) , non c'è più bisogno di entrare come amministratore, su \VisualStudioIntegration\Tools\DSLTools si può trovare una guida per migrare i progetti generati con versioni precedenti.
  6. Viene adottato il nome ufficiale della release "Visual Studio 2008" al posto del nome di sviluppo "Visual Studio Code Name "Orcas".

lunedì 6 agosto 2007

Windows Vista - Comincio proprio a preoccuparmi anche la scheda hsdpa non funziona

Dopo la delusione di non riuscire a lavorare con Navision / Dynamics con Sql Server 2005 con Windows Vista anche la mia scheda della 3 che utilizzo quando sono in giro.

Ho scoperto oggi non funzionare su Windows Vista, ho fatto l'installazione come amministratore, ho configurato manualmente tutti i device, non vengono evidenziati conflitti nell'hardware però niente funziona il programma sta in attesa di rilevare la card fino a quando non mi stanco.
Cercherò anche per questa un driver aggiornato che funzioni con Windows Vista ma non credo avrò fortuna.
Ironia della sorte: è quasi la stessa cosa che fa Navision/Dynamics dopo il collegamento con il database quando tento di aprire il menu oppure voglio caricare degli oggetti.
Per fortuna che ancora non ho azzerato il vecchio portatile ma .. non ci posso lavorare non me lo posso portare in giro comincio a pormi il problema: congelo l'avvio con il nuovo portatile e provo tutto prima di attivarlo oppure ci installo sopra XP e non ci penso più?

domenica 5 agosto 2007

Windows Vista - Permessi sui dischi esterni

Come ben noto Windows Vista a differenza di Windows Xp non monta le unità esterne NTFS in read-write per l'utente corrente ma legge le permissioni presenti.

Può capitare pertanto che l'utente attuale, anche se amministratore non può modificare file già presenti.

Perchè l'utente attuale possa modificare i file esistenti è necessario pertanto aggiungere l'utente locale sui permessi e impostarne anche le autorizzazioi.

sabato 4 agosto 2007

Archivio Sportelli Bancari - elenco Abi Cab Aggiornato a fine Luglio 2007

L'archivio sportelli bancari elenco Abi Cab aggiornato a fine luglio 2007  è disponibile per lo scaricamento a questo indirizzo:
Alcune informazioni sui files:
- campi separati da tabulazione hex: 09
- righe separate dal terminatore di riga windows hex: 0d0a
- intestazione colonne sulla prima riga
Il file TabAbi contiene i dati relativi alle banche.
Il file TabAbiCab contiene le informazioni relative agli sportelli
Nel file TabAbi e TabAbiCab è presente il campo "Aggiornamento" che evidenzia la data di riferimento di validità dei dati.
Tutte le righe di TabAbiCab che NON contengono la data più recente sono da considerarsi relative a sportelli non più attivi o assorbiti da altre banche, tali sportelli sono presenti solo come log dei dati storici, ne è sconsigliato l'utilizzo per nuove emissioni di flussi di comunicazione con le banche.

Installare l'aggiornamento di Mozilla Thunderbird su Windows Vista

Come sospettavo la nuova gestione delle permissioni presente su Windows Vista alla prima occasione si è fatta sentire.
Thunderbird scarica automaticamente gli aggiornamenti e li installa anche dopo aver chiesto il permesso di "partire" con i privilegi di amministratore.
Da me è successo che non ne ha voluto sapere di installarsi, l'errore che usciva era "ci sono alcuni files in uso" (in un altro post ho già detto che odio le segnalazioni criptiche).
Ho fatto una breve ricerca, in un forum ho trovato che era necessario chiudere il programma di gestione della webcam, cosa che ho fatto e l'installazione dell'aggiornamento è andata a buon fine.
Rimane la domanda: "che ci azzecca (dipietrese) Thunderbird con la webcam?" boh :))

Windows Live Writer Beta 2

Ho installato Windows Live Writer beta 2 in sostituzione della beta 1.

A prima vista sono stati fatti parecchi miglioramenti, ancora non ho installato il plugin per la gestione dei frammenti di codice ma non credo di avere problemi con questo, magari prima verifico che non siano disponibili altri plugin interessanti.
Consiglio a tutti quelli che hanno un blog di dotarsi di questo strumento.