[Profoundly Esoteric Image]

GarethJ's WebLog - OneNote API musings

Browse by Tags

Tagged Content List
  • Blog Post: VS2010 SP1: T4 Improvements Summary

    Over the last few posts, I've talked about the exciting improvements we've made to T4 Text Templating in Service Pack 1 for Visual Studio 2010. Here's a quick roundup: Firstly, T4 no longer locks referenced assemblies in memory , meaning it's much easier to use reflection in T4 templates and to use compiled...
  • Blog Post: VS2010 SP1: T4 Template Inheritance Part IV – Regular template inheritance

    I promised in the last post that I’d show how to do template extensibility and customization using inheritance with regular templates, rather than the preprocessed kind, so here goes. The preprocessed solution was a three-layer design. The base preprocessed template, DataClass.tt provided the code generation...
  • Blog Post: VS2010 SP1: T4 Template Inheritance Part III – Customizing The Template

    Last time, in Part II , I described a highly structured approach to creating and harnessing a preprocessed template to generate a simple C# class from metadata. I put lots of nice extensibility points in that template and now we’re going to exploit them to show how easy it gets to be to customize a template...
  • Blog Post: VS2010 SP1: T4 Template Inheritance Part II – The Core Template

      Last time , I outlined my scenario – we have a template that produces a very vanilla C# class from metadata and we’d like to customize it to produce something more directly applicable to our current project.  Of course, we could always just copy the standard template into our project and...
  • Blog Post: VS2010 SP1: T4 Template Inheritance Part I – Sample Metadata

    We’ve done a bunch of work on T4 in Visual Studio 2010 SP1 to enable template inheritance.  A reasonable question at this point would be “Why would you want inheritance in your text templates?” Well, the typical reason would be the same as with any other code – because you want reuse and extensibility...
  • Blog Post: Bending T4 to be a textual DSL host

    The estimable MVP and T4 enthusiast, Kathleen Dollard has a new post where she's using T4's ability to spit arbitrary text as a host for a textual DSL. She's set up a small DSL for describing contract interfaces for a MEF framework: new Interface() { Name = "ISearchModelBase" , Scope = Scope.Public,...
  • Blog Post: WPF, DSL in Visual Studio 2008

    Although data-binding to WPF is a feature of DSL Tools in Visual Studio 2010, that hasn’t stopped our vibrant community from hacking away to get results today with VS2008. Have a look at this selection of posts: Using WPF As The Designer Surface In DSL Tools Provide an improved user experience to your...
  • Blog Post: Nice step-by-step on adding a menu to DSL Tools 2008

    Sebastian Talamoni has a nice guide to adding a menu using a vsct file. Technorati Tags: DSL Tools , VSX
  • Blog Post: New DSL Tools lab

    Jean-Marc has just released a complete walkthrough of DSL Tools for Visual Studio 2008 aimed at DSL beginners as a lab on CodeGallery. Here you can see the language from the lab designing mouse gestures for manipulating primitives in a simple graphics program. Very nice indeed. Technorati Tags: DSL Tools...
  • Blog Post: DSL Book samples updated for Visual Studio 2008

    It's taken us a little while, but the code samples for our book, Domain-Specific Development with Visual Studio DSL Tools, are now updated for Visual Studio 2008. You can download them from www.domainspecificdevelopment.com . Woo Hoo. Enjoy. Technorati Tags: DSL Tools , Code Samples , VSX , Domain-Specific...
  • Blog Post: Tidbit for squeaking customization of DSL Add... menu items

    I've answered this a couple of times internally, so I thought I'd better post it. The Add... menus in DSL Designers are dynamically generated from the ElementMergeDirective data you supply as part of your model. For example, if you say that a domain class Door can be merged in to a domain class House...
  • Blog Post: Underexplored VSX Nuggets Vol #37: How a DSL Diagram is rendered

    This is an area I always have to remind myself of every time someone asks a question, so I thought I'd better write it up. Essentially there are four layers involved: Starting in the middle and working outwards, the classes' responsibilities are as follows: Diagram - This is the logical representation...
  • Blog Post: Transforming DSL Setup T4 templates from the command line

    With DSL Tools, we supply a tool called TextTransform.exe to run the T4 text templating engine from the command line. This is useful for creating batch builds or bulk transformation scripts. However, it needs a lot of parameters to get it to run, because it needs the context of where to load various...
  • Blog Post: How to take charge of DSL Tools swimlane ordering

    In a question on our forum , Michael Ruck asks: I have the following situation: A neural network consists of multiple layers (modelled using swimlanes.) There are three types of layers: Input, Hidden and Output layers. I'm basically done with the modelling, but want to restrict the order of these layers...
  • Blog Post: Using a non-string property as an element name

    By default, DSL Tools V1 uses domain properties of type "string" as names for its elements. If you try to use a property of some other type, for example Int32, you'll get the following validation message: "Error 1 Domain Property Name is marked IsName, but has type System.Int32. Unless it has an ElementNameProvider...
  • Blog Post: New samples posted for Domain Specific Languages Tools September CTP

    Alan has just posted a whole bunch of code customization samples to work against the September CTP of the DSL Tools.   These give you a flavour of a few things we'd expect our API to enable (although the API itself will change plenty before we ship V1).   To quote the blurb: Use this sample...
  • Blog Post: Breaking changes to T4 Text Templating in the September DSL Tools CTP

    We've made a couple of breaking changes to the interfaces exposed by our text templating engine in this CTP in the area of directive processors.   These won't affect regular DSL Tools users, as after going through the May-September migration process your code will just work.  (Note, all May CTP DSL...
  • Blog Post: Coopetition

    Both my colleague Alan Cameron Wills and Steven Kelly from our esteemed competitor MetaCase have announced a joint workshop at the XP2005 conference in the UK. It's pretty nice to be able to work together to discuss and promote the parts of our respective visions that we share. Still, just...
  • Blog Post: Heap sample: Wrapping up

    I thought I should wrap up my posts about the generic heap sample that I put together with a quick look through a few of the minor but interesting points it raised for me. CLS Compliance As the class has only generic interfaces, it can't be marked as CLS compliant, and also isn't visible to COM. If I...
  • Blog Post: Heap Sample: Conversion of enumeration code to use C# iterators

    When I started, I thought that this might be a hairy part of the problem, but it turned out to be trivial. My guess was based on the fact that my original IEnumerator implementation maintains a version stamp from the collection that it is enumerating. Any operation on the collection increments its version...
  • Blog Post: Delegate methods on the Heap class

    I shamelessly copied the delegate methods on my heap class from those on List . Delegate methods provide a step on the way towards enabling a separation in the collections programming model between structure and algorithm. You might express this as "what shape is a heap?" and "what operations can I perform...
  • Blog Post: Comparing ICollection and ICollection<T>

    When examining the ICollection<T> interface prior to implementing on my Heap class, I was quite surprised, as it had changed rather more than I'd expected from the original ICollection interface. Here they are for comparison: [System.Runtime.InteropServices.ComVisibleAttribute(false)] [System.CLSCompliantAttribute...
  • Blog Post: Heap Sample: Comparing the new collection classes with the old

    The first step in updating the Heap class to Heap<T> was to take a look at the new collections provided in Visual Studio 2005 Beta 1 to get an idea what the generic interfaces for collections look like. (The original Heap project was to implement a different collection type in a way as similar...
  • Blog Post: Modeling User Experiences, APIs and Tools

    Hi, I'm Gareth Jones and I'm a developer in the architect team within the Visual Studio Team System group. I'm currently working on tooling and APIs for modeling. Previously within Microsoft, I've worked in a bunch of different roles, from building bespoke enterprise applications to dev consulting for...
Page 1 of 1 (24 items)