Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

With iOS and Android soaring on mobile devices that become ever more pervasive, every other year being the 'year of Linux on the desktop' - which is somewhat snarky, but they are getting there -, OSX still holding its own, the time when one could simply say "it runs on Windows, and if you're not using Windows, well, sucks to be you".

I'm a .NET developer, with the applications i'm developing being fairly service-oriented, so that I can easily expose the backend logic to different frontends cross platform. I'm really bad at user interfaces, but in the end, applications do need to end up with an end user. And to present the application to the end user, it needs a GUI. It was looking like XAML/WPF was the land of bounty, where they weren't quite there yet, but were aiming to make a cross platform presentation layer. Lately, it has been mighty quiet on the WPF front though. Silverlight is all but dead. I sort of half hope that the 'right thing' will be happening here, with some black magic, pixiedust and flying unicorns that poop rainbows transforming my code + XAML into HTML5/CSS3 applications, winforms, metro, or whatever other form I choose to build for. This might be a bit optimistic.

So what presentation forms should I be looking in to? I would like to continue to use .NET as a primary ecosystem. Should I just be going asp.net + html5, and do the front end by hand in html5/js/css? Is there any framework that looks like it will hold the promise to be able to do something in a somewhat unified language?

share|improve this question
    
You didn't say what kind of applications you're developing and who your target audience is. For example, if you have a typical US based corporate audience, they may still be using IE6/7/8 and Windows XP (ouch!) and HTML5/CSS3 solutions won't work for them. –  jfrankcarr Aug 7 '12 at 11:19
    
Thanks for the feedback! I'll edit the question in a moment. –  Martijn Aug 7 '12 at 11:24
add comment

3 Answers

up vote 3 down vote accepted

Go for HTML5 based development, not only will it work on mobiles but will be cross platform on desktops too.

to get cross-platform mobile web dev, you want Apache Cordova, not just a way to write apps using web GUIs, but also gives you access to various mobile APIs, nicely wrapped up in javascript library. For LoB apps, HTML is the perfect solution as you don't need tons of power to run them. For accessing your back-end services (being very careful about WCF services as their SOAP protocols tend to be poorly interoperable) then use jQuery direct or grab restify''s client libraries (or hey, forget obsolete old .NET and run Node.js servers instead, then you get to do everything in that unified language, except for CPU-crunching parts that you'll want to write in C++)

Of course, if you want to write something with lots of GUI performance, you'll want to go native with C++, either with the NDK or with an objective-c wrapper.

share|improve this answer
    
just as a note: WCF does REST too these days, and can expose its data through lean json, rather than bloated XML –  Martijn Aug 7 '12 at 11:11
    
It takes some planning to get HTML5/CSS3 solutions to work well across phones, tablets and desktops. I've seen more than a few fails at this. You need to test on both IOS and Android phones and tablets as well as all the common desktop browsers. Also, you have to deal with, "We don't have the budget for an iPad and a Galaxy Tab, just wing it." –  jfrankcarr Aug 7 '12 at 11:24
    
I'm quite easy when it comes to that: no testing device means no tested (en hence, no guarantees from my side) application for those devices. Want to claim it works on a specific platform? Hand me the testing tools. Don't want to provide them? Then I won't claim it works on that platform. –  Martijn Aug 7 '12 at 12:31
    
@jfrankcarr - it takes some planning just to get it to work across browsers on Windows desktops too (thanks, IE). When using HTML5, do not think of it as a single GUI, more like 1 GUI for each platform where most of the code is reused. –  gbjbaanb Aug 8 '12 at 13:14
add comment

I think it really depends on what kind of software you are writing.

Is it something you can leverage by using the mobile device native API's (like multitouch, rotation, compass, etc...) or it doesn't matter ?

Do your application need to be online to work or it should work offline ?

Today you have some great HTML/CSS/JS tools to work with and, as the browser became the ubiquotous user interface, and with the progression of Atwood's Law, you can create nice interfaces with relatively easy.

Take a look on jQuery, jQuery UI, KnockOut JS and many others like flot you can use to create both online or offline applications with.

For some mobile devices, like iPhone or Android phones you can create simple applications where you can load a remote or local URL using the native browser.

If your application will only work online, stick with the technology you know, but learn some god dammit javascript, since it's the assembly language for the web.

PS: On a side note, Scott Hanselman has a great list of cool javascript libraries.

share|improve this answer
add comment

Use Html5/CSS3 as native mobile/web development. This will allow you to get same result on mobile as well as desktop devices.

As a .NET developer you might be familiar with ASP.NET framework development, thus i would suggest to use ASP.NET MVC 4 for cross-platform mobile development with views/pages in HTML5/CSS3. There are good number of tools and mobile frameworks that are a part this development community.

You may look for more details @ What’s New for Mobile Development in ASP.NET MVC 4.

There is also possibility to use Silverlight, but i did not explore it yet. Here is a refernce to look - Silverlight for mobile phones

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.