Technology Considerations of my “What’s Going On” mobile & tablet app

There are plenty of choices to choose from for platforms and framework to develop mobile applications both in the front end i.e. UI layer and backend (Server code and database) but the question comes why Sencha, Nancy & Ruby on Rails, Raven DB? and the answers are

 

  • Open Source
  • Free development & test environment on the cloud
  • No great tools / IDEs required for development

senchahttp://www.sencha.com/products/touch/

  • MVC framework – guidelines and standardizations are implicit  due to MVC architecture hence making mistakes is difficult
  • Full fledged Open Source Cross Platform Mobile Application development framework which addresses all the facets of Mobile App needs
    • Build
    • Device management (Mobile, Tablet etc.)
    • Push Notifications
    • Image rendering through Sencha.IO Src because the resolutions of the images vary with respect to what  type of displays the phone /tablet has i.e. retina display consumes double the resolution which sencha.IO. Src takes care
  • Sencha.IO – Supports one free sencha application hosting which is really a great option to upload the app and see it live online
  • Sencha Scrolling is very smooth with fixed headers and footers where we spent lot of time in Jquery and finally frustrated and failed.
  • Good documentation
  • Very good off the shelf available controls and plugins addresses the common use cases
  • Theming architecture is powerful due to SAAS & COMPASS
  • Prior implementation experience in building light weight Enterprise application using Sencha
  • Burnt our fingers with Jquery Mobile (We still use Jquery heavily in our web applications and I am a great fan of it and I respect Jquery a lot)

nancyfxNancy / RoR

Being from MS.NET && ALT.NET, my natural choice is NancyFx because it is super-duper simple and just works!

    • Very light weight as against WCF
    • Super simple to write RESTful Services
    • Extensible and works even in Mono
    • Multiple hosting models and no dependencies of  ASP.NET
    • Easy deployment (just xcopy the dlls with no configurations)
    • Appharbour for deployment

RoR – should have chosen Sinatra but my client needed Ruby On Rails aka RoR. RESTful API is no extra coding required i.e. controller can be exported as RESTful services without extra code

ravendbSchema less Database or NoSQL & RavenDB

  • Schema less DB – Easy to build and adaptable to modifications
  • High degree of adoption of document database everywhere
  • RavenDB – It is written by Ayende @ Rahien, that’s it, I don’t need to explain further because people who knows Ayende will understand
  • Language Integrated Queries aka LINQ
  • Free availability of RavenHQ (in cloud) for development (15 MB or 1000 documents which is more than sufficient for WGO kind of development projects)

AppharbourAppharbour (Azure Done Right!)

It is Heroku for .NET and it was an easy-to-use development platform. AppHarbor is designed to address Microsoft Azure limitations such as being locked into Microsoft’s own database, and its non-support of Git.

  • Continuous integration is implicit. They are making us follow best practices
  • Many top notch add-ones available readily (RavenHQ, NancyFx are critical in this case)
  • Integration support for Subversion Source Control repository in CodePlex other than GitHub.  Not everyone in MS.NET community are comfortable with GitHub otherwise GitHub is awesome and powerful

One thought on “Technology Considerations of my “What’s Going On” mobile & tablet app

  1. Pingback: Technology Considerations of my “What’s Going On” mobile & tablet app | Vmoksha

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s