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 |