Native Apps At The Client & Cloud

Srinivasan Sundara Rajan

Subscribe to Srinivasan Sundara Rajan: eMailAlertsEmail Alerts
Get Srinivasan Sundara Rajan: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn


Related Topics: Cloud Computing, Java Developer Magazine

Blog Post

Five Reasons For Using C# For Enterprise Client Development

What is Open Source .Net Means To Enterprises

Enterprise Client Strategy  : As  the  Enterprise  Mobility  becomes  a  new  business model   it  is  no  longer a  question  of  just  choosing  a  programming  language  which  hither to  the  business is  not  that  much worried  as  long  as  the  platform and  languages  deliver  what  they  want.  Now  clearly  the  choice  of  Enterprise  Client  Platform    should  be  part of  long  term  vision  of enterprises  and  they should  consider  it  from  the point  of  view  of  sustenance  and  long  term  vision  more  than quick wins.

We  have  got  two  major  choices,

1.       Utilize  the  HTML5  and its growth  and  support  across  major  platforms  and  vendors and  its ability  to  run  across  devices. These  include  various MEAP  (Mobile Enterprise Application Platform)   suite of products  that  enable  development  of HTML5  based  applications.

2.       Utilize   C#  which  is  a  Objected Oriented  higher level language  as part  of  Microsoft  .net  framework  and   extend  it  with  Xamarin platform  to   develop  cross  platform  applications in a  single  code  base.

Here  below  I have  listed 5  reasons  why  the  Option  2  may  be  much  better for enterprises in the longer run.

1.Cannot  Discount Windows 10 Or  Desktops : Like  it  or  Hate it,   Windows  powered  desktops,  laptops,  tablets  and  devices  will  definitely   be  part  of  enterprises .  While  iOS  and  Android  powered   devices  will  definitely  make  an  entry,  any  approach  for  a  larger  client  strategy  has to evolve  around  Microsoft Windows  platform.  More  to  it ,  the  promise  of  Windows  10  and  it's Universal  app concept  will  definitely  have to  be  kept  in  mind.  Using  C# and   XAML  will  be one of the most preferred  way  to  write  Windows  10 applications.  With   the  support of Xamarin  this  means  that  C#  will   be  the  most  preferred  way  to  write  applications  across  Windows  10,  Android and  iOS.

2. User  Experience Will  Be  A  Deciding  Factor: As  enterprise  mobility  becomes  a  differentiator  for  businesses ,  much  richer  user experience  will  decide its  success  and   hence  a   natively  compiled application  that  takes  advantage  of  every  feature  and gesture  of  the  device  will  be  a preferred  path,  in that  context  developing  native  applications  using  C#  will  be of clear  advantage  to enterprises.

3. Adopting the  Device OS Life Cycle : As  each  device  operating  system  vendor  wanted  to differentiate  there  is  a  vast  difference  in their  native  app  structure  and  life  cycle. For example  an  iOS  app  has the following  Objects  as part of the structure:

  • UIApplication Object
  • AppDelegate Object
  • UIViewController Object
  • UIWindows Object

Also  it  has  got   specific  events  like  Touch, Location  etc..  and  it  the app  has different execution states.  In  contrast,   Android   applications  go  with an  Activity  Object  and  the  associated  events  and  application  states.  Similarly  a  Windows  10  application  has  a different  object  model and  events.  All  these  mean  a   best  of  a  native  application   can  only  be  written  if the  same  Object  Model, Life Cycle,  Event  Handling    are  inherited.  Such  an  Objected  Oriented  approach  is only  possible  with  a  true  Object  Oriented  Language  like C#   and  not HTML5.

4. Reuse  &  Developer Productivity : With  so  much  differences  in  the   Object  Model,  Life Cycle Events  and  application  states,   the  "Write  Once  Run   Where"  concept   can  only  be  true  for  applications  with  a  LCD (Least Common Denominator)  user  experience  across   devices,  which  means  to  gain  a  better user experience   native  development  has to be adopted.  But  when  adopting  native  development  utilizing  C#  with the  Support of Xamarin  will  help  the  enterprises  to  write   highly  reusable  code  across  devices.  Already  C#  is  a  high  level  objected  oriented  language  where  the   inheritance,  polymorphism ,  encapsulation  OOPS  concepts  are  part  and parcel  of it, with the  support of  design  patterns  like MVVM   using C#    we can  write  highly  reusable  code  which are   native, cross  platform  and  yet reusable.

As  an   additional  measure,   as  C#  is  also  a  strong  server  side  programming  language  for  developing  REST based  web  service  end  points  this  means  the  developer  productivity  will increase  many  a  times  with a  single  code base  from  an end to end perspective.

5.Long  Term Maintenance Perspective: The  previous  wave  of   web applications  have  started  some where in  early  2000  and  most  of them sustained  for   more  than  10 years  and more while  managing  multiple  changes  to  the  design patterns  and frameworks. For  example  Java  EE web development  has started  with  core  SERVLETS, JSPs  and  evolved  to  STRUTS, JSF  and  similarly  the  back end  code  from  DAO, EJB to Entity Frameworks.  This  means  the  base  programming  platform  has  to be  adaptable  to  the  new  design  thoughts  and  frameworks  as  we go  by.   As  we  expect   that this  wave  of   Enterprise  Client  development  targeting  Universal  devices   may  atleast  span  till 2020,  enterprises  should  think in  longer  term  perspective  which  again  a  high  level  objected oriented language  like C#   will  be  a  better choice.

In the last  15 years  any  mention  of  C#  in enterprise  space  will  generally  be countered  with a  support for Java.  However  the  above  thoughts  are  not  about  C#  Vs  Java.  Typically  both  Java and C#  are  equally  strong  in their   developer  support, OOPS principles and  productivity  needs.  But  unfortunately  Java at this  time  does  not have   a  universal  client  strategy  as  C# does  and  hence  C#  is  mentioned  as  a  choice  for  future  enterprise  client  development.

Considering  the  recent  announcements  about,   .net  core    is  now  part of  Open Source  initiative this  means  even  enterprises   which  are  bit  sceptic  about   using  a  commercial  platform  can  also find some  support for this thought  process.

More Stories By Srinivasan Sundara Rajan

Highly passionate about utilizing Digital Technologies to enable next generation enterprise. Believes in enterprise transformation through the Natives (Cloud Native & Mobile Native).