Этого треда уже нет.
Это копия, сохраненная 28 марта 2016 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
12 Кб, 900x650
OFFICIAL C# THREAD №20 - ЮБИЛЕЙНЫЙ # OP #667709 В конец треда | Веб
Существует множество различных платформ и языков программирования, однако среди них нет более элитного, чем C#. Это поистине язык богов, сочетающий в себе простоту использования с поистине неограниченными возможностями. Знание C# — прекрасный детектор современного, умного и успешного человека. Изучение платформы .NET безошибочно указывает на успешного в будущем человека.
ITT элита продолжает обсуждает будущее этого прекрасного и современного продукта компании Microsoft. Только в этом треде элитные разработчики ответят на самые острые вопросы индустрии.

ВСЯ ЛИТЕРАТУРА ВТОРЫМ ПОСТОМ

Breaking news: Microsoft купила Xamarin, JetBrains готовит IDE для шарпа, ведется активная разработка C# 7.0: https://github.com/dotnet/roslyn/issues/2136

1. Ресурсы:
- http://metanit.com/ (на русском)
- 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/651013.html (М)
#2 #667713
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

18. Я не умею читать, что посмотреть?
- Programming with C# - https://www.edx.org/course/programming-c-microsoft-dev204x-0
- Beginning Game Programming with C# - https://www.coursera.org/course/gameprogramming
- C# Fundamentals: Development for Absolute Beginners - https://goo.gl/meyyxO
- Коллекция видеоуроков, по всему дотнетовскому и смежным темам (250 часов, на русском) - https://nnm-club.me/forum/viewtopic.php?t=891636
- Набор курсов по C# от O'Reilly Media (28 часов, на английском) - http://rutracker.org/forum/viewtopic.php?t=5082978
#2 #667713
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

18. Я не умею читать, что посмотреть?
- Programming with C# - https://www.edx.org/course/programming-c-microsoft-dev204x-0
- Beginning Game Programming with C# - https://www.coursera.org/course/gameprogramming
- C# Fundamentals: Development for Absolute Beginners - https://goo.gl/meyyxO
- Коллекция видеоуроков, по всему дотнетовскому и смежным темам (250 часов, на русском) - https://nnm-club.me/forum/viewtopic.php?t=891636
- Набор курсов по C# от O'Reilly Media (28 часов, на английском) - http://rutracker.org/forum/viewtopic.php?t=5082978
#3 #667747
есть ли какой-нибудь толк на сегодняшний день в WPF (Silverlight, о боже ты мой)?
внезапно для себя спустя дофига времени решил навалять что-нибудь относительно сурьезное, а нужно ли мне это будет?
>>667754>>667767
sage #4 #667749
Вкатился, обоссал решёткоблядей. Псс-псс.
>>673003
#5 #667753
Есть ли неадекваты, пишущие на немерле? Как дела с интегацией со студией? Есть ли вакансии? хочу язык еще лучше до диеза
>>667769>>667776
#6 #667754
>>667747
Silverlight мёртв.
WPF не мёртв, и на рсдн какой-то инсайдер говорил что над ним ещё даже работают, и что-то там выпустят. Но пока что даже старые баги кажется не фиксят.
Но использовать WPF вполне можно.
>>667764
#7 #667764
>>667754
можно использовать-то можно, а существуют ли (не древние как говно мамонта, ессессно) серьезные проекты на этом лайне?
>>667781
#8 #667767
>>667747
На нем пишут црмки, если нужен сильно кастомный интерфейс, и винформы не справляются.
>>667771>>667778
#9 #667769
>>667753
Да какие там вакансии, язык совсем уж мертв. Хочешь язык лучше до-диеза - бери фа-диез
#10 #667771
>>667767

> если нужен хоть сколько-то кастомный интерфейс


Пофиксил
#11 #667776
>>667753

> Как дела с интегацией со студией?


Терпимо. Подсветка работает, правда обновления об ошибках упорно идут только в Output окно, в error list постоянно какая-то хуйня - единственное что меня бесит. Для тех же wpf проектов мастер и дизайнер студийный (насчёт последнего не уверен на 100%, может если проект слепить вручную, то заработает) не работают. Формы вроде работают, не пробовал.
Если не в курсе, немерловцы щас допиливают Нитру, на которой (через год-два-десять) захерачат немерле2 который меньше тормозит при компиляции и с лучшими макросами. Так что сам немерл сейчас в чём-то вроде лимбо, но работать можно - баги фиксят.

> Есть ли вакансии?


Ну ты ебанулся.
#12 #667778
>>667767

> винформы не справляются


это типа контрольчик выезжает со скоростью, изменяющейся по логарифмической функцией, с левого верхнего угла, переливаясь всеми цветами радуги и проигрывая произведение Сальери?
>>667783
#13 #667781
>>667764
visual studio частично.
вот не большой проект, но относительно серьёзный https://github.com/RolandPheasant/TailBlazer
#14 #667783
>>667778
Нет, если тебе нужен адекватный грид, или без трудностей добавить иконку перед каждым элементом в листбокс, или чекбокс, или еще что-то.
>>667788
#15 #667788
>>667783
ну не знаю - обьединить пикчабокс и контрол в UserControl-е. ну, это решение уровня raq, но тем не менее
>>667800
#16 #667800
>>667788
Ну это все конечно можно имплементировать, но в XAMLе это всего несколько строк кода. Дизайнером хамловским, кстати, уже не пользуюсь наверное полтора года, зависимость есть. Куда быстрее, чем приглядываться к съехавшим пикселям в дизайнере винформ.
#17 #667829
Пацы, а если я в цикле хочу насоздавать объектов с именами типа объект_i - как мне это реализовать?
Скажите лучше сразу как гуглить, а то что-то не особо пошло.
#18 #667832
>>667829
Этот статический язык, так делать не надо.
>>667833>>667838
#19 #667833
>>667832
>>667829
Это вообще законно?
#20 #667837
>>667829
либо T4 шаблоном хуячь (в тексте программы все переменные будут перечислены друг за другом как если бы ты вручную объявлял).
А если надо динамическое n то либо никак, либо через кодогенерацию с которой я не знаком и доступ по имени объект_i у тебя не получится а будешь ебаться с AST насколько я понимаю.
#21 #667838
>>667832
Ладно.
Видимо поэтому и не гуглится.
>>667841
#22 #667841
>>667838
Чем тебя не устраивают массивы и списки?
>>667844
#23 #667842
>>667829
Массивы придумали уже
#24 #667843
перекаты перекатчики дубль
Шарпач, я заебался. Поясни за деплой 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 нету.
>>667998
#25 #667844
>>667841
Хочу заполнить словарь <объект,объект>.
>>667847>>679158
#26 #667847
>>667844

IEnumerable<T>.ToDictionary

ниет?
>>667853
#27 #667853
>>667847
А как я тебе этот энумерабл заполню в цикле?
Вообще цель задачи чисто чтобы вручную словарь не заполнять просто чтобы некоторые функции словаря потестить и интересовало меня только именование новых объектов в цикле - как сделать по-другому не проблема.
>>667857>>667858
#28 #667857
>>667853

Enumerable.Range(0, n).ToDictionary(
key lambda,
value lambda)

или у тебя do-while цикл?
>>667862
#29 #667858
>>667853
Динамические свойства еще с dynamic можешь делать, наркоман. Но лучше не надо.
>>667862
#30 #667862
>>667857
Забей уже на словарь.
Суть не в словаре, а в том чтобы создавать именованные по-разному экземпляры в цикле. Мне нравится for, если тебе важно.
>>667858
Я уже понял, что не надо.
>>667867>>667869
#31 #667867
>>667862
Нихуя не понятно, ЧТО ты хочешь сделать
>>667872
#32 #667869
>>667862
Вот этолько это говно без задач и никто так делать не будет. Даже во всяких неплохо поддерживающих метапрограммирование языках (ну там вроде руби) такое стараются не делать.
>>667872
#33 #667872
>>667869
Четвертый раз пишу, что я понял ненужность.
>>667867
Просто сижу и пробую можно сделать так или этак. Учусь, короче.
>>667875>>667877
#34 #667875
>>667872

>Просто сижу и пробую можно сделать так или этак


В немерле так можно, с помощью макросов (позволяют перелопачивать твою программу практически как хочешь в о время компиляции). В принципе особо ужасного ничего нет, просто можешь словить переопределение переменных.
#35 #667877
>>667872
Чем больше раз понимаешь про ненужность тем лучше
#36 #667919
У меня еще вопрос уровня архитектуры, пару дней сижу не знаю как лучше сделать.
У меня в приложении есть словарь <дэйттайм, объект> - это основной объект в логике, в нем тысячи объектов, он лежит в классе, окруженный своими методамии прочей логикой.
И есть еще другие словари <дэйттайм, объект>, представляющие некоторые значения, привязанные к датам, в которых ну допустим всего штук по пять записей, которые заполняются непосредственно в коде явным образом, т.е. заранее известными значениями.
Методы основного словаря используют значения из дополнительных там записаны какие-то значения, актуальные на большом временном промежутке, но это не важно.
Так вот в чем мой вопрос:
В какое место приложения поместить дополнительные словари? Сделать каждому из них класс в котором и методов то не будет? Нахуярить их все в один общий класс? Обращаться к ним через методы класса, в котором они лежат, а сами их сделать приватными? Обращаться напрямую?
Где сделать тот кусок кода, который их непосредственно заполняет? В конструктор? В отдельный класс-инициализатор? Просто в мэйн? Сделать метод в том же классе, где словари лежат?
Нихуя не понимаю. Столько вариантов и я никак не пойму что лучше.
Короче, где принято объявлять словари?
#37 #667923
>>667919

> Короче, где принято объявлять словари?


што

> Столько вариантов и я никак не пойму что лучше


я бы на твоем месте сделал бы как работало, а потом сам увидишь, как лучше. пшта я нихуя не понял, че тебе надо и что тебе мешает, а обьяснить сам ты, по ходу, и не можешь
>>667924>>667938
#38 #667924
>>667923
Двачую, чо-то невнятное, словари да словари, хуй поймешь.
#39 #667928
>>667919

> поместить дополнительные словари


в один static класс их положи, назови HuiPizdaDataRepository, например.

>какие-то значения ... но это не важно


Что это за значения как раз таки важно. Меняются ли они в рантайме или нет, если меняются то всем ли частям кода стоит разрешать вносить изменения, имеют ли какое-то отношение друг к другу (зависимость, однотипность) и мн. пр.
>>667934>>667938
#40 #667934
>>667928
А не особо понял что он имел ввиду, но может ему лучше собрать это все как-то в класс со словарем и связанными методами и работь с экземплярами этого класс?
>>667919
Ты лучше хоть кусок кода на ideone или pastebin залей, чтобы хоть примерно понять чего ты добиваешься
>>667938
#41 #667935
>>667919
тебе нужно помнить что каждая эта хуйня это объект, со своими значениями.

Тот метод который создает объект завут конструктором.

Так вот в него можно напихать объявление словаря(питоноеб чтоле)\хеша

если будет считать что каждый объект уникален, то базывые значение он должен хранить в своем личном хеше. Приватном, и доступ к нему только по акцессорам.
#42 #667938
>>667923
Што што, мне надо штук пять словарей с заранее известным содержимым для методов основного класса. И я не знаю куда в коде все это запихать чисто арихтектурно чтобы потом не охуевать перекладывать если окажется неудобно. Мне ничего не мешает запихать это все в десять разных мест, в этом и проблема.
>>667928
>>667934
По сути у меня выбор из двух стульев - или захуярить их все в один класс или положить каждый в свой класс. Второй вопрос - где их заполнять: в конструкторах или сделать отдельный класс с методами для заполнения.

>Что это за значения как раз таки важно.


Все они в ключах имеют даты. Вэлью такие: флоат, структ, делегат.
В рантайме не меняются, все статично до одури.
>>667939>>667943
#43 #667939
>>667938

> Што што, мне надо штук пять словарей с заранее известным содержимым для методов основного класса. И я не знаю куда в коде все это запихать чисто арихтектурно чтобы потом не охуевать перекладывать если окажется неудобно. Мне ничего не мешает запихать это все в десять разных мест, в этом и проблема.


Если содержимое заранее известно, то почему не XML какой-то?
>>667942>>667943
#44 #667942
>>667939
Я только недавно стал разбираться, в хмл почти нихуя не понимаю - даже в голову не приходило.
Может что-то покурю в эту сторону, звучит разумно, тащемто.
>>667947
#45 #667943
>>667938
от разных классов и разных методов насколько я понимаю ты пока ничего не выигрываешь. Забей, клади в один класс, инициализируй в конструкторе.

>>667939
Ну в принципе да, сейчас ему самое время напороться на замечательную фичу .NET в лице несериализуемый словарей в BCL. Или ты имеешь ввиду ручками заполнять?
>>667947>>667953
#46 #667947
>>667942
Там можно в полуавтоматическом режиме в хмл сериализовать если что. Еще как вариант serverless бд какие-то, вроде sqlite, если у тебя связи между этими коллекциями какая-то есть.

>>667943
Вчера вот словарик сериализировал таким костылем

var writer = new StringWriter();
var c = description.Select(d => new DummyClass { Name = d.Key, Description = d.Value });
XmlSerializer serializer = new XmlSerializer(typeof(List<DummyClass>));
serializer.Serialize(writer, c.ToList());
writer.ToString().Dump();
>>667950>>667953
#47 #667950
>>667947
Ну так да. А чё не сразу List<KeyValueCollection>?
>>667952>>667954
#48 #667952
>>667950

>KeyValueCollection


*KeyValuePair
>>667955
#49 #667953
>>667947
>>667943
Теперь мне самое время узнать что такое сериализация потому что я о ней знаю только название. Пойду читать.
>>667959
#50 #667954
>>667950
List<KeyValuePair> имеешь ввид, не? Мне нужны были просто свои названия, а не Key и Value
#51 #667955
>>667952
KVP - структура жы. зачем стек хламить просто потому, что?
>>667958>>667960
#52 #667958
>>667955
List<int> у тебя тоже стэк хламит? или я не понимаю про что ты
>>667969
#53 #667959
>>667953
Да там все просто. Сериализация - это когда ты берешь какой-то экземпляр и сохраняешь его как xml, json или в како-то другом формате файл, который можно где-то хранить. Обратный процесс - десериализация, когда ты из этого xml или json получаешь обратно экземпляр класса.
>>667964
#54 #667960
>>667955
А какая в этом случае разница? Тут разве копирование будет? Итератором его мапим один раз и сразу в лист
>>667969
#55 #667964
>>667959
Окей.
А можешь еще пояснить про использование потоков?
Экзам реф по шарпу начинается с материала по потоком и если в синтаксисе все ясно, то когда их нужно применять и зачем для меня весьма туманно.
Единственное что я понял - гуй держать в отдельном треде для отзывчивости.
Если я делаю десктопное приложение без серверной части мне вообще оно надо для чего-то другого?
>>667970>>667971
#56 #667969
>>667960
не, я об экономии места в стэке, хотя это не критично, думаю, в данном случае

>>667958
нет же, лист - это же ссылочный тип, в стеке для него присутствует только адрес в куче. а в случае с kvp в стек копируется сразу же мешок экземпляров
>>667983
152 Кб, 558x695
#57 #667970
>>667964
В многоядерных системах. Когда у тебя 16ядерное говно было бы неплохо чтобы каждое ядро выполняло какую-то работу, а не как пикрелейтед. Поэтому параллелить это хорошо. В сишарпе треды сорт от депрекейтед, все уже давно используют таски. Это по сути такая абстракция над тредами, чтобы с многопоточностью было все проще, легко и на небе радуга.
>>667976>>668290
#58 #667971
>>667964

> когда их нужно применять


когда у тебя присутствуют долговыполняемые задачи

> Если я делаю десктопное приложение без серверной части мне вообще оно надо для чего-то другого?


а .NET 4.5 есть жи async/await (аля лайт версия пногопоточности). если есть IO-операции или работа с управляемыми ресурсами, то лучше использовать Async()
>>667976
#59 #667976
>>667970
То есть я правильно понимаю, что если я пишу что-то простенькое для учебных целей - мне проще сначала все написать, а потом сверху навернуть многопоточность где покажется уместным, чем заранее сидеть и планировать?
>>667971
Спасибо.
#60 #667981
MyClass instance = null;
instance.DoJob();
Console.WriteLine("op hui");

возможна ли ситуация, когда NullReferenceException не будет выброшен и консолька поведает юзеру истину? )
>>667985>>667993
#61 #667983
>>667969

>а в случае с kvp в стек копируется сразу же мешок экземпляров


Не понимаю где. Мы сравниваем dictionary.Select(new ClassName{...}) (рез-т IEnumerable<ClassName>) c dictionary.ToList() (рез-т List<KeyValuePair<K,V>>) что в первом что во втором случае мы итератором проходит по словарю и больше одного экземпляра KVP за раз в стек не попадает ни там ни там.
>>667987
#62 #667985
>>667981
Если инстанс экстеншн-метод вроде бы все норм будет, хотя не помню уже.
>>667988
#63 #667987
>>667983
таки истину глаголишь, а я лох(
#64 #667988
>>667985
s/инстанс/DoJob/
>>667989
#65 #667989
>>667988
чочо?
>>667990
9 Кб, 429x368
#66 #667990
>>667989
Ну ты понял
>>667992
#67 #667992
>>667990
ёпта, как я должен был это понять?)
>>667994
#68 #667993
>>667995
#69 #667994
>>667992
Как "да, возможна такая ситация"
#70 #667995
>>667993
public static implicit operator MyClass(Nullable<int> value)
{
return new MyClass();
}

а эт зачем?
>>667997
#71 #667997
>>667995
чем предлагаешь заменить?
>>668002
#72 #667998
>>667843
Ни у кого идей что-ли нет?
>>668001
#73 #668001
>>667998
Думаешь тут каждый второй с таким стеком работает?
>>668041
#74 #668002
>>667997
удалить КЕМ просто непонятно, когда это будет использовано в данной ситуации?
>>668004
#75 #668004
>>668002
это implicit cast
сработает при присваивании null (или int'а в данном случае, т.к. выбрал Nullable<int>, а вообще любой класс можно было выбрать кроме object) экземпляру MyClass. В результате вместо null мы присваиваем instance возвращаемое значение (new MyClass()) от которого уже вызываем DoJob. Никаких NRE
>>668006
#76 #668006
>>668004

такстакстакс, это получается, что при декларации

SomeType a = null

в случае, если у него объявлен

implicit operator(SomeNullableType obj)

сработает этот самый оператор? это же боль
>>668008
#77 #668008
>>668006
Поэтому никто обычно так не делает
>>668010
#78 #668010
>>668008
ну если есть операторы, значит это кому-нибудь нужно. а тут ты объявляешь объект как нулл, а он ВНЕЗАПНО и не нулл (да как бы не NRE в коде оператора)
>>668013>>668014
#79 #668013
>>668010
Ну тут спросить можно будет с двух людей
с человека который не моргнув глазом присваивает нулл структуре
с человека который при имплисит касте из нулла создаёт рабочий объект зачем-то
в случае с классом руки отрывать только второму. Но вообще да, имплисит касты небезопасная вещь.
>>668015
#80 #668014
>>668010
Всмысле в подобных ситуациях с нуллами. В других случаях это может быть удобно.
#81 #668015
>>668013
я с тебой уже готовился кидаться опровержением
https://dotnetfiddle.net/tsxsyC
а тут выяснилось, что речь о структурах. во я ведь ничего подобного не писал) да и ты декларировал MyClass как class
>>668017
#82 #668017
>>668015
в случае с классом я протупил, там имплисит из нулла не получится, но с присваиванием (Hui)null пройдёт.

>да и ты декларировал MyClass как class


Нет, я декларировал MyClass как struct: https://ideone.com/XSxqTs здесь. Ограничения на то чтобы MyClass было классом не было лел
#83 #668041
>>668001
Но asp .net... Веб... Изи... Ну блин, там срань господня в деплое. Неужели никто с этим не имел дело?
>>668056
#85 #668050
>>668045
Проходил, около 80-90% осилил. На округлениях завалился, на StructLayout и на CorrupterString, хрен бы воообще когда додумался. А штука несомненно крутая, всем советую.
#86 #668056
>>668041
Окей, есть вариант делать толстый клиент на WPF+WCF+3dViewPort+WF вместо x3dom, Есть вариант пилить на Java со стеком Spring+JXTA+x3dom+JBPM в формате веба. Проблема первого - отсутствие x3dom-а, придется использовать другие форматы моделей, плюсы: скорее всего шустро, WCF и WF цепляются без пердолинга и костылей. Веб приложение модно круто молодежно, x3dom прекрасен, но p2p сеть для клиентов придется делать незнамо как ибо с JXTA не работал, есть вариант на js писать с webrtc p2p connection сделать. Да и средство для workflow только одно и без понятия насколько оно рабочее. Есть что сказать по хотя бы первому стеку? Суть такова, что нудно запилитьраспределенное приложение для одновременного сценарного выполнения действий с клиентов. У Джавы еще плюс в том, что там будет пресвятая idea, адекватный Spring. В общем, в сомнениях, времени мало
#87 #668069
>>668045
This doesn't happen often, but it looks like something is broken. Hitting the back button and trying again might be your best bet. If that doesn't work you can head back to the homepage.

There might be more information on our status page which is reporting All Systems Operational

:(
>>668073
#88 #668072
Как решать проблему с актуальной версией фреймворков.

Если недавно 3.5 был стандартом, то сейчас можно встретить 4, 4.5.2, 4.6, но при этом до сих пор встречается софт версии 2.0, целый зоопарк.

Можно ли как-то сделать NET независимыми windows приложения? То есть как-то паковать или комплилировать унирерсальные приложения под windows вместо компилляции разных версий?
>>668076
#90 #668076
>>668072
говорят, существуют решения, упаковывающие приложение в какую-то ёбу без привязки к фреймворку вообще, но я даже не знаю об таких

в любом случае, приложение разрабатывается с учетом условий её эксплуатации, а не под "похуй, у меня 2.0"
>>668083
#91 #668083
>>668076
Простой пример, нужно запустить приложение на компьютере, на котором нет доступа в глобальную сеть.

В обычном случае, приложение полезет в Интернет и поставит нужную версию или даст ссылку, откуда можно скачать и поставить вручную, если версия стара.

Соответственно приложение не будет работать, так как не стоит фреймворк нужной версии, хотя в приложении не использовались специфичные классы, только базовые, ещё с бородатых времён.

Может есть какой-то способ обмануть винду и заставить её воспринимать приложение подходящей версии.
>>668085
#92 #668085
>>668083

>2016


>нет доступа в глобальную сеть.

>>668147
#93 #668147
>>668085
например, если это промышленное предприятие с анальными условиями пользования ПК
>>668172
#94 #668172
>>668147
Проблемы предприятия, пусть ищут того, кто будет им на делфи писать или еще на чем-то.
>>668173
#95 #668173
>>668172
три года отдал быдлозаводу, на котором все макаки писали исключительно на делфе, а понятие связей в реляционной БД отсутствовало как класс
про одного недокодера даже была статья в местной газенке уровня "встричайте новый стиф джопс"
#96 #668290
>>667970

> В сишарпе треды сорт от депрекейтед, все уже давно используют таски



Такое сказки только на стэке пишут. В жизни хуй там был, ибо требования к продакшину остались все те же и треды живее всех живых.
#97 #668350
Кто-нибудь создаёт веб-приложения на asp.net mvc? Я сейчас вникаю в него и возникла одна проблемка. Все советуют отделять бизнес-логику от контроллеров. В примерах всё выносится в специальные сервисы, которые после внедряются в контроллеры через конструктор. Тут всё понятно.

Как быть, если мне нужно часть функционала одного сервиса использовать в другом? Один сервис отвечает за инвентарь игрока (добавляет/удаляет предметы), второй сервис занимается раздачей призов. Раздача призов подразумевает изменение инвентаря. Я хотел бы в сервисе раздачи использовать сервис инвентаря, так как там есть необходимая логика.

Проблема в том, что 1 метод контроллера = 1 методу сервиса. Сервис выполняет какое-то действие, после вызывает сохранение. Значит я не могу просто взять и внутри использовать какой-то другой сервис. Придётся логику инвентаря выносить куда-то ещё?
>>668488>>679161
#98 #668386
Хай кодач. Я студент быдлокодер, знакомый попросил сделать прогу для его фирмы, базу клинтов и их заказов.
Решил что буду делать на сишарп и бд sqlite. Хочу от вас советов мудрых, на что обратить внимание, как не обосраться, так как одно дело делать домашки, а другое реальный опыт разработки. Или может среди вас есть кой нить фрилансер что за 100$ поможет мне справиться?
#99 #668395
>>668386
Ты взял, ты и делай. Литературы после оп-поста полно, доков в инете полно. Один только совет могу дать - бери сроки побольше, с запасом.
>>668407
#100 #668406
>>668386
Не лучше ли вынести всё это в веб? На какой-нибудь простенький, дешёвый хостинг. Доступ с любого компьютера. И можно не бояться, что данные проебутся вместе с компьютером.
http://metanit.com/sharp/mvc/1.1.php
#101 #668407
>>668395
Хех, в этом то и проблема, взял неподьемный для меня дедлайн. Чувствую что неуспеваю. Вот что значит без реального опыта разработки быть.
#102 #668409
Хм. Идея неплохая, но незнаю потяну ли, плюс я бы хотел ее сделать простой как топор, что бы потом поддержка не отнимала у меня силы.
#103 #668452
Аноны, я нихуя не пойму, нахуй писать сайты на ASP .NET если уже полно конструкторов сайтов?
Есть примеры сайтов которые написали на ASP ? Где посмотреть исходники?
>>668486>>668494
#104 #668473
>>668386
У меня есть готовый круд, но чуть чуть в другой предметной области. Скулайт без орм, джаваэфикс, котлин, экспорт в ексель. Отдам за 50.
>>668499
#105 #668478
Сап, кодеры, выручите ньюфага, пжлста!
В общем:

double a = 5000/3;

В "а" оказывается округленное до целых значение.
А мне надо, чтобы было как можно больше чисел после запятой. ЧЯДНТ?
>>668482
#106 #668482
>>668478
5000/3.0
>>668484
#107 #668484
>>668482
спс
#108 #668486
>>668452
конструкторы сайтов не дают тебе кастомной логики. а-ля бложики-то ты напишешь, а что посложнее?
>>668489
#109 #668488
>>668350
1. я чет не понял, что мешает сервису, который раздает подарки, использовать сервис, отвечающий за, собственно инвентарь? добавишь метод и поломается контроллер или чо?

2. по-хорошему, тебе надо будет сделать нечто такое:
контроллер --> сервис инвентаря --> доменный хуёменный сервис инвентаря

сервис раздачи халявы --> доменный хуёменный сервис инвентаря
#110 #668489
>>668486

> напишешь


сконструируешь
>>668496
#111 #668494
>>668452

>Есть примеры сайтов которые написали на ASP ? Где посмотреть исходники?


Microsoft.com
#112 #668496
>>668489
А что посложнее нужно? 99% сайтов это коммерческие сайты компаний которые на CMS сконструированы и небольшие блоги. Что еще нужно?
>>668514
#113 #668499
>>668473
Опиши подробней что у тебя есть. На чем написано, какую бд использует.
>>668579
#114 #668514
>>668496
программистов нанимают, чтобы имплементить 1% оставшегося говна
>>668524>>668540
#115 #668524
>>668514
О, дивный манямир!
>>668528
#116 #668528
>>668524
чегоэта?
#117 #668540
>>668514
1% говна это что?
>>668556
#118 #668556
>>668540
вопроса не понял. что можно написать, что не под силу для цымес-конструкторов? или ты до цифры доебался?
>>668562
#119 #668562
>>668556
Я про

>что не под силу для цымес-конструкторов

>>668571
#120 #668571
>>668562
olo.com
booking.com
gainhcp.com
healthdec.com
JIRA/AHA
социалки-социалочки
>>668588
#121 #668579
>>668499

>Опиши подробней что у тебя есть. На чем написано, какую бд использует.


Есть база в одну таблицу(мне хватало, но ты же не тупой, добавишь), написано на котлине, это из джавовского стека, интерфейс на джаваэфикс, бд скулыйт, написал же.
#122 #668588
>>668571
ну такие крупные сайты понятно, но я нихуя не пойму зачем столько вакансий вебразработчиков? Все вокруг пишут booking.com и социалочки?
>>668602
#123 #668602
>>668588
бОльшую часть коммерческих продуктов ты так в гугле и не встретишь, т.к. разворачиваются в корпоративной подсети. также, с диким развитием мобильных приложений нужен адекватный бэкенд, считай, за каждым четвертым приложением стоит такая себе тима макак
>>668615
#124 #668615
>>668602
Вот теперь я понял. Дело в том, что я хочу написать свой проект на ASP.NET за пол года чтобы его показать будущему работодателю и тот офигел и принял меня на работу. Я нихуя не могу придумать какой проект сделать.
#125 #668618
>>668615

>пол года


Сомнительная затея.
#126 #668623
>>668615

> за пол-года


это типа настолько крутой проект хочешь? или ты ниасилятор?

напиши свой йобадвач, лол
>>668635
#127 #668634
>>668615
Сделай, например, адресную книгу с фотками, поиском, используй ef, поиск по записям. Бонус - показывай адреса на гугл мапе.
>>668643>>669212
#128 #668635
>>668623
Я хз, надо успеть и значит придумать проект попроще
>>668643
#129 #668643
>>668635
слушай вот этого вот советоватора
>>668634
#130 #668865
Аноны, помогите обойти проблему в винформс. Суть токова: есть заготовка табличного редактора, для сохранения таблицы использую отдельный тред, в нём через SaveFileDialog.ShowDialog() запрашиваю путь сохранения для новой таблицы. Вот только если создавать объект SaveFileDialog SFD = new SaveFileDialog в методе второстепенного треда, вылазит исключение на вызове SFD.ShowDialog():

An unhandled exception of type 'System.Threading.ThreadStateException' occurred in System.Windows.Forms.dll

Additional information: Текущий поток должен быть задан как поток однопоточного контейнера (STA), чтобы вызовы OLE стали возможны. Проверьте, что ваша функция Main помечена атрибутом

Если вызывать SFD.ShowDialog() инвоуком из другого треда, то программа падает по определённым причинам в определённой ситуации, в связи с конструкцией программы долго объяснять почему, в основном потому, что кто то уебан. Дак вот, как не меняя тип апартаментов на СТА у треда обойти появление этого исключения? И вообще, почему оно возникает, и что такое это ОЛЕ? Вызовы showDialog() в основном треде чтоли происходят вне зависимости от того, где ссылка на объект SaveFileDialog?
>>668867>>668868
#131 #668867
>>668865
Ты диалог то покажи в основном треде, а сохраняй в другом непонятно нахуя, но
>>668892
#132 #668868
>>668865
во-первых

> для сохранения таблицы использую отдельный тред


используй отдельный тред для сохранения, а не диалогов
>>668892
#133 #668892
>>668867
>>668868
Спасибо, решил проблему вроде.
#134 #669212
>>668634

>используй ef


это чо?
>>669215
#135 #669215
>>669212
Entity Framework, едрить же твою налево
>>669416
#136 #669416
>>669215

>едрить же твою налево


Ну прости, анончик
#137 #669521
Посоны, начал читать книгу Beginning ASP.NET 4.5 in C#, Matthew MacDonald URL. За 40 минут уже на 100-ой странице. Сегодня постараюсь осилить оставшиеся 800 страниц. Завтра начну писать свое первое веб-приложение.

>668615 кун

>>669529
#138 #669529
>>669521
Ну толсто же
>>669623
#139 #669535
Кто-нибудь юзал графические планшеты в C#?
>>669632
#140 #669623
>>669529
Почему? Я только что долистал до конца книгу. Я с APS.NET 5 лет назад сталкивался и чуток программил веб. Сейчас я освежил знания. Теперь надо все практиктой закрепить.
>>669624
#141 #669624
>>669623
Эцсамое, освежитель, ты там мвц читаешь то?
>>669641
#142 #669632
>>669535
А как они там применяются?
>>670072
#143 #669641
>>669624
Нет, в этой книге нет MVC. Надо порыскать новую книгу.
А сейчас уже все пишут на MVC?
>>669644>>669695
#144 #669644
>>669641
Угумс
>>669650
#145 #669650
>>669644
а наша ёбаная шарага перешла на новомодные WebAPI+SPA лел
>>670844
#147 #670072
>>669632
Регистрация положения стилуса относительно положения во всех трех измерениях. Нужна только такая функция.
#148 #670181
Как же мало вакансий джуна сишарпа, а те что есть, никто не отвечает (потому что везде нужен один год опыта)
Зато на пхп дофигища
#149 #670187
>>670181
говори, что у тебя есть один год опыта
>>670308>>670362
#150 #670308
>>670187
Спасибо, взяли
>>670358
#151 #670358
>>670308
не, ну а что, так хоть с тобой диалог начнут
#152 #670362
>>670187
Похоже нужно будет идти на пхп погроммиста, чтобы можно было написать про год опыта. С ходу на сишарп можно разве что через стажировку в крупных компаниях, которые проходят в определенное время с большим конкурсом.
>>670401
#153 #670401
>>670362

>С ходу на сишарп можно разве что через стажировку в крупных компаниях, которые проходят в определенное время с большим конкурсом.


История моей жизни.
#154 #670406
Анунахи, поможите советом в винформс. Нужно ограничить перемещение одной формы внутри другой таким образом, чтобы форма при перетаскивании за пределы основной формы постепенно заходила внутрь (ну то есть исчезала) формы, в которой она должна находиться. Какие есть варианты кроме сделать mdichild'ом внутреннюю форму и обрабатывать событие locationChanged?
>>670411
#155 #670411
>>670406
а разве при перемещении внутри контейнера компоненты вылазят за границы?
>>670415
#156 #670414
Как же я вам завидую, ребята, вы молодые, шутливые, у вас ещё всё впереди. Для вас слово "фреймворк" в новинку, а та же веб-разработка кажется чем-то таинственным и увлекательным. Вы ищите место, куда бы устроиться ради опыта работы в резюме, живёте полной жизнью. Желаю вам удачи по жизни и не разочароваться в профессии.
>>670416
#157 #670415
>>670411
Если контейнер - mdi parent, то нет. Мне нужно не использовать mdi parent
13 Кб, 196x200
#158 #670416
#159 #670739
посоны, вот ставлю я визуал студию. И буду учиться си шарпу и наверное вебу на нем, ведь можно же? Так вот, как бы мне облегчить сборку студии? Места жрет на ссд дохуя, зараза.
>>670838>>670843
#160 #670838
>>670739
Купить ссд побольше
#161 #670843
>>670739
Танчики удали, кек.
Убери при установке все языки кроме шарпа, убери мобилки.
#162 #670844
>>669650
Ни разу не сталкивался с SPA, но WebApi — это хорошо только какого-то хуя там экшенфильтры совсем не те, что в MVC.
>>670902
#163 #670894
>>670181

> везде нужен один год опыта



Я тебе по секрету скажу, что туда можно смело идти без опыта. В этих "крупных компаниях" тимлид мнит себя богом только потому, что умеет в референс-типы, а джуниоры до сих пор не различают. Шарперов нет на рынке, HR-ы в вакансиях выкобениваются исключительно по старой привычке, да для оправдания собственных фейлов. Если совсем ссыкотно, сделай проект любой рабочий, скажи, что год над ним работал без оформления, и все.
>>671179
#164 #670902
>>670844
ну все делается под задачу, а не: аааааааа, на проект можно накидать еще тыщщу макакJS и срубить больше бабла с клиента, ебошим вебапи!!!!!!!111!!!
#165 #670944
>>669695
А есть книга на англ языке?
Мне легче и проще читать на англ.
>>670946
#166 #670946
>>670944
на хабре уроки погугли
#167 #670958
Шарпач, есть одна class library. Какие существуют способы инклюдить ее в сборку другого решения кроме неудобного референса через линкование исходников?
>>674049
#168 #670962
Анон, нужно одностраничный сайт запилить на C# ASP.NET MVC для мелкого магазинчика.
Как лучше сделать?
>>670966
#169 #670966
>>670962
одностраничные приложения разве делаются на мвс?
>>670975
#170 #670975
>>670979
#171 #670979
>>670975
ну тащемта нет

а по сути, чего надо-то тебе? ассортимент показывать, или визитка?
#172 #671179
>>670894

> Если совсем ссыкотно, сделай проект любой рабочий, скажи, что год над ним работал без оформления, и все.


Я указал свой проект в резюме, он работает. Боюсь что там говнокод поэтому на гитхаб не заливал ._. , но похоже придется
>>671181
#173 #671181
>>671179
ну тащемта, ты по определению не можешь высрать не говнокод. вопрос будет, какие "оригинальные" решения ты там применил
#174 #671182
Анон, у меня платиновый вопрос.

>навыки программирования на одном из языков: C++/Java/C#


Что вообще включает в себя "навыки программирования"? Сам я знаю С# на уровне универских лаб, в курсе ООП, ну еще один раз использовал многопоточность в Unity, но до чего-то серьзёного не доходило, то это считается?
>>671186
#175 #671186
>>671182
это значит, что ты в курсе базовых понятий языка и не будешь дуплиться, когда видишь что-то типа
public static implicit operator
или
static Classname()
{
}
>>671187
#176 #671187
>>671186
что-то типа: знать и уметь применять
#177 #671194
DataContext(LINQ to SQL) еще используется?
Или можно на него забить и сразу приступить к LINQ to Entities(DbContext)
>>671843
#178 #671210
Какие есть ресурсы для быстрого вкатывания в asp.net mvc? Мне не для работы, в универе надо запилить веб-приложение. mvc понимаю если че, раньше на рельсах кодил.
>>671215>>671216
#181 #671219
>>671216
Я когда только начинал вкатываться сразу на этот гайд попал и нихуя не понял.
>>671222
#182 #671222
>>671219
а что конкретно непонятно? там же для макак написано: "бомбаните эту строчку, сделается XYZ" кстате, автор этого цикла на связи и не посылает нахуй за вопросы "а у меня так не работает"
на крайняк: сливаешь авторский проект из репозитория, открываешь второй вижуалстудио и смотришь, где наёб
>>671297
#183 #671225
>>671216
>>671215
А можно на английском? Я на русском не читаю техническую литературу, мозги надо беречь.
>>671230>>671985
#184 #671230
>>671225
http://www.codeproject.com/Articles/486161/Creating-a-simple-application-using-MVC
на первой странице гуглозапроса mvc application sample. сложно-то как
>>671254
#185 #671254
>>671230
Ну ладно, я уже начал читать getting started на официальном сайте. В геттинг стартед написано, что мне нужен Azure account, а дальше написано, что там триалка 1 месяц. Че делать-то?
>>671261>>671266
#186 #671261
>>671254
одного месяца не хватит тебе, чтобы написать сайт по учебнику?
>>671266
#187 #671266
>>671261
>>671254
Там еще и кредитка нужна, чтоб free trial начать, лол.
http://stackoverflow.com/questions/10416934/can-i-try-windows-azure-free-trial-without-having-a-credit-card
>>671270
#188 #671270
>>671266
я точно без кредита регал себе ажур с триальным хостингом на одну базу и доменным именем, как положено. подробностей, увы, не помню
#189 #671297
>>671222

> бомбаните эту строчку, сделается XYZ"


Вот это и не понравилось, что объяснений немного, одни инструкции.
>>671298
#190 #671298
>>671297
ну тыжпрограммист ёбе, тебе показывают, как сделать, чтобы работало. а как работает так, что оно все работает, это: гугл, msdn, Троелсен, etc.
#191 #671627
Посоны, я уебок не знающий инглиша. Что можно читнуть, дабы изучить шарп?
>>671638
#192 #671638
>>671627
Книгу по изучению английского
>>671641
#193 #671641
>>671638
Блять, но ведь си шарп то сперва надо выучить
>>671760
#194 #671760
>>671641
Кому ты нужен без языка? Даже если шарп как-то сможешь более-менее осилить, то на первом же месте работы сольёшься
#195 #671843
>>671194
Бамп вопросу
Имеется ввиду вот это все еще используется на реальных проектах или уже всюду entity framework?
http://professorweb.ru/my/LINQ/linq_sql/level8/linq_to_dataset_and_sql_index.php
>>671875
#196 #671875
>>671843
Нет, не используется.
#197 #671985
>>671225

>Я на русском не читаю техническую литературу, мозги надо беречь


Да не пизди ты, нашелся тут великий англичанин.
>>672008>>672111
#198 #672008
>>671985
да ты ёбнутый. Я даже когда английский знал так себе всё равно читал в оригинале, потому что третье издание рихтера прочитанное медленно с заходами в словарь всё таки было получше вариантом чем прочтение второго с последующим шароёбством по рунету в ожидании переводов актуальных статей.
>>672029
#199 #672029
>>672008
А сейчас типа знаешь нормально?
>>672048
#200 #672048
>>672029
сейчас - блестяще. К чему этот вопрос?
#201 #672049
Пиздец, начал рыться в коде созданного ASP.NET MVC C#.
Класс наследует другой класс, класс на основе интерфейса, какие-то квадратные скобки:
// POST: /Account/Login
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
Классы с "async".
Пиздец, чорт голову скрутит с этими замутами, нагородили огород и понапридумывали всякой хуйни.
#202 #672050
>>672049
И что тебе неясно?
>>672058
#203 #672058
>>672050
Сложночитабельный код.
Напомни, что значат квадратные скобки?
>>672060
#204 #672060
>>672058
аттрибуты. Может тебе язык стоит для начала подучить?
>>672064
#205 #672064
>>672060
Я проходил это, но давно. Надо повспоминать.
#206 #672104
>>672049
ого-го, наследование. вот это неприятность, да?
>>672108
#207 #672108
>>672104
Я всю жизнь работаю с процедурным языком. А тут ООП, бесит ООП. Это слишком сложно для моих мозгов.
#208 #672110
Есть html в строке. Можно ли его вывести, не сохраняя в файл?
>>672196
#209 #672111
>>671985
Для чтения технической литературы нужен самый минимальный уровень знания языка. Вот если человек читает художественную литературу в оригинале - это god tier, а техническую любой даун может читать, потому что там используется словарный запас не больше 1000 слов (помимо терминов из предметной области, которые ты должен знать в любом случае).
>>672126>>672144
#210 #672126
>>672111
IELTS общий балл какой?
#211 #672129
>>672126
about tree fiddy
>>672131
#212 #672131
>>672129
Слился
>>672134
#213 #672134
>>672131
ты наркоман. Тебе написали "техническую литературу легко читать даже с хуёвым английским", ты спрашиваешь про какой-то иелтс. Ты подорвавшийся неосилятор что-ли? При чём тут иелтс вообще? Ты думаешь что если человек не иммигрировал и не ездил учиться в штаты/европу, то он книги на английском читать не может?
#214 #672144
>>672111
У меня скорость чтения на английском падает раз в 10 :(
>>672160
#215 #672160
>>672144
Ну придрочишься, ниче страшного.

>>672126
Не сдавал. Я в обозримом будущем не собираюсь трактор заводить.
>>672166
#216 #672166
>>672160
>>672126
Алсо, сейчас спросил у чувака, который знает язык примерно как я, он сдал ielts на 8.
>>673089
#217 #672196
>>672110
HtmlVyvoditel.Vyvesti(str);
>>672223
#218 #672223
>>672196
Ну вот такого нет, насколько я понял. Приходится сохранять во временный файл.
>>672249
#219 #672249
>>672223
чтобы нахуя?
>>672266
#220 #672266
>>672249
В смысле нахуя? Чтобы показать их пользователю.
>>672269
#221 #672269
>>672266
Console.WriteLine
>>672707
#222 #672326
Посоны, я пиздец дно, помогите.
Как мне получить данные переменной из другого скрипта?
Юнити, оба скрипта на одном объекте.
>>672476>>672717
#223 #672476
>>672326
кажется мне, что делаешь ты что-то не так

но я не юнитоблядь, тому, можешь не совпринимать близко к сердцу
>>672479
#224 #672479
>>672476
Почему тебе так кажется?
>>672481
#225 #672481
>>672479
ну, очевидно, либо юзать глобальные переменные (что заботливые разработчики, по идее, должны были запретить вовся), либо через какой-то стейт (или like-a-Tag-пропертю) объекта. это, по хорошему, должно быть какой-то базовой базой, я не верю, что ты настолько днище, что не знаешь такие вещи)))))))
>>672486>>672717
#226 #672486
>>672481
Говорю же что пиздец дно.
Смотри есть скрипт, он, например, считает сколько раз игрок нажал на кнопку. Мне из этого скрипта нужно выдернуть кол-во нажатий и применить это значение в другом.
>>672488
#227 #672488
>>672486
я ж те грю

> я не юнитоблядь

>>672520
#228 #672520
>>672488
А чо, там си шарп какой-то другой?
>>672524
#229 #672524
>>672520
ну я ж хз, как там происходит взаимодействие функций внутри объекта, какие объект имеет проперти
28 Кб, 962x524
#230 #672543
Анон, помоги, не пойму че за хуйня. Я вот поставил ограничение по внешнему ключу в своей sqlite3 БД. Но почему-то, когда я из приложения передаю в БД недопустимые значения, то они не вызывают ошибки и спокойно записываются в таблицу. То есть ограничение ничего не ограничивает. Почему такое может быть? C# + SQLIte + SQlite-net.
>>672546
#231 #672546
>>672543

> Но почему-то, когда я из приложения передаю в БД недопустимые значения, то они не вызывают ошибки и спокойно записываются в таблицу


ну, очевидно, нет никаких ограничений
как декларируешь вообще?
>>672547
#232 #672547
>>672546
Через редактор БД - SQLiteStudio.
>>672548
#233 #672548
>>672547
я не то тебя спрашиваю
дизайн таблицы покажи. или как ты её там создаешь?
>>672551>>672575
#234 #672551
>>672548
Да в том и суть, что внешнюю связь я немогу в коде декларировать, потому что SQLite-net их не поддерживает. Поэтому я типа напрямую прописываю - руками в БД.
#235 #672575
>>672548
Блядь, у меня отсталость головы. Внешние ключи в SQLite по-умолчанию отключены.
#236 #672665
Аноны, что надо знать, чтоб идти в джуниоры?
>>672695
#237 #672695
>>672665
типы данных, работа с типами, упаковка/распаковка, дженерики
классы и интерфейсы, наследование
механизм исключений
строки, StringBuilder
коллекции, сравнение, поиск по коллекциям, равенство экземпляров
LINQ
базовые принципы многопоточности, ограничения, связанные с многопоточностью
делегаты, события
работа с базами, T/SQL, ОРМки подозреваю, сейчас это обязательно
Unit-тестирование, скорее всего, тоже обязательно

да и вообще, ООП, шаблоны проектирования, туда-сюда короче
>>672703>>675564
#238 #672703
>>672695
А будут спрашивать за реестр, графику, указатели, программирование типа "клиент-сервер" и сетевое программирование (http)?
>>672722>>672730
#239 #672707
>>672269
Какой тебе райтлайн в веб сайте?
>>672722
#240 #672717
>>672326
this.gameObject.GetComponent<Script2>().myVar
Ну или как-то так, я особо в юнити не вникал.
>>672481
Да похуй на инкапсуляцию, это ж не энтерпрайз.
#241 #672722
>>672707
херли я должен догадываться, где и зачем ты хочешь что-то вывести?
https://msdn.microsoft.com/en-us/library/gg480740(v=vs.118).aspx

>>672703
кагбе зависит от конторы, но врядли что-то специфичное. элементы клиент-серверности вполне могут быть

> указатели


а сюда ли ты зашел-то?
>>672730>>672737
#242 #672730
>>672703

>указатели


Крестотред где-то рядом.
>>672722
Ну так это ж асп.нет тред. Все равно ни на чем другом никто не пишет.
>>672733>>672737
#243 #672733
>>672730
это сешарп тред вообще .NET надо бы, мы ж не лохи какие
и пишут)
#244 #672737
>>672722

>а сюда ли ты зашел-то?


>>672730

>Крестотред где-то рядом.


В Шарпе же тоже есть указатели и их можно кодить, если сильно захотеть, или я ошибаюсь?
>>672743
#245 #672743
>>672737
генерить unsafe код - нетривиальная задача, уж явно не для джуномиддлов. максимум смогут спросить "а является ли код в # полностью управляемым?"
>>672747
#246 #672747
>>672743
Понял, спасибо. Просто был момент полгода назад пробовался джуном в одну контору в ДС2, в вакансии написано шарп, пришел - посадили, дали листок, ручку, дали задание. Говорят, пиши. В задании указатели на паскале. Я охуел и ушел. Подумал, что надо дальше читать и учить, ну и контору тщательней выбирать.
#247 #672795
Пришла первая EAPха райдера, встречайте и апплодируйте
http://download.jetbrains.com/resharper/riderRS-144.4571.exe
>>672828
#248 #672806
Нужно ли использовать dispose на dbcontext(или using DbContext)?
В туториале от майкрософт, рекомендуется вызывать dispose
http://www.asp.net/mvc/overview/getting-started/getting-started-with-ef-using-mvc/implementing-basic-crud-functionality-with-the-entity-framework-in-asp-net-mvc-application

protected override void Dispose(bool disposing)
{
db.Dispose();
base.Dispose(disposing);
}

Но разрабы EF говорят что это нинужно.
http://blog.jongallant.com/2012/10/do-i-have-to-call-dispose-on-dbcontext.html
>>672835
66 Кб, 659x609
85 Кб, 820x461
#249 #672828
>>672795
Да анончик это охуенно
https://www.youtube.com/watch?v=XaD9agBP6dE
>>672846
#250 #672835
>>672806
или я чет не понимаю, либо же задача подогнана под ответ в том случае. ибо, во-1х, человек делает
return View(dbcontext.DbSet<>). если обернуть этот код в using или ебануть Dispose, то Razor упадет по ObjectDisposedException при попытке проэнумерейтить коллекцию, родитель которой был убит чуть-чуть ранее
а во-2х, контекст (и вообще, любой управляемый ресурс) должен жить как можно меньше
2 Кб, 288x171
#251 #672846
>>672828
Я уже немного погонял, функций маловато пока еще, тесты не тянет вроде, вот такие забавные моменты в меню пикрелейтед. Но сука, как же резко работает, ебаный в рот, быстрее студии без решарпера, реально отзывчивая при билде, охуенная идеевская поддержка VCS, nuget вроде тянет. Для первой EAP очень круто
>>672874>>673096
#252 #672874
>>672846
DNX console получается создать?
>>672890
#253 #672890
>>672874
Не пробовал, завтра попробую.
#254 #672964
Есть метод в слое доступа к данным
public IQueryable<Employee> SelectEmployees(int departmentId)

Этот метод вызывается когда идет присваивание свойству ViewModel
public IEnumerable<Employee> Employees { get; set; }
вот таким образом
Employees = service.SelectEmployees(selectedDept)
.OrderBy(е => е.Surname)
.Skip((page - 1) * pageSize)
.Take(pageSize),
В этот метод из-за того что я присваиваю IQueryable к IEnumerable у меня не выгружается все данные из бд в память или это происходит, как обычно, при вызове foreach на Employees?
>>672968
#255 #672968
>>672964
отложенная инициализация же. если хочешь, чтобы сразу при вызове метода происходило присвоение, добавь .ToArray() .ToList()
иначе будешь ожидать первого foreach, First(), Signle(), ElementAt(), etc.
>>672980
25 Кб, 1127x167
31 Кб, 911x410
Создание на шарпе длл для использования в других прогах #256 #672973
АНОН блять пиздец, как же все таки это сделать? Ну создал я либу, ну хули? Мне нужна либа на шарпе, чтобы загрузить ее в автохоткее. Нихуя не получается.
>>673150>>673181
#257 #672980
>>672968

> добавь .ToArray() .ToList()


Это я знаю
Еще есть AsEnumerable который вроде тоже делает запрос, так вот я подумал что присвоив IQueryable к IEnumerable будет тоже самое.
>>672985>>672986
#258 #672985
>>672980
Ой, не так.
Вот нашел
Метод AsEnumerable() в LINQ просто преобразует коллекцию IQueryable к IEnumerable. В простых приложениях, работающих с коллекциями данный метод практически не используется, т.к. в нем нет смысла – интерфейс IQueryable является производным от интерфейса IEnumerable. Но этот метод оказывает существенное влияние при использовании с Entity Framework, указывая, что цепочку методов в запросе до его вызова нужно выполнить, отправив запрос к базе данных, а последующие методы будут оперировать уже на коллекции в памяти приложения. Если вы запустите этот пример, то можете убедиться в его работоспособности.

То есть оно тоже отложено выполняется, но все операции после AsEnumerable обращаются не к базе данных, а к последовательно IEnumerable в памяти.
>>672989
#259 #672986
>>672980

> что присвоив IQueryable к IEnumerable


.Take() возвращает IEnumerable
https://msdn.microsoft.com/library/bb503062(v=vs.100).aspx

а также

IQueryable<T> реализовывает IEnumerable<T>
https://msdn.microsoft.com/en-us/library/bb351562(v=vs.110).aspx
public interface IQueryable<out T> : IEnumerable<T>, IEnumerable, IQueryable

> AsEnumerable который вроде тоже делает запрос


public static IEnumerable<TSource> AsEnumerable<TSource>(this IEnumerable<TSource> source)
{
return source;
}
#260 #672989
>>672985
при работе с EF, AsEnumerable нужен в случаях, когда с неинициализованной коллекцией выполняется нестандартная функция, не конвертируемая в SQL. например:

dataSet.DataTable.Where(e => e.Data != null).Select(MyInternalMethod);
>>673150
#261 #673003
>>667749
Отпугиваешь потенциальных конкурентов?
111 Кб, 720x540
#262 #673070
Блядь, Аноны. Я заебался, 3 дня ебусь с многопоточностью. Суть такова: надо спарсить сайт, тоесть по статичной ссылке увеличивая страницу которую гадо спарсить. Я пробовал с thread, backgroundworker,parallel,threadpool, все это нихуя не пашет в моих ебанутых руках. Аноны поясните, как я могу распарсить список из 100к ссылок, в овердохуя потоков? Делал так: количествоНаботыНаПоток = количествоСтраниц/количествоПотоков;
сКакойСтраницы = Айдипотока*количествоРаботыНаПоток;
поКакуюСтраницу = сКакойСтраницы+количествоРаботыНаПоток;
Айди передавала примерно так(для Thread)
For(var i=0; i<100;i++){
Var tr = new thread(parase);
}
В бд в итоге пишется ~100 один и тот же элемент со страницы.
>>673093>>673158
#263 #673089
>>672166
Я спросил другу моего друга который знает английский хуже меня, он сдал IELTS на 9.
>>673092
#264 #673092
>>673089
Я спросил ielts, который знает английский хуже моего друга, он сдал меня на 9.
#265 #673093
>>673070
У меня на работке такая задача решалась через Parallel.ForEach, с периодическим пересозданием контекста.
#266 #673096
>>672846
Надкюсь, jb через 5 лет выпустят полагин для nemerle.
>>673147
#267 #673147
>>673096
Да кому вообще этот невмерле нужен
>>673170
#268 #673150
>>672973
И не получится так просто. Гугли ComVisible.
>>672989
Если попытаться это написать без AsEnumerable, он ругнется что не может преобразовать linq в sql или что-то такое.
>>673160
9 Кб, 342x210
#269 #673152
Шарпаны, я вот использую asp.net identity для аутентификации.
В вебкофиге у меня написана такая штука как на пике.
То есть неавторизованным пользователям доступ запрещен и их редиректит на login.aspx.
Так вот, какого хрена на этой самой странице логина не грузятся библиотеки (жквери там всякие с йоба-контролами) и стили? Как это исправить?
>>673160
#270 #673158
>>673070
во 1-х, не надо использовать new Thread

во 2-х, покажи хотя бы часть того, что ты наваял. так-то не очень очевидно, как у тебя потоки запускаются и работают
>>673241
#271 #673160
>>673150

> Если попытаться это написать без AsEnumerable, он ругнется что не может преобразовать linq в sql или что-то такое


жопой читаешь?

>>673152
через бандлы это решается. а на других страницах с понтом грузятся?
>>673206
#272 #673170
>>673147
мне
#273 #673181
>>672973
на сях напиши, хуле ты
#274 #673187
Подскажите книгу какую по вебформам. Желательно в контексте 4 .net
>>673189
#275 #673189
>>673187

> .NET 4.0



> WebForms

12 Кб, 274x335
#276 #673206
>>673160
На других страницах грузится все нормально. Причем если залогиниться, а потом выйти назад на форму логина, то там уже все будет норм (ну видимо из кэша все берет).
Пока что просто сделал deny для каждой страницы кроме login.aspx.
А что за бандлы?
>>673210
#277 #673210
>>673206
public static void RegisterBundles(BundleCollection bundles)

bundles.Add(new ScriptBundle("~/azaza").Include("~/scripts.azaza.js"));

но если это вебформы, то я тебе не помощник
>>673219
#278 #673219
>>673210

>если это вебформы


Именно они :(
#279 #673241
>>673158
Я делал по разному. В основном я как раз таки делал или анонимные классы потоков, или запихивал их в коллекция, и оттуда вызывал форичем.
Вот последний код:
http://pastebin.com/NeESHQyg
>>673246
#280 #673246
>>673241

https://dotnetfiddle.net/ZZOJqG

ну и? что не так? на самом деле все не так, но вопрос не в этом, а в том, что все вроде как as expected
>>673268
69 Кб, 1062x839
#281 #673268
>>673246
https://dotnetfiddle.net/BEDRIl
Всё действительно пашет анон. Но у себя в коде обосрамс всё равно происходит.
Надеюсь по скрину будет понятно.
>>673270
#282 #673270
>>673268
https://dotnetfiddle.net/dtlw9l
видишь, какое говно происходит?
сделай через параллел.фор и за каждый new Thread() отрывай себе руки
>>673276
#283 #673276
>>673270
Parallel.For(0, PageCount, i =>
{
}
Делал так, эффект такой же.



И с тем примером вроде как всё пашет.
https://dotnetfiddle.net/ELKAX2
>>673299
#284 #673299
>>673276

> https://dotnetfiddle.net/ELKAX2


ну, ты исправил расчет ToPage, а там 10-15% дубля уже отвалилось

и второе, раз такая же лабуда, проблема может быть и будет в том коде, что постранично вытаскивает ссылки
#285 #673331
>>667709 (OP)
Программач-сишарпыч, подскажи, как получить список всех классов и их public, protected методов из .DLL файла?
>>673333>>673334
#286 #673333
>>673331
Assembly.LoadFile(fileName).DefinedTypes
>>673338
#287 #673334
>>673331
*список названий
#288 #673338
>>673333
Отлично, сейчас опробую. Сяп
#289 #673432
Аноны, кто нибудь парсил авито? Схуяли меня не пускает дальше 100 страниц через ?p=
>>673490
#290 #673490
>>673432
как-то и с браузера обычным мышкокликом не переходит на 101ю
>>673499
#291 #673499
>>673490
О том и речь. В мобайл вершен так же.
>>673501
#292 #673501
>>673499
стучи в поддержку, иначе чего мы тебе подскажем
>>673538
26 Кб, 172x156
#293 #673538
>>673501
Написал в сап. И всё же, если анон что знает...
>>673684
#294 #673684
>>673538
Сомневаюсь, думаю на их стороне какой-то осознанный лимит
>>673737
#295 #673737
>>673684
magic numbers everywhere?
>>673748
#296 #673748
>>673737
Сотня не такой уж и magic
#297 #673801
Hej, guys.

Хочу создать nuget package для библиотеки классов с автосборкой после успешной сборки проекта. Также нужно сделать multitargeting, т.е. создать дохуя .dll для разных фреймворков и разного рода сильверлайтов. Как это сделать в Visual Studio? Пытался ручками прописывать конфигурации для сборки библиотеки под разные версии фреймворка -- заебало.
#298 #673824
Стянуть бы апач фаундейшн у джава блядей, цены бы языку не было.
#299 #674013
Где можно навернуть почитать про актуальные фреймворки? Желательно на русике. Хотя и английский сойдет.
#300 #674014
Как вообще апворк отслеживает часы работы?
За что конкретно платятся деньги?
>>674015>>674033
#301 #674015
>>674014
Сука не тот раздел.
#302 #674033
>>674014
Ты вручную его включаешь когда работаешь и отключаешь когда перестаёшь. Раз в десять минут (+/- небольшое рандомное время) делается скриншот и тайтл текущего активного окна отсылается вместе с поминутной статистикой кол-ва нажатых клавиш клавы и кнопок мыши.
>>674230
#303 #674049
>>670958
Можно встроить либу в ресурсы и потом подгружать ее оттуда в обработчике AppDomain.CurrentDomain.AssemblyResolve. В CLR via C# пример был.
#304 #674164
Поясните, что значат эти скобки '<>'
Код:
public async Task<IActionResult> SendCode(SendCodeViewModel model)
>>674165
#305 #674165
>>674164
Гугли c# generics
#306 #674230
>>674033
Так можно, имея 2 монитора, наебать работодателя. Играя в это время в ммо, например.
>>674233>>674260
#307 #674233
>>674230
я думаю, в скриншоты никто не смотри, если не работают с тобой впервые, например, или ты где-то конкретно лажаешь/затягиваешь, дабы убедиться, что ты не ракуешь за их счет

из своего опыта фрилансирования с скриншоттрекерами помню, что что не скрин в моем отчете - то асечка открыта, то браузерка какая-нибудь, то гуглтранслейт. хотя я старался филонить по-минимуму на камеру
#308 #674234
>>674233
*
не смотрит
#309 #674237
>>674233

> асечка


> 2016

>>674238
#310 #674238
>>674237
кто тебе сказал, что это недавно было, даун?
>>674246
#311 #674246
>>674238
Чому мы такие агрессивные? :3
>>674251
#312 #674251
#313 #674260
>>674230
Скрин будет делаться активного монитора, может если только играть пять-максимум семь минут после каждого скрина и потом переключаться обратно на иде/редактор и ждать следующего скрина (там нечётко 10 минут +/- 2 минуты постоянно, может и через семь сделать по-моему - не помню).
А вот фильмецы можно запросто смотреть я так часто делал.
#314 #674264
>>674233

>из своего опыта фрилансирования


У меня наоборот. Даже удалял по 10 минут пару раз из дневника когда неотносящуюся к работе бодягу одеск трекер скринил. Один раз просто папка была открыта со скачивающимся с торрентов сопранос - удалять не стал так как на фоне иде была, клиент на следующий день спросил как мне сериал, оказалось большой фанат.
>>674270
#315 #674270
>>674264
на одеске же с удалением шотов, урезалось время наработки вроде бы как, или я путаю?
>>674276
#316 #674276
>>674270
iirc можно только скрин удалить если что, но только из дневника. Если отменять сразу из трекера в течение таймаута, чтобы скрин даже не отсылался, тогда ~10 минут срезается, да.
#317 #674542
почему какой-то пидар, не знающий, как из Nullable<T> вытянуть значение или как обратиться к двум БД, находящимся на одном сервере, с одного запроса сидит миддлом и зашибает бабло ))))), а я все еще джун и без толкового занятия?
>>674753
#318 #674624
Пытаюсь вкатится после питона и js. Немного охуел, если честно, с основ.Как будто у каждой проблемы есть решение на уровне синтаксиса. Или не нужно было начинать с курса на pluralsight. Попробую какую-то книжку из оппоста.
#319 #674700
Подскажите, есть способ на шарпе быстро парсить строки в разных системах счисления? Convert.toInt32 на степенях с основаниями 3-7 эксепшн выдает.
>>674711
#320 #674711
#321 #674753
>>674542
Потому что ты безинициативное чмо.
>>674779
#322 #674779
>>674753
от меня достаточно инициативы былопровалов в своей инициативе приблизительно столько же. а он просто аморфный пидор. и в чем, собственно, разница?
>>674803
#323 #674803
>>674779
Хули ты все умничаешь, сука?
>>674866
#324 #674866
>>674803
поныть тут пришел, хуле
#325 #675464
WPF.
Есть модель (какой-то класс с какими-то свойствами), допустим
public class Employee
{
public string Name { get; set; }
}
Как сделать так, чтобы было MVVM, но чтобы конкретно этот класс менять (реализовывать в нем INotifyPropertyChanged) не нужно было? Чтобы потом эту же самую модель можно было без перепиливания использовать в чем-то отличном от WPF.
>>675473>>675475
#326 #675473
>>675464
Может с Fody можно что-то вроде такого, ну или ручками

public class Hui {
string Name {get;set;}
}

[ImplementPropertyChanged]
public class HuiViewModel : Hui {}
>>675496
#327 #675475
>>675464
POCO - это не viewmodel
>>675496
#328 #675496
>>675473
То есть нужно наследовать? А что если в нем определен метод, который изменяет одно из полей? Допустим
public void CapitalizeName()
{
Name = Name.Substring(0, 1).ToUpper() + Name, Substring(1, Name.Length).ToLower();
}
В таком случае если я вызову этот метод, в интерфейсе ведь ничего не обновится.
И я же не могу так просто взять и сделать оверрайд в наследнике, методы же не абстрактные.
>>675475
Я понимаю что это не вьюмодел. Какую обертку надо написать для такого класса (в нем могут быть не только данные, но и методы работы с ними), чтобы получилось вьюмодел. Ну тип чтоб правильно и без изобретения велосипедов?
>>675498
#329 #675498
>>675496
Автоматом ведь имплементирует для класса, не?
https://github.com/Fody/PropertyChanged
>>675515
#330 #675515
>>675498
Прикольная штука. Схоронил, потом попробую.

Алсо, такой вот подход
http://www.filedropper.com/timesim
сильно индусский? (Рыгахост не работает почему-то)
То есть я передаю Action в тот класс, который должен что-то выводить в UI.
#331 #675564
>>672695
Запилите в шапку
#332 #675574
http://blogs.msdn.com/b/rudevnews/archive/2016/03/04/fsharpconf-2016.aspx

> 2:45 Cassandra, Docker and F# Awesomeness, Alena Hall



Угадайте, кто сегодня выступает.
>>675992
#333 #675607
Книга Албахари 2014 года в ДС кому-нибудь нужна?
Отдам за символическую сумму или обменяю на другую книгу. Так и не притронулся, забил на Сишарп.
>>675611
#334 #675611
Фейкомыльце: q4sdfvxcvb.q[/cweqweANUSyanrCgdexPUNCTUMPB[ru

>>675607
3 Кб, 130x124
#335 #675699
Аноны, написал свою "финтифлюшку, пукалку с перделками" которая должна отправлять кое какие jsonушки. Естественно по запросу с клиента(мобильная прилажка, андрюха, виндерфон,). Нужно написать сюрвер. Можете статеек с экзамплами накидать? Только не в стиле "Простенький сервер за 15 минут" и т.п.
>>675710
#336 #675710
>>675699
а в стиле "сложненький энтерпрайз за пол-года тимы сирьоров?"

ну тут, наверное: http://www.asp.net/web-api/overview/getting-started-with-aspnet-web-api/tutorial-your-first-web-api
>>675720
562 Кб, 2560x1696
#337 #675720
>>675710
А экзамплов с именно такой как у меня задачей нет?
рандомпик
>>675722
#338 #675722
>>675720
все, что тебе надо, там есть:
создаешь контроллеры -> создаешь экшены -> запускайешь модель -> возвращаешь контент
>>675749
1134 Кб, 720x960
#339 #675749
>>675722
Спасибо анон!
#340 #675885
Аноны помогайте.
Пишу прогу, столкнулся с ошибкой System.OutOfMemoryException. Ну понятно, что не хватает оперативы. Стал тестить - у меня стабильно вылетает когда прога занимает 520 Мб оперативки. Чё за фигня? Система х64, оперативки на борту 12 Гб. Редактор Visual Studio 2010 Express. Потестить на другой машине нет возможности..
>>675898
#341 #675898
>>675885
вероятней всего создаются объекты, которые не могут влезть в кучу (по дефолту это 2Гб)
>>675901
#342 #675901
>>675898
Эм.. а расширить никак? Пишу типа сервер, расчитывал минимум на 10Гб оперативы а тут.. полазил по гуглу, надо как-то поставить в настройках режим х64, но хз, можно ли это VS2010 Express..
>>675903
#343 #675903
>>675901
сходу спрошу, нахуя тебе это? может быть проблема в говнокоде? 2Гб на объект - это просто дико много (либо массив из миллионов элементов говна, что тоже много)
>>675919
#344 #675919
>>675903
Да дело не в 2 гб на объект. Всё приложение не может занимать более 2 гб, а то и меньше. Ну это как-то неправильно. При этом я пишу сервер онлайн игрушки ой всё и 2 гб тут может оказаться мало. Хочу заранее решить - это глобальная проблема в чём я сомневаюсь, не могут С# проекты быть ограничены 2 гб, взять к примеру 3D max, или просто надо что-то сделать.
>>675946>>675963
#345 #675946
>>675919
Попробуй в x64 компилить
>>675948
#346 #675948
>>675946
А, увидел. Ну ты это, поставь что-то поновее, серьезно. VS2010 это уже совсем днище.
>>675963
#347 #675963
>>675948
причем тут версия? хоть в блокноте пиши, ошибка никуда не денется

>>675919
речь не о объеме приложения а памяти, а в размере кучи. что бы ты там не писал, хоть гигапортал какой-то, ты пытаешься создать какой-то совсем дикий объект и это неправильно, естественно
>>675974>>676003
#348 #675974
>>675963
Я не уверен, что с десятой студией поставляется 64 компилятор
171 Кб, 1024x1024
#349 #675992
>>675574
Леночка <3
>>675995>>677040
#350 #675995
>>675992
Леночка будет рассказывать про "баззворд, баззворд и баззворд", как неожиданно.
#351 #676003
>>675963
Да не в объекте дело. Я могу создать интовский массив на 350 млн. элементов. А вот два массива немогу, эксепшон. Короче ладно, качаю на тест 2015 community версию, буду там тестить. Мож действительно эра VS2010 ушла.
>>676007>>676042
#352 #676007
>>676003
Она ушла 6 лет назад. В студии нельзя интегрировать поддержку новых версий шарпа, поэтому со старыми версиями у тебя в любом случае будет куча проблем. Даже в предыдущей 2013ой студии не поддерживается новый шестой шарп, только в 2015
>>676042
#353 #676019
есть какие-нибудь книги по MVVM?
>>676023>>676049
#354 #676023
>>676019
По MVVM можешь статейку в википедии прочитать, это не более чем паттерн используемый в WPF. Если хочешь погрузиться именно в WPF, то другое дело, бери "Pro WPF 4.5 in C#"
>>676109
6 Кб, 438x132
#355 #676042
>>676003

> Я могу создать интовский массив на 350 млн. элементов


научи нуба, а
VS2015 Professional, если что

>>676007

> Даже в предыдущей 2013ой студии не поддерживается новый шестой шарп


lol
#356 #676049
>>676019
отрендери исходный код caliburn.micro или mvvmlight в pdf - будет тебе книга
#357 #676054
>>676042
Сколько оперативки?
>>676056
#358 #676056
>>676058>>676062
#359 #676058
>>676056
а, ну очевидно, да
#360 #676061
>>676042
конфу х64 сделал?
#361 #676062
>>676056
Это 2.6 гб насколько я понимаю + оверхед
Алсо
https://msdn.microsoft.com/en-us/library/hh285054(v=vs.110).aspx
#362 #676109
>>676023

>бери "Pro WPF 4.5 in C#"


Уже начал, но там все реализации на MVP. Хотелось бы разобраться именно в MVVM (WPF+MVVM).

Может есть какие-то open source программы на WPF/WPF+MVVM, накидайте ссылочек, шарпаны
>>676137
#364 #676137
>>676249
#365 #676249
>>676137
Посмотрел, это немного не то.
Есть ещё что-то, желательно WPF+MVVM?
#366 #676250
Программач,
Подкинь литерутуру для формошлепства. Приложения разные там, события.
С основами языка знаком.
>>676351
#367 #676351
>>676250
Если ты не знаешь как работают события, то с основами ты не знаком. Так что бери Шилдта/Троелсена и в путь. Формы ничем принципиально не отличаются от консоли, поймешь консоль - формы пойдут легко.
Ну и пара ссылок для формоновичка:
http://www.cyberforum.ru/windows-forms/thread1558189.html
http://www.cyberforum.ru/windows-forms/thread110436.html
>>676398
#368 #676398
>>676351

>Шилдт


В шапке такого нет.
>>676432
#370 #676834
Как нормально клонировать Dictionary<Type2, List<Type2>> ? Чтоб ссылки у двух объектов были разные.
#371 #676912
>>676834
У словарей?
>>677021
#372 #676978
>>670181
Люблю на собеседованиях спрашивать, как как получить unix timestamp, а когда мне радость пишут, спрашиваю, зачем может быть это нужно и в каких случаях, не считая работ с бд. Половина болванчиков отсеивается сразу.
>>676995
#373 #676995
>>676834
нормальный вариант
dictionary.Clone as Dictionary<Type2, List<Type2>>

ебланский вариант
dictionary.ToDictionary(kvp=>kvp.Key, kvp=>kvp.Value)

>>676978
а зачем, кроме экономии памяти, наверное?
а все ли СУБД сегодня могут в DateTimeOffset?
>>677021
37 Кб, 639x599
#374 #677000
под мак для работы с winforms (именно редактор визуальный этот) что-нибудь есть нормальное? xamarin не поддерживает (найти не могу хоть убейте), а работы своих студентов надо как-то проверить
inb4: virtualbox + vs
#375 #677005
>>677000
Rider же у JetBrains вышел. попробуй его погонять
>>677010
#376 #677007
>>677000
Для винформс только вс, сорри
>>677010
#377 #677010
>>677005
Там функционал уровня vs code, ничего нет
>>677007
Спасибо, буду значит в виртуалке кататься
#378 #677014
>>677000

> 2016


> winforms


Нахрен ты студентов к такому говну проучиваешь. Лучше уже консоль.

В Xamarin есть только Gtk.forms, а они не совместимы с winforms.
>>677016>>678958
#379 #677016
>>677014
а что с формами не так? или ты думаешь, что если студентоте показать формы, они их до конца жизни юзать будут? ну я так точно думаю, например. но формы от этого говном не становятся
>>677019
#380 #677019
>>677016
Ты программированию учишь или формошлепству?
>>677023
#381 #677021
>>676834

>Dictionary<Type1, List<Type2>>


Самофикс. И тайп1-2 ссылочное.
>>676912
И на них, и на элементы. Все ключи, каждый элемент в списке значений.
>>676995
А если чтоб и все элементы имели новые ссылки?
Алсо можешь подробный синтаксис для Клона написать, у меня не видит такого метода
>>677618
#382 #677023
>>677019
я не он
#383 #677032
Есть класс
MyImage
{
public int x;
public int y;
public Bitmap bitmap;
}
Как коллекцию таких объектов привязать в WPF в какой-нибудь ItemsControl или Canvas или что там есть для отображения графики?
>>677036>>677051
#384 #677036
>>677032
xaml:
<ListBox ItemsSource="{Binding MyImageItems}"></ListBox>

code:
public List<MyImage> MyImageItems { get; set; }
>>677039
#385 #677039
>>677036
Нахуй мне листбокс? Мне нужно граф рисовать, с различными иконками вместо вершин.
254 Кб, 841x440
#386 #677040
>>675992
Мне кажется, или леночка вдвое увеличилась в ширину?
#387 #677041
>>677039

>в какой-нибудь ItemsControl

>>677060
#388 #677051
>>677032
>>677039
прочти книгу, Wpf 4.5 Unleashed или Pro Wpf. Wpf довольно сложный фреймфорк (многие считают что даже переусложнённый), с наскока у тебя только будет всё больше и больше тупых вопросов и неидиоматичного wpf кода.
#389 #677060
>>677041
Так я и спрашиваю как это делается.
Правда я так понял что никак, только если свой контрол писать.
#390 #677063
>>677039
для графа нет стандартного механизма/контрола. ибо, понимаешь, нихуя себе
зато есть куча готовых библиотек/примеров, в т.ч. опенсорс
#391 #677146
>>667709 (OP)
Здарова, обшарпанные! Console.Beep() не производит звуки короче 100мс, а при переходе между звуками (перебираю через цикл) слышны щелчки или помехи, хуй пойми что. В общем, эта хуйня не работает. Где подводные камни?
>>677183>>677186
#392 #677183
>>677146
В твоей пищалке?
#393 #677186
>>677146
делай перерывы между beep`ами очевидно. Ты же не мп3шки там на пищалке играть собираешься?
>>677220
#394 #677220
>>677186
Мне нужна сирена, там нет перерывов.
>>677230>>677267
#395 #677230
>>677220
Ты что там делать собрался, окаянный? Сирену он решил сделать, всякой хуйни я поведал, но это уже перебор.
>>677238
#396 #677238
>>677230

>поведал



Кому и что ты поведал, болезный? Таких, как ты, не способных осилить родной язык, я бы даже грузчиками не взял работать. Вы хуже жывотных.
>>677270>>677274
#397 #677267
>>677220

>сирена


ебашь в NAudio какой-нибудь
>>677314
#398 #677270
>>677238

>кокок расея РУ$$$$$$$КИЙ ЯЗЫК!!!!!!


>жывотных


Иди подмойся, Маня.
#399 #677274
>>677238
Думал об одном, а написал другое, чего пристал.
#400 #677314
>>677267
Длительность и высота + длительность пауз это всё, что вообще нужно для музыки. Почему не работает ясное и понятное средство из стандартной библиотеки? И ЗА ЭТУ ХУЙНЮ МЕЛКОМЯГКИЕ ТРЕБУЮТ ДЕНЕГ???
>>677324
#401 #677324
>>677314
8/8 b8 and I'm taking it
Во-первых, кто с тебя требует деньги за .net framework?
Во-вторых, Console.Beep это не апи для работы со звуком, это функция для работы с пищалкой на материнской плате, так как эмулятору терминала положено уметь пищать. Так что оно работает ясно и понятно, только к музыке не имеет никакого отношения - остынь.
>>677350
#402 #677350
>>677324

>с пищалкой на материнской плате



Но я слышу звук из колонок и наушников, а материнка у меня не пищала вообще никогда и походу вообще не должна пищать. А звук между прочим весьма приятный и чистый, если в ноты попадать, и на 8-битную пищалку типа марио или танчиков потянет.
>>677358
#403 #677358
>>677350

>из колонок и наушников


ну да

>на материнской плате


ignore this, не спал долго
#404 #677593
Кстати про пищалки.. Никто годную библиотеку для проигрывания мп3 и огг не скажет? И что б можно было файлы из дллки проигрывать (с потока), а не только с диска?
#405 #677618
>>677021
Бамп
>>677628
#406 #677628
>>677618

public static Dictionary<T1, IEnumerable<T2>> CloneDictionary<T1, T2>(this Dictionary<T1, IEnumerable<T2>> dictionary)
where T1 : ICloneable
where T2 : ICloneable
{
return dictionary.ToDictionary(kvp => (T1)kvp.Key.Clone(), kvp=>kvp.Value.Select(i => (T2)i.Clone()));
}
>>677669
#407 #677669
>>677628
Ультраизъебство получается. Самый адекватный вариант в его случае будет сериализация/десериализация в памяти.
>>677674
#408 #677674
>>677669
сериализация требует public/internal видимости класса, наличие доступных сеттеров. плюс, возможно, не все есть возможность/необходимость сериализовать
по большому счету не вижу разницы
59 Кб, 617x850
#409 #677759
Двач, спаси. У меня намечается кризис среднего программиста.
Знаю и работаю по направлению дотнета, асп-макака. И вроде работу выполняю хорошо и без изъебств, но всё такое примитивное, что учиться не получается. Чувствую себя каким-то эникеем на гос. предприятии, который напишет задач за 3 часа и плюёт в потолок остальное время. Меня это угнетает, хочется чего-то нового интересного узнать. Однако когда пытаюсь начать изучать это новое, то даже не представляю пригодится мне это в дальнейшем или останется ненужным говном в памяти, и поэтому бросаю.
Что сейчас полезно осваивать? Какие направления или поднаправления для дотнетчика может? Где вообще информацию по трендам брать?
>>677764>>680043
#410 #677764
>>677759
Меняй работу раз в пару лет
>>677765
#411 #677765
>>677764
Но сейчас мне нужно что-то делать со свободным временем. Английский я уже знаю.
>>677766>>680043
#412 #677766
>>677765
В трендах датасаенс, модная джс параша, dnx. Выбирай, пробуй, пили
#413 #678256
Блин, а как можно эффективно и красиво, что важно, написать переворот строки на сисярпе? У меня в голове только ToCharArray().Reverse().ToString().
>>678282
#414 #678282
>>678256 Ну и что тебе не нравится в таком решении?
>>678284
#415 #678284
>>678282
Слишком медленно.
>>678288>>678292
#416 #678288
>>678284
Тебе не надо разворачивать строку, тебе надо читать ее с конца
>>678290
11 Кб, 196x200
#417 #678290
>>678288

>Тебе не надо


Прости, но это сейчас прозвучало так, как будто ты из треда пердоликов. Еще раз говорю прости, без обид.
#419 #678691
Подскажите, как лучше реализовывать фиксирование изменений в существующий бинарный файл: полностью его переписывать, или читать до момента изменения, записывать новую информацию/считывать в пустоту удалённую, и писать дальше? Или всё зависит от текущих размеров файла с информацией?
>>678699>>678704
#420 #678699
>>678691
пиши с нуля
>>678701
#421 #678701
>>678699
Но ведь операции записи на диск медленнее, чем чтение. Или если читать почти весь файл при записи, то будет уходить больше времени?
>>678714
#422 #678704
>>678691

> Или всё зависит от текущих размеров файла с информацией?


this

Если у тебя работа с крупными файлами, и есть возможность их разбить на несколько мелких, это будет неплохим вариантом.
#423 #678714
>>678701

>Или если читать почти весь файл при записи, то будет уходить больше времени


Смотря как организовано это всё.
У тебя же это сериализация, нет?
До 10-15 метров без разницы вообще.
>>678734
#424 #678734
>>678714
Можно сказать, сериализация - записываю и читаю через binary writer/reader. Но без отдельного класса под объект записи.
#425 #678958
>>677014
Дрочую. Что с формами не так? Объясни, не бей
#426 #679063
Это не преступление так писать?
lock (SAVE ? (object)dataAlbum : (object)albumRow.Table.DataSet)
>>679105
#427 #679105
>>679063
Я бы тебя за такое уволил.
>>679127
#428 #679127
>>679105
Аргументация будет или только кукареку?
>>679143
#429 #679143
>>679127
Когда-нибудь, тебе, или еще кому-либо, может понадобиться разобрать это говно, и ты точно не будешь благодарен себе за лишнее потраченное время.
>>679147
156 Кб, 200x200
#430 #679147
>>679143

>Когда-нибудь

#431 #679156
Стоит ли уже использовать ASP.NET 5 и EF 7 для энтерпрайза, как думаете? Вроде бы уже релиз кандидаты, правда только первые версии. Хотелось бы в новом проекте использовать новый ASP, а не тащить старое говно.
#432 #679158
>>667844
Как ты себе это представляешь? Ключом будет объект? Ты точно понимаешь, что делаешь?
Может все же ключом будет строка Dictionary<string, object>? Или внутри объекта будет свойство, которое содержит в себе объект - Object.AnotherObject?
>>679220
#433 #679161
>>668350

>Как быть, если мне нужно часть функционала одного сервиса использовать в другом?


Создай сторонний проект, в нем создай папку services, который и выполняет все необходимые манипуляции, а из методов контроллера работай уже с этими классами, отправляй туда нужные параметры, а класс уже сам будет делать что тебе надо, независимо от того, откуда ты их вызвал.
#434 #679166
>>672049

>Класс наследует другой класс


>класс на основе интерфейса


>какие-то квадратные скобки


>Сложночитабельный код


>понапридумывали всякой хуйни


То ли дело родные mov ah, 04Ch, да?
>>679176
#435 #679176
>>679166
А мне жаль, что я не застал времена доса. Вот бы я писал вирусы под него, да как бы ксорил ворды в уме! Тогда даже было проще впаривать вирусы лохам.
59 Кб, 453x604
#436 #679220
>>679158
Если объект переопределяет GetHashCode и Equals, то почему бы и нет?
#437 #679230
Что происходит при вызове Invoke и beginInvoke для кросс-поточных операций? Имею ввиду, вот, допустим, у меня есть два треда. Из одного треда вызываю метод объекта, созданного в другом треде. Получаю ошибку типа "ой братан кросстредовый вызов запрещённая операция всё такое". Начинаю использовать из второстепенного треда Invoke или BeginInvoke с делегатом метода объекта, созданного в основном треде. И вот что меня интересует: при вызове инвоук/бегин инвоук, я отправляю запрос на работу основному треду, и получается, что то, что я вызываю в инвоуках, происходит в том треде, к которому происходит обращение? Или я просто сообщаю треду-владельцу объекта, что вот мол щас братан вот сюда не обращайся, я пока чу чуть поработаю, и в итоге работа происходит во второстепенном треде, в котором и был вызван инвоук/бегин инвоук?
>>679247
#438 #679247
>>679230

>Control.Invoke executes a delegate on the thread that owns the control's underlying window handle.

#439 #679248
Антонио, мне нужна актуальная литература (на русском) по шарпу. Если, к примеру, на русском 6.0. нету, тогда годная 5.0. Кодил на уровне быдла на плюсах года три - не мое это, слишком я долбоеб хардкорно .
>>679256
#440 #679256
>>679248

> актуальная литература


> на русском


Выбери одно
#441 #679285
Что можете посоветовать птушнику первокурснику для изучения? Знаком с Паскалем на уровне циклов. Разумно будет начинать с Шилдта?
>>679307>>679346
#442 #679307
>>679285
С HoTT начинай
>>679328
#443 #679328
>>679307
Гугл выдает англоязычные платные курсы. Есть что-нибудь на русском?
>>679340
#444 #679340
>>679328
Значит, начинай с английского, а не с шарпа
>>679350
#445 #679346
>>679285
С Троелсена все начинают.
#446 #679350
>>679340
Сишарпчую.
#447 #679353
Программа с двумя кнопками для записи и чтения из word документа. Как можно улучшить код?

[CODE]public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void WriteFrom_Click(object sender, RoutedEventArgs e)
{
if (richTextBox.Document.Blocks.Count != 0)
richTextBox.Document.Blocks.Clear();

OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "Word Document (.docx, .doc)|.docx; .doc";
openFileDialog.InitialDirectory = @"C:\Users\Sasha\Desktop\Word\docx";

if(openFileDialog.ShowDialog() == true)
{
Word::Application word = new Word::Application();
object path = openFileDialog.FileName;
Word::Document doc = new Word::Document();
doc = word.Documents.Open(path);

string resultStr = "";
for (int i = 0; i < doc.Paragraphs.Count; i++)
{
resultStr += doc.Paragraphs[i + 1].Range.Text.ToString();
}

richTextBox.AppendText(resultStr);
doc.Close();
word.Quit();
}
}

private void WriteTo_Click(object sender, RoutedEventArgs e)
{
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "Word Document (.docx, .doc)|.docx; .doc";
openFileDialog.InitialDirectory = @"C:\Users\Sasha\Desktop\Word\docx";

if(openFileDialog.ShowDialog() == true)
{
Word::Application word = new Word::Application();
object path = openFileDialog.FileName;
Word::Document doc = new Word::Document();
doc = word.Documents.Open(path, ReadOnly:false);
Word::Range r = doc.Range();
r.Text = new TextRange(richTextBox.Document.ContentStart, richTextBox.Document.ContentEnd).Text;
doc.Close();
word.Quit();
}
}
}[/CODE]
#447 #679353
Программа с двумя кнопками для записи и чтения из word документа. Как можно улучшить код?

[CODE]public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void WriteFrom_Click(object sender, RoutedEventArgs e)
{
if (richTextBox.Document.Blocks.Count != 0)
richTextBox.Document.Blocks.Clear();

OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "Word Document (.docx, .doc)|.docx; .doc";
openFileDialog.InitialDirectory = @"C:\Users\Sasha\Desktop\Word\docx";

if(openFileDialog.ShowDialog() == true)
{
Word::Application word = new Word::Application();
object path = openFileDialog.FileName;
Word::Document doc = new Word::Document();
doc = word.Documents.Open(path);

string resultStr = "";
for (int i = 0; i < doc.Paragraphs.Count; i++)
{
resultStr += doc.Paragraphs[i + 1].Range.Text.ToString();
}

richTextBox.AppendText(resultStr);
doc.Close();
word.Quit();
}
}

private void WriteTo_Click(object sender, RoutedEventArgs e)
{
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "Word Document (.docx, .doc)|.docx; .doc";
openFileDialog.InitialDirectory = @"C:\Users\Sasha\Desktop\Word\docx";

if(openFileDialog.ShowDialog() == true)
{
Word::Application word = new Word::Application();
object path = openFileDialog.FileName;
Word::Document doc = new Word::Document();
doc = word.Documents.Open(path, ReadOnly:false);
Word::Range r = doc.Range();
r.Text = new TextRange(richTextBox.Document.ContentStart, richTextBox.Document.ContentEnd).Text;
doc.Close();
word.Quit();
}
}
}[/CODE]
>>679356
#448 #679356
>>679353
зачем?
>>679359
#449 #679359
>>679356
Ну что б понять как лучше сделать
>>679361
#450 #679361
>>679359
вопрос был поставлен так: что ты хочешь улучшить?

можно написать один уровень абстракции сверху этих двух методов и вынести код туда, можно включить многопоточность, можно нафигачить всяких костылей умных и не очень

ну, а еще ShowDialog() разве возвращает Boolean?
>>679367
#451 #679367
>>679361
Я вот думал можно ли сделать так что бы один раз приходилось закрывать ворд, но когда я писал все время ворд оставался в фоновых процессах.

В пространстве имен Microsoft.Win32 ShowDialog() возвращает Boolean. Это wpf
>>679369
#452 #679369
>>679367
Marshal.FinalReleaseComObject(doc)
doc = null

по-моему, это добивает процесс
>>679371
#453 #679371
>>679369
Че-то сложновато. Оставлю как есть.
>>679380
#454 #679380
>>679371
а че сложного?
>>679384
#455 #679384
>>679380
Ну есть же простой метод Close(). А зачем такую структуру использовать.
>>679385
#456 #679385
>>679384
потому, что Microsoft.Interop.*.Application, Document, Sheet, etc. - это COM-объекты. их надо убивать потому, что они могут висеть даже после закрытия основного потока в отличии от бэкграунд потоков каких-нибудь форм, которые убиваются CLR-ом
>>679388
#457 #679388
>>679385
А где можно поподробней про комы почитать, ну чтобы поглубже IUnknown, не подскажешь?
>>679389>>679480
#458 #679389
>>679388
MSDN, наверное. я хз, не думаю, что комы нужны на хоть сколько глубоком уровне
>>679390
#459 #679390
>>679389
А где их используют?
>>679396
#460 #679396
>>679390
для взаимодействия DLL с приложениями в первую очередь
>>679403
#461 #679403
>>679396
Я слишком тупой. Можно пример?
>>679405>>679407
#462 #679405
>>679403
x+2=6
x=?
>>679411
#463 #679407
>>679403
.NET приложение <-> Microsoft Office
>>679413
#464 #679411
#465 #679413
>>679407
Не, я про то как это может использоваться
>>679415
#466 #679415
>>679413
1. есть какая-то DLL
2. есть какое-то приложение, которому нужны методы из DLL в п.1
3. ???
4. COM
>>679427
#467 #679427
>>679415
Почему не P/Invoke?
>>679432
#468 #679432
>>679427

> Component Object Model (COM) [blah-blah-blah] introduced by Microsoft in 1993


потому, что не P/Invoke
#469 #679480
>>679388
Лучше ресурса чем ".NET and COM: The Complete Interoperability Guide" от Adam Nathan не встречал.
Но тот анон прав - нахер не нужно, проще по мерам сталкивания с проблемами гуглить каонкретные вещи.
>>679517
#470 #679517
>>679480
Спасибо большое, полистаю. Ибо все равно люблю почитать в свободное время, лишним не будет.
796 Кб, 3264x2448
#471 #679666
>>679701>>679978
1115 Кб, Webm
#472 #679701
#473 #679940
Единственная в своем роде лучшая телеграм конфа дотнетчиков и не только https://telegram.me/joinchat/BE8kJwJcbnfMaal12A8sGQ
>>680066
#474 #679978
>>679666
Че за книга?
#475 #680012
>>667709 (OP)
Привет, анон, если ты джун и выше - .NET конфа приглашает тебя в свои ряды. Делимся опытом, помогаем с поиском работы, бугуртим после отказа на собеседованиях, копаемся в чужих говнокодах. https://telegram.me/joinchat/CBkRKT2h17QNagOSer0uNA
>>680066
42 Кб, 604x549
#476 #680043
>>677765

>Но сейчас мне нужно что-то делать со свободным временем. Английский я уже знаю.


>>677759

> который напишет задач за 3 часа и плюёт в потолок остальное время



https://d1u2uhea8ugy8e.cloudfront.net/upwork_freelancer_guide.pdf
>>680071
#477 #680066
>>680012
>>679940
Я думал что конфа только одна
#478 #680071
>>680043
ватан бомпанул найс.
#479 #680082
Бля как-же туго идет, столько всего в этом шарпе, ахуеть.
>>680126>>680130
#480 #680126
>>680082
разве что по сравнению с паскалем, лол?
#481 #680130
>>680082
че там, брат?
#482 #680272
Стоит ли переносить приложение с 4.0 на более новую платформу?
>>680276
#483 #680276
>>680272
ради async/await стОит. плюс, начиная с 4.5 подправляли ThreadPool, если память мне не изменяет.

а в остальном говнонюансы
230 Кб, 1593x887
#484 #680541
Есть какая-то тулза, которая позволит промониторит в каких местах проекта занимается файл, в каких освобождается и т.п. Ходить в дебаге по коду и щелкать по файлу unlocker'ом - удовольствие сомнительное.
>>680544
#485 #680544
>>680541
API монитор с фильтрами, не?
>>680548
#486 #680548
>>680544
че?(
>>680571
#488 #680576
Какие ещё библиотеки можете посоветовать, чтобы файлики качать? В стандартной исключений много выскакивает.
>>680582>>680585
#489 #680582
>>680576
што блять?
#490 #680585
8 Кб, 321x227
#491 #680608
При каждом вызове метода Fill адаптера таблицы открывается дескриптор файла базы данных. В Unlocker'е это выглядит примерно так. Т.е. в коде у меня строчки
dAdaptCars.Fill(dbDataSet.Cars);
dAdaptCompany.Fill(dbDataSet.Company);
dAdaptGenres.Fill(dbDataSet.Genres);
и т.д.
и после каждого такого вызова открывается файл и больше не закрывается вплоть до выхода из программы.
Это вообще нормально? Куда копать?

В Гугле нашел "DataAdapter will open and close database automatically when they need", но ведь он не закрывает больше! Так и держит все эти соединения. Притом что все загружается в датасет и держать соединение с файлом вообще не нужно.
>>680609>>680610
#492 #680609
>>680608
диспоузать адаптер пробовал?
>>680626
#493 #680610
>>680608
IDisposable там не реализован?
>>680626
#494 #680626
>>680609
>>680610
В смысле?.. Он же у меня потом используется, для обновлений в бд, получений ключа. Там в двух местах, но все же. Просто зачем открывать соединение с файлом для каждой таблицы отдельно и держать эти соединения открытыми.
>>680630
#495 #680630
>>680626
для каждого запроса используй отдельное соединение
вытягивать данные старайся за как можно меньшее количество запросов
>>680634
#496 #680634
>>680630
Я данные вообще не вытягиваю кроме одного раза при вызове Fill, чтобы заполнить датасет. У меня работы с бд реализована через отдельный класс-библиотеку и студия сама сгенерировала эти адаптеры под таблицы. Когда мне нужно обновить таблицу я вызываю

if (dbDataSet.Cars.GetChanges() != null)
{ dAdaptCars.Update(dbDataSet.Cars); }

Все удобно, но я сейчас заметил, что для каждой таблицы она открывает отдельное соединение и держит его. И мне это не нравится.
>>680637
#497 #680637
>>680634
потому, что

using (dbDataSet)
{
if (dbDataSet.Cars.GetChanges() != null)
{ dAdaptCars.Update(dbDataSet.Cars); }
}
>>680638
#498 #680638
>>680637
Эм... что? Уничтожить датасет после обновления?
>>680640
#499 #680640
>>680638
оу, нет

using (dAdaptCars)
>>680650
#500 #680650
>>680640
Ну я попробовал сделать
using (db.dbDataSetTableAdapters.CarsTableAdapter dAdaptCars1 = new db.dbDataSetTableAdapters.CarsTableAdapter())
{ dAdaptCars1.Fill(dbDataSet.Cars); }
И он все равно оставляет открытым дескриптор и файл остается занятым.
#501 #680677
Тред утонул или удален.
Это копия, сохраненная 28 марта 2016 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски