Title Image

Don Xml's Grok This

The home of Don Demsak
Welcome to Don Xml's Grok This Sign in | Help
in Search

This Blog

Syndication

Site Sponsors

DonXml's All Things Techie

XML Tools I’d Like To See Built For Visual Studio.Net

While at this year’s XMLDevCon I came up with 2 VS.Net add-ins that I’d wanted to write and release as open source for .Net.  I was withholding the ideas figuring that I would find time to write them, but it has been a couple months and I haven’t even begun work on them.  So, I’ll publish them here, and hopefully someone else will help take up the gauntlet.

In .Net 2.0, XSLT will compile down to IL (and you can debug it in VS.Net).  The add-in I’d like to see is one that would let you compile your XSLT right into your .Net project and not need (a) separate XSLT file(s).  Yes, I know that you may not want this in all circumstances, but there are a lot of times that my XSLT is pretty much static.  I’ll pass in parameters, just like any XSLT, but isn’t a shame that I have to always treat XSLT like a resource file, and have to do all this compiling and caching on the fly.  Wouldn’t it be cool to just compile it into your project when you wanted it?  An extension of this idea would not to just include the IL in your project, but use something like Lutz Roeder’s Reflector to generate your favorite .Net language and make that part of your project (effectively making XSLT a code generation language within .Net).  Some things are just easier to write in XSLT.

The other add-in is really just an extension of the XSLT idea, and that is to do the same thing for XML Schema.  Why does the XML schemas always have to be a separate file, and dynamically “compiled” and used.  Actually, compiling XML Schema down to IL, and including it in a project would probably be used more often then someone would use the XSLT add-in.  And, if we use Reflector, you could even add some validation rules that couldn’t be done well in XML Schema (think Schematron).  I guess that would turn XML Schema into a code generation tool, but I don’t think that is so bad.

Published Thursday, December 16, 2004 6:49 PM by donxml
Filed under: ,

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

TrackBack said:

Some interesting finds this week and last week
December 18, 2004 7:54 AM

oleg@tkachenko.com (Oleg Tkachenko) said:

I'm also full of ideas on that matter, but... No time to start coding :(
December 19, 2004 5:59 AM

RichB said:

The new C++ linker can link IL from multiple netmodules into an assembly - that's how you can added .vb, .cs and .cpp files into a Visual C++ project.
If Microsoft have made it possible to obtain the IL direct from the compiled XSLT, then it may be possible to link it into an assembly too.
December 19, 2004 11:05 PM

Leave a Comment

(required) 
(optional)
(required) 
Submit

About donxml

I’m an independent consultant, specializing in .Net solutions architecture, based out of New Jersey who also doubles as an evangelist for XML, Domain Driven Design, enterprise architecture and .Net. I do not work for Microsoft, the W3C or any other big company that you may know of (at least not yet). I’ve been an indie for over ten years, and although I’ve been tempted a couple times to take a job with companies like Microsoft, I’ve haven’t found something better than my current situation. I work mostly with the large pharmaceuticals that are based here in New Jersey, and usually find myself on long term contracts. Definitely not the prototypical indie consultant, but it lets me dedicate time to my non-income generating activities like the developer community stuff, plus financing open source projects like XPathmania and MVP-XML. If you would like to talk to me about doing some contract work, just contact me via the contact page. My rates vary widely, depending on lots of different variables, but mostly distance from Jersey, and type of work. Plus, I’ve been known to donate some of my code for various projects.
Powered by Community Server, by Telligent Systems