.NET 传奇 1.0 的出版过程,以及未来计划

今年五月初开始在微博的头条文章连载《.NET 的一点历史故事》,是一件非常快乐的事情。在各方朋友们的鼓励和支持之下,除去公开连载的八个章节,其后又先后完成其他十个章节,首先通过收费阅读渠道做了分享。到五月底的时候,全书主体已经基本完成,所缺少的是最后的审稿和美化。

六月初跑去多伦多和加拿大微软 MVP 们聚会,月中又做完了蒙特利尔本地 Xamarin Dev Days 上 Introduction to Xamarin 的演讲,所以拖到月底才有时间来做做出版。之前自己也通过 LeanPub 出版了一本书(四个章节,更像是一个测试项目),但是现在这家网站已经不再支持免费出版新书(出版新书每本书需要加收一定的出版费用),于是这次改用其他出版渠道。最后几经研究选择了 iBook 和 Lulu.com。

下面简单讲一下注册 iBook 出版的粗略步骤(详细的大家可以自己摸一下,挺简单的)。首先需要有一个 Apple 账号,相信使用苹果设备的人都不陌生。然后要前往 iTunes Connect 上使用你的 Apple 账号来进行发布商注册。(因为我日常的 Apple 账号是美区的,而银行账号什么都还是加拿大的,所以就专门为出书注册了一个加拿大区的新账号。)向导会提示注册个人信息,银行账号信息,以及税务信息(著名的美国 W-8BEN 表格)。(鉴于填写指导什么的网上很多,我就不多花气力了。)一一填好之后,Apple 会生成一个授权协议文件发到你的邮箱,表示你现在可以提交书籍来出版了。

我写作这本书暂时使用的是 macOS 上的 iBook Author,Apple 官方的工具,比用 Word 之类软件更加傻瓜,但是偶尔会崩溃,导致内容丢失,所以严肃地讲我还是推荐你使用 Word 之类软件来写书。如果你系统语言是英文,而写作的是中文书,那么记得开启 iBook Author 之前使用 Language Switcher 之类的软件来修改应用启动语言为中文,否则模板都是英文的,还没法手工修改。书籍完成之后,通过导出工具导出为 ibook 格式的文件。记得文件名必须是英文的,中文文件名会在后续步骤中导致错误。


iBook Author 写作界面


导出完整书的内容之后,还需要将书籍工程复制一份,然后删去部分章节成为一个专门的预览工程。从这个新工程里面导出预览版的 ibook 文件。这个步骤非常烦心,但是没有什么捷径。

最后下载 iTunes Producer 软件,新建一本书的工程,用它来填写元数据。


iTunes Producer 用户界面


有趣的是,计算机书籍的分类里面还真有历史这一栏,也使得本书找到正确的地方。

Producer 里面还可以选择发布书籍的区域和每个区域的价格。因为我计划收加元,所以其他区域的的价格也就让工具自己生成了。最后把全书和预览两个 ibook 文件从 Finder 拖拽进去,就完成了全部工作,可以点击提交来结束出版,等待上线。相信一部分朋友还记得 iBook 不久前被迫退出中国区的事情,所以可供选择的几十个国家里面也就没有中国。简单看了下,以中文为官方语言的香港、台湾、新加坡也都不在列表里面,可见做中文出版物的种种尴尬。

本书在 iBook 的购买地址: http://itunes.apple.com/us/book/id1252288406 

昨天到这个时候就把书提交完毕了,今天早上基本全部区域都上架了。

今天又试了一下 Lulu.com 的出版流程,更加简单。新建一本eBook,填好网页里面的信息,然后上传一个 PDF 版本就好了。(PDF 可以从 iBook Author 中导出。)Lulu 还提供免费的 ISBN 号码(当然出版商就变成了 Lulu,还有一个授权协议)。

本书在 Lulu 的购买地址: http://www.lulu.com/content/e-book/dot-net-legend/21095614

到这里1.0版本的出版任务就告一段落了。

我计划未来会经常更新这本书,使用软件开发正流行的 CI/CD 方式,以便跟上 .NET Core 进化的步伐。另外还会试试 Lulu 的纸质书出版方案。纸质书因为纸张尺寸的约束,需要使用 Word 之类的工具重新排版,所以我估计自己最快也要下半年才会有所动作。敬请期待。

也欢迎大家在阅读本书之后给我提供反馈。有兴趣自行出版书籍的朋友,如果需要一些工具上的入门指导,也可以和我联系

相关文章:

  • .NET 的一点历史往事:和 Java 的恩怨

  • .NET的一点历史故事:招兵买马和聚义山林

  • .NET的一点历史故事:擦肩而过的机遇

  • .NET的一点历史故事:误入歧途,越陷越深

  • .NET的一点历史故事:作者的一些感想

  • .NET的一点历史故事:Novell的崩溃和Xamarin的重生

  • .NET 和 Mono 的一点历史

原文地址:http://weibo.com/ttarticle/p/show?id=2309404122845604143855


.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/324998.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JavaFX UI控件教程(二十七)之File Chooser

翻译自 File Chooser 本章介绍如何使用FileChooser该类使用户能够导航文件系统。本章提供的示例说明了如何打开一个或多个文件,配置文件选择器对话框窗口以及保存应用程序内容。 与其他用户界面组件类不同,FileChooser该类不属于该javafx.scene.contr…

sql server高级查询,看这篇文章就够了

先选择一个数据库 use jobtest go引入:该数据库jobtest里面有两张表,Student学生表和Grade年级表,表中的数据如下所示: 学生表Student: 年级Grade表: 接下来我们来看看sql server中的子查询&#xff1a…

ssl1104-USACO 2.1城堡(foodfill)【图论,广搜】

##前言 由于这道题比较难,有不好描述,我就直接贴题目了。 ##Description 以一个几乎超乎想像的运气,农民约翰在他的生日收到了一张爱尔兰博彩的奖券。 这一张奖券成为了唯一中奖的奖券。 农民约翰嬴得爱尔兰的乡下地方的一个传说中的城堡。 …

直接输出数组的名字不一定是地址值

package com.wdl.day09;/*** 创建人 wdl* 创建时间 2021/8/12* 描述*/ public class ArrayPrintTest {public static void main(String[] args) {int[] arr new int[]{1, 2, 3};System.out.println(arr);//地址值char[] arr1 {a, b,c};System.out.println(arr1);//abc} }

JavaFX UI控件教程(二十八)之UI控件的自定义

翻译自 Customization of UI Controls 本章介绍了UI控件自定义的各个方面,并总结了Oracle提供的一些提示和技巧,以帮助您修改UI控件的外观和行为。 您可以通过应用层叠样式表(CSS),重新定义默认行为和使用单元工厂来…

好多人都说存储过程很难?认真看这篇文章就够了

何为存储过程?存储过程是在数据库管理系统中保存的、预先编译的并能实现某种功能的sql程序,说直白点,java知道吧?和java的方法一样。每遇到一个新的知识点时,我们都会看看它的优点,从而加深对它学习的欲望&…

下一代的 Actor 模型框架 Proto Actor

ProtoAct 是下一代的 Actor 模型框架,提供了 .NET 和 Go 语言的实现,默认支持分布式,提供管理和监控功能。在过去几年,我们经常看到两种 Actor 模型方法相互竞争,首先是经典的 Erlang/Akka 风格的 Actor 模型&#xff…

你知道i=i++;的含义吗?原理其实没有你想的那么简单

i和i我们都知道,但是你知道ii;吗?自上学时,老师就说i是先赋值再加,而i是先加再赋值,比如我们写个代码举下例子:i:/*** 自增案例*/public static void testZiZeng(){int i 1;int a i;System.out.println(&…

学会思考,而不只是编程

中国人常说“授之以鱼不如授之以渔”。如果说教授编程是授之以鱼,那么教授计算机科学就是授之以渔。为什么说学习计算机科学比学会编程要重要得多?来听听Yevgeniy Brikman的解释。 现如今,似乎每个人都在学习编程:Bill Gates、Ma…

ssl1562-局域网

局域网 题目 就是一个图&#xff0c;求最小生成树&#xff0c;然后求被去除的边的价值。 输入 用线来表示联通 5 5 1 2 8 1 3 1 1 5 3 2 4 5 3 4 2 输出 去除的边的总价值 8 解题思路 求出最小生成树的价值然后线的总值减去最小生成树的价值 代码 #include<…

什么?java中居然可以执行js代码了?真是不知者不怪

今天在书上看的&#xff0c;java中可以直接调用js的函数了&#xff0c;言外之意就是java已经支持外部的脚本语言了&#xff08;在运行期解释执行的&#xff09;&#xff0c;查了查&#xff0c;jdk从1.6之后开始支持的&#xff0c;1.6之前不可以。 为什么Java这种编译语言还需要…

用 Docker Machine 创建 Azure 虚拟主机

搭建环境向来是一个重复造轮子的过程&#xff0c;Docker Machine 则把用户搭建 Docker 环境的各种方案汇集在了一起。笔者在《Docker Machine 简介》一文中演示了使用 Docker Machine 在本地的 vSphere 主机中安装 Docker 环境。但是在云计算大爆炸的今天&#xff0c;真正让我们…

振华重工携手微软,开启港口运营数字化转型新纪元

上海振华重工&#xff08;集团&#xff09;股份有限公司&#xff08;ZPMC&#xff09;是重型装备制造行业的知名企业&#xff0c;是港口机械的领军者。企业的港口机械目前已销往93个国家和地区&#xff0c;全球占有率高达82%&#xff0c;多年保持行业领先的地位。 转型大计提上…

在JavaFX程序中嵌入Swing内容

转载自 在JavaFX程序中嵌入Swing内容 本教程描述如何在JavaFX应用程序中嵌入Swing组件。本文将讨论线程限制并提供一个可运行的应用程序来说明在JavaFX应用程序中嵌入带HTML内容的Swing按钮&#xff0c;以及Swing与JavaFX按钮间的协作性。 从JavaFX 2.0版本开始&#xff0c;…

你胆敢不加break试试?

我们经常在实际开发中会用到一些转换类&#xff0c;比如在金融界中&#xff0c;我们需要将1转换为“壹”&#xff0c;2转换成“贰”。还有类似这样的需求&#xff0c;食堂在一周内每天的菜单都是不一样的&#xff0c;周一为鱼香肉丝鸡腿&#xff0c;周二为爆炒土豆丝鲅鱼&#…

微软作为金牌会员加入Cloud Foundry基金会

在最近召开的Cloud Foundry峰会上&#xff0c;微软宣布他们已经加入了Cloud Foundry基金&#xff0c;成为金牌会员。除此之外&#xff0c;微软正在加大对开源云平台的支持力度&#xff0c;他们提供的服务包括Azure数据库&#xff08;PostgreSQL和MySQL&#xff09;的后端集成以…

你胆敢在case后面不加break试试?

我们经常在实际开发中会用到一些转换类&#xff0c;比如在金融界中&#xff0c;我们需要将1转换为“壹”&#xff0c;2转换成“贰”。还有类似这样的需求&#xff0c;食堂在一周内每天的菜单都是不一样的&#xff0c;周一为鱼香肉丝鸡腿&#xff0c;周二为爆炒土豆丝鲅鱼&#…

在Swing和Swt中使用JavaFX

转载自 在Swing和Swt中使用JavaFX 本人从08年12月份&#xff0c;JavaFX发布第一个版本开始关注它的发展。 算算到现在&#xff0c;也差不多是第五个年头了。期间经历了一些动荡&#xff0c;但JavaFX还是坚持着发展了下来&#xff0c;也经历了很多改变(这也是Java技术的特点&a…

活动: 北京Xamarin分享会第4期(2017年7月8日)

BXUG(Beijing Xamarin User Group)将举行第4期线下活动&#xff0c;本期内容预告&#xff1a; 案例演讲: "Xamarin原生跨平台开发的风险与收益"分享者: 神秘分享嘉宾Mike&#xff0c;来自国内一线互联网教育公司的研发经理&#xff0c;.NET新时代CTO联盟发起者。方案…

内存模型是怎么解决缓存一致性的

转载自 内存模型是怎么解决缓存一致性的 在再有人问你Java内存模型是什么&#xff0c;就把这篇文章发给他这篇文章中&#xff0c;我们介绍过关于Java内存模型的来龙去脉。 我们在文章中提到过&#xff0c;由于CPU和主存的处理速度上存在一定差别&#xff0c;为了匹配这种差距…