Tuesday, June 12, 2007 - Posts
If you're into extending Visual Studio then there are good news for you.
Grigori Melnik, Product Manager for GAX/GAT from Microsoft p&p, has announced there will be a compatible version that runs on Orcas pretty soon.
The announcement at TechEd 07 seems to have been received well by the blogsphere. For example
Pablo
is
saying
“WOW... finally extending Visual Studio will be much easier…”.
I’ve to admit, I don’t find this near that exciting, sorry.
We have had Visual Studio PPE edition before. And we already had an idea of what can be done with the “shell”; basically if you’ve installed Team Explorer in a box without Visual Studio on it you’ve already experience “the shell”.
So, Victor, what’s really new here? Thanks for asking!
In my opinion the most important thing to notice is that they have now removed the “expensive” part; it is nothing but great news to find out that you will be able to distribute royalty-free the “shell’ with your custom extension.
But the “obscure” it still there. There is nothing new regarding helping you writing these extensions in order for you to have something at all that you could ship royalty free at the end of the day.
So, how many people will actually take immediate advantage of this? Those who are *already* experienced enough to write their own extensions and couldn’t afford a non-royalty free license before. Take a pen and a very small piece of paper and that should be enough to write down all their names.
Overall, I’m happy as this is still a good move, but there is much more work to be done (which can be read too as: I’m not happy as I could be…)
I would really kill to see news in the direction of putting some light into the “obscure”.
What is the hardcore way of extending Visual Studio: VSIP.
And what are the first things that come to mind when you think of “VSIP”: expensive and obscure. Expensive because it used to be 10k/year and obscure because its COM roots and it’s very poor (close to inexistent) documentation.
You tell me how do you build a huge community around expensive and obscure? You just simple can’t. I believe the past years were more than enough to prove this.
So, someone at Microsoft realized about this fact and VSX was created. A new name is always a good thing; better yet if it is a TLA and begins or ends with ‘X’, you can hardly beat that
J
What VSX is about (besides the cool name)? The official word won’t tell much but this is what I’m noticing: new useful samples in the VSSDK using managed code and improved documentation (or at least, part of it). The samples source code is still a good place where to find code comments that will give you much more information than what the docs will tell you.
Can you build a community around VSX? Although this is surely an improvement over expensive and obscure, IMO, this is still not enough.
Why?
Because all of the “obscure” it’s still there. Because you still need to mess with COM interfaces all the time and the versioning craziness like “IVsComponentEnumeratorFactory3” and native structures and enumerations that were coded when naming like “__VSMEPROPID2.
VSMEPROPID_LAST2
” made any sense. Let alone the VBisms you can find in today’s DTE automation layer (like indexes starting at 1 instead of 0, etc). Also, I don’t want 45 different and incompatible ways of doing the same thing.
It is 2007 now. I want a nice and clean OO framework that I could proudly look at without my eyes being hurt and that I can confidently build upon it.
Enough criticism now and let’s add some constructiveness to this post.
What needs to be done?
1)
Ideally: give me a new and fully managed IDE. Get your internal teams to rewrite their packages against this new IDE. Get your partners up to speed too. Even if you need to name this thing “Visual Studio 2011” I’m still fine with it.
Or
2)
Give me a Visual Studio Framework (think of MPF on steroids). This framework should totally abstract me from the fact of knowing what’s going on at the metal level. Not a single trace of COM or VB automation, just clean and simple OO code I could code against.
I can’t really see a huge Visual Studio community taking off and growing exponentially without either 1) or 2) in place.
Back in 2001 I used to know the ASP.NET bits from top to bottom getting to its internal (thanks Reflector!) to a very down-to-the-metal level. I could recite the page lifecycle from top of my head, tell you what you may being doing wrong regarding it without actually looking at your code (my 4000+ posts answering questions at the newsgroups are a living testimony of this) and I also contributed to the ASP.Net team with lots and lots of bug reports, besides writing a couple of articles for different ASP.NET topics in MSDN and having co-authored two books too. We can say I was breathing ASP.Net at that time and for the next couple following years.
Now, in 2007, as some of you may already know I’ve been working -silently I should say, as my blogging activity pretty much sucked- almost exclusively extending Visual Studio for the last 3+ years.
What follow are a few paragraphs of how I feel about this (yes, this is the point where you can stop reading!).
Visual Studio is a tool I love to use.
It’s has been enhanced over the years with new features you could really feel.
As a small sample of this there is IntelliSense all over the place: code editor, watch window, immediate window, and the terrific work done by the ASP.Net team on editing HTML pages that can be mixed with C# or VB while retaining the same experience as if you were editing a plain C# or VB code file.
Visual Studio is a tool I hate to extend.
Due to its original architecture and its need to support lots of legacy code there isn’t yet a clean and nice managed approach to extend it. Lately (and thanks heaven!) there have been lots of moves that seem oriented to make this change a reality: VSX, Shell, etc. I’ll talk about these in separate posts.
That said, I’m still very happy and enjoying my daily work. Why? Because I love challenges.
And let me tell you -in case you still didn’t know- extending Visual Studio is a hell of a new challenge each day!!