Certificazioni Microsoft sul Framework .NET 4.0 e Visual Studio 2010

datelunedì 5 luglio 2010 alle 23.06  - posted by Manuel Scapolan in Microsoft Exams

percorso di certificazioneFinalmente! La lunga attesa è finita... dal 2 luglio è possibile sostenere gli esami per le certificazioni Microsoft sul Framework .NET 4.0 e Visual Studio 2010

In tutto ci sono 4 esami base su Windows, Web, Service e Data Access ognuno dei quali dà diritto alla certificazione Microsoft Certified Technology Specialist (MCTS) e successivamente altri due di livello "PRO" per ottenere la certificazione Microsoft Certified Professional Developer (MCPD) su Windows e Web.

Sono inoltre disponibili gli upgrade per chi ha già una certificazione...


Nel dettaglio gli esami sono i seguenti:

  • Exam 70-511: TS: Windows Applications Development with Microsoft .NET Framework 4
  • Exam 70-515: TS: Web Applications Development with Microsoft .NET Framework 4
  • Exam 70-513: TS: Windows Communication Foundation Development with Microsoft .NET Framework 4
  • Exam 70-516: TS: Accessing Data with Microsoft .NET Framework 4
  • Exam 70-518: PRO: Designing and Developing Windows Applications Using Microsoft .NET Framework 4
  • Exam 70-519: PRO: Designing and Developing Web Applications Using Microsoft .NET Framework 4

...e adesso tutti a studiare e in bocca al lupo!

Chiudere il tag img con una regular expression in C#

datesabato 12 giugno 2010 alle 14.53  - posted by Manuel Scapolan in Tips and Tricks

Rispetto al vecchio html, il linguaggio xhtml richiede che tutti tag siano chiusi. Capita a volte utilizzando degli editor hml che questa regola non venga applicata alle immagini. Ecco allora come possiamo, attraverso una semplice regular expression, chiudere automaticamente il tag img:
Regex r = new Regex("<img [^>]*[^/](>)", RegexOptions.IgnoreCase);
source = r.Replace(source, new MatchEvaluator(
       m => m.ToString().Replace(m.Groups[1].ToString(), " />")));

Trim di un array di stringhe con una sola riga di codice

datevenerdì 4 giugno 2010 alle 22.32  - posted by Manuel Scapolan in C# | Tips and Tricks

L'altro giorno stavo cercando un modo veloce per eseguire il "Trim" degli elementi di un array di stringhe. Analizzando la classe Array mi sono imbattuto nel metodo Array.ForEach. Questo metodo sembrava proprio fare al caso mio, in quanto permette di eseguire una Action per ogni elemento dell'array, purtroppo però come il classico foreach non permette di modificare gli elementi dell'insieme che stiamo scorrendo.
Sicuro di trovare all'interno della classe Array la soluzione al mio problema ho continuato a cercare fino alla scoperta del metodo Array.ConvertAll. Questo metodo esegue la conversione di tipo fra array permettendo di specificare come parametro la funzione di conversione. Forse non l'ho utilizzato per il motivo per cui è stato sviluppato, ma in definitiva mi ha permesso di ottenere lo scopo con una sola riga di codice (04-05):
string[] myArray = new string[]{ " 23", " 45", " 67 "};
Array.ForEach<string>(myArray, s => Console.Write(s));
// risultato: 23 45 67
myArray = Array.ConvertAll<string, string>(myArray, 
             new Converter<string, string>(s => s.Trim()));
Array.ForEach<string>(myArray, s => Console.Write(s));
// risultato: 234567

tagsTags: ,

Mappare MonoRail su ASP.NET MVC 2.0

datevenerdì 14 maggio 2010 alle 18.57  - posted by Manuel Scapolan in ASP.NET

Nel mio viaggio da MonoRail ad ASP.NET MVC 2.0 mi è capitato di dover gestire una serie di link esterni che richiamavano pagine del sito sui quali non avevo controllo e che ovviamente utilizzavano l'estensione ".rails" tipica di MonoRail. Visto che i nomi di controller ed action erano rimasti comunque invariati ho pensato di utilizzare il sistema di routing di ASP.NET.

Una delle caratteristiche più interessanti del routing di ASP.NET è la possibilità di specificare dei constraint nella registrazione di una route attraverso implementazione di IRouteConstraint. Il ruolo del constraint è quello di definire la validità della regola per la richiesta corrente. Il primo passo da compiere sarà quindi quello di definire un constraint che ci permetta di escludere dai nostri routing le richieste con estensione ".rails". Qui sotto possiamo vedere nel dettaglio il codice:
public class NotContainsRouteConstraint : IRouteConstraint
{
  private string _value;
 
  public NotContainsRouteConstraint(string value)
  {
    _value = value;
  }
 
  public bool Match(HttpContextBase httpContext, 
                    Route route, 
                    string parameterName, 
                    RouteValueDictionary values, 
                    RouteDirection routeDirection)
  {
    var paramValue = values[parameterName].ToString();
    return !paramValue.Contains(_value);
  }
}

Nel metodo di registrazione delle regole di routing nel Global.asax aggiungiamo alle regola già configurate la constraint per le action che contengono la stringa ".rails" e definiamo una nuova regola che invece le consideri. Qui sotto possiamo vedere un esempio di configurazione, attenzione però che se abbiamo ulteriori regole dobbiamo valutare di volta in volta se aggiungere il constraint in base al fatto che queste regole eseguano il match con le chiamate alle pagine di MonoRail.

public static void RegisterRoutes(RouteCollection routes)
{
  routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
  routes.IgnoreRoute("favicon.ico");
 
  routes.MapRoute(
   "Default",
   "{controller}/{action}/{id}",
   new {controller="Home", action="Index", id=UrlParameter.Optional},
   new {action = new NotContainsRouteConstraint(".rails")}
  );
  routes.MapRoute(
   ".rails",
   "{controller}/{action}.rails",
   new {controller="Home", action="Index", id=UrlParameter.Optional}
  );
  routes.MapRoute(
   "Root",
   "",
   new {controller="Home", action="Index", id=UrlParameter.Optional}
  );
}

About me

manuel scapolanSono un consulente informatico. Nel 2004 terminati gli studi in Ingegneria Informatica (1° livello), ho iniziato come freelance collaborando con una ditta di consulenza informatica ed una agenzia di marketing e comunicazione nello sviluppo di applicazioni web. Attualmente divido il lavoro di sviluppatore e progettista web con attività di formazione nel settore della programmazione.
View Manuel Scapolan's profile on LinkedIn

Follow me on Follow manuelscapolan on Twitter

Calendario


<<  agosto 2010  >>
lumamegivesado
2627282930311
2345678
9101112131415
16171819202122
23242526272829
303112345

Disclaimer

Eccetto dove diversamente specificato, i contenuti di questo sito sono rilasciati mediante:
creative commons
Attribuzione: Non commerciale
Condividi allo stesso modo. R.2.5

Books (a bit more about my library)

Domain Driven Design - Eric Evans Applying Domain-Driven Design and Patterns - Jimmy Nilsson Refactoring to Patterns - Joshua Kerievsky Design Patterns -  Erich Gamma, Richard Helm, Ralph Johnson, John M. Vlissides Code Complete Second Edition - Steve McConnell Patterns of Enterprise Application Architecture - Martin Fowler Agile Principles, Patterns, and Practices in C# - Robert C. Martin xUnit Test Patterns - Gerard Meszaros Refactoring - Martin Fowler CLR via C# Second Edition - Jeffrey Richter Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries - Krzysztof Cwalina, Brad Abrams Don't make me think! - Steve Krug Bulletproof Ajax - Jeremy Keith

Manuel Scapolan Copyright © 2007 - 2010 - Tutti i diritti riservati - Powered by BlogEngine.NET 1.5.0.7 - silk icons by famfamfam - Time CET