Существует множество различных платформ и языков программирования, однако среди них нет более элитного, чем 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 - Выравнивает код по указанным символам. Удобно, например, при инициализации словарей или в перечислениях
Существует множество различных платформ и языков программирования, однако среди них нет более элитного, чем C#. Это поистине язык богов, сочетающий в себе простоту использования с поистине неограниченными возможностями. Знание C# — прекрасный детектор современного, умного и успешного человека. Изучение платформы .NET безошибочно указывает на успешного в будущем человека.
ITT элита продолжает обсуждает будущее этого прекрасного и современного продукта компании Microsoft. Только в этом треде элитные разработчики ответят на самые острые вопросы индустрии.
Breaking news
Microsoft анонсировала MSSQL Server для линукса
Microsoft купила Xamarin
JetBrains готовит IDE для шарпа (Project Rider), ведется активная разработка C# 7.0
Литература и видеокурсы
По поводу литературы на русском: на некоторые из перечисленных книг есть переводы, которые можно найти на том же рутрекере, однако, зачастую эти переводы неактуальны, содержат неточности, и не самые понятные варианты перевода. Кроме того, переводы обычно пилятся только для нескольких самых популярных книг, более-менее серьёзный материал не переводят. Всегда можно сесть со словарем и понемногу читать, переводя непонятные фрагменты. Это очень полезно, так как в любом случае в разработке без знания ангельского делать нечего. Если очень хочется, то можно гуглить по запросам: "C# 5.0, Справочник. Полное описание языка", "C# для профессионалов. Тонкости программирования", "Программирование на платформе Microsoft .NET Framework 4.5 на языке C#" или временами заглядывать в соответвующую ветку на рутрекере.
Автор
Название
Описание
Год
Литература для ньфагов и стремящихся
The C# Player's Guide
The C# Player's Guide, второе издание
Отличная книга для ньюфагов в шарпе, все расписывается довольно подробно, очень много примеров кода
2015
Joseph Albahari и Ben Albahari
C# 6.0 in a Nutshell
Огромнейший справочник, over 1000 страниц, покрывает почти все области, начиная с синтаксиса и базовых типов и заканчивая интеропом и рослином
2015
Joseph Albahari и Ben Albahari
C# 6.0 Pocket Reference
Просто выжимка из справочника, можно всегда держать рукой
2015
Andrew Troelsen
C# 6.0 and the .NET 4.6 Framework
1600-страничный учебник по шарпу, покрывает BCL, WPF и ASP.NET, небо и даже аллаха
2015
Jay Hilyard и Stephen Teilhet
C# 6.0 Cookbook
Книга в формате "проблема-решение", можно пройтись по оглавлению, найти интересные проблемы и попыпаться самому решить, а уже потом посмотреть представленное решение. Книга скорее не для ньюфагов, а для тех, кто уже знаком с шарпом
2015
Более серьёзный материал, для освоивших шарп на более-менее серьёзном уровне
Jon Skeet
C# in Depth
Написана в виде истории версий C#, начиная с C#1.0. Описываются возможности, которые были добавлены в определенной версии и далее достаточно хардкорно и подробно эти возможности расписываются.
2013
Ben Watson
Writing High Performance .NET Code
Просто охуенная книга. В основном фокуируется на оптимизации дотнет-говна. Методы оптимизации проложений, профилирование, вот это все. Крутейшая и достаточно детальная глава по GC. Рассматриваются достаточно известные проблемы вроде "for vs foreach", "класс vs структрура", кастинг, боксинг, перфоманс регулярок, коллекций, исключений. Короче все что нужно, чтобы вам перезвонили.
2014
Jeffrey Richter
CLR via C#
Это классика, это знать надо
2012
Еще более хардкорный материал, если уже совсем читать нечего
Mohammad Rahman
C# Deconstructed
Введение в CLR, модели памяти и выполнения в CLR, байтоебство, JIT. Книга достаточно коротенькая, менее 200 страниц, можно осилить за пару дней. Желателен опыт работы WinDbg и понимание устройства PE-формата. Из-за обилия WinDBG листинга, реального материала достаточно мало, но можно найти что-то интересное
2014
Mohammad Rahman
Expert C# 5.0 with .NET 4.5 Framework
Еще одна книга этого автора, в этот раз намного длиннее. Очень много IL, анализа и разбора стандартной либы (те же коллекции), разбор ивентов, дегегатов, асинхронности etc. на уровне байткода.
2013
Serge Lidin
.NET IL Assembler
ILёбство, во многих местах повторяет документацию MSDN, но при этом имеет много интересных дополнений и заметок. Кроме того все неплохо структуировано и разложено по красивым табличкам
2014
Литература по WPF
Matthew MacDonald
Pro WPF 4.5 in C#
-
2012
Pavel Yosifovich
Windows Presentation Foundation 4.5 Cookbook
-
2012
Литература по ASP.NET
Jon Galloway, Brad Wilson, K. Scott Allen, David Matson
Professional ASP.NET MVC 5
-
2014
Adam Freeman
Pro ASP.NET MVC 5 Platform
-
2014
William Penberthy
Beginning ASP.NET for Visual Studio 2015
-
2016
Литература по асинхронности, параллелизму и всему такому
Stephen Cleary
Concurrency in C# Cookbook
Книга, написанная в формате "проблема - решение". Кроме базовых вещей, вроде асинков и параллелизма рассматриваются TPL Dataflows, Rx (реактивные расширения), тестирование всего этого асинхронного добра, ну и работа этого всего на более низких уровнях абстракции
2014
Eugene Agafonov
Multithreading in C# 5.0 Cookbook
В основном ничего интересного, но есть довольна неплохая глава про синхронизацию, пусть и не слишком детальная
2013
Richard Blewett и Andrew Clymer
Pro Asynchronous Programming with .NET
Опять же, интересного немного, но неплохие главы про асинхронность + UI и анализ дампов памяти в windbg
2013
Литература не по шарпу, но так или иначе связанная с языком
Jeff W. Murray
C# Game Programming Cookbook for Unity 3D
Разработка на шарпе под Unity
2014
Jeff Heaton
Introduction to Neural Networks for C#
Изучение нейронных сетей с примерами кода на шарпе. Под конец пишем программу для распознавания символов и нейроботов.
2008
James D. McCaffrey
Machine Learning Using C# Succinctly
Довольная коротенькая книга на тему машинного обучения с примерами кода на C#. Ничего особого: k-средние, классификация, наивный байес, но с кодом, который всегда можно поразбирать, если что неясно. Распространяется бесплатно
2015
Я не умею читать, что посмотреть?
Курсы от ITVDN - коллекция видеоуроков, по всему дотнетовскому и смежным темам (250 часов, на русском)
Курсы от O'Reilly - набор курсов исключительно по C# от O'Reilly Media (28 часов, на английском)
Что еще нужно знать, чтобы взяли работать за еду?
SQL - подойдет любая книга по MSSQL/MySQL: базовые запросы, SELECT, INSERT, DELETE, UPDATE. Джойны, индексы, нормализация. В контексте шарпа еще ORM: Entity Framework, Dapper
Системы контроля версий - обычно гита достаточно: add/commit/push, merge, rebase, checkout, remote's, разрешение конфликтов, трехпанельные дифф-менеджеры, cherry-pick
Гитхабы-гитхабчики - issues, организация пулл-реквестов, интеграция с appveyor, теги, релизы, маркдаун
Хабр - хаб сишарпа на хабре: статейки, новости, проблемы
Онлайн-компиляторы
DotNetFiddle - возможно лучший вариант. Встроено немного убогое, но все-таки автодополнение и присутствует проверка синтаксиса.
ideone - менее удобный вариант, но с поддержкой куда большего количества языков
C# Pad - что-то вроде REPL'а, но онлайн. Есть автодополнение, выполнять текущую строчку можно по Ctrl+Enter
Rextester - онлайн-компилятор с поддержкой десятка языков, в том числе и сишарпа, код компилируется очень быстро
FAQ
Q: WinForms или WPF?
A: Зависит от задачи. Для небольших проектов, скорее всего, будет достаточно винформочек. В случае, если разрабатываемое приложение достаточно серьёзное, то возможно его стоит писать с использованием WPF. WPF очень хорошо работает с паттерном MVVM ( https://ru.wikipedia.org/wiki/Model-View-ViewModel ), и позволяет пилить очень кастомизированные интерфейсы с помощью XAML, что в случае WinForms, делать намного сложнее.
Q: Мне тут знакомый_нейм сказал, что C# умирает, это правда? Может не стоит его учить?
A: Неправда. C# довольно активно развивается, недавно вышел новый компилятор, шестая версия шарпа, и уже активно разработывается седьмая. Весь дотнет понемногу становится опенсорсным, а ASP.NET становится независимым от платформы. В некотором смысле понемногу вымирают десктопные приложения с развитием веб-технологий, но в том же энтерпрайзе он еще очень даже востребован.
Q: Какую ИДЕ выбрать?
A: Для Windows самым очевидным вариантом будет Visual Studio Студия распространяется в двух редакциях: бесплатная коммьюнити-версия и платный энтерпрейс эдишн. В большинстве случае будет достаточно Community-версии: она поддерживает и C#, C++, VB.NET и F#, а так же имеет возможность установки дополнений
MonoDevelop - Возможно самый юзабельный вариант для мака и никсов на данный момент
OmniSharp - набор инструментов интеграции в различные редакторы (Vim, Sublime Text, Emacs)
VS Code - кросплатформенный полуредактор/полуIDE, начиная с недавнего времени поддерживает даже отладку
Project Rider - IDE от JetBrains, которая находится на этапе тестирования. На сайте можно заполнить форму и получать первые EAP. В данный момент функционала мало и IDE еще достаточно нестабильная, но до релиза еще далеко
SharpDevelop - еще одна IDE для C#, отличается малым размером (около 20мб) и опциональной портабельностью, при этом имея дизайнер WinForms и WPF, а также интеграцию с FxCop, StyleCop и прочими ништяками. Если хочется что-то по быстрому набросать, а выкачивать гигабайты нет желания, то возможно SharpDevelop будет лучшим вариантом.
Также существуют плагины для Atom'а и Sublime Text, но функциональность там достаточно сильно урезана.
Q: Пригоден ли С# для мобильной разработки
A: Очень даже, гугли Xamarin. Если нужны инструменты для разработке под мобилы, ставь сразу VS2015 и при установке выбирай все нужные компоненты.
Больше информации тут - https://msdn.microsoft.com/ru-ru/library/dn771552.aspx
Cорт оф REPL, с возможностью быстрого подключения к БД и удобной визуализацией данных. Для большинства задач хватит бесплатной версии, а платную, в случае чего, можно найти в интернетах
Бесплатный декомпилятор, малоизвестный форк ILSpy, где реализована возможность модификации IL-кода прямо в EXE и DLL файлах, отладка IL-кода и много других фич для reverse engineering'а. Плюс няшные темы как в студии
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 - в основном ничего интересного, но есть довольна неплохая глава про синхронизацию, пусть и не слишком детальная - Pro Asyn_chronous Programming with .NET (Richard Blewett, Andrew Clymer) - опять же, интересного немного, но неплохие главы про асинхронность + UI и анализ дампов памяти в windbg
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
>>695002 У меня, например, отладка не хочет заводиться на созданных в ВС проектах, нужно будет посмотреть в чем там дело, как время будет. С созданными в самом райдере все нормально. Как только это починят и юниттесты завезут, все невинформовые проекты перетащу в rider и буду понемногу привыкать.
>>695003 В презентации говори что у них сейчас не поддерживается отладка в проектах скомпилированных под другую архитектуру чем сам Rider (типа x64 на x86 и наоборот). Нужно в настройках проекта выбрать нужную архитектуру и все заработает наверное.
Майки в своей VSC сейчас переориентировались на JS и подзабили на ASP.NET, так что хорошая IDE для osx/linux очень нужна.
>>695507 Ниша явы – банки. Шарп – прочий энтерпрайз. Супер хуйлоад финансовый софт, где важна каждая микросекунда анализа бумажек пишутся на плюсах и более низкоуровенных языках.
https://msdn.microsoft.com/en-us/library/ty0d8k56(v=vs.110).aspx If the associated process does not exit by the end of the interval because the request to terminate is denied, false is returned to the calling procedure. You can specify a negative number (Infinite) for milliseconds, and Process.WaitForExit(Int32) will behave the same as the WaitForExit() overload. If you pass 0 (zero) to the method, it returns true only if the process has already exited; otherwise, it immediately returns false
>>696084 >>696082 >>696081 проблема в том что акробат после отправки не завершается а остается открытым, если руками закрыть, то срабатывает waitforexit()
может нужно как-то по-другому отправлять, чтобы акробат закрывался?
Кароч, нужно ипортнуть написанную дллку прямо в приложуху, по референсам находит ошибку cs1752 (в гугле порыл, ответы только по office), она (ошибка) гонит на отсутствие параметров using (InteropServices), хотя эдакое имеется в длл.
Сборку начал, ошибки нету, но проект все также запускается только с длл в папке. Именно это я хочу исключить, ибо ради небольшой утилиты приходится добавлять кучу библиотек.
Скоро буду сдавать экзамен по C#+NUnit, объясните плз где можно почитать про: 1. атрибуты(Test, TestFixture, SetUp, TestFixtureSetUp, Category ...) 2. категории (Include, Exclude) 3. Всякие Assert'ы 4. NUnit.Framework.TestContext. Что такое, зачем нужно? 5. Наследование TestFixture, порядок выполнения методов
>>696511 Я его не менял, я ручками собрал. Или ты хочешь msbuild-таксу создать? Если так, то отталкивайся от команды ilrepack /targetplatform:v4 /out:output.exe /parallel ".\WindowsFormsApplication1.exe" .\Newtonsoft.Json.dll
>>696351 Почитал. Объясните, пожалуйста, что такое TestContext и зачем он нужен? Из документации понял только то, что это что-то про информацию об окружении.
>>696706 Алгоритмы вроде помню с универа а вот с английским похуже. Есть ли какие еба примеры с объяснениями более менее больших проектов? Сейчас пробую изучать и у меня просто не складывается картинка как из этих небольших кусочков в итоге собирается некая йоба машина (приложение). А все примеры уровня вот хеллоуврод а вот калькулятор.
>>696709 литературу говностатейки на хабре по архитектуре проектов пошурши, а там должно быть более-менее ясно, чего да как. хотя, что тут сказать, небольшие кусочки и составляют любое большое приложение. а их взаимосвязь - это уже уровни логики
>>696709 Компьютер - тупой, представь стандартное обучение, половина программ - просто правильно заученные функции и прям "дико обладать англецким" нужно только в случае, если придется работать с англоязычными клиентами (А также гораздо большее кол-во документации в англ. языке)
>>696722 Да вот плохо это или хорошо, но хипсто-смуззи-фронтенд теперь там дефакто стандарт. Пиздец, сегодня пол дня убли конфигурируя эти КОМПИЛЯТОРЫ ФРОНТЕНДА,блять.
Крудошлёпаны, как в шарпе вообще с ком-портом работают? System.IO.Ports.SerialPort ёбаное глючное говно, просто пиздец как мне печёт. Использовать враппер или пинвок для винапишной реализации? Как вообще гуру работают?
ASP.Net, webforms Есть SqlDataSource с SELECT запросом который выдает несколько тысяч записей, есть грид у которого он указан в качестве DataSourceID. В гриде есть разбивка по страницам. Так вот, что конкретно происходит когда я переключаю страницу? Весь запрос делается заново каждый раз? Потому что страницы ну как-то очень уж долго переключаются, хотя грид завернут в ajax-панель и постбеки не делаются. Как это оптимизировать, не отказываясь при этом от SqlDataSource?
>>697658 Ну про обращается он или нет - можно легко проверить. Грохнуть базу перед переключением. Ну или, хотя бы, изменить в ней запись, которая должна отобразиться. По поводу оптимизации - сделать промежуточный шаг со своим кэшем, который будет считывать/записывать когда тебе нужно.
Аноны, есть вопрос. Немного прохладной - я простой хуй 30 лвла, програмерского образования и сертификатов всяких нет, хотя есть две законченные технические вышки и 8 лет стажа в нефтянке. Есть хобби - С#. Изучаю года 4. За это время написал для себя пару мелких прог, типа планировщика, некой запоминалки для обучения английскому, десятка различных технических конвертеров. И самое главное - уже 2.5 года пилю онлайн игрушку. Почти дописал. По сложности можно сравнить с хартстоуном, только графика хуже ну и звуков совсем нет. В ней есть чистый с#, wpf, sql, wcf, многопоточность. Короче в чем вопрос - если мой игорь не взлетит - я могу куда-нить в приличное место устроится с таким портфолио? Ангельский так себе, но могу подучить - есть сестра репетитор. Также уверен что могу за краткое время выучить любой фреймворк например как-то выучил ВБА и написал для corel draw плагин, что чертит схему скважины по заданным в табличке размерам.
>>697695 У тебя все охуенно, кроме возраста, но с такими знаниями тебя вполне могут взять сразу миддлом, например. У меня один знакомый такой же был, только ему 28 было, устроился сразу миддлом, никаких проблем с ним не было, все довольны.
>>697685 По-умолчанию таки обращается каждый раз. Но кэш уже реализован, изобретать велосипеды не требуется, и я уже нашел как сделать то что мне нужно. У датасорса добавляем: EnableCaching="true" CacheKeyDependency="MyCacheDependency" В Page_Load: if (Cache["MyCacheDependency"] == null) { Cache["MyCacheDependency"] = DateTime.Now; } После любого сохранения в базу данных, когда нам нужно загружать данные заново, а не из кэша: Cache["MyCacheDependency"] = DateTime.Now; ContentGrid.DataBind();
>>697737 >In the book PC 97 Hardware Design Guide,[7] Microsoft deprecated support for the RS-232 compatible serial port of the original IBM PC design. Today, RS-232 has mostly been replaced in personal computers by USB for local communications. Compared with RS-232, USB is faster, uses lower voltages, and has connectors that are simpler to connect and use. However, USB is limited by standard to no more than 5 meters of cable, thus favoring RS-232 when longer distances are needed. Both standards have software support in popular operating systems.
>>697741 >no more than 5 meters Ты мог и не отвечать. + большинство устройств часто использует виртуальный COM порт через USB для передачи данных тк это тупо проще и достаточно.
Аноны, поясните за трудоустройство на дядю в вашей сфере. В частности интересует, как проходят собеседования? Что спрашивают? Если дают тестовое задание, надо его решить прямо при эйчаре? И какое обычно задание дают?
>>697774 собеседования от телефонного разговора до личной беседы. зависит от расположения, наверное
спрашивают как минимум знание типов, обобщения, коллекции, linq, равенство объектов, кое-чо по сборке мусора или рефлексии. также, многопоточность, асинхронность, события, делегаты, скорее всего затронут тему sql, орм-ок (или ado.net). возможно, от конторы зависит, прокатются по вебу и юнит-тестированию
что касаемо тестовых заданий, у меня их было два с половиной, все из них бвыои расчитаны на довольно длительное выполнение (~неделя хз, нахуя). в моей текущей конторе одно время любили давать получасовое задание во время интервью на знание сериализации/коллекций
Добавляю элемент в коллекцию (List) посредством метода Add. А он добавляется во все элементы коллекции, то есть замещает все уже существовавшие ранее элементы и новодобавленный.
>>694892 (OP) напишу и тут. Анончики, помогите. Я начал учить c# и теперь пришло попрактиковаться. Хочу запилить приложение для мониторинга сайта-прощадки для продаж. Суть в том, чтобы приложение присылало пользователю ссылки на новые лоты, если в описаннии есть ключевое слово. На чем это возможно реализовать? Куда смотреть? Помогите, очень прошу.
>>698318 Да. Верно. Но я уже нашел решение. У меня в цикле постоянно заполнялся один объект класса такого-же, что и List. То есть создан он был перед началом цикла, и каждую итерацию его поля перезаписывались, после чего он добавлялся в List Add-ом. Я лишь добавил в конец цикла вызов конструктора для добавляемого элемента и все заработало. Но возникли вопросы: Это что получается, каждый элемент List связан с экземпляром который в этот элемент добавляли?
>>698340 >>698340 >>698338 у площадки нет api. В общем суть: там много обновлений, продавцы постоянно подымают свои старые обявления - и новые теряются в этом мусоре. На сайте есть счетчик просмотров. Нужно чтобы приложение мониторило все объявления по ключевому слову, и если объявление действительно новое - приходило уведомление.
>>698354 ну парсер. тут готовых решений мало. скорее всего тебе надо будет заюзывать регулярные выражения и все такое. ну а уведомление какое ты хочешь? от Console.WriteLine до почты и push-notification в телефонъ
>>698358 Для начала хватит Console.WriteLine. У тебя нет каких-то материалов посмотреть или почитать? И спасибо большое, теперь знаю с какой стороны подойти.
>>698363 материалов по поводу? таким вот жосским парсингом я не занимался никогда максимум, ручной переход и вытягивание значений со страницы браузерной говноигры, но это такое: getElementByTag/Id, foreach
>>698380 У меня вот такая ошибка >The reference assemblies for framework ".NETFramework,Version=v4.5" were not found. To resolve this, install the SDK or Targeting Pack for this framework version or retarget your application to a version of the framework for which you have the SDK or Targeting Pack installed. Note that assemblies will be resolved from the Global Assembly Cache (GAC) and will be used in place of reference assemblies. Therefore your assembly may not be correctly targeted for the framework you intend.
Нерелейтед вопрос. Понравилась компиляция из ресурсов в шапке, немного переделал под ASP.NET и переписал в Markdown. Хочу распространить среди студентов, и встал вопрос - как ссылаться на оригинал? Просто указать что "материал взят из pastebin\блабла" ?
В чем может быть дело, когда при записи коллекции в DataGrid посредством ItemsSource ( коллекция, на момент заполнения DataGrid, инициализирована) DataGrid заполняется 5-ю пустыми строками?
>>699382 Это автор вопроса. Короче. Нашел в чем дело. В описании полей не были указаны свойства. Добавил свойства с пустыми гетерами и сетерами и все заработало. Вопрос. Почему так?
Аноны, вот есть ситуация: допустим, есть одно приложение, написанное мной на шарпе (win forms) которое дважды запущено на одном и том же ПК. Есть ли возможность передать команду из одного экземпляра приложения на другое? Ну к примеру, есть в приложении метод, который обновляет таблицу, заставляя читать заново файл в датагридвью или чо нибудь типа того. Можно ли запустить метод обновления из одного приложения на другом, может там как нибудь через PID приложений или типа того?
В проекте unit теста не могу добавить пространство с элементами управления WPF. Вставляю "using System.Windows.Controls;" Компилятор не дает собрать такой проект, пишет что мол Controls нет в System.Windows. Читал на форуме MSDN что WPF приложения не подлежат модульному тестингу. Это из-за этого невозможно добавить это пространство? и можно ли как-то это обойти и все-же добавить его?
>>699866 ну, тебе недостаточно только using прописать, вроде бы, нужно в References к проекту подтянуть библиотеку, в которой лежит неймспейс System.Windows.Controls же
Господа, изучаю C# после достаточно поверхностного изучения С, хочу сделать приложение для построения графиков чтобы улучшить свои навыки - что посоветуете использовать?
Возможно ли в VS2013 протестировать события кликов кнопок WPF. Если да, то было-бы круто тутор какой увидеть. Везде в нете только методы возвращающие значения тестят(
Хочу вкатиться: ничего не знаю кроме паскаля. Поясните за отличия от крестов: почему начать программировать на с#, а не крестах; в чем принципиальные различия языков?
>>700991 А что по проектам? Что пишут на с# и не пишут на крестах и наоборот. Какой более востребован. Еще иногда раньше заходил в треды, в них писали о связках языков или что-то в этом роде. То если если я начну с#, то что дальше и что можешь сказать о крестах в этом плане?
>>700998 с# это энтерпрайз по большому счету (не считая юнити). плюс, работа приложения .net осуществляется посредством виртуальной машины, поэтому, в отличии от ++, здесь гиганский даунгрейд в производительности. соответственно, шарп очень востребован в вебе, клауде и прочих модных штуках. необходимость в плюсах знаю только в хорошем геймдеве, но я лах и не знаю больше особенностей применения с++
>>700998 Всё что требовательно к производительности и памяти - плюсы и просто си. Остальное, где скорость разработки, поддержка и тд важнее - на шарпе.
Попросту открываются два окна (программы и cmd соответственно), и моментально закрываются. Вписывал ещё "> file.txt", так он мне пустой файл создает. Прошу, выручите
namespace ConsoleApplication2 {
class Program { static void Main(string[] args) { System.Diagnostics.ProcessStartInfo psi; const string command = "cmd.exe"; psi = new System.Diagnostics.ProcessStartInfo(command,"WHERE /R D:\\ *.cfg"); System.Diagnostics.Process.Start(psi); } } }
>>701180 Это не все, что нужно сделать. У меня есть кусок пути к файлу и точное название файла. Мне нужно полностью переписать его. Пока что пытаюсь реализовать поиск нужной папки, ибо файлов с таким названием достаточно много, а менять его нельзя. >>701182 Оно моментально закрывается же.
>>701186 ну естественно. следом за process.start у тебя следует нихуя, а, следовательно, нужно завершать приложение. процесс, управляемый твоей консолью, закрывается вместе с родительским
>>701196 Я просто не знаю какая у тебя там задача, если тебе нужны какие-то особные файлы, с каким-то шаблоном или типа того, можешь использовать что-то вроде
>>701202 Задача: Поиск файла в определенной директории (первые папки неизвестны, после определения нужной папки - идет точная последовательность папок, и файл с известным названием, текст в котором будет заменен тем текстом того файла, который будет лежать в одной папке вместе с екзешником программы.
>>701208 т.е. во всех папках, идущих за каким-то хуем следом за ведомой необходимо найти файл с определенным именем и записать в него какую-то НЁХ, содержащуюся в еще одном известном файле, полный путь к которому также будет известен? так?
>>701402 EnumerateDirectories будет перечислять все директории подряд, SkipWhile будет пропускать директории до тех пор, пока не попадется соотв. условию, First и получит эту директорию. А дальше уже по задаче. А вообще тут много деталей неизвестно: порядок обхода директорий/файлов, идти ли в глубину или нет и все такое.
>>701406 Думал, вроде как средней сложности задача, а так просто пиздец за пиздецом. Может, есть какой то сборник задач, именно под шарп? Просто выкатился из крестов, решил что то еще попробовать.
>>701440 Хотя с другой стороны ему, вероятней всего, нужно будет этот итератор дальше использовать, чтобы итерировать после SkipWhile'а. У него вроде сначала ищется директория, потом, после того как она найдена, поиск продолжается.
Доброго времени суток, народ, у меня вопрос к присутствующим здесь мастерам Windows Presentation Foundation. Моя задача Небольшой текстовый редактор (в качестве диплома), только с разнообразными фичами, вроде сниппетов, вставки формул и т.д.
Очевидное решение Строить приложение на базе RichTextBox и FlowDocument
Проблема Не совсем понимаю, как контейнер FlowDocument разбивает содержимое на страницы. Вернее, в какой момент, например, тот же Word понимает, что пора переходить на новую страницу? Из чего возникает резонный вопрос: если я хочу на UI отображать большой документ на разных визуальных страницах, то как это лучше всего реализовать? Должны ли быть свои RichTextBox на каждую визуальную страницу, или лучше написать свой собственный контейнер FlowDocument (который, очевидно, будет хуже самого ричбокса) разбивающий содержимое на разные страницы. Кстати, есть мнение, что RichTextBox не является самым оптимальным элементом управления для таких целей.
А расскажите, пожалуйста, насколько сложно вкатиться в шарп при условии, что я имею довольно большой опыт разработки на Java? Есть инфа для свитчеров? Опыт переходивших с разработки под андроид на виндофон, приветствуется.
>>701437 Ну ты если хочешь чтобы за тебя сделали, то пиши полностью что тебе надо. >>701442 Да тут похоже поиск ветви в дереве, так что с итератором посложнее будет надеюсь, что нет
>>701470 Ну лол, ищешь папку, идешь в другую папку по точному пути, берешь в ней файл по известному имени и заменяешь его содержимое из другого файла, имя которого тебе известно, и все это без задней мысли.
ООПоны, нужна помощь. Понадобилось создать структуру, на экземпляр которой можно было бы брать указатель в unsafe блоке. Объявил структуру unsafe, да. Единственное но - мне необходимо, чтобы в структуре была строка. И тут, внезапно, как я понял, поскольку строка ссылочный тип, то придётся мне сосать хуй придумать, как запихать строку через указатель на char. собсна, затем сюда и пишу. Аноны, как запихать стринг в стракт, шобе можно было указатель взять?
>>701509 хз, принимает ли string char, но вот char инициализироваться string'ом не хочет. насчёт того - пакую ли я структуру - не очень понимаю термин "паковать". имеешь ввиду, заворачиваю ли её в класс? если это имеется ввиду, то нет. просто думал, что unsafe прихуячить к объявлению структуры лишним не будет
>>701514 Не совсем то, что мне нужно, по моему. Я хочу эту структуру передавать через windows'овский SendMessage(), и одним из параметров там будет указатель на структуру, значт мне нужно как то этот указатель получить, для этого мне нужно, шобе все поля структуры были типами значения. Вот щас писал это, и у меня закрались сомнения. Если структура - тип значения, значт, по идее хранится в стеке, который у каждого процесса свой (??? или нет, не знаю), то даже если я передаю другим процессам посредством SendMessage указатель на структуру, созданную в другом процессе, в процессе-приёмнике сообщения полученный указатель нихуя мне не даст? Или можно для межпроцессного взаимодействия использовать передачу указателя на структуру всё таки?
>>701520 Ну то есть заворачивал ли её в какой нибудь класс, т.к. любой класс наследует object?
>>701526 В P/Invoke всё по-другому работает. Там вполне можно использовать StringBuilder в качестве char*, например. А передаваемые структуры должны быть особым образом помечены атрибутами. Почитай про эту технологию. Извини, я не достаточно компетентен в этом вопросе.
>>701837 Думал ещё пол дня потратить на поиск смищной картинки, но понял что большего сын обоссаной шлюхи, который может только менять тему, тащемта не стоит.
>>702221 Положит значения в eval stack, сложит их там и заменит значение переменной stloc'ом, вроде бы. Не эксперт в этих делах. Или ты на уровне процессора имеешь ввиду?
> From one perspective, value types can be considered mutable, if you interpret "instance of value type" as the variable itself. From another perspective, value types are immutable, if you interpret the variable as holding the "instance of value type".
> What he is saying is that the literal '5' is immutable. You can't change its value. Nor can you change the value of a string "like this one", or the value of null. They are immutable. Integers (as in 'int a') are mutable, unless they are declared const.
ребятки, есть ли необходимость использовать полноценный паттерн Dispose для классов, имеющих управляемые ресурсы точнее, оболочек над ними, к примеру, DbContext?
либо достаточно реализовать IDisposable для класса и вызывать Dispose() у экземпляра DbContext?
либо же вообще положить хуй на это дело ну, если мы, к примеру, имеем дело с веб-приложение и управляет жизнью объектов какой-нибудь IoC-контейнер Per Request и не заморачиваться?
Аноны, в чём может быть проблема: посылаю сообщение из одного активного приложения другому (оба по сути - одно и то же приложение, запущенное n раз) посредством метода SendMessage (IntPtr handler, uint msgCode, IntPtr wParam, IntPtr lParam) из user32.dll, и в качестве lParam посылаю указатель на структуру, созданную и уже инициализированную в приложении, которое посылает сообщение. На момент отправки указатель указывает на инициализированную структуру, но когда другое приложение принимает сообщение, под указателем находится неинициализированная структура, или я неправильно посылаю. И ещё, в интернете натыкался на то, что если и засылать структуру в lParam, то у неё нужно определённые поля объявить, или не важно? Кастовать принятую в другом приложении структуру пробовал по разному, но всё безрезультатно.
>>702499 Свой кастомный же, в моём случае поставил Ax123. Я в зависимости от содержимого структуры хочу выполнять определённые действия. Ты про то, что код не должен быть кратен 2?
>>702501 Я про маршалинг. Если ты используешь кастомное сообщение ты не можешь просто передать адрес структуры, так как этот адрес имеет смысл только для процесса которое эту структуру создало. В другом приложении этот адрес будет указывать на рандомный кусок памяти.
>>702507 Кхм, про маршалинг я нихуя не знаю. Не объяснишь, как тогда через sendMessage() отослать другому процессу структуру? Ну или хотя бы линк на достоверный мануал
>>702512 Я хуй знает как в сишарпе это делается, я прост омимокрокодил. Попробуй что-то типа такого [DllImport("user32.dll")] public static extern int GetClassName(IntPtr hwnd, [MarshalAs(UnmanagedType.LPStr)] StringBuilder buf, int nMaxCount);
>>702522 Ну а в целом что означает маршалинг в данном случае? Типа я сообщаю ОС о том, что по такому то адресу находится такая то структура, и после этого по этому адресу любой процесс при правильном касте может получить значения из этой структуры?
>>702527 Ты сообщаешь системе что данный аргумент - адрес в адресном пространстве процесса, тоесть виртуальный адрес в виртуальной памяти, а не реальный адрес физической ячейки памяти в которую непосредственно вписана структура. Следовательно он не передается напрямую, а определенным образом изменяется, и другой процесс получает (тоже виртуальный скорее всего) адрес по которому он может прочитать структуру.
По просьбе ОПа в шапку на пробу добавлена версия, разрабатываемая в рамках экспериментальной программы кастомных шапок. Предварительная информация о программе и исходники шапок находятся здесь: https://github.com/pr-hats/2ch.hk-pr-Hats/wiki
Ребят, суть токова: пилю простецкий тестик с двумя радиокнопками и кнопкой "далее". Мне нужно, чтобы в процессе выполнения цикла программа ждала, пока я не нажму на кнопку "далее". Вот этот код прокатил: (buttonNextClicked — флаг, детектирующий, нажата ли кнопка "Далее")
while (!buttonNextClicked) { Application.DoEvents(); }
но теперь, когда тест только начинается, событие ждёт клика в любом месте формы, а уже потом работает адекватно и всё как надо перекулючает. т.е тест запускается — ждёт один клик, до его все кнопки и прочее даже не выделяются — клик происходит — всё пашет как надо.
Поскажите, как эту хрень убрать? Сымитировать нажатие мыши? Или есть более красивые пути?
>>703041 Я так понял что у него в событии buttonClick висит флаг buttonNextClicked, который в while потом и передаётся, чтобы задетектить, когда остановить while и внешний цикл for пошёл на второй круг. Может не так понял, хз.
Microsoft Build 2016Аноним30/03/16 Срд 16:58:38#284№703066
Эй народ,подкиньте туториалсов по вебхукам(че это,как юзать)(откопал свой старый проект WoL бота для телеграмма),а то весь инет уже перерыл и нихуя не понял.
Вроде особой разницы с 2015 студией нет, но зато сама студия занимает места в 2 раза меньше, работает быстрее, кучу бесполезных экстеншенов не поставила, установилась быстро. Вроде как и удаляется полностью без проблем. Ну а так это все-таки первое превью только
>>703385 Как что-то плохое, юниксовое окружение - это единственное чего мне не хватает в вин, сам сижу с запущенным в headless режиме виртуалбокса арчем, запущенным в нем ssh и общими папками. Неудобно, но тепримо. А вот нативная имплементация это вообще круто, только вангую, что завезут только в десятку, так что мне придется и дальше сидеть как сижу.
>>703396 Так у меня и не семерка, 8.1, но подозреваю, что даже на пред. версию не выпустят, не зря же у них такая агрессивная кампания по переводу всех на десятку.
Почему Assert.AreEgual при сравнении двух объектов созданных одинаковыми конструкторами не считает объекты одинаковыми? Неужели нужно, чтобы класс объектов реализовывал IComperer?
>>703414 >>703411 у меня, кстати, была такая же фигня и после определения Equals. конечно, я подозреваю в том, что я где-то лажал, но при этом Assert.IsTrue(obj1.Equals(obj2)) не валил тест
>>702221 >Int мутабельный тип? Вот и засралась голова. Следующий вопрос наверно будет про лямбды: являются они делегатами или просто встраиваются в место вызова.
Алсо, завидую что в новом шарпе есть модификатор inline для методов.
>>704113 да забей на ienumerable. если у тебя есть объект или их коллекция, тебе необходимо произвести над ним операцию отсортировать коллекцию, при этом действие не может быть определено статически. i.e. ты это перекладываешь на рантайм
Ананасы, помогите тупому, а то скоро ебанусь от дотнета. Нужно на WPF скачать немного картинок по прямым ссылкам и затолкать в ListBox. Скачать получается, забиндить текст в ListBox тоже, но соединить всё это не получается. В гугле какая-то каша, нихуя не могу понять.
>>703661 Да. В нете 3.5 была только опция MethodImplOptions.NoInlining , а с отстальным как решит оптимизатор/повезет. Теперь можно явно сказать компилеру какие методы нужно упаковывать ногами.
>>704174 Вставь в каждый ListBoxItem по картинке(Image) привязуй их к картинкам(src,вроде).Типа <ListBox> <ListBoxItem> <Image src="{Binding путь_к_картинке}"/> </ListBoxItem> ...... </ListBox>
>>704244 там, по-моему, должен быть проперти ItemsSource, к которому надо биндить, не? иначе, откуда ты знаешь, сколько listboxitem-ов тебе нужно наебенить?
>>704262 Такая же хуйня, братишка, такая же хуйня. У нас еще и работы на ксамарине все больше становится за последнее время, может с этой новостью все станет еще лучше
Пацаны, какой есть аналог у modelstate, например, в консольном приложении. Я расписал атрибуты у свойств объекта, как мне теперь проверять соответствие этим атрибутам?
>>704575 публика пущай решает. как по мне, вполне логично >>704579 как это делает веб-приложение: пробегать по свойствам экземпляра и вызывать методы атрибута для его (экземпляра) валидации, наверное
Двачата, никогда не юзал бд, а на неделе полез в сторону entity fraemwork, посмотрел пару туториолав и у меня возник вопрос: допустим у меня в таблице овер9000 строчек, но мне оттуда нужна одна.Итак, создал dbcontext, вытянул таблицу, через линк выцепил одну строчку которую надо, показал.Внимание вопрос: в этом случае ко мне потянутся все овер9000 строчек и только потом файндится одна, или он более умный и составит правильный sql запрос, по которому вернет одну правильную строчку?
Господа, помогите с этическим выбором. Есть одна программа с расчетом около 40 показателей, каждый считается по своим рукоблудным формулам, пересекаются разве что промежуточные расчеты(средние всякие, проверка на приемлемость отклонений етс). Правильно ли будет на каждый показатель организовать свой класс, а пересекающиеся расчеты выделить в один общий. Или можно все в одном хуярить.
>>704823 Слишком общий вопрос, тут может и так и сяк быть лучше. Но в принципе если у твоих показателей нет необходимости включать в себя какие-то дополнительный данные (т.е. у тебя только формула вычисления и зависимости через аргументы), то класс под каждый показатель заводить нахер не надо.
>>704843 Спасибо. А если я потом захочу сделать ввод данных выборочно по одному из показателей или по нескольким из, то все же заранее по классам может разнести?
Хлопци, поясните вот за какой момент: много ли времени занимает обработка исключения посредством try-catch блоков? Нормальная ли практика пихать их везде и всюду, или с такой архитектурой код будет заметно медленнее кода, написанного так, что исключения просто не могут возникнуть?
>>704932 > много ли времени занимает обработка исключения посредством try-catch блоков по сравнению с > написанного так, что исключения просто не могут возникнуть ну конечно медленней. как минимум на время построения экземпляра исключения
> Нормальная ли практика пихать их везде и всюду ну а сам как думаешь?) исключение нужно выбрасывать в действительно исключительной ситуации (кэп, здарова). ну, а также в случае, если тебе необходимо быстро решительно прервать выполнение большого куска бизнес-логики, при некоей возникшей ситуации. отличным примером этому служит Task-и с подключением CancellationToken. либо же прерывание веб-запросов (также, используя CancellationToken)
>>704735 >>704730 >>704686 >>704685 да это же просто сочный сон! Очень удобно Теперь может кто-нибудь подскажет как завести entity, чтоб первый запрос двигался как-то побыстрее? Или может есть альтернативы этого изящества?
>>705012 ну чтоб ответ на первый запрос пришел я жду слишком много для 2016 года (несколько секунд), остальные же летят заметно побыстрее. Разве никто не замечал? entity полностью устраивает за исключением вышеописанного. Это проблема всех orm или только entity?
>>705020 > ну чтоб ответ на первый запрос пришел я жду слишком много для 2016 года (несколько секунд), остальные же летят заметно побыстрее. Разве никто не замечал? Это у тебя что-то не так. Может это просто первый запрос, когда разогревается clr, это вообще нормально.
>>705022 это происходит со всем при первом запросе в программе в веб-приложении не сильно заметно, потому что оно в памяти постоянно, но если iis выгрузит домен веб-приложения, то при запросе на страничку первый запрос к бд долгий. Остальные летят
>>704932 >много ли времени занимает обработка исключения посредством try-catch блоков? Вот эти >>704945 >>704947 господа абсолютно правы. Ловля исключений - это исключительно долгий процесс. Местами код может исполняться в десятки раз дольше, лол. Ну тащемта ты сам это можешь проверить на примере парсинга относительно большого файла, например. Поэтому лучше сводить try catch к минимуму, а лучше вообще не использовать. Проверить несколько условий всё равно быстрее, чем в итоге разбираться с исключением.
>>705420 >Xamarin... Да срали все на эту парашу, пока она платная или я что-то пропустил за время своего мартыханства на asp.net?.
>>705565 >>Шарп для фриланса подходит? >Да, работы дохуище. > >>Если да, то какие задачи обычно стоят перед фрилансером? Что нужно знать для их решения? >С вероятностью овер 90% это будет ASP.NET. В какой момент можно начинать выполнять простые проекты? Как понять, что ты уже готов?
>>705533 А тогда такой вопрос: много ли времени занимает установка трай-кэтч? Например исключение вылетает только в 1% случаев, будет ли просед по производительности в остальных 99% случаев, когда исключение не вылетает, но я навтыкал неведомо сколько траев?
>>705896 Не буду, я тебе уже и решение с вызовом внешней утилиты давал, и с методами из system.io.file, но ты все равно вернулся к этой хуйне и даже умудрился сделать все еще хуже. Я пас.
Поясните за .net для стартапов. Неужели он используется только в тырпрайзе? Мне конечно повезло один раз, я попал в стартап, где использовали C#, но инфраструктура(самопис-driven development и сервак в подвале) у нас своя была потому что на тот момент небыло подобных костылей, и приходилось по своему все реализовывать. Нигде не видел штоб использовали .net, везде руби-хуюби. Вот например я буду реализовывать свою ниибически крутую идею. Где мне деплоить свой охуительный прототип? bizspark уже требует зарегестрированную компанию, и что-то вроде heroku в мир дотнета не завезли еще appharbor недоделанный какой-то и то есть поддержка от васяна с прикручиванием mono, который тоже не ахти. Ощущение, что все завязано на мелкомягких, и от них просто так не уйти.
>>706169 В прошлом году дали триал, уже попользовался им. Не хочется регистрировать новый акк для каждой своей затеи. Пошел искать всевозможные варианты и чет приуныл.
>>706179 Врядли у тебя стартап на год фуллтайма. Попробуешь не менее няшную Скулу (Питон не могу назвать нашей, он просто практичный), расширишь сознание кругозор, никуда твой опыт не проебется.
>>706171 А ты в чем-то прав. Подумал я, что не стоит акцентироваться на одном языке\платформе. Сейчас же фп модно? Пойду тогда на closure побылдлокожу. Добра.
Анон, выручай. Нужно в Sharepoint сделать сайт одностраничку с контактами и возможностью добавлять/редактировать всё это. Могу запилить это в студии, не знаю как это правильно залить на сайт. С меня тонны нефти
Имеется MacBook Pro mid 2012, ставлю на него Windows 10, картинка очень ужасная, глаза очень сильно устают. Хватит ли мне Parallels чтобы полноценно вкатиться в C# и .NET? Mono хватает только чтобы синтаксис выучить.
>>707369 Я думаю макмини купить для этого, просто с двумя ноутами буду как дебил. С другой стороны что мне с макбуком делать, если я не смогу на нем даже пейсать не дома? А новый макбук пока не осилю купить.
Сколько не изучаю учебники по шарпу, нигде не могу применить навыки ООП, видимо сказывается сишное прошлое. Точно помню, что ООП активно используется в визуальном оформлении, посоветует кто книжку по WPF, вообще стоит с ним замарачиваться? Просто пока с инетом проблемы, мсдн не потеребить.
вдогонку, PF в 95% случаев не стоит связываться. но для поднятия скила и общего уровня очень даже будет плюсом. также в платформе есть основа для использования паттернов, что также тебе поможет в чем-то
>>707401 товарищ же спрашивает не на собеседование в контору
>>707396 5-6-скоро 7. не думаю, что ты увидишь что-то более древнее. если да, то мне тебя искренне жаль. что касается EF - умение в Code First ну, еще, если ты не собираешься макакокодить, то индексы, триггеры, T/SQL
>>707486 Я в курсе что это. Что можно использовать в приложении, чтобы быть не совсем хуём с горы? Использованием передовых возможностей С# или элегантным паттерном смогу ублажить работодателя?
Анончесы, в чём разница между использованием следующих параметров при вызове Task.Run(): Task T = Task.Run(()=> { //some code }); === и === Task T = Task.Run(new Action(()=> { })); === ?
ITT элита продолжает обсуждает будущее этого прекрасного и современного продукта компании Microsoft. Только в этом треде элитные разработчики ответят на самые острые вопросы индустрии.
ВСЯ ЛИТЕРАТУРА ВТОРЫМ ПОСТОМ
1. Ресурсы:
- http://stackoverflow.com/questions/tagged/c#
- 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 Overview
Новые возможности C# 6.0: https://github.com/dotnet/roslyn/wiki/New-Language-Features-in-C#-6
ПРИНИМАЮТСЯ ПРЕДЛОЖЕНИЯ ПО ШАПКЕ
Код этой шапки: http://pastebin.com/cKKXYArs
Прошлый тред тонет здесь: https://2ch.hk/pr/res/680675.html
НОВЫЙ ВАРИАНТ ШАПКИ
Существует множество различных платформ и языков программирования, однако среди них нет более элитного, чем C#. Это поистине язык богов, сочетающий в себе простоту использования с поистине неограниченными возможностями. Знание C# — прекрасный детектор современного, умного и успешного человека. Изучение платформы .NET безошибочно указывает на успешного в будущем человека. ITT элита продолжает обсуждает будущее этого прекрасного и современного продукта компании Microsoft. Только в этом треде элитные разработчики ответят на самые острые вопросы индустрии.
Breaking news
Литература и видеокурсы
По поводу литературы на русском: на некоторые из перечисленных книг есть переводы, которые можно найти на том же рутрекере, однако, зачастую эти переводы неактуальны, содержат неточности, и не самые понятные варианты перевода. Кроме того, переводы обычно пилятся только для нескольких самых популярных книг, более-менее серьёзный материал не переводят. Всегда можно сесть со словарем и понемногу читать, переводя непонятные фрагменты. Это очень полезно, так как в любом случае в разработке без знания ангельского делать нечего. Если очень хочется, то можно гуглить по запросам: "C# 5.0, Справочник. Полное описание языка", "C# для профессионалов. Тонкости программирования", "Программирование на платформе Microsoft .NET Framework 4.5 на языке C#" или временами заглядывать в соответвующую ветку на рутрекере.
Я не умею читать, что посмотреть?
Что еще нужно знать, чтобы взяли работать за еду?
Ресурсы
Онлайн-компиляторы
FAQ
Q: WinForms или WPF?
A: Зависит от задачи. Для небольших проектов, скорее всего, будет достаточно винформочек. В случае, если разрабатываемое приложение достаточно серьёзное, то возможно его стоит писать с использованием WPF. WPF очень хорошо работает с паттерном MVVM ( https://ru.wikipedia.org/wiki/Model-View-ViewModel ), и позволяет пилить очень кастомизированные интерфейсы с помощью XAML, что в случае WinForms, делать намного сложнее.
Q: Мне тут знакомый_нейм сказал, что C# умирает, это правда? Может не стоит его учить?
A: Неправда. C# довольно активно развивается, недавно вышел новый компилятор, шестая версия шарпа, и уже активно разработывается седьмая. Весь дотнет понемногу становится опенсорсным, а ASP.NET становится независимым от платформы. В некотором смысле понемногу вымирают десктопные приложения с развитием веб-технологий, но в том же энтерпрайзе он еще очень даже востребован.
Q: Какую ИДЕ выбрать?
A: Для Windows самым очевидным вариантом будет Visual Studio Студия распространяется в двух редакциях: бесплатная коммьюнити-версия и платный энтерпрейс эдишн. В большинстве случае будет достаточно Community-версии: она поддерживает и C#, C++, VB.NET и F#, а так же имеет возможность установки дополнений
Q: Пригоден ли С# для мобильной разработки
A: Очень даже, гугли Xamarin. Если нужны инструменты для разработке под мобилы, ставь сразу VS2015 и при установке выбирай все нужные компоненты. Больше информации тут - https://msdn.microsoft.com/ru-ru/library/dn771552.aspx
Дополнительные инструменты для разработки на C#
Полезные расширения для Visual Studio, которые упрощают прощесс разработки
Разное