Les applications Silverlight peuvent être écrites dans n’importe quel langage de programmation Microsoft .NET. De même, n’importe quel outil de développement qui peut être utilisé avec les langages .NET peut fonctionner avec Silverlight, dû au fait qu’il pourra cibler directement le noyau CLR de Silverlight, à la place du CLR .NET.
Les versions 2.0 et 2.5 de Microsoft Expression Blend ont été pensées pour la conception des UI des applications Silverlight 1.0 et 2.0 respectivement. Visual Studio 2008 peut être utilisé pour développer et déboguer les applications Silverlight. Mais il faudra pour cela installer préalablement « The Silverlight tools for Visual Studio ». Les application Silverlight 3.0 sont programmables avec Visual Studio 2008 moyennant l’installation du toolkit correspondant. Pour la partie visuelle, Expression Blend en version 3.0 est nécessaire.
Un projet Web Silverlight contient d’une part le projet purement Silverlight ainsi qu’un projet ASP.NET exposant l’application dans une page ASPX ainsi qu’une page HTML (au développeur de choisir la version à utiliser). Pour fonctionner les fichiers Silverlight.js et CreateSilverlight.js sont fournis. Ils permettent l’initialisation du plugin Silverlight pour l’utilisation dans des pages HTML. Un composant permettant d’effectuer ces mêmes fonctions directement existe en mode ASP.NET. Il ne s’agit que d’un des modes possibles. Le plus simple étant la génération d’un fichier exécutable Silverlight (extension « .xap », un format ZIP renommé) qui peut être intégré dans une page HTML ou ASP.NET. Que cela soit Visual Studio ou Expression Blend, les outils de développement Silverlight génèrent automatiquement les deux types d’approche. Un projet Silverlight est typiquement constitué de fichier XAML pour l’interface utilisateur (UI) et de fichiers de code pour le code applicatif. Les applications Silverlight sont déboguées de la même manière que les applications .NET. Le « Remote Cross Plattform Debugging » du CLR de Visual Studio peut être utilisé pour déboguer les applications Silverlight tournant sur différentes plates-formes.
Silverlight a été critiquée comme technologie parce qu’elle a été faite par Microsoft et car elle n’inclut ni Linux ni BSD dans son offre officielle. Même si Microsoft collabore sur le projet Moonlight, Bruce Chizen, ancien PDG d’Adobe Systems a rappelé l’obligation de Microsoft de garder la plate-forme Silverlight compatible avec les autres OS en plus de Windows. Ses craintes se basent sur des exemples passés : Microsoft a promis plusieurs fois de développer des produits compatibles avec de nombreuses plates-formes, sans jamais le faire en réalité.
Le Comité Européen pour les systèmes interopérables craint qu’avec Silverlight, Microsoft cherche à introduire sur le web du contenu qui serait uniquement accessible sur la plate-forme Windows. Ils précisent que l’utilisation du XAML dans Silverlight est positionné pour remplacer la plate-forme croisée HTML standard.
Microsoft a également été critiqué (comme Adobe d’ailleurs) pour ne pas avoir utilisé le standard Scalable Vector Graphics (SVG) dans Silverlight, ce qui, selon Ryan Paul d’Ars Technica, relève du refus de Microsoft d’utiliser des standards Open Source dans ses produits.
Cependant, selon David Betz, un spécialiste indépendant des technologies .NET, Microsoft aurait eu besoin de modifier la spécification SVG pour intégrer le .NET et les constructions de l’UI au-dessus de la couche SVG pour la rendre appropriée pour les scénarios que Silverlight utilise. Par conséquent, l’utilisation du XAML aurait servi à préserver le standard SVG de l’ajout d’une technologie propriétaire pour l’étendre. Il a ajouté que Silverlight peut être vu comme une extension de WPF, une technologie .NET 3.0, et non seulement comme une nouvelle technologie web. La convergence de plus en plus grande entre Silverlight et WPF aujourd’hui oblige à reconnaître la justesse de cette vue.