View difference between Paste ID: YJFQKsNm and 6BqFpnEL
SHOW: | | - or go back to the newest paste.
1
Существует множество различных платформ и языков программирования, однако среди них нет более элитного, чем C#. Это поистине язык богов, сочетающий в себе простоту использования с поистине неограниченными возможностями. Знание C# — прекрасный детектор современного, умного и успешного человека. Изучение платформы .NET безошибочно указывает на успешного в будущем человека.
2
ITT элита продолжает обсуждает будущее этого прекрасного и современного продукта компании Microsoft. Только в этом треде элитные разработчики ответят на самые острые вопросы индустрии.
3
4
Литература вторым постом
5
6
[b]1. Ресурсы:[/b]
7
- http://stackoverflow.com/questions/tagged/c%23
8
- http://www.tutorialspoint.com/csharp/
9
- http://professorweb.ru
10
- https://metanit.com/
11
- http://net-informations.com
12
- http://habrahabr.ru/hub/csharp/
13
14
[b]2. Онлайн-компиляторы:[/b]
15
- https://dotnetfiddle.net/ - возможно лучший вариант. Встроено немного убогое, но все-таки автодополнение и проверка синтаксиса.
16
- http://ideone.com/
17
- http://csharppad.com/
18
- http://www.tutorialspoint.com/compile_csharp_online.php
19
- http://rextester.com/l/csharp_online_compiler
20
21
[b]3. WinForms или WPF?[/b]
22
Зависит от задачи. Для небольших проектов, скорее всего, будет достаточно винформочек. В случае, если разрабатываемое приложение достаточно серьёзное, то возможно его стоит писать с использованием WPF. WPF очень хорошо работает с паттерном MVVM ( https://ru.wikipedia.org/wiki/Model-View-ViewModel ), и позволяет пилить очень кастомизированные интерфейсы с помощью XAML, что в случае WinForms, делать намного сложнее.
23
24
[b]4. Мне тут [i]знакомый_нейм[/i] сказал, что C# умирает, это правда? Может не стоит его учить?[/b]
25
Неправда. C# довольно активно развивается, недавно вышла третья версия .NET Core фреймворка и восьмая версия языка. Весь дотнет понемногу становится опенсорсным, а ASP.NET становится независимым от платформы. В некотором смысле понемногу вымирают десктопные приложения с развитием веб-технологий, но в том же энтерпрайзе он еще очень даже востребован.
26
27
[b]5. Какую ИДЕ выбрать?[/b]
28
Для Windows самым очевидным вариантом будет [b]Visual Studio[/b] (https://www.visualstudio.com/en-us/downloads/download-visual-studio-vs.aspx). Студия распространяется в двух редакциях: бесплатная коммьюнити-версия и платный энтерпрейс эдишн. В большинстве случае будет достаточно Community-версии: она поддерживает и C#, C++, VB.NET и F#, а так же имеет возможность установки дополнений
29
Для мака и никсов самый юзабельный вариант - [b]MonoDevelop[/b] ( http://www.monodevelop.com/download/ ).
30
Для vim можно использовать [b]OmniSharp[/b] ( https://github.com/OmniSharp/omnisharp-vim ).
31
Кросплатформенный полуредактор/полуIDE [b]VS Code[/b] ( https://www.visualstudio.com/en-us/products/code-vs.aspx )
32
Также существуют плагины для Atom'а и Sublime Text, но функциональность там достаточно сильно урезана.
33
Кроме того, в данный момент JetBrains активно пилит свою IDE для шарпа ([b]Project Rider[/b]), вероятно в ближайшее время станут доступны первые EAP. IDE заявлена как кросплатформенная, со всем решарпер-функционалом, поддержкой отладки, моно и .net core.
34
[b]SharpDevelop[/b] - еще одна IDE для C#, отличается малым размером (около 20мб) и опциональной портабельностью, при этом имея дизайнер WinForms и WPF, а также интеграцию с FxCop, StyleCop и прочими ништяками. Если хочется что-то по быстрому набросать, а выкачивать гигабйты нет желания, то возможно SharpDevelop будет лучшим вариантом.
35
36-
Если нужны инструменты для разработке под мобилы, ставь сразу VS2015 и при установке выбирай все нужные компоненты.
36+
37-
Больше информации тут - https://msdn.microsoft.com/ru-ru/library/dn771552.aspx
37+
Если нужны инструменты для разработке под мобилы, смотри сюда - https://docs.microsoft.com/ru-ru/visualstudio/cross-platform/cross-platform-mobile-development-in-visual-studio?view=vs-2019.
38
[b]Из актуальной литературы[/b]
39
- Xamarin Mobile Application Development
40
- Xamarin Essentials
41
42
[b]7. Дополнительные инструменты для разработки на C#[/b]
43
[i]LINQPad[/i] - сорт оф REPL, с возможностью быстрого подключения к БД и удобной визуализацией данных
44
[i]dnSpy[/i] - декомпилятор, малоизвестный форк ILSpy, где реализована возможность модификации IL-кода прямо в EXE и DLL файлах, отладка IL-кода и много других фич для reverse engineering'а. Плюс няшные темы как в студии
45
[i]dotPeek[/i] - бесплатный декомпилятор от JetBrains
46
[i]scriptcs[/i] - для запуска C# кода как скриптов, возможность использовать как REPL
47
48
[b]8. Расширения для студии[/b]
49
[i]ReSharper[/i] - одно из известнейших. Рефакторинги, умный автокомплит, настраиваемый стиль кода. Платный, но можно стянуть с торрентов
50
[i]Supercharger[/i] - показывает "карту" с классами, методами и всем остальным сбоку от кода с возможностью прыгать по ним
51
[i]Indent Guides[/i] - показывает вертикальные линии на каждом уровне отступов.
52
[i]Format document on Save[/i] - форматирует код каждый раз при сохранении документа
53
[i]Code alignment[/i] - Выравнивает код по указанным символам. Удобно, например, при инициализации словарей или в перечислениях
54
55
Обзор Roslyn: https://github.com/dotnet/roslyn/wiki/Roslyn%20Overview
56-
Новые возможности C# 6.0: https://github.com/dotnet/roslyn/wiki/New-Language-Features-in-C%23-6
56+
Новые возможности C# 8.0: https://docs.microsoft.com/ru-ru/dotnet/csharp/whats-new/csharp-8
57
58
[B]ПРИНИМАЮТСЯ ПРЕДЛОЖЕНИЯ ПО ШАПКЕ[/B]
59
60-
Код этой шапки: https://pastebin.com/i05YUjR1
60+
Код этой шапки: https://pastebin.com/YJFQKsNm
61
62
Прошлый тред тонет здесь: ???
63
64
======= ВТОРОЙ ПОСТ =======
65
66
[b]9. Что почитать?[/b]
67
- [i]The C# Player's Guide, второе издание (RB Whitaker)[/i] - отличная книга для ньюфагов в шарпе, все расписывается довольно подробно, очень много примеров кода.
68-
- [i]C# 6.0 in a Nutshell (Joseph Albahari и Ben Albahari)[/i] - огромнейший справочник, over 1000 страниц, покрывает почти все области, начиная с синтаксиса и базовых типов и заканчивая интеропом и рослином
68+
- [i]C# 7.0 in a Nutshell (Joseph Albahari и Ben Albahari)[/i] - огромнейший справочник, over 1000 страниц, покрывает почти все области, начиная с синтаксиса и базовых типов и заканчивая интеропом и рослином. Уже появилось издание для 8.0, однако в интернетах пока его нет.
69-
- [i]C# 6.0 Pocket Reference (Joseph Albahari и Ben Albahari)[/i] - просто выжимка из справочника, можно всегда держать рукой
69+
- [i]C# 7.0 Pocket Reference (Joseph Albahari и Ben Albahari)[/i] - просто выжимка из справочника, можно всегда держать рукой
70-
- [i]C# 6.0 and the .NET 4.6 Framework (Andrew Troelsen)[/i] - 1600-страничный учебник по шарпу, покрывает BCL, WPF и ASP.NET, небо и даже аллаха.
70+
- [i]Pro C# 7: With .NET and .NET Core (Andrew Troelsen)[/i] - 1600-страничный учебник по шарпу, покрывает BCL, WPF и ASP.NET, небо и даже аллаха.
71
- [i]C# 6.0 Cookbook (Jay Hilyard и Stephen Teilhet)[/i] - книга в формате "проблема-решение", можно пройтись по оглавлению, найти интересные проблемы и попыпаться самому решить, а уже потом посмотреть представленное решение. Книга скорее не для ньюфагов, а для тех, кто уже знаком с шарпом.
72
73
[b]10. Более хардкорный материал[/b]
74
- [i]CLR via C# (Jeffrey Richter)[/i] - это классика, это знать надо.
75
- [i]C# in Depth (Jon Skeet)[/i] - написана в виде истории версий C#, начиная с C#1.0. Описываются возможности, которые были добавлены в определенной версии и далее достаточно хардкорно и подробно эти возможности расписываются.
76
- [i]Writing High Performance .NET Code (Ben Watson)[/i] - охуенная книга. В основном фокуируется на оптимизации дотнет-говна. Методы оптимизации проложений, профилирование, вот это все. Крутейшая и достаточно детальная глава по GC. Рассматриваются достаточно известные проблемы вроде "for vs foreach", "класс vs структрура", кастинг, боксинг, перфоманс регулярок, коллекций, исключений. Короче все что нужно, [i]чтобы вам перезвонили[/i].
77
78
79
[b]11. Хочу еще хардкорней[/b]
80
- [i]C# Deconstructed (Mohammad Rahman)[/i] - введение в CLR, модели памяти и выполнения в CLR, байтоебство, JIT. Книга достаточно коротенькая, менее 200 страниц, можно осилить за пару дней. Желателен опыт работы WinDbg и понимание устройства PE-формата.
81
- [i]Expert C# 5.0 with .NET 4.5 Framework[/i] - еще одна книга этого автора, в этот раз намного длиннее. Очень много IL, анализа и разбора стандартной либы (те же коллекции), разбор ивентов, дегегатов, асинхронности etc. на уровне байткода.
82
- [i].NET IL Assembler (Serge Lidin)[/i] - ILёбство, во многих местах повторяет документацию MSDN, но при этом имеет много интересных дополнений и заметок. Кроме того все неплохо структуировано и разложено по красивым табличкам
83
84
[b]12. Литература по WPF[/b]
85
Из более-менее актуального можно выделить пару книг:
86
- [i]Pro WPF 4.5 in C# (Matthew MacDonald)[/i]
87
- [i]Windows Presentation Foundation 4.5 Cookbook (Pavel Yosifovich)[/i]
88
89
[b]13. Литература по ASP.NET[/b]
90
- [i]Professional ASP.NET MVC 5 (Jon Galloway, Brad Wilson, K. Scott Allen, David Matson)[/i]
91
- [i]Pro ASP.NET MVC 5 Platform (Adam Freeman)[/i]
92
- [i]Beginning ASP.NET for Visual Studio 2015 (William Penberthy)[/i]
93
94
[b]14. Литература по асинхронности, параллелизму и всему такому[/b]
95
- [i]Concurrency in C# Cookbook (Stephen Cleary)[/i] - книга, написанная в формате "проблема - решение". Кроме базовых вещей, вроде асинков и параллелизма рассматриваются TPL Dataflows, Rx (реактивные расширения), тестирование всего этого асинхронного добра, ну и работа этого всего на более низких уровнях абстракции
96
- [i]Multithreading in C# 5.0 Cookbook[/i] - в основном ничего интересного, но есть довольна неплохая глава про синхронизацию, пусть и не слишком детальная
97
- [i]Pro Asynchronous Programming with .NET (Richard Blewett, Andrew Clymer)[/i] - опять же, интересного немного, но неплохие главы про асинхронность + UI и анализ дампов памяти в windbg
98
99
[b]15. Литература не по шарпу, но так или иначе связанная с языком[/b]
100
[i]C# Game Programming Cookbook for Unity 3D (Jeff W. Murray)[/i] - разработка на шарпе под Unity
101
[i]Introduction to Neural Networks with C# (Jeff Heaton)[/i] - изучение нейронных сетей с примерами кода на шарпе. Под конец пишем программу для распознавания символов и нейроботов.
102
[i]Machine Learning Using C# Succinctly (James D. McCaffrey)[/i] - довольная коротенькая книга на тему машинного обучения с примерами кода на C#. Ничего особого: k-средние, классификация, наивный байес, но с кодом, который всегда можно поразбирать, если что неясно.
103
104
[b]16. Но я не знаю английский, как я буду это все читать?[/b]
105
На некоторые из перечисленных книг есть переводы, которые можно найти на том же рутрекере, однако, зачастую эти переводы неактальны, содержат неточности, и не самые понятные варианты перевода. Кроме того, переводы обычно пилятся только для нескольких самых популярных книг, более-менее серьёзный материал не переводят. Всегда можно сесть со словарем и понемногу читать, переводя непонятные фрагменты. Это очень полезно, так как в любом случае в разработке без знания ангельского делать нечего. Если очень хочется, то гуглить по запросам: "C# 5.0, Справочник. Полное описание языка", "C# для профессионалов. Тонкости программирования", "Программирование на платформе Microsoft .NET Framework 4.5 на языке C#"
106
107
[b]17. Что еще нужно знать, чтобы взяли работать за еду?[/b]
108
- [i]SQL[/i] - подойдет люая книг по MSSQL/MySQL, базовые запросы, SELECT, INSERT, DELETE, UPDATE. Джойны, индексы, нормализация. В контексте шарпа еще ORM: Entity Framework, Dapper
109
- [i]Системы контроля версий[/i] - обычно гита достаточно: add/commit/push, merge, rebase, checkout, remote's, разрешение конфликтов, трехпанельные дифф-менеджеры, cherry-pick
110
- [i]Гитхабы-гитхабчики[/i] - issues, организация пулл-реквестов, интеграция с appveyor, теги, релизы, маркдаун
111
- [i]Алгоритмы[/i] - сложность алгоритмов, сортировки (пузырек, быстрая, вставками), поиск, рекурсия, алгоритмы на строках
112
- [i]Структуры данных[/i] - связанные списки, деревья (бинарные, красно-черные, b-деревья), хеш-таблицы, графы
113
- [i]Если идти в веб[/i] - HTML, CSS, JavaScript, веб-сокеты, REST
114
- Паттерны проектирования, стиль кода, внедрение зависимостей, MVVM (если хочется в WPF), SOLID
115
116
[b]18. Я не умею читать, что посмотреть?[/b]
117
- Programming with C# - https://www.edx.org/course/programming-c-microsoft-dev204x-0
118
- Beginning Game Programming with C# - https://www.coursera.org/course/gameprogramming
119
- C# Fundamentals: Development for Absolute Beginners - https://goo.gl/meyyxO
120
- Коллекция видеоуроков, по всему дотнетовскому и смежным темам (250 часов, на русском) - https://nnm-club.me/forum/viewtopic.php?t=891636
121
- Набор курсов по C# от O'Reilly Media (28 часов, на английском) - http://rutracker.org/forum/viewtopic.php?t=5082978