24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!
Существует множество различных платформ и языков программирования, однако среди них нет более элитного, чем C#. Это поистине язык богов, сочетающий в себе простоту использования с поистине неограниченными возможностями. Знание C# — прекрасный детектор современного, умного и успешного человека. Изучение платформы .NET безошибочно указывает на успешного в будущем человека. ITT элита продолжает обсуждает будущее этого прекрасного и современного продукта компании Microsoft. Только в этом треде элитные разработчики ответят на самые острые вопросы индустрии.
3. WinForms или WPF? Зависит от задачи. Для небольших проектов, скорее всего, будет достаточно винформочек. В случае, если разрабатываемое приложение достаточно серьёзное, то возможно его стоит писать с использованием WPF. WPF очень хорошо работает с паттерном MVVM ( https://ru.wikipedia.org/wiki/Model-View-ViewModel ), и позволяет пилить очень кастомизированные интерфейсы с помощью XAML, что в случае WinForms, делать намного сложнее.
4. Мне тут знакомый_нейм сказал, что C# умирает, это правда? Может не стоит его учить? Неправда. C# довольно активно развивается, недавно вышел новый компилятор, шестая версия шарпа, и уже активно разработывается седьмая. Весь дотнет понемногу становится опенсорсным, а ASP.NET становится независимым от платформы. В некотором смысле понемногу вымирают десктопные приложения с развитием веб-технологий, но в том же энтерпрайзе он еще очень даже востребован.
5. Какую ИДЕ выбрать? Для Windows самым очевидным вариантом будет Visual Studio (https://www.visualstudio.com/en-us/downloads/download-visual-studio-vs.aspx). Студия распространяется в двух редакциях: бесплатная коммьюнити-версия и платный энтерпрейс эдишн. В большинстве случае будет достаточно Community-версии: она поддерживает и C#, C++, VB.NET и F#, а так же имеет возможность установки дополнений Для мака и никсов самый юзабельный вариант - MonoDevelop ( http://www.monodevelop.com/download/ ). Для vim можно использовать OmniSharp ( https://github.com/OmniSharp/omnisharp-vim ). Кросплатформенный полуредактор/полуIDE VS Code ( https://www.visualstudio.com/en-us/products/code-vs.aspx ) Также существуют плагины для Atom'а и Sublime Text, но функциональность там достаточно сильно урезана. Кроме того, в данный момент JetBrains активно пилит свою IDE для шарпа (Project Rider), вероятно в ближайшее время станут доступны первые EAP. IDE заявлена как кросплатформенная, со всем решарпер-функционалом, поддержкой отладки, моно и .net core. SharpDevelop - еще одна IDE для C#, отличается малым размером (около 20мб) и опциональной портабельностью, при этом имея дизайнер WinForms и WPF, а также интеграцию с FxCop, StyleCop и прочими ништяками. Если хочется что-то по быстрому набросать, а выкачивать гигабйты нет желания, то возможно SharpDevelop будет лучшим вариантом.
6. С# для мобильной разработки Если нужны инструменты для разработке под мобилы, ставь сразу VS2015 и при установке выбирай все нужные компоненты. Больше информации тут - https://msdn.microsoft.com/ru-ru/library/dn771552.aspx Из актуальной литературы - Xamarin Mobile Application Development - Xamarin Essentials
7. Дополнительные инструменты для разработки на C# LINQPad - сорт оф REPL, с возможностью быстрого подключения к БД и удобной визуализацией данных dnSpy - декомпилятор, малоизвестный форк ILSpy, где реализована возможность модификации IL-кода прямо в EXE и DLL файлах, отладка IL-кода и много других фич для reverse engineering'а. Плюс няшные темы как в студии dotPeek - бесплатный декомпилятор от JetBrains scriptcs - для запуска C# кода как скриптов, возможность использовать как REPL
8. Расширения для студии ReSharper - одно из известнейших. Рефакторинги, умный автокомплит, настраиваемый стиль кода. Платный, но можно стянуть с торрентов Supercharger - показывает "карту" с классами, методами и всем остальным сбоку от кода с возможностью прыгать по ним Indent Guides - показывает вертикальные линии на каждом уровне отступов. Format document on Save - форматирует код каждый раз при сохранении документа Code alignment - Выравнивает код по указанным символам. Удобно, например, при инициализации словарей или в перечислениях
9. Что почитать? - The C# Player's Guide, второе издание (RB Whitaker) - отличная книга для ньюфагов в шарпе, все расписывается довольно подробно, очень много примеров кода. - C# 6.0 in a Nutshell (Joseph Albahari и Ben Albahari) - огромнейший справочник, over 1000 страниц, покрывает почти все области, начиная с синтаксиса и базовых типов и заканчивая интеропом и рослином - C# 6.0 Pocket Reference (Joseph Albahari и Ben Albahari) - просто выжимка из справочника, можно всегда держать рукой - C# 6.0 and the .NET 4.6 Framework (Andrew Troelsen) - 1600-страничный учебник по шарпу, покрывает BCL, WPF и ASP.NET, небо и даже аллаха. - C# 6.0 Cookbook (Jay Hilyard и Stephen Teilhet) - книга в формате "проблема-решение", можно пройтись по оглавлению, найти интересные проблемы и попыпаться самому решить, а уже потом посмотреть представленное решение. Книга скорее не для ньюфагов, а для тех, кто уже знаком с шарпом.
10. Более хардкорный материал - C# in Depth (Jon Skeet) - написана в виде истории версий C#, начиная с C#1.0. Описываются возможности, которые были добавлены в определенной версии и далее достаточно хардкорно и подробно эти возможности расписываются. - Writing High Performance .NET Code (Ben Watson) - охуенная книга. В основном фокуируется на оптимизации дотнет-говна. Методы оптимизации проложений, профилирование, вот это все. Крутейшая и достаточно детальная глава по GC. Рассматриваются достаточно известные проблемы вроде "for vs foreach", "класс vs структрура", кастинг, боксинг, перфоманс регулярок, коллекций, исключений. Короче все что нужно, чтобы вам перезвонили. - CLR via C# (Jeffrey Richter) - это классика, это знать надо.
11. Хочу еще хардкорней - C# Deconstructed (Mohammad Rahman) - введение в CLR, модели памяти и выполнения в CLR, байтоебство, JIT. Книга достаточно коротенькая, менее 200 страниц, можно осилить за пару дней. Желателен опыт работы WinDbg и понимание устройства PE-формата. - Expert C# 5.0 with .NET 4.5 Framework - еще одна книга этого автора, в этот раз намного длиннее. Очень много IL, анализа и разбора стандартной либы (те же коллекции), разбор ивентов, дегегатов, асинхронности etc. на уровне байткода. - .NET IL Assembler (Serge Lidin) - ILёбство, во многих местах повторяет документацию MSDN, но при этом имеет много интересных дополнений и заметок. Кроме того все неплохо структуировано и разложено по красивым табличкам
12. Литература по WPF Из более-менее актуального можно выделить пару книг: - Pro WPF 4.5 in C# (Matthew MacDonald) - Windows Presentation Foundation 4.5 Cookbook (Pavel Yosifovich)
13. Литература по ASP.NET - Professional ASP.NET MVC 5 (Jon Galloway, Brad Wilson, K. Scott Allen, David Matson) - Pro ASP.NET MVC 5 Platform (Adam Freeman) - Beginning ASP.NET for Visual Studio 2015 (William Penberthy)
14. Литература по асинхронности, параллелизму и всему такому - Concurrency in C# Cookbook (Stephen Cleary) - книга, написанная в формате "проблема - решение". Кроме базовых вещей, вроде асинков и параллелизма рассматриваются TPL Dataflows, Rx (реактивные расширения), тестирование всего этого асинхронного добра, ну и работа этого всего на более низких уровнях абстракции - Multithreading in C# 5.0 Cookbook - в основном ничего интересного, но есть довольна неплохая глава про синхронизацию, пусть и не слишком детальная
15. Литература не по шарпу, но так или иначе связанная с языком C# Game Programming Cookbook for Unity 3D (Jeff W. Murray) - разработка на шарпе под Unity Introduction to Neural Networks with C# (Jeff Heaton) - изучение нейронных сетей с примерами кода на шарпе. Под конец пишем программу для распознавания символов и нейроботов. Machine Learning Using C# Succinctly (James D. McCaffrey) - довольная коротенькая книга на тему машинного обучения с примерами кода на C#. Ничего особого: k-средние, классификация, наивный байес, но с кодом, который всегда можно поразбирать, если что неясно.
16. Но я не знаю английский, как я буду это все читать? На некоторые из перечисленных книг есть переводы, которые можно найти на том же рутрекере, однако, зачастую эти переводы неактальны, содержат неточности, и не самые понятные варианты перевода. Кроме того, переводы обычно пилятся только для нескольких самых популярных книг, более-менее серьёзный материал не переводят. Всегда можно сесть со словарем и понемногу читать, переводя непонятные фрагменты. Это очень полезно, так как в любом случае в разработке без знания ангельского делать нечего. Если очень хочется, то гуглить по запросам: "C# 5.0, Справочник. Полное описание языка", "C# для профессионалов. Тонкости программирования", "Программирование на платформе Microsoft .NET Framework 4.5 на языке C#"
17. Что еще нужно знать, чтобы взяли работать за еду? - SQL - подойдет люая книг по MSSQL/MySQL, базовые запросы, SELECT, INSERT, DELETE, UPDATE. Джойны, индексы, нормализация. В контексте шарпа еще ORM: Entity Framework, Dapper - Системы контроля версий - обычно гита достаточно: add/commit/push, merge, rebase, checkout, remote's, разрешение конфликтов, трехпанельные дифф-менеджеры, cherry-pick - Гитхабы-гитхабчики - issues, организация пулл-реквестов, интеграция с appveyor, теги, релизы, маркдаун - Алгоритмы - сложность алгоритмов, сортировки (пузырек, быстрая, вставками), поиск, рекурсия, алгоритмы на строках - Структуры данных - связанные списки, деревья (бинарные, красно-черные, b-деревья), хеш-таблицы, графы - Если идти в веб - HTML, CSS, JavaScript, веб-сокеты, REST - Паттерны проектирования, стиль кода, внедрение зависимостей, MVVM (если хочется в WPF), SOLID
Есть некий Dictionary<Shop, List<Goods>> . Как реализовать выведение списком в некий гуй, чтоб после того, как я вывел, допустим, 10 кнопок, каждая отвечает за один из элементов Дикшинари, при нажатии на любую можно было понять (по позиции), какой элемент ей соответствует? Короче, как сделать из Дикшинари некое подобие нумерованного ряда (список лол). Переделывать Дикшинари в что-то другое не вариант.
>>652043 Гуй не стандартный дотнетовский никакой. Доступ к элементу - по номеру в списке. Соответственно, нужно связать этот гаевский самый обычный список с моим дикшинари. И в дикшинарт, естественно, не 10 элементов внутри, а и до 2 тысяч может доходить.
Расскажите про самостоятельную подготовку к 70-483. Хватит ли https://www.microsoftpressstore.com/store/exam-ref-70-483-programming-in-c-sharp-mcsd-9780735676824 если есть немного практики(написал клиентскую UWP приложуху для одной соц.сети + на работе иногда разбираюсь с кодом тест-кейсов на C#)? Или эта книга устаревшее говно? Стоит ли вообще его пробовать сдавать если после института я хочу заниматься разработкой продукта/тестов на C# в компаниях вроде Kaspersky/Acronis?
>>651013 (OP) Аноны, пишу опять, спустя два месяца таки осилил Сишарп, правда использовал его для немного других вещей, но не суть. Что учить, чтобы можно было уже в сентябре фрилансить? Asp, WPF?
>>653526 Я уже понял. Правда, что все начинают с работы за отзывы? Где ищется все это? А то я заглянул на фриланс-сайты и охуел от проектов и вакансий, их вообще нету.
>>653534 Ага, значит + английский. И серьезно, все все знают? Ну я про сам язык Алгоритмы Работа с сервером (Тут уже десяток технологий со всякими SQL) Верстка + Js И сам Asp.net Бля, вы герои просто, еще и вакансии умудряетесь находить.
>>653542 В зависимоти от языка, в случае шарпа знать обычно нужно больше, но и платят соотвественно тоже больше. Год-два наверное, если есть способности.
>>653555 Придумай себе задачу и понемногу пытайся её реализовать. Потом, когда знаний станет больше - переписывай с нуля. Потом еще раз, и так пока не поймешь, что хватит. А в начале просто с примерами из книг тренируйся.
Ребята, в срочном порядке! Помогите понять понятия ретранслятор и подписчик. Башка не варит, а дальше без понимания тему не пройти. Коротко, в двух словах.
Дано - знание баз/основ шарпа по видеокурсам и половине какого-то-уже-хуй-вспомню-какого учебника, опыт работы только с консолькой. Отсутствие знания паттернов, создания интерфейса, нормальной практики кроме вузовских требований и простеньких олимпиадных задач из интернета, знания алгоритмов, короче отсутствие практически всего. Цель - задрочить язык на практике, пиля какую-нибудь пошаговую говноигру пока по задумке 4-партия-рпг "в стол". Соответственно, в игре будет имитация онлайна (подключение к установленному на пека серверу и там сохранение логинов-паролей-персонажей etc, подгрузка персонажей оттуда при логине), какой-никакой всратый но интерфейс, жалкое подобие ии противника, может еще чего.
С каких ресурсов проще всего брать инфу и что вкратце почитать перед началом работы чтобы не городить костыльных велосипедов?
Аноны, а вы тут совсем ньюфагам помагаете? 2й день в С#, совсем не соображаю. Нужно написать поиск по файлу, но результатом должно быть кол-во упоминания этого слова в тексте, т.е.: Загружаем текстовый файл, в текст боксе пишем n-набор символом, происходит поиск по тексту текст довольно большой, логи показывается кол-во упоминаний. Все что смог пока сделать, this лолhttps://dotnetfiddle.net/1PeFXV
Сосоны, в windows forms Application.Run() создаёт отдельный тред при каждом вызове? это я к тому, если в мэине вызвать несколько application.run() с разными формами в качестве параметра, они в одном треде будут запущены, или каждый в своём?
Сап шарпач. Имеется коллекция строк, содержащая пути к файлам с расширением. Она биндится к комбобоксу. Юзверь не должен видеть расширение, но оно должно там подразумеваться. На каком уровне лучше убрать расширение: на уровне свойства get перед биндингом или лучше добавить ещё одно поле в коллекцию? Как лучше это реализовать? https://dotnetfiddle.net/IKPZUW
>>654793 Менее костыльным вариантом, думаю, будет написание конвертора (IValueConverter), но тут перфоманс немного просядет. Если элементов много, то лучше поле добавить.
>>654806 С консольки начни. Файл весь в память не читай, читай посточно, сам же говоришь, что файлы достаточно большие. Для поиска подстроки используй IndexOf, чтобы искать все совпадения пихай каждый раз параметром startIndex в IndexOf последний индекс, пока -1 не вернет. И считай все в переменную.
Господа, прошу помощи. Только недавно начал работать с c#, не могу разобраться с импортом библиотек. Необходимо импортировать библиотеку с шумом. Шум- http://accidentalnoise.sourceforge.net/ . На с# был портирован этим чуваком https://github.com/TinkerWorX. У него на профиле это лежит как https://github.com/TinkerWorX/AccidentalNoiseLibrary , только я не ебу, как это перевести в dll и где найти xml для дальнейшего прочтения. В общем, как сделать так, чтобы указание using accidentalnoise; в начале кода приводило к тому, чтобы импортировались имена? Если вы поняли, о чём я
>>654851 Сам скомпилируй, ну. Вот, скомпилировал за минуту, неужели так сложно? http://rghost.net/8LcPGF44k Теперь подключаешь эту DLL как референс и используешь.
public static T GetValueFromDataTable<T>(DataTable dt, int indexRow, string nameCol) { var result = dt.Rows[indexRow][nameCol]; return (T)Convert.ChangeType(result, dt.Columns[nameCol].DataType); } Этот вариант будет запускаться только с указанием типа. int x = GetValueFromDataTable<int>(dt_tblName, 0, "x");
А хочеться так: public static T GetValueFromDataTable(DataTable dt, int indexRow, string nameCol) { var result = dt.Rows[indexRow][nameCol]; return (T)Convert.ChangeType(result, dt.Columns[nameCol].DataType); }
int x = GetValueFromDataTable(dt_tblName, 0, "x"); Но так оно не работает.
>>655018 Какой еще XML-файл? Для подключения и импорта тебе больше не нужно кроме DLL. Если либе на вход нужно хмлку какую-то давать, то это уже другой вопрос, тут ты сам должен знать.
>>655020 Cоррян, но мне придётся доебаться до тебя ещё раз При открытии решения c# в юнити3д мне в обозревателе решения не даёт добавить ссылку на библиотеку. Т.е. вообще, там нет пункта add reference. Какого хера?
>>651013 (OP) Объясните, почему сишарп и дотнет существуют в парадигме интерпретируемого языка и джава-машины? Можно было бы просто написать компилятор сишарп кода, который поддерживал бы все фичи сишарпа, работал быстрее и не требовал бы принудительных установок дотнета. Ладно джаву понять можно, там одни библиотеки под все платформы. Но дотнет под одну единственную платформу работает и даже внутри нее не переносится (х64 приложения на х86 не запустятся). Тогда зачем вообще все это?
>>655161 > который поддерживал бы все фичи сишарпа, работал быстрее и не требовал бы принудительных установок дотнета. Ты только что .net native > Но дотнет под одну единственную платформу работает и даже внутри нее не переносится (х64 приложения на х86 не запустятся). Тогда зачем вообще все это? Вранье же. Есть моно, теперь еще и coreclr. Кроме того, c# не единственный язык под clr. Есть еще фшарп, и вб, и писать компиляторы для каждого из языка в машинный код было бы пиздецки сложно, поэтому промежуточный язык очень даже неплохое решение. Алсо в случае x86-x64 есть AnyCPU сборки, где в этом случае под 64битными системами будет задействован 64битный джит, в 32битных ну ты понял
>>655174 >писать компиляторы для каждого из языка в машинный код было бы пиздецки сложно А в IL намного легче? Ок, я не знал.
>Ты только что .net native Ну да, вопрос в том, почему эта платформа не является основной и единственной в рамках сишарпа.
>моно А он в байт-код компилирует, не в натив? Не слышал, чтобы для запуска юнити-игр (они моно) требовалась установка каких-то специальных package, вроде дотнета. Как они выполняются, какими средствами?
>AnyCPU Тоже не знал, думал это просто другое название для x86
>>655188 В IL намного легче хотя бы потому, что он включает уже объектную модель. Вот тут можешь глянуть https://en.wikipedia.org/wiki/List_of_CIL_instructions "Object model instructions". А так как и вб.нет, и шарп, и фрешетка объекто-ориентированы, все это компилируется в этот набор опкодов, а jit уже сам знает как с этим работать.
Тотальный трехдневный ньюфаг репортинг ин, не бейте, лучше обоссыте.
Нужно написать консольную хуету с кучей менюшек. Меню вида Write("Введите хуй чтобы подрочить, веревка чтоб повеситься, выход чтобы закрыть программу"); Read() и в зависимости от того что пользователь ввел запускается соответствующий метод/функция и так далее. Меню формируются в зависимости от предыдущих действий пользователя - соответственно, нужен какой-то конструктор меню, который будет принимать "варианты-реакция на варианты" и соответствующе выводить варианты, считывать ответ и запускать требуемую реакцию. Думал создать словарь типа <string вариант, reaction> где reaction - делегат, заполнять его в зависимости от нужных параметров и передать в конструктор, но столкнулся с тем что реакция не всегда однородна - где-то она принимает 5 аргументов, где-то 0 и так далее, а делегат требует столько аргументов сколько указано при его создании. Также была задумка создать класс "MenuOption" содержащий строковую переменную-вариант и функцию-реакцию, запихать все объекты класса в лист и передать все тому же конструктору, но не понял как это осуществить.
Короче, посрите мне на лицо, скажите что я изобретаю велосипед из костылей и наведите на мысль как это сделать проще.
>>655188 > Ну да, вопрос в том, почему эта платформа не является основной и единственной в рамках сишарпа. Это очень-очень молодой проект, стандартные дотнет приложения вроде как еще даже не поддерживаются
>>655213 Да нет, из памяти программы Ну например допустим это квест - где-то в ебенях есть постоянно изменяющийся массив какого цвета у персонажа есть занавески, переменная умеет ли он отжиматься и сколько, а еще он может выйти из дома. Тогда в какой-то момент может потребоваться вывести меню со следующими пунктами: 1)Повесить красные занавески не той стороной на окно 2 - Персонаж.ПовеситьЗанавески(окно2, красные, неправильно) 2)Отжаться 20 раз - Персонаж.Отжаться(20) 3)Выйти из дома - Персонаж.Съебаться() То есть, если какая-то переменная такая-то - добавляем первый пункт в наш список, другая переменная такая-то - добавили еще про отжимания, передали конструктору, он захуярил меню. А может вообще быть другой набор параметров и тогда надо будет не вешать занавески, отжиматься и съебывать, а прыгать, читать книгу Донцовой и спать. То есть это меню конструируется динамически по куче переменных, и свитчем тут не взлетит.
>>655204 >Тотальный трехдневный ньюфаг >создать словарь типа <string вариант, reaction> где reaction - делегат Пиздишь же, не мог ты 10 глав Троелсена за 3 дня осилить.
Насколько я понимаю, это паттерн проектирования под названием "Стратегия". К сожалению, в ideone не работает нормально, потому что там Console.ReadLine(); не работает.
Поясните дебилу за WPF, Datagrid и Entiry Сгенерировал SQL энтити классы (это уже модел по MVVM ??), создал дата грид. Как сделать, чтобы при редактировании таблицы редактировалась база данных? Если можно на пальцах. Добра тому, кто ответит
>>655284 >10 глав Троелсена Да нет, просто выдалось 3 дня выходных я почему-то решил, что учить по гуглу и практике язык с нуля, не имея внятных представлениях о программировании/алгоритмах/ДЕСИГНПАТЕРНС кроме вузоского (заборостроительного) курса - хорошая идея. Сейчас уже, ощущая кашу в голове, понял, что такая модель изучения без хоть какой-либо базы (кроме калькуляторов для зачетов на других языках) - говно, но хочется доделать начатое хоть частично, а потом уже зарыться в книги. Но это так, отступление.
Благодарю за код и советы, посмотрю как будет возможность.
Аноны, такая проблема. Не могу в ASP.NET WebForms подключить css к .aspx файлу Вставляю, как обычно <link rel="Stylesheet" href="stylesheet.css" type="text/css" /> Но стили не применяются. Подскажите, если кто знает, в чем дело?
>>655284 >bool DoSomething(); Имено нормальные дать нужно интерфейсу, классам и этому методу. Иначе выглядит как говно. Что за бул, что он возвращает из функции с таким именем? К гадалке идти? Инкапсуляция просрана нахуй.
>>655766 Я нихрена не смыслю в вебе, где там ссылочка и с какой стороны у нее таргет?
Пробовал еще вот это скопипастить с СО: >Page.ClientScript.RegisterStartupScript(this.GetType(), "OpenWindow", String.Format("window.open('{0}','_newtab');", file.Name), true); Но оно не работает, потому что к файлу нет доступа, как я понимаю >Разыскиваемый вами ресурс был удален, было изменено его имя или он временно недоступен.
>>655799 Вебформы. У меня нет ссылочки. У меня есть кнопка, в ее OnClick вызывается метод, запрашивающий данные из базы, обрабатывающий их, пишущий то что получилось в вордовский документ, и затем конвертирующий его в pdf. Собственно, метод возвращает путь к полученному пдф файлу. Файлы создаются в папке сайта, и называются типа report_yyyy_MM_dd_hhmmss.pdf Мне нужно пользователю показать вот этот сгенерированный файл в новой вкладке.
>>655816 А что, в MVC проще открыть новую вкладку с пдфкой что ли? Я в принципе в основном на WPF все делаю, просто иногда нужно чтобы у линуксоидов тоже открывалось, и тогда приходится быстро нахерачить что-нибудь на вебе. Желания погружаться в говно дивный мир html+css+js у меня все равно никакого, а формы мне проще и привычнее кажутся.
Аноны, а что насчет Microsoft Virtual Academy? Смотрел кто курсы? Годно для начинающего? Как по мне, любые видео-курсы с практикой дадут больше толка, чем книга, которую дропнешь после 20 страниц.
>>655803 Ты там вебклиентом с диска файл то штоле качаешь? Сделай обычный handler, который создает и отдает тебе файл, и ссылку, которая открывает его в новой вкладке >Разыскиваемый вами ресурс был удален, было изменено его имя или он временно недоступен Путь то проверь
>>655964 пятнадцатая студия не выдаёт даже код ошибки. Пишет только, что ошибка в строке 2, т.е. unsig AssidentalNoise;, но до этого и так легко догадаться. А intellesense только разводит руками
>>656003 > Кстати никого не заебывает что "открывающая скобка" у методов на отдельной строке? > Интересно это не с индусов пошло, которым платят за LOC. Нет, потому что это удобнее и приятнее для глаз.
Тогда переформулирую вопрос. Нужно ли каким-либо образом подключать библиотеки к самому юнити или достаточно добавить в список ссылок в файле для visual studio?
>>656029 >java Ну и пиздуй из нашего уютного треда в свой свиной загон, ява-хохол. Сука, ненавижу каклов, все треды засирают своим хрюканьем, поскорее бы Урина сдохла.
>>655972 Кстати слышно что про "главный конструктор"? Хотели в C# 6 добавить, потом (прям перед релизом) передумали. Пробежался по github ишам Roslyn, чет не нашел. Он вообще запланирован на C# 7 ?
С ним можно было бы избежать бойлерплейта с 17 по 23 строки. И возможно появился бы способ удобного создания иммьютабл классов.
>>656260 Да что-то подзатихло с этими конструкторами. Вот такую кострукцию (records) возможно в седьмом добавят вместе с паттерн-матчингом, а с первичными конструкторами что-то не вижу ничего. Насчет иммултабельных классов: тоже планируют вроде бы.
>>656293 Там, возможно, некоторые моменты будут неясны, т.к. она позиционируется как книга для тех, кто уже знает немного шарп, но я по ней достаточно быстро кое-как освоил шарп. До этого только опыт с перлом был
>>656300 Ну я начинал вообще методом тыка, потом статейки, небольшие книги, много практики, а потом, когда решил сфокусироваться на шарпе, то уже тогда очень много читал. Если просто хочешь вкатиться в шарп для себя то такого коротенького справочника и много практики будет достаточно. Если работать на нем собираешься, то вероятно придется больше читать. Ну там перфоманс, бд, асп.нет, все такое.
Аноны, стоит ли обратно перекатываться к шервавому? Я щас пытяюсь кодить на плюсах, но не получается. До плюсов кодил на шарпе, до шарпа на плюсах.
Мой первый язык - плюсы. Не накодив на нем ничего, кроме учебных задачек перекатился на шарп. Нам с шарпом было очень весело. Я кодил вещи, которые использую в своей жизни до сих пор. Позже, набрашись опыта решил снова перекатиться на c++, но потерпел fail :(.
Аноны, стоит ли обратно перекатываться к шервавому или мне лучше дальше учить плюсы?
>>656320 Так это же я ее и советовал, лол. По шарпу зачастую книги не тоненькие, но ты можешь брать любую и читать по диагонали, если чувствуешь что слишком просто.
>>656310 Забыл еще кое-что уточнить. Мне всего лишь 17 лет, программирую просто для себя, потому мне похуй на чем кодить, просто тут дело принципа, не хочется бросать все на полпути, если вы понимаете о чем я. Мне язык нужен как проводник по Computer Science.
Аноны, вы слушаете музыку когда читаете книги по программированию? Нужно что то что бы не отвлекаться на внешние факторы, но и музыка не должна мешать усвоить материал.
Пацаны, у кого как со временем? Даже с учетом того, что у меня только 4 из 7 дней учебные, остальные 3 я на фуллтайм отдыхе, не хватает времени, из-за чего продвигаюсь очень медленно по книжке. Под постом ответьте, кто какую книгу читал и сколько времени понадобилось для освоения. Начну я, albahari c# 5.0, 160 страниц за месяц(полтора)
Когда я подобное добавляю в вебконфиг <authentication mode="Forms" > <forms name="cookies" loginUrl="~/Account/Login" timeout="2880" defaultUrl="~/Home/Index" /> </authentication> У меня сразу же включается аунтефикация форм? Если я попытаюсь зайти на страницу, которую возвращает метод у которого нету атрибута AllowAnonymus и у меня еще нету куки для аунтефикации, меня должно автоматически перенаправлять на страницу логина? Я правильно все понимаю? Потому что куки нету, но пускает по всем страницам.
>>657285 Идея в том, что я ввожу число, оно записывается в переменную "а", потом ввожу второе число, с которым буду делать какие-то действия, но при этом значение "а" остается написанным в строке, но не записывается во вторую переменную.
Шарписты, подкиньте мотивации дабы развеять страхи: была недоджава кодером. Но как-то за год потеплел к MS из-за их изменившемуся курсу на опенсорс и не только (спасибо Сатье-индусу). Но беспокоит меня, что останусь без хлеба: javисты нудны в гораздо больших размерах. Как бы это с одной стороны для них же хуже ибо кодеромакак (как я, кхм) к ним приплывет больше, с другой стороны и $ там крутится больше. Аноны, гордо подняв голову, последний раз взглянув на прекрасную Idea идти к светлому будущему C# с делегатами, ASP Core и UWP, с надеждой, что одно допилят, а другое не сдохнет?
>>657444 Потому что у ms нет другого языка, а те что есть - на той же платформе. Про прекрасную Idea - здесь есть студия и решарпер пророк ее. Ну а если ты кроссплатформозависимый - jetbrains выкатывают идею для решеточки.
>>657450 У меня студия ужасно лагает с решарпером. Стоит отметить - Community 2015. JB жаловались, что 15 сырая в плане оптимизации, что когда они в 15й открыли свой солюшн с решарпером - оно все просто висло, из-за чего они разбивали солюшн.
А что за идея для решетки? Я видел на хабре чувак что-то пилил в этом плане на idea-platform, но оно индивидуальное, а не JB и скорее энтузиазм, чем продукт
>>657467 Ну вообще он прав, с пятнадцатой студии какой-то пиздец начался. Постоянные фризы, по две ебучих бульбочки почему-то появлялись временами, временами решарпер просто отключался и вообще какой-то пиздец творился.
>>657467 Идея, кстати, не тормозит или по-крайней мере не так. Вообще я подозреваю неSSD в этом виноват. W10 кэширует прцоессы, даже когда они закрыты. повторное включение-выключение студии заметно меньше лагает в течении одного сеанса за компом.
>>657481 Вообще с Project Rider мотивация апнулась, шарп нужен, шарп делают, а значит нужно больше, тех, кто делает на шарпе. Пойду (учиться) кодить. Спасибо за отличные новости шарпач!
Так репозитори паттерн используется или нет? Мне тут говорили, что он не нужен(дополнительная абстракция) Но вот здесь например говорят что нужен если со временем меняется ORM https://www.youtube.com/watch?v=rtXpYpZdOzM Я бы не спрашивал, если бы в вакансиях не писали, что нужно знать конкретно этот паттерн.
Где хранить данные, которые относятся к конкретному пользователю, но при этом не должны изменяться извне. Эти данные нужны для отображения многих страниц и чтобы каждый раз не таскать из бд, лучше их где-то хранить. Если в куки запихнуть, то юзер сможет их отредактировать у себя и получить доступ к инфе, которую он видеть не должен. Можно проверку данных делать, но это еще более затратно чем каждый раз их подгружать из бд. В сессию если положить при логине пользователя, то что делать когда сессия истекает? Как узнать этот момент чтобы снова положить туда требуемые данные?
>>657699 Репозиторий нинужен. Обычно трансформируется в годобжект, если в базе овер 100 таблиц. Даже если пробовать применять DDD с кучей репозиториев, которые невозможно абстрагировать на какой нибудь IRepository. Как по мне, наилучший подход - CQRS
>>657488 >с Project Rider мотивация апнулась, шарп нужен, шарп делают
>Astella, an IDE for Flash and Flex. This most short-lived JetBrains product was announced in October 2011, just a month before Adobe killed Mobile Flash.
Анон, помоги советом. Пилю mdi приложение, в котором можно открыть сразу несколько таблиц, каждая в отдельной форме - mdi-child'e. Допустим, в таблицах ОЧЕ много инфы, которая считывается с харда через бинари ридер. Стоит ли в таком случае каждую форму с таблицей открывать в отдельном треде, если предусматривается одновременная работа с порядка 10 таблиц? Или лучше располагать запись и чтение для различных форм в одном треде?
Суп программач, дай советов годных. Нужна помощь в производственном шпионаже. Есть одно П.О. установленное на пека. Но при переносе на другой пека ругается на то что П.О. не прошло проверку лицензии по HDD. Как побороть несправедливость. Я ньюфажек если че и вообще из /vg. http://rghost.ru/7R9zbV5MW
>>658232 Можешь попробовать всю ветку реестра с программой перекинуть из пеки с работающим ПО на пеку с нерабочим ПО. С лицензией 1С прокатывало. Ну или можешь заебаться и точно узнать, какой именно ключ реестра тебя интересует
>>658234 это П.О. типа как портативная версия кликнул по .exe и оно запустилось. Там еще две проги должны быть установлены Borland Database и Firebird 1.5. Следов в реестре не нашел.
>>658265 Если только тормозить будет, и то не саму форму, а только саму работу с диском надо сделать асинхронной, а не все форму в отдельный поток отправлять.
>>655188 >Не слышал, чтобы для запуска юнити-игр (они моно) требовалась установка каких-то специальных package, вроде дотнета. Как они выполняются, какими средствами? Юнити-игры носят все нужные(и не только) моно-библиотеки с собой.
>>655018 В свойствах проекта есть галочка "создать файл хмл-документации". Он будет создан из тегов summary и подхвачен студией для подсказки. Для работы библиотеки он не нужен.
>>658349 Еще больше условностей и спец. синтаксиса который нужно помнить разрабу. Вдруг какой-нибудь индус будет это активно юзать, а нюфаги будут постоянно спотыкаться об readonly и мучительно вспоминать как там реализован GetHashCode().
Начиная с линка шарп идет нитуда и вообще загнивает.
>>658360 >надо помнить Работа такая >индус Следую стереотипам будет писать как в is translated into >спотыкаться об ридонли Его для это и делали >как реализован Инкапсуляция
С последней строки конечно все отсеки залило авиационным жиром.
>>657956 Ну я вот и хочу их в сессию сделать, на клиенте их и не было. И это не данные можно сказать, а один параметр от которого зависит какие данные будут вытянуты из бд. Вот его и нужно привязать к конкретному юзеру на стороне сервера. >>658005 Ок, посмотрю. >>658211 Не понимаю.
>>658366 Никакаго жира. Тебя не смущает, что сройный объектный синтаксис шарпа разбавили декларативным sql-говнецом и уродливыми беззадачными лямдами? Если бы просто ограничились методами расширений на все случаи жизни, то хрен с ним, но нахуя уродовать базовый стройный синтаксис в угоду индусам? Нет слов, одна ненависть.
Ичсх все равно юзают методы расшерений, а на декларативную ссанину забили хуй. А ебнутые лямбды пролезли и теперь надо запоминать правила захвата локальных переменных в них и тормозить на ебанутой куче вызовов функций с тривиальной хуйней.
Если писать что то сложнее мап/фильтр, то методы расширений быстро превращаются в нечитаемый набор скобочек и стрелочек. Это еще можно осилить когда там join/groupJoin, но ты видел как let в методах расширения выглядит? Там даже циклы понятнее.
>>658524 >Мультипарадигма Шта? Вот когда ты сможешь создать функцию не привязаную к объекту тогда и заявляй такое. А сейчас это тупая бездумная эмуляция некоторых фич функциональной парадигмы на объектах за кулисами.
Вот взять фичу с пика 2 выше. Иммутабельность. Есть константный обьект для смены состояния которого будет создана целиком его копия. Потом выяснится, что сборщик мусора охуевает и за кулисами от программиста будет сделана оптимизация - объект будет модифицирован и возвращен как новый иммутабельный. А для наблюдателя он будет ко-ко-ко стронк конст. Нахуя? Слов readonly и const недостаточно? Нимодно для хипстерков?
Пройдите нахуй с такими цирками.
>даже циклы понятнее Я про то же и говорю. Нужно весь линк и связаное с ним говно тихо захоронить за плинтусом. Для серьезных вещей это нечитаемое говно, но школьникам и слабоумным макакам он портит код и нервы тем кто его читает.
>>658594 > Ты не из Android треда? > Нет А мне кажется ты пиздишь, очень уж на него похоже. В любом случае, проще тебя игнорировать, чем спорить с тобой из монитора уже жир сочится. Можешь и дальше подрывать свою жопу, все равно на развитие C# ты повлиять не можешь.
>>658372 >Не понимаю. Гугли In memory DB .NET C#. Это короче БД, которые хранятся в оперативной памяти. Обращения с ними как к ДБ, опять же доступа от клиента из приложения можешь и не давать. Саму БД заполняешь при запуске, допустим. После завершения просто память становится свободной. Никаких следов особых не оставляешь
>>658594 >функцию не привязаную к объекту Глобальную? Не над. >иммутабельный объект будет модифицирован Ну привет, по звездам узнал или просто из будущего? >readonly и const недостаточно? Конечно достаточно, мы ведь любим boilerplate. >Я про то же и говорю Нет, циклы в 16 году, кхм, да проще тебе ебало набить. Линк (именно linq синтаксис) прост и читаем, потому что там нет ебаных скобок/стрелок/индексов. На школьников, макак и их код всем похуй >Нужно весь линк Хорошо что ты не design team, правда?
Аноны, есть на примете материалы бля быстрого въезда в ASP .NET 5 MVC 6? Опыта особо нет, пилил в вузе разве что курсаче-магаз на jsp. Хочу полного понимания, как работает фреймоворк, а натыкаюсь на гайды "как вывести HW если VS это делает за тебя"
Аноны, есть на примете материалы для быстрого въезда в ASP .NET 5 MVC 6? Опыта особо нет, пилил в вузе разве что курсаче-магаз на jsp. Хочу полного понимания, как работает фреймоворк, а натыкаюсь на гайды "как вывести HW если VS это делает за тебя"
Сабж: Требуется построить хеш-таблицу, для поиска в которой используется метод открытой адресации (размещение и поиск элементов – обязательно, удаление – желательно). Длина таблицы q – простое число в диапазоне 10-20 тысяч. Таблица строится для набора случайных символьных строк длиной 1-20 символов и хранит номера или адреса этих строк. Хеш-функция для строки S длины L: f(S) = ((…(S[1] 31 + S[2]) 31 + …+S[L-1]) * 31 +S[L]) mod q. Необходимо вычислить среднюю трудоемкость поиска при различной заполненности таблицы (например, 25, 50, 75, 90 и 99%). Для этого нужно сначала разместить в таблице нужное число строк, а потом для каждой строки подсчитать число шагов, выполняемых при ее поиске. Все вычисления провести для трех вариантов: линейные пробы, квадратичные пробы и двойное хеширование Как решить? Вообще нихуя не понял.
Аноны. Есть много сопровождающих файлов. Они находятся в %папке_нэйм%. Свойства файлов Build Action = None, Copy To Output Directory = always. После компиляции они лежат в %путь%\bin\Debug\%папка_нэйм%. Как изменить путь, чтобы они лежали в %путь%\bin\Debug\ ? Пикрелейтед
Проблема-не могу в многопоточность... Читаю и мозг не может усвоить то что прочитал, понятно ток зачем это нужно, а как с этим работать даже на примитивном уровне не укладывается. Есть что-то доступное для понимаю
Сап шарпач. Пытаюсь самостоятельно вкатиться в MVVM. Возникли сложности: 1. Есть Listbox, он привязан к коллекции строк. На этой же View есть кнопка Add. Она вызывает окно для добавления. Суть вопроса: как проще передать значение из одной ViewModel в другую без использования делегата не нарушая ООП и паттерна MVVM? пикрелейтед
2. Имеется структура: MainWindow.xaml (основное окно) с ContentControl привязанный к CurrentViewModel и DataContext = MainWindowViewModel, где CurrentViewModel это MainView + MainViewModel Как оформлять второстепенные окна (такие как в пункте 1): а) Window с ContentControl привязанный к ViewModel и DataContext = WindowViewModel, где ViewModel это AddView + AddViewModel (как в моём примере) или б) Рисовать интерфейс прямо в Window и просто указывать DataContext = WindowViewModel
>>661237 Тоже бился над вопросом. Все таки использовал делегаты, а точнее делал через медиатор и подписку на сообщения. Тут нечто похожее http://www.codeproject.com/Articles/35277/MVVM-Mediator-Pattern У меня было MainWindowViewModel, где хранились все объекты окон-"детей". То есть, если я открывал из MainViewModel новое окно, а в новом окне что-то делал и нажимал на нем на кнопку "ОК" - оно слало меседж. МейнВьюМодел по этому вызову грохал открытое окно, в зависимости от самого меседжа, и выполнял что-то. Согласен что не идеально, зато работало.
>>661301 А что сейчас используют для таких задач? Нет, ну правда, если кинешь хоть пару названий - пойду читать об этом. Самому уже стыдно честно говоря отставать.
>>661309 Знал что эта функция была, но не знал частью чего, и что ещё можно делать.
А ещё такой вопрос: Task сам умеет подхватывать Credentials текущего юзера, залогиненого через ВиндовсАвторизацию, или использует AppPool юзера, под которым запущен asp.net mvc сайт?
Методом тыка пишу для друга приложение с винформс. В принципе, оно весьма простое, и даже я, не умеющий программировать, справился бы с ним (уже был опыт с подобным приложением, только там я зачем-то выбрал VB). Но есть один вопрос, который методом тыка не решить, нагуглить и спиздить готовое решение (в прошлой программе я так часто делал - например, нагуглил чужую программу с графиком, взял код графика и методом тыка подогнал под себя) тоже не получается.
Задача: пользователь выбирает количество столбцов (от 3 до 7) в таблице. Рисуется таблица в две строки с соответствующим количеством столбцов, при этом в каждой ячейке второй строки есть TextInput, значение которого будет в дальнейшем использовано в качестве переменной (первая строка - номера лет, причём первый из них задаётся пользователем, но с этим я как-нибудь и сам, думаю, справлюсь). Как такое можно реализовать?
Бля, ребята, видели бы вы мою проверку деления на ноль, вас бы инфаркт хватил...
>>661318 Ну смотри, ты сам попросил, если что. Я хоть и не программист, но понимаю, что смотреть на такое страшно и больно.
[code] Dim ПроверкаДеления1 As Double If ((NumericUpDown58.Value <> 0 And NumericUpDown59.Value = 0) OrElse (NumericUpDown61.Value <> 0 And NumericUpDown62.Value = 0) OrElse (NumericUpDown64.Value <> 0 And NumericUpDown65.Value = 0) OrElse (NumericUpDown67.Value <> 0 And NumericUpDown68.Value = 0) OrElse (NumericUpDown70.Value <> 0 And NumericUpDown71.Value = 0) OrElse (NumericUpDown73.Value <> 0 And NumericUpDown74.Value = 0) OrElse (NumericUpDown76.Value <> 0 And NumericUpDown77.Value = 0) OrElse (NumericUpDown79.Value <> 0 And NumericUpDown80.Value = 0) OrElse (NumericUpDown82.Value <> 0 And NumericUpDown83.Value = 0) OrElse (NumericUpDown85.Value <> 0 And NumericUpDown86.Value = 0) OrElse (NumericUpDown88.Value <> 0 And NumericUpDown89.Value = 0) OrElse (NumericUpDown91.Value <> 0 And NumericUpDown92.Value = 0) OrElse (NumericUpDown94.Value <> 0 And NumericUpDown95.Value = 0) OrElse (NumericUpDown97.Value <> 0 And NumericUpDown98.Value = 0) OrElse (NumericUpDown100.Value <> 0 And NumericUpDown101.Value = 0) OrElse (NumericUpDown103.Value <> 0 And NumericUpDown104.Value = 0) OrElse (NumericUpDown106.Value <> 0 And NumericUpDown107.Value = 0) OrElse (NumericUpDown109.Value <> 0 And NumericUpDown110.Value = 0) OrElse (NumericUpDown112.Value <> 0 And NumericUpDown113.Value = 0) OrElse (NumericUpDown115.Value <> 0 And NumericUpDown116.Value = 0) OrElse (NumericUpDown118.Value <> 0 And NumericUpDown119.Value = 0) OrElse (NumericUpDown121.Value <> 0 And NumericUpDown122.Value = 0) OrElse (NumericUpDown124.Value <> 0 And NumericUpDown125.Value = 0) OrElse (NumericUpDown127.Value <> 0 And NumericUpDown128.Value = 0) OrElse (NumericUpDown130.Value <> 0 And NumericUpDown131.Value = 0) OrElse (NumericUpDown133.Value <> 0 And NumericUpDown134.Value = 0) OrElse (NumericUpDown136.Value <> 0 And NumericUpDown137.Value = 0) OrElse (NumericUpDown139.Value <> 0 And NumericUpDown140.Value = 0) OrElse (NumericUpDown142.Value <> 0 And NumericUpDown143.Value = 0) OrElse (NumericUpDown145.Value <> 0 And NumericUpDown146.Value = 0) OrElse (NumericUpDown148.Value <> 0 And NumericUpDown149.Value = 0) OrElse (NumericUpDown151.Value <> 0 And NumericUpDown152.Value = 0) OrElse (NumericUpDown154.Value <> 0 And NumericUpDown155.Value = 0) OrElse (NumericUpDown157.Value <> 0 And NumericUpDown158.Value = 0) OrElse (NumericUpDown160.Value <> 0 And NumericUpDown161.Value = 0) OrElse (NumericUpDown163.Value <> 0 And NumericUpDown164.Value = 0) OrElse (NumericUpDown166.Value <> 0 And NumericUpDown167.Value = 0) OrElse (NumericUpDown169.Value <> 0 And NumericUpDown170.Value = 0) OrElse (NumericUpDown172.Value <> 0 And NumericUpDown173.Value = 0) OrElse (NumericUpDown175.Value <> 0 And NumericUpDown176.Value = 0)) Then ПроверкаДеления1 = 0 Else ПроверкаДеления1 = 1 End If
'Делаем проверку для исключения деления на ноль If (РазмерЗаказа.Value = 0 OrElse РазмерЗаказа.ToString = "" OrElse (МашинноеВремя.Value + ВспомогательноеВремя.Value + ВремяНаПодготовкуИЗавершение.Value + ДобавочноеВремяПроизвОднойДетали.Value) = 0 OrElse СовокВремяРаботыОператораВМесяц = 0 OrElse (чСтороннееПроизводствоПрограммы.Checked = True And СтороннееПроизводствоПрограммы.Value = 0) OrElse (чСтороннееПроизводствоПрограммы.Checked = False And СовокВремяРаботыПрограммистаВМесяц = 0) OrElse (чСтороннееПроизводствоПрограммы.Checked = False And ВремяНаписанияПрограммы.Value = 0)) OrElse КПД = 0 OrElse ПроверкаДеления1 = 0 OrElse ВремяРаботыДополнительногоОборудованияВГод = 0 OrElse ВремяРаботыСтанкаВГод = 0 OrElse ПредполагаемоеВремяРаботыСОЖ = 0 Then MsgBox("Расчёт невозможен в связи с делением на ноль. Проверьте введённые данные.") Else '350 строк кода, все вычисления программы, плюс график, плюс всё-всё-всё End If [/code]
И оно, блядь, работает. Всякие NumericUpDown58.Value - это потому что меня заебало в какой-то момент переименовывать гору полей ввода, и я решил, что и так сойдёт. Всё равно дальнейшая поддержка программы не предполагалась.
>>661332 Конечно, всё это можно было алгоритмизировать (и, думаю, очень просто), но накатать простыню было в разы быстрей, чем разбираться, как сделать это по уму.
MediatorRegister - эту функцию используешь там где у тебя должно происходить выполнение чего-либо (обычно это MainViewModel, например в главное форме реагировать на клики с дочерней формы).
CreateOrder - это у меня функция в дочерней форме которая срабатывает на клик и вызывает сообщение по этому запросу. При чем можно передавать параметр, а можно не передавать.
readonly object CreateOrderToSupplierSave - это просто статический объект, у меня хранит просто уникальное название. Реально можешь туда гуиды пихать, объекты или инты. Главное что бы не дублировалось с другими. В идеале засовывать все такие сообщения в один класс с которого потом и выбирать.
Всё что ниже полоски - у меня три отдельных файла-класса, которые и позволяют использовать эту штуку.
Ах да, забыл,
private Mediator _mediator
эту штуку объявляй в всех класах и вьюмоделях и при обьявлении вьюмодели передавай туда как параметр этот медиатр и назначай его на эту локальную переменную. Как-то так:
CustomersViewModel = new CustomersViewModel(_mediator); CustomersView = new View.CustomersView(CustomersViewModel);
>>661380 По организации - либо ты хранишь объект дочерней вьюмодели и вьюхи в родительской вьюмодели, либо пытаешься осилить фреймворки типа призмы. Третьего не дано.
Нужно было игнорировать элементы, бросающие определенные экспешены в linq-запросах (и как-то обрабатывать эти эксепшены), написал такой поехавший костыль. https://dotnetfiddle.net/3KJXlQ С этой хуетой все нормально же будет?
Компадрес, в каком треде выполняется тело метода Invoke()? В треде, который этот метод вызвал, или в треде, в котором находятся контролы, к которым идёт обращение в теле метода? Речь о виндоус формах, если шо.
Котаны, такой вопрос. Умею кодить на шарпе и Java. Но опыт промышленной разработки веб приложений был только на Java. На шарпе только винформ. Хочу в ближайшем будущем сменить работу и уйти кодить на шарпе веб приложения. Собственно, вопрос - хватит ли опыта Java до этого? При разработке использовал rest, spring контроллеры и вот это все. По идее же реализация логики серверной части не должна сильно отличается, различия скорее будут в части представления.
Поясните за суть атрибута [STAThread] над функцией Main(). Я праильно понимаю, что в приложении, над мэином которого висит такой атрибут, нет смысла создавать и использовать треды, ибо работа программы будет только в одном треде одновременно, хоть и будет возможность переключаться перед тредами? Чтобы треды в программе работали одновременно нужно обязательно хуярить атрибут [MTAThread] над мэином?
Посоны, как мне минимизировать проблемы от перехода пары тысяч клиентов с винформс-приложения, собранного под 3.5, на сборку под 4.5? Что делать, если добрая пара сотен до сих пор сидит на xpшке? Очень хочу в новый шарп, но до сих пор максимум, что могу себе позволить, это линк. В свое время простой переход с 2.0 на 3.5 вылился в год геммороев и кучу съеденного кала клиентов, не желавших опгрейдицца. Как могла мс нас так подставить с четвертой версией? Нет пути.
>>651013 (OP) Хули в моём VS15 ынтерпрайз эдишн не подключается using System.Windows.Forms; ? А блять? Мне нужно конкретно MessageBox.Show(), а он именно там, судя по справке мелкомягких.
>>661863 Из территориального принципа лол. Компания, в которую хочу уйти, расположена недалеко от дома, где я квартиру купил. Против java вообще ничего не имею.
Шарпаны, решил я начать изучение БД. Создание таблиц, связывание БД с формочками, заполнение, удаление строк, отбор...В общем, в Вижуал Студии выбрал "Создать проект базы данных SQL Server", а что это такое плохо себе представляю. Это приложение позволяет создавать таблицы и возможность писать запросы к этим таблицам или что? Можно ли делать на этом "Проекте БД SQL Server" коммерческие приложения? Например, приложение, полностью моделирующее сценарий работы турфирмы/отеля/автомойки/школы етц... Какие эта встроенная в студию БД имеет ограничения?
>>661317 >Задача: пользователь выбирает количество столбцов (от 3 до 7) в таблице. Рисуется таблица в две строки с соответствующим количеством столбцов, при этом в каждой ячейке второй строки есть TextInput, значение которого будет в дальнейшем использовано в качестве переменной (первая строка - номера лет, причём первый из них задаётся пользователем, но с этим я как-нибудь и сам, думаю, справлюсь). Как такое можно реализовать? Помогите, пожалуйста, а то я опять буду сюда говнокод свой постить.
Сап шарпач. Есть планшет Wacom Cintiq 13HD. Программирую приложение под винду на шарпе. Есть какое-нибудь api для работы с функциями данного планшета и как можно его получить?
>>662237 О чем пишут эти ваши Рихтеры и Албахари, чего нельзя найти в интернете в процессе работы над каким-нибудь проектом? Я это к тому, стоит ли читать спец литературу, если ты не применяешь её в данный момент на практике? Забудется же всё нах
Аноны, вкатываюсь в азы asp, картинка не пашет. Структура проекта в аттаче, креплю так: <img src="~/Res/pic.jpg"/> Естественно не находит. В чем лажа? Алсо, интелисенс подсказывает почему-то название пика до переименовывания. Ребилды, клины делал. В рантайме не видит - переписывал и без Res и ../ - не могу понять как надо. На SO пишут что как я написал в аналогичном треде. ЧЯДНТ?
>>662434 Читать стоит, хотя бы по диагонали для ознакомления с общими возможностями и подходами. Потом будет проще гуглить при работе с проектом. Общее развитие, так сказать. Иногда просто не знаешь, что необходимо гуглить, и в таких случаях выручает общий базис, от которого можно отталкиваться в гуглеже.
>>662447 Сам спросил - сам ответил: app.UseStaticFiles();
Раунд 2: есть x3dom. Сую .x3d файл в wwwroot. <x3d width='500px' height='400px'> <scene> <inline url="~/Res/heart.x3d"></inline> </scene> </x3d>
Глет меня далеко в белую степь, ничего не загружая. Есть у кого идеи как правильно path писать? В идеале x3d должен лежать рядом с html-ом. Но у меня cshtml во вьювере. Есть вариант сделать статический html-ник в котором эта 3д модель содержится и подтягивать с помощью cshtml. Сильно хуево?
>>662434 >О чем пишут эти ваши Рихтеры и Албахари Да хуйню они пишут, скомпиленную из тредов SO. Книги о C# просто решительно не нужны, ибо это чистая потеря денег и времени.
>>662447 А у тебя маршруты верно прописаны? И бандлы тоже?
>>651013 (OP) > Мне тут знакомый_нейм сказал, что C# умирает, это правда? Может не стоит его учить? >Неправда. C# довольно активно развивается, недавно вышел новый компилятор, шестая версия шарпа, и уже активно разработывается седьмая. Весь дотнет понемногу становится опенсорсным Он потому и стал опенсорсным, что загибается уже.
>>662769 Я же не спорю, я к тому, что одно без другого не имеет смысла. Нужно и читать, и практиковаться. Читать и не практиковаться - все забудешь и ничему не научишься. Будешь практиковаться и ничего не читать - так до старости и будешь писать годнокод, иногда копипастя куски с SO
>>662812 Не нужно тебе в студии БД проектировать, это вообще в отдельных прогах делается (смотря какая у тебя БД). В коде ты просто привязываешь таблицы к объектам.
Посоветуйте образовательный контент для изучения Coded UI. Мне нужно поддерживать тестовый фреймворк и тесты для большого WPF проекта. Статьи с MSDN читал, видео оттуда тоже посмотрел. Особенно заинтересовало разделение проекта на 3 уровня которое рассматривалось в конце видео(что-то вроде:страницы/контролы, действия, тесты).
Расскажите, как в .NET с server-side разработкой обстоят дела? REST-сервисы, HTTP/2, async I/O, веб-сокеты, вот это всё. А то ушёл с C# на Node/Java/Erlang ещё в 2012, когда микрософт объявила стратегию going native и будущее их платформы подвисло. Помню, что WCF обладал крайне годной архитектурой, намного лучшей, чем Service Component Architecture. Но судя по всему в ней ничего так и не добавилось с того времени. Неужели сервер-сайд теперь на ASP.NET делают?
>>663521 >А то ушёл с C# на Node/Java/Erlang Всё, дальше не читал. Иди выпились, выблядок тупорылый, один хуй ты уже биомусор. За Erlang тебе +1, но это как будучи полностью окунутым в большую бочку с поносом бомжей - пытаться почистить туфли. Уёбывай из треда, даун, и больше сюда не заходи.
>>663528 WCF уже умер, к сожалению, хорошая была технология, но устарела, теперь всё пилят на web api 2, если надо какое-то restful api, да, отчасти так можно сказать, что теперь сервер-сайд пилят на asp.net.
>>663528 Если не обращать внимание на хипстерскую моду, нормально всё с wcf, пилят под .net core https://github.com/dotnet/wcf . Не знаю что там учстарело или умерло, всё что было работает.
>>663838 "Даже"? Гугл занимает первое место по ебанутости интерфейсов. Кроме "гениальной" страницы поиска они ничего стоящего никогда не делали. Что ни интерфейс, то пиздец лютейший, начиная от их управляшки корпоративной почтой, и заканчивая тем же адвордсом да аналитиксом. Ну и в целом их экосистема самая пизданутая из великой троицы.
>>664365 Яблопидоры тоже говно, но у них, тащемта, итюнс тащит за всех, остальное еще куда ни шло. Ось на планшетиках не так сильно выебывается, ибо нечему там выебываться. А гмейл и доки - это лайтовое барахло, о котором я и не говорил вовсе, я их даже не видел, собсна. Один раз табличку с кем-то правил групповухой, поплевался с переопределяемых контекстных меню, уебищных табов, да забил. Распиши волксру бана спамерского аккаунта для человека, иеющего только ютубовский акк, тогда и поговорим.
Шарпач, есть одна либа на плюсах, прикрученая через враппер, которая при дебаге через раз убивает молча приложение, иногда даже svchost падает, без дебага пореже, но один хуй бывает. Как узнать что там такое опасное? Студия нахуя не говорит, просто молча останавливает дебаг и всё, как будто оно так и должно быть.
>>655294 Нахуй ты такой парашей занимаешься. Мало того, что ты и так юзаешь двухуровневую архитектуру. Так еще и хочешь, чтобы UI сам хуярил SQL вместо тебя.
>>665899 Ты странный, сижу еще с первых бет, ставиться вообще одной строчкой (ставил и на OS X и на Ubuntu) Даже официальный докер контейнер отлично работает
Начал я читать Рихтера. За две недели не совсем активного чтения(примерно по 20 минут в день) просунулся до начала четвертой главы. Я безнадёжен? Кун 16 лет
С этим кодом (см. рисунок) все в порядке? Так как мои знания в си шарпе отрывочны и все узнавал путем самообучения, меня смущает что я два раза обращаюсь к датасету: 1) ищу через select нужный трек (по пути файла из плеера) в датасете 2) затем через FindById самого детасета получаю Playcount, чтобы его уже наконец инкрементировать. (в UpdateToDatabase() происходит HasChanges => GetChanges => dAdaptTracklist.Update(dbDataSet.Tracklist);)
>>666006 У тебя Playcount есть уже в query.First(). query вообще не нужна, условие поиска можно в .First() отдавать. UpdateToDatabase - это обновиться ДО базы данных Используй ef.
>>665998 Прочел Рихтера за день. Советую тебе бросить программирование и найти для себя другое занятие. Не станешь же ты конкурировать с 12-летними тимлидами? кун-7-лет
>>666001 Чё такого то? Я в 16 саттера, мейерса и александреску читал. Правда единственное что я из этого чтения вынес - что лучше не использовать с++ в принципе.
>>666047 >У тебя Playcount есть уже в query.First(). query вообще не нужна, условие поиска можно в .First() отдавать. Я что оказывается могу прямо в query.First().Playcount записать значение? > UpdateToDatabase - это обновиться ДО базы данных Используй ef Это вообще не понял.
Схема такова: Посоны, мы изменились, мы идем в опенсорс и кроссплатформу! Нужно сотрудничать с моно, это логичный шаг Нужно купить моно, это логичный шаг .. проходит два года .. Извините посоны, не срослось. Хотите C# - пишите под винды и винфоны
Это все тот же embrace extend extinguish, только в этот раз индус поступил чуть умнее.
>>666069 >Ты концепцию reference типов понимаешь? Хорошо, у меня другой вопрос. Я могу прямо в запросе from where select вписать значение в Playcount не используя First().Playcount (потому что First может вернуть null). Что-то типа where db.a = player.a { db.b = 1 }
>>665952 Одной строчкой не хочу. Насколько я понял, там ставится конкретная версия со всеми зависимостями в одну кучу. Завтра выпустят обновление в последней цифре версии и придется все старое удалять и все новое ставить.
А package manager целевой (dnvm) не получается поставить. Во всех инструкциях по установке предлагается одна и та же команда для curl. curl -sSL https://raw.githubusercontent.com/aspnet/Home/dev/dnvminstall.sh | DNX_BRANCH=dev sh && source ~/.dnx/dnvm/dnvm.sh Этот вариант ошибку выдает, которая не гуглится. Других вариантов установки найти не получается.
>>666088 Что ты несешь, идиот? У Microsoft УЖЕ есть кроссплатформенный .NET Framework (.NET Core). А Xamarin - нерабочее говно, и каждый, кто пытался писать на ней что-либо хитроумнее калькулятора подтвердит это.
>>666088 Сэд бат труе. Если они сделают вменяемую реализацию асп под юниксы - кто у них виндоСерверы покупать будет? Хотя и сейчас не совсем понятно, кто их покупает и почему.
>>666104 Хотя мне гугл пишет >NEVER DO THIS. A query should be a query; it should be non-destructively asking questions of a data source. If you want to cause a side effect then use a foreach loop; that's what it's for. Use the right tool for the job.
Ладно, обойдусь чем-то таким var q = dbDataSet.Tracklist.Single(t => t.Path_to_File == player.CurrentFilename); if(q != null) q.Playcount++;
Аноны, хелпаните плез. Что есть в шарпе для работы с веб-сокетами? Суть: программа подключается к серверу по адресу ("wss://*"), там подписывается на определенный канал и дальше уже работает. Гуглил, но нашел только примеры, как запилить сокет-сервер на C#, а нужно написать не сервак, а сам клиент. Следует ли юзать какие-то сторонние либы или и так все есть? Посоветуйте, с чего примерно начать.
>>666114 MS сейчас в основном зарабатывает только на продаже облаков Azure. А на Azure пофиг чему крутится (windows/linux/open solaris), главное что бы платили за процессорное время.
>>666135 Это твоя гипотеза, или есть какая-то публичная статистика по распределению доходов?
Кстати, в чем принципиальное отличие облака от необлака? Вот раньше хостили сайты на хост-провайдере, теперь хостят на Азуре. В чем разница? И там и там удаленное железо.
На последнем выступление Наддела говорил что у них теперь новая политика (дословно не помню): "Разрабатываете на чем вам удобнее только не слазейте с Azure"
>>666157 > Кстати, в чем принципиальное отличие облака от необлака? Возьми да попробуй, там есть бесплатный пробный период (30дней и >30k рублей) для тестов
>>666179 Может быть доход от Азуры год назад составлял 0.1% общих доходов компании, а стал 0.24%. Рост 140%.
>Падение вполне предсказуемое, ведь рынок персональных компьютеров и ноутбуков сейчас переживает далеко не лучшие времена. А что случилось с рынком десктопов? Разве в странах золотого миллиарда есть хоть один человек, у которого нет полноценного компьютера?
>>666208 > 2016 > полноценного компьютер Пиздос, ты из под камня что-ли вылез (сейчас даже на 10 можно перейти бесплатно)? Даже объяснять тебе ничего больше не хочется, настолько тупые у тебя вопросы (и гуглить ты не умеешь).
>>666208 >Может быть Хули тут гадать если msft - публичная компания, каждый квартал они публикуют отчётность. Вот я сначала написал это и пошёл такой читать этот самый annual report, а у них там оказывается хуй чего разберёшь.
>Commercial Other revenue increased $3.3 billion or 44%, primarily due to higher Commercial Cloud revenue. Commercial Other revenue included an unfavorable foreign currency impact of approximately 3%. Commercial Cloud revenue grew $3.0 billion or 106%, mainly due to subscriber growth and higher premium mix of Office 365 Commercial, as well as continued revenue growth from Microsoft Azure.
Офис 365 включён и в "commercial licensing" и в "commercial cloud" в разделе "commercial other" поэтому сложно сказать какова доля azure в этих 6 миллиардах, имея в виду что в основном рост пришёлся на более дорогие лицензии и рост числа подписчиков офис 365.
Сравним это (хуй пойми сколько процентов от 6 миллиардов) с >Our server products revenue grew $1.1 billion or 7%, primarily driven by higher premium mix of Microsoft SQL Server, Windows Server, and System Center. т.е. с 15.7 выросли до 16.8 миллиардов. Так себе для azure.
>>666217 >сейчас даже на 10 можно перейти бесплатно Наверное это не из-за того, что все в айфоновом угаре выбросили ПК, а из-за того, что всех устраивает семерка и МСу просто нечего предложить.
Я в курсе, что мобильный рынок растет как снежный ком и уже у каждой пенсионерки по два портабла. Но десктопы-то никуда не делись, наоборот их сейчас больше, чем было когда-либо. Они просто стали обыденностью и поэтому про них никто особо не говорит.
>>666247 m8 с того же сайта >Worldwide PC shipments hit an eight-year low in 2015 after declining for the fourth consecutive year. Global shipments dropped by 8 percent to 289 million in 2015, the lowest it’s been since 2007.
>The decline of the PC industry started in 2012, around the time when tablet sales really took off. After a brief respite in 2014, when PC sales were virtually flat thanks to the end of official support for the popular Windows XP and the subsequent upgrade cycle, the market’s decline re-accelerated in 2015 despite the release of Windows 10 in July.
>Worldwide PC shipments totaled 75.7 million units in the fourth quarter of 2015, a 8.3 percent decline from the fourth quarter of 2014, according to preliminary results by Gartner, Inc. For the year, 2015 PC shipments totaled 288.7 million units, an 8 percent decline from 2014.
>>666254 >8 percent decline Да хоть 50%, что с того? Все-равно в мире больше миллиарда уже имеющихся пользователей. Все-равно ежегодно выпускается и продается космическое количество новых машин: >288.7 million units Это типа все, не рынок уже?
>>666304 на рынках очень важен momentum. Рождаемость то не падала, из кризиса вырулили, а компов берут меньше и меньше. И это не один неудачный год, а -21% за пять лет. По-твоему на вопрос >А что случилось с рынком десктопов? может быть только два ответа: он умер - за пять лет ни одного не продали или всё заебись - продаётся? Такая хуйня вызывает feedback loop с дальнейшим оттоком инвесторов и дальнейшей потерей рынка, учитывая что мобилы и планшеты заменяют всё больше и больше юзкейсов десктопов. >Это типа все, не рынок уже? Ну вот например, как следствие, разработка под десктоп уже практически не рынок, да.
Аноны, есть ли готовый фильтр мата на С#? Как его лучше сделать? Нужно, чтобы часто используемые матерные слова заменялись на звёздочки "хуй = *". Пока начал делать так (пикрелейтед).
Ни одна команда не выполняется без ошибок. За последние 5 месяцев ни одного коммита, так что видимо это продакшн версия. Весь день головой об стену бьюсь и бубном махаю, но так и не смог .net core runtime поставить. Я даже ужин пропустил, а уже спать пора.
В каком-то смысле разработчики преуспели. Даже такая примитивная утилита как dnvm очень аутентично передает атмосферу виндовс и вызывает уйму эмоций: от ненависти и отвращения до желания забиться в угол и заплакать.
Майкрософт. Заставляем вас ненавидеть компьютеры since 1975. Теперь и на юникс-подобных системах.
>>666795 Есть класс проблем, которых не было и не будет ни на юниксах, ни где-либо еще. Это классические виндо-проблемы, обусловленные неизвестно чем. Наверное внутри МС происходит какая-то особая корпоративная шиза, которая сильно искажает взгляд людей на некоторые вопросы. Иначе не объяснить, как десятки тысяч разработчиков десятилетиями умудряются делать одни и те же идиотские ошибки в каждом новом продукте.
Вот, например есть чудесно работающая нативная система версий и апдейтов в юниксах. Майкрософт делают программу для этих ОС. Вместо того, чтобы поступить как все нормальные люди и вписать свой софт в уже существующую архитектуру, они делают что? Они пишут свою собственную систему, которая по сути является имитацией виндосхемы инсталяция-реестр-деинсталяция. И дают ее публике ее как отдельный самостоятельный софт. Зачем? Архитектура без причин усложняется и раздувается. Появляются лишние сущности, которые вообще не нужны, всячески нарушается принцип Оккама. Пользователям приходится устанавливать дополнительные сопутствующие программы, которые им не нужны.
Это один из примеров чисто МС-проблемы, которая нелепа до идиотизма и почти никто из разработчиков, кроме МС, таких проблем пользователям не доставляет. МС за 40 лет хоть одну программу сумели написать, не сделав для нее полудюжины костылей с жесткими зависимостями и не выдав каждый из них за самостоятельную современную и актуальную программу/технологию/фреймворк? Что-то я не помню.
>>666750 Не знаю как у тебя так получается. Я диплом писал на дотнет кор бета8, запускал это на Рапспбери Пи в Распбиан ОС. После выхода RC1 пробовал запустить в Mint, всё норм.
>>666874 Но сейчас у них есть касяк с Омнишарпом в VS Code. Без установки clr от Mono не работает. Но это касается VS Code, а она в бетке ещё, так что простительно.
http://ideone.com/unbgVK Есть код с такой структурой. Reports - это отчеты выполнения одних и тех же тестов (запускаются несколько раз, нужно сверить результаты). Для отображения мне нужно выбрать данные в таком виде: class TestInfo { string Name; List<string> Statuses; // List() { "fail", "suc", "fail"} например }
Т.е. нужно паралельно пройтись по репортам и смержить в один. Как это по-человечески сделать?
>>666900 >проблема как раз-таки в бубунте. Что значит проблема в убунте? МС эту конкретную версию под убунту делали и инструкцию по установке писали под убунту. Если "проблема в убунте" - значит проблема в их программе, если она на целевую платформу не ставится легко.
Ссылку эту уже видел за сегодня раз пять. Пакет, который там предлагается ставить для решения проблемы, в 14 убунте стоит с завода и регулярно обновляется.
>>666964 https://docs.asp.net/en/latest/getting-started/installing-on-linux.html Единственная, которую нашел. В остальных местах ее копипастят. Есть еще одна в одну строку, без менеджера пакетов, но там вообще зашквар >>666105 > Насколько я понял, там ставится конкретная версия со всеми зависимостями в одну кучу. Завтра выпустят обновление в последней цифре версии и придется все старое удалять и все новое ставить.
Второй шаг из инструкции я так и не смог сделать, ошибки с сертификатами. А если отменять сертификаты и запускать из-под суперюзера, то: >Downloading dnvm as script to '/home/username/.dnx/dnvm' >Failed to download 'https://raw.githubusercontent.com/aspnet/Home/dev/dnvm.sh'..
dnvm установил через жопу - скачал руками исходники и из них поставил, там скрипты на установку есть. Получилось установить (вроде бы). Команда dnvm находится, номер версии пишет, хэлп показывает. Пытаюсь что-нибудь обновить или установить - ошибки. Ну ты видел вот здесь >>666750
>>667597 >а лист тут лишний, имхо Может быть. Я просто не знаю что быстрее 10 ElementAt по ValueCollection или 1 ToList и 10 простых обращений по смещению.
Я уже несколько освоился в самом шарпе, но когда стал тыкать ксамл - прихуел. Нормально ли его будет изучить по экзам рефу 484 (винстор аппс)? Или посоветуйте простенькую книжку, чтоли. А то доебало смотреть эти туториалы "как поменять цвет кнопки", где нихуя не объясняют механизмы в ее шаблоне. Вообще заебывает модель преподавания от деталей к общему - я люблю от общих концепций к частностям изучать, а такого почти не встречается.
Пацаны, помогите невфагу. Начал изучать шарпы недавно, решил попрактиковаться и ставил себе задачи. И вот, решил писать парсер для авито, который будет уведомлять о новых объявах по указанному запросу. Вроде, реализовал, но теперь хотел запилить мультипоиск. Можно конечно просто массив строк передавать, но это я и так умею. Решил запилить вкладки, типа нажимаешь + и открывается ещё вкладка с отдельным поиском и таблицей результатов. Как это всё можно реализовать? Стаковерфлоу пока не дал ответов, да мне тут больше совет нужен.
Шарпач, я заебался. Поясни за деплой asp .net: есть vs15 community, есть одностраничный mvc-app. Как дебажить его на IIS Express 10, установленный на компе? При чтении есть жопобольное подозрение, что комьюнити может только в свою локальную IIS, либо azure. В чем боль: есть .x3d шник, добавил хэндлер, добавил mime тип конфиге. Не работает. Взял IIS Ex10, залил в его дефолтный апп свою html с x3d (x3dom юзаю), добавил через конфигуратор IIS нужный .x3d тип и mime его model/x3d+xml. Работает, екарный мамай! И не ебу че терь делать, то ли все сносить перенастраивать, то ли инструмент фришный не канает. В Web public только azure и remote server. IIS нету.
ITT элита продолжает обсуждает будущее этого прекрасного и современного продукта компании Microsoft. Только в этом треде элитные разработчики ответят на самые острые вопросы индустрии.
Литература вторым постом
1. Ресурсы:
- http://stackoverflow.com/questions/tagged/c%23
- http://www.tutorialspoint.com/csharp/
- http://professorweb.ru
- http://net-informations.com
- http://habrahabr.ru/hub/csharp/
2. Онлайн-компиляторы:
- https://dotnetfiddle.net/ - возможно лучший вариант. Встроено немного убогое, но все-таки автодополнение и проверка синтаксиса.
- http://ideone.com/
- http://csharppad.com/
- http://www.tutorialspoint.com/compile_csharp_online.php
- http://rextester.com/l/csharp_online_compiler
3. WinForms или WPF?
Зависит от задачи. Для небольших проектов, скорее всего, будет достаточно винформочек. В случае, если разрабатываемое приложение достаточно серьёзное, то возможно его стоит писать с использованием WPF. WPF очень хорошо работает с паттерном MVVM ( https://ru.wikipedia.org/wiki/Model-View-ViewModel ), и позволяет пилить очень кастомизированные интерфейсы с помощью XAML, что в случае WinForms, делать намного сложнее.
4. Мне тут знакомый_нейм сказал, что C# умирает, это правда? Может не стоит его учить?
Неправда. C# довольно активно развивается, недавно вышел новый компилятор, шестая версия шарпа, и уже активно разработывается седьмая. Весь дотнет понемногу становится опенсорсным, а ASP.NET становится независимым от платформы. В некотором смысле понемногу вымирают десктопные приложения с развитием веб-технологий, но в том же энтерпрайзе он еще очень даже востребован.
5. Какую ИДЕ выбрать?
Для Windows самым очевидным вариантом будет Visual Studio (https://www.visualstudio.com/en-us/downloads/download-visual-studio-vs.aspx). Студия распространяется в двух редакциях: бесплатная коммьюнити-версия и платный энтерпрейс эдишн. В большинстве случае будет достаточно Community-версии: она поддерживает и C#, C++, VB.NET и F#, а так же имеет возможность установки дополнений
Для мака и никсов самый юзабельный вариант - MonoDevelop ( http://www.monodevelop.com/download/ ).
Для vim можно использовать OmniSharp ( https://github.com/OmniSharp/omnisharp-vim ).
Кросплатформенный полуредактор/полуIDE VS Code ( https://www.visualstudio.com/en-us/products/code-vs.aspx )
Также существуют плагины для Atom'а и Sublime Text, но функциональность там достаточно сильно урезана.
Кроме того, в данный момент JetBrains активно пилит свою IDE для шарпа (Project Rider), вероятно в ближайшее время станут доступны первые EAP. IDE заявлена как кросплатформенная, со всем решарпер-функционалом, поддержкой отладки, моно и .net core.
SharpDevelop - еще одна IDE для C#, отличается малым размером (около 20мб) и опциональной портабельностью, при этом имея дизайнер WinForms и WPF, а также интеграцию с FxCop, StyleCop и прочими ништяками. Если хочется что-то по быстрому набросать, а выкачивать гигабйты нет желания, то возможно SharpDevelop будет лучшим вариантом.
6. С# для мобильной разработки
Если нужны инструменты для разработке под мобилы, ставь сразу VS2015 и при установке выбирай все нужные компоненты.
Больше информации тут - https://msdn.microsoft.com/ru-ru/library/dn771552.aspx
Из актуальной литературы
- Xamarin Mobile Application Development
- Xamarin Essentials
7. Дополнительные инструменты для разработки на C#
LINQPad - сорт оф REPL, с возможностью быстрого подключения к БД и удобной визуализацией данных
dnSpy - декомпилятор, малоизвестный форк ILSpy, где реализована возможность модификации IL-кода прямо в EXE и DLL файлах, отладка IL-кода и много других фич для reverse engineering'а. Плюс няшные темы как в студии
dotPeek - бесплатный декомпилятор от JetBrains
scriptcs - для запуска C# кода как скриптов, возможность использовать как REPL
8. Расширения для студии
ReSharper - одно из известнейших. Рефакторинги, умный автокомплит, настраиваемый стиль кода. Платный, но можно стянуть с торрентов
Supercharger - показывает "карту" с классами, методами и всем остальным сбоку от кода с возможностью прыгать по ним
Indent Guides - показывает вертикальные линии на каждом уровне отступов.
Format document on Save - форматирует код каждый раз при сохранении документа
Code alignment - Выравнивает код по указанным символам. Удобно, например, при инициализации словарей или в перечислениях
Обзор Roslyn: https://github.com/dotnet/roslyn/wiki/Roslyn%20Overview
Новые возможности C# 6.0: https://github.com/dotnet/roslyn/wiki/New-Language-Features-in-C%23-6
ПРИНИМАЮТСЯ ПРЕДЛОЖЕНИЯ ПО ШАПКЕ
Код этой шапки: http://pastebin.com/cKKXYArs
Прошлый тред тонет здесь: https://2ch.hk/pr/res/626848.html