Codice e slide: Community Meeting - Programming C# 3.0

by Andrea 21 June 2009 22:37

Ecco qui disponibile il download del codice sorgente e delle slide del Community Meeting di venerdì 5 giugno 2009 su Programming C# 3.0.

Slide: downlaod
Codice: download

DSC_0731DSC_0736DSC_0737

Tags: , ,

XeDotNet | .NET

Codice e slide: Web Congress 2.0 - Dynamic Data

by Andrea 21 June 2009 22:37

Ecco qui disponibile il download del codice sorgente e delle slide del Web Congress 2.0 di venerdì 27 Marzo 2009 della mia sessione sui ASP.NET Dynamic Data

Slide: downlaod
Codice: download

Tags: , ,

XeDotNet | .NET | ASP .NET

Community Meeting: Programming C# 3.0

by Andrea 04 June 2009 09:30

Domani, 5 giugno 2009 terrò a Mestre l'evento Programming C# 3.0:

Con il lancio di Visual Studio 2008 e del .NET Framework 3.5 anche il linguaggio C# ha subito un'importante evoluzione. Conoscere questi cambiamenti permette agli sviluppatori di poter scrivere del codice più pulito, leggibile e performante. In questa sessione andremo in dettaglio sulle nuove funzionalità introdotte in C# 3.0 e con esempi pratici scopriremo quali sono i vantaggi che esse portano allo sviluppatore, ma anche al codice prodotto.

  • Auto-Implemented Properties
  • Partial Method Definitions
  • Extension Methods
  • Implicitly Typed Local Variables and Arrays
  • Object Initializers
  • Collection Initializers
  • Anonymous Method
  • Lambda Expressions
  • Anonymous Types
  • Linq
  • Query Expression
  • Expression tree

…e questa è una buona occasione per conoscere per bene tutte le funzionalità di C# 3.0 prima della vicina uscita della versione 4, che porterà ulteriori novità.

Vi aspetto e vi ricordo che per registrarvi il link è il seguente:
http://www.xedotnet.org/meet/csharp.aspx

Technorati Tags: ,,

Tags: , ,

Microsoft | XeDotNet | .NET

Charles Darwin e l'essere agili

by Andrea 15 May 2009 11:02
Charles Darwin  

Non è la più forte delle specie che sopravvive,
né la più intelligente,
ma quella più reattiva ai cambiamenti.

- Charles Darwin -

 

Technorati Tags: ,

Tags:

Sfoghi | Pensieri | +1

Community Meeting: .netTiers & Code Generation

by Andrea 08 May 2009 09:55

netTiersLogo Ricordo a tutti, che questa sera si terrà il community meeting .netTiers & Code Generation tenuto da Davide Senatore. L'evento si terrà presso il Novotel di Mestre alle ore 19:00.

Per chi come me non conosce .netTiers, consiglio la lettura degli ultimi due post scritti da Davide Senatore:

devo ammettere che la lettura di questi post ha aumentato il mio interesse sull'argomento, e chissà che Davide riesca ad allontanare lo scetticismo che ho verso questo genere di tool.

Non ci rimane che darci appuntamento a questa sera.
Vi ricordo a tutti che dopo il meeting, continueremo la serata presso "lo scarpon" sempre a Mestre... e un bel disco volante non me lo leva nessuno. :-D

Tags: , ,

ASP .NET | .NET | XeDotNet

APlus Monitoring

by Andrea 07 May 2009 17:49

APlusMonitoringDa qualche giorno stò provando un servizio di monitoraggio chiamato APlus Monitoring.

Any business acting online has at one time or another run into problems with network outages, website that either responds slowly or not at all, undelivered emails, or other problems. Testing from the different locations make sure that the testing is fullproof.

Questo permette di controllare lo stato delle nostre applicazioni web, eseguendo delle chiamate schedulate, e notificando eventuali errori tramite email, sms o xml.
Esiste un'offerta gratuita che permette di eseguire un controllo ogni ora, che spesso è sufficiente per la maggior parte dei nostri siti/blog.

I monitoraggi che riesce ad eseguire sono i seguenti:img_ss_4

  • HTTP
  • HTTPS (Secured Socket Layer)
  • DNS (Domain Name Server)
  • FTP (File Transfer Protocol)
  • SMTP (Send Mail Transfer Protocol)
  • POP3 (Incoming Mail Server)
  • TCP (Telnet Custom Port)
  • PING

La cosa che trovo interessante è la possibilità di controllare lo stato dei servizi da differenti località (Ontario (Canada), Berkshire (UK) e California ( USA)). Ovvio che per quanto riguarda il mio blog, questo genere di controlli non ha un grande valore, ma nel caso aveste un portale di e-commerce, la mancanza di visibilità equivarrebbe ad una possibile perdita di denaro.

Vediamo come va il servizio, e vi terrò aggiornati.

Technorati Tags:

Tags:

Internet

Risolto errore nei commenti

by Andrea 28 April 2009 11:40

Mi è stato segnalato che era presente un errore che non permetteva di commentare i post:

'BlogEngine.comments.nameBox.value' is null or not an object

L'errore è presente nella versione 1.5.0.7 di BlogEngine.NET che avevo prelevato da codeplex circa un mese fa. Ho provveduto ad aggiornare il blog con l'ultima versione presente (al momento la 1.5.1.3) ed il problema è stato risolto.

Inoltre, segnalo che è stata anche rilasciata una nuova versione "stabile" di BlogEngine.NET, ed è la 1.5, raggiungibile a questo link: BlogEngine.NET 1.5 final

Technorati Tags:

Tags:

Sito | Internet | ASP .NET

XeDotNet, prossimi eventi da non perdere

by Andrea 27 April 2009 12:22

.NET Micro Framework

logo_NMFIl 4 maggio 2009, Mirco Vanini terrà il primo evento online (per noi di XeDotNet) dal titolo ".NET Micro Framework"

Di recente introduzione, il Micro Framework è uno strumento che apre la strada a molte opportunità di lavoro in campi un tempo riservati a piattaforme molto variegate ed eterogenee. Con Mirco Vanini in questo meeting online della durata di un'ora circa esploreremo le basi del Micro Framework e le sue possibilità.

Il format dell'evento online è per noi una novità, e ci auguriamo abbia successo, in quanto agevola la partecipazione di chi non abita nelle vicinanze e fosse comunque interessato a seguire l'argomento.

Per partecipare all'evento è sufficiente registrarsi al seguente link: registrazione.

 

NetTiers & Code Generation: Rapid Application Prototyping

netTiersLogo Davide Senatore terrà l'8 maggio 2008 una sessione dal titolo "NetTiers & Code Generation: Rapid Application Prototyping".

Per chi non sapesse cos'è NetTiers, riporto parte dell'abstract della sesisone, dove è ben spiegato:

NetTiers è un insieme di templates di CodeSmith che aiutano lo sviluppatore a generare un’intera applicazione in pochi minuti. Tramite NetTiers Lo sviluppatore può decidere se avvalersi del solo supporto al DAL o se arrivare a farsi generare addirittura un’intera applicazione web, unitamente a i web services (WCF) correlati. L’integrazione con la libreria Enterprise Library assicura inoltre un robusto supporto per la creazione di regole di business.

Per partecipare all'evento è sufficiente registrarsi al seguente link: registrazione.

Tags: ,

XeDotNet | .NET

MSDN in low bandwidth

by Andrea 20 April 2009 10:10

Leggo oggi dal post di Scott Hanselman 
(Low Bandwidth View and other Hidden (and Future) Features of MSDN) e scopro una funzionalità di MSDN davvero stupenda, e cioè la possibilità di visualizzare e navigare MSDN in formato "low bandwidth" (ed altre modalità).

La cosa che trovo stupeda è l'estrema velocità di caricamento che hanno le pagine, il che vuol velocizza anche il reperimento e la lettura. Ammentto che attendevo una funzionalità come questa da molto tempo, e sono convinto che molti di voi la penseranno allo stesso modo.

Per vedere a attivare questa visualizzazione, se la pagina che stiamo leggendo è
http://msdn.microsoft.com/en-us/library/system.xml.xmlnode.aspx
inserendo "(loband)" nell'url
http://msdn.microsoft.com/en-us/library/system.xml.xmlnode(loband).aspx
verrà visualizzata la pagina nel nuovo formato.

MSDN MSDN_loband

MSDN_loband_2Per abilitare in modo permanente la funzionalità, all'interno della pagina in low bandwidth è possibile cliccare nel link "Persist low bandwidth", e successivamente, qualsiasi pagina/link aprirete verrà visualizzata in questa modalità.

Nel post sono elencate anche altre funzionalità introdotte in MSDN, tra le quali il miglioramento delle prestazioni ed altre nuove modalità di visualizzazione.

Complimenti davvero al team che ci stà lavorando, ed ora Persist low bandwidth attivato!!

Technorati Tags: ,

Tags: ,

.NET | Microsoft

Extension per BlogEngine - Meta Description

by Andrea 15 April 2009 11:39

E' da parecchio tempo che seguo il progetto BlogEngine.NET e che ne faccio uso per questo blog. Con le prime versione, mi sono dovuto scrivere un bel pò di codice per adattarlo alle mie esigenze, e sopratutto per ottimizzarlo per l'indicizzazione nei motori di ricerca.
(SEO - Ottimizzazione per i motori di ricerca)
Ad ogni aggiornamento di BlogEngine.NET, mi accorgevo che il codice (scritto da me) che stavo riportando da una versione all'altra, si riduceva notevolmente. Fino a pochi giorni fa, che sono riuscito a inserire tutto il mio codice all'interno di una Extension, permettendomi d'ora in poi di agevolarmi nella procedura di aggiornamento (che ora si è ridotta ad un bel copia e incolla).

L'extension che ho creato permette di settare il tag meta-description della pagina con i primi 200 caratteri del post. Questo tag permette di specificare una descrizione per il contenuto della pagina migliorandone l'indicizzazione.

Creare l'Extension

Per fare questo, mi sono agganciato all'evento Serving del Post, ed al suo interno ho eliminato i tag html contenuti nel Body, e copiato i primi 200 caratteri all'interno della proprietà Description (che di default viene inserita nel tag meta description della pagina).

   1: /// <summary>
   2: /// Initializes the <see cref="MetaDescription"/> class.
   3: /// </summary>
   4: static MetaDescription()
   5: {
   6:     Post.Serving += new EventHandler<ServingEventArgs>(Post_Serving);
   7: }
   8:  
   9: /// <summary>
  10: /// Handles the Serving event of the Post control.
  11: /// </summary>
  12: /// <param name="sender">The source of the event.</param>
  13: /// <param name="e">The <see cref="BlogEngine.Core.ServingEventArgs"/> instance containing the event data.</param>
  14: static void Post_Serving(object sender, ServingEventArgs e)
  15: {
  16:     if (!string.IsNullOrEmpty(e.Body)
  17:         && string.IsNullOrEmpty(((Post)sender).Description)
  18:         && e.Location == ServingLocation.SinglePost)
  19:     {
  20:         // Remove the HTML tags
  21:         string content = ClearHTMLTags(HttpUtility.HtmlDecode(e.Body));            
  22:         
  23:         // Remove the encoded char. es: &#236; 
  24:         //content = ClearEncodedChar(HttpUtility.HtmlEncode(content));
  25:  
  26:         // Reduce the Length of text for meta description
  27:         if (content.Length > 200)
  28:             content = content.Substring(0, 200);
  29:  
  30:         // Set the description of post
  31:         ((Post)sender).Description = content;
  32:     }
  33: }

Rimuovere i tag HTML

Per elinare i tag HTML contenuti nel post ho utilizzato le Regular Expression, in quanto sono veramente performanti, e permettono agevolmente di eseguire ricerche e modifiche all'interno di testi scrivendo pochissime righe di codice:

   1: /// <summary>
   2: /// Clears the HTML tags.
   3: /// </summary>
   4: /// <param name="strHTML">The string with the tags to remove.</param>
   5: /// <returns></returns>
   6: private static string ClearHTMLTags(string strHTML)
   7: {
   8:     Regex regEx = null;
   9:     string strTagLess = string.Empty;
  10:     try
  11:     {
  12:         //this pattern mathces any html tag
  13:         regEx = new Regex("<[^>]*>", RegexOptions.IgnoreCase);
  14:         strTagLess = regEx.Replace(strHTML, "");
  15:         //matches a single <
  16:         regEx = new Regex("[<]", RegexOptions.IgnoreCase);
  17:         strTagLess = regEx.Replace(strTagLess, "&lt;");
  18:         //matches a single >
  19:         regEx = new Regex("[>]", RegexOptions.IgnoreCase);
  20:         strTagLess = regEx.Replace(strTagLess, "&gt;");
  21:  
  22:         return strTagLess;
  23:     }
  24:     catch
  25:     {
  26:         return strHTML;
  27:     }
  28: }

Rimuovere caratteri speciali

All'interno del codice del metodo Post_Serving, è presente una riga di codice commentata che punta a una funzione che permette (sempre tramita Regular Expression) di rimuovere i caratteri speciali/simboli presenti all'interno del post. Questo perchè vengono visualizzati con l'encoding e quindi il carattere "é" apparirebbe "&amp;#233;" (in quanto viene fatto un (doppio) encoding da BlogEnigne.NET). Questa informazione viene comunque interpretata correttamente dai motori di ricerca, e quindi ho preferito non rimuovere questi caratteri, ma per chi invece fosse interessato, è sufficiente che scommenti la linea.
Ecco qui la funzione che verrebbe eseguita:

   1: /// <summary>
   2: /// Clears the encoded char.
   3: /// </summary>
   4: /// <param name="strHTML">The string with encoded char to remove</param>
   5: /// <returns></returns>
   6: private static string ClearEncodedChar(string strHTML)
   7: {
   8:     Regex regEx = null;
   9:     string strEncodedCharLess = string.Empty;
  10:     try
  11:     {
  12:         regEx = new Regex(@"&(?ni:\#((x([\dA-F]){1,5})|(104857[0-5]|10485[0-6]\d|1048[0-4]\d\d|104[0-7]\d{3}|10[0-3]\d{4}|0?\d{1,6}))|([A-Za-z\d.]{2,31}));", RegexOptions.IgnoreCase);
  13:         strEncodedCharLess = regEx.Replace(strHTML, "");
  14:  
  15:         return strEncodedCharLess;
  16:     }
  17:     catch
  18:     {
  19:         return strHTML;
  20:     }
  21: }

Come utilizzare l'extension

Per utilizzare l'extension, non si deve fare altro che eseguire il download, e copiare il file contenuto all'interno della cartella \App_Code\Extensions del proprio blog.

Download file: http://files.dott.../BlogEngine-MetaDescription-01.zip

Tags: , ,

ASP .NET | .NET | Microsoft