NAVmoble - the pocket-sized ERP
Optimized for Microsoft Dynamics NAV and Windows Mobile powered devices

Sunday, July 03, 2011

NAVmobile/AXmobile - 2011 Q4 roadmap

I was quite out of the blogging business for a while. I am still following the latest technical and business trends in the IT area, but I am mostly focused over the development of Mobile Affiars and our product NAVmobile/AXmobile.
We're trying to stay in touch with our partners and giving them as much as possible information about the product roadmap and the expacted product changes. This information is shared through our partner channel resources, but I decided to share some informarion in public in order to reach potential partners, current customers and other interested parties.

I will discuss some of the main platform-wide functional areas , which we're digging into. I will miss the various improvements in the standard Sales/Warehouse scenarios that we support. So, here come the main areas:
  • Device Agent Improvements
  • Barcode management improvements
  • Graphical UI for deployment process tailoring
  • Off-line working mode in Warehouse management. ( IT.Warehouse )
  • Support for more mobile platforms


Device Agent
NAVmobile/AXmobile introduced a concept for a device agent few months ago. It is a background service working on the device and performing different activities behind the scene. It is extremely nice to have feature in scenarios, where the mobile user is not supposed to manually perform device synchronization. The on-line Warehouse Management scenario is a good example. The Device agent is performing activities like:
  • caching and resending of failed synchronization packets
    The network connectivity may have poor quality in larger warehouse areas or experience connection droppings, when netowork roming takes place.

  • sending of device system information and logs
    The Device agent performs collection of event logs and device system information and sends them to the server, when connection is available.
  • downloading of system settings from the server
    if new settings are published on the server, the Device agent will automatically extract the settings from the server and they will affect the device behaviour immediately. The agent is capable to execute device provisioning "scripts" in order to configure different aspects of the underline mobile OS.

  • downloading mobile software updates
    if new mobile software version is published on the server, the agent will automatically download and install the software without user interaction, making sure that the user will not lose any unsaved work.

  • alerting device user for custom messages
    ERP users and administrators can send messages to devices or device roles ( group of devices). These messages are handled and displayed/alerted on the device by the Device agent.
We are working over a number of additional device agent features, which will be announced in the next public release
  • Location data collection and GIS integration
    The Device Agent will collect GPS data on the device and will be able to send the GPS log to the Mobile Sync Server. The administrators will be able to analyze the collected location data through the web administrative console or exporting the data to third party GIS.

  • User task management
    The ERP users will be able to create tasks for the mobile users ,wich will be sent to the device and displayed in a customized splash screen. The splash screen will allow users to launch spefiic task from their list by taping over it. Initially the customized task management splash screen will be introduced in our standard Warehouse module , but partners will be able to integrate the task mana
    gement approach in their own customizations.

Barcode management
NAVmobile/AXmobile had a platform-wide barcode management support from the begining. Our partners are able to easily introduce support for additional barcode scanners/imagers by implementing a simple barcode "drivers" using CF.NET and delivering them through the standard OTA(over-the-air) infrastructure.

Our next release will introduce new barcode pattern based management features. Partners will be able to specify the various barcode types and masks and their content ( like item-numbers, quantities, lots, bins and more ) and the system will automatically parse the barcode conten and automatically extract encoded quantities, numbersm bins , etc. Barcode patterns configurtion will be deployed on the devices by using the same server-side provisioning approach,


Graphical UI for deployment process tailoring
NAVmobile/AXmobile allows partners to tailor the automatic OTA deployment process. They can "instruct" the server to perform various additional activites during the initial mobile application deployment. It allows partners to deploy additional apps ( like keyboard layouts for example ) or provision the mobile OS on deployment. This is done (right now ) by writing instruction in a dedicated xml file (Deploy.manifest ) . In the next release we will introduce dedicated UI in the Web Administrative Console to make the deployment tailoring even easier.


Off-line working mode in Warehouse management. ( IT.Warehouse )
Our standard warehouse module was developed as on-line solution intially. We introduced failed sync packet resending features to minimize the on-line requirement impact, but it turns out that there is a big demand to support the warehouse scenarios in complete off-line mode.
Or next public release will allow organizations to select between off-line and on-line mode with a simple setup and even mix off-line and on-line warehouse workers in a single deployment.

Support for more mobile platforms



Microsoft announced the extended support for Windows Mobile based devices and event longer support for the rebranded Windows Embedded Handheld and Windows Compact editions. We will keep introducing more features on these platforms as this is the most popular mobile OS for rugged devices these days.
However, the IT area is very dynamic and forces us to introduce support for additional mobile platforms and form factors. We will incrementally introduce support for all of the major mobile operting systems starting with Android near the end of the year. The new platform will support complete off-line mode through native mobile apps and on-line mode through a modern web browser.
We will introduce new cross-platform mobile development environment to allow our partners to write once and distribute their ERP connected mobile apps to various mobile platforms.
We will also incrementally introduce all features and mobile modules supported on Windows Mobile to the new platofm. Partners/Customers will be able to "host" and manage Windows Mobile and all supported modern mobile devices in a single deployment with the same skills and knowledge.


Disclaimer: The NAVmobile/AXmobile features are subject of change witout notice. We will do our best effort to inform our partners and customers in advance if changes in the roadmap are comming in response to changes in the dynamic business environment.

Thursday, January 13, 2011

Motorola Atrix - is this the begining of the long way to the laptop's death

I just notice the announcement from Motorola about the their Motorola ATRIX device.


It's a dual core (NVidia Tegra2) mobile device combined with various accessories. The most interesing feature is the docking capability. Motorola provides the following interesting accesssories:


When docked, the phone is redirecting the video out to the corresponding device and behave like a full blown laptop or media center device.

Checkout the videos:




Checkout the spec
  • Nvidia Tegra 2 1GHz dual core processor
  • Presently Running at Android Froyo 2.2 may be upgradable to Android 2.3(gingerbread)
  • 4”inch screen @ 540 x 960 pixels (Gorilla Glass display)
  • Biometric Fingerprint Reader
  • MotoBlur UI with Live Widgets
  • 16GB internal storage expandable up to 32GB via microSD
  • 1024MB RAM
  • HSDPA 14.4Mbps, HSUPA 5.76Mbps
  • WiFi 802.11 b/g/n, DLNA, GPS w/ aGPS support
  • Bluetooth 2.1 w/ A2DP, EDR, FM Radio Tuner, USB 2.0
  • 5MP autofocus camera with LED Flash
  • 720p HD video recording
  • Li-IOn 1930mAh battery




Links
The ATRIX device on Motorola's web site
Motorola Atrix videos

Thursday, October 21, 2010

NAVmobile HowTo: Consuming Business Objects

I had recently several requests on writing a little bit more about the NAVmobile customization approach from a dev point of view. So I decided to make a short how-to serie in order to illustrate some of the concepts. Most of it can be found in the documentation, but I hope that I will clarify some of the missing points.

NAVmobile provides the mobile developers with mobile object relational mapping API. It can be used by the developers to consume data stored on the device or data stored on remote storage.
The ORM implementation found in NAVmobile is very useful when dealing with standart CRUD operations over local and remote data in terms of business objects. It has certain limiations mainly because of the resource-related limitations found on the mobile devices these days.
It is not intended to provide complete replacement of the standart ADO .NET implementation found in .NET Compct Framework. However, it gives clean and quick way to deal with the CRUD operations and the various logical and tehcnical challenges related to the synchronization of the data. Each CURD operation through the NAVmobile ORM API performs certain behind-the-scene operations over the locally stored data, which allows later the synchronization engine to properly propagate the changes to the remote side ( the ERP ).
The developer can easily go down to the pure SQL level and deal directly with the mobile storage to perform even advanced data operations.

Local Business Objects
NAVmobile provides framework for bi-directrional data synchronization between the device and virtually any remote data storage ( ussually ERPs like Microsoft Dynamics NAV or Microsoft Dynamics AX ). The existnce of local mobile storage allows the application to be used in occatioanlly connected environments where the data is stored on the device and then synchronized when a connection exists. The developer only needs to declare the business objects and then the NAVmobile framework is taking care of the initial mobile storage provisioning, synchronization and other low level technical tasks.
The business objects must be declared in the NAVmobile business object descriptor file (described in the documentation ) and then a correpsonding .NET Compact Framework class must be created.
Let's pretend we have the following business object declaration:

public class Customer:BusinessObjectBase
{
public string No;
public string Title;
public double CreditBalance;
public double CreditLimit;
}
If we need to fetch all customers with positive credit blance , we can use the following code:
IList customers = BusinessObjectBase.FetchAll("CreditBalance>0");
foreach(Customer customer in customers)
{
...
}
Creating new customer object is easy as:

Customer customer = new Customer();
customer.No="567";
customer.Title="My first customer";
customer.Add();
and then fetching only one customer by primary key can be done like this:
Customer customer = BusinessObjectBase.Fetch("567");
MessageBox.Show(customer.Title);
Updating a customer:
customer.Title="This is not my first customer";
customer.Update();

...and then deleting it:
customer.Delete();

Using this approach the developer can quicky perform CRUD operations over the business objects stored on the mobile device.

Each CRUD operation over the business objects is propagated later through the sync engine to the remote storage ( the ERP ) during the device synchronization session.

Remote Business Objects
Remote business objects can be consumed by using the NAVmobile LiveLinkEngine, which serves as an on-line connection media between the mobile device and the remote storge ( ERP, Microsoft SQL Server , etc. ). This functionality requires the existance of TCP/IP connection between the device and the NAVmobile Services.

Assuming we need to use the same Customer business object from a remote storage , we can use the following code in order to fetch all ther customers:
IList customers = LiveDataLinkService.FetchAll("CreditBalance>0");
foreach(Customer customer in customers)
{
....
}
The FetchAll method will causes the NAVmobile framework to perform invocation of the NAVmobile Services LiveDataLink Web Service in order to fetch the data from the remote sotrage. The data will be dehydrated into the Customer business object collection and ready for local processing.

Addin a new remote customer is easy too:

Customer customer = new Customer();
customer.No="567";
customer.Title="My first customer";
LiveDataLinkService.Add(customer);
The Add method will send the customer business object to the server where it will be stored.
We can use similiar approach to fetch one customer:

Customer customer = LiveDataLinkService.Fetch("567");
MessageBox.Show(customer.Title);

and then to change and update it:
customer.Title="here somes a new name";
LiveDataLinkDataService.Update(customer);

Deleting the customer is also easy:

LiveDataLinkDataService.Delete(customer);


The ORM module can be used also in the NAVmobile templating engine to quickly build mobile reports diplsayed and printed on the device. Local and remote data can be mixed together in a single report. More on this subject later.


Links:

NAVmobile/AXmobile web site

Tuesday, October 19, 2010

Windows Embedded Handheld

Windows Phone 7 turned out to be a pain for the companies, which already invested a lot in mobile solutions based on Windows Mobile especially those positioned in the B2B market. Windows Phone 7 provides appealing UI and great potential for the end user. However it turned out that it is not suitable to target some very important scenarios required when dealing with B2B solutions.


I just found that Microsoft announced new mobile operating system called Windows Embedded Handheld , which is intended to fill the gap between the personal operating system and the requirements found in some of the specific industrial

.... The first such investment will be a new operating system called Windows Embedded Handheld, which will be targeted specifically at the enterprise handheld device market. This new operating system is based on Windows Mobile 6.5 and will use same the familiar development tools (Visual Studio 2008) and SDK as Windows Mobile 6.5 to provide compatibility with the hardware, software and applications used in the enterprise. By building on the Windows Mobile 6.5 platform, Windows Embedded Handheld devices will provide compatibility with existing and future line-of-business (LOB) applications written for Windows Mobile 6.x.

Windows Embedded Handheld will also meet enterprise requirements around integrating with existing IT infrastructure like Microsoft Exchange and SharePoint as well as incorporate the device management and security functionality necessary for enterprise devices. Support for multiple ARM processor types, a wide range of input methods, and several screen sizes and resolutions will make Windows Embedded Handheld a flexible solution to power the wide range of enterprise handheld devices used today.

New features in Windows Embedded Handheld will include Office Mobile 2010 and a support lifecycle to meet the needs of enterprise customers. OEMs will have access to the Windows Embedded Handheld bits by the end of 2010 to start building new solutions.

Links
http://www.microsoft.com/windowsembedded/en-us/products/handheld/overview.mspx

Tuesday, March 16, 2010

Developing for Windows Phone 7 Series

image

If you want to take a look at the new development approach behind Windows Phone 7 Series go to developer.windowsphone.com web site and download the Microsoft Visual Studio 2010  Express for Windows Phone. This is a free development environment for the latest mobile platform from Microsoft. It is till in CTP status.

The environment allows you to develop applications targeted to Windows Phone 7 Series only. It provides the following :

        • Tools to develop mobile applications based on Silverlight For Windows Phone (out-of-web-browser)
          • XAML based UI
          • Expression Blend  may be used to design UI
          • Support for mutli-touch input, microphone,accelerometer is available through API
          • Location services on the phone and in the cloud through Windows Azure
          • Isolated data storage on the device
          • Media support: discovery, enumeration and playback
          • Cloud services integration: Notifications,Location,Identity, Feeds Social and Maps,Azure through REST and SOAP
          • Debug in the emulator and in physical device
          • Apps publishing through Marketplace in the form of .xap files
        • Tools to develop mobile applications based on XNA Game Studio 4.0
          • Development of loop-based games (2D and 3D) supporting Windows Phone 7 Series and Xbox 360

 

The environment contains Windows Phone 7 Series Emulator ,which allows you to start playing with the bit right now. We are waiting for real devices later this year.
Compatibility for legacy ( .NET Compact framework 3.5) apps is not supported – at least on a binary level.
The MIX 2010 is still in progress, so wait for more details around the developer story.

The post is short, but I’ve just started playing with the CTP bits so stay tuned for more info.