Product Engineering


Integration is key. Apple and Google have delivered on this focus i.e. tight integration of their products, platforms and services. On Apple iOS devices the built-in iTunes and App Store own the music and software franchises. On Android devices, Gmail and Google search are tightly integrated. Microsoft meanwhile has not exactly kept integration in mind. An explicit download of Windows Live Essentials is required to get Microsoft IM client, blogging client and photo editor.

In the software product development environment, product integration has become very important. The steps listed in the CMMi process framework provides a clear sequence of the process involved.

  • Prepare for product integration
    • Establish and maintain integration sequence
    • Establish the integration environment
    • Establish product integration procedures and criteria
  • Ensure interface compatibility
    • Review interface description for completeness
    • Manage interfaces
  • Assemble product components and deliver the product
    • Confirm readiness of product components for integration
    • Assemble product components
    • Evaluate assembled product components
    • Package and deliver the product or product components

CI has worked on several projects involving integration of ERP’s with add-on products and CRM’s. While all projects may not have involved all the steps the basic framework for the project usually tends to be the same.

iOS SDK and Android SDK, anybody involved in mobile development cannot ignore the SDK’s. Even though both of them follow the MVC model, which is where the similarities end. Fragmentation is a key difference between Android and iOS. The interfaces are constructed differently.

iOS

iOS is currently offered for two device resolutions: 1024*786 and 320*480. This allows the developer to develop graphical elements exactly and the use of tools for the purpose is useful. Creating views is easier in iOS compared to Android. iOS lets the developer work on exact and complex animations. Graphic libraries have matured over the past several years which has eased the developer’s effort. A push notification infrastructure exists which can be used without worrying about performance costs. Apple does not approve arbitrary code running in the background. If a separate thread is opened and made to run then it is a risk of battery life and slow performance. When launching an application in iOS, the entire application will launch and then redirect to the controller.

Android

Android interface creation is like working with HTML. The developer outlines the structure and measures individual element sizes relative to dynamic display sizes. While tools are available for graphical construction, they can be used effectively only when the basic interface is understood clearly. Views can be created via XML. Complex animations can be created but become difficult depending upon the complexity. While working with older Android devices (less than 2.2) there are no push notifications. Arbitrary code can be made to run in the background. When launching an application, the developer will not exactly know the logical start/end of it. The developer can only detect when the controllers are starting and closing.

At the end of the day as developers we have to target both systems owing to the growing popularity. References have been taken from quora.com.

Microsoft WebMatrix consists of a basic IDE bundled with SQL Server compact database and lightweight web server (IIS). Development is in either PHP or C# or VB. The native view engine uses Razor syntax optimized for HTML development. Although the full ASP.NET stack is available, developers can choose web pages which offer simplified web development. WebMatrix is used to build websites. It streamlines website development and makes it easy to start websites from popular open source applications.

So how does WebMatrix fit into the development process parallel to Visual Studio? As a developer there are times when you want to check a particular code file independent of a project or solution or make some quick edits to files in a directory without creating/managing a project file. WebMatrix. Developers can work with StoredProcedures dynamically without generating a designed bit of code.

Razor is a light weight code footstep in HTML. Helpers help add common functionality to websites. Creating a .cshtml file in app_code creates new helper files. Layouts give developers the ability to create and manage larger sites look and feel without duplicated effort. Sections are reserved areas in a layout that can be set by the pages that contain them.

Microsoft Visual Studio LightSwitch Beta2 was released in March. LightSwitch is a new addition to the Visual Studio family. LightSwitch helps you solve specific business needs by enabling you to quickly create professional-quality business applications, regardless of your development skills. The technology is designed to make building line of business applications easier through pre-built templates and custom business data types with the ability to deploy to the desktop, the web and the cloud.

LightSwitch can integrate data from multiple sources and is a .NET framework based platform. It is powerful for building data centric business applications. It uses Visual Studio project structure. You can use pre-configure screen templates that give the application a familiar look and feel.

LightSwitch

It provides pre-written code and reusable components to handle routine application tasks, along with step by step procedures. Custom code is written in C# or Visual Basic rather than VBA.

It can participate in source code control via the integrated Visual Studio Team Edition Explorer. It uses SQL Server Express Edition for its local data store at design time. Deployed applications can use SQL Server Express, SQL Server pr SQL Azure. LightSwitch UI is presented in Silverlight 4 and follows the MVVM architecture pattern.

Since it is a new product, custom extensions or add-ons are being written to fill the gaps and add more capabilities. There are six extension points: controls, screen templates, business types, themes, shells and custom data sources. To build extensions, you would need VS LightSwitch Beta 2, VS 2010 SP1 Professional or higher and VS SDK. LightSwitch Extensions cookbook via msdn can be downloaded from here. This post has been written with references from msdn, visual studio magazine and stackoverflow.com.

IDC and Appcelerator have released the findings of their survey concerning developer interest in working on various mobile platforms. Android and iOS are well ahead of others. Developers always wonder which platform they should develop for Android or iOS.

Parameter

Android

iOS

Programming language Java Objective C
Technology Interface builder in Android does not exactly link directly to code and just generates a rough draft. Setting up GUI is lot easier. Links the objects to the code
API’s Android is catching up in API’s. Apple API’s have been in existence longer and have been developed further
Fragmentation Huge selection of devices with many device specific OS modifications. Different screen sizes and resolutions to deal with. Can safely target iPhone hardware platform and achieve compatibility with iTouch and iPad
Distribution mechanism Android marketplace has become much better with Google continuing to tweak the user experience User experience in app store is uniform and simple. Larger audience for iPhone app store.
App store Features highest percentage of free apps with over 57% being free to download Only 28% of the apps are free
Approval Easily manageable Arduous approval process
Monetization Using Google Checkout Using iTunes account

Writing apps is a hits based business based on downloads. So from a distribution standpoint, cross-platform development is key. If the focus is only on building native app, then the decision has to be made based on target market and the comfort level of the developer in programming for iOS or Andorid.

Adapted from answers in Stackoverflow.com and quora.com

According to National Institute of Standards and Technology, cloud computing is a model for enabling convenient, on demand network access to a shared pool of configurable computing resources (eg: networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction.

Cloud computing architecture of a cloud solution is the structure of the system, which comprises on-premise and cloud resources, services, middleware and other software components. The factors to consider by ISV’s looking at cloud computing architectures are:

  • Availability & Reliability – Group the applications based on the need for availability. Depending upon the availability requirements, the service provider needs to be appropriately chosen. Multi site, disaster recovery, mitigation plan play crucial roles. Performance in terms of vertical scaling, horizontal scaling, multi-site, network capacity etc also need to be evaluated
  • Security – Loss of sensitive data, data storage security, addressing data standards compliance are some factors. Where the data will reside, who can access what, how the vendor controls the data etc. play a major role in performing audits and ensuring compliance.
  • Manageability – Accountability for the customer and vendor need to be clearly defined.

 While there exist many sub factors, the factors written here are critical and cannot be ignored while considering a cloud computing architecture.

~ Ramya

Microsoft has been reaching out to iPhone application developers to develop their existing applications to work on Windows Phone 7. Microsoft has released an API mapping tool for iPhone/iOS to Windows Phone 7. With the tool, iPhone developers find out the equivalent classes, methods and notification events for the iOS API calls. A developer can search a given iOS API call and find the equivalent WP7 along with C# sample codes and API documentations for both platforms. The code samples allow developers to quickly migrate short blobs of iOS code to the equivalent C# code.

The following tool shows the functionality mapping between iPhone and Windows Phone 7:

Functionality

iPhone / iOS

Windows Phone 7

Application UI and phone integration Cocoa touch WP7 framework, Silverlight controls
Graphics and animation Media layer XNA for games

Silverlight media and graphics for others

Base services, Networking, XML, storage Core services layer Common base library

iOS API’s can be broadly classified into the following categories:

  • Audio / video
  • Data management
  • Graphics / animation
  • Network / internet
  • Performance
  • Security
  • User interface

API tool currently maps data management, network/internet and user interface categories. The API tool provided by Microsoft can be accessed from here.

~ Ramya

« Previous PageNext Page »