Advertisement
csharp_shapka

C# SHAPKA

Feb 12th, 2016
5,905
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 17.92 KB | None | 0 0
  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. - http://net-informations.com
  11. - http://habrahabr.ru/hub/csharp/
  12.  
  13. [b]2. Онлайн-компиляторы:[/b]
  14. - https://dotnetfiddle.net/ - возможно лучший вариант. Встроено немного убогое, но все-таки автодополнение и проверка синтаксиса.
  15. - http://ideone.com/
  16. - http://csharppad.com/
  17. - http://www.tutorialspoint.com/compile_csharp_online.php
  18. - http://rextester.com/l/csharp_online_compiler
  19.  
  20. [b]3. WinForms или WPF?[/b]
  21. Зависит от задачи. Для небольших проектов, скорее всего, будет достаточно винформочек. В случае, если разрабатываемое приложение достаточно серьёзное, то возможно его стоит писать с использованием WPF. WPF очень хорошо работает с паттерном MVVM ( https://ru.wikipedia.org/wiki/Model-View-ViewModel ), и позволяет пилить очень кастомизированные интерфейсы с помощью XAML, что в случае WinForms, делать намного сложнее.
  22.  
  23. [b]4. Мне тут [i]знакомый_нейм[/i] сказал, что C# умирает, это правда? Может не стоит его учить?[/b]
  24. Неправда. C# довольно активно развивается, недавно вышел новый компилятор, шестая версия шарпа, и уже активно разработывается седьмая. Весь дотнет понемногу становится опенсорсным, а ASP.NET становится независимым от платформы. В некотором смысле понемногу вымирают десктопные приложения с развитием веб-технологий, но в том же энтерпрайзе он еще очень даже востребован.
  25.  
  26. [b]5. Какую ИДЕ выбрать?[/b]
  27. Для Windows самым очевидным вариантом будет [b]Visual Studio[/b] (https://www.visualstudio.com/en-us/downloads/download-visual-studio-vs.aspx). Студия распространяется в двух редакциях: бесплатная коммьюнити-версия и платный энтерпрейс эдишн. В большинстве случае будет достаточно Community-версии: она поддерживает и C#, C++, VB.NET и F#, а так же имеет возможность установки дополнений
  28. Для мака и никсов самый юзабельный вариант - [b]MonoDevelop[/b] ( http://www.monodevelop.com/download/ ).
  29. Для vim можно использовать [b]OmniSharp[/b] ( https://github.com/OmniSharp/omnisharp-vim ).
  30. Кросплатформенный полуредактор/полуIDE [b]VS Code[/b] ( https://www.visualstudio.com/en-us/products/code-vs.aspx )
  31. Также существуют плагины для Atom'а и Sublime Text, но функциональность там достаточно сильно урезана.
  32. Кроме того, в данный момент JetBrains активно пилит свою IDE для шарпа ([b]Project Rider[/b]), вероятно в ближайшее время станут доступны первые EAP. IDE заявлена как кросплатформенная, со всем решарпер-функционалом, поддержкой отладки, моно и .net core.
  33. [b]SharpDevelop[/b] - еще одна IDE для C#, отличается малым размером (около 20мб) и опциональной портабельностью, при этом имея дизайнер WinForms и WPF, а также интеграцию с FxCop, StyleCop и прочими ништяками. Если хочется что-то по быстрому набросать, а выкачивать гигабйты нет желания, то возможно SharpDevelop будет лучшим вариантом.
  34.  
  35. [b]6. С# для мобильной разработки[/b]
  36. Если нужны инструменты для разработке под мобилы, ставь сразу VS2015 и при установке выбирай все нужные компоненты.
  37. Больше информации тут - https://msdn.microsoft.com/ru-ru/library/dn771552.aspx
  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
  57.  
  58. [B]ПРИНИМАЮТСЯ ПРЕДЛОЖЕНИЯ ПО ШАПКЕ[/B]
  59.  
  60. Код этой шапки: http://pastebin.com/cKKXYArs
  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 страниц, покрывает почти все области, начиная с синтаксиса и базовых типов и заканчивая интеропом и рослином
  69. - [i]C# 6.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, небо и даже аллаха.
  71. - [i]C# 6.0 Cookbook (Jay Hilyard и Stephen Teilhet)[/i] - книга в формате "проблема-решение", можно пройтись по оглавлению, найти интересные проблемы и попыпаться самому решить, а уже потом посмотреть представленное решение. Книга скорее не для ньюфагов, а для тех, кто уже знаком с шарпом.
  72.  
  73. [b]10. Более хардкорный материал[/b]
  74. - [i]C# in Depth (Jon Skeet)[/i] - написана в виде истории версий C#, начиная с C#1.0. Описываются возможности, которые были добавлены в определенной версии и далее достаточно хардкорно и подробно эти возможности расписываются.
  75. - [i]Writing High Performance .NET Code (Ben Watson)[/i] - охуенная книга. В основном фокуируется на оптимизации дотнет-говна. Методы оптимизации проложений, профилирование, вот это все. Крутейшая и достаточно детальная глава по GC. Рассматриваются достаточно известные проблемы вроде "for vs foreach", "класс vs структрура", кастинг, боксинг, перфоманс регулярок, коллекций, исключений. Короче все что нужно, [i]чтобы вам перезвонили[/i].
  76. - [i]CLR via C# (Jeffrey Richter)[/i] - это классика, это знать надо.
  77.  
  78. [b]11. Хочу еще хардкорней[/b]
  79. - [i]C# Deconstructed (Mohammad Rahman)[/i] - введение в CLR, модели памяти и выполнения в CLR, байтоебство, JIT. Книга достаточно коротенькая, менее 200 страниц, можно осилить за пару дней. Желателен опыт работы WinDbg и понимание устройства PE-формата.
  80. - [i]Expert C# 5.0 with .NET 4.5 Framework[/i] - еще одна книга этого автора, в этот раз намного длиннее. Очень много IL, анализа и разбора стандартной либы (те же коллекции), разбор ивентов, дегегатов, асинхронности etc. на уровне байткода.
  81. - [i].NET IL Assembler (Serge Lidin)[/i] - ILёбство, во многих местах повторяет документацию MSDN, но при этом имеет много интересных дополнений и заметок. Кроме того все неплохо структуировано и разложено по красивым табличкам
  82.  
  83. [b]12. Литература по WPF[/b]
  84. Из более-менее актуального можно выделить пару книг:
  85. - [i]Pro WPF 4.5 in C# (Matthew MacDonald)[/i]
  86. - [i]Windows Presentation Foundation 4.5 Cookbook (Pavel Yosifovich)[/i]
  87.  
  88. [b]13. Литература по ASP.NET[/b]
  89. - [i]Professional ASP.NET MVC 5 (Jon Galloway, Brad Wilson, K. Scott Allen, David Matson)[/i]
  90. - [i]Pro ASP.NET MVC 5 Platform (Adam Freeman)[/i]
  91. - [i]Beginning ASP.NET for Visual Studio 2015 (William Penberthy)[/i]
  92.  
  93. [b]14. Литература по асинхронности, параллелизму и всему такому[/b]
  94. - [i]Concurrency in C# Cookbook (Stephen Cleary)[/i] - книга, написанная в формате "проблема - решение". Кроме базовых вещей, вроде асинков и параллелизма рассматриваются TPL Dataflows, Rx (реактивные расширения), тестирование всего этого асинхронного добра, ну и работа этого всего на более низких уровнях абстракции
  95. - [i]Multithreading in C# 5.0 Cookbook[/i] - в основном ничего интересного, но есть довольна неплохая глава про синхронизацию, пусть и не слишком детальная
  96. - [i]Pro Asynchronous Programming with .NET (Richard Blewett, Andrew Clymer)[/i] - опять же, интересного немного, но неплохие главы про асинхронность + UI и анализ дампов памяти в windbg
  97.  
  98. [b]15. Литература не по шарпу, но так или иначе связанная с языком[/b]
  99. [i]C# Game Programming Cookbook for Unity 3D (Jeff W. Murray)[/i] - разработка на шарпе под Unity
  100. [i]Introduction to Neural Networks with C# (Jeff Heaton)[/i] - изучение нейронных сетей с примерами кода на шарпе. Под конец пишем программу для распознавания символов и нейроботов.
  101. [i]Machine Learning Using C# Succinctly (James D. McCaffrey)[/i] - довольная коротенькая книга на тему машинного обучения с примерами кода на C#. Ничего особого: k-средние, классификация, наивный байес, но с кодом, который всегда можно поразбирать, если что неясно.
  102.  
  103. [b]16. Но я не знаю английский, как я буду это все читать?[/b]
  104. На некоторые из перечисленных книг есть переводы, которые можно найти на том же рутрекере, однако, зачастую эти переводы неактальны, содержат неточности, и не самые понятные варианты перевода. Кроме того, переводы обычно пилятся только для нескольких самых популярных книг, более-менее серьёзный материал не переводят. Всегда можно сесть со словарем и понемногу читать, переводя непонятные фрагменты. Это очень полезно, так как в любом случае в разработке без знания ангельского делать нечего. Если очень хочется, то гуглить по запросам: "C# 5.0, Справочник. Полное описание языка", "C# для профессионалов. Тонкости программирования", "Программирование на платформе Microsoft .NET Framework 4.5 на языке C#"
  105.  
  106. [b]17. Что еще нужно знать, чтобы взяли работать за еду?[/b]
  107. - [i]SQL[/i] - подойдет люая книг по MSSQL/MySQL, базовые запросы, SELECT, INSERT, DELETE, UPDATE. Джойны, индексы, нормализация. В контексте шарпа еще ORM: Entity Framework, Dapper
  108. - [i]Системы контроля версий[/i] - обычно гита достаточно: add/commit/push, merge, rebase, checkout, remote's, разрешение конфликтов, трехпанельные дифф-менеджеры, cherry-pick
  109. - [i]Гитхабы-гитхабчики[/i] - issues, организация пулл-реквестов, интеграция с appveyor, теги, релизы, маркдаун
  110. - [i]Алгоритмы[/i] - сложность алгоритмов, сортировки (пузырек, быстрая, вставками), поиск, рекурсия, алгоритмы на строках
  111. - [i]Структуры данных[/i] - связанные списки, деревья (бинарные, красно-черные, b-деревья), хеш-таблицы, графы
  112. - [i]Если идти в веб[/i] - HTML, CSS, JavaScript, веб-сокеты, REST
  113. - Паттерны проектирования, стиль кода, внедрение зависимостей, MVVM (если хочется в WPF), SOLID
  114.  
  115. [b]18. Я не умею читать, что посмотреть?[/b]
  116. - Programming with C# - https://www.edx.org/course/programming-c-microsoft-dev204x-0
  117. - Beginning Game Programming with C# - https://www.coursera.org/course/gameprogramming
  118. - C# Fundamentals: Development for Absolute Beginners - https://goo.gl/meyyxO
  119. - Коллекция видеоуроков, по всему дотнетовскому и смежным темам (250 часов, на русском) - https://nnm-club.me/forum/viewtopic.php?t=891636
  120. - Набор курсов по C# от O'Reilly Media (28 часов, на английском) - http://rutracker.org/forum/viewtopic.php?t=5082978
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement