Microsoft Goes Cross Platform?

Microsoft LogoEric Maurer  – [Consultant – Applications Solutions Group]

Things have been changing recently within the Microsoft ecosystem.  You no longer have to decide to be a Microsoft shop or embrace anything but Microsoft. They are fulfilling their original promise for .NET to be a platform that can be written anywhere and run anywhere. Microsoft has now embraced open source, blurring the lines between the two camps.  At a recent user group meeting, I talked to users who were running Linux Bash on Windows 10, installing Microsoft SQL server on Linux, and developing iOS and Android applications using C#.  You can also now run Linux on Azure, and since the .NET Core has been open sourced, you can now run ASP.NET on Linux or Mac as well.

Being a mobile developer, I was ecstatic to learn of their newest acquisition and open source release: Xamarin.

What is Xamarin?xamarin-logo

No, Xamarin is not the latest drug being pushed on late night commercials. It is a software company that allows you to deliver native iOS, Android, and Windows apps using your existing .NET skills, teams, and code. Xamarin was founded over four years ago with a mission to make native mobile development fast and easy. They wanted to allow C# developers to share their code across platforms to reach billions of devices. Those four years have been highly successful for them, as they boast having over 1.3 million developers and 15,000 companies using their software to develop apps across the Apple, Google, and Microsoft ecosystems.

Rumors have been circulating for years about a Microsoft acquisition of Xamarin. First, they worked together to create tight integration with Visual Studio, and Microsoft undoubtedly helped develop the Mono framework now maintained by Xamarin, if only unofficially.  Next, they worked together to offer a limited Start Edition free with Visual Studio and discounts and training through Xamarin University for MSDN subscribers.  Yet they stayed two separate companies until February 24, 2016, when Microsoft announced it had signed an agreement to acquire Xamarin.

NATIVE, EVERYWHERE, and now OPEN SOURCE

xamarin-joins-microsoft

Why Xamarin?

Keller Schroeder has been using Xamarin for over three years and has employed it to develop apps for iOS, Android, and Window Phone. Xamarin enables us to take advantage of the productivity and power of .NET and to use C# to write to the full set of native APIs and mobile capabilities provided by each device platform. Depending on how you architect your solution, you can realistically obtain 80% or more code reuse between apps. Having one code base reduces the chance for errors and makes same day deployments much more feasible. It also allows for a faster ramp up for new developers and makes maintenance much easier, as changes often only need to be made in one place. Xamarin is also dedicated to providing same day updates with new iOS and Android releases so new features are available at the same time as they are to native developers.

Why Microsoft and Xamarin is Even Better

“Everything you need to run Xamarin apps on any OS, any device, is now open source,” Scott Guthrie, executive vice president of the Cloud and Enterprise Group at Microsoft, declared at the Build conference. What does that mean to us?  Let’s start with the obvious reason: it is now free with Visual Studio!  Though it doesn’t take long to recoup your money, Xamarin wasn’t cheap and licensing was sometimes confusing. What I think is really more important is that Microsoft has already taken steps to tighten Xamarin integration with Visual Studio and Azure. Their goal is to allow Visual Studio to easily connect to your Mac and for your app to communicate seamlessly with Azure. They are also unveiling new Xamarin.Forms enhancements to allow for a shared UI and adding a Test Recorder in Visual Studio to make creating unit tests easier as well. Having Microsoft fully behind Xamarin is going to solidify its position as the best option for cross platform native apps well into the future.


Mobile App Development

– Jill Epperson, Business Unit Director


Life is a series of trade-offs. You can choose to have lunch at a fancy, sit-down place and generally get a better meal, but the trade-off is it costs you more time and money than the fast food joint. You can choose to see that new blockbuster movie the day it hits the theater, but the trade-off is you are going to pay more for that movie theater experience than if you just wait until it is released on Netflix. You can choose to hit that snooze button for the fifth time tomorrow morning, but the trade-off is you may end up at work wearing two different shoes because you were so rushed you didn’t notice (okay, yeah, I did that one time).

The point is trade-offs are everywhere and mobile app development is no different. At Keller Schroeder, we are often asked what the best strategy is for mobile app development. Do we recommend using native languages, like Java and Objective-C? Or is it better to take advantage of the cross platform tools available today, such as Mono/MonoTouch and PhoneGap?

Choosing a mobile app development strategy centers primarily around creating a better user experience versus lowering the development investment and shortening timelines.

In general, the closer you get to native app development, the better the user’s experience is going to be because this is where you are able to take full advantage of the device’s capabilities and APIs. However, typically, it’s going to take longer to develop apps using the native languages – particularly if you are developing across multiple devices. You cannot, for example, write code for an iPhone in Objective-C and expect it to also run on Android or Windows devices.

The flipside is that you can use a cross platform tool like PhoneGap and get an app up and running pretty quickly that can, with minor effort, be deployed to different devices. However, the app is going to look and behave the same across all devices, so users may perceive a more generic experience. Additionally, it may be challenging to implement more complex behavior or functionality in a tool like PhoneGap because you are mainly using HTML, CSS, and JavaScript.

Mono/MonoTouch, on the other hand, does a nice job of getting you closer to the native app experience and still gives you the advantages of cross platform development cost and timeline. Mono/MonoTouch allows you to write your code in C# and share business logic across iOS, Android, and Windows devices. You do, however, have to build the presentation features individually for each device you are targeting.

Tools like Mono/MonoTouch and PhoneGap, as well as other cross platform tools, will be behind the curve regarding support for new device features, and you are going to deal with their individual bugs and quirkiness. The app itself may be a bit larger in size than a native app, and/or may perform a little slower (although, perhaps not enough for the user to notice).

So how do you decide on a strategy? Start by considering what is important for your mobile app development project and which trade-offs you are willing to accept. Here are some key considerations:

• Which device types are you going to support?
• What languages does your development team already know?
• How complex is the app?
• What is your timeline and budget?

Consider these questions and then contact your Keller Schroeder Sr. Account Manager for more information on how you, together with Keller Schroeder, can navigate the trade-offs of mobile app development.

And don’t forget to check your shoes tomorrow morning.


Your Ticket Out of “The Waiting Place”

– Ray Pritchett, Business Unit Director


I was once again reminded of a classic Dr. Seuss book a few days ago, when I opened an invitation to a local high school graduation ceremony. The last book written under Theodor Geisel’s pen name, “Oh, the Places You’ll Go!” is certainly an appropriate theme for graduation, as it inspires the reader to view life as a great adventure, constrained only by the limits of your imagination and other self-imposed obstacles. For those unfamiliar with the story, one of the primary obstacles in the adventure is “The Waiting Place” – a place where everyone is interminably waiting for something to happen. Applying this theme to today’s business world, I think it’s fair to say that ever-increasing internet access via broadband is making visits to “The Waiting Place” shorter and less frequent for most of us, even as we all grow less tolerant of waiting.


Still, most of us accept there are times and places when lack of broadband access dooms us (as well as our business partners and customers) to “The Waiting Place” – a place where the applications and data that we depend upon are at least temporarily unavailable. But is it possible that this, too, is a constraint imposed by our lack of imagination? In the case of one of our recent projects, the answer was clearly “yes.”



The client in this case is Best Home Furnishings, a mid-sized manufacturer and distributor of furniture, who sells their products to retail dealers both large and small, through a sales force of independent reps. Their product line is both deep and broad, with large numbers of models, fabrics, features, and options from which to choose. While they have long since used the web to extend the reach of their product catalog, customer order management, and sales analysis applications and data, their sales reps still regularly find themselves in geographic locations and other situations where web access is either non-existent or insufficient.


Best Home Furnishings’ ticket out of “The Waiting Place” came in the form of a custom-developed iPad application with its own local database. Reps can now create and display sales presentations, complete with high quality images of any products they choose, virtually anywhere and anytime. They can browse the catalog with customers at their sides and assemble quotes and orders at a desk or from a sofa on the showroom floor, while they receive immediate feedback from the customer. They can record inventory status from warehouses, and drill into a customer’s sales history, even in rural areas where cellular broadband access is spotty or unavailable. Then, when they return to their office, hotel room, or local Wi-Fi coffee shop, rather than logging on to the web site to key orders and/or generate and retrieve customer sales histories for the next day’s appointments, they simply click the “synchronize” button on the iPad app. The iPad then automatically sends orders to the customer order management database, and retrieves any new or updated catalog or customer data, all while the rep heads out to dinner with the customer (although synchronization typically completes in a matter of seconds).


Are you wasting time and money in “The Waiting Place”? Are there great new places that mobile versions of your applications and data could take your business? Contact your Keller Schroeder Account Manager for more information or a demonstration of this product and how you, together with Keller Schroeder, can benefit your environment.


“What we’ve got here…is a failure to communicate.” – VMI: Vendor Managed Inventory

Vendor Managed Inventory Replenishment


Have you been approached by one of your customers about starting a Vendor/Supplier Managed Inventory (VMI or SMI) relationship, or are you considering implementing one with your suppliers? While there can be benefits to both parties in a VMI relationship, there are pitfalls to avoid in order to establish a successful partnership.

Potential benefits include:

  • Shorter lead time
  • Reduced inventories (for both parties)
  • Greater manufacturing efficiencies
  • Stronger relationship with your customer/supplier

Potential issues include:

  • Accuracy of data: Without accurate and timely reporting of current inventory quantities and planned consumption (planning schedule), it is impossible for a supplier to keep their customer properly stocked with inventory. 
  • Exchanging data: Are both partners “on the same page” with the transmission methods (traditional EDI, XML, spreadsheets, proprietary formats, etc) and frequency? 
  • Managing the data: Depending on the number of products a supplier provides to a customer, the volume of data to be managed on a daily basis can be staggering – current inventory quantities, month’s worth of planned consumption data, min/max inventory levels, etc. As a supplier, are you going to add to your staff to manage this additional data, or will you be looking for a software solution to help your existing staff manage all of this new data? 
  • Consignment inventory: Some companies implementing VMI are also wanting to convert the inventory to consignment – meaning that they don’t own (or pay for) the goods until they pull them out of inventory and send them to the production floor (or sell them in the case of a final product). This relationship model adds more overhead to the supplier, in addition to the data exchange between the two parties.

Properly implemented and managed, VMI can strengthen the relationship between a supplier and a customer, and provide tangible benefits to both parties. However, if not properly implemented, this relationship can cause issues for both parties, driving up costs, causing production downtime (due to a lack of available inventory), and can ultimately damage the relationship.

Keller Schroeder can assist you with the process of planning and implementing a successful VMI relationship. Please contact Dan Ehrhart at (812) 474-6825 to discuss this topic in greater detail.