作者e23882 (呆呆要不要买降有)
看板C_Sharp
标题Re: [问题] 有没有着重在GUI方面的书 Winform WPF
时间Tue Sep 8 20:21:19 2020
自己也是写WPF的,写好久了也走了很多弯路,来分享一下技能树怎麽发展
# 教材
书的话我蛮推荐这本的 "WPF 编程宝典 - 使用 C# 2012 和 .NET 4.5 (第4版)"
https://www.tenlong.com.tw/products/9787302327738?list_name=c-wpf
写的比较深比较深,但是范例多,概念也完整
还有一本日本人写的 "WPF 与 XAML 应用程式开发讲座"
这本比较简单,我一开始学DataBindind的时候觉得很抽象,一直搞不懂
有一天翻一翻突然就了解了
如果刚开始学写UI建议就直接从WPF开始了
WPF一直在用的Xaml、Databinding、MVVM
在之後微软.net6的MAUI也用的到可以无痛接轨
现在一些网页的前端框架、APP也都有用到DataBinding跟MVVM的设计
学了之後写其他的前端框架也不会从0开始,CP值很高
而且WPF有很多漂亮的UI库,分享一下我自己常用的几个
MahApps
https://mahapps.com/
MaterialDesignInXamlToolkit
https://github.com/MaterialDesignInXAML/MaterialDesignInXamlToolkit
Live Chart
https://lvcharts.net/
==========================================================
# 环境
下载.net core3.1的SDK
visual studio 2019 community
课金玩家我建议可以买个Rider,人家还在一行一行慢慢打的时候
你alt + enter enter物件建构子生出来了(这个visual studio好像也有)
移到类别上 Ctrl+I Alt+P 物件介面写好了
找不到快捷键Shift按两下直接用搜寻的
live template, qq tab常常在写code出现了
人家用走的去打怪你跳着打,超级chill
练熟的话写扣的过程中手都可以不用离开键盘
再配一把青轴键盘,啪啪啪啪啪啪啪,邻居听到了都会觉得自卑
这是我之前练习手不离开键盘录的影片
https://www.youtube.com/watch?v=Pd8vVcB1l6w
Rider - 尊爵不凡的您值得拥有
https://imgur.com/a/bt8p62W
# 学习
一开始就照着书上走
知道什麽是Xaml.布局元件.元件.属性.事件.委派事件.依赖属性
之後了解一下ViewModel、DataBinding、Command、Interaction、MVVM架构
****写的时候忘记写到了,补充一下****
xaml的话一定要再学一下DataTemplate、ControlTemplate、Converter
C# 的话还有一个WPF专用的ObservableCollection<T> 一些常用的介面知道在干嘛
INotifyPropertyChanged、IValueConverter、ICommand
还有NLog
***********************************
在这个阶段会深入了解C#,什麽变数方法类别介面回圈都要在这个时候学好学扎实
这时候你可以会需要一本专门在讲C#的书,但因为我从来没看过这种书
所以可能要请其他人推荐你一下
到这里其实已经可以用WPF满足你大部分的需求了
你会觉得自己hen棒开始想要做自己的东西,可能会开始学资料库存一些要用的资料
你可以再继续深入了解WPF 学一些Storyboard、Trigger、Resource、Style、
刻自己的元件....
这些书上都有教,但是工作比较少用到这一块,尤其是如果你用别人写好的样式库的话
基本上那些库可以满足你大部分UI滑来滑去的需求
或是开始学资料库相关的知识
这边我要推荐几个我觉得用起来很爽,效果也很帅的UI库
Avalondock - WPF ToolKit
https://imgur.com/a/0qzInOS
可以让UI的某个部分拉出来离开主视窗,还可以再拼回去不同的位置,很爽
CefSharp
https://reurl.cc/Kjbv9m
可以在WPF里面嵌入网页,我没记错这个是chromium的内核,跟chrome好像是同一个
MahApps - Flyout
https://imgur.com/a/6I9e3QU
UI会飞出乃...
Notifycation
https://imgur.com/a/zI87rWs
可以在萤幕上弹出来OO
Diffviewer
其实就是上面Avalondock的图片里面的东西,他可以比对文字的差异
很方便
不过我强烈建议在学资料库之前可以先学个测试框架 MSTest、NUnit、XUNit
不然之後开始有资料进来UI常常会出现一些你没办法预期的行为
会花很多时间在debug,人生苦短单元测试可以帮你节省很多debug时间
资料库的话应该会学几个常用的 SQL Server、MySQL、SQLite
这边强烈建议就直接连ORM框架也学了 EF、Dapper
学会之後可以再学个.net core的Webapi
.net core的注入依赖会让你在程式的设计上有更多的想法
学了webapi总不会希望服务永远都架在自己开发的电脑上
你可以学一下怎麽架server,怎麽用装win server、linux
课金的同学可以直接用azure、GCP、或是跟其他主机商租主机
如果你的服务真的写得好,你可能会面临常常要发布到新的环境上给别人用
每次都会浪费你很多时间,你可以学一下怎麽用docker打包跟部属你的环境
不过因为我很懒惰一直都没有去学这个,所以不能给你什麽建议
再来还有一些什麽负载平衡、缓存、CICD就要等你学会之後上来教大家了
最後用我从大陆人那边学来的一句话做这个学习的总结
手在键盘 心中有图 一把梭
※ 引述《nietz (菜嘎舞春)》之铭言:
: 大家好
: 我是新手,且算是业余兼自学的,因为工作上是少部分,并非常常在写程式
: 一般市面上的书(英文、中文)似乎都是在语法上着墨较多,对GUI方面仔细说明的
: 书比较少...
: 小弟好奇是不是有比较针对GUI这方面的书籍? 我用Winform、但不排除其他...
: 或者应该这样问,各位前辈是否不大需要书,并如何在GUI这方面学习成长的?
: 谢谢~
--
◢████◤◢███◤ ╭═╮
◢████◤◢███◤ ║˙║
◢█████ ████ < ˙║
▉█ ▉◤
█ ████ ║˙║
◢▇▇██
██
█████
◢ ╰═╯
████◤
█◤
████◢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 211.75.101.50 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_Sharp/M.1599567686.A.4B2.html
1F:推 fattcs: 讲得很详细 推一个 09/08 21:03
2F:推 s4300026: 推的我都想买了 09/08 23:02
3F:推 Isaea: 感谢分享 09/09 08:29
4F:推 kobe8112: 推好文~ 09/09 08:49
5F:推 Litfal: 这些还没学完就可以转职了XD 09/09 22:34
正常需求都是 N年WPF开发经验 熟MVVM设计 熟EF GIT SQL WEBAPI.WCF
6F:→ testPtt: 有没有直接支援svg的open source lib? 09/09 23:02
没有这方面的经验耶,可能要google一下
7F:推 coder5566: 好文推 09/10 12:36
8F:推 dayoro898: 推一个,这个技能树方向很棒 09/10 17:36
9F:推 APTON: IDE不想离开vs的话,用resharper也不错喔。Jetbrain公司的 09/11 06:43
10F:→ APTON: 东西真的可以节省很多时间 09/11 06:43
11F:推 APTON: 感谢推荐wpf的书!我也是类似的学习路径,只是工作需要, 09/11 06:55
12F:→ APTON: 先去学web api和ef。一直不知道怎麽补上wpf这块,终於找到 09/11 06:55
13F:→ APTON: 一个入口了! 09/11 06:55
我记得他们在工程师节的都会有一些杀到流血的折扣
※ 编辑: e23882 (211.75.101.50 台湾), 09/11/2020 09:49:55
14F:推 sno2: 厉害!感谢分享 09/13 18:23