New Home

All of my blog, Code Trek is now hosted with Windows Azure along with my homepage at kowsheek.com.

The posts still have the same permalink structure so you can reach all the posts on the site by replacing https://codetrek.wordpress.com/ with http://kowsheek.com/blog/.

Here’s wishing you all the best an more to come in 2013!

Advertisements

Hello Windows 8 XNA-ish

Yes you read that right. You can really get a flavor of XNA on that snazzy new Windows 8 installation of yours.

Anything you build using this can work as Modern UI app. I know for many of us, like the crew at Three Red Cubes, this revelation put a smile across our faces.

Before you think I am bluffing, much of what I am about to detail has been covered by the original posts. Also, there is a Channel9 post about it.

Here is a rundown of my experience and the broad strokes of the steps.

Backstory

The answer to the owes of XNA developers comes in the form of MonoGame which is an open source implementation of Microsoft XNA 4. MonoGame allows XNA-style development for plenty of platforms but that’s not the focus.

The development of MonoGame for Windows 8 has been a little slow so the hackers at SickHeadGames came to the rescue.

Now it is possible to migrate existing XNA games without having to dive through SharpDX.

(Kind of Long) Setup

a. Getting into Github

Github account and the client are free. Also, One click installs are awesome!

b. MonoGame Source Code

1. Run Git Shell.
2. Change directory (cd) to where you want to store your code
3. Copy and paste this to the shell and hit enter:

git clone https://github.com/SickheadGames/MonoGame && cd MonoGame && git submodule init && git submodule update

to start pulling the code.

c. Visual Studio Template

If you browse to C:\Users\[you]\Documents\GitHub\MonoGame\ProjectTemplates\VisualStudio11.MonoGame.2.5\VS11MGWindowsMetroTemplate you’ll find a whole bunch of files that you can zip up and copy over to C:\Users\[you]\Documents\Visual Studio 2012\Templates\ProjectTemplates\Visual C#. This will create a Visual Studio 2012 project template once you restart Visual Studio.

d. Reference MonoGame

Once you start a solution using that new template we just created, right click on your solution in the Solution Explorer and add the MonoGame Framework Windows 8 Project from C:\Users\[you]\Documents\GitHub\MonoGame\MonoGame.Framework\MonoGame.Framework.Windows8.sln.

Now, add a reference to the MonoGame Framework in your game project by right clicking on references, select Add Reference. Under Projects choose the MonoGame Framework project (check the box!) and click OK.

e. Hit F5

Make sure you select the game project to be the startup project and compile and run the project.
You should be greeted with the good-old cornflower blue that XNA programmers know and love.

f. Content Pipeline

You may have noticed the absence of that good old content project. At this time, MonoGame does not have an implementation of the Content Pipeline and Visual Studio 2012 does not have native support for XNA development therefore we need a workaround until which is in about a month at the time of writing:

1. Head over to Aaron Stebner’s blog post and (possibly) install XNA Game Studio or Windows Phone on Windows 8.
2. Open up Visual Studio 2010 and create a XNA project that will come with the content project.
3. Import all your resources and build the project which will output xnb files to C:\Users\[you]\Documents\Visual Studio 2010\Projects\[project name]\[project name]\[project name]\bin\x86\Debug\Content.
4. Copy these files to your MonoGame project’s Content folder: C:\Users\[you]\Documents\Visual Studio 2012\Projects\[project name]\[project name]\bin\Debug\AppX\Content.

Now, you can use the ContentManager object to load game assets during runtime. Just like the XNA we know.

Credits

All of this came into light, once again, from Bob Familiar’s blog posts. And it is only possible because of the hard work of the MonoGame project and SickHeadGames.

Q & A

So, is XNA dead?
I don’t think so. It has been reincarnated in Windows 8.

Will there be a Windows 8 XNA Game Studio release from Microsoft?
We don’t know yet, but you never know.

Is MonoGame the only solution?
No, SharpDX is just an awesome a solution.

For now though, here’s to having XNA back on Windows 8.


Microsoft of the Future is Now

Last weekend my friends from Three Red Cubes Inc. and I were at NBTC. A detailing of the event itself deserves a post, but this post is based on a conversation I had with the CEO of a pretty cool and successful Toronto-based start-up developing software as services using Java-based web-frameworks.

As most of my conversations do, the question came to, “Why do you, as a start-up, use .Net?”

In most people’s perspective, Microsoft’s technologies are confined to being used in the cubicles of high-rise corporate buildings. Images of Windows 98 and XP flash through their minds when you say Microsoft. If you identify yourself as a .Net developer, they look confused, wondering why you don’t look like a nerd or surprised that you are having a conversation, in-person. They probably think you should look a lot like this guy.

Not an image start-ups should associate with. Not one bit.

The new face of Microsoft is not represented by their past image, but it’s not determining the future. The future of Microsoft is being determined right now.

Embracing Open-Source

A few hours before I started writing this, it was announced that ASP.Net MVC 4 and several related technologies are being made available as open-source projects, accepting contributions from the community. That’s massive because ASP.Net MVC is Microsoft’s flagship web-framework of the future. If this is the attitude towards ASP.Net MVC, I can’t wait to see what’s in store.

This is not the first time of course, there has been many more initiatives from Microsoft which are all enumerated at Microsoft Openness. As this push continues, I believe we will see CodePlex and Nuget take centre stage. These are two amazing platforms where open-source is very alive.

Now, there are a lot of conspiracy theories around the reasons behind Microsoft’s push towards open-source. For me, as long as I have personally seen initiatives such as Web Not War in action and as long as the community is being nurtured, I’m good.

Unifying Experiences

Having heard it from Eric Gales at NBTC, I can say that Microsoft’s realization that all technology should be unified is comforting.

Technology-wise, everything is being brought under one umbrella, which is great! Specially as a young developer, I can learn everything I wish to on the .Net web-stack and then transfer these skills to say, game development. And this is not just theory, I am a web-developer by birth but with the guys at Three Red Cubes I’ve worked on more than one game. It’s made possibly by how well the entire collection of frameworks and tools are integrated. They say Visual Studio spoils you, it’s true.

For consumers, learning to use Word or Excel means having learnt to use Office365 or SkyDrive because they all provide an unified experience. This is the case for Windows Phone, XBox and the up-coming Windows 8. They all speak the same user-experience language so we’re always at home.

Engaging Students

From my experience as a student, there is no other company that I know of that puts in so much effort to reach students. Microsoft has teams of amazing people dedicated to running programs for us students. The Dreamspark program is just one of many programs that make software worth thousands of dollars available to us students.

This is to Microsoft’s advantage of course. Students are going to continue on to become developers, consumers and influence the course of  technology and businesses.

Inspiring the Future

Part of building a future is tackling the problems of the present. Imagine Cup is yet another way for Microsoft to encourage students to use their technologies. This time, to change the world and to solve problems experienced by thousands if not millions over the world. Big words? Not at all, this has been the culture of Imagine Cup, see for yourself.

To arrive at anything remotely close to its vision, a world interconnected via technology and the cloud, Microsoft has to work tremendously hard. Maybe five years is a tall order but with all that it is doing, Windows 8, Windows Azure, and .Net technologies, powering forward to a super sleek future is only but a matter of time.

As a start-up, the image we associate with is open-minded, community-involving, forward-thinking and technologically savvy. And this is the kind of future that seems to be in the making for Microsoft. Being as smart as we are, Three Red Cubes jumped on board pretty early. This can only end well.


Building Laaalallaaa Share

My tally for Windows Phone 7 applications isn’t too high. Not compared to some of my friends at Three Red Cubes. In my defense though, I’ve been working on several MVC projects that are pure fun to work with. But to close the gap, I got down and dirty and wrote Laaalallaaa Share (♫share).

The application is really simple but it uses a very interesting .Net namespace Microsoft.Xna.Framework.Media and some classes from Microsoft.Phone.Tasks.

MediaPlayer

This static class exposes a number of methods and properties to access the media player (duh!) and the library.

For example I used the properties in MediaPlayer.Queue.ActiveSong to find the details of the current song being played. MediaPlayer.State holds the status of the media player, use it to find the state of the player.

This class also exposes a number of events such as ActiveSongChanged or MediaStateChanged that lets the application know if the current song has changed or if the song has stopped/started playing. Handy stuff.

MediaPlayerLauncher

Launchers and Choosers in the Windows Phone world give us developers access to a number of operating system and user functionalities.

The MediaPlayerLauncher is used to “start the media player and play the media file you specify.” But you don’t necessarily have to play a file, you can just take the user to the music player, like I did. Read more about this class.

ShareStatusTask

As of Windows Phone 7 Mango (Windows Phone OS 7.1), this class exists in the Microsoft.Phone.Tasks namespace. This class launches “a dialog that enables the user to share a status message on the social networks of their choice.”

By setting the Status property and calling Show you could get to the People Hub’s “Post a Message” page and let the user post away. Read more about how to use this task.

There you are, three nifty little classes that do really cool things that I hope you’ll use in your next application. Say… when you sign up for The Developer Movement and win a bunch of expensive cool gadets or Imagine Cup and win a lot of money!


ASP.Net MVC Walkthrough – Gears of Web

There so many great resources for learning ASP.Net MVC out there, especially on Scott Guthrie’s blog. I found that the approach taken by most bloggers in their tutorials involves writing a project, while it is a great way to get the some hands-on experience, it can be overwhelming to first understand the context of the project and then how the MVC framework handles the project.

In this walkthrough series, I will go through the beautiful ASP.Net MVC framework and attempt to explain its many cogs that interact to build powerful web applications. I won’t be going in to any projects that involve restaurants or nerds.

First let’s get the gears of war err… web.

Visual Studio 2010

You might have heard of it, it’s this amazing IDE we .Net-ers use. VS2010, like its predecessors comes in many editions. The VS2010 Express Edition is free and pretty sweet. Also, if you’re a student, don’t read any further and head over to DreamSpark and get yourself a fresh VS2010 Professional Edition. Yeah, pretty sweeter!

Web Platform Installer

This is something you might not have heard of. Using Web Platform Installer Microsoft distributes all its web components to us developers. It’s got everything. Get it. Now.

Nuget

I have nothing else to say to you if you have not installed Nuget. It’s the one tool that every .Net developer needs besides Visual Studio. With it, you’ll be able to download from a plethora of community powered tools and projects that will make life and working with MVC a breeze.

Everything else

From here on, installing ASP.Net MVC 3 and updates for Visual Studio should be an easy exploration. Hint: Web PI. In my next post, I’ll write about all the basics and background to MVC. Stay tuned!

This post also appeared on the Go DevMENTAL blog.


ASP.Net MVC Walkthrough Series

In this walkthrough series, I go through the beautiful ASP.Net MVC framework and attempt to explain its many cogs that interact to build powerful web applications without going in to any projects that involve restaurants or nerds.

1. Gears of Web


Care Presentation at DevCamp Recap

DevCamp Toronto was a lot of fun with awesome speakers. Looking forward to more events from Make Web Not War, it’s a great place for open source and community talks. Loads to learn and enjoy!

To prepare for the presentation I had written up the gist of my presentation… and here it is with the slides!

Slides

Transcript

Slide 1

I’m going to talk about Care, a cloud powered
application to help empower patients to take
an active role in their healthcare. I am also
going to talk about why and how we took Care
to the cloud. And of course I’ll talk about the technologies
involved.

Slide 2

Every idea spawns from some needs and the need for our application was brought into attention at Code Your Art Out in the summer. Now what are the needs?

Almost 80% of Ontarians over the age of 45 have a chronic condition but the time of healthcare professionals is limited so many have to manage their own conditions. The time between appointments for patients is usually long causing lack of communication and miscommunication of patients’ symptoms.

The adoptation of technologies is slow, in the healthcare industry at least, and it’s understandable, typical healthcare applications will cost about $30,000 in infrustructure and IT. Especially if you are focusing on non-profits, as we are, it is so expensive for them, deploying applications to solve problems become an impossible task for them.

Slide 3

To tackles these needs Care exists. Unlike most healthcare applications its aim is to solve a small and realistic problem.
In its core, it is a personal symptom management tool. It provides guided forms to record symptoms and create reports out of them. It’s a powerful yet simple way of involving patients in their care, also of providing healthcare professionals more accurate information about their patients and their symptoms. And how we involve our partners is by making
Care a family and group focused application so that patients can share this information with the people helping them through their conditions.

Slide 4

That just solves one part of the problem, connecting patients to their professionals. To solve the problem of lacking infrustructure we picked the cloud. By hosting applications on the cloud we’ll be saving thousands on infrustructure, IT and utilities. It provides for a secure hosting environment with amazing fault tolerance. As developers we have access to utility style software services with greater performance and features, something we can provide to our partners. And as
developers we get greater control over our software features and versions preventing fragmentations and giving us access in case some nasty bugs creep in.

Slide 5

Now what are the tools we used to build Care and how are the feasible for our non-profit partners?
Microsoft Windows Azure with its utility style platform, it’s cost effective for us to develop
using the technologies we want. We mainly a .Net firm so we love using ASP.Net MVC, it you’re
familiar with the MVC architecture, you’ll know that it’s a beautiful framework to work with.
For our ORM we use Entity Framework Code First which plays nicely with both MSSQL and MySql so we
can deploy which ever suits our partners’ needs. For the UI we leverage open source frameworks Blueprint, jQuery UI, Mobile. All of this is served through Nuget, my personal favorite to explore and find open source tools
to use.

Slide 6

Care wouldn’t be what it is without the support of its partners in Colorectal Cancer Association of Canada
and Hope and Cope working out of Montreal. We also need you to partner with us to
bring Care to patients who need it. We are also would love to connect with you and
hear about your ideas and experiences. You’ll find our company and myself on these Twitter handles.