Utiliser scriptcs et C# pour analyser le contenu d’une URL en .NET

Si vous me demandiez de choisir un défaut et de vous en parler, je choisirais certainement ma mémoire. Il y a des gens, comme ma conjointe, qui est capable de souvenir de recettes ou de la liste d’épicerie par coeur.

Moi, c’est le contraire.

Je n’ai pas une très bonne mémoire. Afin de pallier à ceci, je prends des notes et je m’invente des mécanismes pour me souvenir de détails. Après tout, une bonne partie de mon travail réside sur ma capacité à me remémorer ces détails et de mettre en place une solution basée sur ces détails.

Ceci étant dit, je suis très visuel. Comme dirait l’autre: on ne veut pas le savoir, on veut le voir!

Chaque fois que je dois manipuler une URL dans l’un de mes projets, j’ai toujours un trou de mémoire sur quelle propriété à utiliser pour mes fins. Certes, je sais faire la distinction entre Uri.DnsSafeHost et Uri.Scheme. Cependant, j’aime toujours avoir la certitude que ce que j’utilise est bien ce dont j’ai besoin.

La documentation MSDN sur les propriétés de la classe Uri répond au besoin. Ce n’est pas le point. Il s’avère juste que je suis un peu paresseux. Alors, qui dit développeur paresseux dit automatisation possible. C’est ainsi que je suis arrivé avec l’idée d’un script scriptcs qui exposerait les propriétés de la classe Uri pour une URL donnée.

Je suis un génie comme dirait l’autre. En même temps, c’est assez maigre comme concept. Peu importe, je le trouve bien utile!

Le code


using System;
var uri = new Uri(Env.ScriptArgs[0]);
Console.WriteLine("AbsolutePath – " + uri.AbsolutePath);
Console.WriteLine("AbsoluteUri – " + uri.AbsoluteUri);
Console.WriteLine("Authority – " + uri.Authority);
Console.WriteLine("DnsSafeHost – " + uri.DnsSafeHost);
Console.WriteLine("Fragment – " + uri.Fragment);
Console.WriteLine("Host – " + uri.Host);
Console.WriteLine("HostNameType – " + uri.HostNameType);
Console.WriteLine("IsAbsoluteUri – " + uri.IsAbsoluteUri);
Console.WriteLine("IsDefaultPort – " + uri.IsDefaultPort);
Console.WriteLine("IsFile – " + uri.IsFile);
Console.WriteLine("IsLoopback – " + uri.IsLoopback);
Console.WriteLine("IsUnc – " + uri.IsUnc);
Console.WriteLine("LocalPath – " + uri.LocalPath);
Console.WriteLine("PathAndQuery – " + uri.PathAndQuery);
Console.WriteLine("Port – " + uri.Port);
Console.WriteLine("Query – " + uri.Query);
Console.WriteLine("Scheme – " + uri.Scheme);
foreach(var segment in uri.Segments)
{
Console.WriteLine("Segment – " + segment);
}
Console.WriteLine("UserInfo – " + uri.UserInfo);
Console.ReadKey();

view raw

uri.cs

hosted with ❤ by GitHub

Trente lignes en incluant les lignes vides. Enregistrez le contenu sous un nom de fichier ayant l’extension .csx (c’est l’extension de scripts scriptcs).

Exécutez le script en utilisant la commande suivante: uri.csx — https://frenchcoding.com/2015/03/09/les-liens-de-la-semaine-edition-122/ et le tour est joué!

uri

Les liens de la semaine – Édition #122

Développement

.NET

Technologie

Web

Science et autres

ASP.NET 5, trois essentiels à savoir

asplogo-square[1]ASP.NET 5 est à nos portes. Cette nouvelle version d’ASP.NET est un événement majeur pour les développeurs .NET. Elle signifie énormément pour Microsoft, car elle implique un changement majeur de la mentalité liée aux outils de développement. Le marché met énormément de pression sur Microsoft pour ouvrir ses méthodes et pratiques de développement.

Alors que le cloud est sur toutes les lèvres. Vous vous imaginez qu’il devient impératif pour Microsoft de faire en sorte qu’il soit de plus en plus facile et accessible de développer avec .NET et de l’héberger dans votre nuage de préférence. Il s’agit d’une question de survie pour Microsoft.

Comment fait-on pour assurer une présence dominante pour ASP.NET pour l’avenir? Il y a trois facteurs que j’ai retenus. Ce sont les trois éléments qui ne sont pas techniques et qui vont faire en sorte que, à mon avis, Microsoft va pouvoir sortir gagnant de cette petite révolution.

Open Source

Pendant longtemps Microsoft a tout fait pour éviter d’avoir à inclure un projet open source dans ses développements ASP.NET. Cela a duré jusqu’à la venue d’ASP.NET MVC en 2009. Lentement la tendance vers l’open source s’est définie.

Un exemple de cela est le passage de Ajax Control Toolkit à l’Unobtrusive Client Validation qui utilise jQuery. Pour moi, cela avait été un changement révélateur. C’était l’admission qu’un projet open source, reconnu et prouvé, pouvait être endossé par Microsoft.

Comme l’expression le dit: if you can’t beat them, join them.

Le plus éloquent est à cette adresse web: https://github.com/aspnet. Il s’agit de la page d’accueil des librairies que compose ASP.NET. Certaines librairies étaient déjà ouvertes depuis déjà un petit moment (ex.: ASP.NET MVC). Dorénavant, il s’agit de la totalité de ce qui compose ASP.NET qui est open source. Cela c’est sans oublier ce qui est encadré par la .NET Foundation (.NET Core et Roslyn, notamment).

Concept entièrement revu

Depuis les premières versions alpha, j’ai suivi l’évolution des changements et les présentations des nouvelles fonctionnalités d’ASP.NET 5. Je peux affirmer qu’il s’agit d’une nouvelle approche entièrement. Un bon point de départ pour constater cela est d’écouter les ASP.NET 5 Community Standup. Chaque semaine, l’équipe de développement d’ASP.NET présente des nouvelles fonctionnalités en cours de développement.

Autrement, imaginez-vous votre maison. Vous quittez le vendredi pour des vacances. Vous revenez le dimanche et une équipe de rénovation a refait l’intérieur et la décoration à l’intérieur. Certes, c’est la même maison. Cependant, il va vous falloir un peu de temps à vous y retrouver en raison des changements.

Si vous êtes plus du genre à le voir pour le croire, jeter un coup d’oeil à la page d’accueil d’ASP.NET 5 chez Microsoft. En particulier l’article présentant la création d’un Web API et celui présentant la création de View components. Ce dernier lien est une nouvelle fonctionnalité propre à ASP.NET 5.

Comme je disais, c’est pareil et totalement différent en même temps.

Faire du .NET sur Linux et Mac

Tant qu’à refaire la décoration et rénover la maison, pourquoi ne pas y ajouter un étage pour y loger des membres de la famille étendue? C’est l’image que je me suis donnée pour l’idée qu’il est maintenant possible de développer du .NET sur un Mac ou sur Linux.

Vous avez bien lu. Il est maintenant possible et entièrement supporté par Microsoft de faire le développement d’une application web ASP.NET sur Linux. Vous m’auriez traité d’extra-terrestre si je vous avais écrit cette même phrase contenant Microsoft et Linux avant 2010 alors qu’aujourd’hui c’est une réalité.

Plus encore

ASP.NET 5 c’est beaucoup plus que ce qui a été écrit dans ce billet. C’est ce qui rend, à mon avis, cette version excitante.

Pour en savoir plus sur ce qui va arrive à ASP.NET et .NET au sens large dans les prochains mois, je vous recommande vivement d’aller lire l’introduction d’ASP.NET 5 par Scott Guthrie. Il n’y a pas meilleur résumé des fonctionnalités qui seront introduites par cette nouvelle version.

Êtes-vous excité? C’est une belle époque pour être développeur .NET. Je le dis souvent ces temps-ci.

Les liens de la semaine – Édition #121

Développement

.NET

ASP.NET 5

Une grosse semaine pour ASP.NET 5!

Technologie

Web

Science et autres