Why I swapped back to Android from WP7?

As many of you know, I am a huge fan of the development story for Windows Phone 7 mostly because it came second nature to me with the use of Silverlight and .Net. I even co-authored a book on developing for Windows Phone 7 (Windows Phone 7 Cookbook) and was a technical editor on Beginning Windows Phone 7 Development. I think Microsoft has done an outstanding job with the development tools like Expression Blend & Visual Studio.

I also liked how Microsoft focused on getting back to the basics of what a phone really is, making things like Contacts, Camera, Calendar, & the actual Phone work great. So naturally after I had spoke on Windows Phone 7, worked on some popular apps, written a book on it; I thought, shouldn’t I buy this phone and use it?

Continue reading

Silverlight’s Death: Living up to expectations..

As of late there seems to be a ton of rumors about Silverlight 5 being the final version with IE only support. Through this rumor many developers have gotten up in arms about the future of Silverlight and even .Net. To people outside the Microsoft development world this seems like a good thing but to the ones of us who support Microsoft, we have to ask ourselves if Microsoft is “Living up to our expectations”.
Continue reading

How to make your Avatar Mad on Xbox Live for WP7

So last night I was at a the www.allaboutxaml.com meetup and someone mentioned that they got their avatar mad the other day and it broke the glass. After they told us that, most of us spent the rest of the night tapping our avatar on the Xbox dashboard without any luck.

But when I got home I figured out the steps to reproduce it.

  1. Go to the Xbox Dashboard
  2. Shake your phone until your avatar falls down
  3. Start tapping him
  4. Enjoy! (There are multiple animations where they will get mad and do something different)

One little note, I am running the mango release of the phone so not sure if it is just in that version or if it is the current public release also.

My Predictions for Windows 8 & BUILD Conference

We are just a couple weeks out from the Microsoft BUILD conference where Microsoft’s own Steven Sinofsky will present Microsoft’s next operating system which is geared for Tablets, Desktop and who knows what else. I wanted to take a moment to put in my predictions on what will be announced and provide some evidence that leans towards that.

Many of these predictions are simply just what I would like to see in Windows 8 so I will put as many guess and hopes out there that I can.

Prediction: MinWin

MinWin has been talked about for a while in the Microsoft community as the solution to getting rid of the bloat for Windows. For a detailed overview of MinWin, check out http://en.wikipedia.org/wiki/MinWin.

The premise of MinWin is to simplify the kernel, make it lighter, faster and more secure while simplifying cross dependencies to the kernel and other layers of the OS. I believe there has been a lot of talk about MinWin for years but could Windows 8 be the opportunity for it to come out of hiding?

Evidence: MinWin

I think the evidence for MinWin comes in a couple different ways, the first and most obvious reason to introduce MinWin at this point is the porting of Windows to ARM. This port makes perfect sense to build the kernel that is lighter weight to run on ARM so that Windows can target multiple devices. When they announced the port to ARM, Microsoft also said there would be no automatic backwards compatibility. So if they were to do no backwards compatibility, then wouldn’t make sense to put in the kernel that you started back in 2003 that is faster and more reliable?

Prediction: VM for legacy apps

After many of the rumors that are floating around on the internet for Windows 8, I think this is the least likely of all my predictions to be true. I think we could see the possibility that legacy applications will run in a Virtual Environment of sorts.

Evidence: VM for legacy apps

Take what we have learned about MinWin & the port of Windows to ARM, yet in the Building “Windows 8” video, we see them reference legacy/classic applications, as seen in the screen below:

image

What I find interesting is just how the “classic” windows is presented in this screen, could it be that classic windows is just a VM?

Then just today, our buddy Steve released this http://win8.ms/metro-aero blog post. If you start to read between the lines, the possibility for this type of setup is not out of question.

Prediction: One OS/Kernel for all Devices (including Xbox)

Building on the earlier predictions, this would also lead to the complete possibility of having one kernel for all Microsoft platforms including Tablets, PCs, Phones and Xbox. Microsoft has been talking about 3 screens and a cloud for a while, but could they just simplify it so that essentially there is one Kernel for everything?

Evidence: One OS/Kernel for all Devices

Some of the evidence to this is the rumor of WP8 running the same Windows 8 kernel, and why not? The hardware is getting better, if the kernel is light enough, it might just work, right?

To add to the theory, there are rumors of Windows 8 to play Xbox games. These types of rumors start to blur what is a pc? what is a tablet?

Prediction: XAML to HTML5 engine

After the Silverlight world began to think their world was coming to an end, Microsoft has gone on record stating that XAML is not dead. Yet, they are saying HTML5/JS is going to be a big part of Windows. Microsoft has created an amazing thing with XAML, built a community of WPF & Silverlight developers but have fought an uphill battle with consumption of Silverlight plugin. Throw in new devices like iPad & Android tablets, developers want a better cross platform solution.

Evidence: XAML to HTML5 engine

The amount of evidence on this is pretty much non-existent, maybe just more of a nice feature Silverlight developers like myself would love to see because we love the tools Microsoft has created with Visual Studio & Expression Blend. In the HTML5 world there is nothing like it.

Prediction: Silverlight(XAML/Jupiter) on Xbox

This isn’t a far stretch because we have been hearing rumor and seen screen shots that Silverlight will come to the Xbox.

Evidence: Silverlight (XAML/Jupiter) on Xbox

Check out these articles: http://news.teamxbox.com/xbox/20103/Microsoft-to-Bring-Silverlight-to-Xbox-Live/

I have tried to get on the msdn blog to give you more details, but seems to be down Sad smile

Prediction: Faster Release Date

I believe with the amount of work that Microsoft is putting behind Windows 8 with the level of secrecy, they may release Windows 8 faster than expect for this large of a release. I believe Microsoft is feeling the iPad pressure.

Evidence: Faster Release Date

I think with the recent change in leadership at Apple, Microsoft’s partnership with Nokia, Google’s purchase of Motorola and many other factors, the time is now! The stars are aligning for Microsoft to no longer be the sleeping giant.

 

Final Thoughts:

I believe some of these predictions are a pretty far stretch, but I wanted to go one record for my predictions incase any of them come true. I would love to hear your predictions and I am looking forward to seeing what will be announced!

SQL Compact in WP7 Mango

One of the most requested features in Windows Phone has been a need for a SQL database solution. With WP7 Mango, Microsoft has introduced SQL compact and after doing a couple projects in preparation for it, I have to say I am very excited about this feature and wish it was built into Silverlight 5. I know there are 3rd party and open source solutions that can accomplish similar things but would be nice for that to be unified.

Anyways, to build a table is extremely easy, you just define a class as simple as the following:

 

  [Table]
    public class Feed  
    {

      [Column(IsPrimaryKey = true, IsDbGenerated = true, DbType = "INT NOT NULL Identity", CanBeNull = false,
          AutoSync = AutoSync.OnInsert)]
      public int FeedId { get; set; }

      [Column]
      public string Title { get; set; }

      [Column]
      public string FeedUri { get; set; }

    }

Why couldn’t all database design be like this? This allows you to build your tables directly in the code.

The next piece to the puzzle is just creating a simple datacontext for your database which is just as simple as the following:

    public class FeedDataContext : DataContext
    {

        public static string DBConnectionString = "Data Source=isostore:/Feeds.sdf";

        public FeedDataContext(string connectionString)
            : base(connectionString)
        { }

        public Table<Models.Feed> Feeds;
    }

And with that class you can now make calls into your database for inserting, selecting and much more. To get the feeds you would only need to do something like the following:

   if (db.DatabaseExists() == false)
            {
                //Create the database
                db.CreateDatabase();
            }

            var FeedsInDb = from f in db.Feeds
                            select f;

            Feeds = new ObservableCollection<Feed>(FeedsInDb);

And for inserts:

 var nFeed = new Feed() { FeedUri = NewRssFeed, Title = NewTitle };
            db.Feeds.InsertOnSubmit(nFeed);
            db.SubmitChanges();

With this little bit of information you can quickly see how easy it is to add a sql compact database to your WP7 app. Hope this little post helps you get started using SQL Compact!

How to Pin Tile to Home Screen : Deep-Linking

With Windows Phone Mango Microsoft introduces a great little feature called Deep Linking which allows you as the developer to give users the ability to pin a specific page in your application. By doing this you can give users an easy way to jump directly to specific functionality in your application. Here are just a few examples of how this could be used:

  • Jump directly to a RSS feed in an RSS Feed reader
  • Jump directly to a project in a Project Manager
  • Jump directly to a specific level in a Game
In my recent video about building a RSS feeder in WP7 Mango, I quickly showed how to do this with the following code:
 private void PinToHome()
        {
            
	     var foundTile = ShellTile.ActiveTiles.FirstOrDefault(x => x.NavigationUri.ToString().Contains("FeedId=" + FeedId));

            if (foundTile != null) return;
            var secondaryTile = new StandardTileData  
                                    {  
	                                      
                                        Title = _title,  
                                        Count = null,  
                                        BackTitle = "RSS Runner",  
                                        BackContent = "View Latest for " + _title ,  	    
                                        
                                    };
            
            ShellTile.Create(NavigationUri, secondaryTile);
        }
As you can see this is about as simple as it can get. When you create tiles, you can do things like set the Background image for both the front and back of the tile, as well as titles and a count that you can update from a live agent.
I just wanted to throw this article out here as a quick and simple tutorial on how to pin items to the start screen in case anyone missed it in the video.

Building an RSS Reader with WP7/MVVM/Mango

Here is a video of the session I did last week on WP7, MVVM and a few new Mango features including SQL Compact, Deep-linking to build an RSS Reader. I will be posting a detailed tutorial with more features that use Mango in the next week so stay tuned!

If you are having issues seeing this video, please watch it from here:
http://indepthdev.com/Videos/WP7MVVM_Mango/WP7MVVM_Mango.html

 

Also the source for the RSS reader can be downloaded here:

http://dl.dropbox.com/u/35552750/Code/RSSReader.zip

Hope you enjoy!

Windows Phone Garage at ReMIX South

For those of you in the south within driving distance of Atlanta will not want to miss ReMIX Atlanta, it is a day filled with great speakers from all over the country. The event only cost $30 for the early bird special so you don’t want to miss it! There also will be a Windows Phone garage where many experts, developers and architects will be there to help you answer your questions about Windows Phone development including myself.

Here is the little snippet about the phone garage:

WINDOWS PHONE GARAGE

A unique opportunity during ReMIX South will be the Windows Phone App Garage. Whether you’re contemplating how to get started on your app, need some pointers or ideas for cool features or data to incorporate, have questions on publishing or ads, or seeking some knockout design advice, bring yourself (and your app) to the Windows Phone App Garage. You’ll be able to reserve private time during ReMIX with one of the many architects, developers and designers staffing the App Garage. These experts will help you get your app finished and published into the marketplace. Plus, every participant in the Windows Phone Garage that publishes an app within 2 weeks following ReMIX will be entered into a drawing to win a free Windows Phone device.

So please register at www.remixsouth.com.