Some time ago the Application Insights became available as a preview in the Azure portal. Application Insights helps you monitor the state of an application, server, clients, etc. As said, it’s still in preview, but it’s rather stable and very easy to use and implement in your applications.
The documentation is still being worked on, but with all the getting started guides on the Microsoft site you can kick start your project with it in a couple of minutes.

This is something which has been available in the .NET Framework since, well, forever. I’m talking about encrypting data in the config file of your (web)application. Every time I studied for the Microsoft developer exams I was reminded on this feature and thought “Hey, I really should use this in the next project”. Up until now I’ve never used this feature though.

Vandaag was ik weer eens bezig met het ontwikkelen van een website. Nu wilde ik op deze website graag per pagina de omschrijving en keywords opgeven. Een van de redenen hiervoor is omdat de zoekmachines dit leuker vinden en je zo ook per pagina aan kunt geven wat er op te lezen valt. Om nou niet op iedere pagina dezelfde functie te hoeven implementeren en ik liever niet een BasePage wil gebruiken, aangezien ik al met een Masterpage werk, zocht ik een alternatief. Het mooiste zou zijn om in de masterpage een functie te maken en die vanuit alle child pagina's aan te kunnen roepen. Na even zoeken hoe ik dit kon bewerkstelligen heb ik het antwoord gevonden. Als eerste moet je een methode in je masterpage declareren, ik heb deze public gemaakt, maar ik denk dat protected of internal ook wel zal werken. Zodra dit is gedaan kun de functie vanuit een child pagina aanroepen door de masterpage te casten naar de master-klasse. Dit kan als volgt:
Presentation.Master.JanV ma = this.Master as Presentation.Master.JanV;
Nu kun je met de ma variabele alle methoden en attributen aanroepen die in de masterpage zijn gedefinieerd, bijvoorbeeld als volgt:
ma.SetMetaTags("Description", paginaItem.Omschrijving);
Ter verduidelijking, de methode SetMetaTags heb ik zelf gemaakt in de masterpage. Op deze manier kun je redelijk eenvoudig basis methoden maken zonder gebruik te maken van een tussenpagina waarvan je moet overerven. In mijn geval worden nu extra meta-tags geplaatst, maar je kunt dus ook andere CSS-bestanden plaatsen of een methode in je masterpage plaatsen die (bijna) iedere childpagina gebruikt.

Bij het maken van websites is het belangrijk om op iedere pagina je keywords en description goed in te vullen. Wanneer je dit niet doet, dan kun je straffen krijgen van zoekmachines en dus een lagere ranking krijgen. Momenteel ben ik weer bezig met het maken van verschillende websites, dus wilde ik ook gelijk de meta tags per pagina kunnen invullen. Hoe dit via normale HTML gaat is mij reeds bekend, maar ik wist nog niet hoe het via de code-behind moest in C#. Na een korte zoektocht op Google is mij duidelijk hoe je meta-tags kunt aanmaken. Zelf maak ik gebruik van masterpages. Deze hebben standaard een zogenaamde ContentPlaceHolder in de head en de body van de pagina. Voor het invullen van meta-tags moet er gebruik worden gemaakt van de placeholder welke in de head staat gedefinieerd. In C# kun je gebruik maken van de HtmlMeta. Deze klasse zorgt ervoor dat een meta-tag in de juiste vorm op de pagina verschijnt. Het enige wat je hier aan hoeft mee te geven is de Name en de Content, zodra dat is gedaan kun je de klasse toevoegen aan je placeholder. In mijn geval ziet de code er ongeveer als volgt uit
HtmlMeta hm = new HtmlMeta(); hm.Name = name; hm.Content = content; HeaderPlaceholder.Controls.Add(hm);
Met 4 regels code kun je er dus voor zorgen dat je meta-tags dynamisch worden aangemaakt en je automatisch ook een hogere (of in ieder geval geen lagere) ranking krijgt in de zoekmachines.