Ing.Ettore Cefalà
v.Conca del Naviglio,5
20123 - Milano MI
p.IVA: 07902170153
Tel.:0289401482
Fax: 0291703537
info@e-cefala.it

Ing. Ettore Cefalà

Software Engineering

 
Welcome 05/09/2010

Skip Navigation Links
Home
Offerta
Curriculum
Presentazione del Gridview to Excel Export Tool"
The GEET Site
Word Docx Demo
Web Site Management
ProgettiExpand Progetti









MCAD Certificate 


 

Benvenuto nel mio sito personale!

Laureato in Ingegneria Elettronica nel 1980 presso il Politecnico di Milano, ho lavorato per 6 anni in IBM Italia Spa nelle sedi di Segrate (MI) prima e via Fara e via Pirelli a Milano dopo. Con la nascita dei primi Personal Computer ho lasciato l'IBM per poter realizzare ed offrire in tempi e costi contenuti ai miei Clienti soluzioni rapide, affidabili, economiche.

Il compilatore Clipper - all'interno del command prompt di Visual studio 2008.

Con questi obbiettivi ho sempre cercato di utilizzare strumenti software altamente produttivi privilegiando quelli che erano in grado di ridurre al massimo i tempi di programmazione. Le prime applicazioni, tipicamente "Gestionali" utilizzavano un linguaggio e database "interpretati" come il DBaseII poi divenuto DBaseIII. Quindi ho iniziato ad utilizzare Clipper, compilato, su tabelle DBaseIII. Finalmente Microsoft pubblicava Ms Access 1.0 e ODBC. Questi strumenti permettevano finalmente, e permetteno ancora, ai Personal Computer, di lavorare sui database relazionali aziendali.

Storia

Fra le applicazioni più "antiche" ancora perfettamente funzionanti, c'è un gestionale realizzato nel 1994 con Clipper (Nantucket) su "database" DBaseIII. Nel tempo l'applicazione si è evoluta ed ora è stata affiancata da un'applicazione Access XP che legge e scrive le stesse tabelle DBaseIII e serve da interfaccia per sistemi di Contabilità, acquisizione automatica ordini, emissione Ricevute Bancarie ed altro.

La copertina del manuale di Access 1.1

Un altro applicativo che ha appena compiuto i 10 anni, è il sistema di Controllo di Gestione dei canali "Edicola" e "Abbonamenti" della De Agostini di Novara. L'interfaccia di questa applicazione nacque nel 1996 con MS Access 2.0 su database Oracle 7.3, ora gira con Access 2000 su database Oracle 9.

Fra le applicazioni più recenti c'è la realizzazione di una Intranet aziendale molto complessa per ECS International Italia Spa. Oltre che risolvere le necessità di informazione tempestiva dei settori Commerciali e Recupero Crediti, fornisce strumenti per la creazione on-line dei contratti di Leasing e Noleggio di apparecchiature informatiche.  Per ealizzare l'interfaccia che è ora un insieme di pagine ASP e ASPX che convivono tranquillamente, ho utilizzato nel tempo Visual Interdev, Visual Studio .Net 2003, Visual Studio .Net 2005 ed ora Visual Studio .Net 2008. Il sistema lavora su un database SQL Server 2000 che, a sua volta, si interfaccia, tramite Linked Server, con il database gestionale aziendale che si trova su un database DB2 IBM (AS/400), con il sistema di Contabilità Aziendale che gira su un database SQL SERVER 2000, e, per finire, con il database di datawarehouse che è un altro Sql Server 2000. Il sistema, che è installato su macchine del centro EDP del Cliente a Noisy (Parigi) è stato poi replicato ed adattato alle esigenze delle consociate UK ed Irlanda.ate UK ed Irlanda.

Sql Server 2005

Di recente ho realizzato un sistema gestionale di raccolta e gestione degli Ordini di Pubblicità. Il sistema in questo caso è monoutente, realizzato completamente con Access 2003, consente di produrre e stampare i Contratti, le Schede di Programmazione per le radio e fornisce report di controllo opportuni.

Avevo realizzato anche il sito www.viaggiamoinsieme.it di Car Pooling che consente di trovare compagni di viaggio con cui condividere l'auto negli spostamenti casa/lavoro/casa ma anche per organizzare le proprie vacanze in auto. Questo sito, molto sofisticato dal punto di vista tecnico,  utilizza i Web Services della Michelin. Grazie e questi è possibile tradurre gli indirizzi forniti dagli utenti in coordinate geografiche e con queste calcolare le distanze fra i punti di partenza e di arrivo dei possibili compagni in modo assolutamente preciso.

Per SORIN GROUP Spa ho realizzato una intranet aziendale che consolida i dati dei magazzini sparsi in tutto il mondo e fornisce statistiche sugli indici di rotazione dei prodotti grezzi e semilavorati. Il sistema utilizza Sql Server Integration Services per raccogliere i dati, Sql Server 2005 ed un sito ASP.NET per consentire l'accesso e l'interrogazione dei dati, quindi Microsoft Office Open XML per esportare i dati in fogli Excel in modo che siano facilmente consultabili dagli utenti finali.

 

Recentemente ho realizzato un prodotto che consente di esportare facilmente dati in fogli Excel da siti ASP.NET. E' nato così http://www.gridviewtoexcel.com. Sviluppare questo progetto è stata una cosa alquanto complessa perchè mi ha "costretto" ad utilzzare quasi tutte le tecnologie Microsoft disponibili con Visual studio 2005, ivi compreso l'XML e la nuova tecnologia di Office 2007 "Microsoft Office Open XML".

Il rapporto con i Clienti

Nel rapporto Fornitore/Cliente ho sempre cercato di guadagnare la fiducia del cliente dimostrando sempre la massima professionalità, disponibilità nel rispettare gli impegni presi o nell'intervenire per risolvere un problema. Sono inoltre per me fondamentali la rapidità nel soddisfare nuove richieste, la tempestività nel risolvere problemi, blocchi di programma, e l'affidabilità dei sistemi realizzati.

Lavorare da solo consente inoltre un rapporto molto personale con i Clienti in tutte le fasi della realizzazione e della vita di un progetto. Durante l'analisi abitualmente ho a che fare con i responsabili dell'Informatica che mi pongono i loro problemi e mi introducono presso l'utente o gli utenti finali. Questa è forse la fase più difficile del progetto ed anche la più delicata. Dal suo sviluppo spesso dipende infatti il successo o meno del progetto spesso.

Usualmente il mio intervento è richiesto quando l'informatica non ha risorse interne da affidare alla realizzazione particolare nè ha avuto la possibilità di svolgere una accurata analisi del problema. Così spesso mi trovo a raccogliere le richieste di utenti che spesso non sono informatici e che parlano il loro linguaggio. Di solito utilizzano fogli Excel ed avvertono l'esigenza di condividere le proprie informazioni con altri utenti, o di prelevare dati o fornire dati in modo automatico da/a qualche sistema aziendale.

Raccolte le informazioni e la documentazione necessarie, realizzo e presento un progetto di realizzazione ed un preventivo in termini di tempo e di denaro. Una volta approvati, inizio a realizzare il sistema. Questa è veramente, la fase più gratificante del mio lavoro. In questa fase, abbozzato quanto più possibile il database sottostante l'applicazione ed abbozzate le funzioni principali, le presento agli utenti per avere il loro feedback e poter procedere con maggiore sicurezza. Questi confronti con l'utente portano migliorano la comprensione del problema, l'utente è costretto a razionalizzare le proprie necessità, e spesso nascono idee che portano a soluzioni che nella fase di analisi non erano prevedibili né da una parte né dall'altra.

Appena possibile installo presso il Cliente un sistema di test in modo che gli utenti stessi possano verificare lo stato di sviluppo e identificare eventuali problemi.

.Net Framework 2.0 Manual

Reiterando più volte incontri con l'utente, e rilasci in test si arriva finalmente all'installazione finale del sistema. A questo punto il sistema è spesso già collaudato in tutte le sue funzionalità e quindi sono molto scarse le richieste di intervento per soluzione di bug. Il risultato spesso è raggiunto con il minimo coinvolgimento da parte dell'Informatica alla quale l'applicazione è consegnata "chiavi in mano", completa dei sorgenti dei programmi e della documentazione.

A questa fase, dopo qualche tempo, seguono normalmente nuove richieste che vengono studiate e innestate sul progetto originale con estrema semplicità grazie alla duttilità degli strumenti utilizzati.

Tecnologie

Come già anticipato i miei attuali strumenti di sviluppo appartengono per la maggior parte al mondo Microsoft. Per la realizzazione delle interfacce, cioè di ciò che l'utente vede sullo schermo, utilizzo o Microsoft Access oppure Visual Studio .Net 2008. Per quanto riguarda i database quelli che utilizzo più di frequente, a seconda della complessità e della quantità di dati a gestire, ma anche in funzione delle politiche aziendali, sono Microsoft Access stesso, Microsoft SQL Server 2000/2005 oppure Oracle.

Con Visual Studio .Net  è possibile realizzare applicazioni Internet accessibili anche via telefono cellulare o palmare se configurati per navigare in Internet. Il sito www.viaggiamoinsieme.it è raggiungibile anche da telefono cellulare.

Grazie all'abbonamento MSDN Universal posso disporre inoltre di tutti i software Microsoft più aggiornati, della documentazione dei prodotti e di supporto tecnico da parte dei tecnici specializzati.


Request Details

Session Id:domfiq55au4fn345iinxnt55Request Type:GET
Time of Request:05/09/2010 4.30.11Status Code:200
Request Encoding:Unicode (UTF-8)Response Encoding:Unicode (UTF-8)

Trace Information

CategoryMessageFrom First(s)From Last(s)
aspx.pageBegin PreInit
aspx.pageEnd PreInit0,0002693079707057740,000269
aspx.pageBegin Init0,0003050667054052960,000036
aspx.pageEnd Init0,0003466921075164580,000042
aspx.pageBegin InitComplete0,0003648508399810590,000018
aspx.pageEnd InitComplete0,000382450842215980,000018
aspx.pageBegin PreLoad0,0003994921142212210,000017
aspx.pageEnd PreLoad0,0004215619582935820,000022
aspx.pageBegin Load0,0004386032302988230,000017
aspx.pageEnd Load0,0004754794254577050,000037
aspx.pageBegin LoadComplete0,0004939175230371460,000018
aspx.pageEnd LoadComplete0,0005106794299275470,000017
aspx.pageBegin PreRender0,0005274413368179480,000017
aspx.pageEnd PreRender0,0006207492851745120,000093
aspx.pageBegin PreRenderComplete0,0006542730989553140,000034
aspx.pageEnd PreRenderComplete0,0006713143709605550,000017
aspx.pageBegin SaveState0,001613333538201080,000942
aspx.pageEnd SaveState0,001732343077122930,000119
aspx.pageBegin SaveStateComplete0,001756927207228850,000025
aspx.pageEnd SaveStateComplete0,001773689114119250,000017
aspx.pageBegin Render0,001789612925665130,000016
aspx.pageEnd Render0,003666108402045510,001876

Control Tree

Control UniqueIDTypeRender Size Bytes (including children)ViewState Size Bytes (excluding children)ControlState Size Bytes (excluding children)
__PageASP.default_aspx2284200
    ctl00ASP.mp_master2284200
        ctl00$ctl18System.Web.UI.LiteralControl17200
        ctl00$ctl00System.Web.UI.HtmlControls.HtmlHead95700
            ctl00$ctl01System.Web.UI.HtmlControls.HtmlTitle3900
            ctl00$ctl02System.Web.UI.HtmlControls.HtmlMeta22600
            ctl00$ctl03System.Web.UI.HtmlControls.HtmlMeta51100
            ctl00$ctl04System.Web.UI.HtmlControls.HtmlMeta4700
            ctl00$ctl05System.Web.UI.HtmlControls.HtmlLink6400
            ctl00$ctl06System.Web.UI.HtmlControls.HtmlLink5700
        ctl00$ctl19System.Web.UI.LiteralControl1300
        aspnetFormSystem.Web.UI.HtmlControls.HtmlForm2168000
            ctl00$ctl20System.Web.UI.LiteralControl6800
            ctl00$externalSystem.Web.UI.HtmlControls.HtmlTable2077300
                ctl00$topSystem.Web.UI.HtmlControls.HtmlTableRow221500
                    ctl00$ctl07System.Web.UI.HtmlControls.HtmlTableCell171300
                        ctl00$ctl21System.Web.UI.ResourceBasedLiteralControl161500
                    ctl00$ctl08System.Web.UI.HtmlControls.HtmlTableCell35600
                        ctl00$ctl22System.Web.UI.LiteralControl4100
                        ctl00$LbPageTitleSystem.Web.UI.WebControls.Label5500
                        ctl00$ctl23System.Web.UI.LiteralControl10700
                        ctl00$LbPageSubTitleSystem.Web.UI.WebControls.Label5900
                        ctl00$ctl24System.Web.UI.LiteralControl3600
                    ctl00$ctl09System.Web.UI.HtmlControls.HtmlTableCell11600
                        ctl00$ctl25System.Web.UI.LiteralControl3700
                ctl00$ctl10System.Web.UI.HtmlControls.HtmlTableRow29400
                    ctl00$ctl11System.Web.UI.HtmlControls.HtmlTableCell14200
                        ctl00$ctl26System.Web.UI.LiteralControl1700
                        ctl00$Label1System.Web.UI.WebControls.Label3900
                        ctl00$LoginName1System.Web.UI.WebControls.LoginName000
                        ctl00$ctl27System.Web.UI.LiteralControl1400
                    ctl00$ctl12System.Web.UI.HtmlControls.HtmlTableCell13700
                        ctl00$ctl28System.Web.UI.LiteralControl1700
                        ctl00$LbDataSystem.Web.UI.WebControls.Label41320
                        ctl00$ctl29System.Web.UI.LiteralControl1400
                ctl00$centralSystem.Web.UI.HtmlControls.HtmlTableRow1800000
                    ctl00$ctl13System.Web.UI.HtmlControls.HtmlTableCell703000
                        ctl00$ctl30System.Web.UI.LiteralControl23500
                        ctl00$Menu1System.Web.UI.WebControls.Menu525100
                        ctl00$ctl31System.Web.UI.ResourceBasedLiteralControl148200
                    ctl00$ctl14System.Web.UI.HtmlControls.HtmlTableCell1093600
                        ctl00$ctl32System.Web.UI.LiteralControl1700
                        ctl00$ContentPlaceHolder1System.Web.UI.WebControls.ContentPlaceHolder1083700
                            ctl00$ContentPlaceHolder1$ctl00System.Web.UI.ResourceBasedLiteralControl47400
                            ctl00$ContentPlaceHolder1$Image1System.Web.UI.WebControls.Image30700
                            ctl00$ContentPlaceHolder1$ctl01System.Web.UI.ResourceBasedLiteralControl114900
                            ctl00$ContentPlaceHolder1$Image2System.Web.UI.WebControls.Image22900
                            ctl00$ContentPlaceHolder1$ctl02System.Web.UI.ResourceBasedLiteralControl867800
                        ctl00$ctl33System.Web.UI.LiteralControl1400
                ctl00$bottomSystem.Web.UI.HtmlControls.HtmlTableRow19500
                    ctl00$ctl15System.Web.UI.HtmlControls.HtmlTableCell2700
                        ctl00$ctl34System.Web.UI.LiteralControl1400
                    ctl00$ctl16System.Web.UI.HtmlControls.HtmlTableCell9200
                        ctl00$ctl35System.Web.UI.LiteralControl6700
                    ctl00$ctl17System.Web.UI.HtmlControls.HtmlTableCell2700
                        ctl00$ctl36System.Web.UI.LiteralControl1400
            ctl00$ctl37System.Web.UI.LiteralControl1600
        ctl00$ctl38System.Web.UI.LiteralControl2000

Session State

Session KeyTypeValue

Application State

Application KeyTypeValue

Request Cookies Collection

NameValueSize

Response Cookies Collection

NameValueSize
ASP.NET_SessionIddomfiq55au4fn345iinxnt5542

Headers Collection

NameValue
Cache-Controlno-cache
Connectionclose
Pragmano-cache
Accepttext/html,application/xhtml+xml,text/xml;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-CharsetISO-8859-1,utf-8;q=0.7,*;q=0.7
Accept-Encodinggzip
Accept-Languageen-us,en;q=0.5
Hostwww.e-cefala.it
User-AgentCCBot/1.0 (+http://www.commoncrawl.org/bot.html)
x-cc-idccc03-02

Response Headers Collection

NameValue
X-AspNet-Version2.0.50727
Set-CookieASP.NET_SessionId=domfiq55au4fn345iinxnt55; path=/; HttpOnly
Cache-Controlprivate
Content-Typetext/html

Form Collection

NameValue

Querystring Collection

NameValue
aspxerrorpath/WebResource.axd

Server Variables

NameValue
ALL_HTTPHTTP_CACHE_CONTROL:no-cache HTTP_CONNECTION:close HTTP_PRAGMA:no-cache HTTP_ACCEPT:text/html,application/xhtml+xml,text/xml;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5 HTTP_ACCEPT_CHARSET:ISO-8859-1,utf-8;q=0.7,*;q=0.7 HTTP_ACCEPT_ENCODING:gzip HTTP_ACCEPT_LANGUAGE:en-us,en;q=0.5 HTTP_HOST:www.e-cefala.it HTTP_USER_AGENT:CCBot/1.0 (+http://www.commoncrawl.org/bot.html) HTTP_X_CC_ID:ccc03-02
ALL_RAWCache-Control: no-cache Connection: close Pragma: no-cache Accept: text/html,application/xhtml+xml,text/xml;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5 Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Accept-Encoding: gzip Accept-Language: en-us,en;q=0.5 Host: www.e-cefala.it User-Agent: CCBot/1.0 (+http://www.commoncrawl.org/bot.html) x-cc-id: ccc03-02
APPL_MD_PATH/LM/W3SVC/1758828215/Root
APPL_PHYSICAL_PATHD:\e-cefala\sito\
AUTH_TYPE 
AUTH_USER 
AUTH_PASSWORD 
LOGON_USER 
REMOTE_USER 
CERT_COOKIE 
CERT_FLAGS 
CERT_ISSUER 
CERT_KEYSIZE 
CERT_SECRETKEYSIZE 
CERT_SERIALNUMBER 
CERT_SERVER_ISSUER 
CERT_SERVER_SUBJECT 
CERT_SUBJECT 
CONTENT_LENGTH0
CONTENT_TYPE 
GATEWAY_INTERFACECGI/1.1
HTTPSoff
HTTPS_KEYSIZE 
HTTPS_SECRETKEYSIZE 
HTTPS_SERVER_ISSUER 
HTTPS_SERVER_SUBJECT 
INSTANCE_ID1758828215
INSTANCE_META_PATH/LM/W3SVC/1758828215
LOCAL_ADDR192.168.2.2
PATH_INFO/default.aspx
PATH_TRANSLATEDD:\e-cefala\sito\default.aspx
QUERY_STRINGaspxerrorpath=/WebResource.axd
REMOTE_ADDR38.107.191.108
REMOTE_HOST38.107.191.108
REMOTE_PORT7692
REQUEST_METHODGET
SCRIPT_NAME/default.aspx
SERVER_NAMEwww.e-cefala.it
SERVER_PORT80
SERVER_PORT_SECURE0
SERVER_PROTOCOLHTTP/1.1
SERVER_SOFTWAREMicrosoft-IIS/6.0
URL/default.aspx
HTTP_CACHE_CONTROLno-cache
HTTP_CONNECTIONclose
HTTP_PRAGMAno-cache
HTTP_ACCEPTtext/html,application/xhtml+xml,text/xml;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
HTTP_ACCEPT_CHARSETISO-8859-1,utf-8;q=0.7,*;q=0.7
HTTP_ACCEPT_ENCODINGgzip
HTTP_ACCEPT_LANGUAGEen-us,en;q=0.5
HTTP_HOSTwww.e-cefala.it
HTTP_USER_AGENTCCBot/1.0 (+http://www.commoncrawl.org/bot.html)
HTTP_X_CC_IDccc03-02

Microsoft .NET Framework Version:2.0.50727.3615; ASP.NET Version:2.0.50727.3614