—
Giorgio Borelli
Quando si crea un programma, sia questo una libreria, un'applicazione per console o un programma stand-alone con relativo file eseguibile, il codice sorgente per poter essere eseguito deve essere compilato (o interpretato) in modo da trasformarsi in codice macchina ed essere così processato.
Le modalità con cui è possibile compilare un programma sono due: compilazione in Debug e compilazione in Release. La prima è una particolare modalità di compilazione che consente allo sviluppatore di analizzare codice e variabili a run-time, tramite degli appositi break-point posti nel codice il programmatore può intercettare il flusso del programma in esecuzione ed analizzarlo, consentendogli così di risolvere eventuali bug e/o apportare migliorie.
La modalità di compilazione in debug, risulta estremamente utile, se non indispensabile per ogni programmatore, che la gestisce tramite il proprio IDE di sviluppo, che nel nostro caso è Visual Studio. D'altro canto però la compilazione in debug, comporta un sovraccarico del codice ed impegna maggiormente le risorse, anche a causa dei break-point che ne consentono l'analisi. Il codice compilato in debug risulta pertanto più pesante e gira più lentamente di uno compilato in Release, quest'ultima modalità di compilazione viene usata infatti quando il programma o le librerie devono essere rilasciate; libero di ogni break-point, il codice viene inoltre ottimizzato al massimo per il suo deployment (messa in opera), aumentandone le prestazioni e la velocità di esecuzione. Quindi possiamo dire che si compila in debug durante lo sviluppo ed in release prima del rilascio.
I concetti qui esposti sono pane quotidiano per uno sviluppatore, ed è quasi banale parlarne, quello su cui vorrei invece porre l'attenzione è su come configurare l'IDE Visual Studio per una compilazione in debug o release. L'esigenza di chiarire queste opzioni di configurazione per la compilazione in Visual Studio, nasce dal fatto che nelle versioni Express, quale Visual C# Express, la modalità di compilazione settata di default è quella in Release, e non viene mostrata o è resa inattiva l'opzione di compilazione in Debug, e la voce per attivarla non è proprio sotto il naso, allora come fare per configurare Visual Studio Express in modo che sia possibile compilare sia in Debug che in Release?
Prosegue...
—
Giorgio Borelli
Nell'ultima versione del database di casa Microsoft, il Sql Server 2008, tutto il processo d'installazione, prerequisiti, documentazione e quant'altro viene gestito tramite un comodo installer con un menù in stile web, sia che Sql Server 2008 sia nella versione Standard (a pagamento) che nella versione Express.
Chi usa Microsoft Sql Server, sicuramente conosce e fà uso dell'IDE (lo strumento grafico) per la gestione dello stesso RDBMS Sql Server, noto come Microsoft Sql Server Management Studio (SSMS), uno strumento indispensabile per gestire e sviluppare i propri database.
Il Microsoft Sql Server Management Studio Express 2008 (SSMSE) può essere installato assieme all'istanza di Sql Server 2008 oppure come pacchetto separato sempre tramite lo stesso installer di Sql Server, in quest'ultimo caso l'installazione di SSMSE può risultare di non immediata intuizione, in quanto l'installer di Sql Server non ci mostra una voce specifica per il suo setup.
Anche un utente più smaliziato di Sql Server, potrebbe trovarsi un'attimino disorientato di fronte questa inutile complicazione per l'installazione del Management Studio Express, fortunatamente la soluzione è molto semplice, e basta affidarsi al solito installer di Sql Server 2008, andiamo a scoprire allora quali sono i passi da seguire per l'installazione di Sql Server Management Studio Express 2008 successivamente all'installazione di Sql Server.
Prosegue...
—
Giorgio Borelli
Windows PowerShell è una shell creata da Microsoft per gestire i sistemi Windows completamente da riga di comando, molto più potente del classico prompt dei comandi basato sulla vecchia shell MS-DOS.
Windows PowerShell, il cui nome in codice è Monad, è una shell dalla quale è possibile eseguire script orientati agli ogetti, basata sul .NET Framework (dalla versione 2.0), ed è supportata dai Sistemi Operativi Windows a partire da Windows XP in poi. Per XP e Vista viene rilasciato come aggiornamento, mentre in Windows 7 è preinstallato di default con il SO. Molto utile per gli amministratori di sistema ed i professionisti IT, Windows PowerShell risiede anche nei sistemi server, come Windows Server 2003 e Windows Server 2008, tramite i suoi comandi, detti cmdlet, non solo è possibile eseguire tutte le funzioni svolte dall'interfaccie grafiche di windows (GUI), ma si possono scrivere script (basati sui linguaggi ad oggetti) che consentono di personalizzare ed automatizzare l'uso di Windows.
Dopo questa premessa, è chiaro che Windows PowerShell, rappresenta uno strumento avanzato, utile per lo più ai sistemisti windows che ai normali utenti fruitori dei servizi di uso quotidiano del computer; pertanto questo risulta praticamente inutile a chi non sà cosa farne o addirittura non sappia nemmeno cosa sia.
Se non ne facciamo uso, possiamo allora disinstallare windows powershell dal nostro sistema, ma questo non presenta alcuna voce di "uninstall" nè tantomeno compare tra l'elenco dei programmi installati richiamabile dal pannello di controllo, come fare allora per disinstallare Windows Powershell? La soluzione è pressochè banale, andiamo a vedere come fare.
Prosegue...
—
Giorgio Borelli
Determinati problemi di rete, sono davvero inspiegabili, improvvisamente il PC scompare dalla LAN, non permettendoci più di usare le risorse di rete e di navigare in internet.
Qual'è la causa? Probabilmente si ha un'indirizzo IP dinamico assegnato dal DHCP che fà un pò i capricci, per risolvere basta molte volte farsi assegnare un nuovo IP dal DHCP (Dynamic Host Configuration Protocol).
Innanzi tutto accertiamoci che abbiamo un'indirizzo IP dinamico, clicchiamo due volte sui computerini in basso a dx del nostro desktop, e dalla scheda "Stato di Connessione della rete" che comparirà, ci spostiamo sulla tab "Supporto", nella prima voce "Tipo Indirizzo" viene specificato se è stato Assegnato da DHCP o è di tipo statico (assegnato manualmente), come si vede nella figura a fianco. Se invece voglimo cambiare l'assegnazione dell'indirizzo IP, da statico a dinamico o viceversa, basta raggiungere la scheda proprietà del protocollo TCP/IP dalla proprietà della nostra Rete LAN ed impostare la configurazione desiderata, per vedere come fare potete leggere "Come configurare una rete LAN".
Per farci assegnare invece un nuovo Indirizzo IP dal DHCP possiamo perseguire due strade, una via dos ed una tramite interfaccia windows, andiamo a scoprire come fare
Prosegue...
73b43677-c908-4c99-8096-428125c4ab47|2|4.5|96d5b379-7e1d-4dac-a6ba-1e50db561b04
Categorie: Reti
Tags: LAN, Reti
—
Giorgio Borelli
Con la sempre maggiore diffusione del formato elettronico, l'importanza delle informazioni conservate nei nostri computer risulta cruciale per la nostra vita, password, codici di carte di credito, documenti, bilanci, contatti di lavoro e molto altro ancora, possiamo dire che parliamo di dati sensibili.
Preservare e proteggere queste informazioni, assieme alla propria privacy è uno degli aspetti prioritari che ogni privato, azienda o professionista deve tenere in considerazione al giorno d'oggi dove tutto e condiviso. Il furto di dati sensibili, purtroppo è una realtà che affligge milioni di vittime ogni giorno, con truffe colossali, tanto per citarne una ricordiamo il Phishing, la subdola tecnica che mira a rubare spesso il numero di conto corrente reindirizzando gli utenti a siti trappola tramite l'invio di email fasulle. Fortunatamente difendersi dal Phishing, non è poi così difficile, nostro malgrado però le tecniche per sottrarre dati non si fermano al solo invio di email false, e peggio ancora non provengono esclusivamente dal mondo d'Internet, spesso la minaccia si cela proprio dietro le nostre mura, soprattutto in ambito aziendale infatti non è raro trovare casi di furto di dati ad opera di dipendenti frustrati o colleghi invidiosi.
La facilità con cui è possibile condividere e trasportare dati, consente a chiunque di prelevare informazioni riservate dai nostri pc, basta inserire una pen drive in una porta USB, ed in pochi secondi copiare centinaia di Mb di dati, che comodamente usciranno fuori dalla nostra azienda e dal nostro controllo, i danni che ci possono essere recati con delle nostre informazioni vitali in mano di qualche male intenzionato sono inimagginabili.
Come fare allora per evitare che un dipendente senza scrupoli, o un "non addetto ai lavori", possa copiare tramite pen drive (o altro device) i nostri dati? Una possibile soluzione è quella di bloccare le porte USB a chi non è autorizzato, andiamo a scoprire come fare.
Prosegue...
e578d14b-5080-426b-b9a7-660b00b59b02|2|4.5|96d5b379-7e1d-4dac-a6ba-1e50db561b04
Categorie: Sicurezza Informatica
Tags:
—
Giorgio Borelli
Quando si realizza un software, il programmatore detta le istruzioni al computer tramite la scrittura di un codice sorgente in un determinato linguaggio di programmazione. Il codice sorgente però non è direttamente eseguibile dalla CPU (Central Processing Unit), è necessario “tradurlo” in linguaggio macchina, ossia un file binario contenente microistruzioni gestibili dal processore. Inoltre diverse architetture di processori prevedono linguaggi macchina differenti.
La traduzione viene compiuta in maniera del tutto automatica, con opportuni programmi detti, Compilatori ed Interpreti, ognuno con le proprie caratteristiche, vantaggi e svantaggi. A seconda di come il linguaggio di programmazione viene tradotto nel linguaggio macchina, si parla dunque di linguaggi compilati e linguaggi interpretati.
Andiamo quindi a scoprire le principali differenze tra linguaggi compilati ed interpretati, quali processi seguono per generare il codice macchina sino ad arrivare alla creazione dell'eseguibile.
Prosegue...
—
Giorgio Borelli
Non sono solito recensire le ultime news dal mondo dell'informatica, ma questa, anche se sono già in ritardo, merita una menzione speciale, anche perchè ci riguarda da vicino.
Sebbene con un piccolo spostamento rispetto alla data ufficiale (22 Marzo), il 12 Aprile è stato rilasciato ufficialmente il nuovissimo Visual Studio 2010, stiamo ovviamente parlando dell'ultimissimo IDE (Integrated development environment) di casa Microsoft, il quale porta in dote niente po po di meno che l'ultima versione della piattaforma di sviluppo preferita, ovvero il framework.NET 4.0.
Giustamente la curiosità, le pretese, e le aspettative su questo nuovo ambiente di lavoro sono tante, andiamo a fare pertanto una breve panoramica sulle novità principali introdotte con il rilascio di Visual Studio 2010 e del .NET framework 4.0.
Prosegue...
—
Giorgio Borelli
Una delle esigenze molto sentite tra gli sviluppatori ASP.NET è quella di poter gestire ed avere il pieno controllo della GridView, un controllo molto usato per la presentazione, la paginazione e la modifica di liste di dati.
Tramite il controllo GridView di ASP.NET pertanto è facile gestire liste di dati, la GridView infatti presenta tutta una serie di proprietà che consentono con facilità di formattare, paginare e gestire le "liste". La GridView consente inoltre di gestire i dati sia in "Presentation Mode" che in "Edit Mode", quest'ultima modalità risulta comoda per l'aggiornamento (update) di un record rappresentato dalla singola riga della GridView, le cose si complicano un pò però quando si cerca di avere il controllo completo su un elemento asp.net all'interno della riga della GridView, in source view infatti non riusciamo ad accedere al controllo tramite il suo ID poichè non viene visto dalla classe Page in quanto "mascherato" all'interno della GridView stessa.
Come fare allora per accedere ai controlli specificati nelle righe di una GridView di asp.net in Edit Mode? Dobbiamo sfruttare l'Evento Row_Updating e scrivere qualche riga di codice per intercettare la riga selezionata e l'ID del controllo interessato, andiamo a scoprire come fare.
Prosegue...
aceede45-1652-46b5-ac5e-0eaaefe38f79|2|4.5|96d5b379-7e1d-4dac-a6ba-1e50db561b04
Categorie: ASP.NET
Tags: ASP.NET
—
Giorgio Borelli
Il Common Language Runtime (CLR) del .NET framework è in grado di eseguire applicazioni scritte in uno qualsiasi dei linguaggi supportati dalla piattaforma, quali C# o VB.NET, anche misti fra loro, questo è possibile grazie al Common Type System (CTS), ovvero l'insieme comune e condiviso dei tipi all'interno del framework.
In altre parole, ad esempio, il tipo int di C# ed integer di VB, durante l'esecuzione non sono altro che il tipo comune System.Int32 del framework.NET, tutto questo sempre ammesso che i linguaggi utilizzati soddisfino determinate specifiche (CLS - Common Language Specification) che li rendano compatibili con quelli comuni del framework.
Fatta questa premessa dovuta per avere un quadro più completo dell'argomento, diciamo che tra i tipi comuni del CLR, vi è un tipo generico da cui derivano tutti gli altri, il tipo System.Object, infatti si suole dire che nel .NET framework qualsiasi cosa è un'oggetto, sia questo un tipo intero, booleano o una classe stessa. La possibilità di avere un tipo generico che rappresenti qualsiasi dato all'interno del nostro programma ci consente di usarlo per potergli associare un qualsivoglia oggetto, sia esso un Tipo Valore o Tipo di Riferimento. Ad un primo impatto questo approccio potrebbe risultare molto comodo, uso solo tipi Object, e l'applicazione gira ugualmente, fregandomene della definizione dei tipi e della loro opportuna gestione.
Ma siamo certi che questo approccio sia corretto, purtroppo no, usare un tipo Object generico porta ad un decadimento delle prestazioni dell'applicazione, poichè avvengono le operazioni di Boxing e Unboxing per la conversione dà Tipi Valore a Tipi di Riferimento e viceversa, andiamo quindi a scoprirne di più su cosa avviene nelle operazioni di Boxing e Unboxing.
Prosegue...
—
Giorgio Borelli
I linguaggi supportati dal .NET framework quali C# e VB si dice che sono strongly-typed, ossia fortemente tipizzati, in parole povere ogni variabile od oggetto dichiarato all'interno del programma deve definire un tipo e lo deve rispettare (pena un errore di compilazione).
Pertanto un tipo descrive le caratteristiche dell'informazione che esso dovrà andare a rappresentare all'interno del programma a mezzo di una variabile, sia esso un numero, una sequenza di caratteri od oggetti più complessi come istanze di classi, in ogni caso ogni elemento all'interno di un programma sviluppato col .NET framework deve essere dichiarato a mezzo di un tipo e ne deve rispettare le funzionalità durante l'uso.
I tipi non si differenziano però solo per il dato che rappresentano, ma anche per la gestione che di questi se ne fà in memoria. All'interno del .NET framework, o meglio del CLR (Common Language Runtime) sono definite due categorie di tipi, i Tipi di Valore (Value Types) e Tipi di Riferimento (Value References), l'una e l'altra categoria presenta le proprie caratteristiche e soprattutto ha un diverso metodo di allocazione della memoria, per chi vuole iniziare a programmare in .NET non può prescindere dalla conoscenza di queste nozioni di base relative ai tipi per valore e per riferimento, andiamo a vedere pertanto le principali caratteristiche e differenze.
Prosegue...