Click here to close now.


Microsoft Cloud Authors: Jayaram Krishnaswamy, Elizabeth White, Andreas Grabner, Jim Kaskade, Pat Romanski

Related Topics: Silverlight, Microsoft Cloud

Silverlight: Blog Feed Post

Windows Phone 7 Series – Initial Developer Impressions

You can choose to either develop for the platform in Silverlight or you can use the XNA toolkit

Windows Phone 7 Series (hereafter I'll just call it WP7) debuted a while ago at a press event but it's true coming out party was this past week at MIX 2010. This conference is a designer-developer hybrid conference and, of all the Microsoft development conferences I've ever attended, this has consistently been the most informative and exciting of the bunch.

In case you've been hiding under a rock this past week, Microsoft has been showing off WP7 and the development experience for it. I'm going to oversimplify here, but this is the basic idea: You can choose to either develop for the platform in Silverlight or you can use the XNA toolkit normally used for building XBox and PC games in C#. WP7 has all the trimmings including push notifications, rich GUI (hardware accelerated), rich audio, the full power of Silverlight's media control, and it even has Xbox live integration allowing you to unlock achievements by playing games on the phone. Development tool is standard Visual Studio and for the Silverlight model you can use Expression Blend 4 to build you GUI (and there are some fantastic new improvements in Blend 4).

I'm going to talk mostly about the Silverlight experience here since the last time I used XNA it was in beta and XNA has come a long way since then and I couldn't possibly do it justice. Your application is made of up pages (this concept should be familiar to SL3 developers), with each page acting like a specialized SL user control. These pages can have an application bar, which is similar to an iPhone tab bar control. The difference is that when you tap the elipsis ("...") on the WP7 app bar, the app bar expands without you losing context while the iPhone tab bar "more" button transitions you to a fairly bland table view controller. At this point you can do pretty much anything you would normally be able to do in Silverlight, but you also get things like raw access to audio from the microphone, pickers for all native types of data on the phone like contacts, etc and the ability to send e-mails and SMS - all the stuff you'd expect to have.

So, how does it feel to code for this thing and, more importantly, how does it compare to writing iPhone apps? First, let me preface this by saying that I've been writing iPhone apps off and on since before the SDK came out and we had to "fake it" with clever CSS and HTML and for the past few months I've been seriously writing heavy duty iPhone apps for real businesses. On many occasions over the past few months, I've said that developing for the iPhone was 'fun' and 'what coding should be like'. That said, I have also forcibly rammed my head into my desk out of frustration with certain aspects of the iPhone development process.

Writing apps that look and feel like iPhone apps that look just like every other iPhone application is a task that takes little to no effort. I can go from empty project to a data-driven table view controller on the iPhone in pretty much no time at all. I can also do the same thing on the WP7 tools in about the same amount of time. Where the two begin to diverge is when I want to start customizing. I won't go into painful detail here because I plan on making a bunch of blog posts about WP7 and comparing it to the iPhone later. There are a few points that I want to make, however:

Push Notifications

As I said, I plan on delving into individual topics as I blog more about this, but I wanted to bring this up specifically. Dealing with the App Store and with the Developer Portal in general on the iPhone is a headache at best. When you add into it the juggling, management, and eventual botching of certificates and provisioning profiles, the mess gets even worse. Now you add into it the debacle of getting certificates based on provisioning profiles that are used by your servers to send push notifications to registered iPhone devices and it can bring the strongest of men to weeping on his knees. From firsthand experience, the act of getting your first push notification to work on an iPhone/iPod touch application is akin to climbing mount everest and when you get to the top you're thinking, "#@*! I have to do this again!?" With Apple, the phone contacts Apple to get a notification token (assuming the application is using a provisioning profile configured for notifications), the token then has to be sent by the app's code to the app owner's server for storage. That server needs to be configured with the right certificates to that it can send a proprietary binary package of goo containing the notification to Apple's servers, which will eventually make its way down to your app. Trust me, getting this to work is a victorious moment, preceded by weeks of eye-gouging pain.

Here's how it works with WP7: App gets a unique notification URI that represents notifications for that app on that device. App sends the URI to the app owner's server. When you want to send a notification, HTTP POST the contents of that notification (XML payload) to Microsoft's notification server. That's it. Done.

Small side note here: I like that you can send unobtrusive toasts with WP7 far better than sending modal dialog boxes with iPhone, they feel more like the Palm Pre notifications than iPhone dialogs. There are no certificates and private keys to manage, there are no provisioning profiles to deal with, there are no certificates required to be present on the notification sending server and there is no management portal you have to go to in order to maintain this stuff. For the first time recent history, Microsoft took the "it just works" approach whereas Apple's is hideously and unnecessarily complex.

GUI Customization

I alluded to this earlier in the post. If what I want to do is display two rows of textual information in a table view cell, then the iPhone gives me that out of the box and my application will feel perfectly at home on the device. However, when I want to mix in some icons and some other gauges and indicators that might not fall into the existing line-up of controls, I quickly drop from feeling safe and secure to feeling like I'm back in the low-level Windows programming days of yore where everything I do needs to be a custom view with a custom render/paint method. It gets tedious, difficult, and time-consuming FAST.

Because WP7 lets me do all this stuff in Silverlight, I can use the advanced, composited, declarative UI to do truly remarkable things in very little time at all. I could make the cells in my table view (list view or grid in SL) have three rows and put whatever controls I want in there. Creating a type of UI that doesn't exist in the stock toolbox in Silverlight is easy... doing the same in the iPhone feels positively primitive by comparison.

Overall Experience

As you'll see in the blog posts I'm planning on doing, WP7 development is like a  breath of fresh air. It's funny, because I remember saying that when I first got my hands on the iPhone SDK and I was comparing iPhone development to Compact Framework for Windows Mobile. Cast aside all your preconceived notions about all previous versions of Microsoft mobile OS development - this is something entirely new. Also, keep in mind that when you build your mobile app in Silverlight, if you do it with a little forethought, you could potentially share 90+% of your code for an app that works on WP7, on a PC, and on a Mac.

I will still build apps for the iPhone, but only because people continue to want to pay me to do so. From now on, my mobile development for pleasure is going to be entirely WP7 based.


Read the original blog entry...

More Stories By Kevin Hoffman

Kevin Hoffman, editor-in-chief of SYS-CON's iPhone Developer's Journal, has been programming since he was 10 and has written everything from DOS shareware to n-tier, enterprise web applications in VB, C++, Delphi, and C. Hoffman is coauthor of Professional .NET Framework (Wrox Press) and co-author with Robert Foster of Microsoft SharePoint 2007 Development Unleashed. He authors The .NET Addict's Blog at .NET Developer's Journal.

@ThingsExpo Stories
WebRTC is about the data channel as much as about video and audio conferencing. However, basically all commercial WebRTC applications have been built with a focus on audio and video. The handling of “data” has been limited to text chat and file download – all other data sharing seems to end with screensharing. What is holding back a more intensive use of peer-to-peer data? In her session at @ThingsExpo, Dr Silvia Pfeiffer, WebRTC Applications Team Lead at National ICT Australia, will look at different existing uses of peer-to-peer data sharing and how it can become useful in a live session to...
As a company adopts a DevOps approach to software development, what are key things that both the Dev and Ops side of the business must keep in mind to ensure effective continuous delivery? In his session at DevOps Summit, Mark Hydar, Head of DevOps, Ericsson TV Platforms, will share best practices and provide helpful tips for Ops teams to adopt an open line of communication with the development side of the house to ensure success between the two sides.
NHK, Japan Broadcasting, will feature the upcoming @ThingsExpo Silicon Valley in a special 'Internet of Things' and smart technology documentary that will be filmed on the expo floor between November 3 to 5, 2015, in Santa Clara. NHK is the sole public TV network in Japan equivalent to the BBC in the UK and the largest in Asia with many award-winning science and technology programs. Japanese TV is producing a documentary about IoT and Smart technology and will be covering @ThingsExpo Silicon Valley. The program, to be aired during the peak viewership season of the year, will have a major impac...
There are so many tools and techniques for data analytics that even for a data scientist the choices, possible systems, and even the types of data can be daunting. In his session at @ThingsExpo, Chris Harrold, Global CTO for Big Data Solutions for EMC Corporation, will show how to perform a simple, but meaningful analysis of social sentiment data using freely available tools that take only minutes to download and install. Participants will get the download information, scripts, and complete end-to-end walkthrough of the analysis from start to finish. Participants will also be given the pract...
SYS-CON Events announced today that IBM Cloud Data Services has been named “Bronze Sponsor” of SYS-CON's 17th Cloud Expo, which will take place on November 3–5, 2015, at the Santa Clara Convention Center in Santa Clara, CA. IBM Cloud Data Services offers a portfolio of integrated, best-of-breed cloud data services for developers focused on mobile computing and analytics use cases.
The enterprise is being consumerized, and the consumer is being enterprised. Moore's Law does not matter anymore, the future belongs to business virtualization powered by invisible service architecture, powered by hyperscale and hyperconvergence, and facilitated by vertical streaming and horizontal scaling and consolidation. Both buyers and sellers want instant results, and from paperwork to paperless to mindless is the ultimate goal for any seamless transaction. The sweetest sweet spot in innovation is automation. The most painful pain point for any business is the mismatch between supplies a...
The buzz continues for cloud, data analytics and the Internet of Things (IoT) and their collective impact across all industries. But a new conversation is emerging - how do companies use industry disruption and technology enablers to lead in markets undergoing change, uncertainty and ambiguity? Organizations of all sizes need to evolve and transform, often under massive pressure, as industry lines blur and merge and traditional business models are assaulted and turned upside down. In this new data-driven world, marketplaces reign supreme while interoperability, APIs and applications deliver un...
The Internet of Things (IoT) is growing rapidly by extending current technologies, products and networks. By 2020, Cisco estimates there will be 50 billion connected devices. Gartner has forecast revenues of over $300 billion, just to IoT suppliers. Now is the time to figure out how you’ll make money – not just create innovative products. With hundreds of new products and companies jumping into the IoT fray every month, there’s no shortage of innovation. Despite this, McKinsey/VisionMobile data shows "less than 10 percent of IoT developers are making enough to support a reasonably sized team....
"Matrix is an ambitious open standard and implementation that's set up to break down the fragmentation problems that exist in IP messaging and VoIP communication," explained John Woolf, Technical Evangelist at Matrix, in this interview at @ThingsExpo, held Nov 4–6, 2014, at the Santa Clara Convention Center in Santa Clara, CA.
WebRTC has had a real tough three or four years, and so have those working with it. Only a few short years ago, the development world were excited about WebRTC and proclaiming how awesome it was. You might have played with the technology a couple of years ago, only to find the extra infrastructure requirements were painful to implement and poorly documented. This probably left a bitter taste in your mouth, especially when things went wrong.
Nowadays, a large number of sensors and devices are connected to the network. Leading-edge IoT technologies integrate various types of sensor data to create a new value for several business decision scenarios. The transparent cloud is a model of a new IoT emergence service platform. Many service providers store and access various types of sensor data in order to create and find out new business values by integrating such data.
The broad selection of hardware, the rapid evolution of operating systems and the time-to-market for mobile apps has been so rapid that new challenges for developers and engineers arise every day. Security, testing, hosting, and other metrics have to be considered through the process. In his session at Big Data Expo, Walter Maguire, Chief Field Technologist, HP Big Data Group, at Hewlett-Packard, will discuss the challenges faced by developers and a composite Big Data applications builder, focusing on how to help solve the problems that developers are continuously battling.
WebRTC converts the entire network into a ubiquitous communications cloud thereby connecting anytime, anywhere through any point. In his session at WebRTC Summit,, Mark Castleman, EIR at Bell Labs and Head of Future X Labs, will discuss how the transformational nature of communications is achieved through the democratizing force of WebRTC. WebRTC is doing for voice what HTML did for web content.
Who are you? How do you introduce yourself? Do you use a name, or do you greet a friend by the last four digits of his social security number? Assuming you don’t, why are we content to associate our identity with 10 random digits assigned by our phone company? Identity is an issue that affects everyone, but as individuals we don’t spend a lot of time thinking about it. In his session at @ThingsExpo, Ben Klang, Founder & President of Mojo Lingo, will discuss the impact of technology on identity. Should we federate, or not? How should identity be secured? Who owns the identity? How is identity ...
Developing software for the Internet of Things (IoT) comes with its own set of challenges. Security, privacy, and unified standards are a few key issues. In addition, each IoT product is comprised of at least three separate application components: the software embedded in the device, the backend big-data service, and the mobile application for the end user's controls. Each component is developed by a different team, using different technologies and practices, and deployed to a different stack/target - this makes the integration of these separate pipelines and the coordination of software upd...
WebRTC services have already permeated corporate communications in the form of videoconferencing solutions. However, WebRTC has the potential of going beyond and catalyzing a new class of services providing more than calls with capabilities such as mass-scale real-time media broadcasting, enriched and augmented video, person-to-machine and machine-to-machine communications. In his session at @ThingsExpo, Luis Lopez, CEO of Kurento, will introduce the technologies required for implementing these ideas and some early experiments performed in the Kurento open source software community in areas ...
WebRTC: together these advances have created a perfect storm of technologies that are disrupting and transforming classic communications models and ecosystems. In his session at WebRTC Summit, Cary Bran, VP of Innovation and New Ventures at Plantronics and PLT Labs, will provide an overview of this technological shift, including associated business and consumer communications impacts, and opportunities it may enable, complement or entirely transform.
“In the past year we've seen a lot of stabilization of WebRTC. You can now use it in production with a far greater degree of certainty. A lot of the real developments in the past year have been in things like the data channel, which will enable a whole new type of application," explained Peter Dunkley, Technical Director at Acision, in this interview at @ThingsExpo, held Nov 4–6, 2014, at the Santa Clara Convention Center in Santa Clara, CA.
SYS-CON Events announced today that Luxoft Holding, Inc., a leading provider of software development services and innovative IT solutions, has been named “Bronze Sponsor” of SYS-CON's @ThingsExpo, which will take place on November 3–5, 2015, at the Santa Clara Convention Center in Santa Clara, CA. Luxoft’s software development services consist of core and mission-critical custom software development and support, product engineering and testing, and technology consulting.
SYS-CON Events announced today that Dyn, the worldwide leader in Internet Performance, will exhibit at SYS-CON's 17th International Cloud Expo®, which will take place on November 3-5, 2015, at the Santa Clara Convention Center in Santa Clara, CA. Dyn is a cloud-based Internet Performance company. Dyn helps companies monitor, control, and optimize online infrastructure for an exceptional end-user experience. Through a world-class network and unrivaled, objective intelligence into Internet conditions, Dyn ensures traffic gets delivered faster, safer, and more reliably than ever.