Sunday, September 30, 2007

Orcas New Feature - Code Editor Intellisense Enhancement

If you recall the way we use intellisense while coding is just to press .(prriod) after the object name and we see an entire list of methods and properties associated with that object. As shown in the figure below.

Even though the Intellisense has been a great feature for more than a decade by now, but the disadvantage of this is that it hides the code whenever the Intellisense popup comes over, and sometimes if we need to look at the code behind the pop-up we need to press ESC key and the reopen it.

The Visual Studio 2008 Code Editor comes with this long lived issue, and you can just make the Intellisense pop-up Transparent by holding the CTRL key and look at the code which was covered by the intellisense pop-up, and release the CTRL when you are done.

See the following figure which shows the enhanced Code Editor with new Intellisense feature, which becomes transparent if CTRL key is pressed.

Release the CTRL key to bring it back to the normal. Isn't it a cool feature.

Wednesday, September 19, 2007

Orcas New Feature - Split View (Web Applications)

Visual Studio Developers spend a lot of time in switching from Desgin view to Source view while developing an application, as they need to see what they are developing will appear in what manner.

With the release of Orcas/Visual Studio 2008 this problem is going to resolved, as Orcas ASP .NET Web Application Project Template comes up with a brand new feature called Split (split view).

This new Split functionality will sit in between of Design and Source view at the bottom of the Visual Studio IDE while developing a Web Application. Please referto the Figure shown below.

If you look at the Figure shown above, you will notice that the developers can look at the code and the design simultaneously.

Split view does not reflect the changes along, as we type the code in the code editor part. If it will do so the development speed will be very slow as the process of reflecting code change effect needs some time to be applied/reflected in the design view.

To serve this purpose Orcas have an inbuilt mechanism to allow you keep on playing with the code part, and then a pop-up will prompt you to Synchronize the code changes into the Design View, as shown in the Figure below.

Friday, September 14, 2007

VS 2008 - A solution to long lived coupling between Visual Studio and .NET Framework

If you recall previous releases of .NET Framework which had a dedicated Visual Studio.NET linked to that particular .NET Framework version.

Lets see, all of them again:-

Microsoft .NET Framework | Visual Studio .NET
1- .NET 1.0 ---------------------- Visual Studio 2002
2- .NET 1.1 ---------------------- Visual Studio 2003
3- .NET 2.0 ---------------------- Visual Studio 2005
4. .NET 3.0 ---------------------- VS 2005 + VS 2005 extensions for .NET 3.0
5. .NET 3.5 ---------------------- Visual Studio 2008

This coupling in between has just put the entire Microsoft .NET aspirants to shift their focus to different IDEs and interfaces time to time for almost six years by now.

Visual Studio 2008(code named Orcas) is designed with a vision to support any .NET Framework version application in its single IDE, I.e, you don't need multiple copies of VS .NET to support different versions of .NET Framework (as shown above). Hence the Visual Studio 2008 reduces or removes the coupling between .NET Framework and Visual Studio .NET, and having just one copy of Visual Studio 2008 will cater the various .NET Framework versions.

The Visual Studio 2008 Projects Templates and how they support to .NET Framework versions is shown in the figure here:

You can see the vast range of Project Templates VS 2008 supports. Beisides on the top right corner of the figure shown just above, you can see while choosing a project template, it also allows you to choose your desired .NET Framework version from the dropdown list.

Hence, Visual Studio 2008 and its support for multiple .NET version support minimizes the maintenance and side-by-side issues which we all were facing due to the coupling betwenn VS.NET and their respective .NET Framework versions.

Thursday, September 13, 2007

Red bit and Green bit Assembly Model

As Orcas targets/supports various .NET Framework versions installed and that could have been achieved by installing one .NET Framework version on the top of another version. For example, .NET 3.0 installed on .NET 2.0, and then .NET 3.5 on .NET 3.0.

The .NET 3.5 Framework version holds green bit assemblies which are additional assemblies and can be installed at the top of other existing .NET Framework assemblies.

Green bit assemblies when installed, they don’t affect existing assemblies. For example, .NET 3.0 when installed on .NET 2.0, it does not affect .NET 2.0 assemblies.

In the similar manner, .NET 3.5 assemblies does not affect the framework version either 2.0 or 3.0 on the top of which you will be installing it. You can see in Figure 2-2 that .NET 3.5 implements Green bit assemblies in the Microsoft .NET Framework 3.5 (Pre-Release Version) folder.

Whereas Red bit assemblies are the assemblies which ship either as part of the platform or part of a development tool. For example, Windows Vista ships WPF, WCF etc, and Visual Studio 2005 ships .NET 2.0. Besides assemblies delivered as service packs, hot fixes or updates are also considered as Red bit assemblies.

Understanding the Virtual Machine Technology

The Orcas March CTP came in Virtual Image format and so the Beta-1 and Beta-2. For many people Virtual Machine is a new teminorlogy. In this post I am trying to help you understand what does this Virtual Machie mean.

While downloading the Virtual Machine files, you must have noticed that Orcas virtual machine requires Virtual PC 2004 SP1 or Virtual PC 2007 or Virtual Server 2005 R2 to work with downloaded files. Any of this software will help to achieve the concept of virtualization; as Orcas CTP/Beta comes in the form of virtual image, so virtualization concept is required to run the Orcas CTP/Beta.

Normally, computers run only one operating system at a time. Applications run on top of the operating system. The operating system uses device drivers to address the computer’s hardware. And the hardware includes every single piece of hardware for example, the mouse and keyboard, processor, memory, disk drives and drive controllers, video cards, network cards, sound card and other physical devices etc. In other words, a computer contains one set of devices, runs one operating system at a time, and has one set of applications on that operating system.

The concept of exclusive device ownership typically precludes the possibility of running more than one operating system concurrently on a computer. One approach to overcoming this limitation is virtual machine technology. Virtual machine technology applies to both server and client hardware

Virtualization involves redirecting interactions with device resources at lower levels in such a way that higher-level application layers are unaffected. With virtual machine technology, a user can run multiple operating systems concurrently on a single physical system and remain isolated from any other running virtual machine and even from the host operating system. By the virtue of being isolated from any other running virtual machines and Host OS, virtual machine technology plays an important role if you want to test potentially unstable prerelease software in a safe, isolated environment.

Running virtual machines will share the hardware resources available with your host machine especially the hard-disk space, RAM and CPU etc. For example, if you have 2.8 GHZ processor, 60GB disk space and 1GB memory in your host machine and you are planning to run a virtual machine then you should be aware of the fact that the same amount of hardware resources will be shared between the virtual machine and your host machine, so you need to ensure that you have enough disk space to store virtual image files on your host machine’s disk drive. You can also configure the amount of RAM you want to allocate to the virtual machine and the amount of memory you want to keep for the host machine operations as your host machine will be supporting all the running virtual machine on its top.

As mentioned above if you have 1GB physical RAM which is also a minimum requirement for Orcas CTP/Beta, you need to share the available memory with Orcas CTP/Beta virtual machine. While running the virtual machine if you feel that either virtual machine or your host machine is running slow then you can adjust the RAM, by either increasing the RAM for virtual machine, or by releasing some more RAM for host OS from the amount of RAM which is assigned for virtual machine operations. But your adjustments must not affect the minimum requirement of either a virtual machine or your host machine. Your CPU will also be under pressure as it will be busy in taking care of your host machine and virtual machine operations, so speed of CPU also plays a very important role in the world of virtualization.