Building a bank…

27 04 2019

Building a business is one hell of a challenge, so when Nick Ogden (yes, the founder of WorldPay) said to me that he wanted to build a bank, I was a little apprehensive. But before I could really respond, Nick explained that he didn’t just want to build a bank, he wanted to build the UK’s first Clearing Bank in 250+ years!!!!! I think most people would be intimidated, however, we felt that this was one of those rare opportunities that you get to re-imagine how an entire suite of services could be delivered. Back in 2015, this was the birth of Banking-as-a-Service (BaaS). 

TYou see, Banking-as-a-Service (BaaS) is a technology play, it’s middleware, its banking deconstructed and delivered in granular, individual services. Plug them together, build our your capabilities and you can start to deliver banking outcomes for your customers. But Banking-as-a-Service, BaaS, is more than just technology, it’s leveraging all aspects of banking, including your balance sheet and more….

Banking-as-a-Service I feel really was born in that room with Nick Ogden back in 2015. This really was the start of our journey, the journey of building out ClearBank. Not only have we built the first Clearing Bank in 250 years, it’s the first Clearing Bank ever to join the UK’s main payment schemes all at once, the first ever to build out its own technology and the first ever to be built completely with Cloud technologies, and the first true provider of Banking-as-a-Service. A quite a few firsts there….

At the UK’s Azure User Group, I talked about some of our journey, some of the challenges and actually, how would I build a bank today…You can view the video here….

 





Silverlight, WPF, HTML 5, Metro and err…Flash…

20 09 2011

There is a lot of talk about these technologies, especially
after the Windows 8 BUILD preview. For many, Silverlight and WPF appear to be
dead, simply because it isn’t supported in the Metro world of Windows 8…This
technically is and isn’t true, depends what you think is in a name…

Windows 8 Metro

Looking for Files from any application in the Metro world, 1 single user experience

WPF and Silverlight

Both of these are essentially built on .NET libraries, which
in the desktop mode are still there, just as they are in Windows 7. However, in
the Metro world, these libraries have made their way into the WinRT library
collection, with this in mind and the fact that Metro runs XAML, you see that,
well the names may have changed, but Silverlight and WPF does run in Metro.

To “Metro” your application you do have to make some
changes, and these are very small indeed, we are talking a few changes to
include libraries and that’s about it. These changes though appear to be mainly
focused on touch enabling your application fully in the Metro world.

So if you wrote WPF applications and or Silverlight apps
that run OOB (out of browser), then things are pretty much business as normal. However,
if you wrote RIAs in Silverlight and had them running in the browser, then you
won’t be too happy. You see IE10 in the Metro world will not support plugins,
and that’s probably all down to touch and touch based libraries. If you want to
run Silverlight in a browser, then you need to be in desktop mode and use IE10…Not
perfect, but makes sense…

We also have to remember what we want to have as our
experience on the machine. You see, Silverlight in browser mode, and even
Flash, does deliver “Applications”, but the user experience can be very
different between apps. In the Metro world, Metro isn’t just about making your
apps run on that part of the OS, but is also about a seamless experience, look
and feel between all applications. It is also about integrating these
applications with the OS and other installed applications. What does that mean?
Well you cant have a Flash or Silverlight app running in Metro that then doesn’t
behave as other apps do, or more importantly how a user expects them too. In
the Metro world we can “Search” inside apps, we can seamlessly share content
and data between apps that never knew anything about each other. If we allow a
Silverlight app from a browser to run, then it won’t support this level of
experience, and more often than not, it won’t look and feel like a “Metro” app.
That consistent look and feel is what users want, expect and Microsoft has to
enforce…

Charms and searching within Apps

All apps should behave the same, deliver that same look and feel and support functions such as "Search" and "Share" in the same way. A single user experience

Apps

Apps are essentially the future for the desktop and the web,
Microsoft understands this, just as well as Apple does. You see the web was
never designed to deliver us “Applications”, rather it was designed and
architected to distribute and deliver content. This is primarily why we have
plug-ins for browsers, as even HTML 5 has limitations on what you can and can’t
do. Throw into the mix the horrible issues that arise with browser
compatibility and you see why Apps are far better for the user and for the OS.

Just as we have with mobile phones (and Apples iPad for
example), we will have an app store, which allows us to purchase (or get for
free) applications, for Windows 8, these will be XAML (WPF / Silverlight apps)
or HTML 5 with Javascript (though I believe and suspect XAML will be the
technology of choice).  In this way, Apps
will behave in similar fashions, so it makes it easy for any user to add more
apps to their machine and use them quickly and efficiently. This isn’t the case
with browser plugins nor with typical “chrome” based applications.

Death of Flash?

Well not really, but I do fear this signals the beginning of
the end for Flash. Essentially if you develop in Flash, I would be jumping ship
fast! I also have a chuckle when I think of apps such as Tweet Deck, which essentially
will have to be “Metroed” or make its users have to move to the desktop. Since
I have seen Tweet@rama in demos on Windows 8, I think Tweet Deck will have to
get itself “Metroed”, if it wants to stay alive…

Flash will be on the desktop side of things only for Windows
8, and that includes AIR. So what does this mean for Flash? Well why would a
user want to “flip” into desktop mode, go to a website or open a Flash based
application and leave the lovely Metro world behind? It isn’t going to happen.
Sure for business applications, complex studios (such as photoshop), users won’t
mind moving back to the desktop, but then it makes sense to be in desktop mode
for these kind of complex applications. But most things in Flash are either to
enrich our web experience or to provide a cross platform simple(ish)
applications – such as Tweet Deck. So in the new world, those apps would be
delivered by XAML in Metro and by HTML 5 in the browser, leaving nothing for Flash
to deliver.

The future…

Well the future of the web is HTML 5, the future of real
RIAs is Apps as too is the future of desktop applications. For complex
applications and legacy applications we will have the classic Desktop mode from
Windows 8, and I think this makes a lot of sense. Essentially Windows 8 is
everything to everybody; no matter what they want, expect and need to run…

WPF and Silverlight developers will simply be named Metro
developers (or something similar), web developers HTML 5 developers and Flash
will slowly disappear from the PC as it has already the iPad and probably Mac
OS…





BUILD and Windows 8…

19 09 2011

So last week saw Windows 8 developer preview being shown off at Microsoft’s BUILD conference, and well, there was a lot to take in. BUILD was also showing off Windows Server 8 and a host of other Microsoft initiatives / solutions, including Windows Phone 7.5 and Windows Azure. With all that being shown off, it was hard to keep up and understand what exactly Microsoft was telling us about their future products and services. Unfortunately, as with most things Microsoft does, this meant that there was a lot of “dodgy”, to put it politely, blogging and tweets being thrown around. Essentially many tweets and blog posts were simply wrong, or written by pure Microsoft haters, so the messages coming out from BUILD did get a little lost for some…

Anyway…Let’s have a look at Windows 8 and what it could mean to consumers and businesses…

Metro

Well this is the new interface style if you like, what Windows now looks like by default. Metro is something Microsoft has been pushing, but it’s essentially a design look and feel. Many people see this as
primarily just for tablets, but I disagree. I like the idea of switching on my PC to see the “live tiles” environment, allowing me to peer into applications without needing to open them. It’s a feature I like on the Windows Phone 7+ platform, and I personally think it works really well for the PC, laptop, tablet market. Metro applications also look and behave great, and I have no problem with moving away from “chrome” based windowed applications.

Windows 8 new Metro UI. It's Alive...

The “Metro” side of Windows 8 only supports “metro” style apps and HTML running in IE10 (currently no Silverlight or Flash in the Metro browser experience). Metro also provides a design methodlody for applications, and as such, a framework for developers to work within when delivering “apps”.

There are also “contracts” in place between applications, allowing them to share functionality via “charms”, such as the “search charm”. What does that mean, well it means you can search inside your app from the standard search dialogue. Even better, you can share content between apps using the “share” charm, so I am in one app, and I wish to share some content, I can click on the system charm and simply share it with another application. This provides a real slick feel to using the system, as if the Apps are part of Windows 8, as opposed to a single bit of software that simply runs on Windows 8. There is quite a difference there…Essentially metro and charms all adds to the user experience, and rich environment, Windows 8 aims to deliver.

Charms in action

Using "Charms" with touch screen keyboard to search within apps

Many though have stated, why ship Metro style for the PC if you are also supporting the more traditional “desktop” look and feel, which essentially is Windows 7 updated. There have even been calls for supplying metro only for tablets, and desktop view only for traditional laptops and desktops, a bit like Apple shipping iOS for tablets and full on Mac OS for Mac Books. Well to these people I simply say “you don’t get it”…

Flexibility, choice and function is what people want. If I own an iPad and I want to edit some pictures by using Photoshop, I can’t. That means switching over to my laptop, Mac book, PC whatever to do that work, not great if I am at the mother in-laws for example. So why not deliver a tablet that can allow me to do that work if I want? What’s wrong with having the flexibility and option there? Nothing…After all, I don’t have to go into the standard desktop if I don’t need to…

Native Desktop

The native desktop is still there, essentially it looks and feels like Windows 7, and there is nothing wrong with that. The native desktop is used to support more complex applications, applications such as Photoshop or Visual Studio, applications that need lots of tool bars, need to show lots of actions and functions to the user. There is nothing wrong with these types of applications, and not all applications could be designed the “metro” way (nor should they).

The native desktop is just that, it’s everything Windows 7 is right now, so all your legacy / business applications that have gone before will run fine on Windows 8.

 

Tablets, Laptops, Netbooks, PC’s, Phones…ARM, the lot…

One of the big things with Windows 8, and something Microsoft kept on pushing at BUILD, was that Windows 8 is for all devices, and that means all forms of hardware. So Windows 8 runs well on my fully blown development beast of a PC, yet it works just as well on a small wafer thin tablet running an ARM processor. This is actually great, it means I have a single experience across all my devices, while Microsoft needs only support a single platform.

Now, throw into the mix Microsoft’s investment into the cloud and Windows Live, and you start to see added benefits of this kind of thinking. You can have all your devices understand “state” between them, so understanding where I am in an xbox live game for example, or where I am in terms of a business process. That makes life a lot easier and flexible. Simple things such as changing my “Avatar” on my PC is replicated across all my devices, which is a great touch…

For quite sometime I have wanted a tablet that allows me to install everything I may ever need on it, so that includes development studios, it includes database administration suites, it includes photo editing software etc etc and I simply cannot do that with a tablet. So that means I lug around a great laptop just in case I need these things, yet I mainly use that to search the web, run some power point presentations, check email etc etc. With Windows 8, I can get my PC on a tablet, and use it as a tablet, until I need to use it properly, and in such an event, I can…

 

WinRT, .NET, WPF and Silverlight

Ok, now this is where many bloggers etc really annoyed me, especially those saying “Microsoft has killed .NET and Silverlight”. The essential truth is that many “components” that make up the .NET framework (and therefore the Silverlight framework) have been incorporated into WinRT (which is the metro side of Windows 8 libraries – if you like). Metro apps run either XAML or HTML 5 (note that if you are familiar with WPF and Silverlight that XAML is the front end of those technologies) but don’t run what we could term “native WPF or native Silverlight” applications. Metro apps “managed code” environment is either C++, VB, or C# (oh that’s just the same as WPF and Silverlight), and pretty much everything is the same. If you have an old Silverlight or WPF app,
you do need to make a few, and I do mean few changes, before it runs in the metro environment. I personally don’t see the big problem with this. Sure if you have a business application running on Silverlight, you now need to change it if you want to run it in the Metro world, however, you can always run it in the desktop environment…If you want to migrate, make the few changes and away you
go, and you now have a Metro application. Those changes are essentially a few include changes, and that’s it…

When you look at “Metro”, you see that it really is just an update to Silverlight / WPF, actually the whole of Windows 8 looks and feels like a Silverlight / WPF.

 

HTML 5 and scripting languages

HTML 5 is now supported along with Javascript in Visual Studio 2011, now I don’t think this shows any movement away from Microsoft technologies (such as XAML), rather it shows Microsoft’s aim of allowing as many developers as possible to develop great applications for Windows 8.

From some of the videos I have watched, I would suspect that using XAML is better for Metro applications (well delivering some of them), however, HTML 5 is going to do more than adequate job.

 

Windows Azure

There was a lot on Windows Azure, especially when we start looking at how Windows 8 synchronises between all your devices. Now I am not one who has shouted about the cloud from day 1, I have often spoken of some of the issues regarding compliance and many issues with the cloud. However, that being said, Microsoft uses Azure very very well with Windows 8. They have also gone through a lot of work of exposing may Azure interfaces to developers, allowing them to take advantage of the power of Azure across all devices. Great thinking…

I also liked a lot of things being done with Azure, and how Microsoft have really addressed compliance issues that do raise their head when we think of cloud computing. If I am honest, I think the stuff I have seen on Azure of late has me praising the concept of the cloud so much more. Though I feel that’s more aimed at “Azure” than cloud computing in general. I still have issues with IaaS and concepts of cloud applications running in my browser (I hate that, I want a real user experience, a real application, and guess what, with Metro or the desktop and Azure, I can get that very easily).

 

Developers, developers, developers

BUILD was all about developers, and that means putting them at the forefront of Windows 8, giving them the tools they choose to develop with and allowing them “sell” to potentially millions of customers. On that note, there was a lot made about the sheer number of devices out there that will be running Windows 8, and just how big that audience is for developers. I know that Apple has gained traction here; I know that Android has gained traction too, but at the end of the day, if you develop for Windows you have the biggest audience out there. And that is a fact…Throw into the mix Windows 8 capabilities on tablets and the deal with Nokia, and I think you see that Microsoft is working hard to get even more devices running their software.

 

Much more I have missed…

There was simply so much at BUILD that I can’t possibly start talking about all the things I am aware of, nor did I fancy writing multiple blogs on essentially a platform that is only at developer preview stage.  I didn’t touch on Windows Server 8, nor other features such as NFC enablement, but there you go. Go visit Channel 9 and watch the hundreds of hours on BUILD.

Essentially, Microsoft has been working very hard, it has taken on board the need for touch, and the fact that mobile and tablets are becoming must have devices, and as such, Microsoft should have Windows running on them.

I personally think Microsoft has done a great job with Windows 8 and Azure, and I can really see them taking Apple on head to head in markets where Apple currently dominates. Is this Microsoft getting back to their best? I think so…





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…





HTML 5, Flash, Silverlight, The Cloud…The future is here?

8 11 2010

I.T. seems to be at one of those cross-roads in terms of how people use software, where they use it, and how and where they choose to store their data.

There has been a lot in the press regarding HTML 5 and I have posted some thoughts on this in the past. There has been equally as much speculation as to the future of technologies such as Flash and Silveright and whether they are now redundant technologies as HTML 5 moves closer. In addition to these, rather large discussions, we are also talking about moving content and software away from traditional servers and PCs, and handing control over to the “Cloud” and “SkyDrives” etc…

So this post is looking at indicators of where we may all end up based on feedback I have received from businesses, the general public, phone professionals and my own thoughts…

HTML 5

This is the easiest one to start with really. HTML 5 will be here, at some point. Many say a lot sooner than I personally believe and many (as there always are) saying this will change everything (which it won’t at all). What HTML 5 will do, is simply to replace the need for browser plug-in to enrich a users web experience to an extent. For example, we will no longer typically use Flash or Silverlight to just stream video, give our website some pretty animations etc etc. Some will argue that’s a good thing, and if you are a purist (in terms of open environments, using only HTML to deliver content) then yes it is. For Video and animations, yes it is a good thing…

However, there are big problems with the whole architecture and the way HTML and the web in general works. The problem here is the web browser. When the web was conceived, the browser was simply an application that displayed some content, it wasn’t to be used as an environment in which processing can occur. But, we are here, and the browser is used to run “script” and to initiate communication between the client and the webserver…HTML sets out standards, but, with everything, with multiple choices (in terms of browesers here) you get different results. No matter what standards are in place, web browsers handle, and will handle the same HTML and even script differently to each other. This is a horrendous state of affairs, meaning that the same website has “allowances” for multiple browsers. This isn’t good…From an end users point of view, “who cares”, but from a development, maintenance and cost point of view, this is not acceptable really. Even if the browsers did handle it all the same (or got very close), testing would still need to be made on each browser platform, and for every time a new browser is released / updated. But this is where we will still be with HTML 5, don’t listen to any marketing hype or to any so called “experts” on this….This is simply the facts….HTML 5 will not change the web for us at all…

Silverlight and Flash

HTML 5 will have a big impact on Flash I believe, after all sites that utilise flash do so to enrich the website. HTML 5 will do this, and unfortunately for Flash, developers will adopt this and leverage it before they look at Flash. So where can Flash go? Well there are still many things Flash can offer that HTML 5 won’t be able to, or at least won’t be able to offer consistently across all browsers. Because of this I see Flash filling small gaps that HTML 5 leaves (the same applies to Silverlight). I do think though Flash will see a massive reduction its use on the web, but will maintain its use for presentations, short movies, and games.

Silverlight is a little different. I have never really seen Silverlight as a pure web technology, and those out there who keep comparing it to Flash or HTML 5 obviously know nothing about Silverlight. Sure Silverlight can give you animation online, deliver RIAs, stream movies etc (all that Flash and HTML 5 can do), but Silverlight has a lot more to offer. The architecture behind Silverlight I feel is spot on. It mixes both the worlds of Desktop and Web seamlessly, effectively delivering desktop applications (with all their power) via the internet for installation, communication and maintenance. This is very different to HTML 5. Because of this, developers will use Silverlight for business applications, for RIAs that need to do more (integrate, carry out complex functions etc) and all without the reliance on the browser or server doing processing jobs. This reduces testing and ensures a single code base (and that’s how it should be). In addition, you get frequent updates, and full support from Microsoft, which again are good things for real developers…

There has been some confusion as of late (mainly in the media and Microsoft haters) as to the value of Silverlight to Microsoft and the fact that it is also used on the new Windows Mobile & platform. Let’s get this clear, Microsoft will concentrate more now on HTML 5 as HTML 5 is a big online technology, and it needs to keep up with others. So this is no surprise. However, Silverlight is and will remain a core development platform for the web, RIAs, Out of browser applications and experiences (which it does now). Sure the Silverlight team will also now work more on its Mobile use and adoption, and that’s because they need too. So all we are talking about is prioritisation of the progression of Silverlight. This is clear from reading up on Silverlight, looking at Microsofts future plans and listening to what is said rather than reading between lines when a press release comes from Microsoft…Silverlight will become increasingly more important to Microsoft in the future, as more developers realise that they can use a single platform to code for the web, the desktop and mobile devices…

Cloud computing, SaaS and SkyDrives

I mention SkyDrives here as that is what Microsoft terms your cloud computing storage space with Windows Live and on your windows mobile 7 phone.

I think in the past couple of weeks, I have had more feedback than ever before on the cloud and its use, from both businesses and the general public.

So let’s look at businesses. Businesses cannot move everything over to the cloud, it’s as simple as that. There are savings to be made via the cloud for business, but it has to ensure that it can move those applications and content to the cloud. That it doesn’t already have a cheaper alternative, that it can trust the cloud providers security measures etc 100% and that there is a way to port to other providers in the future. All in all, business is still wary of this and why shouldn’t they be. I see businesses embracing the cloud and SaaS for smaller elements of their operation, ones that do not require so much compliance and that are not that critical to the organisation. This is not a bad thing, rather it is a good thing, the cloud here allowing IT to provide better solutions to the business at lower costs. I don’t believe the increased popularity of the cloud will translate to vast amounts of an organisations data or services being moved to the cloud. Rather the cloud becoming another IT implementation option.

So what of individuals. Well only last week I posted that individuals may well be the big winners of cloud computing. But even here, individuals are more sceptical of cloud based services. It seems that keeping some photos online, music and videos is fine. But when it comes to more personal documentation, you cannot beat a good hard drive or storage device at home. Because of this, I don’t see the masses adopting cloud computing and sky drives….Google may want us all to use the Cloud for software and storage, but the simple fact is, we like control over everything. If our data and content is only in the cloud, then we feel vulnerable, not just to theft, hackers or work colleagues finding things out etc, but also to cloud providers themselves. Let’s face it; Google has an appalling record on data protection and our privacy.

So what is the right usage for individuals? Well Microsoft though I feel has pitched it correctly. Providing 25Gb of space in a sky drive to windows live users (perhaps a little too small really). This is enough space for most people, sure it could be larger to allow us to synch a lot more content, especially music and videos. But it’s a good start. I also love the fact that my Windows Mobile 7 phone provides options to just take a picture and have it stored in my skydrive and not on the device. But, I still have enough space on the device to cart around with me a certain level of music, pictures etc etc. (No doubt this amount of storage will grow). So it’s a nice blend, one I personally am comfortable with, and one most people I speak too are comfortable with…

Conclusion, if any?

It seems in IT, too many marketing companies, experts etc provide to much hype. Everything is also “brilliant” or “rubbish and a fail”. It’s either 100% the way of the future or 0%…There is never any middle ground, and it is the middle ground which actually is where we are heading, in terms of our web usage, devices, online services and storage…And there is nothing wrong with that at all…





Silverlight 4 PivotViewer…I like it…A lot…

2 07 2010

There aren’t many controls that I see that make me sit up and think “wow”, however this really is one of those. For a while now I have been coming up with new ways in which to allow users of our workFile ECM product to access massive amounts of data visually, allowing the user to search through them in a graphical way that is both intuitive, but more importantly in a fashion that is usable rather than just looks pretty. We have had quite a lot of success with this, however in certain areas our solution just isn’t perfect, and for these areas we revert to more traditional methods of understanding / navigating data. The main issue is usually the potential amount of data the user may have to look through…

Let’s have an example. A while back I was asked to consult for a company that were looking at a solution that needed to look through vast amounts of pictures and graphics. The vendor had a very visual solution; it looked great and performed ok, for small sets of data. It involved using nicely animated thumbnails of data, which the user could then navigate, very similar to the standard tree view with details pane. However, the problem arises when your node could contain hundreds of thousands of images (which the customer did have). While the demo looked great and all the representatives from the client thought it would do the job perfectly I had to speak up and ask just how it would cope with say 500,000 images in a single node….. The vendor looked a little shocked and said “you would navigate in the same way or break the node down into several other nodes”…The client looked fine, however again I had to point out that scrolling up and down searching for a single image in 500,000 or popping into every sub node to find my image would take a hell of a long time. It was at this point that the vendor and the client both realised that this solution wasn’t going to work for them….Now this may seem obvious, but the issue with cracking graphical interfaces in this fashion is that, while they work great on smallish subsets of data, they really do fall down to massive vast amounts of information (you can’t beat a good text based search can you…..or can you…)

This morning I decided to finally look at the PivotViewer with Silverlight 4, and, I was very impressed. I have to say I like it a lot…All of a sudden I have a tool that can give me just what I have been looking for (without anyone here having to spend a long time coding).

What is PivotViewer

Basically it is a Silverlight 4 based control that allows you to graphically represent collections of data. You can filter and sort this data quickly and move between different views of your collection allowing users to quickly identify just what they are looking for, or perhaps trends in data for example…

What could we use it for?

Well there are many things it could be used for. A couple quickly spring to mind. Imagine a way of quickly and accurately reviewing your quarterly sales in a graphical format. Then imagine being able to break that data down (using the same graphical format) into each month, then week, then day. Or perhaps you want to compare cars based on fuel economy, price, and number of seats. As a user, you can filter and re-filter all this information graphically so you can quickly and intuitively find what you are looking for…

There are many uses for this particular tool, and it could indeed lead to RIAs that deliver a completely new way of providing us with data and even navigation…

Interested?

Well if you are interested, have a look at http://www.silverlight.net/learn/pivotviewer/





HTML 5 – It’s not the end of internet plug-ins

4 06 2010

I have posted a number of times now about HTML5 and my concerns that people see it as a complete replacement for internet plug-in such as Silverlight and Flash, allowing RIAs to be delivered in pure HTML 5. One of the main people who keep going on about HTML 5 is Steve Jobs (though I think a lot of this is trying to convince the users of iPhones and iPads that Flash has a short life ahead). However, it seems that more and more people are sharing my opinion that HTML 5 will not kill of Flash and Silverlight, and that its adoption is a hell of a long way off in general…A recent report and article from Forrester illustrates this…

HTML 5 traction and buzz….

There is for sure a lot of buzz around HTML 5 in the past couple of months, least not because of Jobs, but also because Google has recently open-sourced its VP8 video codex. To date, abilities and licensing issues surrounding such video converters have been one of the sticking points for beta HTML 5, however this is not the only issue. Though there is a lot of internet buzz, it seems that adoption of HTML 5 is a long long way off, with browsers only supporting small fragments of HTML 5 currently. It seems that for wide spread adoption, as users we will be waiting until 2020 or sometime around then…That’s not exactly close is it…Its again another reason why I am not at all “hyped up” about HTML 5, it’s just so far off….

So while HTML 5 is a long way off, just think how much traction Flash and Silverlight will gain in this period. Silverlight is the new boy on the block, but has already around 60% adoption across all machines. That’s rather impressive, all this while HTML 5 is in beta releases and going through a lot of, development pains and issues shall we say…

There is also the issue of cross browser issues. Just like HTML 4, HTML 5 will suffer at the hands of different browsers. The author of the Forest report (Hammond) stated “Until you get consistent behaviour the question will be why you would use HTML 5 when it actually creates more challenges than it solves from a testing and deployment perspective.” I have to say, this has always been an issue with HTML in general, especially when delivering internet applications, and it is one that won’t go away for HTML 5…Though HTML 5 is supposed to be intended as an enterprise-class product, the reality is that the architecture of HTML 5 with the browser has a number of issues and draw backs, even when talking to web services. Though the aim is for HTML 5 to allow easier building of “applications” the fact is that HTML and that side of the web architecture was never designed with this in mind….

Test once…You are all done…

Ahh, well this is not the case is it with HTML. Unfortunately you will need to perform tests on all the browsers out there, and no doubt, place “HTML fixes, CSS fixes and JavaScript fixes” into your application depending on what browser is running it. This does make life a lot harder for testing and development, oh, and of course ongoing support. However, this problem is just not there for Flash and Silverlight, because their architecture is completely different and in many ways separate from the browser and the web in general, indeed you can run Silverlight out of the browser fine…

Hammonds recent report – titled “Does HTML 5 Herald the end of RIA Plug-Ins? Not Really” – found that application delivery through RIA amongst businesses rose to 34% in 2009, up from 26% in 2008. This illustrates the increase use of RIAs amongst businesses, especially with technologies such as Silverlight develop further, all this while HTML 5 is still in its draft phase…

For traditional website material, you could still use HTML and HTML 5 if you wish, however for complex functions and applications, I would always recommend the use of Silverlight, there are just so many hurdles you negate while being able to use a technology that isn’t restricted by the browser web architecture.

Open aspect of HTML 5

So many people claim they love the idea that HTML 5 is “open”. And there are some good arguments made for this, however I have yet to see one example where these arguments are valid. Especially arguments that users may have to pay for Flash or Silverlight use, that you can become restricted to what browsers you can use, or that you are dependent on them for your support…I don’t see an issue or potential issue with any of these arguments, they are just created so people try to feel more safe with an “open” technology controlled by many rather than a single company…

However, this open aspect of HTML 5 may also work against its progress and adoption, especially as open standards are very slow to develop. HTML 5 has been in development for a decade now, and though early candidate releases are recommended for 2012/13, it is a while yet before we see HTML 5 as the standard version of HTML being used. On top of that, cross browser issues and W3C adoption is even further off…

Architecture…

RIAs require processing on the client, or at least they should do. Users expect “thick client” performance and usability in an RIA and on top of that, access to hardware components, such as storage, web cams, other applications running on the client etc etc. The architecture behind the web and HTML jsut doesn’t allow this. Though HTML 5 will bring us a richer web, with easier video playback, website animations and improved usability (a little like Ajax has done), it will always be behind Silverlight for example, that can take advantage of hardware on the client, keyboard interactivity, integration with other applications and the ability to work in a “disconnected state” from the internet….

My own view on the use of HTML 5 in the future…

It simple, for typical web content, HTML 5 will provide a greater level of interactivity, animation and improved user experience. It will no doubt be used for “simpler” RIAs, however its adoption as a serious RIA for businesses is plain fantasy. RIAs need to deliver more, and therefore organisations will continue to look to plug-ins, especially Silverlight more and more. I also believe that websites available to the general public will also have more aspects delivered in Silverlight, even once HTML 5 has gained traction, simply because Silverlight can deliver a better end user experience without many of the hassles associated with web development and HTML, CSS and JavaScript across multiple browsers…..





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. http://www.bing.com/maps/explore/ 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…





Automating Microsoft Word with .NET

7 07 2009

Well this week I was in the technical world and getting my hands dirty. A couple of our products seamlessly integrate with Microsoft Office, which works great for the business at the end of the day. So because of this we have our own technical service that effectively acts as the service that integrates with Word. However, something a little different was required. A client required us to automatically generate ordering catalogues, and we are talking word documents with around some 200 pages. This automation would happen within our LOB .NET application.

Their formatting was very specific and in some cases dependent on the type of products being added to the catalogue. Because of this, there isn’t the typical option of using bookmarks and or data fields within a template, especially as I wanted to use a single generic template for all their catalogues (they have 5 which they produce every 6 months)…

 

Referencing the Word Object Library

This is quick and easy, and I am presuming you know how to use Visual Studio. In your project choose to add a reference. Select the COM tab, then make your way down to “Microsoft Office 12.0 Object Library” (Your version depends on your version of word installed on your machine).

 

Referencing Word from .NET

Referencing Word from .NET

NB: Notice once you have added this you will have two references in your project to Microsoft Word. Look at the path and you will see they have 2 different locations, one of which is within “Microsoft.Office.Interop.Word”

 

Imports statement

Its good practice to import in the namespace you are working with into your class. So at the top of your class add the imports statement (VB.NET):

Imports Microsoft.Office.Interop

 

Opening a word document / template

Some posts talk about how to create a word document on the fly. This is great, but it’s much better and easier, if you have a document to work with from the beginning. A template is great as you can then utilise your own styles from within that document from your .NET code. In my own case, I created a word document that contained only a table of contents and a second page. The document is blank, but does consist of some customised styles that I have created. Also, our template is stored within our workFile ECM repository, so I can grab a copy of the template from the repository anytime with our application and use it.

You will need to create a Word.Application object in your code. I like to set up a module variable that holds my word application object and my word document. In addition I choose to open the word document in its own procedure, again coding practice. Also remember I am inserting this code into an already existing word service layer that we have written ….

Private Sub openWordDocument()
 
        'check if we have an active word application object
        If myWordApplication Is Nothing Then
            myWordApplication = New Word.Application
        End If
 
        'set the word document
        myWordDocument = myWordApplication.Documents.Open(myWordDocFile)
 
End Sub

MyWordDocFile in this case is a string value, which is the location and name of the document I wish to work with.

 

Inserting a paragraph, text and style

Now if you don’t have the luxury of using bookmarks or data fields, simply because you are not sure what text you are inserting, you are going to need to create paragaphs, text lines and give them some form of style.

Creating a paragraph object is easy, however, make sure you are inserting it into the document where you want. Typically this will be the end of your document as you are appending to it. Remember in the code below, myWordDocument is the actual word document itself we opened earlier.

Public Sub insertParagraph(ByVal pText As String, Optional ByVal pStyleName As String = vbNullString)
 
        Dim para As Word.Paragraph = myWordDocument.Content.Paragraphs.Add(myWordDocument.Bookmarks.Item("\endofdoc").Range)
 
        Try
            para.Range.Text = pText
            para.Range.Style = pStyleName
            para.Range.InsertParagraphAfter()
        Catch ex As Exception
            System.Diagnostics.Debug.WriteLine(ex.Message)
            Throw ex
        Finally
            Marshal.ReleaseComObject(para)
            para = Nothing
            GC.WaitForPendingFinalizers()
            GC.Collect()
        End Try
 
    End Sub

Points to notice here.

  1. A paragraph is a “range”, if you like, a selection within the word document.
  2. We simply set the text and style value for the paragraph
  3. Insert a paragraph after so we are again at the end of the document and working in a new paragraph. (next time we call this method)
  4. I choose to marshal out of memory the paragraph object. This is because it is a com based object and as such we can get some memory issues and weird errors being raised by the dll when dealing with larger document generation.
  5. I use the garbage can to ensure everything is cleaned up properly (this isnt over the top, as without it I received error messages for larger documents – such as “The callee refused the call”. Nice…)

 

Inserting text in a range without a new paragraph

If you simply want to add text and dont want to create a new paragraph, then again, you need to create a range, however this time it is just a range (not a paragraph).

Public Sub insertTextLine(ByVal pText1 As String, ByVal pText2 As String, ByVal pText3 As String)
 
        Dim textPart1 As Word.Range = myWordDocument.Bookmarks.Item("\endofdoc").Range
        Dim textPart2 As Word.Range
        Dim textPart3 As Word.Range
 
        Try
            textPart1.Style = "BookTitle"
            textPart1.Bold = True
            textPart1.InsertAfter(pText1)
            textPart1.Bold = True
 
            If pText2 <> vbNullString Then
                textPart2 = myWordDocument.Bookmarks.Item("\endofdoc").Range
                textPart2.Bold = False
                textPart2.InsertAfter(" " & pText2)
            End If
 
            If pText3 <> vbNullString Then
                textPart3 = myWordDocument.Bookmarks.Item("\endofdoc").Range
                textPart3.Bold = False
                'two tabs to the correct location
                '----------
                textPart3.InsertAfter(vbTab & pText3)
            End If
 
            'insert a new paragraph...
            textPart3.InsertParagraphAfter()
 
        Catch ex As Exception
            System.Diagnostics.Debug.WriteLine(ex.Message)
            Throw ex
        Finally
            If Not textPart1 Is Nothing Then
                Marshal.ReleaseComObject(textPart1)
                textPart1 = Nothing
            End If
            If Not textPart2 Is Nothing Then
                Marshal.ReleaseComObject(textPart2)
                textPart2 = Nothing
            End If
            If Not textPart3 Is Nothing Then
                Marshal.ReleaseComObject(textPart3)
                textPart3 = Nothing
            End If
            GC.WaitForPendingFinalizers()
            GC.Collect()
        End Try
 
    End Sub

What we have done here is effecitvely appended 3 text values into a single text entry within our word document. Notice that by using “InsertAfter” from our Range object, we are literally inserting text, no paragraphs. Also I have used vbTab to space out the value. My word document has a set location for a tab entry within the selected style, this ensures I know where the text will be inserted in that line.

Again ensure you clean up your objects and marshal them out of memory.

 

Saving your document

In my case, we are working with a temporary file that has been copied locally from the workFile repository. You may be working with just a template though sitting on your hard drive somewhere, so make sure you dont save your document over the top of that template! School boy error if you do…..

Saving the file is real easy, provide your directory and file name and you are almost complete:

Public Sub saveCatalogue (ByVal pCatalogueName As String, ByVal pCatalogueLocation As String)
 
        If Not System.IO.Directory.Exists(pCatalogueLocation) Then
            System.IO.Directory.CreateDirectory(pCatalogueLocation)
        End If
 
        myWordDocument.SaveAs(pCatalogueLocation & pCatalogueName)
        myWordDocument.Close(False)
 
    End Sub

 

Tidy up memory and word

Your file has been saved, but you have yet to finish. If you look in task manager you will notice that WINWORD.exe is still running, and its memory size could be quite large. If you don’t kill this off correctly and you continue to create word documents in this fashion you will cause havoc with performance. So, we have to clean up after ourseleves.

    Private Sub closeWord()
 
        On Error Resume Next
 
        'quit the word application
        '----------------------------------------------------------
        myWordApplication.Quit()
 
      
        'marshal out the com objects, dont want any memory leaks here...
        If Not IsNothing(myWordDocument) Then
 
            If Not IsNothing(myWordDocument.Fields) Then
                Marshal.ReleaseComObject(myWordDocument.Fields)
            End If
 
        End If
 
 
        Marshal.ReleaseComObject(myWordDocument)
        Marshal.ReleaseComObject(myWordApplication)
 
 
        myWordDocument = Nothing
        myWordApplication = Nothing
 
 
    End Sub

Quit word then clean up….Again we are marshalling out objects from memory and cleaning up everyting.

 

Using fields

If you have the luxury of knowing the format of the document (such as populating an invoice, a letter etc), then you can use fields to make life a lot easier for you. Again, set up a template word document with the content you desire. For that content which is to be added dynamically, insert a data field. (See help within your version of Office to do this).

From .NET when you have the document open, you can now loop round or search for those fields on the document. Fields are found within the word document object itself, and is a collection of Word.Field objects.

You can then update the field text and carry on….See the sample line of code below, which is using an invoice reference to insert into the data field.

field.Result.Text = CStr(invoiceRef)

 

Conclusion

Word is great to automate and can be very powerful for your .NET applications. Sometimes you may struggle to find great documentation on this, however, its worth searching for…Just remember, always clean up your code and look after your memory, if you dont, you will get some weird and wonderful error messages once processing larger files…