How to Move Images with Arrow Keys in a Windows WPF App

In Image Processing applications it is sometimes necessary to move a selected image (or part of image) to place at a specific position. For example, it is applicable to Form Processing, where predefined templates of different forms exist. When you select an image and place a predefined template on top of the image, it may happen that the position of the image needs to be adjusted to align it with the template. In such cases, you can use keyboard arrow keys to move the image horizontally and/or vertically.

We are exploring the same in a Windows app built with .NET, C#, and WPF. We have found several ways of moving the image when the image control is placed within a Canvas. Canvas is used as a container in WPF, where you can place several controls, but this case is a bit different. Here the image control is not placed within a Canvas – a different container has been used to place the image.

To achieve the image movement functionality, the PreviewKeyDown event can be used for Image control. This event occurs when a key is pressed, while the focus is on the image control. So, the first part is over, i.e., connect the arrow keys with the image control. The next question is how to move the image? For this set the image control’s margin whenever a specific keyboard key is pressed. Here is some code to alter the margin for the image control.

private void OnPreviewKeyDown(object sender, KeyEventArgs e)

{

switch(e.Key)

{

case Key.Left:

leftMargin -= 5;

e.Handled = true;

break;

case Key.Right:

leftMargin += 5;

e.Handled = true;

break;

case Key.Up:

topMargin -= 5;

e.Handled = true;

break;

case Key.Down:

topMargin += 5;

e.Handled = true;

break;

default:

MessageBox.Show(“Invalid key pressed”);

break;

}

this.image1.Margin = new Thickness(leftMargin,

topMargin,

rightMargin,

bottomMargin

);

}

In the above code, say the image control currently has the focus and you want to move the image to the left. For that just press the left arrow key. Then the PreviewKeyDown event is called and it comes to the Key.Left case, which decreases the left margin by 5. In effect, you will see the image move to the left. The movements toward right, top, and bottom also work the same way.

Please remember the following points:

  1. The image control must have focus.
  2. Set the KeyPressEventArgs.Handled property to TRUE – it will cancel the KeyPress event; otherwise, the image control will loose focus and the PreviewKeyDown event will not called on arrow key press.

Enjoy playing with images in a WPF application on Windows.

Why Backup Data and How to Backup on Windows – A Simple Solution

WHY BACKUP DATA?

The most precious thing on your computer is the data. No, not the latest and greatest computer you have purchased recently. The most valuable asset on your computer is all the data stored on it, especially what you have created, collected, processed, organized for your work, learning, or even entertainment. Now here are some cold hard truth about data and the associated risks.

1. More than 95% computer users have experienced data loss in some point of their life.

2. Data loss cost US businesses $11.8 billion in 1998. 6% of all PCs will suffer an episode of data loss in any given year.
Reference: http://gbr.pepperdine.edu/2010/08/the-cost-of-lost-data/

3. An article from Boston Computing, provides the following statistics:

      • 30% of all businesses that have a major fire go out of business within a year. 70% fail within five years.
      • 93% of companies that lost their data center for 10 days or more due to a disaster filed for bankruptcy within one year of the disaster.
      • 31% of PC users have lost all of their files due to events beyond their control.
      • Every week 140,000 hard drives crash in the United States.
      • A 2013 poll found that 30% of computer users had NEVER backed up their data.
      • According to a 2013 report, 55% of disaster-related downtime stems from hardware failure, 22% from human error, and 18% from software failure.
      • More than half (53%) of the SMB organizations surveyed revealed they do not conduct daily backups.
      • According to a survey of SMB organizations, 32% responded saying backup is not an efficient use of their time.
      • Simple drive recovery can cost between US$5,000-10,000 and still success is not guaranteed.

4. Refer to a USA Today 2006 News article.

5. Refer to an Information Week 2011 News article.

6. For many businesses, data is their lifeline. Data loss can make them to go out of business.

7. Accidental delete, virus attack, hacking, disk failure are some of the common reasons for data loss.

8. Fire, earthquake, storm, flood are some of the natural calamities which result into data loss.

As it shows above, data loss has been known and documented to be a major problem for long time — for about 20 years (definitely a lot more than that). The volume of problems has increased with growing ubiquity of computers among households and businesses. The widespread use of mobile devices has made the risk potential even higher. Add to that the recent rise in malware attacks and cyber-crimes, e.g., WannaCry, Petya, Bad Rabbit etc. It seems there is no end in sight for security breaches, information leaks, and data loss / damage. All this is scary. So, how to address such risks to your precious data? The best option is to practice “Safe Computing” (outlined below), and also take regular backups, which is a simple defense against data loss due any reason.

Here are a few basic points related to backup:
a) In case of a data loss, recovery of an earlier version (that is close to the latest) is the main reason for backup.
b) “Sync” vs. “Backup”: Sync is convenient and popular, but Backup is more robust, dependable, and legally compliant.
c) Network Attached Storage (NAS), especially with RAID, is a common and good backup medium.
d) Regular backup is a legal requirement for businesses in some countries.
e) Backup, preferably automated / scheduled, should be part of every business’s Disaster Recovery plan.

Backup is in general of two types — full and incremental.

  • Full backup saves all the files and folders selected for the backup. It generates a bigger archive and takes longer, but has the full data snapshot.
  • Incremental backup saves only the files that have changed or are new since the last backup (full or incremental). It’s smaller in size and less time to complete, but it depends on the last full backup and any incremental backups in between.

It is a good practice to take a full backup after a significant number of incremental backups. E.g., if incremental backup is taken every day, a full backup can be taken once every month.

Earlier restoration involved restoring the full backup, followed by differential backup, and then all the incremental backups – a tedious and time-consuming process indeed! Now all that can be achieved in a single step, such as “Structure Restore”.

Here are some trends / observations for the data management and backup area:

  • With the prevalence of offsite / cloud-based email services, on-site email servers are reducing and email backup is becoming less important.
  • Permission issues and PC unavailability are the biggest reasons for backup failure.
  • Automatic data backup is much better than manual backups as the latter takes extra time and can be forgotten or skipped under pressure.
  • A well-defined data retention policy is as important as the backup policy and arrangement.
  • In general a business should have a different backup and data retention policy for each of its departments.

For the sake of your business, it’s a must to follow the Safe Computing Principles

  1. Use legal and up-to-date Operating System and other software
  2. Use a reputed and current anti-virus / anti-malware software
  3. Install the latest released stable updates for all your software, especially the Operating System
  4. Use automatic / scheduled regular backups of all important data
  5. Be paranoid… OK, just be super careful — do not trust random email attachments, links in emails, unknown websites / tiny URLs etc.

Please refer to Ransomware (in Wikipedia), in particular the “Mitigation” section.

Our two other posts related to this may also be informative and helpful:

    1. How to Handle Ransomware Threat: Be Cautious and Backup Data
    2. How to Create a Folder Accessible to only a Specific User (Data Backup User)

HOW TO BACKUP DATA ON WINDOWS?

SARANGSoft offers two software products for data backup on Windows:

    1. filexpertez for backup of individual Windows PCs and servers
    2. WinBackup Business for backup of all Windows PCs and servers in a Windows network (domain or workgroup)

SARANGSoft filexpertez is one of the first applications to
a) provide “Structure (one-click) Restore”, reducing the restore effort by up to 99%.
b) allow versioning of the backed up files.
c) enable backup to cloud as well as various local storage.
With the use of “Structure Restore”, the need for differential backup is almost eliminated.

SARANGSoft WinBackup Business performs decentralized backup with centralized control — providing best of both worlds.
a) The backup effort gets distributed across all the computers and is not imposed on a single computer. This results in more flexibility as well as faster backups.
b) The network remains clog-free as the files are not examined or transferred over the network.
c) Enables configuring multiple backups – use different backup specification for different computers or even for the same computer.
d) (Unlike many other backup products) Doesn’t force the users to put their files (to backup) in a single folder. Multiple folders on a user’s computer can be specified to backup.
e) No need to have a single folder-set apply to all computers. Specify a different folder-set to backup for every computer.
f) It’s a rare backup software that provides both Individual (flexible) and Common (easy to use) Selection of folders to backup — see more on that below.
g) Specify a different backup destination for each backup specification. It helps categorize the destination depending on backup contents or the department.
h) Get access to a number of important reports. Click on individual column headers within the reports to sort the data, toggle between ascending and descending order the same way.
i) To backup data locally (not accessible even to the administrator), set the backup destination to local storage media such as External USB Hard Disk / CD / DVD.

Individual Selection vs. Common Selection

Individual Selection
Specify a different folder-set for every computer to backup; not necessarily the same folder-set to backup for every computer.
Common Selection
(If Individual Selection is tedious) Specify a common folder-set for all the computers to backup.

NOTE: If there are permission issues in the network and you are unable to perform Individual Selection, you can still go for Common Selection of the folders to backup.
Individual Selection offers you flexibility, whereas Common Selection offers you ease of use. It’s you who decides what you want.

It is important to remember a few points about Backup Scheduling:

  • Use the same User Id to launch the “Admin Console” and configure backups as what was specified while installing WinBackup Business Server.
  • Scheduling may fail due to permission issues or unavailability of the remote agent computer. Use the ‘Failed Schedules’ report to retry scheduling at a more suitable time.
  • To re-schedule an existing backup, load it in ‘Manage Backup’, go to the schedule options page, modify the schedule, and click ‘Start’ on the Progress page.

CloudScape‘, bundled with WinBackup Business, helps upload backup archives to public cloud storage ‘Amazon AWS-S3’ and ‘Microsoft Azure’ for added resiliency and protection.
NOTE: The AWS and Azure accounts must be your own. SARANGSoft does NOT provide such accounts along with its backup products.

If you feel lost at any point, or do not find what you need, or for any other problem, use the context sensitive help on any topic by just pressing the ‘F1’ key on the keyboard or the ‘Help’ button on the toolbar.

Network Backup
There are two technology options for corporate level backup – push and pull.
a) Push mode backup: Backup agent runs on individual PCs to collect the files, packages, optionally compresses and encrypts, before sending to backup destination. It is more

  • Secure: data can be encrypted before sending over the network
  • Bandwidth Efficient: Data can be compressed before sending over the network
  • Faster: Backup effort is distributed across the workstations, thus achieving better overall throughput
  • Better Load Balanced: Backup effort is not put on a single machine and is distributed across multiple machines

b) Pull mode backup: Backup software pulls the data from individual PCs and then backs them up. All work is done by a single “Backup PC”.

WinBackup Business: Advanced Backup Options

  • Backup open files too (except on Windows XP, Windows Server 2003/2003-R2); no need to close files before backup.
  • Use Backup-on-the-Go for users who remain disconnected from office network for major part of the day (e.g., sales, field support team members etc).
  • Most backup applications fail to backup if the target computer is not in network at the scheduled backup time, but WinBackup Business backs up at the scheduled time to a local disk and automatically transfers the backup archives to backup destination when the computer is back in the network.
  • Configure for the powerful AES encryption for every backup, so that only the intended user can open the backup files.
  • Get email notification when the backup process completes on a computer.

WinBackup Business: Advanced Restore Options

  • Restore operation on a large archive can take quite some time. WinBackup Business can notify through email when restore is complete.
  • Restoration is decentralized, thereby enabling respective users to restore according to own requirements without bothering the administrator.
  • Restoration is made easy using Structure Restore. Restore the latest version of all the files in one go.
  • To restore an older version of a file, use the Restore Point functionality.
  • To restore all files created or modified on/before a certain date, use the Advanced Filtering option.

Backup is essential for computing. Some of the backup tools are hard to use, or inflexible, or expensive, or all of those. Now you have options that work well and do not cost much.

How to Create a Folder Accessible to only a Specific User (Data Backup User)

Data backup is like taking an insurance on your data. Just as we cannot predict what will happen with our life and property the next moment, and take cover of a good insurance, the same is true for our data too. Our precious data may be lost due to various reasons – natural disasters (earth-quake, flood, storm, fire), man-made havoc (theft, arson, violence), equipment failure, hacker attack etc. Backup acts as a good insurance against all such incidents. So, let’s make sure to regularly backup data.

It’s most common take backups onto another storage device, such as an external USB drive or a network share. It’s definitely a good step, but such storage also can be targeted by malware and virus. For example, if you map a network share to a drive (such as map \\myserver\backupshare to the drive x:) or attach an external USB drive to your computer, malware can identify such a drive and do the same damage as it does to regular drives in a computer. To protect the backup drive from malware attack, take the following steps so that the drive / folder is accessible ONLY to your dedicated backup user account as explained in our other blog post “How to Handle Ransomware Threat: Be Cautious and Backup Data“.

NOTE: Though the following set of steps use the folder name “BackupShared” as an example, DO NOT use such an easy-to-guess account name. Choose something suitable for your case that does NOT include your name, username etc.

a) Right-click on the folder (in this case E:\BackupShared as an example), and from the context-menu click on ‘Properties’ option.

b) Click on ‘Security’ tab to select it. You will see the dialog below.
Create Secure Drive - Step B

c) Click on the ‘Advanced’ button. You will then see the dialog below.
Create Secure Drive - Step C

d) Click on the ‘Disable inheritance’ button, which will show the following dialog.
Create Secure Drive - Step D

e) Select the option ‘Remove all inherited permissions from this object’.

f) Remove all ‘Permission entries’ (if any) from the following dialog.
Create Secure Drive - Step F

g) Now click the ‘Add’ button in the above dialog, and you will see the following dialog.
Create Secure Drive - Step G

h) Click on ‘Select a principal’ and you will get the following dialog.
Create Secure Drive - Step H

i) Specify name of the backup-only user created in step (b) above and click on ‘OK’.
Create Secure Drive - Step I

j) You will next see the following dialog. In the ‘Basic permissions’ section, select ‘Full Control’. The other options within this dialog should be as shown below. Then click ‘OK’.
Create Secure Drive - Step J

k) Now click ‘Apply’ in the following dialog.
Create Secure Drive - Step K

l) Change the ‘Owner’ by clicking on the ‘Change’ link in the above dialog. This should be the same as the backup user.

m) Click ‘OK’ to close the dialog. You will come back to the following dialog.
Create Secure Drive - Step M

n) Open the ‘Sharing’ tab, and click ‘Share…’.
Create Secure Drive - Step N

o) Then you will see the following dialog.
Create Secure Drive - Step O

p) If the “backup username” does not appear in the box, click on the dropdown list and select ‘Find people…’. Specify the “backup username” in that dialog and click ‘OK’ to come back to the File Sharing dialog. Then click ‘Add’. Choose ‘Owner’ or ‘Read/Write’ as the ‘Permission Level’ for the user.

q) Click the ‘Share’ button to share the folder. Click ‘Done’ on the following dialog.
Create Secure Drive - Step Q

r) Click ‘Close’ in the following dialog to complete the security settings.
Create Secure Drive - Step R

Yes, you are really done! It took quite a number of steps to go through, but now you have secured a folder / drive from unapproved access by malware and hack attacks. This is a safe destination for your backup data. Go ahead, start the backup process now.

How to Handle Ransomware Threat: Be Cautious and Backup Data

Why spend money on a backup program or bother setting it up? I know my data is safe.

This commonly-held belief was shattered by the recent WannaCrypt / WannaCry ransomware. The attack started on Friday, May 12, 2017, and has been described as unprecedented in scale, infecting more than 300,000 computers in over 150 countries. Some of the people had to pay up hoping to get back their data, while others just lost it. It is estimated that more than US$80,000 has been paid in ransom so far, but the total loss due to this attack might be as high as US$4 billion (according to CBS News).

“Ransomware” is a type of malicious software that blocks access to a user’s data generally by encrypting the files and displays a message demanding ransom payment. It won’t allow the user to get back the files until a “ransom” is paid (generally through untraceable ways of Bitcoin). Ransomware may also encrypt the computer’s Master File Table (MFT) or the entire Hard Drive. The WannaCry ransomware enters a network (an organization’s LAN) via an email attachment or from a compromised website. Once in the network, it uses a vulnerability in the Microsoft’s implementation of the Server Message Block (SMB) protocol to spread across the entire network. Back in March 2017 (i.e., nearly 2 months before the attack happened) Microsoft provided a fix for this security vulnerability for Windows Vista and higher. Recently Microsoft has released a patch for the outdated and out-of-support Windows XP Operating System too.
This ransomware encrypts the files in a computer and demands a payment of around US$300 in Bitcoin currency within 3 days or US$600 within 7 days. After 7 days, the files will become completely unrecoverable.

Wannacry Ransomware Screenshot
[By Source, Fair use, https://en.wikipedia.org/w/index.php?curid=54032765]

Ransomware attacks have happened before, and will happen again, and again. On May 19 another new ransomware, Xdata, has started spreading mainly in Ukraine.

So, how can we prepare to protect our valuable data from such attacks? There are two ways of handling this threat.

1. Prevent or minimize the chance of a malware attack.
2. Minimize the effect of being infected / hit by a malware.

The above two-prong proactive defense is important, because one of the possible ways of getting rid of the malware “industry” is to frustrate the players, who are not some intelligent-but-bored teenagers having fun, rather organized criminals are into this to make money. If they can’t break into enough computers, either to cause disruption (and thereby derive some perverse pleasure) or make money (which is the main goal), their interest will eventually fade. Let’s do our part to weaken, and over time hopefully get rid of, this menace.

1. Prevent or Minimize the Chance of a Malware Attack

There are some basic precautions all of us need to take to minimize (and hopefully eliminate) the threat of various malware.

a) Always use genuine software – Operating System (such as Windows) and applications (such as Office, Photoshop, browsers etc.) – from reputed companies and their suppliers. If you get pirated software (especially OS) from someone or download random software from the Internet, you are immediately vulnerable to different security threats.

b) Always keep your OS updated with the latest updates and service packs. Do not use an outdated OS.

c) Use a good up-to-date anti-virus to protect your system. Using an ineffective anti-virus is equivalent of using a door lock that anyone can open without the required key. Microsoft provides free download of its own anti-virus and anti-malware (Security Essentials and Defender). Also, regularly update the virus definitions.

d) Avoid using the computer by logging into an account with administrative privileges. It’s safer to do day-to-day work from a limited privilege user account.

e) Avoid visiting unknown or unreliable websites, and do not accept to run any script or application, if prompted by the websites. Also, use recent (preferably latest) version of one of the top browsers – Chrome, Firefox, Internet Explorer (11 only), Edge, Safari, Opera.

f) Avoid installing browser plug-ins or extensions from unknown providers. Keep vulnerable plug-ins or extensions disabled.

g) Do not open an email attachment from an unverified source, sometimes even from supposedly known sources such as friends or colleagues. Never run any attachment directly from the email client. Always download the attachment and run a virus scan on it before opening the attachment.

h) Do not insert any random media device (USB drive – flash or hard disc, SD-Card etc.) in your PC. Such media devices might been used on a compromised / infected computer. If need be, format it, or scan it using an up-to-date anti-virus before plugging it into your PC.

2. Minimize the Effect of Being Infected / Hit by Malware

In spite of all the precautions, it IS quite possible to still get infected / hit by some malware. For such scenarios, safeguard what the attacker is aiming for – your data.

NOTE: In such a case, you will need to re-setup the computer (such as reformat the hard drives, install OS and applications, reconfigure as per your needs), and then restore the data from existing backups.

First Rule of Safety – Take regular backups. Use a good backup tool to regularly backup your files and folders, preferably scheduled to run automatically. There are lots of backup tools at different price points for every OS. An application like SARANGSoft filexpertez for individual PC backup costs just US$19.95 (one-time license fee). More advanced network backup tool like SARANGSoft WinBackup Business starts at less than US$100 for 10 PCs. It’s a very small price compared to losing all your valuable data to ransomware as well as virus or hacker attack, natural disasters, equipment (such as hard disc) failure, or accidental deletion.

Take the following steps for a secure backup arrangement.

a) Dedicate an administrative user account for backup only: Create a user account for backup only and assign administrative privileges to it. Avoid logging into this account other than backup purposes. Choose a strong password for this account, e.g., use 10 or more characters, with a mix of upper and lower case, numbers, and special characters, and avoid your own name date of birth etc. Do not store / save the password anywhere in the PC.

NOTE: Do NOT use names like “backupuser” or “mybackup” or “backupadmin” etc. for the backup user account, which can be guessed by hackers. Pick something different and uncommon, but definitely NOT using your name, username etc.

b) Create a backup destination accessible only to the dedicated backup user: Create a backup destination folder, either in an attached external USB drive or in the drive of another computer within your network. Assign full access of this folder to the backup user account created in step 2(a) above. Do NOT provide access to any other user for this folder, not even to ‘SYSTEM’ account. If this folder is in a different computer of your network, share it only to the dedicated backup user account of step 2(a). Follow the detailed set of steps shown in our other blog post “Steps to Create Backup Destination Accessible only to a Specific User”.

c) Use cloud storage as backup destination: You can also choose to store the backup archives in a cloud storage such as Amazon AWS S3, Microsoft Azure or one of your choice. For example, SARANGSoft filexpertez enables direct backup to AWS-S3 and Azure as part of the backup definition process. Using local storage for backup is fast and convenient. Backup to cloud involves a little more work and recurring cost, but it also provides additional safety.

d) Schedule Automatic Backup: Schedule a backup to run periodically (e.g., every night) on the computer. Identify all your important documents and folders to be backed up and include those in your backup. Ideally, a full backup should be scheduled to run once a month or quarter and an incremental backup should be done every day. You can choose depending on your own / organization’s needs.

e) Run the backup manually once and also schedule to run it using the dedicated backup user account created in step 2(a) above. Avoid logging into this account for anything other than backup purposes. Chose the “Backup Destination” folder created in step 2(b) above to store the backup data (archives).

Now even if you lose your the data in your computer for any reason, including virus or ransomware attack, you are protected because you still have a backup copy of the required data saved in another location — in local or cloud storage.

SARANGSoft: Over the past 15 Years

The last 15 years went by pretty quickly! In early 2000, we were in discussion with a few friends about the software industry, its strengths vs. weaknesses, then most prevalent “body shopping” model, the future potential and challenges.  We knew right then “body shopping” won’t work; needed a model that would be both cost-effective and logistically viable. On the other hand, we wanted to start something from the city we are so intimate with – Kolkata.  It supplied, and still does, a lot of technical talent across the world, but wasn’t a recognized spot on the IT map, not even within India.  We felt it was possible to tap the raw talent from the area and build a team that can deliver quality software to two markets – USA (where some of us are located) and India (where the core team is) –   to start with.  To be very honest, the whole decision was based on more emotion and gut feelings than serious business analysis.  Still, SARANGSoft Corporation and SARANGSoft India Pvt Ltd or SIPL (then called SARANG Infotech and Software Solutions) were started in 2000.  The first set of people came on board and we started with a modest setup.

In early 2001, we got a big break to work with a major medical insurance provider, who was migrating a massive legacy system (IBM mainframe-based) to Unix & RDBMS environment. Our team started working on-site, offsite, and offshore – at its peak involving total 10 engineers.  It went on for about two years, during which we moved to better offices and added more to the team.  In 2003, we took a different turn – after the legacy system migration project ended, we moved away from that area and focused more on Windows and Linux.  Around the same time, we started working as a direct vendor of Microsoft.  That brought a number of interesting projects in the Windows Operating System and multimedia in particular.  The team expanded even more, new offices were setup, and also came a lot of excitement and learning in the process.  There were several ups and downs too.  At times it felt like end of the road, while at other times we could barely keep up with customers’ requirements.  We worked with several small and mid-size companies too, and each was different in significant ways.

The downturn of 2008-2009 had a serious effect on our business as it did for most organizations.  All the customers clammed up in uncertainty, new projects stopped, existing projects stalled / shrunk, some customers couldn’t / didn’t pay as agreed upon.  We went through a couple of horrible years.  Some of our long-time clients continued to work with us, and some new clients did start during this time.  We are happy that most of those relationships are stronger today.  As the market sentiment improved over the last couple of years, we have expanded our business and feel much better now.

During the downtime, we started focusing more on our own software products, and released a number of those starting in 2009.  We offer Data Backup – for Windows PC (filexpertez) to entire Windows network (WinBackup Business), Document Digitization and Management (digipaper), IT Configuration Management (SysExpertez), Cloud Data Browsing & Transfer (CloudScape), Developer Tools (Logastic and Testology), and more.  We didn’t actively market those; actually we are not good in marketing ourselves. Still, some people have noticed the products, tried out a few those, liked what they saw, and purchased.  Based on customer feedback, we have been making improvements to our products, and newer versions are being released frequently.

Over the past 7-8 years, we have concentrated on some specific areas.  Windows platform remains our core strength as before.  We can do almost anything on Windows – at OS level or with apps, components, tools, system services.  Our other area of strength is the web platform – .NET and Open Source.  We design and develop websites, web apps, web services, and anything in between.  For the past 4 years we have also been working with Cloud technologies, especially AWS and Azure.  We are increasingly moving apps and services to appropriate cloud platforms.  We are also working on mobile apps, but not the typical native apps for each of the two dominant platforms.  We prefer to build a common cloud backend for the app core and a lightweight frontend for each mobile platform.

Today we are at an important point in our journey.  After a long stormy night, we are at the break of a new dawn.  Our team of about thirty people is motivated and dedicated.  Our product and service offerings are rich.  We are strong on skills, experience, and innovation.  And we are as committed as we have always been to deliver the best to our customers and partners.

visit: www.theappsolutions.com and see more