Top 10 client side technology considerations for web development companies

Want to add superpowers to your web application? Yes! Then JavaScript frameworks can do magic.In the



Want to add superpowers to your web application? Yes! Then JavaScript frameworks can do magic.


In the era the of rapid and interactive web application development, plain HTML/CSS does not serve the purpose. For innovative and interactive user interface, client side technologies or JavaScript frameworks come to rescue.

JavaScript frameworks are backbone of the web development for web development companies that allow programmers to develop interactive user interface without worrying too much about the code structure and maintenance.

We discuss here top 10 JavaScript frameworks that are very popular among software development companies in India.

 

 1) Angular.js

AngularJS is very popular and highly used JavaScript framework for developing Single Page web applications maintained by Google. This works on MVC and MVVM pattern. This not only simplifies the development but also testing of the web applications.

It allows programmer to extend HTML attributes by using Angular directives or creating custom directives. AngularJS compiler, compiles and renders HTML, it manipulates DOM elements and attach features provided in used directive.

The core feature of AngularJS is two-way data binding. It allows software programmer to create synchronized environment between view and model. If value of model is changed then it will automatically get updated in view and vice versa.          

Pros Cons
Two-way data binding simplifies process of developing complex web applications. Performance issues for large web applications due to constant synchronization between view and model
Directives allow user to manipulate DOM elements very easily Code is difficult to understand and debug.
Good documentation and support Substantial framework size
Very powerful framework with Filters, Dependency Injection, Expressions etc.  

 

 2) React.js

React.js is the answer for building large scale applications. Unlike AngularJS, it is very efficient at rendering complex user interfaces with better performance.

Virtual DOM is the basic concept on which ReactJS works. It renders virtual DOM to server first and then compare virtual DOM with actual DOM and update only the differences. This makes it better choice for large web applications.

Facebook and Instagram are very good example of large scale web applications that are built using ReactJS.

Pros Cons
Light weight framework Programmer may face issues working with other DOM manipulation libraries like jQuery.
Easy and simple to learn and master Constant re-rendering of components may slow down the application in case of large set of data.
Highly compatible with MVC Substantial framework size
High maintainability due to on-way data flow  
Component constant re-rendering decreases complexity by providing efficient arrangement.  

 

3) Ember.js

EmberJS is another powerful JavaScript framework that works on MVC pattern. EmberJS offers best of AngularJS and ReactJS both.

EmberJS works on principle of two-way binding, just like AngularJS. It also provides synchronized environment between view and model.

To overcome performance limitation of two-way binding in complex UI rendering, Ember released module Fastboot.js that allows server side DOM rendering similar to ReactJS.

Pros Cons
Very popular like Angular and React so add-ons are easily available Not as powerful or feature rich as AngularJS
Two-way binding and UI rendering Difficult to learn and implement

 

4) Meteor.js

MeteorJS is a full stack platform that allows building end to end mobile and web applications purely in JavaScript. It also provides better performance.

MeteorJS comes fully equipped with all the features that developer needs to create frontend, backend, business logic, and database management. This is supported by huge community that is always reachable for any issue or help required.

It only requires knowledge of JavaScript and MeteorJS to develop web application. MeteorJS is modular so packages and libraries can be used on demand.

The Server side packages run in node.js. Any changes in database are reflected back to UI in real time and vice versa making database operations faster.

Pros Cons
It is a truly JavaScript framework that requires nothing else but this to build end to end web application. User may find some issues with deployment and two-way communication with database as it maintains constant connection with server unlike the traditional request/response.
Only JavaScript knowledge is required to develop web application in MeteorJS  
Tutorials, help and custom packages are available very easily  
Better performance  

 

5) Aurelia.js

AureliaJS is an open source front-end technology managed by Durandal Inc. It extends the capabilities of DurandalJS. They have added libraries, tools, and frameworks to support latest web app development. It is easy to migrate to AureliaJS for developers working on AngularJS or DurandalJS.

AureliaJS has highly modularized structure. It comprises of many independent small libraries. So, one can have option to either use entire framework or use few of the required libraries or extend the libraries to create custom framework.

Pros Cons
Has very less dependencies as it is a self-contained package Not suitable for small projects
Provides out of the box support to Typescript  
Provides excellent routing  
Easy to understand  
Great documentation and support  

 

6) Polymer.js

PolymerJS is different from others. It is released and managed by Google. It works on the concept of web components to extend capabilities of HTML.

Web component is a browser technology using which user can create new custom HTML elements.

PolymerJS provides structure and gives power to user to easily create custom HTML elements using browser based technologies like web components, Service Workers and etc.

Pros Cons
Allows developer to create custom HTML tags It cannot be used as only JavaScript framework because of its limitations

 

7) Knockout.js

KnockoutJS works with MVVM pattern that makes it a bit different from Angular and Ember.

It is a small, lightweight and purely JavaScript framework with no dependencies. It also provides features like Declarative bindings, Automatic UI refresh, Dependency tracking and Templating.

Pros Cons
Lightweight, Small framework with no dependencies New features are coming slowly as compared to competitor frameworks like React and Angular
Provides features like Binding, UI refresh, Dependency tracking and many more  
Widely used by many communities so support is easily available  
Great documentation and help  
Great documentation and support  

 

8) Backbone.js

BackboneJS is a light weight but fully featured JavaScript framework. It is used by many big companies like Pinterest, Foursquare, Walmart etc.

The best thing about BackboneJS is that it is simple and easy to learn. It is also very flexible to use with other third party JavaScript frameworks.

Pros Cons
Easy to integrate with current project Not suitable to use as core framework as it isn`t that feature rich. Can be used as side framework.
Small sized, flexible and easy to learn Sluggish release cycle

 

9) Mercury.js

MercuryJS is recently released JavaScript framework and it is gaining popularity and getting lots of attention from the community of JavaScript developers and custom software development companies.

It is inspired by ReactJS and also works on similar concept of virtual DOM rendering. It is a modern JavaScript framework that is fully modular.

Pros Cons
Light weight JavaScript framework Poor documentation
Can be used to handle large projects Lack of support

 

10) Vue.js

VueJs is relatively new as compared to its competitors like Angular and React. It works with MVVM pattern.

It has very simple API that is easy to learn and also light weighted. It allows user to use entire framework or selective modules as required. It is inspired by AngularJS, ReactJS, KnockoutJS and also supports two-way binding to synchronize model and view.

Pros Cons
Supports two-way binding Not very popular
Updates are regular to compete with other frameworks Less support
Lightweight, easy to learn and versatile Limited customizations possibility

Conclusion:

To develop rapid, interactive, feature rice web applications with less complexities, JavaScript frameworks became the default choice, as specially for Single Page Web Applications.

JavaScript frameworks make it easy, fast and efficient to create, manage and dynamically render complex UIs. It also increases the performance of your web application.

These are front end technologies so software development companies should take appropriate security measures to ensure safe and secure user experience.

Power of PowerShell script

What is PowerShell script? A PowerShell script is a simple text file with multiple commands that one

Software outsourcing companies India

 

What is PowerShell script?

A PowerShell script is a simple text file with multiple commands that one can execute in Windows in one go. Each command in the file are separated by newline character. PS1 is the extension for PowerShell script files. PowerShell is a powerful scripting language for custom software development companies.

PowerShell window is used to run all PowerShell script files. One needs to simply type the full path within PowerShell script with filename. For instance – c:\scripts\powershelldemo.ps1.

How is it different than other programming languages?

PowerShell script can be compared with CMD as they are similar in concept.

PowerShell Cmd.exe
It is object based scripting language It is text based scripting language
Cmd commands works in PowerShell PowerShell cmdlets won’t work in Cmd.exe
System Administration tasks for managing the registry to WMI (Windows Management Instrumentation) are accessible via PowerShell System Administration tasks for managing the registry to WMI (Windows Management Instrumentation) are not accessible via cmd
It’s a powerful scripting environment that can be used to create complex scripts for managing Windows systems much more easily than you could with the Command Prompt. It is more difficult to compose complex scripts with cmd
Equivalent common Commands For Change a Directory : Set-Location For Rename a fille : Rename-Item Equivalent common Commands For Change a Directory : cd For rename a file : rename

 

What are the benefits?

PowerShell is robust scripting language and offers many benefits over traditional scripting languages like VBScript and others.

  • PowerShell is an Object-Oriented scripting language
  • It provides more functions compared to cmd.exe and VBScript
  • It is more extensible via cmdlets, plugins
  • It supports .NET Objects and Forms: PowerShell has access to all .NET libraries so custom software companies can take advantage of anything that they could with a language like C# or VB.NET. One can also load any .NET DLL and take advantage of third party libraries
  • It supports Automation of tasks: Adding a user to 500 machines is a time consuming process if done manually. However, with the help of PowerShell script, one can automate this process.
  • Background Jobs: PowerShell runs on a single thread so if one tries to invoke any .NET libraries that creates a new thread like Background Worker, it may run into issues. In PowerShell script, there is a concept of background jobs.
  • Interactive: PowerShell is also interactive. This allows programmers to try out things at the console first and integrate them into larger more complicated scripts.
  • Reusability: The scripts once written to perform a specific task can be saved for later use and also can be merged with other scripts to perform different tasks. So repetitive tasks can be performed to run the scripts. This saves the administrators time and money in configuring the machines.
  • PowerShell supports group policy based control of the environment

What are the disadvantages?

There are few disadvantages of using PowerShell script that custom software companies should consider while using the same for software development. Following are some of the considerations.

  • PowerShell requires .NET framework
  • Object-Based: With most shells, text-based commands are used to get the job done while writing scripts. If you switch to Windows PowerShell from other type of shell, programmer has to get used to a different way of thinking. This can take time to get used to this.
  • Security Risks: Another potential drawback of using Windows PowerShell is that it can create some potential security risks. Many IT professionals use it as a way to connect remotely to other computers and servers. When engaging in this process, PowerShell can leave some loopholes open for security breaches. This is the major drawback of using PowerShell script.
  • Web Server: Another issue with Windows PowerShell is that it requires to run a Web server on server when utilizing remote functionality. This takes up additional space on a server. In many cases, custom software development companies may not be willing to designate more resources for this.

What applications are suitable for PowerShell script?

Following applications are used for executing PowerShell script:

Conclusion

PowerShell is a powerful and robust task automation and configuration management framework from Microsoft that consists of a command-line shell along with scripting language built on the .NET framework. It is more powerful than other shell types. It’s ideally Windows component only and Open Source. Custom software development companies should consider project requirements, PowerShell script’s benefits and drawbacks into consideration during planning phase of the project.

 

Top 10 Hybrid mobile application development technology considerations

What is hybrid mobile app development? You have a great potential business idea for Mobile applicati

 

What is hybrid mobile app development?

You have a great potential business idea for Mobile application and wondering what platform to start with? If you choose to develop native mobile app, you would end up developing many applications for different platforms costing you huge money and lot of time. Hybrid mobile app is a buzzword among mobile application development companies in India that is taking the center stage these days.

Technically speaking, Hybrid mobile app is a combination of native and web app. Hybrid app runs on the device and web technologies like HTML5, CSS and JavaScript are used to implement them. It runs inside a native container and leverage the device’s browser engine (but not the browser) to render the HTML and process the JavaScript locally. Hybrid app can be a good choice for your business idea as it helps you develop common app for multiple platforms.

There are many cross-platform mobile app development platforms available in the market like PhoneGap, Xamarin, Telerik AppBuilder and many more. We discuss here top ten technology considerations for hybrid mobile app development for your business idea.

1) PhoneGap

PhoneGap is an Open source technology to develop hybrid mobile applications using web technologies like HTML/CSS and JavaScript. PhoneGap is very popular hybrid mobile application tool among hybrid mobile application development companies in India. PhoneGap uses JavaScript to access device level APIs similar to native app.

Pros:

  • Uses web technologies lie HTML5, CSS3 and JavaScript
  • Easily available source
  • This is write one time and run anywhere – Android, iOS, Windows, Firefox OS, BlackBerry etc.
  • Available in Google Pay Store for Android, integrated payments via App Store for iOS and in-app and more

Cons:

  • Poor performance for graphic-intensive applications
  • Plugins are available however many are outdated or unsupported based on target platform.

 

2) Xamarin

Xamarin, newly Microsoft acquired technology, is used to build native mobile applications with cross platform compatibility. It uses portable C# code. All codes are written using C# that developer can do in Java, Swift or Objective-C unlike other platforms. Xamarin studio is user friend IDE for the app development.

Pros:

  • Development is using C# so no need to learn near programming language
  • Xamarin studio is highly user friendly IDE
  • Code reusability is very high (almost 75%) across major mobile platforms like iOS, Windows, Android etc.
  • Android Emulator for quality testing.

Cons:

  • Many open-source libraries for iOS, Android etc. have compatibility issues with Xamarin

 

 3) Onsen UI

This is an open source framework and technology to build hybrid mobile apps using native looking components. AngularJS can also be used to build the apps. It has good documentation that includes good examples and layouts for common features.

 

Pros:

  • This works with predefined components
  • Faster development as it is based on predefined components
  • Good documentation with common features and examples

 Cons:

  • PhoneGap/Cordova builder not included, but supported
  • Currently does not support material Design
  • Onsen UI currently offers only an iOS theme

4) Appcelerator

Appcelerator is the technology used to build native apps using JavaScript technology. This is an enterprise based development platform allowing writing JavaScript with MVC framework.

 

Pros:

  • Pre-built database connection for MS Azure, MongoDB, MS SQL and other database engines.
  • Consists of schema-less data store, ArrowDB, to deploy data models with zero setup efforts.
  • Allows rapid mobile app development
  • Quick prototype development with less time and effort for evaluation

Cons:

  • Pre-built database connection for MS Azure, MongoDB, MS SQL and other database engines.
  • Consists of schema-less data store, ArrowDB, to deploy data models with zero setup efforts.
  • Allows rapid mobile app development
  • Quick prototype development with less time and effort for evaluation
  • Little buggy and laggy, though newere versions are more stable.
  • Poor support from developers community

 

5) Intel XDK

Intel XDK is another popular platform to develop native apps for mobile phones and tablets using HTML, CSS and JavaScript. Cordova platform is used to compile apps making them cross-platform compatible.

 

Pros:

  • Developer can compile same solution for different platform.
  • HTML, CSS and JavaScript are used as technology for app development.

Cons:

  • “Native code” component of a plugin is not supported by simulator
  • Device simulator’s emulation of the App Security API does not provide any real security

 

6) Nativescript

Nativescript is an open-source platform for making native cross-platform mobile applications. Nativescript gives mobile application development companies, every native APIs in JavaScript. It offers reusability of existing plugins from npm directly.

 

Pros:

  • Embedded support for TypeScript and js 2.
  • Direct access to native APIs in place of development libraries access and then utilize native components.

Cons:

  • Multi-threading is an issue in Nativescript.
  • Lack of in-depth examples and documentation on features and its usage.

7) Telerik AppBuilder

The Telerik Platform is popular cross-platform mobile application development tool and it also supports native apps developing for iOS, Android and Windows phones. Appbuilder  IDE supports Production of cross-platform and native applications both. AppBuilder also equipped with the Apache Cordova API.

Pros:

  • Easy to develop cross-platform application.
  • It is compatible with .NET, JavaScript/HTML5, Java JSP and PHP technologies.
  • Easy to learn

Cons:

  • It's not a free tool.
  • One can convert all steps to code, but can't revert them back.

8) Monocross

Monocross is an open source cross-platform for mobile application development. It is used to create applications for Android phones and tablets, Windows Phone and iPads and iPhones. It uses .NET C# and the Mono framework for developing cross-platform supported applications.

Pros:

  • Need only C# and .NET compatibility for the application development and maintenance activities.
  • Provides access to full power of the native device APIs still using C#

Cons:

  • Documentation and resource available for Monocross framework is harder for application development.

9) React Native

React native supports creation of proper native apps in place of hybrid ones that run in Webview. JavaScript and React are used as technology for mobile app development.  It also supports Android.

 

Pros:

  • Native-like performance
  • Great community support

Cons:

  • The development tools only work on OS X at the moment
  • Steep learning curve

10) Ionic

Ionic is a popular framework of mobile app development companies for Hybrid mobile apps.  One can use CSS to create native looking designs and best to pair with AngularJS. It also provides command-line interface that includes integrated emulators and a Cordova based app packager.

Pros:

  • Command-line interface to use most of useful features.
  • Works with inbuilt component and Great Community

Cons:

  • AngularJS expertise is required for complex features

Conclusion:

There is no best framework or platform to develop hybrid or native apps. Each has its own advantages and challenges. Platform choice depends heavily on project requirements in hand. Mobile application development companies should consider requirements in hand with features available in platform to decide the platform for the app. One should also consider performance and security parameters to choose the best suitable option for your requirements.

MakeMyTrip and Goibibo Merger

India is seen as next big internet market owing to digital revolution, economic growth and potential

Software outsourcing companies india


India is seen as next big internet market owing to digital revolution, economic growth and potential market strength. MakeMyTrip and Goibibo join hands to become a market leader in travel industry of Indian online travel segment.  (IndiaTimes, 2016) views this as a potential move to grab Indian market and tighten its grip over the market that MakeMyTrip already enjoys 35% stake.

About MakeMyTrip

MakeMyTrip is a travel company operating through online booking portal – http://www.makemytrip.com. It was founded in 2000 by Deep Kalra. It is an Indian company with headquarter in Gurgaon, Haryana.

About Ibibo Group

Ibibo group is an online travel company founded by Ashish Kashyap in 2007. (Livemint, 2016) states that the company is a subsidiary of Nasper. Nasper has 91% stake and TenCent has 9% stake in the Ibibo Group. Company operates through following brands.

  • Goibibo - Hotels and Air ticketing portal
  • redBus – Bus booking website portal
  • Ryde
  • Rightstay

About Merger

  • Ibibo (currently owned by Nasper) will be merged into MakeMyTrip
  • Merger is through stock transaction
  • (Medianama, 2016), Nasper-TenCent combine will become largest shareholder in new entity with 40% stake
  • (Medianama, 2016), Chinese OTA Ctrip, will have around 10% stake in new entity
  • (IndiaTimes, 2016) estimates the merger through sources at about $1.8-$2.0 billion
  • Morgan Stanley – financial advisor of MakeMyTrip
  • Goldman Sachs – financial advisor of Ibibo Group
  • All brands of Ibibo group like Goibibo, redBus, Ryde and Rightstay would come under MakeMyTrip (new entity)

Statistics

 

Business Share in Travel Industrysoftware outsourcing companies India

source : Medianame

                                     software outsourcing companies india

 

New organization structure

                                                                               Figure 2 New Organization Structure, Source: Livemint

 

  • Deep Kalra, Founder of MakeMyTrip – Group CEO and Executive Chairman, MakeMyTrip
  • Rajesh Magow, Co-founder of MakeMyTrip – CEO India, MakeMyTrip
  • Ashish Kashyap, Founder and CEO of ibibo Group – Co-founder and Presidnet of the organization (MakeMyTrip Executive team)

Bibliography

IndiaTimes. (2016, 10 19). EconomicTimes. Retrieved from EconomicTimes: http://economictimes.indiatimes.com/small-biz/startups/online-travel-portals-makemytrip-and-ibibo-announce-merger/articleshow/54921415.cms

Livemint. (2016, 10 19). Livemint. Retrieved from Livemint: http://www.livemint.com/Companies/W9atx25k79RpQcdbRxWuTP/MakeMyTrip-to-buy-rival-ibibo-Group.html

Medianama. (2016, 10 19). Medianama. Retrieved from Medianama: http://www.medianama.com/2016/10/223-makemytrip-ibibo/

Managing culture issues in .NET programming, a challenge for programmer – Handling Number parsing

It is a challenging job for asp.net software companies and developers to deal with culture depe

asp.net software companies india


It is a challenging job for asp.net software companies and developers to deal with culture dependent number parsing say, string to decimal or string to double etc. If these cases are not handled properly, it breaks the system anytime. ASP.NET software companies should aim at writing culture-safe and managed code that safe guards your applications from culture related issues.

What is number parsing?

All numeric types have two static parsing methods, TryParse and Parse, those are used to convert the string representation of a number into a numeric type.

Difference between TryParse and Parse is that TryParse method returns false whereas, the Parse method throws and exception if operation fails.

string numberStringRep = "35.88";

double number = double.Parse(numberStringRep);

Formatting conventions of a particular culture is always used by the Parse operation. If culture is not specified by passing a CultureInfo or NumberFromatInfo object, the culture associated with the current thread is used.

NumberFormat.NumberDecimalSeparator property is used to find the decimal separator string used by a culture.

// Returns: "."

new CultureInfo("en").NumberFormat.NumberDecimalSeparator;

// Returns: ","

new CultureInfo("es").NumberFormat.NumberDecimalSeparator;

// Returns: "."

CultureInfo.InvariantCulture.NumberFormat.NumberDecimalSeparator;

// Returns: "<depends on the current culture>"

CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator;

Why is it difficult to manage?

If number parsing from string to double is used in any application with multiple culture, developers in asp.net software companies should be cautious about the usage and probable issues associated.

An example, Cultures like German, French, Canadian, Spanish, etc., uses ‘,’ comma as a decimal separator whereas en-us uses ‘.’ dot as a decimal separator.

These are the cases when it becomes difficult to parse numbers from one culture to other.

Solution is to specify one rule for application like work with ‘.’ decimal separator or developer choice. One should also know the culture of the string being parsed from or decimal separator of that culture. Using this information, developer can easily manage them.

Common mistakes by programmers

Issue arises in number parsing when Culture gets change run time.

Let us understand this by an example. There is a potential bug in follwoing code, can you spot it?

Thread.CurrentThread.CurrentCulture = new CultureInfo("es");

string numberStringRep = "35.888";

double number = double.Parse(numberStringRep);

One must have realized that the parse call throws a FormatException. This is due to the current culture is Spanish and it uses “,” as the decimal separator whereas the string being parsed uses the “.” Dot as a decimal separator.

There are two ways to solve this problem:

  • Set the current culture to one with the correct number format for all Parse() calls.

    This option is tempting and developer should be very careful with this method as the current culture is used in other areas as well than just the parse methods. It can break other code.

    An example of this is the ToString() method, which also uses the current culture to determine its output:

    Thread.CurrentThread.CurrentCulture = new CultureInfo("en");

    35.88.ToString(); // Returns "35.88"

    Thread.CurrentThread.CurrentCulture = new CultureInfo("es");

    35.88.ToString(); // Returns "35,88"

  • Use overload that can be used to specify the culture to use for each Parse() call individually

    This option is safer unless developer is pretty sure to change the culture for all methods.

    string numberStringRep = "35,88";

    double number = double.Parse(numberStringRep, new CultureInfo("es"));

     Use following code snippet to identify the culture of number.

    double ResultVal;

    if (double.TryParse("75,89855",NumberStyles.Float, new CultureInfo("de-de"), out ResultVal))

    {

    double number = double.Parse(ResultVal.ToString(),CultureInfo.InvariantCulture);

    } //Output: 75.89855

     If culture is not known to the developer and knows a specific decimal separator and still wants to convert decimal number, use following code snippet.

    // get a temporary culture (clone) to modify

    var resci = CultureInfo.InvariantCulture.Clone() as CultureInfo;

    resci.NumberFormat.NumberDecimalSeparator = ",";

    decimal number = decimal.Parse("1,2", resci);

    MessageBox.Show(number.ToString()); //Output: 1.2

    When developer passes a CultureInfo instance to parse method, an overload method is called that takes an IFormatprovider instance. The culture’s NumberFormat property is of type NumberFromatInfo which also implements IFormatProvider.

    This means that instead of supplying a culture, developer could also pass its NumberFormat property to the parse methods:

    string numberStringRep = "35.88";

    double number = double.Parse(numberStringRep, new CultureInfo("en").NumberFormat);