Da quando ho iniziato a sviluppare in .NET, ed in particolare in C#, ho sempre trovato molto comodo utilizzare nel mio codice le region. Sono solito raggruppare i metodi delle mie classi per tipologia (Properties, GridViewMembers, DataSourceMembers, Constants, ecc) e racchiudere quindi questi in diverse region, alle volte anche innestate tra loro.àˆ un modo di fare che mi permette di volta in volta di mantenere l'attenzione focalizzata solo sulla parte di codice che mi interessa in un particolare momento evitando di farmi distrarre dalle altre righe di codice.Alle volte racchiudo in region anche parti di codice interno come cicli foro righe di codice ripetitive (quali ad esempio le valorizzazioni di SqlParameters con i valori della entity da persistere) in modo da rendere più leggibile il codice e ridurre gli scroll della pagina.Altri sviluppatori con cui invece ho avuto modo di confrontarmi, trovano fastidioso l'uso delle region. Sarebbe allora interessante sapere quanti tra di voi le utilizzano e quanti no ed in ogni caso i motivi di una scelta e dell'altra. Quindi #region o no #region?

Continua a leggere To region or not to region?

Categoria: Microsoft Dev

Tags: ,

Qualche giorno fa ha visto la luce mojoPortal 2.2.3.5. Personalmente amo PHP, e mojo non è stato pensato per me. Mojo è infatti un CMS Opensource programmato in C#, utile a tutti gli sviluppatori che hanno più familiarità  con questo linguaggio, piuttosto che con il più inflazionato PHP. Sembrano interessanti ed utili le novità  presenti nella nuova versione: (more...)

Continua a leggere mojoPortal e il C# power

Categoria: CMS

Per chi non lo sapesse (penso moltissime persone) uno dei campi che mi attraggono di più dell'informatica è quello dello sviluppo di compilatori o interpreti. In questi anni ho sviluppato qualche semplicissimo linguaggio di scripting per diletto, ed ho avuto modo di testare e studiare moltissimi linguaggi di programmazione (o presunti tali!).Per qualche tempo ho avuto il piacere di interloquire via email con Marco Pantaleoni, uno sviluppatore che ha inventato qualche anno fa un linguaggio di programmazione chiamato ElastiC. Il linguaggio ha delle feature interessantissime, prese dai linguaggi più interessanti presenti in circolazione (si vedano Python o C) e viene distribuito con un bel po' di librerie interessanti, tra cui una versione di yacc con target il linguaggio stesso ed un porting delle librerie GTK.Il progetto non rilascia più versioni ufficiali da un po' di tempo (la data dell'ultima versione rilasciata sul sito internet risale a qualche anno fa!) ma il progetto su CVS è ancora vivo. Spero non cada nel dimenticatio come moltissimi altri progetti validi. Purtroppo non sono più in contatto con l'autore, ma ritengo il linguaggio veramente interessante e potente, da provare anche solo a livello hobbystico.Se continuerà  a crescere e se riceverà  il supporto che si merita, sono sicuro acquisità  prestigio nel mondo informatico. Io ogni tanto lo utilizzo e mi ci trovo molto bene, se qualcuno fosse interessato penso che l'autore accetterebbe un aiuto o qualche consiglio. In caso di altre novità  vi faccio sapere ...

Continua a leggere Elastic, un altro linguaggio nel futuro informatico?

Categoria: PHP e Open Source

Tags: , ,
di

Non è una novità  che le versioni Express di Visual Studio siano scaricabili e gratuite per almeno un anno.La cosa positiva è invece la disponibilità  di Microsoft a rilasciare un'unica immagine contente sia l'ambiente di sviluppo preferito (C# o VB o J# o C++ o "Web") sia tutti gli add-on necessari per poter lavorare produttivamente (SQL Server Express, .NET Framework 2.0, MSDN Express). Come se non bastasse vengono aggiunte tutte le istruzioni per masterizzare il CD di installazione partendo dal file immagine. Per scaricare l'ambiente di sviluppo desiderato questa è la pagina di partenza.

Continua a leggere Visual Studio Express

Categoria: Microsoft Dev

Tags: ,
di

La classe HashTable ed in generale tutte quelle che implementano l'interfaccia IDictionary, non può essere serializzata via XmlSerializer. Per poter superare questo ostacolo è necessario ricorrere ad uno stratagemma: definire un processo personalizzato di serializzazione tramite l'interfaccia IXmlSerializable. Questa definisce 3 metodi: public interface IXmlSerializable {   void ReadXml(XmlReader reader);   void WriteXml(XmlWriter writer);   XmlSchema GetSchema(); } Quando viene avviato il processo di serializzazione l'XmlSerializer chiama il metodo WriteXml(). Vicecersa, durante la deserializzazione, chiama il metodo ReadXml(). Il metodo GetSchema() viene usato per identificare lo schema XSD dell'oggetto serializzato ed è chiamato solo in casi particolari. L'utilizzo degli attributi di serializzazione ha poco effetto con IXmlSerializable, in quanto questi servono per gestire la serializzazione automatica delle classi.Avere HashTable serializzabili può essere utile in diversi contesti, ad esempio in un Web service, in Biztalk 2004 oppure in tutti quei progetti dove l'uso della serializzazione XML di oggetti viene fatto in modo massiccio. Per capire meglio l'utilizzo di questa interfaccia allego un progetto C# nel quale ho creato una classe CustomHashTable che implementa IXmlSerializable. CustomHashTable utilizza internamente un dizionario che accetta coppie chiave-valore di tipo stringa, l'esempio è liberamente personalizzabile secondo le proprie esigenze.

Continua a leggere .NET TIP – Implementare l’interfaccia IXmlSerializable

Categoria: Microsoft Dev

Tags: ,
di

Per scoprirlo dobbiamo leggere la pagina Future Version pubblicata sul sito Microsoft, dove compaiono le anticipazioni sulle prossime caratteristiche dei linguaggi del framework .NET, in particolar modo su: C# 3.0, Visual Basic 9.0 e LINQ (Language Integrated Query for .NET). Sempre su questi argomenti è incentrata l'intervista di Anders Hejlsberg, il papà di C#, disponibile qui (file video WMV).

Continua a leggere Il futuro del framework .NET

Categoria: Microsoft Dev

Tags:
di

L'utilizzo delle regular expressions per la validazione o la formattazione del testo immesso all'interno dei controlli di un form web è un'ottima soluzione per evitare errori o impurità nei dati raccolti. Il framework .NET supporta l'uso delle regular expressions sia attraverso il web control RegularExpressionValidator, sia con la classe Regex posizionata all'interno del namespace System.Text.RegularExpressions. Vediamo ora un esempio di utilizzo del controllo RegularExpressionValidator: //Validazione Input: Nome Completo di una persona <%@ language="C#" %> <form id="form1" runat="server"> <asp:TextBox ID="txtNome" runat="server"/> <asp:Button ID="btnInvia" runat="server" Text="Invia Dati" /> <asp:RegularExpressionValidator ID="valNome" runat="server" ErrorMessage="Il testo inserito non è un nome di persona valido." ControlToValidate="txtNome" ValidationExpression="^[òàùèìa-zA-Z''-'\s]{1,50}$" /> </form> Se siete a "digiuno" di regular expressions, potete consultare quest'ottimo tutorial curato da Roy Osherove un vero "guru" in materia. Inoltre, per costruire e testare le nostre regex in rete esistono molti strumenti gratuiti e potentissimi: Regulator 2.0 Expresso 2.1 Espressione regolareDominio valoriDescrizione ^[òàùèìa-zA-Z''-'\s]{1,50}$Luca MilanGianni D'AmicoStringa di caratteri con lunghezza da 1 a 50, sono ammesse lettere in maiuscolo o minuscolo, spazi e l'apostrofo, oltre alle lettere accentate. ^\d+$0123Numeri interi non negativi ^\d+(\.\d\d)?$75.00Decimali non negativi, con due cifre dopo il punto. 9.99 è valido, 4.5 no. ^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z] [-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$l.milan@html.itUn indirizzo email valido.

Continua a leggere .NET TIP – RegEx per validare l’input nei controlli ASP.NET

Categoria: Microsoft Dev

Tags: , ,
di

Il framework .NET mette a disposizione degli sviluppatori delle API (System.Configuration.ConfigurationSettings.AppSettings) per la lettura della sezione AppSettings dei files di configurazione tipo app.config o web.config. Ecco uno stralcio di codice di una tipica sezione AppSettings all'interno di un file .config: <configuration>   <appSettings>     <add key="ConnectionString" value="server=.;database=pubs;userID=sa;pwd=pippo;"/>     <add key="Debug" value="true"/>   </appSettings> </configuration> (more...)

Continua a leggere .NET TIP – Leggere i files di configurazione

Categoria: Microsoft Dev

Tags: ,