May 18, 2012

Windows 8 Dev Camp: Slides, Hands-on Labs, etc.

If you've attended one of the Windows Camp events that I or one of my peers have been running of late (or even if you couldn't make it, but would like some great resources for learning more about Windows 8 Metro style apps), the materials from these events have now been made available online. You can download them from:

http://bit.ly/Win8CampResources

Perfect reading material for the weekend!

May 17, 2012

Charlottesville Microsoft Developer Group Kicks Off Tonight!

They're tan, rested, and ready to rock some code!

CvilleMDNUGThat's right, the user group formerly known as Charlottesville .NET User Group is launching their rebranded and refocused group, the Charlottesville Microsoft Developer Group, tonight at 6pm, and I am honored to be speaking at the inaugural meeting, along with Stuart Leitch, who helps lead the group.

Stuart will be doing two short-take presentations...first an overview of recent developments on the Microsoft stack, and the second a look at the upcoming MVC4 release.

I will be presenting on developing Metro style apps for Windows 8 using HTML and JavaScript. I'll provide an overview of this new way of building Windows apps, including demonstrations of how you can leverage existing HTML5 and JavaScript code, use your favorite JavaScript libraries, and leverage OS integration to enable rich scenarios like search and sharing.



Here's the schedule:

6:00-6:10 - Socializing

6:10-6:40 - State of the Stack

6:40-7:00 - Dinner & Socializing

7:00-7:45 - MVC 4 - A Look Forward

7:45-9:00 - Windows 8 Metro style Apps in HTML5 and JavaScript

You may also notice, as shown above, that the group has a new home on the web, http://www.cvillemdg.com/. I'll have to double-check with Stuart, but I'm pretty sure I can see the hand of Stuart's talented wife Kristy Moon at work here...Kristy also did a very nice redesign for the web site for this year's Mid-Atlantic Developer Expo, which we were all very happy with. Either way, the new site for the group is colorful, informative, and looks great. You should check it out, and come on down and help us kick off the new group in style!

May 16, 2012

Keep Calm And PowerShell On

Another variation of the historic poster from WW2.

KCPOSH

SharePoint variations here…

May 13, 2012

Slice of Life: Converting my Personal Site

Over the last few months I have been having a lot of fun converting my personal site (http://drusellers.com) from a pure static html site, to one that uses a back end server side language.

When I first started the main purpose was to learn a little more about python. So I started off using Flask, a micro framework for python. Flask is a lot like Sinatra for ruby and the comparison was a lot of fun because my good friend Ryan Rauh (RyRy) was writing a site in Sinatra at the time so we were able to compare and contrast the two approaches quite easily.

As I learned more about flask and all that it could do, I was impressed by how much I could do with so little. It served as a solid reminder that we should strive for simpler solutions.

In addition to learning python I also took the time to dive into LESS. Organizing the CSS content of applications has always been difficult for me. Finally, with LESS I had variables and the ability to nest selectors. Basically, all of the things that I have wanted CSS to do for a very long time. I started out using the runtime compilation modes of LESS, but as I learned more I eventually switched to running the watch mode on the compiler and then stripping that functionality out of the app. Right now, I really like this approach. It feels more like PROD vs DEV, but I still have the ability to iterate quickly. The real choice to use LESS, was that the popular CSS framework from Twitter called Bootstrap had just launched. By studying their approach and trying to deconstruct things I have learned a lot about CSS and its application to better CSS approaches.

But as with all things in the technical world, a change was on the horizon. That change was SASS/SCSS. RyRy read a post somewhere comparing SCSS and LESS and he came away with the impression that SCSS RULED, and LESS DROOLED. This was one of those moments, where I gave RyRy a stern look and then sat down to start converting my website from LESS to SCSS, because when the guy you ask all of your questions too, changes directions sometimes its just easier to go with the flow. Thankfully it wasn’t that hard, allowed me to revisit my CSS and improve things further.

Around the same time, I discovered semantic.gs, a SCSS friendly grid system, finally I can get rid of the BS classes like span-4 and what not that have been plaguing me since I first found blueprint.css and 960grid. Whoot! I have been able to further clean up the website’s CSS approach.

Well, of course the project can come to a close quite that simply. After improving my CSS and getting an understanding of python, I of course, had to completely rebuild it something new and shiny. Damn, my attention span.

So, yeah. Node.js the new shiny language/framework. My JavaScript skills have always suffered, so I rationalized changing my backend code to JavaScript as a means to improve my JS skillset. So, I converted my site again, learned a lot about JavaScript in the process, melted my brain trying to get things to work in this under powered language (under powered because I am used to my language providing much more to me).

So now my site is running Node.js – its a whole lot cleaner and easier to work on. I love how simple the underlying code is, and I have really learned a lot about some of the new languages and frameworks out there.

May 12, 2012

Azure SDK for node 0.5.4 is out! More secure and now with less angle brackets

As Yavor said, Azure SDK for node 0.5.4 is out with a bunch of goodies!

Closing a security hole

Recently a vulnerability was detected in node.exe that could theoretically allow an attacker to perform a header-spoofing attack. Version 0.6.17 contains a fix for this attack. We take security very seriously, so we’re releasing this update which includes node 0.6.17 to remove the vulnerability.

Please go download the latest bits to remove this vulnerability!

Less angle brackets, more YAML

iisnode offers some really nice hosting capabilities like spinning up and managing multiple node procs, allowing access to logs over HTTP, providing good debugger errors in the browser for diagnostics and supporting node-inspector for debugging.

To access any of these benefits however you have to travel the sea of angle brackets known as web.config. For .NET / Windows developers, this is the norm. However, we heard a lot of feedback from folks in the node-a-verse, in particular coming from on a Mac / *nix that this feels very strange that they have use web.config in order to config node-specific things in Windows Azure, especially in light of the other offerings out there. Looking around we saw that a common pattern was to use a simple key-value format for specifying similar settings with YAML being a very popular format.

iisnode.yml

And so our team racked our brains a bit, got a bunch of feedback and iisnode.yml was born and implemented by Tomek! iisnode.yml is an optional file that sits along side web.config. It allows you to set all of our iisnode settings without having to ever touch web.config. Below is a really simple example.

# This is a really simple iisnode.yml file

node_env: development
devErrorsEnabled: true
logggingEnabled: true

 

The settings set the node_env environment variable to development, enables logging all node.exe output and enables developer errors.

For example, the code below has an error in that it requires a module that does not exist, also it uses spaces in the module name.

var http = require('http');
var notPresent = require('some awesome module');
http.createServer(function (req, res) {
  throw "error";
  res.writeHead(200, {'Content-Type': 'text/plain'});
  notPresent.doSomethingAwesome();
  res.end('Hello World Again\n');
}).listen(process.env.PORT);

 

If I don’t enable devErrors this is what I get when I do a request.

Screen Shot 2012-05-12 at 11.10.45 AM

However, look at what I get when I enable devErrors with logging.

Screen Shot 2012-05-12 at 11.04.40 AM

Above you an see that an error occurred because it could not find my wacky module.

Developer errors is a pretty cool feature that allows iis to output in the response any errors that occurred right in the browser. Combined with logging, it’s really useful for debugging on a remote/staging server.

Of course you don’t want anyone seeing that in your live production site, so you should probably shut that off.

myfile.yml

By convention we look for iisnode.yml. If you are not happy with that name however, you can set your own name in the iisnode element of web.config by using the configOverrides property.

<iisnode configOverrides="myfile.yml"/>

Note: configOverrides also allows you to do environment variable expansion. Thus instead of having a static file name you can have a name that includes an environment variable value. More on that in the future.

But wait, don’t I still need a web.config when I publish to Windows Azure?

Great question! Today you still need a web.config though as Tomek said that can be boilerplate and you don’t have to look at it. Tomorrow however…. ;-)

Go get the latest SDK here.

May 10, 2012

dotPeek 1.0 is Released

Free .NET decompiler and assembly browser from JetBrains is now officially live! Please download dotPeek 1.0 and enjoy high-standard decompilation with ReSharper-inspired navigation and search!

Just as a reminder, here’s the list of key dotPeek features:

  • Decompiling .NET Framework 1.0-4.5 assemblies to C#. Libraries (.dll), executables (.exe), and Windows 8 metadata files (.winmd) are all supported.
  • Connecting to symbol and source servers to fetch original source code, if available. If you let dotPeek sniff around for PDB files or a source server, it can get source code matching your assemblies, and show it to you.
  • Quick overview of code structure and hierarchy. ReSharper’s File Structure and Type Hierarchy are all included. There’s also References Hierarchy to explore dependencies between references.
  • Powerful ReSharper-inspired navigation and search, including Go to Type, Go to Symbol, Go to File Member, and the whole set of context-sensitive navigation like jumping to symbol declarations, implementations, derived and base symbols.
  • Accurate search for symbol usages — again, this is by virtue of ReSharper search features like Find Usages, Find Usages Advanced, and Highlight Usages.
  • Familiar keyboard shortcuts for most actions: Visual Studio and IntelliJ IDEA keymaps are included to ensure a familiar experience for users of (you guessed it) ReSharper and other JetBrains developer tools.

To learn more about dotPeek 1.0, read dotPeek Features, or watch this introductory video by James Kovacs that is also available on JetBrains TV:

Haven’t you downloaded dotPeek yet? Please do. Decompile with pleasure!

ReSharper 7 EAP now available for all VS versions

ReSharper 7 EAP opened up just over a month ago providing early support for Visual Studio 11. We have now opened this up also to other editions of Visual Studio, specifically 2005, 2008 and 2010. As such, if  you’re not yet working with VS11, you can install ReSharper 7 on previous versions.

Get the latest editions from the EAP page. As new releases appear, new features will be available and we will be blogging about them.

May 01, 2012

JetBrains at .NET Cologne

We’re off to Cologne at the end of the week for .NET Cologne, a one day event focused mostly on .NET technology. You’ve probably heard of it as it sold out in pretty much a few days!

If you were lucky enough to get a ticket, then you should know that we’ll not only have a booth there but also will be giving a Getting the best out of ReSharper session at 10:15, as well as a short lunch session on YouTrack: Command and Conquer.

We’re also holding a small Nerd Dinner the night before and there are a couple of places left.

See you there!

April 24, 2012

Replacing Tags and Custom Code Analysis in HTML

This is the second part of a previous post on Searching for Patterns in HTML using ReSharper 6. In the first part we covered the basics of searching for HTML tags, including the use of CSS selectors, using Structural Search and Replace. In this second and final post, we are going to put what we have learned to use, to not only allow us to replace our findings, but also as a means of extending ReSharper with custom patterns, which is the core idea behind Structural Search and Replace.

Replacing tags

The same dialog box that is used to search for patterns, can also be employed to replace patterns. On the top-right of the window, there is a Replace button which activates a section to enter a replacement pattern

Find and replace modes in SSR

providing us with an option to specify the pattern we want to replace with, as well as the scope for it (Look In), be it Solution, Current Project or Current File.

Replace pattern

Hitting Replace will now replace all entries based on scope definition.

Replacing with placeholders

The Replace Pattern also allows placeholders to be used. One useful benefit could be to search for certain incorrect usages of a tag and have it fixed up. For instance, let’s assume that we need to make sure all links have an icon associated with them.

What we would need to do is find all href that do not contain an img tag and add it. Our patterns would look like this:

Search and replace pattern areas

In order to only select those links that do not have an image, we would need to define a CSS selector for $content$

Setting a constraint on tags

Detecting code smells with patterns

We have seen so far how to search and replace HTML. We can now take it one step further and use patterns to detect code smells or just HTML code constructs that we’d like to modify for one reason or another. As mentioned at the start of the post, that is Structural Search and Replace’s core idea, to allow us to extend ReSharper with custom analysis (Search) and quick-fixes (Replace).

There are two ways to do this: use the Search with Pattern dialog as shown thus far, but instead of hitting the Find button, we hit Save or define the Custom Pattern via ReSharper | Options. The former ends up also as a custom pattern so we’ll just show how it is done using the latter approach.

1. Select ReSharper | Options | Custom Patterns and click Add Pattern .

ReSharper Options - Add Pattern

2. Define the pattern as before. In our case, it would be

Configuring a pattern to show as warning

We can establish the level of severity (red rectangle) we wish to give the pattern. In our case, we select Warning. It is also important to define the Description of the search. This serves not only as the description (yellow rectangle) in the pattern entry, but also the message that will be displayed when the pattern is encountered. Finally we provide description for the replacement pattern (green rectangle). This replace is what is then considered a quick-fix.

As soon as we save this pattern, it will become active. ReSharper will now highlight anywhere in our code where this pattern matches.

Search pattern is encountered

Since it has a replacement, ReSharper now offers us to press Alt+Enter to fix the issue

Replace pattern suggested as a quick-fix

It’s important to note that we can still do a global Search and Replace even when patterns have been saved. We do not lose that functionality. What we do gain is custom code analysis that works both as we glance through our code and as part of ReSharper’s Find Code Issues functionality to highlight any potential issues in our code.

More Options

Structural Search and Replace in ReSharper allows for more customization when it comes to defining patterns. For example, we can:

  • Use regular expressions (and negative regular expressions) for attribute names, values and for content in between tags.
  • Use CSS selectors for tag and content placeholders.
  • Constraint control types for ASP.NET tag placeholders.
  • Limit minimum and maximum number of attributes inside tags and elements in content placeholders.

We have just covered some of them in these two posts. Explore them, let us know what you like, what you don’t like and send us your feedback.

April 19, 2012

dotPeek 1.0 Beta Available

If by now you can’t recall what dotPeek is, it’s our free .NET decompiler, and it goes Beta today. Please go ahead and download dotPeek 1.0 Beta for your daily dose of awesomeness.

Since the emergence of the previous dotPeek build that added base types and inheritors to Assembly Explorer, the dotPeek crew has introduced a whole bunch of great stuff that’s exposed in this Beta. Here’s the list:

  • Installer. dotPeek EAP used to be distributed as a simple zip archive, making managing versions a bit of a mess. It’s refreshing that on the verge of final release, there’s finally an installer.

    This has an additional implication: whether you choose to integrate dotPeek with Windows Explorer is now set from the installer, not from dotPeek Options.
  • Assembly management. Here’s another piece of must-have functionality that was previously unavailable: You can now work with different assembly lists depending on your context. You can save and reopen assembly lists, and clear the current list if you no longer need it. Assembly lists are actually not limited to .dll and .exe files: they can contain archives and folders (see below.)
  • Open archives and folders. In addition to traditional assemblies and executables, you can have dotPeek open archives (including .zip, .vsix, and .nupkg formats), and also folders. When you ask dotPeek to explore a folder, it processes all its subfolders in hunt for files that it is able to decompile.

    Since you can also open files from the web by passing an URL to the Open dialog, support for archives opens up some nifty scenarios like opening NuGet packages from GitHub or .zip files attached to a bug report in one go.
  • Support for .winmd files. If you’re playing with VS11 Beta and WinRT, you’re going to appreciate that dotPeek can now show contents of .winmd files
  • An option to show compiler-generated code. This switch turns off certain compiler transformations, making code structure very similar to what the compiler turns it to. This helps see how compiler deals with lambdas, closures, and auto-properties, among other things.
  • Add to this several important fixes and optimizations such as caching the contents of Open from GAC dialog box, and sorting out issues with key accelerators.

Feels like it’s entirely worth it to download dotPeek 1.0 Beta, doesn’t it? If the build is any worse than a smooth ride, please let us know and we’ll be fixing critical issues ahead of the upcoming release.

April 11, 2012

Searching for Patterns in HTML using ReSharper 6

In ReSharper 5, we added a feature called Structural Search and Replace (SSR). You could think of it as a cross between Regular Expressions and Templating, with the added benefit that you don’t need to know RegEx to use it. The basic idea behind it is to allow you to extend ReSharper’s code analysis by defining custom patterns, and optionally providing quick-fixes (for replacing these with other patterns).

In ReSharper 6.1, we extended SSR with support for other languages, specifically HTML and ASPX markup.

Let’s take a look at how this can help us with web applications we work on.

Searching for specific tags

Often you want to search for tags in your markup, for instance a div that is using a specific class. With ReSharper, we could search for the usages of the CSS class and filter it out, or as in the case we’re covering, use SSR. To do so:

1. Click on ReSharper | Find | Search with Pattern.

2. Select HTML from the drop-down list and enter the following pattern below:

SNAGHTML24e1e3f9

and click Find. If any match is find, it will be displayed in the Find Results window:

SNAGHTML19ba5077

Looking at the results, we can see that it not only finds patterns that match the exact class=”corner” pattern, but also anything that uses the corner class. The reason for that is that we have the option Match similar constructs selected. Deactivating that would result in displaying only exact pattern matches:

SNAGHTML19d7db58

It is important to know that with the previous search, a div tag of the format <div class=”corner” id”=”submenu”> would appear in the results. That is because we have Ignore unmatched elements selected. If we’d like the pattern to include tags that have other attributes not explicitly defined, we need to check this option.

Using CSS selectors to search for patterns

If you’re doing any kind of web development, you’ve no doubt used or at least heard of CSS selectors, which probably many learned to master when they worked with jQuery (including myself). Well that same power of CSS selectors is also available in ReSharper for searching for tags.

1. Enter the following pattern in the Find dialog

image

The values enclosed in $ signs are placeholders required for Structural Search and Replace, and the next step is to define them.

2. Instead of manually setting placeholder properties, we can use the newer feature of ReSharper that allows us to extract them from the pattern:

image

resulting in

image

3. We now have to define the different meanings of each placeholder. This is where the CSS selector comes into play. For the tag attribute, we’re going to define it as a tag with a selector:

SNAGHTML1a0a7f45

The attribute placeholder can also have certain conditions such as matching a regular expression or indicating the number of attributes we want to have as a minimum and maximum:

SNAGHTML1a0bedc0

In our case, we’re going to leave the defaults. Once complete, we can click Find once again to get the results:

SNAGHTML1a0d03b0

Of course, now that we have CSS selectors, we can take it further. For instance, to search for all p inside a div that has a class corner we can do:

SNAGHTML1a128a6c

Any CSS selector expression is valid.

Apart from tags and attributes, we can also have attribute value and content placeholders, and in the case of the latter, we can also use CSS selectors to define the contents.

More to come

In this first part on HTML patterns, we’ve seen how to search for patterns in HTML using both markup patterns as well as CSS selectors. However, it doesn’t stop there. We can perform replacements as well as save patterns so as to offer custom code analysis and quick-fixes. However, as the post is already long enough, we’ll save that for the second part.

April 05, 2012

dotCover 2.0 Early Access Open

dotCover 1.x is all but history. Starting this week, you can download and play with dotCover 2.0 early builds.

Why would you want to do that? Here’s why:

  • dotCover 2.0 can be installed into 4 versions of Visual Studio, including Visual Studio 11 Beta (with Visual Studio 11 RTM support to follow as soon as it’s available.)
  • dotCover 2.0 bundles a unit test runner. This means, even if a developer doesn’t have ReSharper installed for whatever reason, he/she can still use dotCover for unit test coverage — and of course, for simply running unit tests as well. That said, if dotCover is installed into Visual Studio that also has ReSharper, ReSharper’s implementation of unit test runner is used by default (which you can change at any time.) At this point, dotCover’s own unit test runner supports NUnit and MSTest. If you’re using MSpec or xUnit, you still have to use the ReSharper implementation. However, we’ll be working with plug-in authors to ensure compatibility with dotCover as well.
  • dotCover 2.0 extends filtering capabilities with attribute filters. This enables you to exclude entities marked with certain attributes from coverage analysis. Attribute filters are specified via dotCover | Edit Attribute Filters as fully qualified type names or masks. This could be useful for filtering out test fixtures or obsolete code.

One more feature that is not yet available but is being worked on is the Hot Spots view, which is designed to provide a list of most risky methods in your solution, in terms of high cyclomatic complexity and low unit test coverage. Stay tuned for more details when we’re done with the feature.

Meanwhile, download dotCover 2.0 early builds. If anything goes wrong, please don’t forget to file bug reports in dotCover issue tracker.

March 21, 2012

JetBrains Drinks Meetup in London

JetBrains is in London next week for DevWeek and it’s a great opportunity to have an informal meetup with our users and friends over a few drinks.

So, we’ll be sponsoring some beer injections and snacks on the 29th of March. All you have to do is show up. Since the venue has limited places however, we do need you to register beforehand.

It will be held at the Fence in Farringdon, which is within walking distance from the Barbican Center where DevWeek is held. Starts at 6:30, after the conference.

You don’t have to be present at DevWeek to attend. This is open to anyone that registers.

Hurry up as the number of places are limited and they are going fast!

March 19, 2012

dotTrace 5.0 Performance is Live

It’s official: the powerful .NET performance profiler from JetBrains gets a long-awaited update.

Please welcome dotTrace 5.0 Performance that you’re invited to download and try.

Key features of dotTrace 5.0 Performance include:

  • Attaching to and detaching from an already running process. You can now involve a profiler on demand, when an application starts displaying performance issues, and detach it from the application as soon as a performance snapshot is captured. This is especially useful with production applications that you no longer need to restart to profile, and the performance impact of running them under the profiler is minimized.
  • Streamlined remote profiling. Profiling .NET applications running on remote computers becomes easier, even in restricted environments. Combined with attaching to process, improvements in remote profiling make dotTrace Performance a great tool to detect performance issues in apps run in production environments.
  • Bundled decompiler. Even if source code is not immediately available, the code of any function featured in a profiling snapshot can now be decompiled using the decompiler engine that is also used in two more JetBrains .NET tools: dotPeek and ReSharper.
  • Support for IIS Express. All major servers used to develop and run .NET web applications are now supported: ASP.NET Development Server, IIS Express, and the complete edition of IIS.

To learn more about the new release, read What’s New in dotTrace 5.0 Performance, or watch this video:

Feels good enough? Please download dotTrace 5.0 Performance and let us know how it works for you.

March 02, 2012

ReSharper 7 EAP for Visual Studio 11 Beta is now OPEN!

As you may know, on the 29th of February, apart from an Azure outage caused by a leap year bug, Microsoft also released Visual Studio 11 Beta and Windows 8 Consumer Preview.

Immediately we started getting tweets asking when we’d support the Beta. In fact we already supported it. We had it working internally, but needed to test a few more things before opening it up. After a few days of testing, it now looks like we have a reasonable enough build to release out in the public.

Before you proceed to play with ReSharper in VS11 Beta, let us prevent false expectations with a few important notes:

  • If you have previously installed ReSharper 6 VSIX for VS11 Developer Preview, please remove the obsolete VSIX through Tools | Extension Manager.
  • The download is an MSI installer and it only works in Visual Studio 11 Beta. You won’t get ReSharper 7.0 EAP installed into Visual Studio 2010 or 2008. Support for these will come later on.
  • Installing ReSharper 7 EAP for VS11 Beta will keep earlier versions of ReSharper in Visual Studio 2010, 2008, and/or 2005. You can still use ReSharper 6.x or earlier in these VS releases, and at the same time have ReSharper 7.0 EAP installed in Visual Studio 11 Beta.
  • VS11 Beta support means that ReSharper 7 EAP plays nice with VS11 Beta in most scenarios that involve existing code bases. There are known issues here and there, and we’ll be looking to fix them as we go further with this EAP. The EAP will culminate with the release of ReSharper 7 Preview for VS11 Beta later this month.
  • As usual with ReSharper EAPs, this is an evaluation version. As such, you do not need a license key and your license key for 6 will not work. When it runs out, just download a newer VS11 Beta-compatible ReSharper build.
  • Currently there is only basic support for asynchronous solution loading, a new feature in VS11. We are working on this and it will be supported in full.
  • Currently there is no support for WinRT projects: expect false positives from ReSharper code inspections in these. Again, we are working on this and it will be supported.
  • However, some VS11-specific support is already there: for example, ReSharper can open stuff in provisional tabs when you navigate and search for usages; it makes its commands available through Quick Launch and the updated Solution Explorer.

And once again, this is a very early EAP release. Use with extreme caution. We know that many of you really like to have ReSharper and as such, have decided to open the EAP as soon as possible.

And remember, any and all feedback is welcome. Although we listen to all channels, including comments here, twitter, email, or forums, for bugs we prefer you file them directly in our bug tracking system. That way, we make sure it doesn’t slip and you’re also aware of the progress.

Now that you feel you’re ready, download ReSharper 7 EAP for VS11 Beta.


April 28, 2011

Siemens Smart Grid Innovation Contest

1The Smart Grid Innovation Contest is an open international competition to find new, sustainable Smart Grid business models and technologies for the near future.

Siemens believes in the future of the Smart Grid for a more sustainable world – a vision of intelligent, flexibly controllable power generation, distribution, and consumption. The breakthrough of Smart Grid applications, though, strongly depends on attractive business models that combine technologies and economic benefits.
The Smart Grid Innovation Contest consists of two phases: during the first phase, ideas are generated and developed in a collaborative community. In the second phase, universities are invited to submit research proposals to further elaborate and develop ideas.

Idea contest (for everyone) from April 13 to May 31 2011
 
Call for proposals (for universities) from October 4 to November 30, 2011. Siemens will award €15,000 and a workshop trip to Berlin together with Siemens Smart Grid experts to the five best ideas and the most valuable contributions. In a joint effort with several universities, more than €1,000,000 will be invested to translate the participants’ ideas into innovation. The contest addresses your creativity and your local expertise in making energy systems smarter and more environmentally friendly.

Watch an idea grow, through suggestions, comments and ranking, into mature and realistic innovation!

Full competition details and rules at:
http://www.siemens.com/smartgridcontest

September 22, 2010

Build a Quadrocopter using .NET Micro Framework and win a VS2010 + MSDN Subscription

For those of you are interested or working on a Quadrocopter controlled by the .NET Micro Framework, there is a contest where the winner of a flying Quadrocopter will get a free VS2010 license including 1 year MSDN subscription.

Check my blog at http://netmicroframework.blogspot.com/

September 28, 2008

IndiaStockQuotes Version 1.2.1

It has been a long time since I actually worked on the IndiaStockQuotes component. Just had sometime over the weekend and fixed some bugs in the component and got out a new release. Also upgraded the component from .NET 2.0 to 3.5. I dont yet use any 3.5 specific features, so you should be able to recompile the source agains 2.0 and still get it to run.

Check it out at India Stock Quotes

September 26, 2008

Moving a project from VS 2005 to VS 2008

When you open a VS 2005 project in VS 2008, Visual Studio offers to migrate the project to the new format. Usually there should be no problem with this and all your project files, solution files, Test cases etc should move seamlessly to the 2008 format.
Targettedframeworksetting
But if you do build your project you will notice that your output assemblies actually target .NET Framework 2.0 and not 3.5. This is basically because the migration retains the targeted framework to make sure you application does not fail. The method to change this setting after migration is not easy to find.

For VB projects, this setting is actually hidden inside, My Project -> Compile -> Advanced Compiler Options dialog. Obviously, this is not very easy to find. (See Image)

In C# projects this setting is a lot easier to find in Project Properties -> Application Tab itself. I am not sure why the VB team actually made this setting so difficult to find.