Mobile and compact devices become more and more popular in our society. Each of us faces with them every day. Certainly each of us has mobile phone, hand-held computers or other hi-tech devices.

All of these devices have different mobile platforms. There are such known platforms as Windows MobileM, iPhone, BlackBerry, Symbian OS, Android, Maemo, OpenMoko etc. All of them have different history and advantages and failings.

Such platforms as Windows Mobile, BlackBerry, iPhone are «closed» enough and limited by either their own devices (BlackBerry, iPhone) or development complexity. Among other problems of above mentioned platforms there is limited API. Even Java platform for mobile devices has some failings such as great number of limitations; very different APIs; device dependent code. Symbian and Windows Mobile platforms are better from this point as far as they support wider range of devices and their APIs give more options.

Common problem here is also that there are a lot of platforms. Talking about OpenSource and Cross-Platform solutions we should say that they are still developing at the moment and are not widespread yet.

In this article we’ll pay our attention to the Windows Mobile platform.

Microsoft Company released its first platform for inbuilt devices at the end of the 90th. In 2002 Windows CE.NET platform appeared. And at that time Pocket PC based on Windows CE 3.0 platform and higher were released. Further development of wireless communication technologies managed to combine telephone and personal computer. Thus Pocket PC 2002 Phone Edition appeared which supported the standards of GSM, GPRS, Bluetooth and wireless HS network access. In the same time another device concept was developing that was much similar to the above mentioned but was closer to the telephone then to personal computer. This device was named SmartPhone 2002. Fundamental difference between Smartphone and Pocket PC is that Pocket PC has touch screen while Smartphone has only control buttons. They also had different application scopes and supported different standards and technologies.

Windows Mobile platform more belongs to smartphones, communicators and small personal devices. Windows CE and Windows Embedded platforms are commonly used in different industrial equipment.

Now we have Windows Mobile 5 and Windows Mobile 6 generations and Windows Mobile 7 will be released soon. Modern devices based on Windows Mobile Pocket PC; have 500-600 MHz processors and 64-128 MB RAM that is not little for such devices.

There are a few models of development of applications for Windows Mobile:

Microsoft Co gives developers all necessary tools for development of applications for PDA, Pocket PC; and Smartphone.

Here are some advices about different code type choosing.

Below are the reviews of present development tools for PDAs, Pocket PCs and Smartphones.

eMbedded Visual C++ 4.0

Microsoft eMbedded Visual C++ 4.0 development environment is meant to create applications for devices with Windows CE .NET 4.2 operating system and also (with package of updates SP3) for PDA and Smartphones on the Windows Mobile 2003 Second Edition platform. The development environment eMbedded Visual C++ 4.0 is good for creation of native code for mobile and inbuilt devices with Windows CE .NET 4.2 OS. It allows developer to perform Just-In-Time Debugging for diagnostics of unhandled exceptions, Attach-to the process for the extended debugging of processes, and also interaction with an emulator.

Visual Studio .NET and SDP functions

SDP (Smart Device Programming) functions of the integrated environment of development Visual Studio .NET 2003 (2005, 2008) allow to create applications, that uses possibilities of Microsoft .NET Compact Framework platform. Thus a developer can create the distributed mobile data-processing systems, workings both in scenarios with connection and without permanent connection. Vast class library of .NET Compact Framework platform makes application development much quicker than with traditional development tools.

Visual Studio .NET lets create applications for the Pocket PC 2002 devices and (with proper SDKs) Pocket PC 2003, 2005 and Smartphone 2003, 2005, applying the same tools as those used for the development of applications for desktop PCs. Library .NET Compact Framework is installed together with Visual Studio .NET. This library is specially developed for devices with the limited resources. Developers can also use new languages C# and Visual Basic .NET for applications for mobile and inbuilt devices. They are good in workings with web-services and ADO.NET technologies.

Control elements of ASP .NET Mobile Controls extend SDP functions and .NET Compact Framework platform. They give opportunities to use possibilities of .NET Compact Framework and Visual Studio .NET for development of mobile web-applications due to the data delivery to various mobile devices by means of ASP.NET technology. This approach allows to create single mobile web-application in the Visual Studio .NET environment, that will automatically perform data rendering for displaying on various devices: mobile phones, smartphones, PDA, Pocket PC. The integrated development environment makes it possible to create mobile web-applications simply by dragging control elements on forms.

ASP.NET System sets no components on a client device. For adaptation of formatting under concrete browsers server logic is used. It generates information in the formats of Wireless Markup Language (WML), HTML, and Compact HTML (cHTML).

Microsoft SQL Server

Microsoft SQL Server Compact Edition (SQL Server CE) is a compact DBMS for rapid development of applications that extend possibilities of work with enterprise data due to the mobile devices using. SQL Server CE is a tool facilitating development of mobile applications due to support of SQL syntax and usage of application and API interface model that is compatible with SQL Server.

SQL Server CE provides the basic set of relational database functions, in particular optimized query handler; support of transactions and heterogeneous types of data – with unpretentious requirements to the system resources. Remote access to the data and replication by confluence provide reliable delivery of information from the SQL Server bases, possibility of autonomous work with by information and subsequent synchronization with the server. SQL Server CE is good for the systems with mobile devices and wireless networks.

SQL Server CE DBMS is developed for integration with .NET Compact Framework by means of Visual Studio .NET. It simplifies development of applications for work with databases on mobile and built devices. New data supplier of SQL Server CE for code management in the Common Language Runtime environment helps to develop distensible applications with possibilities of autonomous work with information in scenarios without permanent connection.

Microsoft .NET SqlClient gives API for work of both .NET Framework and .NET Compact Framework applications. For the common Windows systems SqlClient Microsoft with SQL Server are used, and SqlServerCe for Microsoft SQL Server Compact Edition databases for Compact Framework.

Name space of SqlClient is in both versions. So we can interact:

Work with databases on a device is similar to the work on Desktop. To access to SQLServer on Desktop system SQL uses TCP/IP connection thus in this case it is possible not to have SQL Server Compact Edition installed on a device.

All of the mentioned models are implemented on the desktop systems. So the experience of their application can be carried for development of the programs for Windows Mobile. Using Win32 API we rapidly get compact code, and also can use it for development of drivers and system component.  Using MFC we have extensions of API functions, and also designer for development of interface. And using Compact Framework we have at our disposal well developed interface, automatic garbage collection, support of XML and other options. Also there is even more truncated version — Micro Framework, where there are less SDK functions.

After SDK for MS Visual Studio installation new configurations of assembling appear as well as new functions for assembling under these platforms. Suit also contains Emularor for software development and testing without physical connection between device and computer.

As far as many devices that are based on Windows Mobile have ARM processor it is also possible to compile units using other compilers: AVR32, ARM (RealView), GNUARM, IAR Systems.

Visual Studio development environment together with Compact Framework enable to develop applications using a vast graphic interface, databases, archiving and encrypting tools,  USB, Serial, Bluetooth, and also wireless network connections and telephony. All of these is provided by SDK as well as libraries and heading files from Platform Builder.

Due to the presence of good designer in VS and SDK we can easily develop GUI for mobile applications just the same as for Desktop applications. The only difference is in sets of  graphic components for Desktop systems and for Windows Mobile. There is also difference between components of Smartphone and Pocket PC versions caused by that Pocket PC has a touch screen and SmartPhone has not. Therefore development of interface for SmartPhone is more complex. One should take it into account when developing software for both platforms.

Here we should also mention that software built for Pocket PC won’t start on the SmartPhone platform while the opposite situation is possible – till the moment when some special Smartphone function is called.

It is naturally that many graphic components as well as majority of functions from full-size Framework were taken away from Windows Mobile SDK to reduce the size of the SDK on the device side. Only the most needful elements were left. But the productivity and volumes of memory are increasing so the number of function included in SDK becomes greater. So the difference between Compact Framework 1.0 and 2.0 is enormous. Version 1.0 was very limited.

In general the development of GUI with ?ompact Framework on ?# is similar to the development of the common Win32 application on C#.

It is also possible to develop a graphic interface using assembling of the 3D rendering-engines. They are such as GAPI (Game API), OPENGL ES (Embedded System), OPENVG (Vector Graphics), and other projects. Certainly it is rather labor intensive process as far as it is very important to write an optimal code because of the relatively low  productivity of mobile devices.

To date mobile devices have a wide range of communicational options. They have an access to the wireless high-speed network using 802.11 WiFi Connection standard. They also use IrDa, Bluetooth, and USB host/client functionality. While the usage of Irda is gradually getting less protocols and standards of Bluetooth, WiFi, Edge, GSM, and also USB are used quit often.

Microsoft Company provides such APIs:

Also mobile devices have possibility to work with Serial (USB) ports. There are a few COM-ports in many devices. Usually the first 3-5 of them are reserved for IrDa, Bluetooth, SerialPort and others. Other ports are available to for user. Some devices have USB-Host functionality in other words they are USB On-The-Go (OTG) devices which can serve both as USB Client and USB Host. For this purpose device should have necessary Hardware and Software (Device Driver).

Device Driver is a driver which is an intermediate layer between the driver of HOST and  level of applications. Such driver provides «Stream Interface Driver» and must contain such functions as:

Here “XXX” is replaced with «prefix» (for example «COM», «DSK»).

This prefix registers in the registry when a driver registers in the system. More detailed information about Device Driver Interface can be obtained from MSDN.

Also a developer can use such APIs not concerning communicational ones:

As far as Compact Framework contains basic functions and methods from complete

Framework we have such functionality as:

Certainly Platform Invoke calls are accessible. For this purpose – as well as in complete Framework – we use functions and attributes from namespace System.Runtime.InteropServices and DllImport attribute for description of functions which will be called from non-managed code.

However the functionality of these methods is limited. So Marshal class has PtrToStructure, GetComInterfaceForObject, Copy() and Read() functions but, for example, there is no such function as GetDelegateForFunctionPointer() in it. So it is impossible to make Marshaling just with Delegate. The GetFunctionPointerForDelegate function is available only. If we want to transmit a pointer to the function from Managed code we should get its FunctionPointer and only after that transmit it to the unmanaged code for subsequent call of it from there. Also we can not transmit some objects because Compact Framework can not count SizeOf() for some objects. Therefore frequently we have to transmit  data of Blitable types only and arrays of these types (Int, byte, char, but not bool),  and transmit and receive  classes and structures by means of IntPtr. Certainly it is explained by aspiration to increase the performance. It is therefore recommended to use primary types for Marshaling and «GCHandle» class for storing an object in the process memory and to make this memory «visible» for unmanaged code

Certainly the performance of P/Invoke calls from C# application in C++ DLL is almost twice less than the performance of method calls between C++ DLLs. However the performance of devices grows and it becomes possible to use such calls.

MS Visual Studio enables to make debugging of applications under

Windows Mobile just the same as for Desktop applications. We have Emulator, Device Emulator Manager and other to functionality such as Breakpoints, Threads, Watches panel etc.

However to make Debug using Native and Managed code simultaneously is impossible. Therefore it is possible to start either C++ projects or Managed ones. It’s also so for «Attach to process». There is a possibility of attaching to the processes on the device side (or emulator side). ActiveSync is required to provide communication between a device and the system, it is installed with SDK. An emulator also can be connected to the computer by means of ActiveSync. We obtain almost complete emulation of Windows Mobile devices. Here are both SmartPhone and Pocket PC (or Pocket PC Phone Edition) emulators. However only one Windows Mobile device can be connected to the computer at one time moment. Therefore Debug on two devices simultaneously which for example interact in some way is rather difficult. Certainly we talk only about Debug of applications developed by us but not about applications and services of the system. For such debugging we need the complete built of the system created by means of Platform Builder (in the last versions of Platform Builder it’s included in Visual Studio). We can also create our own SDK for Visual Studio and Windows CE platform.

An emulator also enables to emulate connection with the GSM network and GPS support. It makes possible to test and develop large spectrum of applications without having a physical device in hands.

Talking about Debug with IDA we should mention that version 5.1 already has the possibility to perform Debug by means of this interactive disassembler with the use of their plugin which is installed on a device.

With SDK appearance such option as «Deploy» appears in Visual Studio environment. Now there is «Deploy» item in project context menu additionally to “Build”, “Clean”, “Debug”. After you choose this item DLL or EXE file built by current configuration is transmitted to the device. Also new column appears in Configuration Manager where not only «Build» in some configuration option is available but also «Deploy». Deployment of .NET projects transmits not only the unit but also those builds that are depended on it (Dependencies).

Development of applications for Windows Mobile supposes also their assembling and creation of installation package. For this purpose there is such concept as ?abinet (.cab) file in Windows Mobile. It is a common archive but it is a installation package also (a sort of MSI package). It is assembled by means of Cab Wizard (cabwiz.exe) from MS VisualStudio (or from a command line). This utility creates processor dependent «.cab» file. WinCEApplicationManager transmits and starts CAB on a device, so user can install the application using instructions appearing on device screen. It is also possible to create the project of MSI Installation which includes CAB file by means of Visual Studio. This built package will be started on user computer and then transmit ?AB installation on a device to continue installation process.

There is special Uninstall Manager on the device side. One should attach configuration INI-file to CAB file. This INI file includes settings to manage installation process such as path, shortcut name to create, minimal OS version to install the application and others written in special syntax. It is also possible to include your own DLL into CAB-file to widen installation options. This DLL contains such functions as «Installer_AfterInstall», «Installer_BeforeInstall», «Installer_AfterUnInstall», «Installer_BeforeUnInstall», code in these functions will be executed on the device side in the certain moments of installation or uninstallation process.

When developing CAB installation it is possible to attach files, different resources, built units, add information to the registry. They are designated as «Project Output. That’s why there is no need to reset anything after CAB-file creation: it will collect all included projects and files and assemble in an archive.

Devices based on Windows Mobile receive, send and analyze potentially important information which should be protected from unsafe applications. To protect device the starting of unknown applications is disabled, the access to some API is restricted and some registry parts changing is forbidden. Units can be marked as Trusted and Untrusted and system uses this information to prevent starting of unauthorized applications and limit their access to the system. Also the access to the system by means of RAPI (Remote API) through ActiveSync can be restricted. Security Certificates Security Rights are used for the executable units (EXE, DLL) and for CAB-files.

Protection Against Threats and Risks

The followings options help to protect devices:

The start of applications is based on Permissions. Windows Mobile devices use such models:

Privileged applications have the widest access. They can access any API, write in the protected areas of registry and have the complete access to the system.

Most applications have Normal model. They do not have access to the trusted API and do not have the complete control of the system.

Application can not be started at all if it has “Blocked” status. It means that it’s not signed with the proper certificate or user forbade the start by the proper warning of the system.

Analogical situation is with Cab-files. The executable units with Normal status can start Privileged DLL but then they will work as Normal. However Privileged executable units can not start the units having Normal status.

Written by Eugene Kordin, Apriorit specialist.

Learn more about development process of Apriorit here.

Apriorit is an Ukrainian software development company. Apriorit develops its own products as well as provide offshore development and QA services in the areas of advanced system programming, driver development, software for devices.One of the key values of Apriorit’s specialists is knowledge generation and sharing of experience.Learn more about Apriorit and its experience at Apriorit Official site
Free WP Plugins

Mobile applications have helped to expand the use of wireless technology immensely.  Applications have revolutionized the capabilities of the mobile phone, to include a variety of functions, including internet browsing, movie players, games, music and much more.  The dramatic increase in mobile application sales has also increased competition in the industry.  With ever changing technology and increased demand for more advanced applications, innovation in the field is key to success. Mobile applications can increase the reach of your business, bringing more traffic to your website.  Mobile application software can also improve the productivity of businesses, providing applications such as spreadsheets, interactive calendars, calculators and more.  End-to-end mobile/wireless solutions can include content delivery systems for mobile devices that can publish a range of information valuable for businesses.  Mobile applications are available for endless uses, such as:

* Managing everyday to-do lists and check lists for shopping, travel, and more

* Delivering real time and instant information on topics such as weather, news, stock quotes, company headlines, market news, dictionaries and more

* Translation services that convert the written word into the audible pronunciation

* Business and Social Networking

* Video Conferences

* Organizing, saving and encrypting your various user names and passwords

* Keeping track of monthly bills

* Managing your checkbook and everyday financial transactions efficiently

* Interactively obtaining medical and fitness information, and more

Mobile banking provides intelligent use of technology for the financial industry, as it reduces expenses for banks. Mobile banking applications are more cost effective than operating tele-banking facilities. Additionally, mobile banking improves the quality and timeliness of customer service. With the introduction of smart phones, the popularity of mobile banking services continues to increase. The smart phone market has shown itself to be so popular that it is recession resistant. Its enormous success has increased the popularity of applications designed for many uses, such as:

A windows mobile application developer can even create a unique, custom application for your business that is capable of becoming the next top application embraced by mobile users.  A professional mobile application software development firm specializing in developing applications for mobile and wireless devices can isolate components in an application that may impede development, and provide thorough testing and solutions.  Creating a cutting edge mobile phone application is within the reach of your organization, with the help of a firm that has expertise in mobile application development platforms such as:

* iPhone Mobile Applications – Companies are developing iPhone applications that are being used by thousands of consumers varying from enterprise users to mass consumers.

* Android Mobile Applications – Google Android offers popular software for mobile devices that consist of an operating system, middleware and key applications.

* J2ME Mobile Applications – J2ME is a JAVA platform that creates powerful applications with the ability to process large amounts of information.

* Windows Mobile Applications – Development includes platforms such as windows mobile 2003, windows mobile 2003/SE, Windows mobile 5.0, Window mobile 6, Window mobile 6.1, Windows CE, Pocket PC 2002, 2003, and Net Compact Framework.

A mobile phone application must be user-friendly, useful and secure in order to attract a following and help ensure that the competition does not introduce its’ own perfected version of your idea. A reputable web application development company that specializes in software application development can develop mobile applications to integrate your business transactions through mobile or wireless devices and content delivered systems. A mobile application developer with a solid background in project analysis, documentation, test planning, and project maintenance can help you on the way to your creating revolutionary mobile applications.

Plaveb Corporation has an expert team of developers with broad experience creating affordable, custom solutions in mobile application development.  PLAVEB can provide the complete spectrum of mobile applications services, from primary design and architecture to development and integration into existing systems.  PLAVEB can create a custom solution to your mobile applications needs, using all of the popular platforms such as Symbian, Windows Mobile Application, iPhone, J2ME and more. PLAVEB is an internet business consulting agency that is passionate about creating innovative solutions for end users.  PLAVEB’s mission is to provide customized and usable solutions to the client, by maximizing the return on investment.  PLAVEB’s business insight, years of experience, and unparalleled expertise in the latest technology is capable of delivering sophisticated solutions.

PLAVEB is the affordable and professional means for gaining greater recognition in today’s highly competitive marketplace. PLAVEB provides a complete range of technology solutions, including Mobile Applications, Web Design Solutions, Ecommerce Website Solutions, Web-based System Consulting, Online Marketing, Corporate Graphic Design, Web-based Content Management Systems, Organic SEO and PPC Management and more.  The extended service area adds Portal Development Services, Advanced Web Application Development, Advanced Portal Architecture Design, Scalability Solutions, Advanced Web Portal Programming and Legacy Service Integrations, Multi-tier Web Applications, Multi-language/Multi-location Content Management Systems, and many other web solutions.

I am Mark Spenser. I have written many articles on windows mobile application.
Rocket French or Bust

Aquilonis Windows Mobile developers provide different solutions such as Sync Framework for data synchronization between remote server and Windows Mobile PPC phone and Telephony Framework for Windows Mobile Phones. We are experienced in faster execution of such applications with Microsoft technologies as standalone mobile software, PIM , applications for Smartphone and many others. Our programmers and system analysts will assist you in planning and development of any solution based on Windows Mobile platform.

With the growing need of each business, it requires proper infrastructure including hardware and software for Communication especially when you have more employees and associates in the field carrying mobile device with them. In order to make right information available at the right place, you need software that can run seamlessly across all mobile handsets in order to connect people all the way.

Windows Mobile software development by Aquilonis:

* Windows Mobile Application for data synchronization

* Windows Mobile Telephony or Messaging application

* Custom Windows Mobile drivers development

* Embedded software development for iPhone, Smartphone and Pocket PC

* Migration Mobile applications across any Platforms including Pocket PC, Windows Mobile, Palm OS, Blackberry, Symbian, iPhone, Android etc.

* Windows Mobile applications integration with databases servers

We also provide software implementation for such mobile platforms as Symbian OS 6.x to 9.x, J2ME, Win CE (Pocket PC, Windows Mobile) and Linux & Unix based server solutions using such programming languages for Mobile devices as C#, C++, Java.

Microsoft terms Windows Mobile as smart operating system for mobile devices. This operating system consists of basic applications for such mobile devices as Smartphones, Touchscreen Pocket PC, Handheld computer for automobile and barcode scanners etc. Some of the last versions of this OS are: Windows Mobile 2003, Windows Mobile 2003/SE, Windows Mobile 5.0, Windows Mobile 6 and Windows Mobile 6.1 and the new release is planned in 2010.

Aquilonis offers cutting-edge mobile software products and solutions on platforms like Windows Mobile, Blackberry, iPhone, Symbian, Android and J2ME. We continue to redefine brilliance in Mobile Application Development by offering specialized frameworks for Windows Mobile Smartphone, Mobile computing for Application Developers. We also offer products on Windows Mobile such as Pocket System Manager and a cross platform management suite for the above mentioned platforms by taking into account the growing need of innovation in mobile computing through our extensive user behavior study and research.

For More Information, Please visit our web site Aquilonis Technologies Ltd.

An Author of this article Michal John is working for free Business Analysis. If you are looking for some state-of-the art products running on your mobile handset and useful for your day to day usage be it technical or functional then you are at the right place to finding all <a href="http://www.aquilonis.com/” rel=”nofollow”>Windows Mobile Phone. Please visit our web site for get more information http://www.aquilonis.com
WP Autoblog Plugin

Aquilonis Windows Mobile developers provide different solutions such as Sync Framework for data synchronization between remote server and Windows Mobile PPC phone and Telephony Framework for Windows Mobile Phones. We are experienced in faster execution of such applications with Microsoft technologies as standalone mobile software, PIM, applications for Smartphone and many others. Our programmers and system analysts will assist you in planning and development of any solution based on Windows Mobile platform.

With the growing need of each business, it requires proper infrastructure including hardware and software for Communication especially when you have more employees and associates in the field carrying mobile device with them. In order to make right information available at the right place, you need software that can run seamlessly across all mobile handsets in order to connect people all the way.

Windows Mobile software development by Aquilonis:

* Windows Mobile Application for data synchronization

* Windows Mobile Telephony or Messaging application

* Custom Windows Mobile drivers development

* Embedded software development for iPhone, Smartphone and Pocket PC

* Migration Mobile applications across any Platforms including Pocket PC, Windows Mobile, Palm OS, Blackberry, Symbian, iPhone, Android etc.

* Windows Mobile applications integration with databases servers

We also provide software implementation for such mobile platforms as Symbian OS 6.x to 9.x, J2ME, Win CE (Pocket PC, Windows Mobile) and Linux & Unix based server solutions using such programming languages for Mobile devices as C#, C++, Java.

Microsoft terms Windows Mobile as smart operating system for mobile devices. This operating system consists of basic applications for such mobile devices as Smartphones, Touchscreen Pocket PC, Handheld computer for automobile and barcode scanners etc. Some of the last versions of this OS are: Windows Mobile 2003, Windows Mobile 2003/SE, Windows Mobile 5.0, Windows Mobile 6 and Windows Mobile 6.1 and the new release is planned in 2010

Aquilonis offers cutting-edge mobile software products and solutions on platforms like Windows Mobile, Blackberry, iPhone, Symbian, Android and J2ME. We continue to redefine brilliance in Mobile Application Development by offering specialized frameworks for Windows Mobile Smartphone, Mobile computing for Application Developers. We also offer products on Windows Mobile such as Pocket System Manager and a cross platform management suite for the above mentioned platforms by taking into account the growing need of innovation in mobile computing through our extensive user behavior study and research.

For More Information, Please visit our web site Aquilonis Technologies Ltd.

An Author of this article Michal John is working for free Business Analysis. If you are looking for some state-of-the art products running on your mobile handset and useful for your day to day usage be it technical or functional then you are at the right place to finding all http://www.aquilonis.com/” rel=”nofollow”>Windows Mobile Phone. Please visit our web site for get more information http://www.aquilonis.com