The company that I work for develops a C++ application to manage service businesses (dispatching, GPS tracking, CRM, etc). The problem is that the system is a little too limited. Being a relatively small company, we'd like to broaden the horizons and add some more modern features such as a web interface and plugins for various other applications, like Outlook, that would enable them to interact with data in our application.
Currently, I'm developing a web interface in ASP.NET MVC and have been for the last two months. However, this implementation is suffering from the same kind of limits that the C++ application has, so I would like to take things a step further. It's just that I'm not sure if this is a wise decision, or how I should go about convincing management that the greatly increased development time will mean greater possibilities in the future.
What I would like to do is implement some sort of massive API using WCF that would allow access via both web and desktop applications. My web interface could then be just that... and interface to this API using a framework such as Qooxdoo or ExtJS. But other interfaces could be added, such as an iPhone application, an Adobe AIR application, an iGoogle Widget, an Outlook plugin, etc.
Here's the thing, though... at the moment, I'm just a lot of talk. I have a good knowledge of C# and .NET technologies like WPF, WinForms, ASP.NET MVC, etc. But, I've never used WCF in my life. I'm pretty sure I can pick it up, but is it possible to grasp something so extensive as WCF when my employer wants to see fast results?
One way that I believe I can show results is to release the API incrementally. For example, the first "Community Technology Preview" would include simple dispatching functionality, he next CTP would include sales and marketing features, and so on. I don't really think customers would pick it up very quickly, but it would allow us to internally develop applications such as a web interface and plugins.
One problem I see with that is spending so much time developing the API that the development of applications that actually USE the API would be extremely slow. I mean, I could show a URL to my boss that returns a list of customers in JSON format, but what can that really do for us if the customers can't do anything with it?
I guess what I'm trying to ask is: how feasible is it to drop development on a limited web application that's almost finished and begin work on a WCF-based API to power future projects?