Subscribe: Victor Garcia Aprea
Added By: Feedage Forager Feedage Grade B rated
Language: English
add  browser  code generation  code  editor  extension  list  new  project  references  studio  time  visual studio  visual 
Rate this Feed
Rate this feedRate this feedRate this feedRate this feedRate this feed
Rate this feed 1 starRate this feed 2 starRate this feed 3 starRate this feed 4 starRate this feed 5 star

Comments (0)

Feed Details and Statistics Feed Statistics
Preview: Victor Garcia Aprea

Followers of the IHttpHandler

Victor Garcia Aprea's insights on ASP.NET


It’s a Bird… it’s a Plane… No it’s the WoVS DevStore!!

Thu, 28 Oct 2010 23:35:00 GMT

Make sure you don’t miss the Announcing the DevStore! post.


Quick and easy buying of extensions for making you more productive inside Visual Studio.

If you’ve already given your iPhone or Android device some love, there is no excuse to share some of that love with your Visual Studio too!

The DevStore is under early beta, so there is still time for you to participate and help shape it, this is the place to send your suggestions.

Inside the "Quick Add Reference” extension

Wed, 06 Oct 2010 21:47:51 GMT

World of VS has just released the “Quick Add Reference” extension which should save you time and give you a much more nicer experience when coding with VS. If you care about the details of how this little beautiful thing is implemented, here are some: The extension ships with a cache of all types contained in the GAC plus some other non-GACed assemblies which are interesting enough as to have their types also cached. These are the assemblies that will be offered to you when you type in a type name that can be found there. What about types that are not in our cache? Well, they won’t be offered in the smartag the very first time you type them. But once you’ve added the required assembly reference using the old way (“Add Reference” dialog) we will notice that fact (by listening to a VS “Reference Added” event) and we will grow our cache to include its types. Meaning, no more “Add Reference” dialog for any types in that assembly, ever. As you can see, as you keep using this extension, it will “understand” more and more types and offer a more complete selection of possible assembly names, and eventually there will be zero or near-zero need to ever go to the “Add Reference” dialog. We’re also smart enough to look into the framework version and framework profile being used to not offer you types that don’t make sense for the current project. So, if you’re coding a project that targets fx version 2.0 we won’t offer any fx 4.0 version types for example. How to list (as in what order) the available assemblies where a type match is found is also an interesting question as for some very common type names, like, say, “Button” there maybe a dozen available assembly options… so we decided to list first the ones starting with “System.*”, followed by the ones starting with “Microsoft.*” and then the rest. This should help a quicker selection –most of the time- when a large list of available assemblies is shown. Lastly, but no least, we’re augmenting a standard smart tag to display the possible assemblies to add. This means you can use either the mouse or the keyboard to quickly select this as you would do with other built-in options as the “Generate Class”, etc. My favorite is way to use this extension is a quick “Ctrl+.” with the caret under the squiggle where VS is showing me the type is not recognized. That brings up the smarttag UI and from there I just have to press key-down one or a few times to choose what I want. Then ENTER and I’m done. Usually this takes LESS TIME THAN FOR THE “ADD REFERENCE” DIALOG JUST TO SHOW UP, let alone, browse or search any references in there. We really appreciate your feedback so if you have any (suggestions, bug reports, etc) please post them in the VS Gallery QA section or just email the WoVS Team if you feel like reaching the team directly. Some of the stuff that is on our plate for a vnext is: VB support and project-references support. Let us know what *you* would like to see next. Before I say goodbye, please vote here if you would like this feature to be built-in in the next version of Visual Studio.[...]

Add and Remove list of references the ultra simple way

Wed, 15 Sep 2010 15:37:04 GMT

When you use VS to initially create a project based on any of the several templates available like Class Library, WPF Application, Web Application, Office Addin and the list goes on, you already get some of the basic ‘must have’ references for your project automatically added thanks to the templating mechanism, i.e. you get PresentationCore.dll et friends added to your project every time you create a WPF-based project. Now this is good only as a starting skeleton. You will have to add a few more assemblies as soon as you start coding. Some of them will be core .NET fx references that the template just didn’t add (i.e. you’ve a WPF based app where you need to use some WinForms bit or viceversa) and some of them will probably include some 3rd party framework you may be using (i.e. log4net, NHibernate, etc). This adding of references can get a bit tedious over time as you find yourself adding the same set of references over and over again… every time you create a new project… Even if you’re using the super-cool Search References from which you can easily search and add multiple references with a few clicks, this is still far from being ideal… ideal would be to say add my “Commonly used web stuff” or add my “log4net and NHibernate” (in a single shoot!). Enter the free World of VS Reference Lists extension. (yes, free, go download it here). Let’s create a new Web Application project and see how the “References” node looks like: Let’s now use the ultra cool Search References extension to filter the list of available references to those that start with “system.web” and select the following four assemblies which are not added by default by VS and we supposedly used in every Web App project we develop: Once we have added these references we will create a named list to group them together: (Note how the extension is clever enough to find a common prefix for all selected assemblies and offer us “System.Web” as the name for the list to be created) We won’t choose the “System.Web” suggested name as we want to have a more personalized list name… We’ve just created our list that we can now use in any other Web App project where these references haven’t been added yet: The extension also makes it very easy to manage existing lists, let’s say we mistakenly included “System.Web.Routing.dll” to our list, just click on it and remove it from our list: Pretty cool extension, ugh? You can download it for free and start creating your list of references today! And if you would like to have Microsoft to include such a feature in the next version of Visual Studio be sure you vote this suggestion in Connect.[...]

Inside the “Default Browser Switcher” extension

Wed, 01 Sep 2010 07:02:21 GMT

You may have already heard of the recently WoVS extension “Default Browser Switcher” (download from Visual Studio Gallery or from Extension Manager inside VS) that helps in choosing what browser you want to launch from VS while debugging your ASP.NET applications. You can start by reading the original post from Scott Hanselman where he describes some interesting inner workings of VS related to how it handles the launching of the VS default browser. Note this is the default browser to be launched from VS which may or may not be your default system-wide browser. If you’re brave enough to survive Scott’s post then you’re ready to enter some even more obscure details: how to package that into an extension for Visual Studio… We started by defining the set of commands we wanted to support and we ended up with ten commands total. That is a “Set default Browser to X” command multiplied by Internet Explorer, Firefox, Chrome, Safari and Opera and a “View in Browser X” command multiple by the same number of browsers. The first set would go into a VS Toolbar and the second set would go into a sub menu whose parent would be a new “View in Browser” command. To author the UI we used the very handy and friendly VSPackage Builder which allowed us to quickly design our 10 commands and place them where we wanted inside VS:   (Yes, that’s a DSL for authoring your own custom UI inside VS!) An interesting bit is that we’ve to make sure the TextChanges flag was set on each command as we wanted the ability to dynamically change the command’s original text at runtime: We do this so we can show different tooltips at runtime for the same command. We show the “Set X as the default browser” when that browser happens to not be the default one already: And then we show “X is the default browser” when you hover over the current default one: From the coding side all what’s needed is to properly set the Text property of the given MenuCommand to whatever text you want. In our case, it looks like this: command.Text = IsDefaultBrowser ? String.Format("{0} is the default browser", browserName) : String.Format("Set {0} as the default browser", browserName); We also added a new “View in Browser” command which we wanted to sit next to the built-in one so we had to use a submenu which ended up looking like this: This was produced using a model like the following:   Where we have a group of commands belonging to our menu which is then placed on different built-in groups, like in the File top-level menu and in the text editor’s context menu. Besides our fancy UI we also have some black magic code, like the one used to retrieve the currently selected item: Start by retrieving the selection service: var selService = GetService(typeof(SVsShellMonitorSelection)) as IVsMonitorSelection; And call its GetCurrentSelection method which happens to have a lovely signature: int GetCurrentSelection( out IntPtr ppHier, out uint pitemid, out IVsMultiItemSelect ppMIS, out IntPtr ppSC ) Assuming you’ve a previous unmanaged C++ background it is really easy to figure out what each one of these parameters mean . Just in case you don’t, here is the cheat sheet: pointers and pointers to pointers. ppHier – returns the currently selected hierarchy (or null if it happen to be more than one selected) pitemid – pointer to the itemid of the selected item (this is just a cookie you can else on another 500 methods to return meaninful information) These are the two parameters we’re most interested in. if pitemid doesn’t return VSITEMID_SELECTION it means there isn’t a multiple selection, so we can safely grab ppHier as being our target selected item. Once we have that guy identified we can add a bit more magic to get to an instance of an automation project which will allows us to better examine what the current project is about: ppHier.GetProperty((uint)[...]

36 ideas over the weekend for improving Visual Studio

Mon, 23 Aug 2010 13:47:00 GMT

We released WoVS last friday around mid-day. Since then, that is, only two days later, its Community section has received 36 different ideas for new VS features and improvements to existing ones. THIS IS JUST AMAZING!

Some of the more popular submissions so far are VS RoamingStack Overflow integration, and a built-in Chat!.

Even Scott Hanselman submitted an idea for changing the default VS built-in browser! Unfortunately it only received 5 votes so far... looks like Scott may need help from someone popular as me (!?) to help promoting his idea. So here it goes: please vote Scott's idea!

And while you're at it, browse the other ideas available and vote what you find interesting so they get implemented by Clarius (or anyone else!) sooner than later. If you feel brave enough, you can also submit your own idea too of course.

You can keep yourself updated on the latest WoVS news by following @worldofvs and by subscribing to our blog.

 See you there!


Add Reference with Search!

Tue, 08 Jun 2010 17:55:00 GMT

Adds a "Search" textbox to the lovely "Add Reference" dialog allowing you to quickly find the assemblies you're looking for.
Search for references, save time!


Go give it a try!

Working with T4 templates?

Mon, 30 Nov 2009 15:30:00 GMT

 A Cyber Monday Sale deal from Clarius:

If you're writing T4 templates for Software Factories, DSLs, ASP.NET MVC, Entity Framework or just doing any other code gen and you're still not running Clarius Visual T4 Editor Pro edition this is your chance to get it at HUGE 70% off, for only $29.99! (Valid only through 11/30)



Regex Editor for Visual Studio 2010

Fri, 22 May 2009 21:39:48 GMT

If you are playing with the just released Visual Studio 2010 beta 1 you can’t miss the Regex Editor extension which provides syntax coloring, IntelliSense, support for testing the expression as you write it and support for saving it for reuse from another project. It does also include a built-in list of common expressions ready for use.

You can install it with a few clicks by going to Tools->Extension Manager->Online Gallery and search for “regex”, click “Install” and you’re done.

If you’re an old fashioned guy who likes to be in control of what’s going on in your box, then you can download the VSIX file (btw, this is the new VS 2010 format for deploying extensions) from here (look for the Download button) and double-click on it to install.

I’m including here a few screenshots of how the Regex editor in action:

 (image) (image) n

(image)   (image)

If you’re into writing VS extensions (or if you’re just curious enough) you can go to the Editor Samples project where you will find source code for this extension (among other extensions) and you can learn about some of the new extensibility points used by the Regex editor.


Customizing generated code in ASP.NET MVC

Wed, 04 Feb 2009 15:06:15 GMT

Just in case you missed the news, the ASP.NET MVC team is using T4 to generate code (yeah!)
The way they have integrated T4 in their own product is not what we would have expected (they wrote their own T4 host) so we took our Visual T4 Editor and Visual T4 Code Generator bits and added them knowledge about this custom host in order to offer the best possible tooling experience.

You can now see properties of their templates appearing in the Properties window, easily set them and preview how the generation will look like with a single click.

Adrian has recorded a quick video of how this is looking like already, watch it here.

We added this support last week so it is not there yet on the public bits, but I promess it will be there soon!

New Blog About Code Generation With T4 in Visual Studio!

Wed, 04 Feb 2009 05:39:42 GMT

While developing the Visual T4 Code Generator edition my team and I are constantly having discussions on how the best code generation tool in earth should look like and also about more “abstract” code generation chores not necessarily related to the product we’re developing.

So it occurred to me (yes, I’m that clever…) that we should take our internal document drafts from our internal wiki and put all this stuff into a blog (of course we will remove the bad language first) to make our plans more public and gather community feedback while we’re at it.

In this new blog you will find posts by Adrian, Joaquin, Jose and me (and if I get lucky I may get other Clarius people to blog too)

Please subscribe and let us know what do you think, thanks!

Sneak Peek at New Code Generation Tool in Visual Studio

Wed, 04 Feb 2009 04:59:15 GMT

I’m very excited to announce we’ve just made available for testing the alpha bits of our Visual T4 Code Generator edition to existing customers of our Visual T4 Editor Professional edition.

We’ve been working hard during the past several months on extending the current codebase of our editor to incorporate lots of new features aimed at code generation so we could offer a very complete tool to compete in the market for code generators.

In case you are wondering what the heck T4 technology is please read this nice introduction by Scott Hanselman.

Let me give you a quick 1-2-3 on what our Visual T4 Code Generator is based on and some of the features we believe will make it a great (the best) code generation tool.

We have built this on top of Microsoft’s T4 transformation technology, meaning:

- The core transformation technology we use is developed, maintained and supported by Microsoft for the next foreseeable future.

- T4 is gaining adoption by different Microsoft teams (Entity Framework team, ASP.NET team, etc) and their new products will use T4, meaning you will only have to learn one code generation technology and you will feel “at home” when using Visual T4 products to work with both, the code templates from these teams and your own templates.

We can also proudly say that we’re fully integrated within Visual Studio, and we really mean integrated here, REALLY (not a definitive list but just a few that I’ve on top of my head now):

- Use of a single IDE (Visual Studio) no switching back and forth between Visual Studio and a boring custom IDE.

- No custom-buggy-parser for a custom-buggy IntelliSense experience; we offer you the same VS experience you are used to when writing C# code.

- Use a friendly DB-metadata browsing APIs to easily generate code from databases.

- Drag and drop a database or table from Server Explorer or a XSD/XML file from Solution Explorer and start writing code against it.

- Generate multiple output files from a single template, and easily add them to a solution or project by using our simple VS integration APIs.

- Play nicely with MS Build

- Use the Properties window to set the values for your template with a few clicks.

How does the Visual T4 Code Generator edition differentiate in features from the Visual T4 Editor Professional edition? Please read here to find out. Note the feature list is not final (we’re at alpha).

We’ve also posted a few videos featuring some of the features found in the alpha, if you’re curious enough, please find them here.

If you have any questions, feedback, etc, please let me know, we really value all feedback and we do take the time to respond.


Extending the Visual Studio 2010 Editor: not exactly a good first impression

Thu, 30 Oct 2008 06:01:35 GMT

I know this is the Visual Studio 2010 *CTP* meaning it's a very early release but still I feel quite a bit disappointed about the experience for developing extensions for the new editor.

While other features of Visual Studio 2010 are not mentioned nor supported at all in this CTP, the editor includes several walkthroughs on how to extend it and as I've found here, there is a custom VS SDK build custom made to support editor extensions scenarios. Also, the editor has its own forum for feedback.

With all this you would believe that there is a lot of interest from MS on gathering feedback and letting people trying out the new editor bits. And I do believe they sincerely meant this, but... the current experience is really UGLY.

The current CTP suffers from two major issues: 1) if you copy an extension while VS is running, VS will crash and 2) there is no such a thing as an "Experimental Hive" for the "Components" folder (this is where you copy extensions) meaning all files in there will get loaded up and thus locked by VS, so everytime you need to copy a new version (which is basically everytime you compile) you need to shutdown VS, overwrite the files and restart VS.

This is how the current development workflow for writing extensions looks like:

1) Write code, compile code
2) Shutdown VS
3) Copy DLLs to "Components" folder
4) Restart VS, try out the extension
5) Shutdown VS
6) Delete DLLs from "Components" folder
7) Change 1 line of code? Go back to 1) and repeat all over again...

As you can notice the above includes shutting down VS twice in order to try out even the very smallest changes...

Writing VS extensions (in VS 2008 and earlier) is already very-very hard so what one would expect in VS 2010 is nothing but stuff that simplifies this, and I'm betting the new managed editor APIs will help in this regard, so it's a real pity this "restart-VS-twice-for-every-compilation" wasn't fixed before the CTP went out...

I'm wishing this gets fixed in the next drop that is made available.

My Favorite Error Message from Visual Studio 2010 CTP

Thu, 30 Oct 2008 00:10:08 GMT

I swear I wasn't doing anything against the law when I got this nice error dialog:



Looks like the pBuffer variable is important enough inside VS as to get its own dialog! :-)

Entity Framework to adopt T4 for code generation in v2

Wed, 29 Oct 2008 23:49:34 GMT

Yesterday the Entity Framework team announced at PDC08 that they will based all their code generation on the Microsoft built-in T4 technology. This is great news as it will allow deeply customization of the generated code.

If you're new to T4 you should read Scott Hanselman's post on T4 as your starting point on what resources are out there.

And of course, if you're authoring T4 templates, you can't miss the Clarius T4 Editor!.

The New Visual Studio 2010 Code Editor

Wed, 29 Oct 2008 03:01:47 GMT

As you may have already heard Visual Studio 2010 will include a *new* code editor completely *rewritten* in fully managed code and based on *WPF*. Yaay!. Very, very promising stuff.

I just fired up the bits I received at the PDC08 and went Help->About Box, and looks like they haven't put much cycles into it yet -which is expected for a CTP release- and it's funny how are the calling it right now... "Text" (very humble!) with a somehow confusing description of "WPF Editor" and an ugly stock icon stolen from someplace.


I'll be playing with the new editor and extending Visual Studio 2010 for the next couple of days so stay tuned if you are into extensibility or just want to know about the latest news of Visual Studio 2010!

Wishing for dev10: Get rid of PLK, SLK, DLK and anything ?LK

Sat, 11 Oct 2008 02:20:44 GMT

Today one very annoying thing you've to do when you want to deploy your Visual Studio Package extension is to get a PLK or "Package Load Key" from Microsoft.

This is a painful process which can be divided into two equally painful parts:

Pain #1: Get yourself a PLK

For this you have to use a MS Website which used to be really bad at doing its job. For example, data you entered for your key was not available for reviewing later on and sometimes you never received the email with the requested key... we're talking very basic stuff, which was just not working properly.

The good news is they replaced the old website (delete C:\QuickAndDirtyWebAppCodedInFiveMinutes\*.*) with this single page which besides being much more friendlier than the original website it also... works!!

Pain #2: Debug your PLK

So after struggling (if you had to use the old website) to get yourself a PLK you still were left with the job of debugging it. Which wouldn't be that bad if it wasn't because the really poor support offered by Visual Studio logging then attempting to load your packages which basically was reduced to:

"Hey, I cannot load your package, sorry!".

A package load failure could be caused for a variety of reasons which Visual Studio can currently detect but just logs them in an unfortunately generic way. This requires of some obscure PLK troubleshooting time (some of it very hard to guess as "Is the crypto service running?") that translates to wasted hours.

And to add more to an already unfriendly process Visual Studio 2008 has three different kinds of Load Keys:

1) Package Load Key (PLK) to deploy your VS packages to end users
2) Developer Load Key (DLK) installed by the VS SDK so you can develop and run packages without a proper PLK in place
3) Shell Load Key (SLK) to deploy your VS-Shell based applications

My whishes for dev10 (or "Visual Studio 2010" if you like longer names) are the following:

1) Please don't invent a 4th ?LK to add to the previous three, there are more than enough already!
2) Please just kill the existing three key types and remove extensibility developers the need to go through this pain at all.

Infacta & GroupMail: They Suck Big Time

Wed, 24 Sep 2008 18:22:43 GMT

I wanted to post this to alert other people about this company.

I brought GroupMail Business Edition for $299 several months ago, it was version v5.2.0.54 then. I never got a chance to use it until now, so I headed to the Infacta website to download the bits and I found a funny:

"Your access has expired, you need to purchase extended protection to keep access"

Expired? My access?

So I got the support page and tried contacted Infacta through one those ugly designed web-based Contact Form, needless to say I never received a reponse back.

I then decided a phone call should work better so I looked up Infacta's telephone number in the US 1-866-641-8281.

A nice lady gently told me that the person who could help me was OOF until the next day. Not a problem, I already wasted some time here, but I can wait one more day.

Another phone call, and... the same story again "this person is OOF". Ok... I will call tomorrow...

Needless to say, my 3rd call didn't have any luck, they guy was still not there. And what got me a little bit more upset was a "He usually work only in the mornings" (why in the world I wasn't told about this before?)

With the last traces of patience I was left with I said: "Ok, I only need a simple download location, this couldn't be that hard, there should be other people knowing where I can download this from".

No luck again, "I'm only a receptionist" and "there is only one person from Infacta working here" were the two sentences that killed my last hopes.

Almost I week lost... let's email them now... which I should have probably done so to begin with but one would think a quick phone call should do faster...

A funny guy from sales responds to my query indicating that "You need to pay $85/year for a protection upgrade to get your download link restored. This is because you have v5.2.0.54 and current version is v5.2.0.65"

What?!?! C'mon... I don't want any freaking upgrades nor protection, I'm asking only for exactly the same freaking installer corresponding to the version I purchased months ago".

You want to charge me a couple of bucks for a download as a "media" reposition, ok good go ahead, I will still feel you're ripping me off... but $85/year... to get access to the freaking bits I already purchased...

Bottom-line of the story: if you're ever brave enough to do business with Infacta just make sure you do download the bits you're purchasing ASAP otherwise they will attempt to rip you off selling additional upgrade-protection-whatever you don't need nor want.

T4 Editor v1.0 RTM finally available!

Mon, 15 Sep 2008 07:39:39 GMT

After lots and lots of hard work I'm very proud to announce that my team shipped v1.0 of the Clarius T4 Editor today.

We've been insanely struggling to get the bits finished during the last few months; you know, extending Visual Studio for simple stuff is far from trivial let alone extending it in some crazy ways like reusing the existing C# infrastructure. Nothing but lots of "fun"...

I've received lots of pings from people asking how the editor will be available, so this is the story:

We're offering a Community edition, featuring basic T4 IntelliSense and syntax coloring, for free as in beer. And we're offering a paid Professional edition too, including a few more extra features plus our King feature which is support for embedded C# code blocks. If you're interested into finding how these two editions compare you can find a summary here.

They say a picture is worth a thousand words so I'm trying to save some typing by using this picture:

(image)   (image)


Now imagine how much your productivity will improve and what are you going to do with all the time you will save thanks to using the T4 Editor. :)

VSX Devcon: All about extending Visual Studio

Fri, 29 Aug 2008 06:30:00 GMT

If you are into extending the best IDE ever you already know that is not an easy task.

You will find challenges all day (some days just too many of them...) and you may spend an entire day (or a couple of them...) trying to accomplish even the most trivial things. Don't feel frustrated, you're not alone.

The good news is there is a dedicated team trying to change this and they've put up a 2-day conference filled with exclusive content on extending VS.

The admission price is an incredible low $100 so you really need a good excuse not to register.

At least four guys from Clarius (including me) will be attending it. If you're planning to do so too drop me a note so we can share our "extending VS" experiences, the good ones and the bad ones.

T4 Editor: some teasing pictures!

Wed, 16 Apr 2008 05:16:00 GMT

We're receiving emails everyday asking us about the status of the T4 Editor. The news is we're still working on it and we're making some great progress! Just so you can check the wait is being worth it, I'm posting here a few screenshots that showcase the main feature we're working on, which is full support for embedded code blocks, that is, the same great support you get today from the ASP.NET editor when embedding C# or VB code. Enjoy!       [...]