Wednesday, February 29, 2012

Windows 8 Consumer Preview Download

And ladies and gets, is finally here ! Please go ahead and download your fresh, just out of the oven copy of Windows 8 Consumer Preview right here !

These news come straight away from the Mobile World Congress and is for you Windows fans to celebrate !

Happy touch !

Monday, February 27, 2012

Some Windows News…

Busy as usual at work and with personal projects and hasn’t been blogging as much as I would like. However, I wanted to share a couple of news/articles:

Celebrating Windows with the new Windows 8 logo ! Going pure Metro style and going back to basics with the Window !
And for all of you having fun with Windows Phone and keeping up on the latest releases, check it out ! We finally have a sneak peak on Skype for Windows Phone ! You can already download the Beta and start playing with it !
For the moment I have been working on some HTML5/CSS3/JS pet projects to brush up my skills, along with Windows Phone and Windows 8 bits here and there ! More on that soon.


Tuesday, February 21, 2012

“This is My Story” Windows Phone App among winners in Nokia Contest


This past Friday 17th, on site, Windows Phone contest results were announced . Guess what, my Windows Phone concept app  “This is My Story”, was among the winners !

image is a contest created by Nokia and onedotzero to invite developers to create experimental projects on the Windows Phone platform to encourage mixing arts and technology. The site also showcases and promotes experiments submitted.

Windows Phone platform lets you create apps and games easier than ever before. On top of that, prototyping a functional concept is quick and clean, saving you a lot of time if developing full versions straight away. I put this concept together in around 3 to 4 hours, including video and submission. At the end I had the prototype running from the emulator to my Nokia Lumia 800 ;)

More people joined by the end of the day on Monday to a good amount of participants with some really cool experiments and apps ! Is good to get something out there with potential. Next step is getting out a game prototype ;)

Sunday, February 12, 2012

Accessing Files in Windows Phone Apps



Traditionally in .NET, for WPF or elevated Silverlight Out of Browser applications, you could retrieve files from local storage directly by accessing the file system and retrieving directories and files names. You could do so in the following way:

However, when working with Silverlight apps (without elevated permissions) or specifically, Windows Phone applications you are not allowed to go outside the boundaries of the application Isolated Storage. This means, that you need to access files through it only and you are limited to the boundaries it imposes.

To access files in a Windows Phone application from the Isolated Storage you can do it in the following way:

Hope it helps !

Saturday, February 11, 2012

A Newton Cradle in Expression Blend


Just a nice quick lab project to demonstrate how to put together a quick Silverlight application mimicking a Newton Cradle. I created the prototype completely in Expression Blend using Animations and Behaviours. Didn’t have to write a single line of code (although of course behind the scenes this is a Silverlight C#/XAML application) and I used best practices regarding naming conventions and user controls reutilization.


I’m in the process of setting up a Labs page online to show all this prototypes and share code and tips. Stay tuned.

Note: If you are interested in the source code of the project, let me know and I’ll more than happy to send it to you.

Thoughts on Frontend Windows Development

Disclaimer: the statements I’m about to make can be quite polemic, specially for developers working on platforms other than .NET. My intent is not to undermine other technologies or developers. My objective is to establish the need for .NET developers to step up in the frontend interactive application development field and learn the existing awesome tools that make .NET frontend development the best platform for visual interactive experiences for the Windows environment.
If you are a .NET developer without experience on this field, I urge you to get into it, it is probably the best time ever to get on-board. If you are, on the contrary, a developer on other frontend platforms, please don’t take this personal.
In the past, when working on .NET interactive applications development, I have had the help of experienced user interface developers who mastered Expression Blend, which in my humble opinion is the best user interface visual development tool in the market. I might be biased towards Blend for being a .NET development tool, but trust me, I have invested time exploring iOS, Mono, Android, Php and other development tools and environments, and I can say that they are far behind from the experience you can get from working with Visual Studio and Expression Blend.
However, since I moved to the UK I have found that .NET frontend development experience is actually rare on this side of the Atlantic ocean. Most .NET developers are focused on ASP.NET and server side development, which is kind of a shame if you take a look at all the exciting trends and development happening on the front side of things. WPF and Silverlight are not well known, and surprisingly Silverlight is just seen as a poor flash competitor attempt, which is incredibly far from the truth, since Silverlight has been quite successful and has evolved as a platform from being a mere browser plugin.

Traditionally front end interactive development was done in Flash at first, and then in Flex and Air. However the problematic resources consumption of Flash and the ban from Apple to run Flash on their mobile devices have undermined the evolution and reach of the platform. Also the evolution of web technologies, the JavaScript frameworks, the advance in CSS 3.0 and the support of HTML5 have overwhelmed Flash and Silverlight as web platforms.
Without question, .NET technologies are currently far better to develop interactive experiences for the Windows platform, and HTML/CSS/JS are the way to go for web development and cross-platform experiences.
imageThat being said, currently all interactive development for the Windows platform should be done in .NET and using .NET development tools. The productivity, integration, scalability and flexibility of the platform and the native tools are far better than anything else. When developing .NET interactive applications, Expression Blend is actually THE tool to develop user interfaces for .NET powered technologies, and it will be the de-facto tool for Windows 8 interface development, no matter the language developer chose (C#/XAML or HTML/CSS/JS).
The beauty of Expression Blend is that is a powerful visual user interface development tool that allow UI devs to create amazing custom interfaces in a visual environment similar to Photoshop or Illustrator but generating optimized XAML code as they create the UI elements. The XAML code generated is seamlessly integrated into the project structure and the code behind. This allows UI/XAML and C# developers to work closely together and interact with the same code, which is by far the best integrated application development environment in the market, beating up any other language and platform out there.

Blend is, as I said before, a user interface development tool. Is not a design tool, although many people think that is the case. Blend was created to create presentation code in the most productive way keeping it totally integrated with the code development process. all modern interactive .NET technologies benefit from this integrated environment, including WPF, Silverlight, Windows Phone, Surface, and Metro Applications development for Windows 8. Soon, web development for next generation platforms will be totally integrated too.
I guess that one of the big problems of Blend adoption is that by tradition, .NET developers are not very good designers. Although Blend provides advanced importing tools to consume design files produced by Photoshop and Illustrator, it will be require to re-draw and rework some of the design parts to take advantage of XAML. After all, we don’t to work with bitmaps, jpgs or pngs always, we want to transform as much as possible into XAML code to increase performance and flexibility. This requires UI developers to understand design concepts and be able to recreated the UI design in the correct way. On the other hand, UI developers need to understand how the underlying code works and how XAML integrates into the overall application architecture, so basically they are also require to understand the .NET framework and how the UI interacts with code. This represents a barrier for people coming from other platforms like Flash, since understanding the .NET framework is generally out of reach.

So, if you are not a .NET developer and want to get on-board, my suggestion is to start by learning C# and OO practices. Learn the fundamentals and understand the framework and then move to a specific frontend technology you like, like WPF, Silverlight, Windows Phone or such. If you fail to understand the .NET framework and the OO fundamentals, it will be quite difficult to implement robust, optimal and flexible frontend applications in .NET.
If you are a .NET developer and have been just staying in the backend side of things, now is the time for you to actually come forward and get into frontend development. You are the best fit to create Windows interactive applications since you already know the fundamentals, the OO principles and the .NET framework. You will be able to jump into it right away since you will only need to learn the XAML specifics for the technology you want to use, that being WPF, Silverlight, Windows Phone, XNA, Metro and Windows 8 (WinRT) and even Kinect development !
Hope this generates reflexion and help you decide to take some time and learn some new things. Is not my intention to offend anybody out there or undermine the great power of other platforms.

How to Register Your Windows Phone


If you have been able to play with Windows Phone and have been learning how to develop Windows Phone applications, you will want to test them on a real device before publishing to the Windows Phone Marketplace to make sure the app will run as expected.


In order to publish applications, you will need a few things, which is all part of the process of becoming an approved publisher. No matter what people say, this process is far easier than setting up any kind of physical business, and arguably, the Windows Phone Marketplace registration is better that the one provided by Apple and Android.

Things you need to be a Windows Phone Marketplace Approved Published:

  • A valid Windows Live ID
  • A valid and current App Hub developer account ($99)
  • The Zune software installed on your developer machine
  • Windows Phone SDK 7.1 installed on your developer machine
  • An actual Windows Phone device with the latest updates (7.1)

It might seem as too many things just to get started, but if you are a developer and you have been playing with Windows Phone already developing applications using Visual Studio and the Windows Phone emulator, chances are that you already have most of them.

The Windows Live ID is basically the centralized Windows account that you use for email, the phone itself and many other services. Having your information, contacts, calendar, email, SkyDrive and related associated with your Windows Live ID is a convenient way to keep your info in sync and be able to setup devices and computers easily.

The App Hub developer account is what allows you to become part of a vibrant and expanding developer community. It is not only related to the Windows Phone marketplace, it encompasses also  the Xbox Live community and hopefully will be integrated with the Windows Marketplace coming with Windows 8.

The Zune software is basically the way you sync and interact with your phone from your computer. Before Zune I used to work with iTunes, specially since I got my first iPod. However I must say that using Zune has been a pleasant experience and I have already switched completely to Zune.

The Windows Phone SDK 7.1 comes with the Visual Studio tools and emulator, so you should be ready to go.

The device itself is the coolest part. I have an HTC Mozart and a Nokia Lumia 800. I love both of them, but the Lumia screen resolution and color is far better.

Ok, so once you have everything in place, fire up the Device Registration wizard on your computer by going to Start/All Programs/Windows Phone SDK 7.1/Windows Phone Developer Registration (screenshot below)


Make sure to unlock your device screen. Once you do that, you will be able to Register the device. After entering your details and registering it, you will see the following message at the bottom of the screen:


And with that said, you are done. Next thing is to fire up Visual Studio, open your Windows Phone project and switch the deployment setting to use the Windows Phone Device instead of the emulator.


Run the app and you will see your awesome app kicking ass on your Windows Phone. Notice that the device screen must be unlocked for Visual Studio to be able to connect to it. Once you have deployed your app to your Windows Phone, it will stay installed even after stopping Visual Studio, so you will be able to take it with you and show it to your friends and stake holders !

Happy Windows Phone deployment !

Friday, February 10, 2012

Using IIS Ports: Avoid the Reserved Ones

I have been using IIS for a long time and I have approached IIS setup and local hosting for development purposes in several different ways. When working alone or doing quick prototyping, is probably easier just let Visual Studio automatically assign the port when running the app, specially if you don't need it to be the same every time. However, when you are working with a team of developers and you require your web apps to use IIS and run on the same port every time, it is a good idea agree on which ports you are going to run your web applications and configure IIS accordingly, setting up and mapping your web sites to your web app's source code.

Recently I took over a project that was using this approach. The project had several web applications using IIS and we also had several environments (development, QA, staging, production, etc). The team had agreed upon using reserved IIS ports (below 1024) when working on local environments. This wasn't a big issue since once the apps where deployed on the servers, everything was configured to use specific domains, and all sites where using port 80. However, on the local environment they were setup to use the reserved ports.

I decided to do some research and see how people normally approach this, and it turns out that although all of us should have a clear understanding of IIS setup and which are the reserved ports, it turns out that most people don't know about it. People just normally go on with the idea that as long as the port is not being used, you can use it for your apps. Although this might not be a big issue when working locally, we should definitely avoid using reserved ports.

That being said, remember: Always use ports above 1024 when setting up your web apps to use IIS !

Thursday, February 9, 2012

How to Retrieve Properties from an Office Doc



Is always good to go back to basics and do some low level programming. Office interoperability has been hard before C# 4.0 since the previous version didn’t supported dynamic language features.

C# 4.0 has come a long way since its first version, and is amazing how much support the current version offers you to interoperate with unmanaged code. C# is probably the best language out there that can provide you with a deep support for Windows specific platform features, but that also gives you incredible power to abstract the platform and code your apps independently from it. If you don’t believe me,  take a look at Silverlight running on Mac, Web and Windows (even appearing as a seamless desktop app), Mono having C# running as an open source platform in Linux, and the Moonlight open source Silverlight port.

Anyways, we all now that C# 3.0 was a bit weak in terms of interoperability with unmanaged code and that to access an Office Word document you had to do a lot of hand coding to control all the possible exceptions and interop requirements since office. Now in C# 4.0 you can easily interop with Office files.

The following example shows you how to open an Office Word document, retrieve its properties, close it and then display the document author name on the console.

Remember to make sure the “WordFile.docx” file is on the same directory as your executable (in my case I just added the file to the project and set it to be copied to the output directory) and to add a reference to “Microsoft.Office.Interop.Word” (.NET tab).

As you can see, this is a great improvement from C# 3.0. I’ll be trying to cover more on C# 4.0 features this year since no matter what, after exploring many languages out there, I still thinki C# is on of the best, most powerful and most elegant languages out there, which makes your life as a developer more productive and effectively easier, which by all means should be the goal of every language.

Enjoy and hoe it helps !

Wednesday, February 1, 2012

Kinect Quickstarts in Channel 9

Just a quick post to share the very helpful Kinect quick starts on Channel 9. Easy to follow, step by step video tutorials to get you up to speed on Kinect development. Remember that with the new version you will be able to create and release your Kinect applications for commercial purposes, so get up to speed and get on the NUI development train fast !

Kinect for Windows Released

Exciting news ! Microsoft has just released the new Kinect for Windows. The unit is already available in

The new version is a bit more expensive than the first version of the device, but it comes with a commercial license and several features intended to improve the sensor capabilities when used with a computer.

Kinect for Windows can be connected to computers running Windows 7 and even the Windows 8 developer preview. The Skeletal and Join tracking has been improved providing a more accurate and faster tracking. The new version also provides a new Near Mode that enables the depth camera to detect objects as close as 50 centimeters in front of the device with graceful degradation at 40 centimeters.

This is all great news, so make sure to get your hands on the new device, download the new SDK and start developing for Kinect apps !

Enjoy NUI development, after all, the smartest device our there is the human body, never forget !