APlus Monitoring

by andrea 07 May 2009 08: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 02: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 03: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 01: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 02: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

Guida BlogEngine.NET

by andrea 14 April 2009 00:25

guida_BlogEngine Segnalo che sono usciti i primi articoli della "Guida BlogEngine.NET" che ho scritto per HTML.it.

BlogEngine.NET è una piattaforma di blogging, la stessa che utilizzo io per questo blog (blog.dottor.net), e viste le numerose domande che ho ricevuto a riguardo dell'installazione, customizzazione ed integrazione/espansione, ho colto al volo la possibilità di scrivere questa guida, che spero possa essere utili a molti di voi. (e pensare che all'inizio si trattava di un unico articolo...)

BlogEngine_logo Ho fatto il possibile per rendere la guida il più semplice possibile, in modo da poter aiutare chi è alle prime armi con .NET, ma non solo. Nella guida, infatti, sono trattati anche argomenti sul come customizzare BlogEngine.NET con la propria grafica e sul cosa si deve fare per espandere l'applicazione aggiungendo delle proprie funzionalità (extensios), che secondo me, sono le grandi potenzialità di questa piattaforma. (che usciranno prossimamente)

Il link alla guida è il seguente "Guida BlogEngine.NET", e per qualunque domanda/critica potete contattarmi senza problemi.

Technorati Tags:

Tags: ,

ASP .NET | .NET | Microsoft

Web Congress 2.0 - Ci vediamo tra poco

by andrea 27 March 2009 02:19

WebCongress2Slide preparate…
…e come al solito le ho terminate questa notte. Devo ancora capire perchè posso iniziarle anche un mese prima degli eventi, ma mi ritrovo a far modifiche fino all'ultimo momento. :D

Codice fatto…   
…di questo ne vado abbastanza fiero. Sono riuscito ad applicare i DynamicData ad un caso reale (aggiungendo un'area per gestire quest'applicazione), ma non voglio svelare troppo.

e quindi tutto è pronto…ci vediamo questo pomeriggio al Web Congress.

Technorati Tags: ,

Tags: , , ,

ASP .NET | .NET | XeDotNet

Community is?

by Andrea 22 March 2009 17:19

Community is

E’ proprio vero...coltivare una community è un pò come coltivare una pianta:

  • le si deve prestare attenzione
  • ci si deve ricordare di alimentarla in modo da farla crescere, ma al tempo stesso, in modo che non appassisca
  • ognuno la deve sentire sua, e collaborare alla sua crescita

e se si applica (anche solo) un minimo di questi punti, sicuramente la pianta (la community) ricambierà dando mille soddisdazioni, che cresceranno di giorno in giorno.

 

Da dove nasce il tutto?
Quello che vedete in foto è un gadget che ho preso allo stand degli MVP al Tech-Ed di Barcellona, e che poco tempo fa mi è ricapitato in mano, e ho deciso di vedere cosa fosse una community.

Ho seminato, le ho dato regolarmente da bere, ed ecco che dopo pochi giorni ho avuto la risposta. La Community è Attenzione, Impegno, Amicizia, e tanta voglia di condividere.

Technorati Tags: ,

Tags: ,

XeDotNet | Tempo libero | Microsoft | Generale | Sfoghi

Seadragon Ajax

by andrea 13 March 2009 01:56

Leggendo il post di Mike Ormond sono venuto a conoscenza che Microsoft Live Labs  ha sfornato un nuovo progetto che ha dell'incredibile, dal nome Seadragon Ajax.

logo_color_seadragon_90 Questo progetto è una "replica" di Deep-Zoom, la funzionalità realizzata per silverlight che vi permette di gestire una foto grande quanto un campo da calcio, ed eseguire lo zoom fino al minimo particolare. Ma a differenza di Deep-Zoom questa è una funzionalità AJAX, che si appoggia completamente a JavaScript.

Ecco il link per vedere il progetto: http://livelabs.com/seadragon-ajax/

Tags: ,

ASP .NET | ASP.NET AJAX

FileUpload caricato in un postback asincrono

by andrea 13 March 2009 01:54

Se avete provato a caricare un controllo FileUpload durante un PostBack asincrono, oppure settate la visibilità da false a true, avrete notato che il controllo non funziona correttamente e quindi non vi permette di caricare il file (anche se con PostBackTrigger impostato correttamente).

Questo problema avviene perchè il controllo non è in grado di aggiornare correttamente il tag form della pagina.

Per risolvere il problema si deve modificare il tag form aggiungendo l'enctype:

   1: enctype="multipart/form-data"

è anche possibile aggiungerlo da codice utilizzando questo codice nel page_load:

   1: Page.Form.Attributes.Add("enctype", "multipart/form-data"); 

 

Tags:

ASP.NET AJAX | ASP .NET | .NET