We finally finished to wait, WP7 is now coming out in a few days.
I would like to enumerate the goods and the bads of this new OS and my considerations on the same.
These are the goods:
- Leverage your current .NET skills.
- .NET Framewokr and CLR
- Silverlight and XAML: Declarative UI, Two-way binding to anything.
- XNA for Game Dev – and not only
- Visual Studio 2010 and Expression Blend: Designers, Emulator (blazingly fast and responsive
- Code/UI separation: Ask the designers to build the UI and animations of your application, and focus on your code.
- All managed code – GC and NO ability to execute NATIVE CODE
- Metro UI rocks: because it is Simple, Clean, Really New.
- The “Tiles” on the main startup screen shows dynamically updated content (from Push notifications)
- Panorama control available to developers for their own apps
- Shared Styles to inherit user preference and to create an uniform experience
Did you try to develop an application on IPhone and Android? It’s not so “Visual” and animations, threading, binding and other stuff is done manually. The programmer need to put graphics inside the application code… so there is not code separation. Dev environments are not so “visual”. The emulators are not so fast and many times the result on the emulator is different than on the actual device. MS Emulator is identical to the phone itself, including the performance.
I could go ahead with a lot of other stuff… however if you take a look at what MS Expression tools like Blend can do… and as soon as you know that you can share the same projects between Visual Studio (dev) and Expression Blend (designer) … you’ll be very happy.
Don’t tell me that Objective C is flexible to build the same things. Or that the Android editor and XML layouts are flexible as XAML is.
OK I know, if you are new to XAML and WPF there is a lot of new stuff to learn. But as soon as you know it you’re able to deliver incredible applications very quickly if compared to the time required on an IPhone or Android.
Do you know that you can SHARE the same control built for a normal Silverlight Web Application also for a Silverlight WIndows Phone project?
Now, let’s focus on the drawbacks of this first release:
- Doesn’t support the Copy&Paste function – they confirmed it will be in the next version
- Doesn’t support an out-of-the-box database storage capability but only private storage where to serialize your objects.
- It’s impossible to create a communication layer between two applications (for instance, you CAN’T read the Contacts, Appointments or EMails on your device from your applications).
- Your app can control only itself, and access the GPS/Accelerator… with some exceptions of methods for initiating a call (only proposes it).
- Can’t run a background service (only system services does currently support this capability)
- can’t raise a push notification to the main window
- Push notifications:
- are not 100% guaranteed to be delivered
Well, in order to better understand WHY they wanted these limits, we first need to know some basic details. First of all (point 1), the applications can’t decide to do something that the user don’t like to do.
For instance, it’s a non-sense that an application could select its own tone to display a notification, –or- that the application reads the incoming EMails, –or- that the application calls a person automatically or sends an SMS…
The application should propose the user to do something, but nothing more. This leads to a more secure application and environment.
I agree that is not easy to have this kind of limitations, but they preferred Quality vs Quantity for this first release.
Some good features that we will be expecting for the next version of the OS (in a few months I guess)… it’s normal because all the competitors support these:
- Inter-application communications
- The ability to publish a part of your application as a background service
They are also speaking about including a voice recognition system able to control ANY application installed on the phone – out of the box. This application will be part of the OS, and will be able to narrow the results by proactive communication with the user.
So, finally, I have to say that, despite the GREAT limitations described above, the advantages to both the END USER and the DEVELOPER are so many that … I could forecast that this platform will be a great success – maybe not in this first release, but in the next few months.