摘要 Xamarin成立于2011年5月16日。Xamarin 是一套基于C#语言的跨平台移动应用开发工具,2016年2月24日被微软正式收购。

前言

很早就已经听说强大的.NET生态中有一个移动开发的解决方案叫Xamarin,也曾经翻阅过相关资料和教程,但由于国内资源较少,且全是英文,所以并没有深入研究。

如今随着.NET Core 3.0、VisualStudio 2019的发布,.NET的跨平台渐入佳境,又恰逢公司有APP方面的需求,所以决定会一会这个所谓的Xamarin(渣马润)。

介绍

1.Xamarin是什么?

Xamarin成立于2011年5月16日,2016年2月24日被微软正式收购,而后微软宣布将会在各个版本的Visual Studio中免费提供Xamarin,并且宣布Xamarin SDK开源。

Xamarin是一套基于C#语言的跨平台移动应用开发工具,开发人员可以使用C#编写原生的Andorid、Mac、iOS、UWP应用。

2.Xamarin能做什么?

Xamarin主要包含Xamarin.Andorid、Xamarin.iOS、Xamarin.Forms。

(1)Xamarin.Andorid:为.NET开发人员提供了完整的Andorid SDK,可以构建完整的Andorid原生应用。

(2)Xamarin.iOS:为.NET开发人员提供了完整的iOS SDK,可以构建完整的iOS原生应用。

(3)Xamarin.Forms:为.NET开发人员提供了一个完整的跨平台UI工具包,开发人员可以通过(C#、XAML)轻松构建适用于各个平台(Andorid、iOS、UWP)的原生应用。

简单来说就是前两个分别能够使用C#开发Andorid和iOS应用,而Xamarin.Forms则可以用一套代码C#代码开发跨平台的应用。本系列只研究Xamarin.Forms。

3.Xamarin.Forms如何运作?

Xamarin Forms的工作原理是将创建的UI元素从共享PCL(可移植类库)UI代码映射到Windows,Android和iOS上相应的原生代码。每个Xamarin Forms页面分为两部分,用于处理UI逻辑的Code Behind文件和制作UI界面的XAML文件。

Xamarin.Forms提供了两个创建应用程序用户界面的方式:

①XAML:可扩展应用程序标记语言,它和XML、HTML差不多。(WPF也是使用的XAML)

②C#:如果没有任何前端开发经验,可以使用这种方式。

安装

随着宇宙第一IDE Visual Studio 2019 的发布,Xamarin的安装变得更加简单了。

1.下载VS2019安装程序

地址:https://visualstudio.microsoft.com/zh-hans/vs/

2.打开安装程序=》工作负载=》移动与游戏=》使用.NET的移动开发

3.点击安装

4.打开VS2019,点击创建新项目,在项目模版中找到移动应用(Xamarin.Forms)则安装成功。

本文链接:http://www.leo96.com/article/detail/38

欢迎添加个人微信号:Like若所思。

欢迎关注我的公众号,不仅为你推荐最新的博文,还有更多惊喜和资源在等着你!一起学习共同进步!

Xamarin.Forms移动开发系列1:介绍和安装的更多相关文章

  1. Xamarin.Forms移动开发系列5 :XAML标记扩展

    摘要 本文主要讲述Xamarin.Forms中XAML的标记扩展. 前言 在Xamarin.Forms移动开发系列4 :XAML基础一文中提到过XAML标记扩展,本文将对标记扩展进行更深入的了解. 大 ...

  2. Xamarin.Forms教程开发的Xcode的下载安装

    Xamarin.Forms教程开发的Xcode的下载安装 Xamarin.Forms教程开发的Xcode的下载安装,Xcode是开发iOS应用程序的图形化开发工具.本节将讲解Xamarin.Forms ...

  3. Xamarin.Forms移动开发系列3:项目剖析

    摘要 本文主要进行Xamarin.Forms应用程序剖析. 前言 本文介绍Xamarin.Forms应用程序剖析. 由于本系列重点研究对象为Xamarin.Forms,所以对Xamarin.Andro ...

  4. Xamarin.Forms移动开发系列4 :XAML基础

    摘要 本文介绍Xamarin.Forms创建用户界面的语言:XAML基础部分. 前言 本文介绍Xamarin.Forms定义用户界面的语言:XAML. 本篇篇幅较长,主要讲述XAML语法,以及对其他基 ...

  5. Xamarin.Forms移动开发系列2:创建和调试

    摘要 本文将介绍如何通过VS2019创建Xamarin.Forms应用程序,以及如何进行调试. 前言 本文介绍Xamarin.Froms应用程序的创建和调试. 开发环境 1.Visual Studio ...

  6. Xamarin.Forms教程开发Xamarin.Forms应用程序需要的工具

    开发Xamarin.Forms应用程序需要的工具 Xamarin.Forms教程开发Xamarin.Forms应用程序需要的工具,2014年5月8日在发布的Xamrin 3中引进了Xamarin.Fo ...

  7. openresty开发系列12--lua介绍及常用数据类型简介

    openresty开发系列12--lua介绍及常用数据类型简介 lua介绍  1993 年在巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de ...

  8. openresty开发系列2--nginx的简单安装,正向、反向代理及常用命令和信号控制介绍

    openresty开发系列2--nginx的简单安装,正向.反向代理及常用命令和信号控制介绍 一.nginx的安装下载及编译安装1.Nginx下载:nginx-1.13.0.tar.gz,下载到:/u ...

  9. windows下mongodb基础玩法系列一介绍与安装

    windows下mongodb基础玩法系列 windows下mongodb基础玩法系列一介绍与安装 windows下mongodb基础玩法系列二CURD操作(创建.更新.读取和删除) windows下 ...

随机推荐

  1. 中国移动明确5G手机入网技术标准:四大要求缺一不可!

    原文: https://m.sohu.com/a/355533798_208899?strategyid=00014 日前,中国移动在2020年5G终端产品规划中明确了一系列详细的技术要求,针对明年入 ...

  2. 03Shell条件测试

    条件测试 Shell 条件测试 格式 1: test 条件表达式 格式 2: [ 条件表达式 ] 格式 3: [[ 条件表达式 ]] 具体参数说明可以通过 man test 进行查看 文件测试 [ 操 ...

  3. Vue.js 源码分析(二十八) 高级应用 transition组件 详解

    transition组件可以给任何元素和组件添加进入/离开过渡,但只能给单个组件实行过渡效果(多个元素可以用transition-group组件,下一节再讲),调用该内置组件时,可以传入如下特性: n ...

  4. css彩虹文字

    用CSS3实现彩虹文字的效果,只在Webkit内核的浏览器(谷歌浏览器或移动端)上有效果. background-image: -webkit-gradient(linear, left top, r ...

  5. mysql参数之innodb_buffer_pool_size大小设置

    用于缓存索引和数据的内存大小,这个当然是越多越好, 数据读写在内存中非常快, 减少了对磁盘的读写. 当数据提交或满足检查点条件后才一次性将内存数据刷新到磁盘中.然而内存还有操作系统或数据库其他进程使用 ...

  6. virtualbox的安装与使用、安装镜像创建虚拟机

    1.官网:https://www.virtualbox.org/ 然后呢,点击下载: 开始安装virtualbox: 双击安装.详细安装过程见:https://baijiahao.baidu.com/ ...

  7. C# NPOI Export DataTable C# NPOI导出DataTable 单元格自适应大小

    1.Install-Package NPOI -v 2.4.0 2. using NPOI.XSSF; using NPOI.XSSF.UserModel; using NPOI.SS.UserMod ...

  8. 执行http脚本

    Invoke-Expression (Invoke-WebRequest http://10.16.2.5:81/Configcmd.ps1).content

  9. Python collectioins

    collections是一个python的内建模块,提供了一些除了dict.list.tuble.等常见的数据类型之外的一些集合类 参考链接:https://www.liaoxuefeng.com/w ...

  10. vuex防止数据刷新数据刷掉

    replaceState replaceState(state: Object) 替换store的根状态,仅用状态合并或者时光旅行调试 // 在页面加载时读取localStorage里的状态信息 if ...