Win10论坛

Win10正式版系统下载主题平板

重定义Modern UI,打造完美Windows全新体验

Windows10下载|安装|新手宝典|必备软件

搜索
查看: 1698|回复: 31

[讨论] 【2018/3/17】Nagisa 0.3 开发近况 [复制链接]

14N.M.

UID
3887572
帖子
2515
PB币
138
贡献
0
技术
680
活跃
2453

十周年 活动参与先锋 远景开发达人 Win10先驱者 远景技术达人

发表于 2018-3-17 20:11:54 |显示全部楼层
介绍

Nagisa 是一个开放源代码的支持多语言的下载实用工具,在 Windows 通用平台运行并以MIT许可发行。
Nagisa 采用 C++/CX 编写,只使用 WinRT API、Win32 API、WRL 和 STL,这是为了确保更高的执行速度和较小的程序大小。在保证用户体验的情况下,Nagisa 通过优化运行效率以降低设备的功耗,从而能延长您设备的续航时间且为延缓全球变暖奉献力量。

项目地址:https://github.com/Project-Nagisa/Nagisa
商店地址:https://www.microsoft.com/store/apps/9NFW53N9MFJR
远景帖子:http://bbs.pcbeta.com/viewthread-1775493-1-1.html
智机网帖子:http://bbs.wfun.com/thread-1005444-1-1.html

开发近况
也许有些人发现,自从上个月Nagisa上架后,几天后对一个奔溃率占比60%的bug修复后发布了0.3.23之后,就再也没更新……
也许会有人认为我已经弃坑了,但并不是这样的。
因为0.3的阶段需要挺长一段时间搞定,以下是开发近况:

1. 等 Windows 10, Version 1803 稳定版出现后,我需要评估下使用新版 Windows SDK 的必要性。
因为 Windows 10, Version 1803 的 Windows SDK 内置了可以让开发者使用标准 C++ 语法编写 Windows Runtime 组件甚至整个应用的 C++/WinRT 库,这吸引到了我。
当然,如果可以的话,我想继续保证对 Windows 10, Version 1507 的支持。
毕竟之后版本的其他特性除了 C++/WinRT 外都对我没有多少吸引力,除非 Windows 10 未来某个版本让 Windows Runtime 的 StreamSocket 支持 ALPN 特性,否则呵呵。

2.使用 OpenSSL 作为 Nagisa 的 SSL 和 Hash 库。
因为 Windows 10 现有版本的 Windows Runtime 的 StreamSocket 都不支持 ALPN 特性,这样我就没有办法跟进 HTTP/2 协议的支持,让我这个强迫症患者不爽。
曾经试图使用 hack 法为 Windows Runtime 的 StreamSocket 实现支持 ALPN 特性,但很遗憾失败了。
于是像很讨厌引入外部库的我不得不引入 OpenSSL 作为 Nagisa 的 SSL 库。
虽然后来发现 OpenSSL 还支持计算 Hash 以校验文件的完整性,于是可以共用代码了,笑。
当然,由于微软为 Windows Runtime 应用做的魔改版 OpenSSL 版本不是很新,于是我对其进行了魔改,且改进了 entropyRT 函数的实现以降低开销。
现在已经被微软的魔改版 OpenSSL 库合并了我的成果,详情:https://github.com/Microsoft/openssl/commits?author=MouriNaruto

3.编写自制传输引擎
既然引入了 OpenSSL 解决了 SSL 支持问题后,就可以开干了。
我打算先学习 libcurl 的实现,然后用 StreamSocket 实现 HTTP/FTP/WebSocket 以及对应的基于 SSL 的协议的支持。
随后再去搞 BitTorrent,ED2K 等 P2P 协议的支持。
据我的朋友 vbfool 表示后台套接字代理每次事件触发后都只提供了 30 秒的处理器时间让开发者进行处理,于是对于计划支持多线程和多任务下载的 Nagisa 来说是个不小的考验。
由于 Windows Runtime 并没有提供对 IStorageFile 进行 File Mapping 的接口,估计需要使用一些技巧尽量让系统一次性往文件写入更多的内容以减少系统调用次数,继而减小性能开销和 meltdown 漏洞产生的性能影响。
由于一次事件响应只有30秒的CPU时间,所以性能方面需要特别注意。
当然,我现在先暂停 Nagisa 的开发,因为想等 Windows 10, Version 1803 稳定版出现后,评估下使用新版 Windows SDK 的必要性。(这样可以减少一些无用功)

最后,我需要强调下 UWP 的框架 Windows Runtime 是一个基于 COM 的为 .Net 应用优化的本机框架不是托管框架。
Windows Runtime 原生开发语言是 C++ 而不是 C#。(虽然微软希望大家使用 C# 写 UWP,但是 Windows 10 的 Windows Runtime框架、系统级 UWP 和一些内置非系统级 UWP 是用 C++ 实现的。)


毛利


3

查看全部评分

14N.M.

UID
3887572
帖子
2515
PB币
138
贡献
0
技术
680
活跃
2453

十周年 活动参与先锋 远景开发达人 Win10先驱者 远景技术达人

发表于 2018-3-17 20:12:05 |显示全部楼层
二楼备用

Rank: 5Rank: 5Rank: 5

UID
3056648
帖子
616
PB币
406
贡献
0
技术
49
活跃
489

I'm Windows Phone用户

发表于 2018-3-17 20:25:08 |显示全部楼层
Nagisa? 活捉一个Key 厨~~

罗马元老院元帅

Rank: 9

UID
35606
帖子
2131
PB币
67
贡献
0
技术
4
活跃
716
发表于 2018-3-17 20:41:45 |显示全部楼层
膜拜,佩服,不懂

水神

Rank: 7Rank: 7Rank: 7

UID
893451
帖子
2182
PB币
2397
贡献
0
技术
1
活跃
1082
发表于 2018-3-17 20:57:02 |显示全部楼层
最讨厌uwp了
所有玩意全卸载了,又没触摸

Rank: 7Rank: 7Rank: 7

UID
4811656
帖子
1525
PB币
2010
贡献
0
技术
0
活跃
641
发表于 2018-3-17 21:03:52 来自手机 |显示全部楼层
继续观望观望。加油!
头像被屏蔽

一个无聊又无趣的闲人

UID
4819031
帖子
833
PB币
1402
贡献
0
技术
0
活跃
343
发表于 2018-3-17 21:07:16 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

14N.M.

UID
3887572
帖子
2515
PB币
138
贡献
0
技术
680
活跃
2453

十周年 活动参与先锋 远景开发达人 Win10先驱者 远景技术达人

发表于 2018-3-17 21:56:27 来自手机 |显示全部楼层
本帖最后由 Mouri_Naruto 于 2018-3-17 22:35 编辑
928836432 发表于 2018-3-17 20:25
Nagisa? 活捉一个Key 厨~~

关于使用Nagisa这个名字的灵感,更多来源于《暗杀教室》里面的

14N.M.

UID
3887572
帖子
2515
PB币
138
贡献
0
技术
680
活跃
2453

十周年 活动参与先锋 远景开发达人 Win10先驱者 远景技术达人

发表于 2018-3-17 21:57:11 来自手机 |显示全部楼层
isshine 发表于 2018-3-17 20:57
最讨厌uwp了
所有玩意全卸载了,又没触摸

哈哈,uwp的优势不仅仅是触摸
还有就是下载方便和相对纯净(uwp桌面转制应用除外)
头像被屏蔽

Rank: 1

UID
825288
帖子
67
PB币
0
贡献
0
技术
0
活跃
92
发表于 2018-3-17 22:15:39 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

Rank: 5Rank: 5Rank: 5

UID
2844848
帖子
586
PB币
323
贡献
0
技术
2
活跃
1329

Win10先驱者

发表于 2018-3-17 23:15:15 |显示全部楼层
现在支持那些协议的下载?支持BT/磁链吗?支持ed2k吗?

14N.M.

UID
3887572
帖子
2515
PB币
138
贡献
0
技术
680
活跃
2453

十周年 活动参与先锋 远景开发达人 Win10先驱者 远景技术达人

发表于 2018-3-17 23:48:34 |显示全部楼层
l451841014 发表于 2018-3-17 23:15
现在支持那些协议的下载?支持BT/磁链吗?支持ed2k吗?

现在由于是用系统自带的后台传输
于是只支持HTTP/FTP/WebSocket及对应的SSL加密协议

0.3的目标使用自己的实现替代后台传输
然后0.4开始添加其他协议支持

Rank: 1

UID
4837009
帖子
24
PB币
0
贡献
0
技术
0
活跃
94
发表于 2018-3-17 23:54:17 |显示全部楼层
这个工具十分不错呢 目前以搬运至针针小站 地址是https://hyejeong.cn/Nagisa   已注明出处和作者 版主不会介意吧

14N.M.

UID
3887572
帖子
2515
PB币
138
贡献
0
技术
680
活跃
2453

十周年 活动参与先锋 远景开发达人 Win10先驱者 远景技术达人

发表于 2018-3-18 00:03:26 |显示全部楼层
本帖最后由 Mouri_Naruto 于 2018-3-18 00:04 编辑
针针小站 发表于 2018-3-17 23:54
这个工具十分不错呢 目前以搬运至针针小站 地址是https://hyejeong.cn/Nagisa   已注明出处和作者 版主不会 ...

当然没有问题,还有作者最好标M2-Team,虽然直接标我的ID问题也不大

Rank: 1

UID
4837009
帖子
24
PB币
0
贡献
0
技术
0
活跃
94
发表于 2018-3-18 00:27:05 |显示全部楼层
Mouri_Naruto 发表于 2018-3-18 00:03
当然没有问题,还有作者最好标M2-Team,虽然直接标我的ID问题也不大

按照您的要求更改了
在您的Github里面 Unsupport的项目里的 Cortana Integration 应该如何翻译呢? 大概意思是 Cortant通知权限 吗?

14N.M.

UID
3887572
帖子
2515
PB币
138
贡献
0
技术
680
活跃
2453

十周年 活动参与先锋 远景开发达人 Win10先驱者 远景技术达人

发表于 2018-3-18 01:14:05 |显示全部楼层
针针小站 发表于 2018-3-18 00:27
按照您的要求更改了
在您的Github里面 Unsupport的项目里的 Cortana Integration 应该如何翻译呢? 大概 ...

嗯,我看到了,谢谢

Cortana Integration 即 Cortana 集成
也就是支持通过 Cortana 语音指令使用 Nagisa 的意思

Rank: 7Rank: 7Rank: 7

UID
365049
帖子
3005
PB币
3897
贡献
0
技术
0
活跃
1467
发表于 2018-3-18 07:54:26 |显示全部楼层
支持 鼓励


Rank: 7Rank: 7Rank: 7

UID
111453
帖子
2427
PB币
10821
贡献
0
技术
11
活跃
1210

十一周年 7周年庆典勋章

发表于 2018-3-18 08:47:44 |显示全部楼层
牛人啊:)

Rank: 7Rank: 7Rank: 7

UID
111453
帖子
2427
PB币
10821
贡献
0
技术
11
活跃
1210

十一周年 7周年庆典勋章

发表于 2018-3-18 08:48:01 |显示全部楼层
跨操作系统的有兴趣吗?

14N.M.

UID
3887572
帖子
2515
PB币
138
贡献
0
技术
680
活跃
2453

十周年 活动参与先锋 远景开发达人 Win10先驱者 远景技术达人

发表于 2018-3-18 08:55:11 来自手机 |显示全部楼层
wildfire 发表于 2018-3-18 08:48
跨操作系统的有兴趣吗?

先把Windows版搞定后再说
也许会有Linux字符界面版本
关闭

站长推荐

推荐好友加入远景可拿奖励
推荐好友进远景,可以拿3重奖励,PBB,威望,勋章,通通有~ 本帖只限回复推荐用
回顶部
Copyright (C) 2005-2018 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛 | 电脑硬件 | 安卓软件