Tuesday, December 20, 2005
Sviluppo applicazioni con ADO e Visual C# Express: TableAdapter.Update non funziona?
Molto bello e fatto molto bene. L'integrazione con SQL 2005 Express rende il tutto simile ad un ACCESS potenziato (visti i controlli visuali) anche se manca un sistema di reporting. Ho inoltre guardato i video disponibili sul sito MSDN. Questi danno una introduzione sulle caratteristiche principali dell'IDE e dello sviluppo in C#.
Ho provato a verificare la semplicità di sviluppo realizzando una mini applicazione DB. Creo il DB SQL (direttamente dall'IDE), creo il dataset per la connessione al DB e tramite Drag & Drop inserisco i controlli sulla form. Compilo ed inserisco alcuni dati. Tutto OK? Si ma quando riapro il programma sul Database i dati da me inseriti non ci sono. Ed allora Help, Libri ed Internet per cercare di capire finchè mi imbatto in questo post che risolve il mio problema: la directory contenente il DB durante l'esecuzione è la \Debug. L'IDE lavora su un DB diverso (è il file presente nella directory di sviluppo) che viene trasferito nella Debug OGNI volta che si lancia il programma.
QUINDI nessun problema di codice ma solo una "svista" che forse andrebbe maggiormente pubblicizzata.
Tuesday, December 13, 2005
Blackberry Development Using NetBeans Mobility
Evidentemente il BB è molto seguito nel mondo Java.
Monday, December 05, 2005
Delphi 2006: L'attesa sta continuando
Allora aspettiamo...
Tuesday, November 29, 2005
BDNtv: Borland Developer Studio 2006 Presentation, 2005 Borland Developer Conference
Thursday, November 24, 2005
Wednesday, November 23, 2005
Remote Access Software :: Remote Desktop for Mobiles :: Test Server
Remote Access Software :: Remote Desktop for Mobiles
Sunday, November 20, 2005
Sviluppo con BlackBerry. Puntata 2
1. la creazione di una chiave privata (doppio click su uno dei files ed indicazione della password per la creazione della chiave privata)
2. Firma del programma. E' necessario eseguire il Build dell'applicativo e richiamare Request Signatures. Verranno indicati i moduli che devono essere firmati.
3. Creazione del file ALX per la installazione sul palmare.
4. Installazione con il programma Desktop Manager.
Unica "pecca" della procedura sopra è che ad ogni compilazione è necessario richiedere nuovamente la firma del compilato. Questo implica che è necessario un collegamento ad Internet attivo ad ogni richiesta di firma.
Comunque. L'ambiente di sviluppo è robusto. Java è molto produttivo ed aiuta a pensare con una logica diversa (ad oggetti).
Gli applicativi sviluppati per il BB usano alcuni packages appositi per questo ambiente (per lo sfruttamento delle caratteristiche + evolute). Di fatto non so quanto sia possibile il porting verso altri palmari Java-enabled.
Wednesday, October 19, 2005
Sviluppo con BlackBerry. Puntata 1
E' + piccolo di un palmare, non ha touchscreen, ma ha una "rotellina" tutto fare. Si può usare con una mano sola ed offer una incredibile produttività.
Per realizzare applicazioni è necessario:
1. scaricare l'ambiente di sviluppo (JDE) dal sito della Blackberry
2. formalizzare il problema in Java ed adattare le modalità di interfacciamento e di uso dell'applicazione al dispositivo
3. fare il Build dell'applicazione e realizzare un file ALX.
4. installare l'applicazione (Desktop Manager) sul PC fornita con il Blackberry (su CD) e lanciarla.
5. aprire il Desktop Manager e lanciare Application Loader
6. ricercare il file ALX ed installarlo sul palmare.
---
Seguendo i passi sopra otterrete sicuramente un errore all'atto del lancio dell'applicazione sul Palmare:
Module ' ' attemps to access a secure API.
Per risolvere il problema è necessario "autorizzare" l'applicazione ad accedere alle API del Blackberry.
Per questo è necessario collegarsi al sito e registrarsi per ottenere via mail i files necessari a firmare il programma.
Sunday, October 16, 2005
Java e gli ambienti di sviluppo
L'ambiente di sviluppo è ben fatto ed usa Java come linguaggio di programmazione. Le mie esperienze con Java si erano limitate a cose molto semplici. Con questa nuova esperienza comincio ad entrare maggiormente nello spirito di questo linguaggio.
In qualunque altro ambiente sarei partito dalla definizione della base dati. Con Java NO. Ho iniziato a lavorare con gli oggetti ed ho scoperto le incredibili doti della persistenza degli oggetti. Ho realizzato una prima bozza dell'applicazione con una certa fatica poichè in Java si improvvisa poco ed anche la semplice attività di implementare un menù risulta più complessa del semplice click-and-code cui gli ambienti più evoluti ci hanno insegnato. E così tra un oggetto ed un altro ho capito meglio il pattern MVC e pur non implementando a fondo l'information hiding (nel senso che molti campi delle classi sono public), devo dire che sono riuscito nell'intento.
A volte l'essere obbligati a muoversi in ambienti limitati offre il vantaggio di toccare con mano certi meccanismi che molti ambienti di sviluppo tendono a nascondere.
Quindi per una volta dimentichiamo i potenti ed iper produttivi ambienti per ricercare il "basso livello".
Ma allora dove sta la produttività di Java?
Java è produttivo per l'insieme di librerie e classi che sono implementate, ma la curva di apprendimento può risultare più lunga di quella di altri linguaggi.
Saturday, October 08, 2005
Wednesday, September 14, 2005
Sviluppo o Wizard?
Usare Access
- Access è un tool fenomenale per il reporting e per "piccoli" programmi di inserimento dati
- Access diventa complesso se si devono riferire degli ActiveX esterni (anche se è un Ole client ottimo): questi devono essere installati sul sistema ospite (naturale) e devono, se riferiti da codice essere inclusi nelle reference (e ciò non sempre è legato alla maschera ma va tutte le volte aggiornato)
- Access è spettacolare per la gestione delle query Cross DB
- Nel caso si desideri utilizzare Access per un accesso veloce ad un sorgente dati esterna è preferibiel usare una query di passthrough.
- Access è molto più potente se usato con DAO invece che con ADO (vedremo cosa succederà con ADO.NET)
- Access non offre una gestione centralizzata dei dati (no trigger o stored procedure)
Qual'è l'altenativa ad Access?
Per sostiutire Access con qualcosa di più scalabile servono:
- Un linguaggio di programmazione
- Un DBMS (MSDE per esempio)
- Un tool per il reporting
Anche avendo a disposizione quanto sopra non sarà comunque semplice gestire modifiche "al volo" via telefono.
Ma dove andrà Access? Esisterà un VBA.NET inserito in Office oppure Office sarà un ambiente a sè?
Wednesday, August 10, 2005
Tutte le patch di Delphi 2005
Update 1 Per tutti gli utenti
Update 2 Solo per gli utenti registrati
Update 3 Solo per gli utenti registrati
Sono seguite poi una serie di Patch fino ad ora non inserite in un Update (sarebbe il 4°!). Nell'ordine:
- Rimpiazzamento del gestore della memoria
- Sostituzione di porzioni del Core di Delphi pubblicate nel BLOG di Allen Bauer: (vclide90, boreitu e coreide90)
A questo punto DELPHI 2005 dovrebbe essere un prodotto più stabile.
Non dimentichiamo le vicende di Delphi 4, affetto da una serie di Bugs, definitivamente risolti con Delphi 5. D'altro canto Delphi 2005 è il più grosso salto in avanti sia del linguaggio sia dell'IDE fatto da Delphi.
E allora Patchiamo!!!
Tuesday, August 09, 2005
Wednesday, August 03, 2005
Visual Studio.Net 2005 beta 2
Al riavvio di Delphi 2005 ho ricevuto un errore sul sistema di Help che poi da Delphi non va più.
Ho trovato questo Blog:
Fun with Visual Studio.Net 2005 beta 2
Spero sia utile anche ad altri
Monday, August 01, 2005
Wednesday, July 27, 2005
Tuesday, July 26, 2005
.NET e DELPHI VCL.
Il framework .NET è una indiscussa novità per chi non ha mai avuto una libreria di componenti all'interno del proprio ambiente di sviluppo. Chi invece proviene da un ambiente come DELPHI si scontra con una serie di domande: devo sviluppare per Win32 o per .NET? e se devo sviluppare per .NET sfrutto la VCL (appositamente riscritta per .NET) oppure uso le WinForm del framework?
La mia esperienza mi ha insegnato che lo sviluppatore deve trovare il sistema più veloce ed indolore per andare incontro alle esigenze del cliente. Allora, se si desidera sviluppare velocemente, lo strato VCL è necessario. Se si desidera avere una accettabile velocità di esecuzione le applicazioni WIN32 hanno ancora una marcia in più (soprattuto in avvio). Usare Delphi per sviluppare applicazioni WinForm non ha senso se si considera che in questo caso si deve rinunciare ai componenti della VCL: meglio realizzare un progetto .NET VCL.
E allora?
Allora Delphi + VCL ancora per molto.
Monday, July 18, 2005
Quale linguaggio è più leggibile?
What is more readable?
La mia opinione è questa:
si deve distinguere tra leggibilità sintattica che è una proprietà del linguaggio e di come questo è stato studiato e strutturato e leggibilità semantica che riguarda invece il modo con cui un linguaggio (ed un programmatore) riesce ad esprimere una certa soluzione.
Il Pascal è nato con scopi didattici ed è sicuramente più sintatticamente leggibile del C++.
Del resto sebbene chiunque, con qualunque linguaggio, possa scrivere del codice difficilmente comprensibile, il Pascal risulta comunque maggiormente Strutturato, obbigando chi scrive codice a suddividere i programmi in maniera più organica.
Solo a titolo di esempio il fatto che una Unit abbia una sezione di interfaccia ed una di implementazione garantisce una più immediata comprensione delle funzionalità implementate in quella Unit.
Questo argomente contribuisce a far si che pure da un punto di vista semantico il Pascal sia migliore del C++.
Wednesday, July 13, 2005
Borland Delphi Partner CD
Borland Delphi Partner CD
Thursday, June 30, 2005
Design Patterns e Delphi
Introduction to Design Patterns in Delphi
Come si vede la soluzione proposta per alcuni pattern (ad esempio Singleton) è forzata: in effetti l'uso di una variabile globale per memorizzare il puntatore all'istanza della classe è una soluzione non corretta da un punto di vista formale. La variabile globale rappresentava l'unico modo per simulare le variabili di classe (le static di C#) prima dell'avvento di Delphi 2005: quest'ultimo introduce le variabili statiche (class var) consentendo di incapsulare il riferimento all'oggetto direttamente a livello di classe anche in maniera più protetta di quanto avveniva prima (strict private).
Monday, June 27, 2005
Computer Architecture
Computer Architecture
Wednesday, June 08, 2005
Tuesday, June 07, 2005
Bellissimo Indice
Freebyte's Guide to Free Delphi Programming
Delphi: un corso on line
Delphi Basics : A brief history of Borland's Delphi
Thursday, May 19, 2005
Wednesday, May 18, 2005
Tuesday, May 03, 2005
Wednesday, April 27, 2005
Sunday, April 17, 2005
Uscita la Beta 2 di Visual Studio ,NET (Whidbey)
Per il link vedi questo Blog.
DPack Blog - Whidbey Beta 2 is finally out - go get it!
RSS Screen Saver Starter Kit
Dan Fernandez's Blog : C# Express RSS Screen Saver
Starter Kit.
Tuesday, April 12, 2005
Popolarità di un nome
Sunday, April 10, 2005
Una questione di integrazione
Sicuramente MS ACCESS come ho gia avuto modo di dire rappresenta un "coltellino svizzero" fondamentale per realizzare applicazioni di integrazione tra basi dati diverse e per le quali si abbia un connettore ODBC.
Credo che DELPHI sia però lo strumento di gran lunga più performante.
Ho avuto modo di interfacciarmi ad Oracle (in maniera nativa) Vedi il sito con prestazioni ECCEZIONALI e con la sola necessità di installare il client di Oracle (No ODBC).
Ho avuto modo di interfacciarmi a MS SQL (direttamente via ADO).
Ho avuto modo di utilizzare Delphi per accedere a database Sybase (GUPTA) e a Lotus Notes.
Inoltre, cosa più complicata con altri ambienti (lo stesso ODBC driver è molto lento), con Paradox Delphi si muove come a casa sua (non dimentichiamo che non sono poche le basi dati file based ancora presenti in Paradox).
Perchè tutto ciò? Perchè Delphi ha da sempre permesso la creazione di librerie semplici e realizzate direttamente all'interno del suo ambiente. Tutte basate sulla logica del Dataset come elemento cardine.
Credo proprio di poter dire che la produttività ottenibile con Delphi sia difficilmente eguagliabile da altri ambienti (anche il framework .NET).
Monday, April 04, 2005
Utilità quasi commoventi
Il primo recupera files Excel corrotti (anche protetti da password); il secondo recupera files cancellati per errore (anche se elimati dal cestino).
Alfred North Whitehead
Da aggiungere non c'è altro.
RESTARE UN TECNICO
Ricordo circa 10 anni fa un ragazzo con cui collaboravo occansionalmente mi disse: "è troppo complesso stare dietro ai linguaggi di programmazione nuovi: io mi fermo ad Access e al VB3". Io riflettei su questa frase e dissi: se qualcuno inventa nuove tecnologie e queste tecnologie sono state inventate per essere utilizzate da altri (come per esempio un nuovo linguaggio) allora non si deve avere timore di imparare.
Così ho fatto e così ho scelto di fare nella mia vita.
Una legge di Murphy recita (vado a braccio): "In una organizzazione un impiegato tende a raggiungere il livello di incompetenza che gli compete". Io spero di rimanere fedele alla mia attuale visione delle cose. Certo tutto non si può sapere, tutto non si può fare; l'istinto di imparare nuove cose deve però rimanere. Sono circondato da persone che si sono inventate il mestiere che fanno. Non hanno una preparazione specifica. Non hanno fatto studi per svolgere quel compito. Siamo sicuri che riescano con le loro caratteristiche personali a colmare le lacune della conoscenza?
Sunday, April 03, 2005
Forse non sempre si è pagati per quello che si è in grado di fare...
Al di là delle opinioni personali sul fatto che chi studia una certa cosa non dovrebbe mai rinnegare cosa ha studiato, questo Post dimostra come anche chi non sa al giorno d'oggi possa emergere...
Encoding Your Way To (Highly Paid) Consultantcy - The Daily WTF
Wednesday, March 30, 2005
Leggi dellinformatica moderna
Legge ciclica sulla programmazione: Analizza, sviluppa, distribuisci e ricomincia
Legge generale sulla programmazione: Usa la memoria con parsimonia
Legge del rimpianto: Prima era meglio
Legge sull'incremento della RAM: Ciò che dieci anni fa richiedeva 8 Kb per girare bene, richiede ora 8 Mb per girare male.
Corollario 1: Incrementa la memoria (la tua)
Corollario 2: Prima di usare la memoria del computer usa la tua
Legge ciclica sul Debug: La correzione di un errore genera nuovi errori
Legge sull'Help Desk: Le domande più sensate vengono dagli utenti più idioti
Corollario 1: L'utente preparato è colui che non evolve
Corollario 2: Gli utenti non sanno di non sapere
Legge sulla semplicità delle cause: Più sai, più impieghi a risolvere i problemi
Corollario: Parti dalle cause apparentemente più banali
Legge sulla navigazione in Internet: Se non si dove andare lo scoprirai
Legge sul backup: Usate il backup per ripristinare un file e l'utente si ritroverà con un documento non aggiornato
Corollario: Una volta fatto, il backup è da buttare
Legge sulla precarietà dei dischetti: Una volta salvati su dischetto i dati sono perduti
Legge sugli influssi informatici: Quando arrivi da un utente, ciò che non funzionava riprende a funzionare miracolosamente.
Suggerimento: Invia gli influssi per telefono
Legge del confine: Il SW inizia dove l'HW finisce. L'utente inizia dove il SW finisce.
Corollario 1: La vera causa di un problema utente non è mai nota.
Corollario 2: Se qualcosa va male sostituisci tutto l'HW
Corollario 3: Se il problema non è risolto reinstalla tutto il SW
Corollario 4: Se le cose continuano a non andare sostituisci l'utente
Legge sulla compilazione: Non sempre lo stesso sorgente produce lo stesso eseguibile
Corollario 1: Mantieni sampre una copia di tutte le compilazioni
Corollario 2: Forse è il caso di cambiare ambiente di sviluppo
Legge sulla Password: Password = Passa Parola
Corollario 1: Tutti sanno la password di tutti
Corollario 2: Se qualcuno non sa la password di un altro, gli servirà di notte
Corollario 3: Inventa un meccanismo per far cambiare la password e dovranno assumere un'altra persona al CED
Legge sulla quantità di memoria: Ram + Hard Disk + Disco di rete = non basta
Legge sulla condivisione di files: I files condivisi sono già stati aperti da qualcun'altro
Legge sul tempo di lavoro: Il tempo che un utente dedica al proprio lavoro è inversamente proporzionale al numero di personalizzazioni presenti sul suo PC
Legge sulle installazioni: Niente è più utile dell'opzionale!
Suggerimento: Installa tutto e subito
Legge sulle stampanti: Poche e buone
Legge sui processi: Informatizza un processo ed otterrai un processo diverso
Corollario 1: Gli utenti non sanno ciò che vogliono
Corollario 2: Inventa il processo
Corollario 3: Un algoritmo non risolve mai completamente un problema
Legge sulla velocità: La velocità non sta nell'Hardware
Corollario: Ogni installazione decrementa in Mhz della CPU
Legge sui drivers di tastiera: Non sempre il tasto premuto produce il carattere desiderato
Legge sullo sviluppo rapido: Sviluppa rapidamente, consegna rapidamente, cambia il recapito rapidamente
Corollario (già legge dei tappulli): Trova una soluzione rapida e preparati a trovarne un'altra.
Legge sugli Help: L'intuizione conta più di mille help
Corollario 1: Nell'informatica non si legge: si capta
Corollario 2: Anche l'help migliore è troppo difficile da leggere
Corollario 3: Meglio usare un programma male che perdere tempo a leggere l'Help
Legge sulla stabilità di un sistema informatico: Ogni HW ha il suo SW che lo stabilizza
Corollario: Non aggiornare mai un sistema stabile
Legge sulla compatibilità del formato dei documenti: Il contenuto di un documento varia in base al suo formato.
Legge sull'incremento delle leggi: Le leggi non sono mai tutte scritte
Ed infatti...aggiunte dalle ultime esperienze
Legge uno sul capo: Il capo non fa... delega
Legge due sul capo: Il capo non sa... quindi non fa
Legge tre sul capo (già legge della ricorsione): Il capo non fa... quindi non sa
Legge sulla gestione delle risorse: se hai troppe risorse, non assegnarle e tutti sapranno cosa fare
Legge sul tempo: se hai troppo tempo a disposizione ed i progetti stanno per finire, inventati nuove specifiche e fai ricominciare da capo il lavoro
Legge sull'help desk (già furbizia degli utenti): se esiste un sistema automatico per l'help desk, gli utenti non lo usano, se non esiste gli utenti non lo usano.
Corollario 1: l'help desk si chiama telefono
Corollario 2: le urgenze sono solo altrui
Legge sulla inutilità della pazienza: la pazienza non fa fare soldi
Conseguenza 1: Chi lavora nell'informatica non farà mai i soldi
Conseguenza 2: Cambia lavoro se sei interessato ai soldi
Legge sulla distribuzione della conoscenza: in un'azienda il 90% della conoscenza è nella testa degli informatici. Con il rimanente 10% l'azienda viene mandata avanti dagli altri.
Legge sulla distribuzione dei soldi: in un'azienda il 10% delle persone guadagna il 90% dei soldi che ogni mese l'azienda paga ai dipendenti
Corollario delle 2 leggi sopra (già detta Pareto degli informatici): chi conosce il 90% guadagna il 10%
Corollario 2 (già espresso in altra forma come legge del capo): per guadagnare non si deve sapere.
Legge del miglioramento Statico: Chi non fa non sbaglia. Chi non sbaglia emerge.
Corollario: Per emergere non devi fare
Legge del sovraccarico: Più fai più avrai da fare
Monday, March 21, 2005
The Daily WTF
Lo stimolo mentale che offre l'informatica è molto elevato!
The Daily WTF
Sunday, March 20, 2005
Maggiori innovazioni
Io ho fatto una classifica che è questa:
1. Creazione del VBA.
Si merita il primo posto per la elevata potenza che offre per integrare mondi tra loro diversi: gli utenti sono abituati a lavorare con Excel ed allora ecco una integrazione con un database per recuperare certi dati. Come questa esistono molti casi che richiedono una automazione spinta e questo è possibile grazie a VBA.
2. MS ACCESS
Per me Access è il miglior prodotto realizzato da Microsoft; le due maggiori innovazioni sono: il sistema di reporting (incredibile) e soprattutto la capacità di accedere a tabelle di altri database gestendole come proprie (Cross DB). Quest'utlima innovazione portata in SQL non ha la stessa semplicità d'uso e crea più difficoltà.
3. Framework .NET
Finalmente una libreria ad oggetti semplice potente e con una elevata produttività.
Wednesday, March 16, 2005
Chrome: Intregrazione di Object Pascal in Visual Studio
Chrome è un linguaggio per .NET implementato in Object Pascal (il linguaggio di Delphi).
Dopo l'installazione e la registrazione, sono disponibili nuovi progetti che possono essere realizzati in VS che entrano sotto il folder (Chrome Projects).
Farò alcuni tests.
Thursday, March 10, 2005
Valutazioni sul Framework .NET
Come al solito la verità sta nel mezzo: è vero che .NET è complesso e vasto, è vero che probabilmente scimmiotta altre librerie (VCL tra le prime) ma è anche vero che l'evoluzione del sistema Operativo e soprattutto della piattaforma COM era un qualcosa di inevitabile: Registri di sistema giganteschi, componenti COM registrati con versioni differenti, attività di disintallazione e reinstallazione improbabili e chi più ne ha più ne metta.
Lo scotto da pagare è sicuramente una instabilità iniziale del framework ed una curva di apprendimento che in certe aree potrebbe essere abbastanza lunga (per esempio la nuova logica di ADO.NET). Comunque l'impostazione è secondo me corretta e soprattutto promette bene (vista anche la release 2.0 con gli ambienti di sviluppo Express).
Wednesday, March 09, 2005
Il futuro di VB6
Chi ha speso tempo e denaro per sviluppare progetti complessi in VB 6 si trova ora a dover continuare ad usare un ambiente di sviluppo che non evolverà più con la stessa logica del passato oppure a dover migrare al nuovo VB.NET.
Al di là delle opinioni personali relative all'uso di un linguaggio piuttosto che di un altro, non è sicuramente positiva la reazione del mondo degli sviluppatori VB all'annuncio di VB.NET e soprattutto alla conclusione della evoluzione di VB sulla piattaforma Win32.
In effetti opinioni del genere sono alla base di articoli come questo.
C# Express 2005 Beta 2
Come nota importante ricordate di disinstallare la precedente versione (compresa la rimozione del Framework).