Jisdo

C# тред

Dec 1st, 2020 (edited)
615
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Прошлый тред: ???
  2.  
  3. Литература вторым постом
  4.  
  5. [b]1. Ресурсы:[/b]
  6. — https://dotnet.microsoft.com/learn
  7. — https://docs.microsoft.com/ru-ru/dotnet/csharp/
  8. — https://metanit.com/
  9.  
  10. [b]2. Онлайн-компиляторы:[/b]
  11. — https://ideone.com/
  12. — https://dotnetfiddle.net/
  13.  
  14. [b]3. WinForms или WPF?[/b]
  15. Зависит от задачи. Для небольших проектов, скорее всего, будет достаточно винформочек. В случае, если разрабатываемое приложение достаточно серьёзное, то возможно его стоит писать с использованием WPF. WPF очень хорошо работает с паттерном MVVM ( https://ru.wikipedia.org/wiki/Model-View-ViewModel ), и позволяет пилить очень кастомизированные интерфейсы с помощью XAML, что в случае с WinForms делать намного сложнее.
  16.  
  17. [b]4. Мне тут [i]знакомый_нейм[/i] сказал, что C# умирает, это правда? Может не стоит его учить?[/b]
  18. Неправда. C# активно развивается, недавно вышел .NET 5 и С# 9.0. Дотнет стал полностью опенсорсным и кроссплатформенным. В том же энтерпрайзе он очень даже востребован.
  19.  
  20. [b]5. Какую IDE выбрать?[/b]
  21. Для Windows самым очевидным вариантом будет [b]Visual Studio[/b] ( https://visualstudio.microsoft.com/ru/downloads/ ). Бесплатной Community-версии более, чем достаточно для большинства задач. Также есть версия для macOS.
  22. Кроссплатформенный полуредактор/полуIDE [b]VS Code[/b] ( https://code.visualstudio.com/ ).
  23. Кроссплатформенный IDE [b]Rider[/b] ( https://www.jetbrains.com/rider/ ).
  24. Также существуют C#-плагины для Atom и Sublime Text, но функциональность там достаточно сильно урезана.
  25.  
  26. [b]6. С# для мобильной разработки[/b]
  27. https://dotnet.microsoft.com/apps/xamarin
  28.  
  29. Новые возможности C# 9.0: https://devblogs.microsoft.com/dotnet/c-9-0-on-the-record/
  30.  
  31. Текст шапки: https://pastebin.com/pbK8CGqw
  32.  
  33. ======= ВТОРОЙ ПОСТ =======
  34.  
  35. [b]7. Что почитать?[/b]
  36. — [i]The C# Player's Guide, третье издание (RB Whitaker)[/i] — отличная книга для ньюфагов, всё расписывается довольно подробно, очень много примеров кода.
  37. — [i]C# 9 and .NET 5 – Modern Cross-Platform Development (Mark Price)[/i] — подойдёт для ознакомления с платформой. Затрагивает все технологии, имеющиеся в .NET (веб, мобильная разработка, машинное обучение), ни во что не углубляясь.
  38. — [i]C# 8.0 in a Nutshell (Joseph Albahari и Eric Johannsen)[/i] — огромнейший справочник, over 1000 страниц, покрывает почти все области, начиная с синтаксиса и базовых типов и заканчивая интеропом и рослином.
  39. — [i]C# 8.0 Pocket Reference (Joseph Albahari и Ben Albahari)[/i] — просто выжимка из книги сверху, можно всегда держать рукой.
  40. — [i]Pro C# 8 with .NET Core 3 (Andrew Troelsen)[/i] — 1600-страничный учебник по шарпу, покрывает BCL, WPF и ASP.NET, небо и даже аллаха.
  41.  
  42. [b]8. Более хардкорный материал[/b]
  43. — [i]CLR via C# (Jeffrey Richter)[/i] — это классика, это знать надо.
  44. — [i]C# in Depth (Jon Skeet)[/i] — написана в виде истории версий C#, начиная с C#1.0. Описываются возможности, которые были добавлены в определенной версии и далее достаточно хардкорно и подробно эти возможности расписываются.
  45. — [i]Writing High Performance .NET Code (Ben Watson)[/i] — отличная книга. Фокусируется на методах оптимизации приложений, профилировании. Крутейшая и достаточно детальная глава по GC. Рассматриваются достаточно известные проблемы вроде "for vs foreach", "класс vs структура", кастинг, боксинг, перфоманс регулярок, коллекций, исключений. Короче всё, что нужно, чтобы вам [i]перезвонили[/i].
  46.  
  47. [b]9. Литература по WPF[/b]
  48. — [i]Pro WPF 4.5 in C# (Matthew MacDonald)[/i]
  49. — [i]Windows Presentation Foundation 4.5 Cookbook (Pavel Yosifovich)[/i]
  50.  
  51. [b]10. Литература по ASP.NET[/b]
  52. — [i]Pro ASP.NET Core 3 (Adam Freeman)[/i]
  53. — [i]Professional ASP.NET MVC 5 (Jon Galloway, Brad Wilson, K. Scott Allen, David Matson)[/i]
  54.  
  55. [b]11. Литература по асинхронности и параллелизму[/b]
  56. — [i]Concurrency in C# Cookbook (Stephen Cleary)[/i] — книга, написанная в формате "проблема - решение". Кроме базовых вещей, вроде асинков и параллелизма рассматриваются TPL Dataflows, Rx (реактивные расширения), тестирование всего этого асинхронного добра, ну и работа этого всего на более низких уровнях абстракции.
  57. — [i]Multithreading with C# Cookbook (Eugene Agafonov)[/i] — в основном ничего интересного, но есть довольна неплохая глава про синхронизацию, пусть и не слишком детальная.
  58. — [i]Pro Asynchronous Programming with .NET (Richard Blewett, Andrew Clymer)[/i] — опять же, интересного немного, но неплохие главы про асинхронность + UI и анализ дампов памяти в windbg.
  59.  
  60. [b]12. Литература по мобильной разработке[/b]
  61. — [i]Creating Mobile Apps with Xamarin.Forms (Charles Petzold)[/i]
  62. — [i]Xamarin.Forms Projects (Johan Karlsson, Daniel Hindrikes)[/i]
  63. — [i]Mastering Xamarin.Forms (Ed Snider)[/i]
  64.  
  65. [b]13. Литература по машинному обучению[/b]
  66. — [i]Introduction to Neural Networks for C# (Jeff Heaton)[/i] — изучение нейронных сетей с примерами кода на шарпе. Под конец пишем программу для распознавания символов и нейроботов.
  67. — [i]Machine Learning Using C# Succinctly (James D. McCaffrey)[/i] — довольная коротенькая книга на тему машинного обучения с примерами кода на C#. Ничего особого: k-средние, классификация, наивный байес, но с кодом, который всегда можно поразбирать, если что неясно.
  68.  
  69. [b]14. Разработка игр[/b]
  70. Unity-тред в /gd/
  71.  
  72. [b]15. Но я не знаю английский, как я буду это все читать?[/b]
  73. На некоторые из перечисленных книг есть переводы, которые можно найти на том же рутрекере, однако зачастую эти переводы неактуальны и/или содержат неточности. Кроме того, переводы обычно пилятся только для нескольких самых популярных книг, более-менее серьёзный материал не переводят. Всегда можно сесть со словарем и понемногу читать, переводя непонятные фрагменты. Это очень полезно, так как в любом случае в программировании без знания английского делать нечего. Если очень хочется, то гуглить по запросам: "C# 7.0. Справочник. Полное описание языка", "C# для профессионалов. Тонкости программирования", "Программирование на платформе Microsoft .NET Framework 4.5 на языке C#".
  74.  
  75. [b]16. Что еще нужно знать, чтобы взяли работать за еду?[/b]
  76. — [i]Базы данных[/i] — подойдет любая книга по MSSQL/MySQL/PostgreSQL. DDL, DML. Джойны, индексы, нормализация. В контексте шарпа еще ORM: Entity Framework, Dapper.
  77. — [i]Системы контроля версий[/i] — обычно гита достаточно: add/commit/push, merge, rebase, checkout, remote, diff, разрешение конфликтов.
  78. — [i]GitHub[/i] — issues, пулл-реквесты, теги, релизы, Actions.
  79. — [i]Алгоритмы[/i] — сортировка, поиск, оценка сложности алгоритмов, рекурсия, алгоритмы на строках.
  80. — [i]Структуры данных[/i] — связанные списки, деревья (бинарные, красно-чёрные, b-деревья), хеш-таблицы, графы.
  81. — [i]Если идти в веб[/i] — HTML, CSS, JavaScript, веб-сокеты, REST, JS-фреймворки (Angular, React, Vue).
  82. — Паттерны проектирования, стиль кода, архитектура приложения, внедрение зависимостей, MVVM (если хочется в WPF), SOLID.
  83.  
  84. [b]17. Я не умею читать, что посмотреть?[/b]
  85. — C# Fundamentals: Development for Absolute Beginners — https://goo.gl/meyyxO
  86. — Набор курсов по C# от O'Reilly Media (28 часов, на английском) — http://rutracker.org/forum/viewtopic.php?t=5082978
  87. — Канал по C# IAmTimCorey (на английском) — https://www.youtube.com/user/IAmTimCorey
RAW Paste Data