Silverlight 5

3 12 2010

So its been announced, Silverlight 5 was given a first look yesterday and it appears that it is getting richer and richer. Silverlight 5 is to be more complete, a more capable development platform, and it should be a faster one too, providing hardware acceleration of various features.

Silverlight offers a niche for building streaming media applications, and this area will be strengthened by including hardware accelerated H.264 playback, “TrickPlay” support to allow fast-forward playback with pitch-corrected audio, and the ability to disable the screensaver during playback. These are features that really set Silverlight at the forefront of media streaming. In addition, Silverlight has built a nice niche as an OOB (out of the browser) line of business application solution. This too has been strengthening, increasing the “trusted” application options allowing Silverlight to access platform specific functions and features (such as leveraging USB devices or barcode readers).

Alas though I have already read people wondering the future of Silverlight, which is simply mad. Many are already asking why Silverlight can be allowed to access the OS to drive certain devices, since this will make that particular application written in Silverlight only available to run on a Windows OS. And if you do that, why not use WPF…

Well the answers are simple, and people asking these questions I fear do not understand the whole point of the .NET family of products, which Silverlight is now apart of.

Silverlight is WPF?

At the moment, if you want to write a rich interface for the Windows OS that leverages the OS itself, you need to write this in WPF. But, let’s say you want to take advantage of the way in which Silverlight can be used, OOB, the Silverlight architecture for how this gets deployed to users (across a LAN or WAN via HTTP) and how you provide quick and easy to administer updates to these users (again via HTTP)…Then you want to deliver your application through Silverlight and not WPF.

By increasing the Silverlight 5 capabilities in a trusted environment Microsoft is giving developers another option. Many applications don’t need the complete .NET framework installing on the client machine. Many only interact with small portions of the desktop, so why not expand Silverlight’s capabilities to include these, and therefore provide the developer with more options?

Recent trends have seen many “applications” delivered via an intranet, written using ASP.NET. My own company delivers most applications in this way, and thats simply because they are so much easier to administer and provide updates for. However, there are real restrictions working like this, especially when it comes to user experience, network connectivity, server power and many more. Silverlight provides another solution, a way in which we deliver applications (just like in ASP.NET) but with all the rich environment of a desktop application. Because of this, you can see why Silverlight is starting to encroach more and more on WPF’s desktop position.

Taking this further, WPF and Silverlight are so very similar. Both leverage XAML, both use pure .NET for managed code, both offers a very rich UI experience. In many ways, Silverlight is simply a web enabled “cross platform” version of WPF. I therefore see Silverlight incorporating more and more WPF functions, effectively they getting close and closer together.

I don’t believe one will replace the other though. Silverlight will be used more and more for LOB applications; however, applications that require greater use of the operating system, driving hardware such as EPOS terminals etc will still remain something for WPF.

Lost Cross Platform?

Many are also arguing that because Silverlight 5 will incorporate more WPF type features, it can no longer be seen as a cross platform solution. I think this is daft thinking. Sure, certain features will become restricted to just Windows, but the majority of needs to be cross-platform and Silverlight’s capabilities at it are still there, all is fine…

Windows Phone 7

Finally, the windows mobile phone…Silverlight will receive more and more focus moving forward on its mobile capabilities, as well it should. I feel Silverlight will be the “cut down” version of WPF that runs across all Microsoft platforms for all types of devices, and that’s exciting to developers, and should be exciting to business too…


Silverlight is a core development platform for Microsoft. It essentially will offer WPF functionality implemented and distributed via the HTTP, while being able to run most features cross-platform and cross multiple device types. Silverlight should be seen as another string to the .NET family bow, simple as that…

What’s going on Microsoft? Silverlight, HTML 5?

9 11 2010

It’s amazing how the press get hold of something, twist it a little and come up with something that simply isn’t true. Is it because they simply latch onto sound bites, or because they don’t actually understand the technology (or technologies) they talk about? They don’t understand the development community and how development works? Or could it be a case of all of the above? (I am thinking all of the above for many of them)

I have now read numerous blogs, press releases etc that claim Microsoft is abandoning Silverlight. That Silverlight will no longer be used on the PC or MAC, over the web etc, just on mobile phones…This simply isn’t true, and to be frank is somewhat of an annoyance.

Yes it is true that Microsoft’s server and tools capo Bob Muglia stated that HTML 5 will become the company’s main focus for online web applications now. (Though he didn’t help the cause in the way he made his statement). But what does that actually mean. It doesn’t mean Silverlight is to be abandoned at all, it was never meant to replace HTML 5, and it wasn’t meant just to plug the gaps that HTML and HTML 5 have left. It isn’t just Microsoft’s response to Flash either, that is seeing Silverlight in a very simplistic view, almost narrow minded, and indicates you don’t know what Silverlight is…

Silverlight is a different presentation layer for .NET applications. It allows developers to deliver highly interactive, rich and powerful applications, not just stream some video, present some pretty animation etc. You should think of Silverlight as a different front end for .NET. Of which you have already so many choices, such as HTML via ASP.NET, typical forms through .NET, Windows Presentation Foundation (WPF) etc etc.

So what about the statement regarding HTML 5 for web applications? Well, Microsoft are concentrating on getting HTML 5 right, this includes IE (by the way IE9 has been shown to be the most compliant HTML 5 browser out there, ahead of FireFox, Chrome and Safari), and within its development studios (visual studio, web studio etc). To do this, resource no doubt will have to be more focused on this area for the time being…So resource will move away from Silverlight, but Silverlight doesn’t need such a large investment or resource now, since it has matured and become a full fledge part of the .NET family.

HTML 5 support

HTML is the interface to websites and web applications, and it seems to me that the press and many blog writers don’t understand this. Do they realise that ASP.NET v4 delivers HTML to a web browser? So Microsoft concentrating on HTML 5 is expected. ASP.NET (no matter your flavour of it) will need to have the capabilities to deliver HTML 5 web applications, so Microsoft needs to concentrate on this. But does this mean they are ditching Silverlight, no of course not. Did the creation of Silverlight mean Microsoft walked away from HTML presented content with ASP? Did it mean we no longer have win forms of WPF? No, of course not….Yet Microsoft were not exactly moving these along rapidly were they…

No Silverlight 5 for the moment

Some are pointing that they haven’t seen any indication of when Silverlight 5 will be available. All I can say to that is, “How many versions do you expect?” The complete .NET platform is only at v4.0. Silverlight has gone through a rapid development and period of evolution, moving quickly from v1.0, through to v4.0 now (in just over 2 years!). The latest version of Silverlight brings it in line with the .NET family, so Silverlight needed to go through a rapid development phase to catch up, it was a long way behind…

Silverlight as Windows Mobile 7 development platform

Yes, Silverlight is the development platform for Windows 7, and that’s great news to the development community. The fact that Silverlight development focus at the moment is being switched to the mobile platform is again, not surprising. After all, Silverlight has gone through rapid development on the computer. Microsoft has worked hard on tools, templates etc for developers to be able to create powerful desktop (OOB) and RIAs using Silverlight. So, it now needs to do the same for the mobile platform. Microsoft need to make it as easy as possible for mobile developers to quickly deliver powerful mobile applications, so concentrating on Silverlight tools for mobile is obvious…

Yet again I feel the press, and bloggers, don’t understand the importance of this. Silverlight is Silverlight, on the mobile and or on the web, it is still the Silverlight technology, the only difference is on the mobile, we have to follow some stricter rules about our UI and we get different tools and templates to use. Why? Well we have restricted UI space, and we need to be able to allow the user to bring up the keyboard etc etc. It isn’t an alien world, Silverlight on the mobile to developers. It is Silverlight. Just like the managed code behind in Silverlight is not alien .NET, rather it is .NET. This means developers can develop applications for multiple platforms, PC, Mac, Phone, without leaving visual studio, without learning new techniques, without learning new syntax etc. This is great, and because of this Microsoft maximises the number of developers who potentially can develop for the desktop, web and mobile…..

Withering Silverlight? Don’t be stupid…

Well obviously no…Silverlight simply won’t be going through so many quick iterations as it is now in-line with the .NET family. Microsoft are now concentrating on Silverlight mobile templates and tools and ensuring the mobile world for Silverlight developers is just as rich as it can be on your PC.

Concentrating on HTML 5 is a good thing, Microsoft has always been committed to HTML 5 and as HTML 5 slowly gets closer, Microsoft needs and wants to be at the forefront. Web applications will be delivered in HTML 5, that has always been the case. Just like ASP.NET web applications deliver HTML 4 at the moment. Silverlight will still be used on the web to plug gaps HTML 5 cannot fill, it will still be used (and will be more and more so) in an OOB (out of browser) state, effectively providing desktop powerful applications over the web and no doubt will continue to grow.

Silverlight is now a full part of the .NET family, it has caught up, and the .NET family will continue to be the core Microsoft technology for all devices…

Bing Maps getting Silverlight

4 12 2009

Well it had to be just a matter of time before Bing Maps started using Silverlight to deliver the richest mapping experience on the web. Since the start of November I have been playing around with the Silverlight Bing Maps control which far out-performs the AJAX control and for me the HTML version on the actual Bing website.

The payoff

Microsoft's Bing

Microsoft's Bing

Well for the end user, the Silverlight experience is far smoother and allows you greater control. For example zooming into an area on the map using the wheel of your mouse is a nice touch, but the app renders smoothly. In addition you can mesh together traditional map views with aerial photos. There are also nice features such as the street side walker – which currently isn’t available in that many areas, but it allowed me to jump into the map and then walk around parts of the world I have never seen (well visited now….).

With the Silverlight version, everything just feels so much more professional, it’s a real jump forward in terms of the functionality that is capable and the experience it provides the end user. Why not see for yourself, you will need to have Silverlight installed. NB If you don’t have Silverlight installed I suggest you get it asap.

Microsoft has also followed on a trend of offering “app stores”. A new application gallery will be available allowing developers to include their own information on a map.

The biggest pay off though is the capabilities this provides to other developers and websites that want to use mapping technology. I have already seen a number of demonstrations showing how you can overlay / highlight “areas” within a map. One great demonstration shows the New York marathon route, it not only shows you this route and the “area” covered on the Bing map, but also shows runners moving along the route – comparing their relative times etc….Not bad….

The .NET framework…

I have to say that I like the way Microsoft is going, building everything on the .NET framework or a subset of it. It allows more powerful applications to be built and integrated with each other. This is another great example – Silverlight, which is a subset of .NET with a WPF subset as a presentation layer, combined with the Microsoft Live web services (again delivered in .NET) delivering a feature rich experience for users. More importantly though, working in this way provides the development community with the tools they require to take things further.

By combining the Silverlight Bing Map control with the Microsoft Live web services, it is now a quick and rather simple(ish) task for any .NET developer to deliver powerful mapping / mapped based services to clients that look and perform great.

Silverlight EPOS?

14 09 2009

Now this maybe a little left field, but I have been talking to some EPOS people who have been asking if we can expect EPOS systems delivered in Silverlight. Funny enough, I have also seen people searching my own blog on this subject…

So what is the chances? To my knowledge there isn’t anyone attempting this, and there are a number of reasons why not. I have to say the chances of getting a Silverlight EPOS system are at best, very slim.

Why not?

Many EPOS systems (especially the entry level solutions) are built to work and run a physical till (cash draw and receipt printer). EPOS systems are often a single install, with your back office staff basically having the same software installed that will drive your front office point of sale terminal (till). To drive a POS terminal, the software has to interact with drivers that are actually installed on the physical machine.

Silverlight in essence is a web based technology, and as such cannot interact with drivers etc on the host PC. This is purely due to security. If you are not technical and reading this, just think, if a website could easily take control of programs and drivers on your PC, what sort of damage could a malicious hacker / developer do?

Wait, don’t get turned off just yet…

Though Silverlight couldn’t be used to drive a POS terminal, .NET applications built using WPF could, and these look and feel just like Silverlight applications. I know this means a client installation (which Silverlight avoids) however, on the POS you have to have a number of drivers and applications installed in any case.

Don’t think though that you have to use traditional thick client applications for your back office staff. Though most EPOS systems use the same software for front and back office (especially smaller solutions) it doesn’t mean this has to be the case. A division of my own company, workFile EPOS, delivers a thick client POS application, written in .NET, but back office users use the system delivered through a browser (thin client), removing any requirements for installations in the back office or indeed (if required) machines at home for home use.

EPOS systems that split front and back office functions can easily provide more flexibility, in terms of both user experiences administration flexibility. At workFile EPOS we have been looking to replace a number of web pages with pages using Silverlight to deliver a richer experience. The thin client sales agent is a prime example, delivering a “sales” interface without the need to drive a till or any hardware.

Silverlight EPOS is go…

In conclusion, yeap you can have a Silverlight EPOS solution. The chances of you seeing one shortly though are slim, and there is no chance of you using Silverlight to deliver a POS terminal. Also think that many EPOS systems were written many many moons ago and still don’t really take advantage of thin client technology or in some cases newer versions of Windows (I have seen many that still run on DOS!)

But, all this being said, some EPOS providers out there, like workFile EPOS, have the potential to use Silverlight to deliver EPOS back office functions, which bring together all the benefits of EPOS with those of rich end user experiences. If the demand is out there, no doubt Silverlight will be used for back office EPOS systems and WPF for the POS terminal experience. We shall see…

Development platform for the future

17 04 2009

Yesterday, I had a very long and in-depth conversation with the Technical Director here at One Degree. Basically, we were discussing development platforms, where we have come from, legacy systems and what our development platform will be for the foreseeable future.

Now we technology geeks love to embrace the new. However, sometimes you have to be practical, and see just what has gone before, what are your customers doing and what might be the future trend before jumping in head first…

Legacy Systems and legacy code

There is just so much legacy code out there, in terms of both business applications, integrated solutions and even the internet. We have contractors we use, who are currently working on VB6 implementations. So when thinking about our development platform, we must consider what else is out there from an historic point of view, and how we may need to integrate or upgrade these systems.

One technology for all platforms

As a company, well many small companies, we deliver business applications, websites, rich internet applications and cloud based solutions to a wide variety of customers. We also deliver vast numbers of integrated solutions, communication services etc. etc. For us, it’s really important that we stick to technologies and platforms that we know work, are supported, and that minimise the need for “re-training” our developers when moving between very different types of projects.

In an earlier blog I explained why we use Silverlight for rich interactive websites. However, we see the future of our development work for both thick client applications, and all business applications to be carried out in .NET and Silverlight. Why? Well it’s simple. With the same skill sets we can deliver a variety of solutions; such as websites, web based applications / RIAs and traditional thick client applications. Our developers can quite simply jump between different types of projects without any need for re-training.

With Silverlight 2.0 and 3.0 being released shortly, we see Microsoft supporting .NET and Silverlight for the foreseeable future, providing us with a single platform and technology that allows us to deliver engaging, powerful solutions for both the desktop and the internet. So from my point of view, the choice is quite simple.

OD Media will provide the “design” elements for all One Degree and workFile based solutions moving forward, even desktop based solutions. With their skills in design and Silverlight, the design and development workflow is simplified and speeded up. All in all, we feel that Silverlight is the next generation development platform, and will not only make our life as developers simpler, but also enable us to deliver richer and easier to use, business applications, websites and rich internet applications…

Why we choose Silverlight…

3 04 2009

To put it simply, it’s a matter of understanding “layers” of development choices. So by choosing a particular technology as a “layer”, your next technology “layer” choice is enriched by the previous, and so on. This means that when you compare a particular technology with a rival, in this case Silverlight Vs Flash, you find that the choice is made a lot easier for you, simply because of the “layers” it is built upon. I hope that made sense…..

I’m not going to be too technical in this blog, as I still want non technical people to read and engage in this topic. It’s one that I feel many “non technical” people will find cropping up more and more, especially as Flash has been unchallenged in the world of rich web experiences. Well until now…

Let’s start with the web…

Well, I have to be honest, in the world of web development I got involved a little later than some. My first experience of programming in a web environment was developing custom step processors for FileNETs’ eProcessor workflow engine. (Now part of the P8 suite and owned by IBM). At the time there were two choices, HTML or Java Applets. After looking into the requirements, and how to actually build the web interface, I quickly opted for the Java Applet route. Why? Simple, it made more sense. It provided a logical programming environment that didn’t seem messy. Using HTML with server and client side scripts, just seemed too messy, time consuming and far too prone to frustrating errors and bugs. Not for me….

While developing Java Applets, and some standard websites, my main development activities revolved around thick client business applications, almost all of which utilised COM based APIs (which all the business based applications I saw did at that time). And to be honest, I hated switching between the two very different ways of developing. When ASP.NET arrived, I was asked to start to develop thick client applications in .NET. However, I could now use the same platform to deliver web based applications and web sites. You guessed it, I soon moved away from the Java Applet form of thinking for my step processors, and standard ASP for our websites. To be honest, I thought it was Christmas.

With this in mind, there really was only one choice for me, a developer who developed traditional client based businesses applications but also web based applications / experiences.


The fundamental platform for us at One Degree, .NET

Once I formed my own development company (with a friend), we quickly chose our development platform of choice as .NET. For us both, it offered the greatest flexibility, allowing us to consume .NET components, COM APIs and XML Web Services (which were very new at that time). .NET really chose itself.

In addition, the development environment is almost as important as the technology you choose to develop in. Visual Studio is second to none. It provides an easy to use developer experience while providing all the tools you need to deliver enterprise wide solutions. You see why we choose .NET???


XML Web Services

Now why doesn’t all APIs out there utilise these? They provide so much interoperability and benefits to programmers that for me, it’s a no brainer. When I look at the web today, many APIs still don’t utilise these types of services the way they should. I find this a great shame.

Myself, and the technical Director at One Degree and OD Media, always ensure anything we deliver contains a full API layer. Sometimes we may only need to deliver and utilise XML Web Services, this is a mark to how easy they are to work with. By providing a separate location for our API layer, web services can not only serve our own applications, but also be opened up to third party applications / sites.  We also use XML Web Services for traditional thick client development. Our workFile ECM platform can be delivered as a thick client or as a website; both use the same XML Web Services API.


So why WCF Web Services?

Well first off, we are still in .NET and still using Visual Studio. This means all the benefits of developing with .NET 3.5 apply here, with our web services. WCF Services (.svc) are more flexible than the standard ASP.NET web service (.asmx), and as such more desirable. In addition, WCF now supports RESTful implementations, which again provide other benefits of choosing WCF.  

There is also the benefit to us, the fact that Visual Studio provides powerful templates to help get our WCF development started. Templates include RESTful WCF development, and development of services used by Silverlight applications. These templates drastically reduce the amount of time, and coding that a developer may have to do outside of Visual Studio.


Why Silverlight and not Flash?

Ok well I hope you have followed me to this point. So why Silverlight? Well Silverlight provides us developers with that next layer. It means we can still work in .NET managed code, we still have access to XML Web Services, we can still quickly and easily access other APIs, data centres etc and we can still work in Visual Studio. We have all the benefits of why we choose our .NET platform, but with Silverlight, we have the added dimension of delivering richer user experiences.

There are many comparisons out there now between Silverlight and Flash, however most of these it seems, concentrate on the simple “look” differences. This really isn’t a comparison; you have to look at the whole picture. If you are thinking of delivering rich web experiences, and you have no particular language preference, or no particular requirements to integrate with different applications etc, then the Silverlight Vs Flash decision is harder. However, Silverlight isn’t just Microsoft’s answer to Flash, it’s an extension of the .NET platform, and as such, Silverlight brings to the table a wealth of benefits that other web technologies, including Flash, cannot match.

Silverlight has a number of benefits when working on the web over its competitors (video streaming without streaming servers for one), and its competitors have some benefits over Silverlight (remember that Silverlight 2.0 isn’t even a year old yet). However, once you start to look under the covers, looking at the layers on which Silverlight sits upon, you see exactly why we, as a software and web development company, choose and recommend .NET, WCF services and Silverlight.