Developing extension packages for Visual Studio 2005/2008/2010/2012 using C# with real-life samples. PART N3.
This article deals with creation, utilization and handling of Visual Studio commands in its extension modules through automation object model APIs and IDE services. The relations between IDE commands and environment UI elements, such as user menus and toolbars, will also be examined.
While I'm sure that you've put a lot of work into it and that it might be a good read for the right audience, the key to getting people's attention is having a good headline. People demand a good, concise and descriptive headline these days.
The headline for this submission could definitely use some improvements.
The headline “Visual Studio commands” suggests an article containing such nuggets of wisdom as “You can press F5 to compile and run your program”. It fails to communicate what the article is actually about.
>Assigning handlers to the commands defined in a VSCT file is possible through a global service that is available through the IMenuCommandService
Good high level overview, but the above quoted section is incorrect. IMenuCommandService is not a global service, in fact it is somewhat of a faux service as it is available only inside MPF derived types (WindowPane and Package) and each derived type gets its own, isolated instance. It is not how VS itself "does" commands, but rather bus convienence introduced by MPF. You can also assign handlers for commands defined by others (or the shell) in the same way, but package level handlers will only be invoked for the package that defined them.
I'm just going on my gut here, but it's doubtful that many startups are using the MS stack. It's not for lack of a good IDE, community, or even language features. It simply comes down to cost.
There are a myriad of free or low cost alternatives that make the MS stack seem monolithic and unusable.
Hell, I work for a company that had been using a MS product for years. We recently switched to PHP, and are likely to use Flask or Django and PostgreSQL for our next product.
That's what http://www.microsoft.com/bizspark/about/ is for. Free software licenses for 3 years. The catch is that you'll be then tied to the Microsoft platform. And afterwards you'll have the privileged of paying for licenses.
And really for an established company it's not that expensive. Except for SQL Server Enterprise. They like to rob you blind on "Enterprise" licenses (which is what you need for the useful High Availability features).
We did the BizSpark program and loved it. In fact, our 3 year period is almost up. I don't get why people think you end up stuck with having to buy a bunch of licenses. Azure has basically changed all that now. Just like any other cloud platform, you pay for what you use. Except in this case you get IIS, SQL Server and many other enterprise level services.
In case anyone was curious, here is the email they send you at the end of the program.
"Your graduation from the Microsoft BizSpark program is just one month away!
The great news is that you can complete the graduation process in just three simple steps:
Answer a few questions.
Give us a little feedback.
Get your licenses.
The entire process takes just minutes. Since there are both business and technical questions, however, we do recommend both the CTO and the CEO take the time to go through the process together.
If you complete the graduation process by your graduation date, you may keep and continue to use all the software you received as part of your BizSpark MSDN Subscription for development and testing purposes. If your startup has servers in production, you will have perpetual rights to your Windows and SQL Server software solution production licenses. And, we have removed the $100 exit fee for the BizSpark program."
It used to be the case that you had to either pay for the licenses or pay a $100 'exit fee'. I was under that impression still, but it must've changed recently?
I guess Microsoft's idea is that if your company does graduate after three years, it's bound to buy upgrades and/or new licenses for the development tools somewhere in the near future. So the actual revenue is deferred to make the offer more attractive.
14 comments
[ 1.7 ms ] story [ 53.0 ms ] threadThis article deals with creation, utilization and handling of Visual Studio commands in its extension modules through automation object model APIs and IDE services. The relations between IDE commands and environment UI elements, such as user menus and toolbars, will also be examined.
The headline for this submission could definitely use some improvements.
The headline “Visual Studio commands” suggests an article containing such nuggets of wisdom as “You can press F5 to compile and run your program”. It fails to communicate what the article is actually about.
Good high level overview, but the above quoted section is incorrect. IMenuCommandService is not a global service, in fact it is somewhat of a faux service as it is available only inside MPF derived types (WindowPane and Package) and each derived type gets its own, isolated instance. It is not how VS itself "does" commands, but rather bus convienence introduced by MPF. You can also assign handlers for commands defined by others (or the shell) in the same way, but package level handlers will only be invoked for the package that defined them.
There are a myriad of free or low cost alternatives that make the MS stack seem monolithic and unusable.
Hell, I work for a company that had been using a MS product for years. We recently switched to PHP, and are likely to use Flask or Django and PostgreSQL for our next product.
And really for an established company it's not that expensive. Except for SQL Server Enterprise. They like to rob you blind on "Enterprise" licenses (which is what you need for the useful High Availability features).
In case anyone was curious, here is the email they send you at the end of the program.
"Your graduation from the Microsoft BizSpark program is just one month away!
The great news is that you can complete the graduation process in just three simple steps: Answer a few questions. Give us a little feedback. Get your licenses. The entire process takes just minutes. Since there are both business and technical questions, however, we do recommend both the CTO and the CEO take the time to go through the process together.
If you complete the graduation process by your graduation date, you may keep and continue to use all the software you received as part of your BizSpark MSDN Subscription for development and testing purposes. If your startup has servers in production, you will have perpetual rights to your Windows and SQL Server software solution production licenses. And, we have removed the $100 exit fee for the BizSpark program."
I guess Microsoft's idea is that if your company does graduate after three years, it's bound to buy upgrades and/or new licenses for the development tools somewhere in the near future. So the actual revenue is deferred to make the offer more attractive.
Any other questions?