Troubleshooting

背景

在最近几年中,越来越多的企业会将自己的网站转换成手机端的应用。这里所谓的转换,其实不是摒弃一个使用另一个,而是共存。所以就会有一个比较普遍的需求就是,很多的企业或者开发者希望使用同一套Web API来同时支持自己的网站和手机应用去操作自己的数据库,并且这个数据库的结构也是一样的。

这篇博客就是在阐述一个一模一样的情况。我的一个客户已经基于.NET Core 2.0的版本开发了一套Web API,并且网站已经在运行中。但是他想要用Xamarin.Forms来开发一个手机应用,并且是想用到Azure Mobile Apps SDK来使用离线同步(Offline Sync)功能。

当然,他希望使用同一套Web API和同一个数据库数据结构。

什么是离线同步?

如果是中文,就真的非常好理解。在使用手机的过程中,我们无法保证手机的网络信号永远是畅通的。再假设你现在在乘飞机,手机开启了飞行模式。这时候你需要在你的app中添加一些记录,比如是todoList,你当然希望一旦关闭飞行模式恢复网络之后,这些数据会被同步到数据库。这就是离线同步的意义。

看下面的微软官方解释:

Offline sync allows users to interact with a mobile application, viewing, adding, or modifying data, even where there isn’t a network connection. Changes are stored in a local database, and once the device is online, the changes can be synced with the Azure Mobile Apps instance. This article explains how to add offline sync functionality to a Xamarin.Forms application.

阅读更多

背景

Xamarin的开发的一个无法避免的弊端就是在很多Android原生态应用中被普遍用到的库,未必有.NET的实现版本。这个问题就如同当时微软WinPhone失败的原因一样,在另外两个平台中非常普遍的应用,在WinPhone中没有或者开发进度缓慢。

Xamarin为了解决这个问题,在Android和iOS的平台下都设计了一个叫做binding library的项目类型,这个项目类型就是为了将user找到的任何已经发布成类库的jar包等,或者iOS下的objective C的类库包转换成一个DLL文件。

本文主要讲述的是Android端的关于jar包的binding。Android还有一种aar包,这种包是带有resource内容的jar包,所以通常理解上来说原理应该是一样的。

内容

本文我主要分两部分,第一部分是通过一个微软资深员工写的troubleshooting的文档来做一个整理归纳,以便用于以后的参考。第二部分是我自己实际做过的troubleshooting中我写过的一些东西,以及对照第一部分中知识点中的原理。

阅读更多

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×