Question

Nous envisageons boîte à outils Microsoft DSL pour créer certains concepteurs abstraits. Je l'ai déjà fait quelques POC, mais je voudrais obtenir quelques opinions sur le même.

Toute personne ici pour partager leurs expériences de travail avec Microsoft DSL Toolkit et T4? En outre, tous les pointeurs pour ouvrir des projets DSL source contribueront - par exemple. édition de modélisation Microsoft Factory Service est se basant essentiellement sur boîte à outils DSL.

OSLO / Quadrant prendra un certain temps pour obtenir leur libération, je pense que la seule option que nous avons est de compter sur Microsoft concepteur DSL. ( Voir le blog de Kieth sur la même )

En outre, voici quelques informations dont je dispose déjà sur DSL:

1 - A Nice Lab dans MSDN sur les outils DSL

2 - Une liste des projets à l'aide Codeplex boîte à outils DSL

Était-ce utile?

La solution

Nous avons accompli un travail considérable avec les DSLs et un certain nombre d'entre eux dans la maison et à l'utilisation de consultant basé client, mais il n'a pas moi qui a fait le plus travailler avec eux. Une fois que vous avez repassé la modélisation (pas un petit exploit) Je dirais que ce sont de grands outils.

Je ne peux pas vous pointer des projets open source unfortuanetly, et je vais ajouter que l'investissement dans l'obtention d'un DSL non trivial et en cours d'exécution avec est assez grand, si vous les avez droit alors le gain de productivité est impressionnante.

modifier - après une expérience de quelques années, je fais les observations suivantes :

  1. Les VS ont DSLs mauvaise performance visuelle de grands diagrammes, vous devez plier les éléments du modèle loin (cacher / montrer)
  2. grands diagrammes avec de nombreuses lignes d'interconnexion sont difficiles à naviguer (mises en page sont difficiles)
  3. Les grands modèles jouent bien pour le code gen etc, avec le temps sur la plupart désérialisation (comme prévu)
  4. Comparaison des modèles est difficile en raison du grand nombre de GUIDs
  5. Une bonne expérience de développeur nécessite beaucoup de développement à partir des propriétés de la zone des boîtes de dialogue.
  6. Les modèles peuvent être cryptés pour protéger la propriété intellectuelle, ce qui rend extrêmement difficile une comparaison ultérieure (mais cela est vrai pour tous les fichiers cryptés.)

Autres conseils

Je l'ai regardé l'utilisation de la boîte à outils DSL studio visuel. En fin de compte, j'ai trouvé ces outils pour être loin de constriction. Exiger une interface graphique, sans capacité de décrire facilement une grammaire textuelle sous-jacente, tout semble insuffisant pour moi. Je requiers la possibilité d'utiliser facilement le DSL sans interface graphique.

Oslo semble aller dans une direction très étrange, le stockage de toutes les métadonnées pour la DSL dans un DB SQL. Ce me semble étrangère, et peut certainement ralentir les choses, surtout si vous voulez l'intégration IDE rapide. Il est vrai que je ne l'ai pas regardé profondément en elle, donc il peut être mieux que mon impression de celui-ci.

En aparté, j'ai récemment mis en place un DSL en utilisant Antlr . Vous pouvez trouver mon poste en réponse à une question sur le SO à son sujet ici

En plus de ce qui précède, le NORMA outil pour objet -role la modélisation est construit sur les outils DSL. Il est un exemple très sophistiqué de ce qui peut être fait avec eux, et illustre l'utilisation XML Transforme pour la transformation de modèle et la génération de code.

je suis certainement un preneur de sérieux. Ive a récemment fait un dsl modèle orderprocesses pour une orderingsystem. Nous utilisons un windowsservice que qui se connecte à différents webservices sur la base duquel processtatus une ligne spécifique a et modifie l'état en fonction du résultat (Next, erreur, refus). Il était très chronophage pour éditer cette table db-manuellement, donc je fait une langue et des générateurs pour le code sql.

Je dois vérifier si je suis autorisé à poster un code du projet mais je poster la structure DB afin que vous puissiez comprendre pourquoi ESt dur faire modifier que manuellement. Je dois mettre des données pour aprox. 10 orderprocesses avec les étapes chacune avec 5-20 actions et tout (ProcessActionId est un refrence à un webservice).

CREATE TABLE [dbo].[OrderProcessStep](
    [OrderProcessCode] [int] NOT NULL,
    [PreviousProcessStatusCode] [int] NOT NULL,
    [NextProcessStatusCode] [int] NULL,
    [DenialProcessStatusCode] [int] NULL,
    [ErrorProcessStatusCode] [int] NULL,
    [ProcessActionId] [int] NULL,
    [StepComment] [varchar](500) NOT NULL,
    [SecondsToNext] [int] NULL,
    [SecondsToError] [int] NULL,
    [SecondsToDenial] [int] NULL,
 CONSTRAINT [PK_OrderProcess] PRIMARY KEY CLUSTERED 
(
    [OrderProcessCode] ASC,
    [PreviousProcessStatusCode] ASC
)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top