Setting up our surface development environment

by brogge 24. February 2009 14:07

When our Microsoft Surface arrived, this is the list of things I did and needed to get it installed the way I wanted:

  1. Cut open the cardboard box at the top side (although it is clearly indicated that you shouldn't cut the box). Not that it is a problem when you (gently) cut the box, but the top part of the box just slides off, so it's a little stupid cutting it apart.
  2. I read the manual ! I didn't want to run a couple of thousend just by doing something I should have known. (Since it's only a very short booklet this can be done rather fast.)
  3. I asked a couple of colleagues to help me move it to my office. However, before picking it up I tried to find out what is the best way of holding the thing. The manual doesn't state anything about this. I did some searching on the net and found a movie of people moving the surface by holding on to the transparent part of the machine. Although this seems to be the logical thing to do, I wanted to make sure that the top can hold the weight of the machine. I still haven't found any official statement regarding this topic, but I guess that you can safely move it this way. Warning: if you need to move it up our down a staircase you probably want to be with more than two persons !
  4. I've always been convinced that the environment you are developing in is very important. Therefore I wanted to set mine up in such a way that it feels comfortable working both on the surface and on my other development machines. I wanted to have enough space to easily move around the surface, demonstrate applications to other people, have some hallway testing once and awhile (after all a surface has been created to use in a more social setting). On the other hand it also wanted to be close enough not to have to get up and walk to the surface when developing for it or when trying something out. To achieve this goal it turned that I needed:

    • An extra long VGA-cable in order to have the external monitor positioned next to my other screens. I want to developed while being seated at a desk, not on my knees next to the surface :-)
    • Either a wireless mouse and keyboard or a mouse and keyboard with a USB extension cable.
    • An network connection (I went for the wired option, although the wireless is working fine) 

      (You can see the environment I'm working in now on the picture below)
  5. I almost managed to get the environment I liked. The only downside to my set-up is that you can not move around the table anymore. On one side there is not enough room to stand or sit. I'll have to ask for a bigger office ! 
  6. Once the physical installation was completed I set up the software development environment. The unit comes with Visual Studio 2008 Express and a 30-day trial of Expression Blend. I replaced both of them with their full featured counterparts.
  7. That was it. We are now ready to do some actual programming !

Currently rated 4.3 by 3 people

  • Currently 4.333333/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: , , , , ,

Microsoft Surface

Getting BlogEngine.NET to work within a DotNetNuke website

by brogge 16. February 2009 23:40

Since I wasn't completely happy with the functionality the default DotNetNuke blog module provides, I decided to change to BlogEngine.NET. As you can see from the address of this blog I wanted to include the blog in our company website as a sub-directory.

When creating a virtual application within the DNN root website I ran into some errors. Whenever I tried to open the blog I got an error regarding Resources that could not be found.

I added the following lines of code (marked in red) to the web.config of the DNN root and now they are running happily next to eachother.

<location path="." inheritInChildApplications="false">
  <system.web>
    ...
  </system.web>
</location>

Currently rated 5.0 by 3 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: , , ,

BlogEngine.NET

Our first development surface arrived !

by brogge 14. February 2009 05:13

Yesterday our first development surface unit has arrived. We encountered some minor issues when installing it (mostly because of a lack of knowledge). This post describes some of these issues and the solutions we have found. Hopefully this information can help other people when installing a surface for the first time.

We ordered the development unit about a week ago and had it delivered yesterday, so we thought that was quite fast.



After having unpacked the unit we noticed that the bluetooth mouse and keyboard were not included. Finding a spare mouse and keyboard was not really an issue, but still, one expects to find all parts in the box.Besides that the manual includes all information needed to get the unit up and running quite fast. After half an hour we could start up the SurfaceDesk and start 'touching' the surface. We executed the short callibration because the manual states that the complete callibration has been done for each surface before shipping.

Unfortunately nothing happened when touching the surface. For some reason it did not recognize any fingers, tags not blobs. Only a complete black button seemed to trigger some kind of reaction.

In order to try to solve this, We then tried the full callibration. The procedure went quite well and reported that the callibration was succesfull. However, nothing changed in the behaviour of the surface. After having tried several things (rebooting, re-callibrating - both simple and complete) we found out that the callibration chart is covered (on both sides) with some kind of protective foil, of which it is not immediately clear that it needs to be removed. I don't know (yet) how the surface functions exactly, but my guess is that the foil makes the black squares look grey and therefor the unit doesn't callibrate correctly.

After having removed the foil (on both sides) and having executed the complete callibration with the correct callibration chart the unit is now working properly.

We now can start to play with the SDK, sample applications and write some code !

PS. We have contacted Microsoft and apparantly the mouse and keyboard are no longer shipped to Europe and Asia. The documentation does not yet reflect this change and still lists them as being in the box.

 

Currently rated 5.0 by 1 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: , , ,

Microsoft Surface

Changing attributes values at runtime

by brogge 9. February 2009 23:11

This post adds some remarks to the excellent post of David Morton on 'Changing attribute parameters at runtime', which can be read at http://blog.davemorton.net/2008/10/changing-attribute-parameters-at.html.

I am trying to hide some properties for my object when it is loaded into the property grid. When I applied the method put forward in David's post it didn't seem to solve my problem. In fact, all properties dissappeared from the property grid.

I have done some research and found out that David his method only seems to be working when the property is actually annotated in the code. So changing the read only property did not work for the following property: 

[Category("Document template")]
[
DisplayName("Description")]
[
Description("Description of the document.")]
public override string Description
{
  
get { return base.Description; }
  
set { base.Description = value; }
}

while it did work on this version of the code:

[Category("Document template")]
[
DisplayName("Description")]
[
Description("Description of the document.")]
[Browsable(true)]
public override string Description
{
  
get { return base.Description; }
  
set { base.Description = value; }
}

When retrieving the attribute information using the following code, both produced the same result:

PropertyDescriptor namePropertyDescriptor = TypeDescriptor.GetProperties(this)["Description"];
BrowsableAttribute attrib = (BrowsableAttribute)namePropertyDescriptor.Attributes[typeof(BrowsableAttribute)];
FieldInfo isReadOnly = attrib.GetType().GetField("browsable", BindingFlags.NonPublic | BindingFlags.Instance);

However, when setting the value to for the attribute to 'false', the result was different. When using the first code snippet all properties of the object dissapeared, while the second code snippet made it work.

I don't have an exact explanation for this (yet) but will add it to this post as soon as I find one. In the meantime, annotating the code with the attribute seems to solve my problem.

Hope this helps !

Currently rated 2.0 by 1 people

  • Currently 2/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: , , ,

Powered by BlogEngine.NET 1.4.5.0
Theme by Mads Kristensen