Это копия, сохраненная 28 марта 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
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 (М)
- 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
- 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
внезапно для себя спустя дофига времени решил навалять что-нибудь относительно сурьезное, а нужно ли мне это будет?
Silverlight мёртв.
WPF не мёртв, и на рсдн какой-то инсайдер говорил что над ним ещё даже работают, и что-то там выпустят. Но пока что даже старые баги кажется не фиксят.
Но использовать WPF вполне можно.
можно использовать-то можно, а существуют ли (не древние как говно мамонта, ессессно) серьезные проекты на этом лайне?
На нем пишут црмки, если нужен сильно кастомный интерфейс, и винформы не справляются.
Да какие там вакансии, язык совсем уж мертв. Хочешь язык лучше до-диеза - бери фа-диез
> Как дела с интегацией со студией?
Терпимо. Подсветка работает, правда обновления об ошибках упорно идут только в Output окно, в error list постоянно какая-то хуйня - единственное что меня бесит. Для тех же wpf проектов мастер и дизайнер студийный (насчёт последнего не уверен на 100%, может если проект слепить вручную, то заработает) не работают. Формы вроде работают, не пробовал.
Если не в курсе, немерловцы щас допиливают Нитру, на которой (через год-два-десять) захерачат немерле2 который меньше тормозит при компиляции и с лучшими макросами. Так что сам немерл сейчас в чём-то вроде лимбо, но работать можно - баги фиксят.
> Есть ли вакансии?
Ну ты ебанулся.
> винформы не справляются
это типа контрольчик выезжает со скоростью, изменяющейся по логарифмической функцией, с левого верхнего угла, переливаясь всеми цветами радуги и проигрывая произведение Сальери?
visual studio частично.
вот не большой проект, но относительно серьёзный https://github.com/RolandPheasant/TailBlazer
Нет, если тебе нужен адекватный грид, или без трудностей добавить иконку перед каждым элементом в листбокс, или чекбокс, или еще что-то.
ну не знаю - обьединить пикчабокс и контрол в UserControl-е. ну, это решение уровня raq, но тем не менее
Ну это все конечно можно имплементировать, но в XAMLе это всего несколько строк кода. Дизайнером хамловским, кстати, уже не пользуюсь наверное полтора года, зависимость есть. Куда быстрее, чем приглядываться к съехавшим пикселям в дизайнере винформ.
Скажите лучше сразу как гуглить, а то что-то не особо пошло.
либо T4 шаблоном хуячь (в тексте программы все переменные будут перечислены друг за другом как если бы ты вручную объявлял).
А если надо динамическое n то либо никак, либо через кодогенерацию с которой я не знаком и доступ по имени объект_i у тебя не получится а будешь ебаться с AST насколько я понимаю.
Массивы придумали уже
Шарпач, я заебался. Поясни за деплой 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 нету.
А как я тебе этот энумерабл заполню в цикле?
Вообще цель задачи чисто чтобы вручную словарь не заполнять просто чтобы некоторые функции словаря потестить и интересовало меня только именование новых объектов в цикле - как сделать по-другому не проблема.
Динамические свойства еще с dynamic можешь делать, наркоман. Но лучше не надо.
Вот этолько это говно без задач и никто так делать не будет. Даже во всяких неплохо поддерживающих метапрограммирование языках (ну там вроде руби) такое стараются не делать.
>Просто сижу и пробую можно сделать так или этак
В немерле так можно, с помощью макросов (позволяют перелопачивать твою программу практически как хочешь в о время компиляции). В принципе особо ужасного ничего нет, просто можешь словить переопределение переменных.
Чем больше раз понимаешь про ненужность тем лучше
У меня в приложении есть словарь <дэйттайм, объект> - это основной объект в логике, в нем тысячи объектов, он лежит в классе, окруженный своими методамии прочей логикой.
И есть еще другие словари <дэйттайм, объект>, представляющие некоторые значения, привязанные к датам, в которых ну допустим всего штук по пять записей, которые заполняются непосредственно в коде явным образом, т.е. заранее известными значениями.
Методы основного словаря используют значения из дополнительных там записаны какие-то значения, актуальные на большом временном промежутке, но это не важно.
Так вот в чем мой вопрос:
В какое место приложения поместить дополнительные словари? Сделать каждому из них класс в котором и методов то не будет? Нахуярить их все в один общий класс? Обращаться к ним через методы класса, в котором они лежат, а сами их сделать приватными? Обращаться напрямую?
Где сделать тот кусок кода, который их непосредственно заполняет? В конструктор? В отдельный класс-инициализатор? Просто в мэйн? Сделать метод в том же классе, где словари лежат?
Нихуя не понимаю. Столько вариантов и я никак не пойму что лучше.
Короче, где принято объявлять словари?
> Короче, где принято объявлять словари?
што
> Столько вариантов и я никак не пойму что лучше
я бы на твоем месте сделал бы как работало, а потом сам увидишь, как лучше. пшта я нихуя не понял, че тебе надо и что тебе мешает, а обьяснить сам ты, по ходу, и не можешь
Двачую, чо-то невнятное, словари да словари, хуй поймешь.
> поместить дополнительные словари
в один static класс их положи, назови HuiPizdaDataRepository, например.
>какие-то значения ... но это не важно
Что это за значения как раз таки важно. Меняются ли они в рантайме или нет, если меняются то всем ли частям кода стоит разрешать вносить изменения, имеют ли какое-то отношение друг к другу (зависимость, однотипность) и мн. пр.
А не особо понял что он имел ввиду, но может ему лучше собрать это все как-то в класс со словарем и связанными методами и работь с экземплярами этого класс?
>>667919
Ты лучше хоть кусок кода на ideone или pastebin залей, чтобы хоть примерно понять чего ты добиваешься
тебе нужно помнить что каждая эта хуйня это объект, со своими значениями.
Тот метод который создает объект завут конструктором.
Так вот в него можно напихать объявление словаря(питоноеб чтоле)\хеша
если будет считать что каждый объект уникален, то базывые значение он должен хранить в своем личном хеше. Приватном, и доступ к нему только по акцессорам.
Што што, мне надо штук пять словарей с заранее известным содержимым для методов основного класса. И я не знаю куда в коде все это запихать чисто арихтектурно чтобы потом не охуевать перекладывать если окажется неудобно. Мне ничего не мешает запихать это все в десять разных мест, в этом и проблема.
>>667928
>>667934
По сути у меня выбор из двух стульев - или захуярить их все в один класс или положить каждый в свой класс. Второй вопрос - где их заполнять: в конструкторах или сделать отдельный класс с методами для заполнения.
>Что это за значения как раз таки важно.
Все они в ключах имеют даты. Вэлью такие: флоат, структ, делегат.
В рантайме не меняются, все статично до одури.
> Што што, мне надо штук пять словарей с заранее известным содержимым для методов основного класса. И я не знаю куда в коде все это запихать чисто арихтектурно чтобы потом не охуевать перекладывать если окажется неудобно. Мне ничего не мешает запихать это все в десять разных мест, в этом и проблема.
Если содержимое заранее известно, то почему не XML какой-то?
Я только недавно стал разбираться, в хмл почти нихуя не понимаю - даже в голову не приходило.
Может что-то покурю в эту сторону, звучит разумно, тащемто.
от разных классов и разных методов насколько я понимаю ты пока ничего не выигрываешь. Забей, клади в один класс, инициализируй в конструкторе.
>>667939
Ну в принципе да, сейчас ему самое время напороться на замечательную фичу .NET в лице несериализуемый словарей в BCL. Или ты имеешь ввиду ручками заполнять?
Там можно в полуавтоматическом режиме в хмл сериализовать если что. Еще как вариант 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();
>>667943
Теперь мне самое время узнать что такое сериализация потому что я о ней знаю только название. Пойду читать.
List<KeyValuePair> имеешь ввид, не? Мне нужны были просто свои названия, а не Key и Value
Да там все просто. Сериализация - это когда ты берешь какой-то экземпляр и сохраняешь его как xml, json или в како-то другом формате файл, который можно где-то хранить. Обратный процесс - десериализация, когда ты из этого xml или json получаешь обратно экземпляр класса.
А какая в этом случае разница? Тут разве копирование будет? Итератором его мапим один раз и сразу в лист
Окей.
А можешь еще пояснить про использование потоков?
Экзам реф по шарпу начинается с материала по потоком и если в синтаксисе все ясно, то когда их нужно применять и зачем для меня весьма туманно.
Единственное что я понял - гуй держать в отдельном треде для отзывчивости.
Если я делаю десктопное приложение без серверной части мне вообще оно надо для чего-то другого?
не, я об экономии места в стэке, хотя это не критично, думаю, в данном случае
>>667958
нет же, лист - это же ссылочный тип, в стеке для него присутствует только адрес в куче. а в случае с kvp в стек копируется сразу же мешок экземпляров
В многоядерных системах. Когда у тебя 16ядерное говно было бы неплохо чтобы каждое ядро выполняло какую-то работу, а не как пикрелейтед. Поэтому параллелить это хорошо. В сишарпе треды сорт от депрекейтед, все уже давно используют таски. Это по сути такая абстракция над тредами, чтобы с многопоточностью было все проще, легко и на небе радуга.
> когда их нужно применять
когда у тебя присутствуют долговыполняемые задачи
> Если я делаю десктопное приложение без серверной части мне вообще оно надо для чего-то другого?
а .NET 4.5 есть жи async/await (аля лайт версия пногопоточности). если есть IO-операции или работа с управляемыми ресурсами, то лучше использовать Async()
instance.DoJob();
Console.WriteLine("op hui");
возможна ли ситуация, когда NullReferenceException не будет выброшен и консолька поведает юзеру истину? )
>а в случае с kvp в стек копируется сразу же мешок экземпляров
Не понимаю где. Мы сравниваем dictionary.Select(new ClassName{...}) (рез-т IEnumerable<ClassName>) c dictionary.ToList() (рез-т List<KeyValuePair<K,V>>) что в первом что во втором случае мы итератором проходит по словарю и больше одного экземпляра KVP за раз в стек не попадает ни там ни там.
таки истину глаголишь, а я лох(
Как "да, возможна такая ситация"
public static implicit operator MyClass(Nullable<int> value)
{
return new MyClass();
}
а эт зачем?
это implicit cast
сработает при присваивании null (или int'а в данном случае, т.к. выбрал Nullable<int>, а вообще любой класс можно было выбрать кроме object) экземпляру MyClass. В результате вместо null мы присваиваем instance возвращаемое значение (new MyClass()) от которого уже вызываем DoJob. Никаких NRE
такстакстакс, это получается, что при декларации
SomeType a = null
в случае, если у него объявлен
implicit operator(SomeNullableType obj)
сработает этот самый оператор? это же боль
ну если есть операторы, значит это кому-нибудь нужно. а тут ты объявляешь объект как нулл, а он ВНЕЗАПНО и не нулл (да как бы не NRE в коде оператора)
Ну тут спросить можно будет с двух людей
с человека который не моргнув глазом присваивает нулл структуре
с человека который при имплисит касте из нулла создаёт рабочий объект зачем-то
в случае с классом руки отрывать только второму. Но вообще да, имплисит касты небезопасная вещь.
Всмысле в подобных ситуациях с нуллами. В других случаях это может быть удобно.
я с тебой уже готовился кидаться опровержением
https://dotnetfiddle.net/tsxsyC
а тут выяснилось, что речь о структурах. во я ведь ничего подобного не писал) да и ты декларировал MyClass как class
в случае с классом я протупил, там имплисит из нулла не получится, но с присваиванием (Hui)null пройдёт.
>да и ты декларировал MyClass как class
Нет, я декларировал MyClass как struct: https://ideone.com/XSxqTs здесь. Ограничения на то чтобы MyClass было классом не было лел
Но asp .net... Веб... Изи... Ну блин, там срань господня в деплое. Неужели никто с этим не имел дело?
Проходил, около 80-90% осилил. На округлениях завалился, на StructLayout и на CorrupterString, хрен бы воообще когда додумался. А штука несомненно крутая, всем советую.
Окей, есть вариант делать толстый клиент на WPF+WCF+3dViewPort+WF вместо x3dom, Есть вариант пилить на Java со стеком Spring+JXTA+x3dom+JBPM в формате веба. Проблема первого - отсутствие x3dom-а, придется использовать другие форматы моделей, плюсы: скорее всего шустро, WCF и WF цепляются без пердолинга и костылей. Веб приложение модно круто молодежно, x3dom прекрасен, но p2p сеть для клиентов придется делать незнамо как ибо с JXTA не работал, есть вариант на js писать с webrtc p2p connection сделать. Да и средство для workflow только одно и без понятия насколько оно рабочее. Есть что сказать по хотя бы первому стеку? Суть такова, что нудно запилитьраспределенное приложение для одновременного сценарного выполнения действий с клиентов. У Джавы еще плюс в том, что там будет пресвятая idea, адекватный Spring. В общем, в сомнениях, времени мало
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
:(
Если недавно 3.5 был стандартом, то сейчас можно встретить 4, 4.5.2, 4.6, но при этом до сих пор встречается софт версии 2.0, целый зоопарк.
Можно ли как-то сделать NET независимыми windows приложения? То есть как-то паковать или комплилировать унирерсальные приложения под windows вместо компилляции разных версий?
говорят, существуют решения, упаковывающие приложение в какую-то ёбу без привязки к фреймворку вообще, но я даже не знаю об таких
в любом случае, приложение разрабатывается с учетом условий её эксплуатации, а не под "похуй, у меня 2.0"
Простой пример, нужно запустить приложение на компьютере, на котором нет доступа в глобальную сеть.
В обычном случае, приложение полезет в Интернет и поставит нужную версию или даст ссылку, откуда можно скачать и поставить вручную, если версия стара.
Соответственно приложение не будет работать, так как не стоит фреймворк нужной версии, хотя в приложении не использовались специфичные классы, только базовые, ещё с бородатых времён.
Может есть какой-то способ обмануть винду и заставить её воспринимать приложение подходящей версии.
например, если это промышленное предприятие с анальными условиями пользования ПК
Проблемы предприятия, пусть ищут того, кто будет им на делфи писать или еще на чем-то.
три года отдал быдлозаводу, на котором все макаки писали исключительно на делфе, а понятие связей в реляционной БД отсутствовало как класс
про одного недокодера даже была статья в местной газенке уровня "встричайте новый стиф джопс"
> В сишарпе треды сорт от депрекейтед, все уже давно используют таски
Такое сказки только на стэке пишут. В жизни хуй там был, ибо требования к продакшину остались все те же и треды живее всех живых.
Как быть, если мне нужно часть функционала одного сервиса использовать в другом? Один сервис отвечает за инвентарь игрока (добавляет/удаляет предметы), второй сервис занимается раздачей призов. Раздача призов подразумевает изменение инвентаря. Я хотел бы в сервисе раздачи использовать сервис инвентаря, так как там есть необходимая логика.
Проблема в том, что 1 метод контроллера = 1 методу сервиса. Сервис выполняет какое-то действие, после вызывает сохранение. Значит я не могу просто взять и внутри использовать какой-то другой сервис. Придётся логику инвентаря выносить куда-то ещё?
Решил что буду делать на сишарп и бд sqlite. Хочу от вас советов мудрых, на что обратить внимание, как не обосраться, так как одно дело делать домашки, а другое реальный опыт разработки. Или может среди вас есть кой нить фрилансер что за 100$ поможет мне справиться?
Ты взял, ты и делай. Литературы после оп-поста полно, доков в инете полно. Один только совет могу дать - бери сроки побольше, с запасом.
Не лучше ли вынести всё это в веб? На какой-нибудь простенький, дешёвый хостинг. Доступ с любого компьютера. И можно не бояться, что данные проебутся вместе с компьютером.
http://metanit.com/sharp/mvc/1.1.php
Хех, в этом то и проблема, взял неподьемный для меня дедлайн. Чувствую что неуспеваю. Вот что значит без реального опыта разработки быть.
Есть примеры сайтов которые написали на ASP ? Где посмотреть исходники?
У меня есть готовый круд, но чуть чуть в другой предметной области. Скулайт без орм, джаваэфикс, котлин, экспорт в ексель. Отдам за 50.
В общем:
double a = 5000/3;
В "а" оказывается округленное до целых значение.
А мне надо, чтобы было как можно больше чисел после запятой. ЧЯДНТ?
спс
конструкторы сайтов не дают тебе кастомной логики. а-ля бложики-то ты напишешь, а что посложнее?
1. я чет не понял, что мешает сервису, который раздает подарки, использовать сервис, отвечающий за, собственно инвентарь? добавишь метод и поломается контроллер или чо?
2. по-хорошему, тебе надо будет сделать нечто такое:
контроллер --> сервис инвентаря --> доменный хуёменный сервис инвентаря
сервис раздачи халявы --> доменный хуёменный сервис инвентаря
А что посложнее нужно? 99% сайтов это коммерческие сайты компаний которые на CMS сконструированы и небольшие блоги. Что еще нужно?
чегоэта?
вопроса не понял. что можно написать, что не под силу для цымес-конструкторов? или ты до цифры доебался?
>Опиши подробней что у тебя есть. На чем написано, какую бд использует.
Есть база в одну таблицу(мне хватало, но ты же не тупой, добавишь), написано на котлине, это из джавовского стека, интерфейс на джаваэфикс, бд скулыйт, написал же.
ну такие крупные сайты понятно, но я нихуя не пойму зачем столько вакансий вебразработчиков? Все вокруг пишут booking.com и социалочки?
бОльшую часть коммерческих продуктов ты так в гугле и не встретишь, т.к. разворачиваются в корпоративной подсети. также, с диким развитием мобильных приложений нужен адекватный бэкенд, считай, за каждым четвертым приложением стоит такая себе тима макак
Вот теперь я понял. Дело в том, что я хочу написать свой проект на ASP.NET за пол года чтобы его показать будущему работодателю и тот офигел и принял меня на работу. Я нихуя не могу придумать какой проект сделать.
> за пол-года
это типа настолько крутой проект хочешь? или ты ниасилятор?
напиши свой йобадвач, лол
Сделай, например, адресную книгу с фотками, поиском, используй ef, поиск по записям. Бонус - показывай адреса на гугл мапе.
An unhandled exception of type 'System.Threading.ThreadStateException' occurred in System.Windows.Forms.dll
Additional information: Текущий поток должен быть задан как поток однопоточного контейнера (STA), чтобы вызовы OLE стали возможны. Проверьте, что ваша функция Main помечена атрибутом
Если вызывать SFD.ShowDialog() инвоуком из другого треда, то программа падает по определённым причинам в определённой ситуации, в связи с конструкцией программы долго объяснять почему, в основном потому, что кто то уебан. Дак вот, как не меняя тип апартаментов на СТА у треда обойти появление этого исключения? И вообще, почему оно возникает, и что такое это ОЛЕ? Вызовы showDialog() в основном треде чтоли происходят вне зависимости от того, где ссылка на объект SaveFileDialog?
во-первых
> для сохранения таблицы использую отдельный тред
используй отдельный тред для сохранения, а не диалогов
>668615 кун
Почему? Я только что долистал до конца книгу. Я с APS.NET 5 лет назад сталкивался и чуток программил веб. Сейчас я освежил знания. Теперь надо все практиктой закрепить.
Регистрация положения стилуса относительно положения во всех трех измерениях. Нужна только такая функция.
Зато на пхп дофигища
не, ну а что, так хоть с тобой диалог начнут
Похоже нужно будет идти на пхп погроммиста, чтобы можно было написать про год опыта. С ходу на сишарп можно разве что через стажировку в крупных компаниях, которые проходят в определенное время с большим конкурсом.
>С ходу на сишарп можно разве что через стажировку в крупных компаниях, которые проходят в определенное время с большим конкурсом.
История моей жизни.
Если контейнер - mdi parent, то нет. Мне нужно не использовать mdi parent
Купить ссд побольше
Ни разу не сталкивался с SPA, но WebApi — это хорошо только какого-то хуя там экшенфильтры совсем не те, что в MVC.
> везде нужен один год опыта
Я тебе по секрету скажу, что туда можно смело идти без опыта. В этих "крупных компаниях" тимлид мнит себя богом только потому, что умеет в референс-типы, а джуниоры до сих пор не различают. Шарперов нет на рынке, HR-ы в вакансиях выкобениваются исключительно по старой привычке, да для оправдания собственных фейлов. Если совсем ссыкотно, сделай проект любой рабочий, скажи, что год над ним работал без оформления, и все.
ну все делается под задачу, а не: аааааааа, на проект можно накидать еще тыщщу макакJS и срубить больше бабла с клиента, ебошим вебапи!!!!!!!111!!!
на хабре уроки погугли
Как лучше сделать?
> Если совсем ссыкотно, сделай проект любой рабочий, скажи, что год над ним работал без оформления, и все.
Я указал свой проект в резюме, он работает. Боюсь что там говнокод поэтому на гитхаб не заливал ._. , но похоже придется
ну тащемта, ты по определению не можешь высрать не говнокод. вопрос будет, какие "оригинальные" решения ты там применил
>навыки программирования на одном из языков: C++/Java/C#
Что вообще включает в себя "навыки программирования"? Сам я знаю С# на уровне универских лаб, в курсе ООП, ну еще один раз использовал многопоточность в Unity, но до чего-то серьзёного не доходило, то это считается?
это значит, что ты в курсе базовых понятий языка и не будешь дуплиться, когда видишь что-то типа
public static implicit operator
или
static Classname()
{
}
что-то типа: знать и уметь применять
Или можно на него забить и сразу приступить к LINQ to Entities(DbContext)
а что конкретно непонятно? там же для макак написано: "бомбаните эту строчку, сделается XYZ" кстате, автор этого цикла на связи и не посылает нахуй за вопросы "а у меня так не работает"
на крайняк: сливаешь авторский проект из репозитория, открываешь второй вижуалстудио и смотришь, где наёб
http://www.codeproject.com/Articles/486161/Creating-a-simple-application-using-MVC
на первой странице гуглозапроса mvc application sample. сложно-то как
Ну ладно, я уже начал читать getting started на официальном сайте. В геттинг стартед написано, что мне нужен Azure account, а дальше написано, что там триалка 1 месяц. Че делать-то?
>>671254
Там еще и кредитка нужна, чтоб free trial начать, лол.
http://stackoverflow.com/questions/10416934/can-i-try-windows-azure-free-trial-without-having-a-credit-card
я точно без кредита регал себе ажур с триальным хостингом на одну базу и доменным именем, как положено. подробностей, увы, не помню
> бомбаните эту строчку, сделается XYZ"
Вот это и не понравилось, что объяснений немного, одни инструкции.
ну тыжпрограммист ёбе, тебе показывают, как сделать, чтобы работало. а как работает так, что оно все работает, это: гугл, msdn, Троелсен, etc.
Кому ты нужен без языка? Даже если шарп как-то сможешь более-менее осилить, то на первом же месте работы сольёшься
Бамп вопросу
Имеется ввиду вот это все еще используется на реальных проектах или уже всюду entity framework?
http://professorweb.ru/my/LINQ/linq_sql/level8/linq_to_dataset_and_sql_index.php
Нет, не используется.
>Я на русском не читаю техническую литературу, мозги надо беречь
Да не пизди ты, нашелся тут великий англичанин.
да ты ёбнутый. Я даже когда английский знал так себе всё равно читал в оригинале, потому что третье издание рихтера прочитанное медленно с заходами в словарь всё таки было получше вариантом чем прочтение второго с последующим шароёбством по рунету в ожидании переводов актуальных статей.
сейчас - блестяще. К чему этот вопрос?
Класс наследует другой класс, класс на основе интерфейса, какие-то квадратные скобки:
// POST: /Account/Login
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
Классы с "async".
Пиздец, чорт голову скрутит с этими замутами, нагородили огород и понапридумывали всякой хуйни.
Я проходил это, но давно. Надо повспоминать.
Я всю жизнь работаю с процедурным языком. А тут ООП, бесит ООП. Это слишком сложно для моих мозгов.
Для чтения технической литературы нужен самый минимальный уровень знания языка. Вот если человек читает художественную литературу в оригинале - это god tier, а техническую любой даун может читать, потому что там используется словарный запас не больше 1000 слов (помимо терминов из предметной области, которые ты должен знать в любом случае).
ты наркоман. Тебе написали "техническую литературу легко читать даже с хуёвым английским", ты спрашиваешь про какой-то иелтс. Ты подорвавшийся неосилятор что-ли? При чём тут иелтс вообще? Ты думаешь что если человек не иммигрировал и не ездил учиться в штаты/европу, то он книги на английском читать не может?
Ну придрочишься, ниче страшного.
>>672126
Не сдавал. Я в обозримом будущем не собираюсь трактор заводить.
>>672126
Алсо, сейчас спросил у чувака, который знает язык примерно как я, он сдал ielts на 8.
Как мне получить данные переменной из другого скрипта?
Юнити, оба скрипта на одном объекте.
кажется мне, что делаешь ты что-то не так
но я не юнитоблядь, тому, можешь не совпринимать близко к сердцу
ну, очевидно, либо юзать глобальные переменные (что заботливые разработчики, по идее, должны были запретить вовся), либо через какой-то стейт (или like-a-Tag-пропертю) объекта. это, по хорошему, должно быть какой-то базовой базой, я не верю, что ты настолько днище, что не знаешь такие вещи)))))))
Говорю же что пиздец дно.
Смотри есть скрипт, он, например, считает сколько раз игрок нажал на кнопку. Мне из этого скрипта нужно выдернуть кол-во нажатий и применить это значение в другом.
ну я ж хз, как там происходит взаимодействие функций внутри объекта, какие объект имеет проперти
> Но почему-то, когда я из приложения передаю в БД недопустимые значения, то они не вызывают ошибки и спокойно записываются в таблицу
ну, очевидно, нет никаких ограничений
как декларируешь вообще?
Да в том и суть, что внешнюю связь я немогу в коде декларировать, потому что SQLite-net их не поддерживает. Поэтому я типа напрямую прописываю - руками в БД.
Блядь, у меня отсталость головы. Внешние ключи в SQLite по-умолчанию отключены.
типы данных, работа с типами, упаковка/распаковка, дженерики
классы и интерфейсы, наследование
механизм исключений
строки, StringBuilder
коллекции, сравнение, поиск по коллекциям, равенство экземпляров
LINQ
базовые принципы многопоточности, ограничения, связанные с многопоточностью
делегаты, события
работа с базами, T/SQL, ОРМки подозреваю, сейчас это обязательно
Unit-тестирование, скорее всего, тоже обязательно
да и вообще, ООП, шаблоны проектирования, туда-сюда короче
А будут спрашивать за реестр, графику, указатели, программирование типа "клиент-сервер" и сетевое программирование (http)?
херли я должен догадываться, где и зачем ты хочешь что-то вывести?
https://msdn.microsoft.com/en-us/library/gg480740(v=vs.118).aspx
>>672703
кагбе зависит от конторы, но врядли что-то специфичное. элементы клиент-серверности вполне могут быть
> указатели
а сюда ли ты зашел-то?
>а сюда ли ты зашел-то?
>>672730
>Крестотред где-то рядом.
В Шарпе же тоже есть указатели и их можно кодить, если сильно захотеть, или я ошибаюсь?
генерить unsafe код - нетривиальная задача, уж явно не для джуномиддлов. максимум смогут спросить "а является ли код в # полностью управляемым?"
Понял, спасибо. Просто был момент полгода назад пробовался джуном в одну контору в ДС2, в вакансии написано шарп, пришел - посадили, дали листок, ручку, дали задание. Говорят, пиши. В задании указатели на паскале. Я охуел и ушел. Подумал, что надо дальше читать и учить, ну и контору тщательней выбирать.
http://download.jetbrains.com/resharper/riderRS-144.4571.exe
В туториале от майкрософт, рекомендуется вызывать 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
или я чет не понимаю, либо же задача подогнана под ответ в том случае. ибо, во-1х, человек делает
return View(dbcontext.DbSet<>). если обернуть этот код в using или ебануть Dispose, то Razor упадет по ObjectDisposedException при попытке проэнумерейтить коллекцию, родитель которой был убит чуть-чуть ранее
а во-2х, контекст (и вообще, любой управляемый ресурс) должен жить как можно меньше
Я уже немного погонял, функций маловато пока еще, тесты не тянет вроде, вот такие забавные моменты в меню пикрелейтед. Но сука, как же резко работает, ебаный в рот, быстрее студии без решарпера, реально отзывчивая при билде, охуенная идеевская поддержка VCS, nuget вроде тянет. Для первой EAP очень круто
Не пробовал, завтра попробую.
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?
отложенная инициализация же. если хочешь, чтобы сразу при вызове метода происходило присвоение, добавь .ToArray() .ToList()
иначе будешь ожидать первого foreach, First(), Signle(), ElementAt(), etc.
> добавь .ToArray() .ToList()
Это я знаю
Еще есть AsEnumerable который вроде тоже делает запрос, так вот я подумал что присвоив IQueryable к IEnumerable будет тоже самое.
Ой, не так.
Вот нашел
Метод AsEnumerable() в LINQ просто преобразует коллекцию IQueryable к IEnumerable. В простых приложениях, работающих с коллекциями данный метод практически не используется, т.к. в нем нет смысла – интерфейс IQueryable является производным от интерфейса IEnumerable. Но этот метод оказывает существенное влияние при использовании с Entity Framework, указывая, что цепочку методов в запросе до его вызова нужно выполнить, отправив запрос к базе данных, а последующие методы будут оперировать уже на коллекции в памяти приложения. Если вы запустите этот пример, то можете убедиться в его работоспособности.
То есть оно тоже отложено выполняется, но все операции после AsEnumerable обращаются не к базе данных, а к последовательно IEnumerable в памяти.
> что присвоив 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;
}
при работе с EF, AsEnumerable нужен в случаях, когда с неинициализованной коллекцией выполняется нестандартная функция, не конвертируемая в SQL. например:
dataSet.DataTable.Where(e => e.Data != null).Select(MyInternalMethod);
Отпугиваешь потенциальных конкурентов?
сКакойСтраницы = Айдипотока*количествоРаботыНаПоток;
поКакуюСтраницу = сКакойСтраницы+количествоРаботыНаПоток;
Айди передавала примерно так(для Thread)
For(var i=0; i<100;i++){
Var tr = new thread(parase);
}
В бд в итоге пишется ~100 один и тот же элемент со страницы.
Я спросил другу моего друга который знает английский хуже меня, он сдал IELTS на 9.
Я спросил ielts, который знает английский хуже моего друга, он сдал меня на 9.
У меня на работке такая задача решалась через Parallel.ForEach, с периодическим пересозданием контекста.
И не получится так просто. Гугли ComVisible.
>>672989
Если попытаться это написать без AsEnumerable, он ругнется что не может преобразовать linq в sql или что-то такое.
В вебкофиге у меня написана такая штука как на пике.
То есть неавторизованным пользователям доступ запрещен и их редиректит на login.aspx.
Так вот, какого хрена на этой самой странице логина не грузятся библиотеки (жквери там всякие с йоба-контролами) и стили? Как это исправить?
во 1-х, не надо использовать new Thread
во 2-х, покажи хотя бы часть того, что ты наваял. так-то не очень очевидно, как у тебя потоки запускаются и работают
> Если попытаться это написать без AsEnumerable, он ругнется что не может преобразовать linq в sql или что-то такое
жопой читаешь?
>>673152
через бандлы это решается. а на других страницах с понтом грузятся?
мне
на сях напиши, хуле ты
На других страницах грузится все нормально. Причем если залогиниться, а потом выйти назад на форму логина, то там уже все будет норм (ну видимо из кэша все берет).
Пока что просто сделал deny для каждой страницы кроме login.aspx.
А что за бандлы?
public static void RegisterBundles(BundleCollection bundles)
bundles.Add(new ScriptBundle("~/azaza").Include("~/scripts.azaza.js"));
но если это вебформы, то я тебе не помощник
Я делал по разному. В основном я как раз таки делал или анонимные классы потоков, или запихивал их в коллекция, и оттуда вызывал форичем.
Вот последний код:
http://pastebin.com/NeESHQyg
https://dotnetfiddle.net/ZZOJqG
ну и? что не так? на самом деле все не так, но вопрос не в этом, а в том, что все вроде как as expected
https://dotnetfiddle.net/BEDRIl
Всё действительно пашет анон. Но у себя в коде обосрамс всё равно происходит.
Надеюсь по скрину будет понятно.
https://dotnetfiddle.net/dtlw9l
видишь, какое говно происходит?
сделай через параллел.фор и за каждый new Thread() отрывай себе руки
Parallel.For(0, PageCount, i =>
{
}
Делал так, эффект такой же.
И с тем примером вроде как всё пашет.
https://dotnetfiddle.net/ELKAX2
ну, ты исправил расчет ToPage, а там 10-15% дубля уже отвалилось
и второе, раз такая же лабуда, проблема может быть и будет в том коде, что постранично вытаскивает ссылки
Программач-сишарпыч, подскажи, как получить список всех классов и их public, protected методов из .DLL файла?
*список названий
Отлично, сейчас опробую. Сяп
Сотня не такой уж и magic
Хочу создать nuget package для библиотеки классов с автосборкой после успешной сборки проекта. Также нужно сделать multitargeting, т.е. создать дохуя .dll для разных фреймворков и разного рода сильверлайтов. Как это сделать в Visual Studio? Пытался ручками прописывать конфигурации для сборки библиотеки под разные версии фреймворка -- заебало.
Сука не тот раздел.
Ты вручную его включаешь когда работаешь и отключаешь когда перестаёшь. Раз в десять минут (+/- небольшое рандомное время) делается скриншот и тайтл текущего активного окна отсылается вместе с поминутной статистикой кол-ва нажатых клавиш клавы и кнопок мыши.
Можно встроить либу в ресурсы и потом подгружать ее оттуда в обработчике AppDomain.CurrentDomain.AssemblyResolve. В CLR via C# пример был.
Код:
public async Task<IActionResult> SendCode(SendCodeViewModel model)
Гугли c# generics
Так можно, имея 2 монитора, наебать работодателя. Играя в это время в ммо, например.
я думаю, в скриншоты никто не смотри, если не работают с тобой впервые, например, или ты где-то конкретно лажаешь/затягиваешь, дабы убедиться, что ты не ракуешь за их счет
из своего опыта фрилансирования с скриншоттрекерами помню, что что не скрин в моем отчете - то асечка открыта, то браузерка какая-нибудь, то гуглтранслейт. хотя я старался филонить по-минимуму на камеру
)))
Скрин будет делаться активного монитора, может если только играть пять-максимум семь минут после каждого скрина и потом переключаться обратно на иде/редактор и ждать следующего скрина (там нечётко 10 минут +/- 2 минуты постоянно, может и через семь сделать по-моему - не помню).
А вот фильмецы можно запросто смотреть я так часто делал.
>из своего опыта фрилансирования
У меня наоборот. Даже удалял по 10 минут пару раз из дневника когда неотносящуюся к работе бодягу одеск трекер скринил. Один раз просто папка была открыта со скачивающимся с торрентов сопранос - удалять не стал так как на фоне иде была, клиент на следующий день спросил как мне сериал, оказалось большой фанат.
на одеске же с удалением шотов, урезалось время наработки вроде бы как, или я путаю?
iirc можно только скрин удалить если что, но только из дневника. Если отменять сразу из трекера в течение таймаута, чтобы скрин даже не отсылался, тогда ~10 минут срезается, да.
Из коробки только популярные системы
http://stackoverflow.com/questions/923771/quickest-way-to-convert-a-base-10-number-to-any-base-in-net
от меня достаточно инициативы былопровалов в своей инициативе приблизительно столько же. а он просто аморфный пидор. и в чем, собственно, разница?
поныть тут пришел, хуле
Есть модель (какой-то класс с какими-то свойствами), допустим
public class Employee
{
public string Name { get; set; }
}
Как сделать так, чтобы было MVVM, но чтобы конкретно этот класс менять (реализовывать в нем INotifyPropertyChanged) не нужно было? Чтобы потом эту же самую модель можно было без перепиливания использовать в чем-то отличном от WPF.
Может с Fody можно что-то вроде такого, ну или ручками
public class Hui {
string Name {get;set;}
}
[ImplementPropertyChanged]
public class HuiViewModel : Hui {}
То есть нужно наследовать? А что если в нем определен метод, который изменяет одно из полей? Допустим
public void CapitalizeName()
{
Name = Name.Substring(0, 1).ToUpper() + Name, Substring(1, Name.Length).ToLower();
}
В таком случае если я вызову этот метод, в интерфейсе ведь ничего не обновится.
И я же не могу так просто взять и сделать оверрайд в наследнике, методы же не абстрактные.
>>675475
Я понимаю что это не вьюмодел. Какую обертку надо написать для такого класса (в нем могут быть не только данные, но и методы работы с ними), чтобы получилось вьюмодел. Ну тип чтоб правильно и без изобретения велосипедов?
Прикольная штука. Схоронил, потом попробую.
Алсо, такой вот подход
http://www.filedropper.com/timesim
сильно индусский? (Рыгахост не работает почему-то)
То есть я передаю Action в тот класс, который должен что-то выводить в UI.
Запилите в шапку
> 2:45 Cassandra, Docker and F# Awesomeness, Alena Hall
Угадайте, кто сегодня выступает.
Отдам за символическую сумму или обменяю на другую книгу. Так и не притронулся, забил на Сишарп.
а в стиле "сложненький энтерпрайз за пол-года тимы сирьоров?"
ну тут, наверное: http://www.asp.net/web-api/overview/getting-started-with-aspnet-web-api/tutorial-your-first-web-api
все, что тебе надо, там есть:
создаешь контроллеры -> создаешь экшены -> запускайешь модель -> возвращаешь контент
Спасибо анон!
Пишу прогу, столкнулся с ошибкой System.OutOfMemoryException. Ну понятно, что не хватает оперативы. Стал тестить - у меня стабильно вылетает когда прога занимает 520 Мб оперативки. Чё за фигня? Система х64, оперативки на борту 12 Гб. Редактор Visual Studio 2010 Express. Потестить на другой машине нет возможности..
вероятней всего создаются объекты, которые не могут влезть в кучу (по дефолту это 2Гб)
Эм.. а расширить никак? Пишу типа сервер, расчитывал минимум на 10Гб оперативы а тут.. полазил по гуглу, надо как-то поставить в настройках режим х64, но хз, можно ли это VS2010 Express..
сходу спрошу, нахуя тебе это? может быть проблема в говнокоде? 2Гб на объект - это просто дико много (либо массив из миллионов элементов говна, что тоже много)
Да дело не в 2 гб на объект. Всё приложение не может занимать более 2 гб, а то и меньше. Ну это как-то неправильно. При этом я пишу сервер онлайн игрушки ой всё и 2 гб тут может оказаться мало. Хочу заранее решить - это глобальная проблема в чём я сомневаюсь, не могут С# проекты быть ограничены 2 гб, взять к примеру 3D max, или просто надо что-то сделать.
А, увидел. Ну ты это, поставь что-то поновее, серьезно. VS2010 это уже совсем днище.
Я не уверен, что с десятой студией поставляется 64 компилятор
Леночка будет рассказывать про "баззворд, баззворд и баззворд", как неожиданно.
Да не в объекте дело. Я могу создать интовский массив на 350 млн. элементов. А вот два массива немогу, эксепшон. Короче ладно, качаю на тест 2015 community версию, буду там тестить. Мож действительно эра VS2010 ушла.
Она ушла 6 лет назад. В студии нельзя интегрировать поддержку новых версий шарпа, поэтому со старыми версиями у тебя в любом случае будет куча проблем. Даже в предыдущей 2013ой студии не поддерживается новый шестой шарп, только в 2015
По MVVM можешь статейку в википедии прочитать, это не более чем паттерн используемый в WPF. Если хочешь погрузиться именно в WPF, то другое дело, бери "Pro WPF 4.5 in C#"
отрендери исходный код caliburn.micro или mvvmlight в pdf - будет тебе книга
а, ну очевидно, да
конфу х64 сделал?
Это 2.6 гб насколько я понимаю + оверхед
Алсо
https://msdn.microsoft.com/en-us/library/hh285054(v=vs.110).aspx
>бери "Pro WPF 4.5 in C#"
Уже начал, но там все реализации на MVP. Хотелось бы разобраться именно в MVVM (WPF+MVVM).
Может есть какие-то open source программы на WPF/WPF+MVVM, накидайте ссылочек, шарпаны
Подкинь литерутуру для формошлепства. Приложения разные там, события.
С основами языка знаком.
Если ты не знаешь как работают события, то с основами ты не знаком. Так что бери Шилдта/Троелсена и в путь. Формы ничем принципиально не отличаются от консоли, поймешь консоль - формы пойдут легко.
Ну и пара ссылок для формоновичка:
http://www.cyberforum.ru/windows-forms/thread1558189.html
http://www.cyberforum.ru/windows-forms/thread110436.html
Люблю на собеседованиях спрашивать, как как получить unix timestamp, а когда мне радость пишут, спрашиваю, зачем может быть это нужно и в каких случаях, не считая работ с бд. Половина болванчиков отсеивается сразу.
нормальный вариант
dictionary.Clone as Dictionary<Type2, List<Type2>>
ебланский вариант
dictionary.ToDictionary(kvp=>kvp.Key, kvp=>kvp.Value)
>>676978
а зачем, кроме экономии памяти, наверное?
а все ли СУБД сегодня могут в DateTimeOffset?
inb4: virtualbox + vs
> 2016
> winforms
Нахрен ты студентов к такому говну проучиваешь. Лучше уже консоль.
В Xamarin есть только Gtk.forms, а они не совместимы с winforms.
а что с формами не так? или ты думаешь, что если студентоте показать формы, они их до конца жизни юзать будут? ну я так точно думаю, например. но формы от этого говном не становятся
>Dictionary<Type1, List<Type2>>
Самофикс. И тайп1-2 ссылочное.
>>676912
И на них, и на элементы. Все ключи, каждый элемент в списке значений.
>>676995
А если чтоб и все элементы имели новые ссылки?
Алсо можешь подробный синтаксис для Клона написать, у меня не видит такого метода
я не он
MyImage
{
public int x;
public int y;
public Bitmap bitmap;
}
Как коллекцию таких объектов привязать в WPF в какой-нибудь ItemsControl или Canvas или что там есть для отображения графики?
xaml:
<ListBox ItemsSource="{Binding MyImageItems}"></ListBox>
code:
public List<MyImage> MyImageItems { get; set; }
Нахуй мне листбокс? Мне нужно граф рисовать, с различными иконками вместо вершин.
Мне кажется, или леночка вдвое увеличилась в ширину?
Так я и спрашиваю как это делается.
Правда я так понял что никак, только если свой контрол писать.
для графа нет стандартного механизма/контрола. ибо, понимаешь, нихуя себе
зато есть куча готовых библиотек/примеров, в т.ч. опенсорс
Здарова, обшарпанные! Console.Beep() не производит звуки короче 100мс, а при переходе между звуками (перебираю через цикл) слышны щелчки или помехи, хуй пойми что. В общем, эта хуйня не работает. Где подводные камни?
В твоей пищалке?
делай перерывы между beep`ами очевидно. Ты же не мп3шки там на пищалке играть собираешься?
Ты что там делать собрался, окаянный? Сирену он решил сделать, всякой хуйни я поведал, но это уже перебор.
>поведал
Кому и что ты поведал, болезный? Таких, как ты, не способных осилить родной язык, я бы даже грузчиками не взял работать. Вы хуже жывотных.
Думал об одном, а написал другое, чего пристал.
Длительность и высота + длительность пауз это всё, что вообще нужно для музыки. Почему не работает ясное и понятное средство из стандартной библиотеки? И ЗА ЭТУ ХУЙНЮ МЕЛКОМЯГКИЕ ТРЕБУЮТ ДЕНЕГ???
8/8 b8 and I'm taking it
Во-первых, кто с тебя требует деньги за .net framework?
Во-вторых, Console.Beep это не апи для работы со звуком, это функция для работы с пищалкой на материнской плате, так как эмулятору терминала положено уметь пищать. Так что оно работает ясно и понятно, только к музыке не имеет никакого отношения - остынь.
>с пищалкой на материнской плате
Но я слышу звук из колонок и наушников, а материнка у меня не пищала вообще никогда и походу вообще не должна пищать. А звук между прочим весьма приятный и чистый, если в ноты попадать, и на 8-битную пищалку типа марио или танчиков потянет.
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()));
}
Ультраизъебство получается. Самый адекватный вариант в его случае будет сериализация/десериализация в памяти.
сериализация требует public/internal видимости класса, наличие доступных сеттеров. плюс, возможно, не все есть возможность/необходимость сериализовать
по большому счету не вижу разницы
Знаю и работаю по направлению дотнета, асп-макака. И вроде работу выполняю хорошо и без изъебств, но всё такое примитивное, что учиться не получается. Чувствую себя каким-то эникеем на гос. предприятии, который напишет задач за 3 часа и плюёт в потолок остальное время. Меня это угнетает, хочется чего-то нового интересного узнать. Однако когда пытаюсь начать изучать это новое, то даже не представляю пригодится мне это в дальнейшем или останется ненужным говном в памяти, и поэтому бросаю.
Что сейчас полезно осваивать? Какие направления или поднаправления для дотнетчика может? Где вообще информацию по трендам брать?
Но сейчас мне нужно что-то делать со свободным временем. Английский я уже знаю.
В трендах датасаенс, модная джс параша, dnx. Выбирай, пробуй, пили
>Тебе не надо
Прости, но это сейчас прозвучало так, как будто ты из треда пердоликов. Еще раз говорю прости, без обид.
Но ведь операции записи на диск медленнее, чем чтение. Или если читать почти весь файл при записи, то будет уходить больше времени?
> Или всё зависит от текущих размеров файла с информацией?
this
Если у тебя работа с крупными файлами, и есть возможность их разбить на несколько мелких, это будет неплохим вариантом.
>Или если читать почти весь файл при записи, то будет уходить больше времени
Смотря как организовано это всё.
У тебя же это сериализация, нет?
До 10-15 метров без разницы вообще.
Можно сказать, сериализация - записываю и читаю через binary writer/reader. Но без отдельного класса под объект записи.
lock (SAVE ? (object)dataAlbum : (object)albumRow.Table.DataSet)
Когда-нибудь, тебе, или еще кому-либо, может понадобиться разобрать это говно, и ты точно не будешь благодарен себе за лишнее потраченное время.
Как ты себе это представляешь? Ключом будет объект? Ты точно понимаешь, что делаешь?
Может все же ключом будет строка Dictionary<string, object>? Или внутри объекта будет свойство, которое содержит в себе объект - Object.AnotherObject?
>Как быть, если мне нужно часть функционала одного сервиса использовать в другом?
Создай сторонний проект, в нем создай папку services, который и выполняет все необходимые манипуляции, а из методов контроллера работай уже с этими классами, отправляй туда нужные параметры, а класс уже сам будет делать что тебе надо, независимо от того, откуда ты их вызвал.
>Класс наследует другой класс
>класс на основе интерфейса
>какие-то квадратные скобки
>Сложночитабельный код
>понапридумывали всякой хуйни
То ли дело родные mov ah, 04Ch, да?
А мне жаль, что я не застал времена доса. Вот бы я писал вирусы под него, да как бы ксорил ворды в уме! Тогда даже было проще впаривать вирусы лохам.
Если объект переопределяет GetHashCode и Equals, то почему бы и нет?
>Control.Invoke executes a delegate on the thread that owns the control's underlying window handle.
С Троелсена все начинают.
Сишарпчую.
[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]
[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]
вопрос был поставлен так: что ты хочешь улучшить?
можно написать один уровень абстракции сверху этих двух методов и вынести код туда, можно включить многопоточность, можно нафигачить всяких костылей умных и не очень
ну, а еще ShowDialog() разве возвращает Boolean?
Я вот думал можно ли сделать так что бы один раз приходилось закрывать ворд, но когда я писал все время ворд оставался в фоновых процессах.
В пространстве имен Microsoft.Win32 ShowDialog() возвращает Boolean. Это wpf
потому, что Microsoft.Interop.*.Application, Document, Sheet, etc. - это COM-объекты. их надо убивать потому, что они могут висеть даже после закрытия основного потока в отличии от бэкграунд потоков каких-нибудь форм, которые убиваются CLR-ом
А где можно поподробней про комы почитать, ну чтобы поглубже IUnknown, не подскажешь?
MSDN, наверное. я хз, не думаю, что комы нужны на хоть сколько глубоком уровне
1. есть какая-то DLL
2. есть какое-то приложение, которому нужны методы из DLL в п.1
3. ???
4. COM
> Component Object Model (COM) [blah-blah-blah] introduced by Microsoft in 1993
потому, что не P/Invoke
Лучше ресурса чем ".NET and COM: The Complete Interoperability Guide" от Adam Nathan не встречал.
Но тот анон прав - нахер не нужно, проще по мерам сталкивания с проблемами гуглить каонкретные вещи.
Спасибо большое, полистаю. Ибо все равно люблю почитать в свободное время, лишним не будет.
Че за книга?
Привет, анон, если ты джун и выше - .NET конфа приглашает тебя в свои ряды. Делимся опытом, помогаем с поиском работы, бугуртим после отказа на собеседованиях, копаемся в чужих говнокодах. https://telegram.me/joinchat/CBkRKT2h17QNagOSer0uNA
>Но сейчас мне нужно что-то делать со свободным временем. Английский я уже знаю.
>>677759
> который напишет задач за 3 часа и плюёт в потолок остальное время
https://d1u2uhea8ugy8e.cloudfront.net/upwork_freelancer_guide.pdf
ватан бомпанул найс.
разве что по сравнению с паскалем, лол?
че там, брат?
ради async/await стОит. плюс, начиная с 4.5 подправляли ThreadPool, если память мне не изменяет.
а в остальном говнонюансы
што блять?
WUT?
dAdaptCars.Fill(dbDataSet.Cars);
dAdaptCompany.Fill(dbDataSet.Company);
dAdaptGenres.Fill(dbDataSet.Genres);
и т.д.
и после каждого такого вызова открывается файл и больше не закрывается вплоть до выхода из программы.
Это вообще нормально? Куда копать?
В Гугле нашел "DataAdapter will open and close database automatically when they need", но ведь он не закрывает больше! Так и держит все эти соединения. Притом что все загружается в датасет и держать соединение с файлом вообще не нужно.
>>680610
В смысле?.. Он же у меня потом используется, для обновлений в бд, получений ключа. Там в двух местах, но все же. Просто зачем открывать соединение с файлом для каждой таблицы отдельно и держать эти соединения открытыми.
для каждого запроса используй отдельное соединение
вытягивать данные старайся за как можно меньшее количество запросов
Я данные вообще не вытягиваю кроме одного раза при вызове Fill, чтобы заполнить датасет. У меня работы с бд реализована через отдельный класс-библиотеку и студия сама сгенерировала эти адаптеры под таблицы. Когда мне нужно обновить таблицу я вызываю
if (dbDataSet.Cars.GetChanges() != null)
{ dAdaptCars.Update(dbDataSet.Cars); }
Все удобно, но я сейчас заметил, что для каждой таблицы она открывает отдельное соединение и держит его. И мне это не нравится.
потому, что
using (dbDataSet)
{
if (dbDataSet.Cars.GetChanges() != null)
{ dAdaptCars.Update(dbDataSet.Cars); }
}
Ну я попробовал сделать
using (db.dbDataSetTableAdapters.CarsTableAdapter dAdaptCars1 = new db.dbDataSetTableAdapters.CarsTableAdapter())
{ dAdaptCars1.Fill(dbDataSet.Cars); }
И он все равно оставляет открытым дескриптор и файл остается занятым.
Это копия, сохраненная 28 марта 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.