Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
informazione e sostenibilità
Dal mese di Dicembre parte la nostra campagna contro lo spreco della carta e la deforestazione
selvaggia delle foreste primarie. Abbiamo deciso di dare impulso a questa iniziativa prendendo
atto della realtà diffusa in cui la carta è considerata una risorsa illimitata, a buon mercato e tuttora
utilizzata per qualsiasi tipo di pubblicazione (compresi miliardi di volantini “usa e getta”, come quelli
che lastricano le zone fieristiche all’ora di chiusura).
Dati alla mano, ogni anno in Italia vengono sprecati solo… 50 miliardi di fogli di carta! Ossia 2
milioni di alberi. Dal 1995 al 2020 la produzione internazionale della cellulosa e della carta per
l’editoria sarà cresciuta del 77%, e circa il 75% del legname importato da Russia e Indonesia – e quindi
della carta utilizzata per la stampa – proviene da alberi abbattuti illegalmente nelle foreste primarie.
Tutti gli anelli che compongono la catena editoriale sono, a vario titolo, responsabili del consumo
della carta ed ognuno, con un po’ di buona volontà, può (e prima o poi dovrà) correggere le storture
di un processo editoriale disattento alla sostenibilità.
Un esempio è la quantità esorbitante di carta utilizzata per gli atti dei parlamenti (nazionali ed
europeo), magari per minute e testi di validità più che effimera; ulteriore esempio è il numero di
copie tirate dai quotidiani, dai settimanali e dai periodici che è di gran lunga superiore (per via dei
contributi statali) alle copie effettivamente vendute: in sintesi, si sa già in partenza che gran parte di
quelle copie è destinata al macero. Punto.
Questo scenario distorto era tarato per una società in cui l’informazione veniva veicolata quasi
esclusivamente su carta, ma oggigiorno non è più così: tra televisione, radio, Internet, telefoni cellulari
e dispositivi vari, il cartaceo non è più “il principale supporto” di veicolazione. Invece attraversando
i capannoni industriali capolinea della distribuzione editoriale, si nota che sono stracolmi di torri di
rifiuti editoriali cartacei. Migliaia di tonnellate di prodotti destinati al macero ogni anno.
Il progetto Infomedia Green è ambizioso e innovativo; per realizzarlo abbiamo necessità della
collaborazione e della buona volontà di tutti i nostri lettori: perché ognuno, dalla sua scrivania, può
iniziare a far molto per una migliore sostenibilità.
Per mettere in atto questo progetto promuoveremo degli incentivi per promuovere un consumo più
critico, prendendo atto dell’inevitabile sorpasso del digitale sul cartaceo: la qualità dei nostri contenuti
resta immutata, ed è comunque possibile stampare i PDF degli articoli che più interessano.
Non prevediamo l’eliminazione totale della stampa su carta, ma opteremo per una soluzione “on
demand”: l’utente che non vuol rinunciare alla sua copia cartacea completa potrà comunque
acquistarla in ogni momento, limitando al massimo lo spreco di carta. È una questione di sensibilità
e anche di comodità, visto che già oggi trascorriamo più tempo a leggere informazioni tecniche dal
video e sempre meno su carta.
���������������������������������������������������
��������������������������������������������
������������������������������������������������������������������������������������������������������������������������������������������������
��� ������� �������� �� �������� ��������� ����������
������������������������������������������������
�������������������������������������������������
��������������������������������������������
������������������������
IN VETRINA
ASP.NET 3.5 Unleashed Advanced FPGA Design Visual Basic 2005 with .NET 3.0
di S.Walther Architecture, Implementation, and Programmer’s Reference
Sams Optimization di R. Stephens
1920 pp - euro 52,95 di S. Kilts John Wiley
ISBN 9780672330117 John Wiley 1200 pp - euro 35,95
336 pp - euro 80,00 ISBN 9780470137055
ISBN 9780470054376
Building a Web 2.0 Portal Programming .NET 3.5 Wiley Pathways PC Hardware
with ASP.NET 3.5 Rough Cuts Version Essentials Project Manual
di O. A. Zabir di A. Horovitz e J. Liberty di D. Groth, R. Gilster e R. Polo
O’ Reilly O’ Reilly John Wiley
308 pp - euro 45,00 704 pp - euro 49,00 240 pp - euro 25,00
ISBN 9780596510503 ISBN 9780596510398 ISBN 9780470114117
VBJ 78
VBJ 78
���� ��������
����������������
�����������������������������������
�������������������������������������
�����������������������������������
��� ���� ��� �������� �������������� ��� ��
����������������������������������
������������������������������� ��������
��������������������������������������
����������������������������
�������� �� ������ ���� ������� ����
�� ����������������������������������������������
������������������������
�����������������������������������
����������������������������������������
������������������������������������ ������
������������������������������������
����������������������������������������������
����������������������������������������
�������������������������������������
�� ��������������������������������������������������������������������������������
������������������������������������� �������������������������������������������������������������
������������������������������������ �������������������
��������������������������������������
�� �������������� ���� ��������� ������
���������������������������������� ������
������������������������������������
���������� �� �������������������������������������������������������
�����������������������������������������������������������������������������������
���� ����� ��� ��������� ������� ���
������ ������ �������� ������ ���������
��������������������
��� ������� ��� �������� ���� ������ �����������������������������������������
����������������������������������
��������
���������� ������� ���� �������� ����� ���������
�������� ��������������� ��� �������
������������������������������������
������������������������������������
�� ��������������������
���������������������������������������������������������������������
������ ���� ���������� ��� ��������� ��� �������������������
���������������������������������
�����������������������������������
������� ���������� ������ ������ ������ ����
�������������������������������������
�������������������������������������
���������� �������������� ��� ��������
��� �������� ���������� �� ���� �����������
�� �������������������������������������������������������������������������������������������
��������� ��������������������������������������������������������������������������������������
������ ������ ���� ������������� ��� ������������
���������� ��� ������� ����������� �������������������������������
���������� ������� ���� ������
��������
���������
���������������������
�� ���������������������������������������������������������������������������������
��������������������������������������������������������������������
�������������������
���������������
��������
������������������������������������������������������������������������������������
�������������������������������������������������������������������������������������� �� ����������
�������������������������������������������������������������������������������������������
������������������������������������������������������������������� �� ���������������
����������������������������������� �
�������������������
��������������������������������
�����������������������������
��������������������������
��������������������������������������
�
��������������������
���� ������� ������
�������������������������
�����������������������������������������
����������������
�������������������������������
�������������
�����������������������
���������������
�����������������
�������������
���������������������
�
������������������������������������������������������
������������������������������������������������������
���������������������������������������������������
��������������������������������������������������������������
�����������������������������������������������������������������
��������������������������������������������������������������
����������������������������������������������������������������
�����������������������������������������������������������������
����������������������������������������������������������������
�����������������������������������������������������������������
�������� ������� ����������� ����������� ����������� ����� �������
����������
��������������������
��������������������������������
�������������������������������������������������������������������������������������
������������������������� ���������������������������������������������������������������������������������������������
����������������������� ���������������������������������������������������������������������������������������
�����������������������
��������������������������������������������������������������������������������������
��������������� ��������������������������������������������������������������������������������������������
������������������������������
������������������
������� ��������������������������������������������������������������������������������������������
����������������������� ����������������������������������������������������������������������������������������
�������������� ���������������������������������������������������������������������������������������
������������������� �������������������������������������������������������������������������
����������� �����������������������������������������������������������������������������������������
������������������� ��������������������������������������������������������������������������������������������
������������������������������������������������������������������������������������������
�������������������������������������������������������������������������������������������
������ ���������������������������������������������������������������������������������������
������������������������ �����������������������������������������������������������������������������������������
����������������������
�����������������������������������������������������������������
���������������������������������������������������������������������������������������������
������������������� ��������������������������������������������������������������������������������������������
����������������������������������
��������������������������������� ��������������������������������������������������������������������������������������������
���������������� ��������������������������������������������������������������������������������������������
�������������������������������������������������������������������������������������������
�������������������������������
������������������������������������������������ ���������������������������������������������������������������������������������������������
���������������������������������� ������������������������������������������������������������������������������������������
�������������������� ������������������������������������������������������������������������������������������
�������������������������
����������������
��������������������������
���������������������������������������������������������
����������������������������������������������������
������������������������������������
����������������������������������������������������������������
���������������������������������������������������������
�������������������������������������
�������������������������������������������������������������������������
�����������������������������������������������������
����������������������������������� ��
WINDOWS SERVER
Windows Server
System
Reference Architecture
di Alessandro Sinibaldi
Architettura di rete
Figura 3 Architettura di rete di riferimento secondo Cisco (adattata dal sito Cisco)
di sessione.
• Packet filter: lavora a livello 3 o 4. Ogni
pacchetto di rete è accettato o rifiutato sul-
la base di una serie di regole di accesso
determinate dall’amministratore di rete. È
sensibile ad attacchi come l’IP spoofing, in
cui un attaccante sfrutta degli indirizzi IP
consentiti.
• Proxy server: il firewall nasconde i detta-
gli della rete dietro di esso facendo sem-
brare come se tutte le richieste provenien-
ti dagli host dietro di lui, provenissero da
lui stesso.
Architettura di storage
Figura 5 Modello di storage tipo DAS. Ogni
server ha le sue unità di immagazzi- Ad alto livello, i requisiti di business posso-
namento dati no essere espressi così:
“aumentare l’efficienza, riducendo lo spreco
di spazio di storage e il total cost of ownership
questa categoria rientrano varie tecnolo- (TCO), e gestire un volume sempre crescente
gie per il collegamento remoto all’azien- di dati di business”.
da, tipo WiMAX, UMTS, GPRS, HDSPA e
così via. Il disegno di un’architettura di enterprise
storage deve tenere conto di un certo nume-
Infine, tra le varie periferiche presenti sulla ro di fattori:
rete non possiamo tralasciare apparati di si-
curezza come i firewall. Questi hanno lo sco- • volume dei dati
po di separare zone della rete che hanno una • criticità dei dati immagazzinati nelle di-
classificazione diversa dal punto di vista del- verse posizioni
la sicurezza. Così, ad esempio, metteremo le • capacità di rete dell’organizzazione
risorse più preziose come il database delle pa- • diversità tecnica degli ambienti di busi-
ghe in un certo segmento di rete, i desktop ness
aziendali in un altro, le risorse internet in un • eventuale presenza di sistemi di storage
altro ancora e così via. Lo scopo di un firewall di tipo legacy
è separare, facendo passare solo il traffico di • skill tecnici
rete che è legittimo far passare. I firewall pos-
sono essere di vario tipo: A disposizione dell’architetto ci sono varie
tecnologie di storage:
• Application gateway: lavorano al livello 7
della pila ISO/OSI. È il firewall di tipo più • Direct-Attached Storage (DAS) - È lo sto-
sofisticato perché va ad ispezionare i pac- rage attaccato direttamente al server con
chetti destinati a certe applicazioni, come cavi in fibra e rame. Si va dai normali di-
il traffico HTTP o quello FTP. schi IDE ai più elaborati controller RAID.
• Circuit-level gateway: lavorano al livello I vantaggi di questa soluzione sono: il bas-
5. Distinguono i pacchetti in base al pro- so costo, la semplicità, le performance, la
tocollo e alle porte ma non fanno nessun sicurezza (in quanto i dati sono accessibi-
controllo sui contenuti. Hanno il concetto li solo da un singolo server), la gestione
gici distinti:
• Duplicazione o replicazione
• RAID (con parità) che permette di ricostrui-
re velocemente i dati in caso di corruzione
parziale
Spesso si utilizza per i cluster anche un’al- L’architettura logica, vista fino ad ora, vie-
tra terminologia: ne implementata fisicamente tenendo presen-
ti due aspetti:
• Cluster attivo-attivo - Entrambi i nodi del
cluster erogano i servizi contemporanea- • la suddivisione dei livelli logici in livelli
mente fornendo, quindi, anche funziona- fisici.
lità di bilanciamento del carico. Un esem- • la suddivisione della rete dell’infrastruttu-
Architettura di
gestione
dell’infrastrut-
tura
L’architettura di
base si presenta
come in Figura
11. Sono presenti
tre livelli:
• Data - Rap-
presenta l’insie-
me di tutti i ser-
ver e gli appara-
ti da sottoporre a
monitoraggio.
Figura 12 La metodologia di gestione del rischio secondo Microsoft • Services -
Rappresenta l’in-
sieme dei server
che espletano i
ra in più segmenti separati da firewall. compiti di raccolta delle informazioni sulle
performance, la sicurezza, e eventuali al-
Si possono avere, quindi, più configurazio- larmi sui server monitorati. È questo il li-
ni possibili, tutte documentate sul sito di WS- vello di Governance dell’infrastruttura.
SRA. Riporteremo qui una di queste, quella • Centralized - È il punto dove fisicamente
che più comunemente si troverà in un am- siedono le persone del Service Desk che
biente di tipo Enterprise. tramite le opportune interfacce, cruscotti
e quant’altro tengono d’occhio lo stato di
Questa architettura, a 3 livelli fisici separa- salute dell’infrastruttura ed eseguono gli
ti, ha il vantaggio che il Livello Dati e quel- appropriati task di gestione.
lo di Business sono entrambi protetti da due
firewall che devono aprire solo le porte TCP Il requisito di business è esprimibile trami-
80 (http) e 443 (https). Lo svantaggio d’altron- te la frase: “gli obiettivi di massima visibili-
de, qualora una parte delle sorgenti dati sia tà per l’efficacia operativa includono la ri-
rappresentata da Web service esterni è che le duzione dei costi della gestione dei core as-
chiamate a questi devono partire dalla rete in- set IT di un’organizzazione e l’aumento del
terna, dove si trovano gli application service. livello di servizio che questi asset forniscono
Possiamo allora dire che, se la maggioranza ai loro utenti”.
delle sorgenti dati si trovano nella rete inter-
na, allora forse quella mostrata è l’architettu- Le metodologie alla base di questo processo
ra preferibile, altrimenti si potrebbe prendere di gestione dell’infrastruttura IT sono Micro-
in considerazione l’architettura in cui l’appli- soft Operations Framework e ITIL.
cation server che ospita il business layer vie-
ne spostato nella DMZ (Demilitarized Zone) I prodotti che Microsoft considera a questo
o rete perimetrale dove si trova il web server livello sono:
(Presentation Layer).
• Microsoft Operations Manager (MOM) ti potrebbero dirottarsi verso i siti dei nostri
• Microsoft Software Update Services concorrenti. La nostra reputazione potrebbe
(SUS) venire a mancare, portando anche alla perdi-
• Microsoft SMS ta di vecchi clienti. Se un nostro dipendente
distrugge per sbaglio un file importante con-
Architettura di sicurezza tenente i dati di vendita, questo potrebbe ren-
derci incapaci di soddisfare una scadenza fi-
Il requisito di business è esprimibile trami- nanziaria e quindi esporci a multe. Tutto ciò
te la frase: rappresenta la perdita di Valore.
“il business sta diventando sempre di più
orientato a Internet. Il confine tra le aziende Una volta individuati gli asset, la doman-
diventa sempre più debole, dal momento che da successiva è capire cosa può minacciar-
i sistemi IT di partner, fornitori e clienti de- li (threat). Nell’esempio sopra, la rottura di
vono essere sempre più interconnessi. Questo un disco o la distruzione di file sono esem-
apre la strada a nuovi pericoli di intrusioni. pi di threat. In entrambi i casi, ciò che viene
La globalizzazione porta ad avere clienti, an- evidenziato è che il nostro Business è vul-
che potenziali, a fusi orari molto diversi tra nerabile.
loro, con la necessità, quindi di essere sempre
online, 24 ore su 24 e 7 giorni su 7”. A questo punto dobbiamo capire come con-
trastarli (contromisure). Nel caso del disco
Il problema fondamentale della sicurezza è potremmo decidere che per ovviare alla pos-
quello di poter garantire continuità al Busi- sibilità teniamo un hard disk di riserva e fac-
ness. Per fare questo sono necessari un cer- ciamo un backup giornaliero oppure dotiamo
to numero di passi: il nostro server di un controller RAID e faccia-
mo un mirroring del disco. Da questo esem-
• Capire cosa è che dà valore al business. pio, capiamo anche un altro aspetto. In gene-
• Capire quali sono gli eventi che possono rale, a fronte di un singolo Threat ci posso es-
togliere valore al business. sere più contromisure adeguate a contrastar-
• Capire come contrastare questi eventi. lo. Dobbiamo però capire quale può essere
• Capire qual è la probabilità con cui que- la più idonea e con questo indendiamo quel-
sti eventi possono verificarsi. la che ha il costo minore, l’impatto minore e
• Capire la priorità con cui investire le li- le controindicazioni minori. Va da sè, inoltre,
mitate risorse economiche per contrastare che se ho un budget limitato e la mia azien-
l’accadimento degli eventi negativi (anali- da risiede in una zona a basso rischio sismi-
si costi/benefici). co e a alta criminalità, probabilmente non in-
vestirò i miei soldi per dotarmi di una sede a
Il processo che abbiamo appena descritto prova di terremoto ma mi doterò di guardia-
rappresenta i passi necessari per effettuare ni e di antifurti.
una gestione del Rischio.
L’analisi dei processi di Business, ci permet- Arriviamo così ad un altro aspetto della ge-
te di valutare quali sono gli asset dell’organiz- stione del Rischio, la probabilità di accadi-
zazione, cioè quei punti dove risiede il valore. mento di un threat. Dal momento che il no-
Valore è tutto ciò che fa sì che noi possiamo stro obiettivo finale sarà quello di fare un’ana-
continuare a fare ciò che stiamo facendo. lisi costi-benefici, dovremo anche capire se ci
Se, ad esempio, l’hard disk del nostro sito conviene o no contrastare una minaccia op-
di e-commerce si rompe, questo vuol dire che pure semplicemente prenderne atto, conside-
potremmo dover sopportare un downtime du- randone il rischio trascurabile.
rante il quale potenziali nostri nuovi clien-
• Introduction
• Blueprint - Descrive l’architettura di rife-
Migrazione
da VB6 a VB.NET,
un nuovo approccio
A sei anni dalla introduzione di .NET sono ancora molte le applicazioni VB6
che devono essere convertite nella versione .NET di Visual Basic.
In questo articolo, il primo di una mini-serie, affronteremo il problema in
modo analitico.
di Francesco Balena
Declare Sub RtlMoveMemory Lib “kernel32.dll” (dest Potrei fare numerosi altri esempi di questo
As Any, source As Any, ByVal bytes As Long) concetto. Per rimanere nell’ambito delle API
di Windows, l’Upgrade Wizard non è in gra-
Sub Test() do di tradurre correttamente le Declare che
Dim arr1(10) As Integer, arr2(20) As Integer contengono un indirizzo di callback, come ad
‘ … esempio EnumWindows e EnumFonts. Un al-
‘ copia i primi 5 elementi di arr1 in arr2 tro esempio è la cosiddetta finalizzazione non
RtlMoveMemory arr1(0), arr2(0), 5 * 2 deterministica di VB.NET, come mostrato nel
‘ copia gli elementi 8-9 in un intero a seguente codice:
32-bit
Dim result As Long Dim cn As New ADODB.Connection
RtlMoveMemory result, arr1(8), 4 ‘ apri e usa la connessione
End Sub ‘ ... (omesso) ...
Migration Partner. La prima versione consiste- con la keyword ByVal. Oppure segnala quan-
va in un parser abbastanza rudimentale, ma do una concatenazione di stringhe all’interno
già dopo pochi mesi riusciva a migrare mol- di un ciclo potrebbe essere ottimizzata dopo
ti dei costrutti fuori dalla portata dell’Upgra- la migrazione ricorrendo ad una variabile di
de Wizard. Quando mi sono reso conto che il tipo StringBuilder.
potenziale di questo prodotto era enorme, ho
riscritto il prototipo e abbiamo creato un vero VB Migration Partner supporta gli oltre 60
e proprio team in Code Architects dedicato a controlli forniti con VB6, i project group, le
questo progetto (attualmente ci sono cinque istruzioni grafiche e di stampa, il drag-and-
persone che ci lavorano a tempo pieno). Men- drop, i menu popup, gli array di controlli,
tre scrivo il prodotto è ancora in fase di beta l’istruzione Controls.Add, il data-binding con
test ed è previsto che sia rilasciato entro Feb- qualsiasi sorgente DAO, RDO, e ADO, e mol-
braio 2008, ma abbiamo già creato un sito Web to altro ancora. Se interessati, sul sito potrete
[8] che contiene il manuale del prodotto, nu- trovare tutte le informazioni che vi servono.
merosi esempi e articoli di knowledge base, e
video dimostrativi. Una sezione del sito è de- Preparare il codice VB6
dicata alla migrazione in generale – con link alla migrazione
sui migliori libri e articoli sull’argomento – ed
ho anche aperto un blog (in inglese) tutto de- In questo articolo – e gli altri che seguiranno
dicato alla migrazione da VB6. – analizzeremo a fondo le differenze tra i due
linguaggi e come evitare che influiscano sulla
qualità del codice migrato in VB.NET. In due
anni di lavoro abbiamo raccolto una casisti-
Utilizzare Option Explicit ca di problemi che va molto al di là del soli-
to elenco che potrete trovare sui tanti siti de-
per accertarsi che tutte le dicati al Visual Basic, ad esempio [10]. Molte
delle informazioni che abbiamo raccolto non
variabili siano dichiarate sono mai state pubblicate altrove, da quanto
mi risulta. Illustreremo soprattutto le tecni-
esplicitamente che che abbiamo messo a punto per sempli-
ficare la migrazione da VB6. Molte di tali tec-
niche non dipendono dall’uso del nostro tool
e possono essere applicate utilizzando l’Up-
Abbiamo testato VB Migration Partner su grade Wizard.
centinaia di sample e applicazioni reali e ab-
biamo riscontrato in media un errore di com- Il primo passo da seguire – ben prima di usa-
pilazione pari ogni 1100 righe di codice, pari re un tool di conversione – consiste nel pre-
ad una percentuale di successo superiore al parare il codice VB6 alla migrazione per ade-
99.9%. Il codice generato è di qualità pari o guarsi alle migliori coding guidelines di .NET.
superiore a quello che produrrebbe un bravo Sia l’Upgrade Wizard che VB Migration Part-
programmatore .NET e provvede a segnalare ner sono in grado di convertire – con diver-
come potrebbe essere ulteriormente perfezio- si gradi di successo – anche il peggior codice
nato. Ad esempio, VB Migration Partner se- VB6, ma è ovviamente preferibile partire da
gnala i metodi non utilizzati (il cosiddetto dead una applicazione scritta per bene e in modo
code) e indica quando un parametro by-refe- ordinato. Il Riquadro 1 contiene alcune re-
rence implicito (ossia la cui keyword ByRef gole a cui attenersi, ma l’elenco non è certo
è omessa) non viene modificato nel codice e esaustivo: le regole in questione riguardano
potrebbe quindi essere più correttamente reso infatti solo le keyword del linguaggio e non
sono incluse le guideline che hanno a che fare argomenti separati da virgole o punto-e-vir-
con l’uso di form e controlli. gola, e se la lista termina con un punto e virgo-
La tecnica più efficace nel preparare il codi- la non viene emesso un carriage-return verso
ce VB6 alla migrazione è in realtà molto sem- la stampante. In questo esempio non ci adden-
plice: l’accesso alle funzioni e alle feature di treremo in queste complicazioni, ma il concet-
VB6 “problematiche” dal punto di vista del- to comunque dovrebbe essere chiaro.
la migrazione dovrebbe sempre avvenire per
mezzo di metodi wrapper. Ad esempio, tutte Eseguire il wrapping delle istruzioni VB6
le istruzioni grafiche e le istruzioni di stam- “native” con i metodi appena definiti signifi-
pa dovrebbero essere convertite in chiamate ca in pratica sostituire manualmente le istru-
in metodi definiti in uno speciale modulo del zioni originarie con delle chiamate al wrap-
programma VB6, simile a quanto segue: per corrispondente. Ad esempio, il seguente
codice VB6:
Sub DrawLine(obj As Object, x1 As Single, y1 As
Single, x2 As Single, y2 As Single, _ Form1.Line (10, 20) - (30, 40)
c As Long) Form1.Line (30, 40) – (50, 60), vbRed
obj.Line (x1, y1)-(x1, y2) dovrebbe essere riscritto come segue (nota-
End Sub re che dobbiamo passare il valore del colore
anche quando è pari alla proprietà ForeCo-
Sub Printer_Print(text As String) lor del form):
Printer.Print text
End Sub DrawLine Form1, 10, 20, 30, 40, Form1.ForeColor
Nella realtà questi metodi wrapper sono DrawLine Form1, 30, 40, 50, 60, vbRed
parecchio più complessi e accettano nume-
rosi parametri opzionali per tener conto del- Il vantaggio di utilizzare metodi wrapper è
la miriade
di opzioni
dei metodi Listato 1
Line e Print.
L’ i s t r u z i o -
ne Line di Imports System.Drawing
Imports Microsoft.VisualBasic.Compatibility.VB6
VB6 permet-
te di omet- ‘ NOTA: i metodi TwipsToPixelsX/Y richiedono un riferimento all’assembly
‘ Microsoft.VisualBasic.Compatibility
tere il pun-
to di parten- Module GraphicMethods
za, di ottene- Sub DrawLine(ByVal obj As Object, ByVal x1 As Single, ByVal y1 As Single, _
re un rettan- ByVal x2 As Single, ByVal y2 As Single, ByVal c As Integer)
golo vuoto ‘ get the graphic context
Using gr As Graphics = DirectCast(obj, Control).CreateGraphics()
(opzione B) ‘ create the pen corresponding to the 32-bit color value
o pieno (op- Using pen As New Pen(ColorTranslator.FromOle(c))
‘ we assume that coordinates were originally expressed in twips
zione BF), e gr.DrawLine(pen, CInt(TwipsToPixelsX(x1)), CInt(TwipsToPixelsY(y1)), _
così via. Ana- CInt(TwipsToPixelsX(x2)), CInt(TwipsToPixelsY(y2)))
End Using
logamente,
End Using
il metodo End Sub
Printer.Print
End Module
potrebbe
contenere
una lista di
Listato 2 continua...
Imports System.Reflection
Imports System.Runtime.InteropServices
Module DefaultMemberSupport
duplice: ora l’applicazione contiene una sola abbiamo un unico punto su cui intervenire
istruzione Line, quindi dopo la migrazione a per “simulare” la feature che non è suppor-
VB.NET il numero di errori di compilazione tata nativamente da .NET. Il Listato 1 mostra
è inferiore. Anzi, commentando temporanea- come possiamo riscrivere in VB.NET il me-
mente l’istruzione Line che appare nel meto- todo DrawLine per mostrare una linea anche
do DrawLine si ottiene codice VB.NET com- in VB.NET. Sulla falsariga di questo codice
pilabile. Ovviamente il programma non mo- è semplice supportare anche le varianti del
strerà alcun output grafico, ma avremo una metodo Line per disegnare rettangoli pieni
prima versione funzionante con cui comin- e vuoti, oppure linee con spessore maggiore
ciare a lavorare. di un pixel. Occorre un po’ di familiarità con
Il secondo vantaggio dei metodi wrapper è GDI+, ma è un compito alla portata di molti
molto più interessante: dopo la conversione sviluppatori .NET.
Listato 2 ...fine
End Module
• Utilizzare Option Explicit per accertarsi che tutte le variabili siano dichiarate esplicitamente.
• Evitare le variabili Variant se possibile – una variabile Variant in VB6 è spesso il risultato di una
programmazione sciatta e spesso la variabile Variant può essere sostituita con un tipo definito. In pratica una
variabile Variant serve solo se non è conosciuto a priori il tipo di dato che sarà contenuto nella variabile stessa.
• Evitare le variabili Object e Control se possibile – evitando l’uso del late-binding le applicazioni VB6 (e
VB.NET) eseguiranno più velocemente.
• Trasformare le istruzioni GoSub in chiamate a metodi separati – se il programma fa uso massiccio di GoSub,
questo è uno dei task più lunghi. VB Migration Partner riesce a convertire anche le istruzioni GoSub, ma è
comunque preferibile eliminare tali istruzioni prima della migrazione.
• Ridefinire gli array in modo che il loro indice inferiore sia pari a zero – VB Migration Partner riesce a gestire
array con LBound qualsiasi ma è sicuramente preferibile eliminarli prima della migrazione.
• Eliminare le istruzioni Goto e Gosub calcolate – molto meglio una istruzione Select Case per eseguire una
determinata azione in base al valore di una variabile.
• Eliminare o ridurre il numero di stringhe a lunghezza fissa – Upgrade Wizard supporta la conversione di tali
elementi ma non in tutti i casi, e comunque le prestazioni non sono ottimali. In particolare, è sempre possibile
sostituire le stringhe a lunghezza fissa utilizzate per creare dei buffer da passare a metodi delle API di
Windows (ad es. GetWindowsDirectory).
• Creare degli alias per le istruzioni Declare che contengono parametri As Any – gli esempi più comuni di tali
Declare sono RtlMoveMemory (spesso rinominata CopyMemory) e SendMessage.
• Evitare le funzioni stringa con un suffisso “B” (es. LenB o LeftB) – più in generale, occorre porre attenzione al
codice VB6 che utilizza le stringhe come contenitore di byte e che converte implicitamente da stringa a Byte
array.
• Evitare di assegnare un valore al parametro Value di un blocco Property Let o Property Set, oppure ad uno
degli elementi di un array corrispondente ad un parametro di tipo ParamArray – in VB.NET questi elementi
sono sempre passati by-value, quindi le modifiche non sarebbero restituite al chiamante, come avviene invece
in VB6.
• Evitare le istruzioni VarPtr, StrPtr, e ObjPtr e altre funzioni non documentate – in certi casi queste istruzioni
sono usate solo per ottimizzare del codice VB6 time-critical, che potrebbe essere riscritto anche senza
utilizzare tali funzioni.
È evidente che il tool di conversione riesce a questa serie di articoli dedicati ad un “nuo-
determinare la proprietà di default del secon- vo approccio” alla migrazione da Visual Ba-
do parametro perché quest’ultimo è ben de- sic 6. Appuntamento al prossimo numero di
finito – un controllo TextBox – ma non quel- Visual Basic & .NET Journal.
la del primo parametro (che è un Object), e
questa incapacità causa il warning. Riferimenti
Le guideline suggeriscono di evitare di uti- [1] “The hidden costs of .NET”, Joe Wilcox,
lizzare variabili Variant, Object e Control, ma CNET News
in molti casi è davvero difficile farne a meno, http://news.zdnet.co.uk/itmanagement/0,
come in questo codice: 1000000308,2112313,00.htm
[2] “Visual Basic .NET migration costs
Sub ClearControls(ByVal frm As Form) more than expected, Gartner says”,
On Error Resume Next George Lawton
Dim c As Object http://searchwindevelopment.techtarg
For Each c In frm.Controls et.com/originalContent/0,289142,sid8_
c = “” gci1168001,00.html
Next [3] “Product Family Life-Cycle Guidelines
End Sub for Visual Basic 6.0”, Microsoft
http://msdn2.microsoft.com/en-us/vbrun/
È possibile risolvere questo problema senza ms788707.aspx
rivoluzionare il codice VB6 esistente definen- [4] “Support statement for Visual Basic 6.0
do due metodi ausiliari chiamati GetDefault- on Windows Vista”, Microsoft
Member e SetDefaultMember (vedi Listato http://msdn2.microsoft.com/en-us/vbrun/
2). Questi metodi utilizzano reflection e qual- ms788708.aspx
che euristica per determinare la proprietà o il [5] Free Book – Upgrading Microsoft Visual
campo di default di un controllo o una classe, Basic 6 to Microsoft Visual Basic .NET
e funziona anche con numerosi oggetti COM http://msdn2.microsoft.com/en-us/vbrun/
come le connessioni e i recordset. Quindi per ms788236.aspx
risolvere il problema evidenziato dal prece- [6] Artinsoft web site:
dente esempio è sufficiente modificare il co- http://www.artinsoft.com/
dice generato dal traduttore: [7] Upgrading Microsoft Visual Basic 6.0 Ap-
plications to Visual Basic .NET and Vi-
Sub ClearControls(ByVal frm As Form) sual Basic 2005
On Error Resume Next http://msdn2.microsoft.com/en-us/library/
Dim c As Object aa480541.aspx
For Each c In frm.Controls [8] “Visual Basic 6 – Aggiornare le applica-
SetDefaultMember(c, “”) zioni”, Mondadori
Next http://education.mondadori.it/libri/Sched
End Sub aLibro.asp?IdLibro=88-04-54250-0
[9] Il sito di VB Migration Partner, Code Ar-
Si noti che VB Migration Partner dispone chitects
di una libreria in cui è già definito il metodo http://www.vbmigration.com
SetDefaultMember ed è in grado di generare [10] VB.NET compatibility rules, Aivosto
direttamente questo tipo di codice. h t t p : / / w w w. a i v o s t o . c o m /
project/ help/ en terprise-netcheck-
Con questo si chiude la prima puntata di rules.html
il modulo e l’output del programma COBOL, sato si utilizzavano linguaggi poco espressi-
inviando il tutto alla coda di stampa. A parte vi, una buona analisi ed un’accurata proget-
le notevoli difficoltà legate alla modifica del- tazione erano essenziali per arrivare in fon-
le stampe, il tutto richiedeva comunque una do al lavoro. Procedure anche banali poteva-
stampante PCL. Recentemente, abbiamo svi- no produrre migliaia o decine di migliaia di
luppato una soluzione software, tutto somma- righe di codice. Oggi abbiamo a disposizione
to molto semplice, che risolve tutti i problemi strumenti molto potenti e linguaggi altamen-
illustrati, consentendo di toccare il meno pos- te espressivi. Chi ha programmato in qual-
sibile i sorgenti COBOL, di utilizzare qualsia- siasi linguaggio procedurale, senza fare uso
si stampante a disposizione e di modificare fa- particolare di librerie per la gestione dati, ed
cilmente i report. ha provato a gestire un archivio, ha un’idea
della differenza che passa tra un’istruzione
L’importanza dell’analisi e della pro- SQL e decine o centinaia di istruzioni di un
gettazione, ieri ed oggi linguaggio come il C, per eseguire lo stesso
compito. Tuttavia oggigiorno l’analisi e la pro-
L’analisi e la progettazione del software sono gettazione sono importanti per scegliere la
sempre stati fondamentali. Ma, nel passato ed soluzione più efficace. Adottare un linguag-
oggi, lo sono per motivi diversi. Quando in pas- gio, uno strumento o un protocollo al posto di
un altro, può portare ad aumentare enorme- Nel nostro caso, abbiamo realizzato una se-
mente i tempi di sviluppo o di debug. Quin- zione in cui memorizziamo le informazioni re-
di, a differenza di una volta, è più facile co- lative al report da stampare, alla stampante da
munque arrivare a completare il lavoro, ma utilizzare e al numero di copie; una sezione
perché sprecare tempo, fatica e soldi? Vedia- relativa ai dati del documento ed una relativa
mo quali sono state le scelte vincenti per la alle righe. Vedremo tra poco i dettagli.
nostra soluzione.
Scelta dell’applicazione
XML come collante per realizzare lo spooler
Nel nostro caso non aveva senso pensare di Il sistema è stato realizzato in Microsoft Ac-
leggere direttamente i file dati COBOL, cosa cess XP. La scelta è stata dettata dalla facilità
per altro fattibile per alcuni dialetti con ap- con cui, in Microsoft Access si possono gesti-
positi driver. Infatti, i programmi che stam- re i report. Il VBA consente di gestire agevol-
mente l’importa-
zione dei file XML
e qualsiasi elabo-
razione eventual-
mente richiesta
sui dati. Qualsia-
si strumento di
alto livello con un
generatore di re-
port, come Visual
Studio, sarebbe
comunque stato
adatto.
Realizzazione
del programma
COBOL
L’XML è un formato molto rigido. Nella parte La struttura dello spooler è semplice. Un
che contiene dati sono vietati molti caratteri, timer provvede, ad intervalli regolari, a fare
tra cui, ad esempio, l’apostrofo. Ovviamente, una scansione di una cartella specificata in
la nostra terza stampa di prova conteneva un un parametro. Se vengono trovati nuovi file
apostrofo nel nome della ditta... Le soluzioni vengono importati in una lista. La lista viene
sono essenzialmente due. La prima consiste ordinata e poi i file vengono aggiunti ad una
nell’alterare il programma COBOL aggiungen- listbox. L’interfaccia dell’applicazione è visi-
dovi una routine che converte i caratteri spe- bile in Figura 2.
ciali con la corrispondente stringa valida. Ad
esempio, l’apostrofo diventa '. Le speci-
fiche di XML prevedono esplicitamente anche Presso alcuni clienti,
la possibilità di utilizzare la codifica Unicode
per rappresentare i caratteri non latini, come è nata l’esigenza di
ad esempio i caratteri greci, cirillici, gli ideo- aggiornare il sistema di
grammi cinesi e giapponesi. Il problema prin-
cipale di queste soluzioni è che, ad un carat- stampa senza però dover
tere, corrisponde una stringa di più caratteri convertire l’intero
e quindi, avendo il COBOL dei campi a spa-
ziatura fissa, va gestito l’eventuale overflow
software sviluppato
che si potrebbe avere nella conversione.
Una soluzione molto più efficiente, per cui L’ordinamento si è reso necessario quando
ringraziamo la dottoressa Renata Bandelloni, vi sono stampe consecutive, come nel caso
è affidarsi ad una caratteristica dell’XML [1] della fatturazione riepilogativa. È necessario
che consente di specificare qualsiasi carattere preservare l’ordine di uscita dei file da CO-
all’interno di un blocco ben delimitato. BOL. Per fare questo, il nome dei file COBOL
contiene la data e l’ora in formato yyyymmg-
Nel codice seguente ghhssxx più un numero progressivo che con-
sente di non sovrascrivere file stampati nello
<codice> stesso secondo.
<![CDATA[ La scelta del timer è dettata da ragioni di
<libro> semplicità. Si potrebbe pensare di utilizzare
<capitolo>Questo capitolo contiene € e ‘ le API con delle funzioni di callback per ave-
</capitolo> re notifica dal sistema operativo della presen-
</libro> za di nuovi file, ma il beneficio ottenuto sa-
]]> rebbe veramente minimo, a fronte di una no-
</codice> tevole complicazione del codice e di un più
difficile debug.
tutto quello che è incluso nel tag ![CDATA[
viene ignorato, dal punto di vista del controllo Il comando Application.ImportXML importa
sintattico. Ovviamente, in COBOL, la via più un file XML. La cosa interessante è che esso
veloce per risolvere tutti i problemi di carat- crea una tabella per ogni entità di primo li-
teri particolari è proprio questa. Si scrive nel vello. Quindi, scegliendo con criterio il nome
file il tag di apertura, si lascia invariato il co- degli oggetti di primo livello, ci risparmiamo
dice che scrive dati e si chiude il tag. un po’ di lavoro. Ogni nostro oggetto inizia
con il prefisso “XML”. La scelta è dovuta al
fatto di poter cancellare le tabelle importate fasi: la parte relativa al COBOL e la parte re-
senza averne un elenco preventivo. lativa ad Access. Nel nostro caso le procedu-
La routine seguente re COBOL giravano su un server UNIX, che
è il caso più complesso. Dopo aver messo su
For Each tbl In CurrentData.AllTables i programmi modificati, si deve fare in modo
If Left(tbl.Name, 3) = “XML” Then CurrentPro- che i file generati siano visti da Windows. O
ject.Connection.Execute “DROP TABLE “ & tbl.Name si condivide una cartella sul server, dopo aver
Next installato un programma tipo Samba per ren-
derla visibile da Windows, o si crea una pro-
provvede all’eliminazione delle tabelle impor- cedura che copia i file su una cartella con-
tate. Visto che il programma deve essere il più divisa di un PC Windows, che è la strada da
robusto possibile, se un’importazione fallisce noi seguita.
a metà o se il file contiene informazioni erra- Sul PC Windows si installa il programma
te, ci garantiamo, entro certi limiti, di ripu- scritto in Access, con l’eventuale runtime se
lire sempre bene il nostro database prima di necessario. Per chi ancora non lo sapesse, il
una nuova importazione. runtime di Access 2007 è diventato gratuito
[2]. Poi, dal programma stesso, si impostano
La prima tabella creata, XMLImpostazio- le stampanti e la cartella da cui leggere i file.
niStampa, contiene le informazioni sulla Infine si spera bene... J
stampante da utilizzare, il numero di copie Il risultato finale che deriva dal file di pro-
da stampare e il report da utilizzare. Il nome va è quello visibile in Figura 4.
della stampante è associato tramite la tabella
tblStampanti alla reale stampante Windows Conclusioni
da utilizzare. A questo punto, è sufficiente ac-
cordarsi su un nome di comodo per indica- Oggi più che mai è necessario, di fronte ad
re una certa stampante e selezionarla poi ef- un problema, staccare le mani dal PC e fer-
fettivamente da Windows, come illustrato in marsi a riflettere su quali strade sono percor-
Figura 3. Nel caso in cui la stampante venga ribili. Sono utilissimi anche confronti con col-
cambiata, il programma COBOL non viene leghi che hanno specializzazioni diverse dalle
toccato. Il nome del report consente al pro- nostre, proprio perché potrebbero suggerire
grammatore COBOL di selezionare il report approcci alla soluzione del problema radical-
che verrà utilizzato per la stampa. Quindi, per mente diversi dai nostri. Sempre più problemi
aggiungere la stampa di una DDT, si crea un possono essere risolti senza scrivere righe di
nuovo report in Access ed il programmatore codice o scrivendone pochissime. Ma bisogna
COBOL dovrà soltanto richiamarlo. aver imboccato la strada giusta all’inizio…
a cura di Symantec
Figura 1
42 N. 78 - Novembre/Dicembre 2007
SICUREZZA
Un nuovo anno
non così “felice”
Figura 4
44 N. 78 - Novembre/Dicembre 2007
Prodotti & News
E-mail Mobile rare queste sfide. RIM per esempio, phishing alle istituzioni finanziarie.
impressionante giro d’affari offre un servizio end-to-end (uno dei L’Italia questo mese si posiziona al
principi centrali del protocollo IP, che terzo posto con un 6% del totale.
L’e-mail wireless è uno dei più grandi fornisce le basi per Internet. Secondo Infatti, nel mese di novembre, sono
segmenti del mercato delle applica- il principio dell’end-to-end, le opera- state registrate 9 istituzioni finanziare
zioni per la telefonia mobile. La sua zioni relative ai protocolli di comu- sottoposte ad attacco, per un totale di
base installata continua a crescere dal nicazione devono avvenire nei punti 508 attacchi.
momento che nuovi clienti scelgono finali di un sistema di comunicazione). È decisamente aumentata rispetto a
questa soluzione e con questa scelta Dall’altro lato, Microsoft sta cercando settembre e ottobre la percentuale
riescono ad ampliare il loro raggio di rendere il proprio protocollo (Acti- di attacchi ospitati negli Stati Uniti.
operativo. Con il tempo questa ap- veSync) il più largamente usato. Dall’altra sono diminuiti gli attacchi
plicazione è diventata una necessità, ospitati in Cina e Hong Kong in corre-
e c’è una spinta crescente del mer- Red Hat collabora col lazione con la diminuzione di attacchi
Rock Phish che si sono avuti in questi
cato da parte degli utenti finali per Ministero dell’Economia
formulare strategie mobili centrate due paesi.
sull’e-mail senza fili. Rispetto al mese di ottobre, a novem-
Anche il Ministero dell’Economia e
Una nuova analisi di Frost & Sullivan bre il numero di istituzioni oggetto di
delle Finanze ha scelto le soluzioni
(http//:www.enterprisecommunicat attacco è leggermente aumentato e,
software di Red Hat, Inc. (Nasdaq:
ions.frost.com) sui mercati europei in generale, continua il trend cui si è
RHAT), leader mondiale nella forni-
dell’e-mail mobile rivela che questo assistito ultimamente ovvero pochi at-
tura di soluzioni open source. Lo ha
mercato ha avuto entrate pari a 1.86 tacchi indirizzati a organizzazioni mai
fatto per alcune delle applicazioni
miliardi di Euro nel 2007 e si pensa attaccate prima.
mission critical quali il “Service Perso-
che queste raggiungeranno i 6.65 Il Rapporto è realizzato dall’RSA Anti-
nale Tesoro” (SPT) la cui accessibilità
miliardi di Euro nel 2012. Fraud Command Center (AFCC), una
via web è garantita da una web farm
Gran parte degli operatori della tele- struttura attiva 24 ore su 24, 7 giorni
basata sulla stabilità e sulle alte pre-
fonia mobile europea hanno creato su 7 per individuare, monitorare e
stazioni di Red Hat Enterprise Linux.
un portfolio e-mail mobile che com- rendere inoffensivi attacchi phishing,
“L’accessibilità tramite web ad appli-
prende soluzioni di terze parti come pharming e Trojan tentati ai danni di
cazioni quali SPT (uno dei siti web
BlackBerry, Good e Microsoft, come oltre 200 istituzioni di tutto il mondo.
forse fra i più acceduti della P.A.) ha
pure propri servizi di push e-mail AFCC ha sventato a oggi oltre 60.000
un ruolo realmente mission-critical
(messaggi di posta elettronica inviati attacchi di phishing ed è una fonte di
per il Ministero dell’Economia e delle
e ricevuti in costante e automatica informazioni preziosa su questo feno-
Finanze in quanto consente di asservi-
sincronizzazione) basati su prodotti meno e sulle altre emergenti minacce
re ad un bacino di svariate migliaia di
di ditte come Visto, Seven e Nokia/ alla sicurezza.
utenti in costante aumento.
Intellisync. I partner RIM (Research in Le 10 principali minacce del 2008
Non è solo applicazioni, ma un
Motion) offrono la modalità servizi secondo Websense
mezzo che consente ai cittadini di
internet BlackBerry, che permette agli Come ogni fine d’anno, Websense - la
ricevere servizi importanti con tutta
abbonati di collegare il loro account società specializzata in soluzioni per la
la comodità che Internet permette di
personale (per esempio su Gmail o protezione dalle minacce alla sicurez-
ottenere”, spiega Marcello Niceforo,
MSM) a un servizio push e-mail Black- za - rilascia le previsioni sulla prevista
Dirigente del Ministero dell’Economia
Berry, gestito dai suoi operatori. Que- evoluzione del crimine informatico
e delle Finanze - Servizio Centrale
ste offerte sono destinate a consuma- nel nuovo anno.
Sistema Informativo Integrato – Area
tori, piccole imprese e a una categoria Secondo gli esperti dei Websense
Supporto Sistemistico e Gestionale.
che si pone tra consumatori e coloro Security Labs™ (www.websensesecu
“Per questo per noi è fondamentale
che usano il servizio come imprendi- ritylabs.com), le Olimpiadi di Pechi-
avere un partner affidabile, in grado
tori professionisti (“prosumers”). no rappresenteranno il momento di
di garantirci una soluzione di altissimo
Tuttavia, una limitata interoperabilità massimo attivismo degli hacker, che
livello, che abbini massima sicurezza a
in una frammentata catena di valore si dedicheranno a compromettere i
prestazioni avanzate. Caratteristiche
(value-chain) sta influenzando lo svi- più popolari siti legati ai Giochi. Nuovi
che abbiamo ritrovato in Red Hat.”
luppo nel mercato di questo settore. obiettivi dei cyber criminali saranno
Inoltre, si è verificato un crescente inoltre Mac e iPhone, grazie all’au-
RSA pubblica il rapporto di mento della loro popolarità presso
caso di standardizzazione poiché la
tecnologia si è evoluta ed è andata novembre sulle frodi online gli utenti. Il Web 2.0 favorirà attacchi
oltre la fase iniziale di adozione. mirati a gruppi di navigatori selezio-
Gli sforzi fatti dai vari sostenitori RSA, The Security Division of EMC, ha nati in base a età, potere d’acquisto
(P-IMAP) a questo riguardo devono pubblicato il Rapporto di novembre e abitudini di spesa. Tecniche di web
ancora produrre risultati positivi. sullo stato delle frodi online nel mon- spam e di altro tipo saranno usate in
Singoli partecipanti del mercato do. Da quanto emerge nel rapporto, modo crescente per convogliare traf-
hanno adottato vari mezzi per supe- gli Stati Uniti continuano a essere fico verso siti web infetti..
il paese più colpito da attacchi di I Websense Security Labs possono fare
queste affermazioni in quanto la tec- blicità linkata alle pagine web hanno tenzialmente in grado di garantire il
nologia proprietaria da loro utilizzata accresciuto la probabilità di “link maggior ritorno economico.
– la stessa impiegata nei prodotti per deboli”, ovvero siti web/contenuti 7. JavaScript polimorfi per eludere gli
la sicurezza proposti da Websense vulnerabili alla compromissione. Web- antivirus scanner
– effettua la scansione di oltre 600 sense prevede che i cyber criminali Gli hacker sono molto furbi e tra le
milioni di siti web alla settimana alla sfrutteranno sempre più i link deboli loro tecniche anti-intercettazione
ricerca di codice maligno, mentre gli dell’infrastruttura web con l’obiettivo emergono i cosiddetti JavaScript poli-
On Demand Services effettuano lo di indirizzare il maggior numero possi- morfi (Polyscript), che permettono di
stesso tipo di scansione su oltre 350 bile di utenti Internet. I più vulnerabili fornire a ogni diverso visitatore di un
milioni di email la settimana. I Web- a tali attacchi sono i motori di ricerca sito maligno una pagina web con un
sense Security Labs pubblicano una e grosse social network quali MySpace codice diverso. Se il codice si modifica
media di 80 alert di sicurezza al gior- o Facebook. di continuo, le tecnologie di scansio-
no per proteggere gli oltre 42 milioni 4. Il numero di siti compromessi ne basate sulla firma hanno difficoltà
di dipendenti delle aziende clienti di supererà quello dei siti maligni creati a identificare le pagine come maligne
Websense da minacce alla sicurezza ex novo e gli hacker possono così estendere la
interne ed esterne alle organizzazioni. Negli ultimi cinque anni, il Web è stato vita utile dei siti contaminati, prima
Le 10 principali minacce del 2008 usato in maniera crescente come vet- che essi vengano individuati.
secondo Websense: tore di attacchi e oggi i cyber criminali 8. Tecniche di occultamento dei dati
1. Giochi Olimpici nel mirino di frodi e sembrano preferire i siti compromessi sempre più sofisticate
attacchi di phishing come “piattaforma di lancio” delle Websense prevede un uso crescente
I grandi eventi da sempre attirano i cy- loro azioni maligne rispetto alla della cripto-virologia e un affinamen-
ber criminali e le Olimpiadi del 2008, creazione ex novo di siti con lo stesso to nell’occultamento dei dati sottratti
con gli occhi di tutto il mondo puntati scopo. Siti compromessi, in particola- attraverso l’impiego di stenografia,
su Pechino, non faranno eccezione. re se ad alto tasso di visitatori – vedi inclusione dei dati all’interno di pro-
All’accendersi della torcia olimpica il caso dell’attacco al sito del Miami tocolli standard e media file. I toolkit
– prevedono gli esperti di Websense Dolphin Stadium occorso pochi giorni largamente disponibili sul web saran-
- i maggiori rischi consisteranno nella prima del Super Bowl 2007 – offrono no usati per nascondere informazioni
possibilità di attacchi di tipo denial of il vantaggio di traffico di visitatori proprietarie e dati rubati.
service (DoS) su vasta scala mirati a bello e pronto da intercettare, senza 9. Le forze dell’ordine vigilano…e
colpire (rendendoli inaccessibili) i siti nemmeno il fastidio di dover utilizzare qualche gruppo di hacker ha le ore
correlati ai Giochi, nonché vari tenta- email, instant messaging o Web post contate!
tivi di frodi perpetrati via email o web. ingannatori. Nel 2007, molti attacchi Internet su
Websense prevede inoltre tentativi 5. Attacchi web cross-platform: la larga scala non sono sfuggiti alle in-
di compromissione dei più popolari crescente popolarità di Mac e iPhone dagini delle forze dell’ordine di tutto
siti di news sui Giochi o di sport in attira il cyber crimine il mondo. Websense prevede che nel
generale, mediante attacchi mirati a Con il crescente successo di Macintosh 2008 la cooperazione globale porterà
installare codice maligno sui PC di e iPhone, aumenteranno anche i co- a un’imponente azione di repressione
chi li visita con lo scopo di rubare siddetti attacchi web cross-platform, con arresti di membri chiave di alme-
informazioni personali o comunque che individuano il sistema operativo no un gruppo di hacker.
confidenziali. utilizzato dal PC o dispositivo della vit- 10. Vishing e voice spam uniti e in
2. SPAM maligno invaderà blog, mo- tima, attivando di conseguenza codice crescita
tori di ricerca, forum e siti web dedicato specificatamente a quella La popolazione degli utenti di telefoni
Websense prevede che gli hacker piattaforma. Insieme a Windows, Mac cellulari è ormai talmente vasta da es-
useranno sempre di più il web spam OSX e iPhone saranno le nuove prede sere più che appetibile da prendere di
per pubblicare URL di siti maligni al- dei cyber criminali. mira con spamming e “vishing” mirati
l’interno di forum, blog, nelle sezioni 6. Il Web 2.0 favorisce attacchi mirati a realizzare facili guadagni. A oggi, i ri-
“talk-back” dei siti e in siti compro- a gruppi di persone selezionati in base cercatori di Websense hanno osserva-
messi. Questo stratagemma non solo a interessi e profili to un numero crescente di attacchi di
indirizza direttamente traffico verso i Il Web 2.0 ha generato una prolifera- tipo vishing, ma meno di voice spam.
siti infetti, ma fa anche sì che tali siti zione di utenti del web che visitano Per il 2008 Websense prevede che il
scalino posizioni nei risultati sui moto- chat room, siti di social networking e “vishing” – o la pratica di usare social
ri di ricerca, accrescendo così il rischio siti di interesse specifico quali portali engineering e Voice over IP (VoIP)
che gli utenti li visitino. di viaggi, automobili, ecc. Tali siti for- per ottenere informazioni personali e
3. I link deboli delle social network niscono agli hacker vittime potenziali finanziarie – e il voice spam verranno
usati per sferrare nuovi attacchi “segmentate” per età, potere d’acqui- usati congiuntamente e sempre più
Il web è un coacervo non solo di sto, abitudini di spesa. I ricercatori di spesso: gli utenti riceveranno chia-
contenuti ma di link. L’avvento di “og- Websense prevedono che nel 2008 mate vocali automatiche su linee LAN
getti” Web 2.0 quali Google Adsense, tali attacchi mirati si concentreranno con un voice spam che li spingerà
mash-up, widget e social network, in- su specifici siti di social networking a inserire le proprie credenziali via
sieme alla massiccia quantità di pub- o tematici, i cui visitatori sono po- telefono.
LINQ in pillole:
sintassi delle query
Nel precedente articolo abbiamo visto cosa sia foreach ( string name in query ) {
LINQ e abbiamo introdotto i concetti alla base del Console.WriteLine( name );
suo funzionamento. }
In questo articolo concentreremo la nostra atten-
zione sulla sintassi di base delle query LINQ e sul- Il compilatore C# 3.0 genere-
le novità di C# 3.0 necessarie alla definizione di rà del codice equivalente al se-
una query LINQ. guente:
Tabella 1
.Select( c => new { c.Name, c.City } ) [1] Paolo Pialorsi & Marco Russo – “Introdu-
cing Microsoft LINQ”, Microsoft Press,
costruisce un oggetto di un tipo autogene- 2007
rato che verrà poi utilizzato per rappresenta-
re ogni cliente che corrisponde al criterio di Riferimenti
filtro. Il tipo autogenerato non ha un nome
a noi noto, anche se è possibile interrogarlo [2] http://introducinglinq.com
via Reflection o scoprirlo con strumenti come
Reportage
TechEd 2007
Barcellona, Novembre 2007: come ogni anno si svolge la più grande manife-
stazione Microsoft a livello EMEA per gli sviluppatori, il TechEd Developer.
bile verificare per una singola linea di codi- bili, se compatibili, con i vecchi progetti, per-
ce il Work Item che ha portato alla sua intro- mettendo ad esempio di utilizzare la visione
duzione e in che revisione e quale sviluppa- contemporanea di codice e anteprima per le
tore l’ha scritta. pagine web. In questo modo si può iniziare a
Sempre nel Visual Studio 2008 è stata miglio- familiarizzare con la nuova IDE, senza dove-
rata l’integrazione con Office, introducendo re obbligatoriamente passare alla nuova ver-
i Visual Studio Tools for Office direttamente sione di framework, garantendo una transi-
come prodotto base e non più come tool sepa- zione più tranquilla e graduale.
rato da istallare in un secondo momento.
D: Si può considerare vicino un futuro dove
D: Se dovesse convincere uno sviluppato- persone che non conoscono nulla di program-
re a passare dalla versione attuale di Visual mazione potranno creare applicativi sempli-
Studio alla nuova versione, quali argomen- cemente componendo blocchi preesistenti in
tazioni utilizzerebbe? maniera visuale?
R: Sicuramente il MultiTargeting è la mi- R: Probabilmente si, ad esempio con il pro-
gliore argomentazione, la nuova versione di getto Popfly è possibile comporre in manie-
Visual Studio permette infatti di lavorare con ra completamente visuale piccoli widget Sil-
progetti che come target non hanno solamen- verlight da includere nei propri siti; con il
te il framework 3.5, ma anche il 3.0 ed il 2.0. passare del tempo e con l’evolversi dei tool
In questo modo si evita la necessità di avere questo modo di creare applicazioni divente-
più versioni di VS sulla stessa macchina, dato rà sempre più popolare. Uno degli obiettivi è
che si può aprire e lavorare senza problemi aumentare il più possibile il numero di per-
anche con i progetti del VS2005. Le nuove ca- sone in grado di creare nuovi applicativi, la-
ratteristiche dell’IDE sono comunque disponi- sciando ai programmatori più esperti il com-
pito di realizzare blocchi base che potranno R: Questi strumenti possiedono fondamen-
essere poi utilizzati anche da chi è a digiuno talmente le stesse caratteristiche, la differenza
di informatica. più marcata è che gli Expression Tools sono
principalmente rivolti a grafici e creativi, men-
D: Quale è il target di sviluppatori a cui è tre l’editor di Visual Studio è pensato per uno
destinata la versione Professional di Visual sviluppatore. Con entrambi i tool si può acce-
Studio e a chi è invece dedicata la Team dere a tutte le features di WPF, ma natural-
System? mente esistono alcune funzionalità peculiari
R: La versione professional è dedicata agli di un particolare prodotto. Uno degli esempi
sviluppatori individuali; qualsiasi team di svi- più classici è il tool di disegno a mano libe-
luppo, anche piccolo, dovrebbe utilizzare la ra, che non è stato introdotto in Visual Studio
Team System, che fornisce una serie di tool perché è una funzionalità futile per lo svilup-
addizionali per gestire in maniera efficace lo patore, ma indispensabile per un grafico.
sviluppo e la manutenzione degli applicati- L’obiettivo principale degli Expression Tools
vi, tutto naturalmente supervisionato grazie è dare la possibilità ai creativi di lavorare a
al Team Foundation Server. fianco dei programmatori nella maniera più
trasparente possibile. Con questi nuovi stru-
D: Con gli Expression Tools Microsoft ha menti è possibile infatti aprire una solution
introdotto una serie di strumenti per lavora- di Visual Studio e lavorare sugli stessi pro-
re con WPF, ma anche il Visual Studio 2008 getti utilizzati dagli sviluppatori.
contiene un editor per WPF chiamato Cider.
Questi due strumenti hanno le stesse capa-
cità, oppure uno sviluppatore che possiede D: Microsoft ha rilasciato il codice sorgen-
Visual Studio deve comunque utilizzare ad te del Visual Studio ai suoi partner; è pos-
esempio Expression Blend per operare al sibile che in futuro questi sorgenti possano
meglio con WPF? essere disponibili per tutti?
R: Attualmente non c’è nessun piano in pro- fly, che contiene un tool web con cui si posso-
posito, valutando i feedback che riceveremo no creare piccoli widget Silverlight mediante
dai partner non è escluso che in futuro si de- composizione di blocchi base precostituiti. Per
cida di rendere il codice di Visual Studio di- capire meglio cosa ci si può attendere in fu-
sponibile anche ad un pubblico più ampio. turo è stato intervistato Dan Fernandez, che
si occupa in prima persona di PopFly.
D: Pensa che il rilascio del codice sorgen-
te ai partner possa migliorare anche il Vi- D: Da cosa è nata l’idea di PopFly?
sual Studio e non solo i tool prodotti dai R: Occupandomi in prima persona di Visual
partner stessi? Studio Express mi sono reso conto che è un
R: Penso di si, anche perché stiamo riceven- prodotto con una barriera di ingresso elevata.
do feedback in molti settori differenti. Sicu- Nonostante sia uno strumento gratuito, per
ramente questa sinergia è una collaborazio- utilizzarlo è necessario possedere i rudimenti
ne bidirezionale che a lungo tempo porterà della programmazione dato che si rivolge ad
benefici per entrambe le parti. Lo scopo di un pubblico prevalentemente di sviluppatori.
questa operazione è far si che i partner pos- Questa situazione rende veramente difficile
sano sviluppare tool sempre più performanti aggiungere contenuti Silverlight nei propri
e funzionali da fornire agli sviluppatori. Ave- siti per chi non ha alcuna conoscenza di svi-
re a disposizione il codice interno della IDE luppo software. Tramite Popfly invece chiun-
permette infatti di capire come strutturare al que può aprire un progetto, fare drag and drop
meglio i propri addin, ed inoltre permette di di blocchi base, connetterli tra loro, configu-
avere una assistenza molto più rapida dai no- rarli ed avere cosi la propria applicazione rea-
stri team interni. lizzata in pochi minuti e direttamente dispo-
nibile per essere inclusa nel proprio sito. In
Silverligh e Popfly questo modo la barriera di ingresso è sicura-
mente più bassa e permette ad un pubblico
Silverlight è una delle tecnologie web più in- molto ampio di realizzare contenuti avanzati
teressanti prodotte da Microsoft negli ultimi per le proprie pagine. Dal mio punto di vista
anni. Essenzialmente è costituita da un plugin è una maniera per rendere più democratico
che consente di renderizzare contenuti WPF lo sviluppo web.
lato client sui principali browser oggi in com-
mercio. Con Silverlight il tentativo è aggredi- D: È possibile inserire un widget creato
re la fetta di mercato ora occupata dal Macro- con Popfly nelle proprie pagine web? È ne-
media Flash, dando la possibilità di include- cessario un supporto particolare da parte
re nei propri siti contenuti grafici e multime- dell’hosting?
diali avanzati. Naturalmente per poter utiliz- R: I widget Popfly possono essere introdotti
zare Silverligh è necessario possedere per lo tramite IFrame, un tag standard HTML, per
meno i rudimenti di XAML o in alternativa i cui è facilissimo introdurne uno nel proprio
tool forniti nella suite Expression. Se si vuole sito o nel proprio blog. Questo requisito è sta-
poi fare programmazione lato client per que- to infatti primario perché altrimenti non ci sa-
sta prima versione si deve usare Javascript e rebbe interesse nel creare widget disponibili
nelle future versioni sarà presente un runti- solamente all’interno del sito di Popfly. Per
me .NET che permetterà di usare C#. Tutto semplificare questa procedura è anche sta-
questo fa capire come Silverligh sia un pro- to creato un apposito addin per Visual Stu-
dotto dedicato a chi ha una buona conoscenza dio, chiamato Popfly Explorer, che permette
del Web. Per diffondere maggiormente questa di esaminare la lista dei propri widget diret-
tecnologia Microsoft ha quindi introdotto da tamente dall’IDE ed includerli in una pagina
poco un sito molto particolare, chiamato Pop- web con semplice Drag and Drop.
non può essere semplicemente “aggiunta” ad mette ad esempio il download del web.config
un prodotto esistente o inserita nelle fasi fi- in cui sono memorizzate in chiaro le creden-
nali dello sviluppo, ma è assolutamente ne- ziali con cui accedere al database.
cessario che sia tenuta in considerazione fin Dati alla mano comunque Howard ha mo-
dalle prime fasi progettuali anche nella rac- strato come l’adozione di SDL all’interno di
colta dei requisiti. Microsoft ha ridotto drasticamente il numero
Importanti sono le innovazioni introdotte di vulnerabilità dei nuovi prodotti, dimostran-
nel compilatore C++, che include una serie done quindi la validità. Il consiglio è compe-
di switch che automaticamente riducono le rare il libro di Howard e tentare di applicare
vulnerabilità derivanti da buffer overflow, sen- SDL al prossimo prodotto o alla prossima re-
za dover modificare il codice scritto. Oltre a lease di un prodotto esistente.
questo sono stati introdotti dei meta attributi,
per permettere al programmatore di specifi- SOA Service Oriented Architecture
care in maniera esplicita alcune caratteristi-
che dei buffer passati alle funzioni, in questo Oramai di SOA si parla ovunque ed il dubbio
modo il compilatore può introdurre una serie è se essa costituisca veramente il futuro o se
di controlli accurati al fine di prevenire pos- sia solamente una moda passeggera, ma ve-
sibili exploit tramite buffer overflow. dendo gli investimenti dei più grandi colossi
Un’altra differenza radicale riguarda il informatici si propenderebbe maggiormente
Thread Modeling, ovvero il processo con cui per la prima ipotesi. Al TechEd si è infatti par-
vengono modellati i rischi applicativi, al fine lato di “Oslo”, il nuovo nome in codice che in
di individuare i punti critici a cui dedicare casa Redmond individua la visione che sia ha
maggiore attenzione. Tale modello infatti sto- del futuro delle applicazioni a servizi.
ricamente modella il sistema dal punto di vi- Molte sessioni sono state dedicate a WCF, in-
sta dell’attaccante, mentre in futuro si pensa trodotto con il Framework 3.0 e che costituisce
di effettuare una modellazione dal punto di l’ossatura base delle future applicazioni SOA
vista del difensore, ovvero di chi il sistema lo in ambiente Microsoft. Grazie a WCF è possi-
gestisce. In questo modo si spera di rendere bile infatti realizzare servizi in maniera indi-
più pratico il processo in modo da appronta- pendente dal trasporto e dal protocollo usato
re possibili contromisure in maniera sempre per la comunicazione, è infatti sufficiente de-
più efficace e rapida. finire il formato dei dati trasmessi e i metodi
In un intervista molto interessante con Ma- esposti dal servizio e lasciare i dettagli relativi
rio Fontana, Microsoft Evangelist ed esperto alla trasmissione ai file di configurazione. In
di sicurezza, è emerso infatti come purtroppo questo modo si può realizzare un servizio che
a data odierna la sicurezza applicativa viene risponde su protocollo http con WS* e SOAP
spesso sottovalutata. In molti ambienti infat- all’esterno, ma usa contemporaneamente un
ti quando si parla di sicurezza si pensa infatti binding TCP più performante per le applica-
solamente a firewall, configurazioni di siste- zioni intranet. Al TechEd nelle varie sessio-
mi ed in generale alla sicurezza perimetra- ni si è parlato degli argomenti più disparati
le. Questo approccio è sicuramente obsoleto, riguardanti WCF, integrazione con Workflow
dato che lo scopo finale è proteggere i propri Foundation, performance, sicurezza, etc.
dati e questo fa si che il punto più critico non Molta attenzione viene posta alla gestione
possono che essere le applicazioni che lavo- dei dati, che sempre più vengono individuati
rano sui dati stessi. L’eccessiva fiducia sul- anche nella loro dimensione “temporale”. In
la sicurezza perimetrale porta infatti a gravi una sessione Pat Helland ha infatti mostrato
dimenticanze, è inutile ad esempio avere un di come, in un modo gestito con servizi, è im-
perimetro virtualmente inviolabile quando un portante che i dati scambiati possiedano un
applicativo web realizzato in ASP .NET per- attributo “temporale”, che permette al servi-
RIVISTE WEB 08
1 anno 2 anni
CP web + archivio € 50.00 € 45.00 � € 70.00 �
DEV web + archivio € 50.00 € 45.00 � € 70.00 �
VBJ web + archivio € 40.00 € 35.00 � € 60.00 �
LOGIN web + archivio € 40.00 € 35.00 � € 60.00 �
JJ web + archivio € 40.00 € 35.00 � € 60.00 �
CAP _____________ Città ___________________________________ Prov. ______ CAP ____________ Città _________________________________ Prov. _________
• I prezzi degli abbonamenti Web sono conprensivi dell’ IVA al 20% MODALITA’ DI PAGAMENTO
• I prezzi degli abbonamenti per l’estero sono maggiorati di spese di spedizione. � Allego fotocopia del Bonifico Bancario effettuato sul C/C 000000014804
CAB 25200 ABI 01030 Cin “A” - Monte dei Paschi di Siena - Agenzia di Perignano
• Gli abbonamenti decorrono dal primo numero raggiungibile. IBAN IT84A0103025200000000014804
Per attivazioni retroattive contattaci al numero 0587/736460 o invia una e-mail
all’indirizzo: abbonamenti@gruppoinfomedia.it � Allego fotocopia della ricevuta del versamento sul C/C Postale N.14291561 intestato
a: “Gruppo Editoriale Infomedia S.r.l. - Ponsacco” IBAN IT84X0760114000000014291561
Garanzia di riservatezza - Gruppo Editoriale Infomedia garantisce la massima riservatezza dei dati da lei forniti e la possibilità di richiederne gratuitamente la rettifica
o la cancellazione scrivendo a: Responsabile Dati - Gruppo Editoriale Infomedia Srl - Via Valdera P. 116 - 56038 Ponsacco (PI). Le informazioni custodite nel nostro
archivio elettronico verranno trattate in conformità alla legge 196/03 sulla tutela dati personali.
L’IVA sul prezzo dell’abbonamento cartaceo è assolta dall’Editore e non sussiste l’obbligo di emissione della fattura, ai sensi del D.M. 9 aprile 1993, art.1, comma 5;
pertanto, ai fini contabili, farà fede la sola ricevuta di pagamento; perciò la fattura verrà emessa solo se esplicitamente richiesta al momento dell’ordine.
Lei può dedurre il costo dell’abbonamento dal reddito d’impresa e dai redditi derivanti dall’esercizio di arti e professioni (artt. 54 e 56 del TUIR)
solo
12,90
Eu ro
t r u c c h i e c o n s i g li
Scopri regole,
c o m u n i c a r e v i a I nternet
per
www.shopinfomedia.com