Articles

Créer une page de recherche avec Vue.js et ASP.NET Web API

Image
A l'heure des frameworks front-end conventionnels comme Angular, Riot, Ember ou React, j’ai décidé de m’intéresser à Vue.js. Vue est un framework javascript développé par un ancien développeur de Google, Evan You, qui se veut accessible, versatile et performant.

Le principal avantage de Vue est à mon sens sa capacité d'intégration progressive dans une application existante. Il est également le projet ayant reçu le plus de "likes" sur GitHub en 2016 et 2017.

A titre de démonstration, voici un petit exemple d'un champ de recherche dynamique. Pour la partie back-end, j'ai créé une petite API REST à l'aide des ASP.NET Web API. Mais j'aurais tout aussi bien pu utiliser Node.js, SQLite et Express (voir mes précédents articles à ce sujet).
Création du back-end 1. Créez un nouveau projet de type "Empty MVC application" puis WebAPI dans Visual Studio 2010, 2013, 2015 ou 2017.

2. Implémentez les classes suivantes. Le code est très basique, je ne me s…

A script for rebuilding all table indexes in SQL Server

Image
For a DBAs maintaining multiple databases, monitoring the disk fragmentation and rebuilding the indexes for individual database is quite time consuming task. 
Rebuilding an index drops and re-creates the index. This removes fragmentation, reclaims disk space by compacting the pages based on the specified or existing fill factor setting, and reorders the index rows in contiguous pages.
Here is a script that will rebuild all the indexes for all the tables in your SQL Server database. This script can be used in a maintenance plan and can be executed in a scheduled job.

USE your database name here

DECLARE @TableName varchar(255)

DECLARE TableCursor CURSOR FOR

SELECT table_name FROM information_schema.tables

WHERE table_type = 'base table'


OPEN TableCursor


FETCH NEXT FROM TableCursor INTO @TableName

WHILE @@FETCH_STATUS = 0

BEGIN

DBCC DBREINDEX(@TableName,' ',90)

FETCH NEXT FROM TableCursor INTO @TableName

END


CLOSE TableCursor


DEALLOCATE TableCursor

GO

EXEC sp_upda…

Blockchain: Préparer son environnement de développement avec MultiChain

Image
Cet article n’a pas pour vocation de présenter une nouvelle fois les concepts de la blockchain, mais plutôt d’aborder cette technologie du point de vue du développeur.

Deux approches s’offrent à vous : utiliser un réseau de nœuds existants (Ethereum, Hyperledger, Azure BaaS) et y greffer vos transactions ou contrats, ou bâtir votre propre réseau. Cette seconde solution s’appliquera nettement mieux à un projet de blockchain privée. Car, rappelons-le, la blockchain est avant tout un système de stockage de données décentralisé, sécurisé et fonctionnant sans organe central de contrôle.

Pour mes propres expérimentations, j’ai choisi la plateforme MultiChain, qui offre le double avantage d’être Open Source et de proposer des API dans de nombreux langages de développement (Node.JS, C#, Python, Go). Son déploiement est également extrêmement simple (xcopy). La communauté est très active et offre un très bon support. La documentation est assez complète. Mais vous devrez maîtriser un minimum de…

Utiliser un certificat SSL Let's Encrypt sous IIS 8

Image
Vous l'aurez certainement remarqué, les navigateurs web deviennent chaque jour de plus en plus pointilleux avec les sites web qui ne supportent pas le protocole HTTPS.
Firefox a même commencé à marquer des avertissements sur les formulaires contenant des mots de passe et il ne faudra plus longtemps avant que Google ne fasse chuter le ranking de votre site web dans ses résultats de recherche si vous ne cryptez pas les communications de votre serveur.

Depuis longtemps les certificats SSL web étaient uniquement accessibles contre paiement. C’est dorénavant de l’histoire ancienne depuis décembre 2015, grâce à l’arrivée de l'initiative Let’s Encrypt.

Fondée par l'Internet Security Research Group (ISRG), une organisation d'intérêt public californienne, Let’s Encrypt a pour objectif de rendre le web plus sûr en fournissant gratuitement des certificats SSL à tous ceux qui en ont besoin. Elle prend la forme d’une Autorité de certificat ouverte, gratuite et automatisée. Elle es…

Tutorial - Votre premier projet .NET Core 1.1.1 sous Windows

Image
L'année dernière, j'avais écrit un article dans ce blog pour partager avec vous mes premiers pas avec le framework .NET Core sous Ubuntu. Depuis, j'avoue que j'avais un peu abandonné mes expérimentations pour me lancer dans l'apprentissage du langage Go et de Node.js.

Pendant ce temps, .NET Core a poursuivi son évolution grâce à la communauté Open Source. Avec la sortie de la version 1.1.1, j'ai décidé de me replonger dedans et je dois dire que j'ai été agréablement surpris.
Bien entendu, Visual Studio (désormais disponible en version 2017) reste l'environnement de choix pour développer en .NET.
Cependant, dans cet article, j'ai choisi d'utiliser le SDK en ligne de commande, d'une part parce que je peux ainsi travailler sous n'importe quel OS et d'autre part, parce que l'installation est ridiculement rapide et permet de se créer un environnement de test sans polluer son poste de travail ni devoir installer de machine virtuelle.

Démonstration d'une Blockchain

Image
Une excellente petite démonstration réalisée par  Anders Brownworth pour vous aider à mieux comprendre le fonctionnement d'une BlockChain. Pour la mettre en place, si vous avez déjà installé Git et Node.js sous Windows, ouvrez tout simplement un Command Prompt et tapez les commandes suivantes:

c:
cd\
cd projects

git clone https://github.com/anders94/blockchain-demo.git

cd blockchain-demo
npm install

cd bin

node www

Ouvrez ensuite votre navigateur préféré et surfez sur http://localhost:3000:



Très instructive également cette vidéo de Shai Rubin, CTO of Citi Innovation Lab:

ASP-NET: The URL-encoded form data is not valid

Image
In ASP.NET 4.x, there is an upper bound on the number of simultaneous HTTP form elements that may be posted. The default is 1000 without explicitly changing it with this key in the <appSettings> portion of the web.config:

<configuration>
  <appSettings>
    <add key="aspnet:MaxHttpCollectionKeys"
    value="2000" />
  </appSettings>
</configuration>

This patch was released by Microsoft in 2011 to prevent a Denial of Service vulnerability that involved an attacker overwhelming a request with too many keys (the science of which is beyond the remit of this question).


Here is the official statement from Microsoft:

This security update resolves one publicly disclosed vulnerability and three privately reported vulnerabilities in Microsoft .NET Framework. The most severe of these vulnerabilities could allow elevation of privilege if an unauthenticated attacker sends a specially crafted web request to the target site. An attacker who successfu…