Comment intégrer d3.js graphique en application en C#?
Je suis un grand fan de Mike Bostock de l'd3.js le graphique de la bibliothèque: d3js.org.
Je voudrais l'utiliser pour afficher des graphiques en C# .Net application, mais je ne sais pas si c'est possible.
Il peut être possible par la génération de HTML+JS codes et rendu dans un webbrowser fenêtre.
Cependant, j'ai compris d3.js la bibliothèque ne peut pas être utilisé localement, sans un serveur web (Cependant je n'ai pas compris ce qui fonctionne sans serveur et ce que nécessite un serveur web), donc une solution simple ne fonctionne pas.
Personne n'a essayé de développer ce genre de déploiement de d3.js les graphiques?
Avez-vous une idée sur où commencer, afin d'avoir la solution la plus simple?
- Meilleur devine ce que je peux dire, ont un node.js serveur local et de se moquer du navigateur web dépendances de sa bibliothèque, de sorte qu'il peut générer du svg et ensuite votre C# demande le svg et d'utiliser quelque chose comme ceci harriyott.com/2008/05/converting-svg-images-to-png-in-c.aspx pour activer le SVG en quelque chose que winforms peut rendre. alternativement, vous pouvez également être en mesure d'utiliser quelque chose comme sourceforge.net/p/netsvgtogdi/home/Home mais je pense que vous serez SOL concernant l'exécution de javascript dans .net, le meilleur pari serait un nœud local serveur de cracher à svg sur le disque.
- À la différence des sites de forum, nous n'utilisons pas de "Merci", ou "Toute aide appréciée", ou des signatures sur Stack Overflow. Voir "Doit 'Bonjour', 'merci,' slogans, et les salutations être supprimé de postes?.
Vous devez vous connecter pour publier un commentaire.
Un serveur web n'est certainement pas nécessaire d'utiliser une bibliothèque JavaScript côté client comme d3.js.
Pour C#, vous aurez besoin d'incorporer un contrôle de navigateur web (dans les deux WindowsForms ou WPF).
Vous aurez besoin pour vous assurer que le navigateur fonctionne en mode Normes IE9, comme indiqué ici.
Créer vos pages web comme vous le feriez normalement. Naviguer à l'aide de la webbrowser.naviguer (comme simplement des fichiers sur le système de fichiers.)
Cela devrait fonctionner.
Necromancing.
Vous pouvez le faire avec C# et .NET-de Base sur tous les systèmes d'exploitation à l'aide de nodeJS.
Absolument aucun navigateur de contrôle requis.
Il suffit d'installer JavaScript-Les Services De avec nuget, puis installer d3, jsdom et svg2png en nodejs:
puis dans Démarrage.cs, ajoutez NodeServices dans ConfigureServices
Ajouter une sortie gestionnaire:
Puis ajouter le JavaScript
Qui devrait vous donner une le nécessaire d3-graphique sans avoir besoin d'un svg-navigateur compatible.
Vous pourriez avoir besoin de mettre à jour mnp avant que vous pouvez (avec succès) installer un nodeJS modules.
Vous pouvez aussi faire cela dans une application de ligne de commande, juste que vous avez besoin pour configurer votre propre DI contrainer.
Était à la recherche pour la même solution et je suis tombé sur edge.js. Il peut être exécuté à partir de n'importe quel .NET 4.5 application et installé via Nuget. Il ne nécessite pas node.js installé, mais vous aurez besoin de nœud pour installer D3 à l'aide de MNP. Assurez-vous que
package-lock.json
et lanode_modules
dossier est dans le même répertoire que leedge.js
fichier lors de l'exécution, ou installé à l'échelle mondiale.J'ai juste couru
npm i d3-array
de l'intérieur de la\edge
dossier, puis inclus l' *.json et *.js fichiers, les mettre à contenu et le copier vers le répertoire de sortie. Ensuite ses aussi simple que:Sorties:
D3 says: 1
REMARQUE: Dans .Net7.2 j'ai dû installer le
Edge.Js.Binaries
NuGet package pour installer le bord de dossier dans la racine du projet. LeEdge.Js
paquet n'a pas fait cela, en 4.5 il n'.