[Ответить в тред] Ответить в тред

03/04/16 - Набор в модераторы 03.04 по 8.04
26/03/16 - Конкурс: Помоги гомункулу обрести семью!
15/10/15 - Набор в модераторы 15.10 по 17.10



[Назад][Обновить тред][Вниз][Каталог] [ Автообновление ] 521 | 47 | 169
Назад Вниз Каталог Обновить

OFFICIAL .NET THREAD №25 (C#/F#/VB.NET) Аноним # OP  07/05/16 Суб 06:19:58 736660  
14626019989890.png (10Кб, 400x400)
Первый объединенный дотнет-тред, теперь можно дополнительно задавать вопросы по F#, VB.NET и по самой платформе. Шапка будет допилена к следующему треду.

Существует множество различных платформ и языков программирования, однако среди них нет более элитного, чем C#. Это поистине язык богов, сочетающий в себе простоту использования с поистине неограниченными возможностями. Знание C# — прекрасный детектор современного, умного и успешного человека. Изучение платформы .NET безошибочно указывает на успешного в будущем человека.
ITT элита продолжает обсуждает будущее этого прекрасного и современного продукта компании Microsoft. Только в этом треде элитные разработчики ответят на самые острые вопросы индустрии.

Литература вторым постом

1. Ресурсы:
- http://stackoverflow.com/questions/tagged/c%23
- http://www.tutorialspoint.com/csharp/
- http://professorweb.ru
- http://net-informations.com
- http://habrahabr.ru/hub/csharp/

2. Онлайн-компиляторы:
- https://dotnetfiddle.net/ - возможно лучший вариант. Встроено немного убогое, но все-таки автодополнение и проверка синтаксиса.
- http://ideone.com/
- http://csharppad.com/
- http://www.tutorialspoint.com/compile_csharp_online.php
- http://rextester.com/l/csharp_online_compiler

3. WinForms или WPF?
Зависит от задачи. Для небольших проектов, скорее всего, будет достаточно винформочек. В случае, если разрабатываемое приложение достаточно серьёзное, то возможно его стоит писать с использованием WPF. WPF очень хорошо работает с паттерном MVVM ( https://ru.wikipedia.org/wiki/Model-View-ViewModel ), и позволяет пилить очень кастомизированные интерфейсы с помощью XAML, что в случае WinForms, делать намного сложнее.

4. Мне тут знакомый_нейм сказал, что C# умирает, это правда? Может не стоит его учить?
Неправда. C# довольно активно развивается, недавно вышел новый компилятор, шестая версия шарпа, и уже активно разработывается седьмая. Весь дотнет понемногу становится опенсорсным, а ASP.NET становится независимым от платформы. В некотором смысле понемногу вымирают десктопные приложения с развитием веб-технологий, но в том же энтерпрайзе он еще очень даже востребован.

5. Какую ИДЕ выбрать?
Для Windows самым очевидным вариантом будет Visual Studio (https://www.visualstudio.com/en-us/downloads/download-visual-studio-vs.aspx). Студия распространяется в двух редакциях: бесплатная коммьюнити-версия и платный энтерпрейс эдишн. В большинстве случае будет достаточно Community-версии: она поддерживает и C#, C++, VB.NET и F#, а так же имеет возможность установки дополнений
Для мака и никсов самый юзабельный вариант - MonoDevelop ( http://www.monodevelop.com/download/ ).
Для vim можно использовать OmniSharp ( https://github.com/OmniSharp/omnisharp-vim ).
Кросплатформенный полуредактор/полуIDE VS Code ( https://www.visualstudio.com/en-us/products/code-vs.aspx )
Также существуют плагины для Atom'а и Sublime Text, но функциональность там достаточно сильно урезана.
Кроме того, в данный момент JetBrains активно пилит свою IDE для шарпа (Project Rider), вероятно в ближайшее время станут доступны первые EAP. IDE заявлена как кросплатформенная, со всем решарпер-функционалом, поддержкой отладки, моно и .net core.
SharpDevelop - еще одна IDE для C#, отличается малым размером (около 20мб) и опциональной портабельностью, при этом имея дизайнер WinForms и WPF, а также интеграцию с FxCop, StyleCop и прочими ништяками. Если хочется что-то по быстрому набросать, а выкачивать гигабйты нет желания, то возможно SharpDevelop будет лучшим вариантом.

6. С# для мобильной разработки
Если нужны инструменты для разработке под мобилы, ставь сразу VS2015 и при установке выбирай все нужные компоненты.
Больше информации тут - https://msdn.microsoft.com/ru-ru/library/dn771552.aspx
Из актуальной литературы
- Xamarin Mobile Application Development
- Xamarin Essentials

7. Дополнительные инструменты для разработки на C#
LINQPad - сорт оф REPL, с возможностью быстрого подключения к БД и удобной визуализацией данных
dnSpy - декомпилятор, малоизвестный форк ILSpy, где реализована возможность модификации IL-кода прямо в EXE и DLL файлах, отладка IL-кода и много других фич для reverse engineering'а. Плюс няшные темы как в студии
dotPeek - бесплатный декомпилятор от JetBrains
scriptcs - для запуска C# кода как скриптов, возможность использовать как REPL

8. Расширения для студии
ReSharper - одно из известнейших. Рефакторинги, умный автокомплит, настраиваемый стиль кода. Платный, но можно стянуть с торрентов
Supercharger - показывает "карту" с классами, методами и всем остальным сбоку от кода с возможностью прыгать по ним
Indent Guides - показывает вертикальные линии на каждом уровне отступов.
Format document on Save - форматирует код каждый раз при сохранении документа
Code alignment - Выравнивает код по указанным символам. Удобно, например, при инициализации словарей или в перечислениях

Обзор Roslyn: https://github.com/dotnet/roslyn/wiki/Roslyn%20Overview
Новые возможности C# 6.0: https://github.com/dotnet/roslyn/wiki/New-Language-Features-in-C%23-6

ПРИНИМАЮТСЯ ПРЕДЛОЖЕНИЯ ПО ШАПКЕ

Код этой шапки: http://pastebin.com/cKKXYArs

Прошлый тред тонет здесь: https://2ch.hk/pr/res/717891.html
Аноним # OP  07/05/16 Суб 06:20:26 736661
9. Что почитать?
- The C# Player's Guide, второе издание (RB Whitaker) - отличная книга для ньюфагов в шарпе, все расписывается довольно подробно, очень много примеров кода.
- C# 6.0 in a Nutshell (Joseph Albahari и Ben Albahari) - огромнейший справочник, over 1000 страниц, покрывает почти все области, начиная с синтаксиса и базовых типов и заканчивая интеропом и рослином
- C# 6.0 Pocket Reference (Joseph Albahari и Ben Albahari) - просто выжимка из справочника, можно всегда держать рукой
- C# 6.0 and the .NET 4.6 Framework (Andrew Troelsen) - 1600-страничный учебник по шарпу, покрывает BCL, WPF и ASP.NET, небо и даже аллаха.
- C# 6.0 Cookbook (Jay Hilyard и Stephen Teilhet) - книга в формате "проблема-решение", можно пройтись по оглавлению, найти интересные проблемы и попыпаться самому решить, а уже потом посмотреть представленное решение. Книга скорее не для ньюфагов, а для тех, кто уже знаком с шарпом.

10. Более хардкорный материал
- C# in Depth (Jon Skeet) - написана в виде истории версий C#, начиная с C#1.0. Описываются возможности, которые были добавлены в определенной версии и далее достаточно хардкорно и подробно эти возможности расписываются.
- Writing High Performance .NET Code (Ben Watson) - охуенная книга. В основном фокуируется на оптимизации дотнет-говна. Методы оптимизации проложений, профилирование, вот это все. Крутейшая и достаточно детальная глава по GC. Рассматриваются достаточно известные проблемы вроде "for vs foreach", "класс vs структрура", кастинг, боксинг, перфоманс регулярок, коллекций, исключений. Короче все что нужно, чтобы вам перезвонили.
- CLR via C# (Jeffrey Richter) - это классика, это знать надо.

11. Хочу еще хардкорней
- C# Deconstructed (Mohammad Rahman) - введение в CLR, модели памяти и выполнения в CLR, байтоебство, JIT. Книга достаточно коротенькая, менее 200 страниц, можно осилить за пару дней. Желателен опыт работы WinDbg и понимание устройства PE-формата.
- Expert C# 5.0 with .NET 4.5 Framework - еще одна книга этого автора, в этот раз намного длиннее. Очень много IL, анализа и разбора стандартной либы (те же коллекции), разбор ивентов, дегегатов, асинхронности etc. на уровне байткода.
- .NET IL Assembler (Serge Lidin) - ILёбство, во многих местах повторяет документацию MSDN, но при этом имеет много интересных дополнений и заметок. Кроме того все неплохо структуировано и разложено по красивым табличкам

12. Литература по WPF
Из более-менее актуального можно выделить пару книг:
- Pro WPF 4.5 in C# (Matthew MacDonald)
- Windows Presentation Foundation 4.5 Cookbook (Pavel Yosifovich)

13. Литература по ASP.NET
- Professional ASP.NET MVC 5 (Jon Galloway, Brad Wilson, K. Scott Allen, David Matson)
- Pro ASP.NET MVC 5 Platform (Adam Freeman)
- Beginning ASP.NET for Visual Studio 2015 (William Penberthy)

14. Литература по асинхронности, параллелизму и всему такому
- Concurrency in C# Cookbook (Stephen Cleary) - книга, написанная в формате "проблема - решение". Кроме базовых вещей, вроде асинков и параллелизма рассматриваются TPL Dataflows, Rx (реактивные расширения), тестирование всего этого асинхронного добра, ну и работа этого всего на более низких уровнях абстракции
- Multithreading in C# 5.0 Cookbook - в основном ничего интересного, но есть довольна неплохая глава про синхронизацию, пусть и не слишком детальная
- Pro Asyn_chronous Programming with .NET (Richard Blewett, Andrew Clymer) - опять же, интересного немного, но неплохие главы про асинхронность + UI и анализ дампов памяти в windbg

15. Литература не по шарпу, но так или иначе связанная с языком
C# Game Programming Cookbook for Unity 3D (Jeff W. Murray) - разработка на шарпе под Unity
Introduction to Neural Networks with C# (Jeff Heaton) - изучение нейронных сетей с примерами кода на шарпе. Под конец пишем программу для распознавания символов и нейроботов.
Machine Learning Using C# Succinctly (James D. McCaffrey) - довольная коротенькая книга на тему машинного обучения с примерами кода на C#. Ничего особого: k-средние, классификация, наивный байес, но с кодом, который всегда можно поразбирать, если что неясно.

16. Но я не знаю английский, как я буду это все читать?
На некоторые из перечисленных книг есть переводы, которые можно найти на том же рутрекере, однако, зачастую эти переводы неактальны, содержат неточности, и не самые понятные варианты перевода. Кроме того, переводы обычно пилятся только для нескольких самых популярных книг, более-менее серьёзный материал не переводят. Всегда можно сесть со словарем и понемногу читать, переводя непонятные фрагменты. Это очень полезно, так как в любом случае в разработке без знания ангельского делать нечего. Если очень хочется, то гуглить по запросам: "C# 5.0, Справочник. Полное описание языка", "C# для профессионалов. Тонкости программирования", "Программирование на платформе Microsoft .NET Framework 4.5 на языке C#"

17. Что еще нужно знать, чтобы взяли работать за еду?
- SQL - подойдет люая книг по MSSQL/MySQL, базовые запросы, SELECT, INSERT, DELETE, UPDATE. Джойны, индексы, нормализация. В контексте шарпа еще ORM: Entity Framework, Dapper
- Системы контроля версий - обычно гита достаточно: add/commit/push, merge, rebase, checkout, remote's, разрешение конфликтов, трехпанельные дифф-менеджеры, cherry-pick
- Гитхабы-гитхабчики - issues, организация пулл-реквестов, интеграция с appveyor, теги, релизы, маркдаун
- Алгоритмы - сложность алгоритмов, сортировки (пузырек, быстрая, вставками), поиск, рекурсия, алгоритмы на строках
- Структуры данных - связанные списки, деревья (бинарные, красно-черные, b-деревья), хеш-таблицы, графы
- Если идти в веб - HTML, CSS, JavaScript, веб-сокеты, REST
- Паттерны проектирования, стиль кода, внедрение зависимостей, MVVM (если хочется в WPF), SOLID

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
Аноним 07/05/16 Суб 06:54:58 736676
Visual Studio 15 Preview https://www.visualstudio.com/en-us/downloads/visual-studio-next-downloads-vs.aspx
C# 7 https://channel9.msdn.com/Events/Build/2016/B889 (59 min) или https://msdn.microsoft.com/en-us/magazine/mt595758.aspx (коротюлька с буквами)

ASP.NET Core 1.0 и его EF еще нихуя не вышли, расписание выхода и реализованные фичи можно посмотреть https://github.com/aspnet/Home/wiki/Roadmap и https://github.com/aspnet/EntityFramework/wiki/Roadmap
Ответы: >>737712
Аноним 07/05/16 Суб 07:41:37 736684
бампирую вопрос с предыдущего треда

> откуда можно почитать про оптимизацию работы приложения/отдельного куска BL для работы с большими объемами данных?
Ответы: >>736685 >>736686
Аноним 07/05/16 Суб 07:43:09 736685
>>736684
Аноним 07/05/16 Суб 07:43:45 736686
>>736684
А побольше информации нельзя? Как-то слишком уж абстракто. Что за данные хоть?
Ответы: >>736707
Аноним 07/05/16 Суб 08:43:54 736707
>>736686
ну, в целом это такой вопрос, который любят задавать на собеседованиях. однако с одной стороны все (для конкретного приложения) решается путем выкидывания мусора из функционала и применением адекватных решений для работы с источниками данных, строками; включения кеширования; и всякого прочего скама (и все это применяется индивидуально для каждого пациента)

чуть более конкретней это касалось сего выражения:
http://pastebin.com/Qn8LEvNv
оно должно вернуть было символы в строке, которые встречаются максимальное количество раз

я, конечно, как ебанат, сказал, что не знаю, как это говнище оптимизировать. да и потом ничего не пришло в голову иного, кроме как юзания TPL. однако, как писали давно в RDSN, применение параллелов не дает в большом количестве случаев, на самом деле, существенного прироста производительности ибо весь выйгрыш от параллельной обработки теряется на переключении потоков и синхронизации результатов
Ответы: >>736861 >>736944
Аноним 07/05/16 Суб 11:11:53 736861
>>736707
> оно должно вернуть было символы в строке, которые встречаются максимальное количество раз
Есть эффективные алгоритмы на эту тему
Ответы: >>736870
Аноним 07/05/16 Суб 11:19:37 736870
>>736861
названия не подскажешь?
поверхностный поиск приводит на говнофорумы
Ответы: >>738691
Аноним 07/05/16 Суб 12:14:13 736944
>>736707
>http://pastebin.com/Qn8LEvNv
Там наверно вторая группировка и далее не нужна.
после сортировки можно сделать сразу Select всех символов со значением count y первого символа в последовательности.

И да, ненавижу пидоров порящихся в пукан линком. Извращенцы ебаные.
Ответы: >>736947 >>737213
Аноним 07/05/16 Суб 12:16:14 736947
>>736944
щето не так с linq?
Ответы: >>736968 >>736974
Аноним 07/05/16 Суб 12:31:23 736968
>>736947
- тормозит
- трудно дебажить из-за fluent interface(длинная цепочка вызовов через точку уже давно признана чем-то плохим)
- провоцирует макакенов на копипасту
Ответы: >>736977 >>737168 >>740026
Аноним 07/05/16 Суб 12:36:53 736974
>>736947
LINQ прекрасная штука, но злоупотреблять её нельзя.
Аноним 07/05/16 Суб 12:41:08 736977
>>736968
если у тебя линк тормозит, ты что-то делаешь не так

ну, а третий пункт говорит, наверное, совсем об обратном. хотя хз
Аноним 07/05/16 Суб 16:04:07 737168
>>736968
LINQ сделан для быстрого написания кода, а не для его быстрой работы. Иногда скорость написания кода важнее. То есть свою функцию он выполняет неплохо. А если вставлять его туда куда он не предназначен для, то конечно будет хуета.
Аноним 07/05/16 Суб 16:56:33 737213
>>736944
>Извращенцы ебаные.
Ну да, лучше наебенить отдельный метод с циклом вместо селекта.
Линк интуитивно понятен и прекрасно читается. То, что есть ебланы, которые всю бизнес логику записывают в цепочку из тридцати методов расширения, это проблема не средств языка.
Ответы: >>737481
Аноним 08/05/16 Вск 09:28:58 737481
>>737213
Прекрасно читается если там не более двух-трех вызовов в цепочке, иначе лучше поиграться в декомпозицию.
Аноним 08/05/16 Вск 09:55:13 737503
Посоны, поясните за F#? На бумаге звучит очень интересно и прогрессивно, но, блядь, он никому не нужен почему-то. Какого хуя?
Ответы: >>737515 >>737519 >>737906
Аноним 08/05/16 Вск 10:23:23 737515
>>737503
> делает тоже что и шарп
> нет специалистов
Ситуация с F#, как по мне, напоминает Scala.
Ответы: >>737518
Аноним 08/05/16 Вск 10:29:38 737518
>>737515
Фшарп - это просто дудетный окалм, тонкий, занятный и непрактичный.
Скала - мутант и сипипи нашего времени.

У них совершенно разные цели и проблемы. Но если у Скалы ещё есть шанс на что-то там, то фшарп - это на 100% экскремент эксперимент, и как прикладной язык может применяться только в комбинации с сишарпом.
Аноним 08/05/16 Вск 10:29:56 737519
>>737503
видел несколько вакансий, в которых знание F# было требованием. но тут трабл, что в это все нужно обучить целую команду, а не одного синьора, дабы была возможность поддерживать продукт. а с этим пичаль пичалька
Ответы: >>737525
Аноним 08/05/16 Вск 10:38:56 737525
>>737519
> тут трабл, что в это все нужно обучить целую команду, а не одного синьора
Это и есть основная причина непопулярности шарпа. Ну и майки еще, которые не хотят его развивать. Если бы допилили хотя бы до состояния, чтобы на фшарпе можно было пилить под асп.нет или впф было бы уже неплохо.
Ответы: >>737541
Аноним 08/05/16 Вск 10:52:09 737541
>>737525
на презентации некой описывали F#-фреймворк, позволяющий писать REST под SPA. его зачем-то так усиленно рекламировали, а на вопрос: сами-то пишете на этой херне? спрыгнули, што, мол, C#6-7 становится более функциональным и все это дело нам особо не нужно теперича
поэтому, наверное, момент проёбан. балмер, привет
Аноним 08/05/16 Вск 14:28:05 737687
>>736660 (OP)
Есть смысл подробно изучать vb.net и что-то писать на нем или лучше сразу осваивать C#?
Аноним 08/05/16 Вск 14:32:00 737690
14627179208620.jpg (35Кб, 725x573)
>>737687
>Есть смысл подробно изучать vb.net
Ответы: >>737703
Аноним 08/05/16 Вск 14:41:07 737697
Можно как-нибудь поставить VS Community без лишнего ненужного говна?
Ответы: >>737705 >>737716
Аноним 08/05/16 Вск 15:06:50 737703
>>737690
Ну будьте же вы людьми.
Аноним 08/05/16 Вск 15:08:50 737705
>>737697
VS Community и есть ненужное говно
Ответы: >>737874
Аноним 08/05/16 Вск 15:20:51 737712
>>736676
> Visual Studio 15
Они поехавшие? Зачем такую хуйню городят?
Ответы: >>737717
Аноним 08/05/16 Вск 15:25:55 737714
14627211552930.jpg (40Кб, 640x480)
>>737687
> vb.net
> подробно изучать
А ты знаешь толк в извращениях.

Аноним 08/05/16 Вск 15:28:42 737715
>>737687
Знаешь C# - знаешь VB, ключевые слова только новые запомнить нужно. Ну почти
Аноним 08/05/16 Вск 15:29:19 737716
>>737697
Начиная со след. версии вроде можно будет, а пока только с кучей ненужного говна
Аноним 08/05/16 Вск 15:29:56 737717
>>737712
Это временное название, пока бета, потом 2016 или 2017 назовут, ну ты понял.
Аноним 08/05/16 Вск 15:45:24 737730
Раз теперь это дотнет тред, спрошу тут.
Как господа обеспечивают деплой и последующее обслуживание ASP.NET проекта?
Быдлокод написан, а что дальше хуй знает.
Залить в Azure и забыть? Хорошо было бы еще научиться в CI и ловить всякие краши с автоматической генерацией тикетов.
Ответы: >>737761 >>740055 >>740056
Аноним 08/05/16 Вск 16:38:22 737761
>>737730
Ажур лучший вариант, рили
Аноним 08/05/16 Вск 16:44:05 737763
https://github.com/dotnet/roslyn-project-system
Аноним 08/05/16 Вск 17:42:39 737794
14627293599790.jpg (251Кб, 1920x1080)
>>737687
Кстати, ни разу не слышал про использование vb.net в реальной жизни. Зачем он вообще нужен? Для серьезных хай перформанс штук есть C++, для обычных потребительских приложух C#/Java.
Аноним 08/05/16 Вск 17:47:05 737799
>>737794
соус?
Ответы: >>738514
Аноним 08/05/16 Вск 17:48:45 737801
>>737794
тоже самое, что спросить - зачем нужен Delphi в реальной жизни. пережиток прошлого
Аноним 08/05/16 Вск 19:40:07 737874
>>737705
А что нужное?
Ответы: >>737895
Аноним 08/05/16 Вск 20:11:48 737895
>>737874
sed
Аноним 08/05/16 Вск 20:24:24 737906
>>737503
А вот хуй знает, анон. Я тож навернул книженцию по нему, и язык оч годный. Как 1 опыт функциональщины очень даже, может сгодиться для модулей для работы с бд на сервере? Вот только боюсь что тимлид не оценит, и выебет меня в жопу.
Ответы: >>737911
Аноним 08/05/16 Вск 20:29:26 737911
>>737906
Ну перетри с тимлидом, лол. У нас вот в компании все ссуться от фшарповых тайп-провайдеров, поэтому фшарп используем в связке с до-диезом.
Аноним 08/05/16 Вск 21:11:00 737944
Можно ли писать либы на F# и юзать их в asp бэкенде?
Какие подводные камни могут возникнуть?
Ответы: >>738121
Аноним 08/05/16 Вск 21:16:19 737951
Пытаюсь освоить WPF. Почему не обновляется текстовое поле при клике?
http://pastebin.com/gWzXhS3t
Ответы: >>737971 >>738064
Аноним 08/05/16 Вск 21:45:03 737971
>>737951
В WPF не разбираюсь, но мне кажется это из-за того что ты пишешь в поле напрямую, минуя свойство.
Ответы: >>738442
Аноним 08/05/16 Вск 23:28:37 738009
Поясните за щеку про XNA. Этим ещё можно пользоваться, или XNA уже RIP и больше не поддерживается?
Ответы: >>738028
Аноним 09/05/16 Пнд 04:03:50 738028
>>738009
Используй monogame.
Аноним 09/05/16 Пнд 07:31:10 738064
>>737951
Click="Change"
private void Change(object sender, RoutedEventArgs e)

разве такая поебота работает?
ты проверял, заходит ли туда код вообще?
Ответы: >>738442
Аноним 09/05/16 Пнд 08:43:48 738121
>>737944
бамп вопросу
Ответы: >>738123
Аноним 09/05/16 Пнд 08:49:59 738123
>>738121
можно
твоя команда даунов не сможет в F и заставит все переписать как положено
Ответы: >>738126
Аноним 09/05/16 Пнд 08:52:26 738126
>>738123
так что там мочь, речь же о библиотеках, а не общей бизнес-логике
Ответы: >>738130
Аноним 09/05/16 Пнд 08:54:51 738130
>>738126
ну это не ко мне уже
Аноним 09/05/16 Пнд 12:37:32 738322
>>737794
Куча легаси говна на нем написана, вот и приходится знать, чтобы поддерживать. И видимо переписано будет еще не скоро
Аноним 09/05/16 Пнд 14:20:51 738442
>>737971
Проверил, если в свойство, то работает.
Поле для красоты просто? И его можно не трогать и присваивать значения всегда свойству?

>>738064
заходит
Ответы: >>738450 >>738496
Аноним 09/05/16 Пнд 14:27:48 738450
>>738442
> заходит
хренасе

> Поле для красоты просто?
ну где-то ж надо хранить значение для инстанса? свойство дает тебе возможность расширить логику получения/установления значения и в любом случае оно будет развернуто компилятором как поле + свойства, а в последствии - поле + методы get...() и set...()
Ответы: >>738637
Аноним 09/05/16 Пнд 15:29:12 738496
>>738442
Ты же видишь, что класс у тебя реализует INotifyPropertyChanged. Binding подписывается на событие этого интерфейса, чтобы следить за изменением полей, автомагически он следить за полем/свойством не будет, если событие не вызывается - изменения нигде не отобразятся. Самое удобное место для вызова этого события - сеттер свойства. Поскольку в auto property нельзя писать кастомную логику, приходится явно писать getter/setter и backing field. Ты мог использовать auto property и просто вызывать OnPropertyChanges после каждого присвоения, но это же error prone.
Ответы: >>738637
Аноним 09/05/16 Пнд 15:44:38 738514
>>737799
Musaigen no Phantom World
Аноним 09/05/16 Пнд 18:37:30 738637
>>738450
>>738496
Теперь понятно, спасибо. Буду значит свойствам присваивать.
Аноним 09/05/16 Пнд 18:38:57 738638
test
Аноним 09/05/16 Пнд 18:39:12 738639
Не буду отдельный тред создавать, тема вроде близкая. Как правильно закладывать в TFS проекты юзающие nuget-пакеты? Что бы у другого человека, с чистого листа загружающего мое решение все установилось локально без использования инета? Или нугет принципиально работает только с инет хранилищами?
Ответы: >>738640 >>738644
Аноним 09/05/16 Пнд 18:42:14 738640
>>738639
> нугет принципиально работает только с инет хранилищами
конечно же нет
http://codurance.com/2015/05/04/creating-a-local-nuget-repository/
Ответы: >>738645
Аноним 09/05/16 Пнд 18:48:38 738644
>>738639
> Как правильно закладывать в TFS проекты юзающие nuget-пакеты?
Все зависимости прописаны в файле package.config

>без использования инета? Или нугет принципиально работает только с инет хранилищами?
Можно установить локальный нугет и в н нем держать нужные пакеты.
Ответы: >>738648
Аноним 09/05/16 Пнд 18:48:44 738645
>>738640

Спасибо, вроде то что нужно.
Аноним 09/05/16 Пнд 18:52:09 738648
>>738644

Я так понял такая схема прокатит:

1) В солюшен добавляются стандартными средствами пакеты, они же качаются с сайта нугета в виде nupg файлов и сваливаются где нибудь в локальном сетевом хранилище.

2) Солюшен стандартными средствами студии закладывается в tfs.
3) Те кто потом захочет юзать это решение без инета просто в настройках локального нугета прописывают путь к локольной свалке nupg файлов и берут решение из tfs.
Ответы: >>738650 >>738651
Аноним 09/05/16 Пнд 18:57:52 738650
>>738648
> tfs
Ни разу с этим не сталкивался. Можешь пояснить за особенности перед другими vcs(git например)? Он мне показался каким-то монструозным и ориентированным на супер-дупер интерпрайз.
Ответы: >>738652 >>738654 >>738657
Аноним 09/05/16 Пнд 19:00:07 738651
>>738648
Ну типа того, только я не совсем в курсе как покеты в локальный нугет попадают
Ответы: >>738653 >>738654
Аноним 09/05/16 Пнд 19:00:23 738652
>>738650
по сути - это смесь svn и jira, как по мне. как и обычное гигантское решение от мягких

_не он_
Аноним 09/05/16 Пнд 19:02:22 738653
>>738651
есть аналогичная статья на docs.nuget.org. там все получше расписано и визуализировано
Аноним 09/05/16 Пнд 19:03:00 738654
>>738650

Да я сам его специально не изучал, знаю и использую только на уровне стандартных фич vcs и item'ов задач. Там еще серверные билды есть, хз как там нугет настроить на локальное хранилище.

>>738651

Ну в статье написано, можно с сайта нугет качать, только зарегиться надо.

Аноним 09/05/16 Пнд 19:04:17 738657
>>738650
TFS это набор инструментов, багтрекер, система контроля версий, билд сервер. Все это интегрировано друг в друга и связано. Никогда гитом не пользовался поэтому различий с тфсным контролем не скажу.
Ответы: >>738663
Аноним 09/05/16 Пнд 19:05:50 738659
И да, нугет не входит в состав тфс если что.
Аноним 09/05/16 Пнд 19:12:04 738663
>>738657
svn, как и tfs, централизованный репозиторий, в то время как git - распределённый. в способе хранения истории изменений есть большая разница, делающая git чуть более оптимальным, однако, я не думаю, что в 2016 это прям проблема
Ответы: >>740040
Аноним 09/05/16 Пнд 19:43:08 738691
>>736870
бамп, кстати, вопросу
Аноним 09/05/16 Пнд 22:14:00 738829
Ребята, у меня не вызывается PropertyChanged при добавлении/удалении элемента из коллекции. Что не так?
http://pastebin.com/smyneYtr
Ответы: >>738946
Аноним 10/05/16 Втр 01:14:29 738897
14628428694520.jpg (88Кб, 694x960)
Анон, я сам инженер, всегда угорал по механическим системам.
Недавно начал изучать C#.
Очень классный язык, все логично и ясно - только не совсем понятно как бы туда вкатился кто-то без техобразования.
К чему я это пишу? А к тому, что я дошел до главы про интерфейсы и... анон, КАК же это охуенно! Интерфейсы - это же чисто веполи! Это же кристально чистая инкапсуляция, гениально!
Ответы: >>738915
Аноним 10/05/16 Втр 03:48:09 738915
>>738897
Как я тебя понимаю, братишка.
Ответы: >>739844
Аноним 10/05/16 Втр 04:07:19 738918
>>737794
В основном у пендосов он популярен, хер знает почему. Со времен vb 6 привычка, наверн.
Аноним 10/05/16 Втр 05:41:00 738946
>>738829
так у тебя в CollectionChanged происходит только подписка/отписка на события изменения элементов коллекции, и все. а они у тебя-то сами и не меняются никогда
Ответы: >>738952 >>739655
Аноним 10/05/16 Втр 05:52:49 738952
>>738946
точнее даже так: не только не меняются никогда, в логике самих Items отсутствует вызов ивэнта PropertyChanged. т.е. месседжбокс ты вообще ни при каких обстоятельствах не увидишь
Ответы: >>739655
Аноним 10/05/16 Втр 09:13:32 739097
Подскажите, пожалуйста, как быть при написании многопользовательского веб-приложения?
У меня есть БД, часть записей в ней - по умолчанию. Пользователи могут добавлять свои записи в таблицы, и эти записи должны быть видны только пользователю, который их добавил. Записи по умолчанию видны всем, но редактировать их нельзя.
Я пока думаю сделать так: в каждой таблице будет поле "автор", которое будет определять, показывать запись конкретному пользователю или нет.

Но, насколько я понимаю, есть и вариант использования отдельных БД для каждого пользователя.

Так вот, как лучше поступить? И как обстоят дела с одновременным доступом к БД разных пользователей?
Ответы: >>739110 >>739204
Аноним 10/05/16 Втр 09:19:35 739110
>>739097
> в каждой таблице будет поле "автор", которое будет определять, показывать запись конкретному пользователю или нет
как какое-то костыльно-быстрое решение - сойдет

> есть и вариант использования отдельных БД для каждого пользователя
чет печальный вариант, на самом деле. ты вообще представляешь весь пиздец, который ты устроишь на сервере? конечно, если у тебя не два пользователя

> как обстоят дела с одновременным доступом к БД разных пользователей
прекрасно обстоят. можно одновременно стучать в базу с нескольких запросов. и никто тебе по рукам не даст
Ответы: >>739198
Аноним 10/05/16 Втр 10:56:24 739198
>>739110
>как какое-то костыльно-быстрое решение - сойдет
А если качественно хочу сделать, то что посоветуешь?
Ответы: >>739213
Аноним 10/05/16 Втр 11:08:32 739204
>>739097
> И как обстоят дела с одновременным доступом к БД разных пользователей?
Читай про транзакции и уровни изоляций.
Аноним 10/05/16 Втр 11:25:39 739213
>>739198
тут зависит от сложности твоего приложения. если ты собрался создавать отдельную базу для каждого пользователя, то, очевидно, приложение у тебя маленькое по любым меркам. следовательно, твой подход будет подходить под принцип KISS

если уж расширяться, то я бы создал зависимости человеки<->контент с различными уровнями доступа (от Deny до Owner). следовательно, при создании контента уже создавать эти зависимости между новым объектом и всей остальной шоблой
из плюсов такого подхода - ты можешь усложнять практически до небес логику создания записей и фильтрации уровня доступа на уровне каких-то кастомизированных правил. минусов гораздо больше - опять-таки, это сложная ебола и впихивать её даже в относительно большие приложения - такое себе решение; плюс этот подход отходит от реляционной схемы - все-таки это будет граф
Ответы: >>739225
Аноним 10/05/16 Втр 11:43:31 739225
>>739213
Спасибо за совет
Аноним 10/05/16 Втр 15:00:34 739516
14628924341080.png (743Кб, 2003x1600)
Объясните, пожалуйста, как ключевое слово is работает с типом string? В дотнете же любой object можно преобразовать в строку.
Ответы: >>739524
Аноним 10/05/16 Втр 15:05:17 739524
>>739516
> В дотнете же любой object можно преобразовать в строку
што
для любого объекта можно получить его строковую презентацию, а это нихуя не "преоббразовать в строку". это как сказать, что любой объект можно описать каким-то предложением
Ответы: >>739525 >>739555
Аноним 10/05/16 Втр 15:05:50 739525
>>739524
> строковую презентацию
я как и ты пишу всякую хуйню
Ответы: >>739528 >>739555
Аноним 10/05/16 Втр 15:08:37 739528
>>739525
.ToString();
Ответы: >>739529 >>739555
Аноним 10/05/16 Втр 15:10:12 739529
>>739528
я понял, об чем ты. ToString - это не преобразование объекта в строку. это stringify - как это перевести, сам придумай
Ответы: >>739555
Аноним 10/05/16 Втр 15:24:13 739547
14628938531960.png (1034Кб, 996x1020)
Дотнетаны, очень серьёзный вопрос.
1)Я понимаю, что на .net с фрилансом хуже некуда, но вообще реально ли на oDesk(UPwork) или на какой-нибудь бирже зарабатывать хотя бы 90к? Испытал острую потребность не быть привязанным к рабочему месту, а переучиваться не хочу(Ну разве что Android могу осилить.) Есть ли у кого опыть?
2)Тот же самый вопрос по поводу удалёнки.

Поделитесь историями в общем.
Ответы: >>740513
Аноним 10/05/16 Втр 15:28:51 739555
>>739524
>>739525
>>739528
>>739529
Ок, я очень хуёво выразился. Ну так всё таки, исходя из каких соображений is возвращает true/false?
Ответы: >>739560
Аноним 10/05/16 Втр 15:32:08 739560
>>739555
пробегает по дереву типов и смотрит, если ли связь между типами текущего экземпляра и которому ты пытаешься скастить
Аноним 10/05/16 Втр 15:57:26 739594
14628958461270.jpg (272Кб, 1250x938)
Антуаны, почему это работает:
https://dotnetfiddle.net/dLkVpA
а это не работает:
https://dotnetfiddle.net/c1g447

Точнее почему второй варинат не работает понятно, почему работает первый?
Аноним 10/05/16 Втр 16:02:50 739601
>>739594
Возможно, hashcode файл. потока хардкодится во время компиляции(смотри в IL-коде).
Ответы: >>739603 >>739608 >>739614
Аноним 10/05/16 Втр 16:05:08 739602
>>739594
Ты думал что у тебя action задиспозится или что?
Аноним 10/05/16 Втр 16:05:10 739603
>>739601
У меня подозрение, что задиспоузеный объект != уничтоженный.
Ответы: >>739606
Аноним 10/05/16 Втр 16:07:17 739606
>>739603
сшенно верно
Аноним 10/05/16 Втр 16:09:13 739608
>>739601
Cпасибо.
Ответы: >>739612
Аноним 10/05/16 Втр 16:13:37 739612
>>739608
ну ты уж как разберешься, расскажи)
Аноним 10/05/16 Втр 16:14:26 739614
>>739601
Так не бывает.

>>739594
Я думаю, что поток задиспозился, но остался доступен через замыкание. Почти все методы работы с ним проверяют его диспоз(обычный bool) и генерят исключение если он был. GetHashCode - вероятно работает от объекта и ничего не проверяет, алсо будет работать всегда, пока замыкание в блоке видимости.

Только не ясно: зачем писать заведомую чешую и удивляться, что она показывает волшебство.
Ответы: >>739616 >>739619
Аноним 10/05/16 Втр 16:15:52 739616
>>739614
это скорее задачка на "а почему", а не костыль из реального кода
Аноним 10/05/16 Втр 16:16:55 739619
>>739614
http://govnokod.ru/19795
Код отсюда. А интересуюсь из спортивного интереса.
Аноним 10/05/16 Втр 16:21:48 739624
>>739594
http://stackoverflow.com/questions/732864/finalize-vs-dispose
второй ответ.
Аноним 10/05/16 Втр 17:19:28 739655
>>738946
>>738952
Ага, понял ошибку. Спасибо.

Возникла другая проблема.
Суть:
Класс All нужен для удобной сериализации (в нём будет 5-6 ObservableCollection<T> и с десяток полей).
Класс Parse для извлечения информации из файлов.
Класс Logic — логика связанная с открытием/сохранением файлов. Хранит экземпляр All к которому и привязывается ListView.
Но при таком раскладе, не вызывается PropertyChanged.
Как можно разрешить данную проблему?

http://pastebin.com/FHa6KaxT
Ответы: >>739835
Аноним 10/05/16 Втр 17:20:05 739657
14629008058050.jpg (25Кб, 480x360)
>>739594
Пиздец, в окружение кого я сижу.
Ответы: >>739720 >>739769
Аноним 10/05/16 Втр 17:54:47 739720
>>739657
Год самообучения, полгода в профессии, не пизди мне тут.
Аноним 10/05/16 Втр 18:16:14 739751
>>739594
Это всего лишь теория, я не смотрел, что в итоге получится в IL-коде, но все же поделюсь своими мыслями.
После компиляции в IL-код using() транслируется в try {} catch {} finally {}. В try создается объект filestream, а в finally вызывается его метод Dispose(). Но(!) т.к. у try и у finally разные области видимости, я думаю, что твой объект filestream создается выше области видимости try, т.е. в той же области, что и doItWrong, а значит doItWrong может вполне легально юзать твой filestream. WriteByte не работает, т.к. поток закрывается методом Dispose() в finally, перед выходом из using()(поток просто закрывается, но объект не уничтожается). GetHashCode работает, т.к. у нее нет такой зависимости, как у WriteByte().

Я кончил.

мимо-739601
Ответы: >>739884 >>740421
Аноним 10/05/16 Втр 18:29:44 739769
>>739657
да ты же сам не понял в чем ошибка, даун.
Ответы: >>739895
Аноним 10/05/16 Втр 19:08:29 739835
>>739655
наворотил какого-то говна, и сам в нем, небось, и заблудился

у тебя 2/3 событий PropertyChanged никем не используются, но это так, философия

я, конечно, могу ошибаться, но единственной причиной заполнения айтемов для ListView вляется триггер PropertyChanged для ViewModel.Items. а вот теперь посмотри, когда этот триггер вообще может (гипотетически) сработать и где это инициируется (не менее гипотетически) у тебя в коде
не смотри под спойлер ты проиграл, ответ: нигде
Ответы: >>739889 >>739906
Аноним 10/05/16 Втр 19:17:58 739844
>>738915
Хорошое, все-таки, было внешкольное образование когда-то.

А ведь почитай хабру - каждый второй мамкин погромист будет рассуждать о разнице между классами и интерфейсами, и зачем они нужны.
Аноним 10/05/16 Втр 19:59:48 739884
>>739751
Да ёпта, почитай
http://stackoverflow.com/questions/732864/finalize-vs-dispose
Когда вызывается диспоуз, сам обект не уничтожается, он просто освобождает занятые им ресурсы(файл, коннект к бд, етц). Ресурс освобождён, поэтому эксепшн когда ты хочешь писать в ресурс. И нет эксепшна на гетХэшкод() потому что сам объект ещё жив.
Ответы: >>740089
Аноним 10/05/16 Втр 20:05:15 739889
>>739835
Есть ли какой-нибудь простой способ найти неиспользуемые PropertyChanged события? Ну там как решарпер ищет неиспользуемые переменные/параметры.
Аноним 10/05/16 Втр 20:08:11 739895
>>739769
Да это понимает любой кто осилил хоть одну книгу по C# (видимо кроме тебя).
Аноним 10/05/16 Втр 20:19:05 739906
>>739835
>посмотри, когда этот триггер вообще может сработать и где это инициируется
Потерял, да.

Вот как должно быть:
http://pastebin.com/CnECtCDv

Но проблема остаётся актуальной, не вызывается PropertyChanged.
Аноним 10/05/16 Втр 23:05:28 740026
>>736968
Если у тебя тормозит LINQ, ты плохо понимаешь его работу и нагородил несусветных неоптимальных запросов.
Сам по себе overhead у LINQ небольшой, но с помощью этого инструмента можно в нехуй делать нагородить монструозный запрос, который будет перелопачивать херову гору данных несколькими строчками кода.
Ответы: >>740052
Аноним 11/05/16 Срд 00:00:42 740040
>>738663
Как раз у TFS всё в порядке с оптимальностью хранения. У нас в конторе активно используется TFS и я по этому продукту штатный специалист. Чем хорош TFS по сравнению со всякими GIT

1) Способен держать неебические объёмы. Не обсирается в отличие от гита, если в него залить дистрибутив размером в пару-тройку гигабайт одним бинарником ISO. TFS это без всяких костылей схавает и не подавится. У нас через версионное хранилище TFS модно передавать полные дистрибутивы в ISO техподдержке и продажникам, лол. База данных сейчас около терабайта и количество элементов в багтрекере через миллион может перевалить (там всё - и баги, и требования, и задачи, и обращения от техподдержки и весь agile с его досками торчат, за более чем 10 лет - с ещё мигрировавшей с IBM ClearQuest инфой). Да срать TFS-у на это. Он держит любые объёмы, ты ему только место под базу данных подавай.
2) Абсолютно все возможности торчат наружу через публичные HTTP API (REST и SOAP). Для C#, Java, JavaScript, PowerShell есть клиентские библиотеки. Скриптуемость
максимальная. Вот я прям сейчас занят задачей автоматических слияний из ветки в ветку по коммиту сервисом, который крутится на отдельном серваке. Есть сервис мой же, который ловит на служебном ящике exchange (если он стоит в cc) сообщения почты и автоматом заносит в notes багтрекера переписку при наличии http ссылки на элемент багтрекера в письме. И все файловые вложения из письма туда же в багтрекер вкладывает. TFS скриптами на хую как угодно вертеть можно. И ещё херова гора таких сервисов интеграции начиная от банальной двусторонней синхронизации с SalesLogix продажников и техподдержки.
3) Позволяет разворачивать сколько угодно application tier к одной базе данных одновременно. Поддерживает ферму с Network Load Balance. У нас основной доступ к TFS через NLB из двух нод, плюс выделенная нода для билд системы и TeamCity.
4) Позволяет писать как серверные, так и клиентские (для web-доступа) плагины штатными средствами. У меня так timesheet (трекинг времени) самописанный сделан прямо в веб морде TFS. А ещё серверным плагином сделана оповещалка почтой по разным сложным подпискам.
5) Практически полный цикл разработки - хранение кода, ревью кода, багтрекинг, управление требованиями и agile/canban досками (не хватало таймшита - я его туда дописал), билды, непрерывная интеграция, тестирование (включая разворачивание настроенных виртуалок по шаблону), релиз-менеджмент, интеграция с SharePoint для хранения документов (хотя tfs может быть хранилищем документов, Microsoft рекомендует использовать шарик), интеграция с отчётами Report Server, интеграция с Project Server для управления проектами (поддерживает двустороннюю синхронизацию с проджектом из коробки). Разумеется - сколько угодно независимых или зависимых проектов и команд разработчиков со своими правами, бэклогами и интеграцией с Active Directory.
6) Поддерживает секционирование базы данных на уровне SQL. Мы это не используем. Терабайт - не тот размер, чтоб базу разбивать. SQL о двух нодах в режиме зеркала (для высокой доступности) и так тянет.
7) Внезапно, поддерживает из коробки и GIT с этими вашими pull request. Внутри TFS можно организовывать штатными средствами GIT репозитории бок о бок с собственным хранилищем кода. Операции с GIT также доступны через API и для серверных/клиентских плагинов и скриптов как и всё остальное.
8) Можно вести ревью кода в режиме чатика прямо в веб морде хранилища кода. Просто чатик тоже имеется.
9) Можно грабить корованы
Ответы: >>740051 >>740053 >>740195
Аноним 11/05/16 Срд 00:43:52 740051
>>740040
>Абсолютно все возможности торчат наружу

Не все. Чатик не открыт и не документирован. Хотя это одна из самых полезных вещей в TFS.
Ответы: >>740154
Аноним 11/05/16 Срд 00:44:38 740052
>>740026
LINQ to Entities в EF - говнище:
- Генерит говно а не SQL.
- Подходит только для небольших запросов(т.к. генерирует говно)
- С ним невозможно использовать row_number over(), GIS, и прочие плюхи.

Сам сейчас перепиливаю код на SQL с LINQ в достаточно крупном проекте.
Ответы: >>740054 >>740190
Аноним 11/05/16 Срд 00:45:54 740053
>>740040
>Способен держать неебические объёмы. Не обсирается в отличие от гита, если в него залить дистрибутив размером в пару-тройку гигабайт одним бинарником ISO.
Triple facepalm. Только ебланы хранят бинари в соус-контроле.

Дальше даже не читал.
Ответы: >>740054 >>740153
Аноним 11/05/16 Срд 00:51:47 740054
>>740053
>Дальше даже не читал.

Рискну предположить, что программирование ты осваивал этим же методом.

>>740052
>Сам сейчас перепиливаю код на SQL с LINQ

ADO.NET + raw SQL? Хорошо, что мы не коллеги.
Ответы: >>740057 >>740058
Аноним 11/05/16 Срд 00:52:25 740055
>>737730

Если сервер один, то через MSDeploy.

Если серверов несколько, то два варианта:
1) MSI установщик, и Group Policy для установки на компьютеры домена
2) Просто в PowerShell скрипте деплоишь MSDeploy на несколько серверов(мы так делаем)
Аноним 11/05/16 Срд 00:53:39 740056
>>737730

Microsoft Visual Studio Team Foundation Server.
Аноним 11/05/16 Срд 00:56:12 740057
>>740054
>ADO.NET + raw SQL?
Нет.
ctx.Database.SqlQuery<Foo>("query", args);
>Хорошо, что мы не коллеги.
Да, со школьниками с наколеночными проектиками я бы работать не хотел.
Ответы: >>740190
Аноним 11/05/16 Срд 00:58:21 740058
>>740054
>Рискну предположить, что программирование ты осваивал этим же методом.
Как раз наоборот. В отличие от тебя.

В отличие от вашей говноконторы, в которой вы пилите свою кривую парашу, у нас бинарники хранятся в S3, и работа с ними автоматизирована. Версионирование итд.
Ответы: >>740060
Аноним 11/05/16 Срд 01:01:39 740060
>>740058

Ты, видимо, не слышал о code promotion в TFS.
Ответы: >>740062
Аноним 11/05/16 Срд 01:06:49 740062
>>740060
Я с TFS работал два года.

Достаточно того что вы ебанько и храните бинари в TFS. Это надо ебланами быть, полными.

Да и вообще TFS слабоватая система. Единственно билды можно прикрутить - но их и другими способами можно прикрутить.

Канбаны и прочее говно я даже не упоминаю, в нормальных проектах это в пизду не надо. Игрушка для ИБД в аутсорсе.
Ответы: >>740064 >>740130 >>740159
Аноним 11/05/16 Срд 01:08:58 740064
14629289383530.jpg (150Кб, 249x737)
>>740062

Я думаю, ты не шутишь. Но всё равно, спасибо.
Аноним 11/05/16 Срд 02:43:41 740089
>>739884
По-моему я так и написал.
Аноним 11/05/16 Срд 05:43:56 740130
>>740062
> анбаны и прочее говно я даже не упоминаю, в нормальных проектах это в пизду не надо.
Полегче парень, а что тогда надо "нормальных" проектах?
Аноним 11/05/16 Срд 06:26:37 740138
Парни, у вас не отвалился Resharper 10.0.2 на VS 2015 update 2?
Ответы: >>740155 >>740157
Аноним 11/05/16 Срд 06:51:41 740153
14629495020130.jpg (195Кб, 960x640)
>>740053
>Только ебланы хранят бинари в соус-контроле.
Наверное, потому что нельзя? А в TFS можно и это нормально. Что же до "ебланов", держи костыль:
https://git-lfs.github.com/

>Git Large File Storage (LFS) replaces large files such as audio samples, videos, datasets, and graphics with text pointers inside Git, while storing the file contents on a remote server like GitHub.com or GitHub Enterprise.

В гите сделан Костыль Костылич Костылёв. В TFS это из коробки и в базе данных самого TFS.
Аноним 11/05/16 Срд 06:52:55 740154
>>740051
Уже открыт чатик, емнип.
Аноним 11/05/16 Срд 06:53:23 740155
>>740138
Нет. Работает.
Аноним 11/05/16 Срд 06:55:24 740157
>>740138
НАЧАЛОСЬ
Аноним 11/05/16 Срд 06:56:36 740159
14629497962990.jpg (70Кб, 500x499)
>>740062
>TFS слабоватая система
Потому что ты так скозал?

>Канбаны и прочее говно я даже не упоминаю, в нормальных проектах это в пизду не надо. Игрушка для ИБД в аутсорсе.
Ого, у нас тут человек с творческим подходом к делу. Часто с работы увольняют по причине служебного несоответствия, творец?
Ответы: >>740517
Аноним 11/05/16 Срд 07:53:07 740190
14629531876660.jpg (244Кб, 850x850)
>>740052
Это ты генеришь говно, а не запросы.
Чтобы сделать быстро работающий запрос на LINQ, нужно внезапно понимать, что ты делаешь. Если ты ебанафт и не понимаешь, в какой именно SQL транслируется твой LINQ - нужно лучше разбираться в используемом инструменте.
А с выдрочки на "компактный SQL" люто проиграл. Шёл 2016 год.

>>740057
>ctx.Database.SqlQuery<Foo>("query", args);
Нужно только для сценариев массового обновления. В Entity Framework не поддерживаются вещи вроде "DELETE ... WHERE" или "UPDATE ... WHERE". А иногда очень нужно.

>Да, со школьниками с наколеночными проектиками я бы работать не хотел.
Ой, ебанафт. ORM придуманы как раз для сложной объектной логики со страшными запросами, в такой ситуации Raw SQL абсолютно неподдерживаемый. Но это не отменяет необходимости в наличии мозгов при составлении LINQ запросов. В самых крайних случаях (обычно - сложные агрегаты или иерархические запросы с WITH) создаются View или хранимки, которые также мапятся на ORM и куда лучше поддерживаемы, нежели SQL в коде.

Что ты вообще несёшь, болезный?
Ответы: >>740517 >>740617
Аноним 11/05/16 Срд 08:02:45 740195
>>740040
ты, конечно, сравниваешь VC-system и целый сервер и 90% твоих преимуществ отнносятка как раз к тому, чем контроль версий не занимается. я не спорю, что TFS - это крутая enterprice штука, но уж сравнивай github с ним, наверное. там и билды, и документация, и баг-трекинг, и, возможно, что-то еще

а еще я не уверен, что понимаю это:
> Не обсирается в отличие от гита, если в него залить дистрибутив размером в пару-тройку гигабайт одним бинарником ISO
видал я такие дела. возможно, я круче Аллаха, либо вы используете все-таки не пару-тройку гигабайт, однако не сталкивался с такими сложностями
Ответы: >>740201
Аноним 11/05/16 Срд 08:11:13 740201
>>740195
В том то и фишка, что когда нужно вот это вот всё - ты начинаешь накручивать белый хлеб на телефункен в библиотеке на улице Герцена разные системы. В реальных проектах нужен не только VCS, нужен ещё багтрекер, билды, нужны автотесты, нужно ревью кода. И понеслось.

>сравнивай github с ним
Задачи разные. TFS лучше всего подходит для централизованного управления разработкой в рамках большой конторы, ведущей много проектов, но централизованно.
Аноним 11/05/16 Срд 09:34:41 740243
Как лучше всего связать два приложения, одно на питоне, другое на С#?
Ответы: >>740252
Аноним 11/05/16 Срд 09:51:25 740252
>>740243
socket + protobuf
Аноним 11/05/16 Срд 10:40:20 740295
Шарпач, подсоби.
Как лучше всего реализовать бинарную квадратную матрицу в WPF? Требуется цветом обозначать логическое состояние ячейки. Рисовать все в ручную по координатам? Привязка к уже существующим элементам?
Ответы: >>740321
Аноним 11/05/16 Срд 11:22:45 740321
>>740295
Border с заливкой нужным цветом внутри Grid же. С привязкой к цвету.
Ответы: >>740402 >>740432
Аноним 11/05/16 Срд 13:02:09 740402
>>740321
А как потом к ячейке обращаться, чтобы изменять ее состояние?
Ответы: >>741180
Аноним 11/05/16 Срд 13:23:33 740421
>>739751
> После компиляции в IL-код using() транслируется в try {} catch {} finally {}
Транслируется в try {} finally {} вообще-то. Тоже мне теоретик.
Аноним 11/05/16 Срд 13:29:10 740432
>>740321
этот неосилятор был уже с этим вопросом пару тредов назад
Ответы: >>740437
Аноним 11/05/16 Срд 13:31:08 740437
>>740432
Ну чего ты сразу ругаться, нормально же общались.
Ответы: >>740465
Аноним 11/05/16 Срд 14:05:54 740465
>>740437
а че ты, а
Аноним 11/05/16 Срд 15:17:17 740513
14629798379910.jpg (78Кб, 598x523)
>>739547
Бампирую вопрос.
Аноним 11/05/16 Срд 15:20:15 740517
>>740159
5 лет в отрасли, тимлид в ДС2, 140к в месяц. Полет нормальный. Школьников вроде тебя уже успел погонять.

>>740190
Еще один 11 класс заканчивает.

Давай, покажи МОЩЬ ORM, и СЛОЖНУЮ АБИЕКТНАЮ ЛОГИКУ, и не забудь поделиться высером EF. На таких задачках(очень простых, на самом деле, и частых на практике. А и да, СУБД PostgreSQL 9.4+ или MSSQL 2008R2+):

1. Есть два стула две таблички, account(user_id int, amount decimal(19,4)) и transactions(user_id int, amount decimal(19,4), timestamp long)
Соответственно, нужно атомарно снять с аккаунта бабло, и записать в историю транзакций. И, ессно, не обосраться, случайно уйдя в нули(выдав нежданный кредит юзеру лол) или похерив консистентность данных.

2. Есть табличка foo(id int, value1 varchar(255), value2 varchar(255))
Нужно вывести сет с тремя колонками - (id int, value1 varchar(255), value2 varchar(255), is_duplicate bool)
Причем таким образом, что id, value1 и value2 берутся из основной таблички, а is_duplicate - true в тех записях, для которых уже существовало либо такое же value1 + value2, либо такое же value2 + value1.

3. В БД есть таблица place(id int, lat decimal(19,4), lon decimal(19,4), description text)
Также, есть таблица feature(id int, place_id int, description text, price decimal(19,4))
Place - места на карте, feature - характеристики этих мест.
В определенной области карты физически может находится несколько десятков тысяч мест(А может хуй целых ноль десятых) Но на UI надо показывать максимум 300, причем равномерно разбросанными по карте. Причем, как это обычно бывает, кроме области карты, на UI есть и другие фильтры. Допустим у нас 2 - по тексту(призвольные обрывки текста, нужно из говна и палок угадывать что имел ввиду пользователь прям как яндекс-геокодер) - это поля description, и по цене(средний price фич места). А, и по цене(средней) еще и сортировка - снизу вверх, или наоборот. А на UI надо выводить места, да, и все их feature.
Аноним 11/05/16 Срд 15:22:08 740520
да ну
Аноним 11/05/16 Срд 15:24:58 740523
>>740517
1е разве не вложенными транзакциями реализовывается?

я неон, он нея
Ответы: >>740557
Аноним 11/05/16 Срд 15:46:54 740549
>>740517
> для которых уже существовало либо такое же value1 + value2, либо такое же value2 + value1.
Такое же что?

И как этот is_duplicate дальше используется (что-то подсказывает что он не особо нужен каждой записи)?

мимо проходил (просто интересно стало)
Ответы: >>740557
Аноним 11/05/16 Срд 15:56:57 740557
>>740523
нет
>>740549
Допустим это first name и last name.
Китайцы записывают фамилия, имя. Европейцы имя, фамилия.
Надо вывести ОТЧОТ(да или просто страницу с пейджингом, хуйле), в котором такие имя-фамилия, которые уже в отчоте присутствовали, помечаются красной рамочкой.
Аноним 11/05/16 Срд 16:50:06 740617
>>740190

Два чаю тебе.

>>740517
>5 лет в отрасли, тимлид в ДС2, 140к в месяц

Ты хвастаешься или жалуешься?

>В БД есть таблица place(id int, lat decimal(19,4), lon decimal(19,4), description text)

Святая простота. И этот человек всерьёз называет кого-то школьниками.
Ответы: >>740626
Аноним 11/05/16 Срд 16:55:41 740626
>>740617
Под шконку, школьник. Иди лендинги пиши.
Аноним 11/05/16 Срд 17:16:25 740634
Раз тут собрались тимлиды и прочие профессионалы 10 лет опыта на дотнете, то вот вам вопрос на засыпку.

Мне необходимо только в управляемом коде, без подгрузки сторонних библиотек на Си, восстановить таблицу метода для повторной работы preparemethod - реджиттинга подменённого ил кода. На момент подмены метод 100% уже в асме.

Либо другой рабочий способ подменить isjitted метод (как статик, так и инстанс) в рантайме на основе его ил кода.
Ответы: >>740647 >>740675
Аноним 11/05/16 Срд 17:34:14 740647
>>740634
>10 лет опыта на дотнете

Не не, 5 лет в отрасли, из них 2 недели в программировании. ДС2, 140К.
Аноним 11/05/16 Срд 17:52:34 740675
>>740634
нахуй тебе это надо, кулхацкер?
Ответы: >>740712
Аноним 11/05/16 Срд 18:18:42 740712
>>740675
Было бы не надо, я бы не спрашивал.

Есть библиотека, в которой:
1. есть класс со статичными константами, которые еще при трансляции в ил-код были захардкожены.
2. у другого класса есть геттеры, которые при джите оптимизируются и также хардкодятся, не получится просто подменить геттеры, надо редактировать все методы, которые их используют.


На момент загрузки моей библиотеки всё это уже прошлось джит-компилятором.

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

По второму - хотелось бы подменить геттеры и перезапустить джит для методов, которые их используют, а не также редактировать ассемблерный код.
Ответы: >>740732 >>740735
Аноним 11/05/16 Срд 18:30:42 740732
>>740712
$3к
Аноним 11/05/16 Срд 18:32:49 740733
14629915690900.jpg (137Кб, 1666x1342)
14629915690911.jpg (203Кб, 2666x909)
14629915690922.jpg (218Кб, 2666x780)
14629915690933.jpg (1013Кб, 1666x2227)
Аноним 11/05/16 Срд 18:33:17 740735
>>740712
Паттерн dynamic proxy
Способ реализации - system.reflection.emit
Ответы: >>740757
Аноним 11/05/16 Срд 18:58:39 740757
14629931197540.png (37Кб, 1067x511)
>>740735
Не всё так просто в нашем королевстве.

Я вижу, ты в этом разбираешься, помоги!
Ответы: >>740761 >>740769 >>745970
Аноним 11/05/16 Срд 19:00:23 740761
>>740757
$3k
Аноним 11/05/16 Срд 19:03:53 740769
>>740757
Лан. Если вкратце - ты не сделаешь подмену IL в рантайме. Поздравляю.
Скажи спасибо security дотнета.

Можно впрочем, перепрошить ассемблю до запуска.

Впрочем если она строннейм, ты в жопе.

Хотя нет, можно перепрошить тех кто от нее зависит.

Но это долго и мутно.

Вощем, $3k
Ответы: >>740770 >>740779
Аноним 11/05/16 Срд 19:05:07 740770
>>740769
В рантайме, причем, ты не подменишь и JIT код, потому как он в страницах read-execute лежит. Поздравляю, хацкер.
Ответы: >>740771
Аноним 11/05/16 Срд 19:05:44 740771
>>740770
Т.е. при попытке соснешь ACCESS VIOLATION, и винда будет права
Ответы: >>740778
Аноним 11/05/16 Срд 19:07:30 740778
>>740771
Впрочем можно конечно нейтив вызовами сделать пермишн страниц и на write, но все-равно это отсосно долго и муторно.

$3k
Аноним 11/05/16 Срд 19:07:42 740779
>>740769
Почему не сделаю?
Мне надо только скомпилировать в асм динамик метод и получить указатель на асемблерный код.

В оригинальном методе сделать джамп на новый метод права позволяют, код в PAGE_EXECUTE_READWRITE.
Сейчас я просто редактирую константы в асме, но это через задницу.
Ответы: >>740781 >>740787 >>740789
Аноним 11/05/16 Срд 19:10:30 740781
>>740779
Хуле тогда спрашиваешь?
System.Runtime.InteropServices и теребонькаешь нейтив память, кто тебе мешает?
Аноним 11/05/16 Срд 19:11:55 740787
>>740779
сорцы CLR открыты, смотри как там че лежит и теребонькай куда надо
Аноним 11/05/16 Срд 19:13:56 740789
>>740779
Ой блядь, все, я понял.
Там же ASLR и прочая.
И хуй поймешь куда класс залоадился. А когда залоадился, то все - хуй сасай. Ищи в куче нейтив код после JIT.

Короче да, нихуя тебе не сделать кроме как перешивать уже скомпиленный код.
Ответы: >>740792 >>740809
Аноним 11/05/16 Срд 19:14:52 740792
>>740789
Ну еще можешь попытаться подделать MSCOREE
или заплатить мне 3k
Аноним 11/05/16 Срд 19:22:11 740809
>>740789
Ясно, с реджитом проехали.

Попробую с динамик методом дальше его помучить, чтобы на него джамп делать.
Аноним 12/05/16 Чтв 07:26:11 741180
>>740402
Нахуй к ячейке обращаться, если есть Binding?
Аноним 12/05/16 Чтв 07:32:33 741189
Нормальный ворк менеджер. Не прошло тысячи лет
https://www.youtube.com/watch?v=fTGv3BAgCiM[РАСКРЫТЬ]
Аноним 12/05/16 Чтв 07:58:26 741211
14630399066750.png (799Кб, 662x537)
>>740517
>5 лет в отрасли
Салага ебаный. Нашёл чем гордиться, пиздец.
А я с 1998 года и по сей день в отрасли, и чо?

>тимлид, 140к в месяц
Позорище. А я девелопер со 140к в месяц. Тимлид с 140к - это пиздец дно. Впрочем, по твоим постам и видно, каков ты тимлид. И прекращай называть кого-то школьниками, школьник 5 лет в отрасли, уссываюсь с таких матёрых профи просто.

>Давай, покажи МОЩЬ ORM, и СЛОЖНУЮ АБИЕКТНАЮ ЛОГИКУ, и не забудь поделиться высером EF.
Сделаю тебе копипсту запроса позже, как в офис приеду. Да ты же обосрёшься подобное на raw SQL поддеоживать.

>А и да, СУБД PostgreSQL 9.4+ или MSSQL 2008R2+):
MS SQL 2014

>1. Есть два стула две таблички, account(user_id int, amount decimal(19,4)) и transactions(user_id int, amount decimal(19,4), timestamp long)
Ты шутишь? Две примитивные таблицы у тебя "не наколенная модель"?

>Соответственно, нужно атомарно снять с аккаунта бабло, и записать в историю транзакций. И, ессно, не обосраться, случайно уйдя в нули(выдав нежданный кредит юзеру лол) или похерив консистентность данных.
Ты про SQL транзакции в курсе, упырь? А как их использовать в EF знаешь?
Алсо, если тебе религия не позволяет использовать транзакции или если процесс изменения данных может быть длительным и он не обязательно непрерывный (такое бывает), это всё прекрасно решаемо введением отдельной таблицы со специфическими временными метками и флагом валидности. Делаешь таблицу history_mark(id bigint, is_complete bit) и в других таблицах добавляешь колонку history_id со ссылкой на таблицу временных меток. В запросах добавляешь join на таблицу с временными метками и условие history_mark.is_complete = 1. Когда ты сделал всё что хотел при обновлении данных, выставляешь в связанной временной метке флаг завершения в 1 и радуешься. Это если тебе транзакции использовать религия не позволяет или если западло блочить надолго транзакциями таблицы (ну сложная и не быстрая бизнес логика, мало ли).

>is_duplicate - true в тех записях, для которых уже существовало либо такое же value1 + value2, либо такое же value2 + value1.
Нихуя не понял, что ты имел в виду. Выражайся яснее. Убивать надо нахуй тимлидов, которые не умеют ясно выражать свои мысли и которым нужен переводчик с мудацкого на русский.

Короче, соси хуй,
Аноним 12/05/16 Чтв 08:02:18 741213
>>741211
я ж грил, что транзакциями решается
Ответы: >>741221
Аноним 12/05/16 Чтв 08:06:39 741219
Боевые петушки в треди. Надеюсь они красиво опетушат друг друга.

>>741211
>MS SQL 2014
И чего?
Аноним 12/05/16 Чтв 08:11:28 741221
>>741213
Да с этим мудозвоном всё ясно стало, когда он задал вопрос об атомарности обновлений при двух банальных таблицах. Если кому-то в голову сразу же не пришло слово "транзакция", он явный кандидат на получение премии Дарвина. Ну или он как минимум нихуя не знает теории баз данных, вообще не понимает того, чем занимается.
Аноним 12/05/16 Чтв 08:44:36 741238
>>739594
Потому что GetHashCode() можно делать на disposed потоке. А хули ему? Это вообще метод, унаследованный от Object с реализацией по умолчанию (он выдаёт внутренний id объекта, назначенный при создании прост), да срать ему на логику стрима. Вот поэтому первый пример работает, а второй - нет.

Ты слегка не понимаешь сути IDisoosable паттерна. IDisposable.Dispose() неявно вызывается в using. Это не уничтожение объекта. В данном случае он просто закрывает файл и освобождает unmanaged handle на этот файл. А сам .NET объект живой и вызывать получение хэш кода не возбранно. Обычно IDisposable используется для ручного управления нативными ресурсами вроде хандли на открытый файл.

Поскольку в using была закрыта нативная хандля, использовать файловые операции (которые обращаются к хандле) после dispose нельзя - кинет исключение. А получать hash объекта можно, его получение не связано с обращением к закрытой нативной хандле.
Аноним 12/05/16 Чтв 09:45:49 741278
>>740517
Итак, умник, попробуй дать оценку поддерживаемости подобного LINQ-запроса, если его перевести в RAW SQL.
И это ещё просто пример, взятый навскидку.

http://pastebin.com/8509yAGC
Ответы: >>741281 >>741290 >>741388
Аноним 12/05/16 Чтв 09:48:44 741281
>>741278
это разве сложный запрос? select from select, join, where, union
прост объемный
Ответы: >>741318
Аноним 12/05/16 Чтв 09:55:00 741290
>>741278
Кстати в EF Core 1.0 о скорее всего это разобьется на несколько подзапросов (если вообще исполнится).
Так там сильно упростили логику SQL билдера, что бы одинаково работал на всех провайдерах (типа Postgres).

Сам уже с этим нахлебался при миграции EF6 -> EFCore.
Раньше ему можно было любого монстра скормить, а теперь даже на MSSQL отказывается их исполнять.
Ответы: >>741373
Аноним 12/05/16 Чтв 10:29:42 741318
>>741281
Да я и не говорил, что он совсем сложный.
Но ты повнимательнее посмотри всё же, там подзапросы есть с let ... = ( ... )
Аноним 12/05/16 Чтв 11:35:33 741373
>>741290
>Сам уже с этим нахлебался при миграции EF6 -> EFCore.
Я б не рискнул сейчас переходить с EF6 на EFCore
Оно пока ещё далеко до стабильного и полнофункционального релиза
Аноним 12/05/16 Чтв 11:55:05 741388
>>741211
>Ты про SQL транзакции в курсе, упырь? А как их использовать в EF знаешь?
Ебанько, первый вопрос явно подразумевает select for update или триггеры. Ни то ни другое через ORM не сделать.
маня соснул

И вот все они такие, тупые петушки...

>Нихуя не понял, что ты имел в виду. Выражайся яснее.

Ебанько, вопрос подразумевает оконные функции, которые тоже через ни EF, да и ни через какой ORM, не сделать, в частности row_number() over(partition by)

>>741278
какой петушиный пиздец
Ответы: >>741394 >>741437
Аноним 12/05/16 Чтв 12:11:20 741394
>>741388
row over partition by явно не вызвать через ОРМ, но есть подходы через анус и, возможно ли, что на стороне sql сервера во время оптимизации запроса будет преобразовано во что-то более человеческое, разве нет? может и нет
Ответы: >>741442
Аноним 12/05/16 Чтв 13:09:38 741437
14630585783680.jpg (54Кб, 375x500)
>>741388
>Ебанько, первый вопрос явно подразумевает select for update или триггеры. Ни то ни другое через ORM не сделать.
А месье не ищет лёгких путей. Особенно доставила идея с триггером. Мудило, ты вообще понимаешь, что такое транзакции и зачем они нужны? Попробуй ответить на простой вопрос - почему не подходит транзакция в твоём примере? Потому что ты петух и тебе хочется выебнуться не к месту?

>И вот все они такие, тупые петушки...
Ага, один ты тут в белом пиджаке с золотыми пуговицами. Не позорился бы, право.

>Ебанько, вопрос подразумевает оконные функции, которые тоже через ни EF, да и ни через какой ORM, не сделать, в частности row_number() over(partition by)
Так я и знал, этот петух нихуя не знает предмета, о котором мудозвонит.
Оконные функции, говоришь?
.Skip() и .Take() в LINQ

И сгенерит тебе что-то вроде этого
SELECT
[code][Extent1].[Id] AS [Id],[/code]
[code][Extent1].[Name] AS [Name],[/code]
[code][Extent1].[Channel] AS [Channel][/code]
[code]FROM [dbo].[Entities] AS [Extent1][/code]
[code]ORDER BY [Extent1].[Name] ASC[/code]
[code]OFFSET @plinq0 ROWS FETCH NEXT @plinq1 ROWS ONLY[/code]

>какой петушиный пиздец
Код из реального приложения, маня. С реальными бизнес-требованиями, которые развивались со временем. На raw sql ты обосрёшься такое поддерживать. Или ты только лабораторки в институте видел?
Ответы: >>741458
Аноним 12/05/16 Чтв 13:12:08 741442
>>741394
Этот мудозвон не знает о .Skip() и .Take() в LINQ
Ответы: >>741450
Аноним 12/05/16 Чтв 13:24:28 741450
>>741442
У этого мудозвона манямирок порвался когда он узнал о LINQ.
Аноним 12/05/16 Чтв 13:39:12 741458
>>741437
>почему не подходит транзакция в твоём примере?

Очень просто, тупой петух.
Действие 1: Берем amount из записи.
Действие 2: Вычитаем из него нужную сумму
Действие 3: Проверяем, больше ли нуля остаток.
Действие 4: Если все ок, записываем в табличку amount новую сумму.
Действие 5: Если все ок, записываем в табличку transactions вычтенную сумму.

Допустим, две транзакции выполняют этот код параллельно для одной и той же записи. На счете 1000 рублей. Вычесть надо 900.

Первая транзакция получает стейт рекорда в виде 1000 рублей, видит что все ок, записывает в рекорд сумму 100, и в транзакции - транзакцию на 900 рублей.
Вторая транзакция работает одновременно с первой. Так как первая еще не закоммитила, то вторая получает стейт рекорда, видит там те же 1000 рублей, благополучно записывает туда 100 и добавляет рекорд в табличку с транзакциями. Коммит.

Все довольно, только маня-ормщик обосрался: На выходе имеем 100 рублей на аккаунте и две записи о транзакциях в табличке транзакций. Клиенту прилетело бесплатных 900 рублей.

>Оконные функции, говоришь?
Ты еблан? Иди почитай что такое оконные функции, не позорься.

>Код из реального приложения, маня.
Которое пишут тупые петухи вроде тебя.
Ответы: >>741470 >>741492 >>741502
Аноним 12/05/16 Чтв 13:53:24 741470
>>741458
товарищ в курсе про isolation level?
Ответы: >>741484 >>741490
Аноним 12/05/16 Чтв 14:03:19 741484
>>741470
Очевидно, что не в курсе. Пичалька.
Ответы: >>741490
Аноним 12/05/16 Чтв 14:08:36 741490
>>741470
>>741484

Тупой петух, только единственный уровень изоляции позволяет защититься от подобного поведения, это уровень serializable. На котором некоторые СУБД вообще таблицы лочат экслюзивно под операцию.

Но в продакшне тебе никто этот уровень использовать, очевидно не даст, кроме такого же тупого петуха как ты. Из-за оверхеда.

Все что выше(даже snapshot в MSSQL), никоим образом не защищает от подобного поведения.

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

ЧТД, ты тупой петух.
Ответы: >>741499 >>741527 >>741675
Аноним 12/05/16 Чтв 14:09:51 741492
>>741458
>Допустим, две транзакции выполняют этот код параллельно для одной и той же записи. На счете 1000 рублей. Вычесть надо 900.
>
>Первая транзакция получает стейт рекорда в виде 1000 рублей, видит что все ок, записывает в рекорд сумму 100, и в транзакции - транзакцию на 900 рублей.
Маничка, для этого делается rowversion столбец и EF кинет исключение, если будет расхождение версий при апдейте.
Второй апдейт исключение кинет, по конфликтующим обновлениям вместо кредита на 900 руб. Это называется "Optimistic lock" и широко используется в ОРМах. Ну не обсирайся ты так.
Бля сколько нового я узнал из этого срача Аноним 12/05/16 Чтв 14:14:17 741496
14630624576550.gif (484Кб, 275x210)
Продолжайте пожалуйства
Аноним 12/05/16 Чтв 14:15:44 741499
>>741490
Так EF умеет из коробки работать с конфликтующими обновлениями, если уж тебе Serializable изоляция не нравится.
Аноним 12/05/16 Чтв 14:20:11 741502
>>741458
>Ты еблан? Иди почитай что такое оконные функции, не позорься.
Использование номера строки в запросе - это решение через жопу того, что делается прямо.
Аноним 12/05/16 Чтв 14:52:22 741527
>>741490
В оракле, кстати, serializable не защищает от такого.
Аноним 12/05/16 Чтв 15:33:02 741583
14630671830000.jpg (61Кб, 551x467)
>>741211
Ответы: >>741624
Аноним 12/05/16 Чтв 16:01:52 741624
>>741583
Чего там чаевать? Там бред написан какой-то.

Особенно вот это:
>Делаешь таблицу history_mark ...

мимокрокодил
Аноним 12/05/16 Чтв 17:10:23 741675
>>741490
если делать не два update, а один update ... from, то и repeatable read сойдет.
Ответы: >>741688
Аноним 12/05/16 Чтв 17:17:11 741682
>>741211
Серега ты? Чего двачуешь в рабочее время?
Ответы: >>741817
Аноним 12/05/16 Чтв 17:22:17 741688
>>741675
хотя хуй знает
Аноним 12/05/16 Чтв 19:30:40 741817
>>741682
у девелопера 140к в секунду работы мало
Аноним 13/05/16 Птн 02:10:20 741981
14631054206180.jpg (35Кб, 500x396)
Анон, я ньюфажек, учу шарп по книге из шапки.
Придумал задачу для себя, для закрепления структур и интерфейсов:
Есть комната с 4мя мягкими стенами, треть одной из стен занимает дверь.
Через эту дверь санитары закидывают дебила в комнату. Оказавшись в комнате, дебил начинает бегать с рандомными скоростью и направлением.
Добежав до одной из стен, дебил передает 1/3 кинетической инергии стене. Построенная таджиками стена, принимает эту энергию и, если она выше какого-то значения - мягкое покрытие ломается, и следующий удар дебила будет последним. В этом случае на экран выводится надпись:

BLOOD, GUTS, RASPIDORASILO


Если же энергия дебила меньше этого значения - дебил отлетает под тем же углом, по закону отражения.

В двери стоят санитары, которые ржут с дебила. Если дебил залетает в дверь - программа заканчивается, на экран выводится надпись:

SANITAR BRUTALITY


Есть структура Debil, интерфейс ICollision.

Как расчитывать или дебил столкнулся со стеной? Отслеживать его перемещение через, например, MoveBy(delta)? И нужно ли это вообще?

Какой же я даун, запутался в собственной задаче.
ПАМАГИ.
Аноним 13/05/16 Птн 02:28:14 741982
>>741981
Каждая стена лежит на каких-то координатах. Пациент двигается через цикл, поэтому при каждой итерации идет проверка на столкновение со стеной, тут просто банальное сравнивание координт пациента и стены. Если они равны, то он уебался в стену ,и ты делаешь различные проверки на энергию и прочую залупу хуйни.
Аноним 13/05/16 Птн 05:48:27 742010
>>741981
стена представляется как уравнение прямой на плоскости
у дебила есть начальная точка, угол направление движения = луч. используя значение скорости, находишь длину отрезка, т.е. получаешь вторую прямую
и, наконец, есть выражение, позволяющее найти точку пересечения прямых на плоскости
Ответы: >>742134 >>742447
Аноним 13/05/16 Птн 07:28:30 742061
Анусы, возник вопрос касаемо альтернатив использования конструкций try-catch для ловли исключения типа FormatException. Как я понял, в контексте исключения FormatException блок try-catch может занимать много времени, если, к примеру, в цикле идёт большое количество присвоений числовым переменным результата работы метода типа Convert.ToInt32(stringName). Дак вот, наткнулся на совет использовать int.TryParse(stringname, out x/x - int/), который якобе работает быстрее. Так ли это? Ну то есть оправдано ли использование проверки TryParse для избежание генерации исключений или работать будет так же по времени? И вообще, есть ли какие нибудь более производительные способы проверки возможности каста одного объекта к другому за исключением try-catch? И ищо, что происходит при использовании конструкции try-catch? Имею ввиду, как работает программа с машинной точки зрения при входе в блок трай и почему от этого тратится больше времени?
Ответы: >>742116 >>742131
Аноним 13/05/16 Птн 08:20:42 742098
[CODE]string InsertString = "INSERT INTO table (id,yoba,date) VALUES(" + lastID + ",'" + OGROMNI_YOBA.Text "','" + "NOW()" + "' )";
dbConnect.Insert(InsertString);[/CODE]
mySQL база
Почему-то в базе записывается не время, а строка "NOW()". Как правильно должно быть? Нужно чтобы обязательно сервер сам ставил дату.
Ответы: >>742100
Аноним 13/05/16 Птн 08:23:41 742100
>>742098
по твоему, если в кавычках написать "drop database" то дропнется база?
Ответы: >>742105
Аноним 13/05/16 Птн 08:28:43 742105
>>742100
Это была бы пушка!
Без кавычек просто не компилит. Есть решения, или мне селектом переменную делать, её в инсерт пихать?
Ответы: >>742119 >>742120
Аноним 13/05/16 Птн 08:44:03 742116
>>742061
> Имею ввиду, как работает программа с машинной точки зрения при входе в блок трай и почему от этого тратится больше времени?
SEH, VEH, итд. Поиск точек finally по ходу дела. Сложно короче и муторно.

Parse реализуется в 90% случаев через TryParse (типа, если false вернулось, кидаем исключение). И естественно, он намного быстрее работает. Я только его всегда и использую
Ответы: >>742121
Аноним 13/05/16 Птн 08:46:16 742119
>>742105
Зачем ты прямо в строку параметры суешь? Используй @p0...@pn и передавай аргументы в отдельном массиве.

Как будто блядь с PHP пришел.
Аноним 13/05/16 Птн 08:50:03 742120
>>742105
хуй знает, я с sql раз в жизни пока что дело имел. я бы попробовал поиграться с convert(nvarchar(10), getdate(),...), по крайней мере с его помощью конвертил строку в date. наверняка возможно и обратное.
Аноним 13/05/16 Птн 08:51:53 742121
>>742116
То есть для обрабоки конкретно формат эксепшн %typename%.tryParse(stringName, out var) подходит на отличненько вместо блока
try
{
//do some shit
}
catch (FormatException e){/exception handling logic/}
?
Ответы: >>742122
Аноним 13/05/16 Птн 08:52:21 742122
>>742121
подходит на отличненько в плане временных затрат.
Ответы: >>742123
Аноним 13/05/16 Птн 08:52:41 742123
>>742122
подходит на отличненько в плане временных затрат, самофикс, блджад.
Аноним 13/05/16 Птн 09:07:47 742131
>>742061
Мань, про профайлеры слышал?

Хули ты тут фантазируешь, берешь и меряешь.
Аноним 13/05/16 Птн 09:08:49 742134
>>742010
2чну этого
Ответы: >>742447
Аноним 13/05/16 Птн 09:45:18 742168
Начинаю вникать в MVC, надо сделать простую аутентификацию пользователя и роли. При использовании стандартного метода Identity при создании проекта, создается много лишнего. Вместо 2 таблиц в базе, получаю 6.

Есть ли простая готовая альтернатива?
Ответы: >>742179 >>742195 >>742225
Аноним 13/05/16 Птн 09:55:53 742179
>>742168
какие 6 таблиц?
не используй то что не надо и все.
реализуй интерфейсы DAL сам итд
Аноним 13/05/16 Птн 10:26:29 742195
>>742168
http://www.dotnet-tricks.com/Tutorial/mvc/G54G220114-Custom-Authentication-and-Authorization-in-ASP.NET-MVC.html
Аноним 13/05/16 Птн 11:00:56 742225
>>742168
Ты используешь Identity аутентификацию, которая довольна тяжеловесна, но полноценна. Мелкософт рекомендует именно ее и юзать. Но есть еще FormAuthentification, которая легче и малофункциональнее, дает только базовый функционал по регистрации и логину. http://metanit.com/sharp/mvc5/12.5.php
Ответы: >>742227
Аноним 13/05/16 Птн 11:04:06 742227
>>742225
При создании проекта можно вроде выбрать FormAuthentification заместо Identity, там вроде бы модельки и контроллеры для этого сгенерируются сами.
Ответы: >>742265
Аноним 13/05/16 Птн 12:02:35 742265
>>742227


Спасиб за ссылку, но я пишу только API и формы мне напр не подойдут
Ответы: >>742688 >>742956
Аноним 13/05/16 Птн 15:00:36 742447
>>742010
>>742134

Спасибо!
Но.
Прикол в том, что луч пересекается с 2-мя уравнениями 2-х стенок, надо постоянно проверять, до какой стенки ближе?
Ответы: >>742482
Аноним 13/05/16 Птн 15:23:20 742464
Пилю курсач в универе, надо сделать десктопное клиентское приложение, которое общается с бд (бд создать тоже надо самому). Препод предлагает сделать так, чтоб клиентское приложение обращалось напрямую к бд. При этом она хочет, чтоб в приложении была роль админа и обычного юзера. Предполагается, что коннекшн стринг с credentials хранится в конфиге приложения.

Я правильно понимаю, что это днище и так делать нельзя? Я собираюсь сделать серверную часть и клиентскую. Клиентская будет слать на серверную http-запросы типа /get/hui?id=123 и серверная будет возвращать json. Такая архитектура - это норм?
Аноним 13/05/16 Птн 15:40:10 742479
>>742464
> Пилю курсач в универе, надо сделать десктопное клиентское приложение, которое общается с бд (бд создать тоже надо самому). Препод предлагает сделать так, чтоб клиентское приложение обращалось напрямую к бд. При этом она хочет, чтоб в приложении была роль админа и обычного юзера. Предполагается, что коннекшн стринг с credentials хранится в конфиге приложения.

> Я правильно понимаю, что это днище и так делать нельзя? Я собираюсь сделать серверную часть и клиентскую. Клиентская будет слать на серверную http-запросы типа /get/hui?id=123 и серверная будет возвращать json. Такая архитектура - это норм?
Ты можешь на прямую из приложения цепляться к БД. В БД 2 пользователя с правами на чтение/запись и только чтение. Соответственно 2 стринга. Если совсем грубо, то при старте спроси кто пользователь, админ или нет и в зависимости от ответа используй нужную стрингу
Аноним 13/05/16 Птн 15:42:13 742482
>>742447
вот как он, расскажи, будет пересекать две стенки, если комната прямоугольная (квадратная)?

>>742464
хранить строку соединения там, где её могут прочесть пользователи, конечно, днище. клиент-сервер немного поможет тебе в этом
Ответы: >>742683
Аноним 13/05/16 Птн 15:42:45 742483
>>742464
В смысле я описал что хочет от тебя препод. То что ты описал это REST API и в твоем случае чисто только если выебнуться перед преподом.
Аноним 13/05/16 Птн 16:00:09 742511
> Ты можешь на прямую из приложения цепляться к БД. В БД 2 пользователя с правами на чтение/запись и только чтение. Соответственно 2 стринга. Если совсем грубо, то при старте спроси кто пользователь, админ или нет и в зависимости от ответа используй нужную стрингу
Не, я и так знал че она хочет. Мои быдлогруппники так и делают. Вопрос был в том, как нормальные люди делают.
Ответы: >>742535
Аноним 13/05/16 Птн 16:17:33 742535
>>742511
так и делают, KISS principle же
Аноним 13/05/16 Птн 16:24:31 742543
>>742464
>Предполагается, что коннекшн стринг с credentials хранится в конфиге приложения.
Да, это хуйня, если речь о клиентском приложении, но в вузе вообще похуй на все, да и сама задача у тебя стоит такая, что насрать.
Аноним 13/05/16 Птн 16:51:08 742595
>>742464
В реальных условиях за такое убивать надо нахуй. А для курсача сойдёт.

Обращаться напрямую к бд некомильфо, потому что
1) Если будешь делать ломающие изменения в структуре таблиц базы - приложения у клиента сломаются и будешь бегать их обновлять. Автообновление решает проблему, но оно становится критичным моментом. Более того, если в логике работы с бд будет найден глюк, будешь волосы рвать на жопе, когда не обновлённые клиенты будут срать в базу.
2) Запросы к базе могут блокироваться фаерволом. А протокол HTTP на 80 порту никто не блокирует.
3) Не секьюрно. Если программу хакнут, смогут натягивать на хуй твою базу с правами залогиненного пользователя.
4) Нельзя сделать версионность API. Ну сложно сделать обратную совместимость средствами бд для старых версий клиента.
5) Геморройно управлять правами доступа на стороне бд. Нет произвольной гибкости, которая может быть нужна по бизнес логике.
6) Нет возможности делать серверные оптимизации вроде кэширования на чтение редко изменяемых данных со сбросом кэша нажатием на одну кнопку из админки в случае его неконсистентности.
7) Нет возможности в будущем мигрировать на другую СУБД
8) Геморрой с драйверами к СУБД на клиенте. А для протокола HTTP никаких дров не нужно.
9) Нельзя вынести хитрую бизнес-логику на сервер. Что добавляет геморроя при портировании приложения на другие платформы.
Аноним 13/05/16 Птн 16:55:25 742605
>>742464
Алсо, если препод предлагает прямой доступ к бд от клиента - интересно, сколько преподу лет? Вероятно, возраст близок к пенсионному.
Ответы: >>742682 >>742714 >>743028
Аноним 13/05/16 Птн 17:15:00 742644
>>742595
А как надо?
ради таких постов и читаю програмач, спасибо анон
Ответы: >>742671 >>742681
Аноним 13/05/16 Птн 17:31:55 742671
>>742644
через промежуточное api
Аноним 13/05/16 Птн 17:47:57 742681
>>742644
Надо иметь серверное приложение (middle tier) и API через HTTP.
Прочитай это
https://ru.wikipedia.org/wiki/%D0%A2%D1%80%D1%91%D1%85%D1%83%D1%80%D0%BE%D0%B2%D0%BD%D0%B5%D0%B2%D0%B0%D1%8F_%D0%B0%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%B0
Аноним 13/05/16 Птн 17:50:47 742682
>>742605
вероятно, группа вопросозадающего состоит из таких себе погромистов, што препод решил, хай делают как-нибудь уже
Ответы: >>742697 >>743028
Аноним 13/05/16 Птн 17:51:49 742683
>>742482
Уравнение стен представь, и убедись, что луч пересекает 2 уравнения ВСЕГДА.
Ответы: >>742685
Аноним 13/05/16 Птн 17:55:37 742685
>>742683
я ради такого дела даже загуглил, что такое уравнение стен
Ответы: >>742745
Аноним 13/05/16 Птн 17:58:42 742688
14631623220840.jpg (22Кб, 198x245)
>>742265
Аноним 13/05/16 Птн 18:03:36 742697
>>742682
Ну это же не повод приучать людей к говну.
Аноним 13/05/16 Птн 18:03:36 742698
>>742464

С чего вдруг днище? Приложения бывают разные. Мне, например, специально пришлось сделать клиент, который работал исключительно на сервере, где была установлена БД. Просто для того, чтобы не было возможности использовать это приложение из других мест.

>>742595

Чушь.
Ответы: >>742700 >>742701
Аноним 13/05/16 Птн 18:06:14 742700
14631627741150.jpg (23Кб, 480x360)
>>742698
>Чушь
Ты опять выходишь на связь, мудило тимлид 5 лет в отрасли? Тебе доступно пояснили, почему это плохо, по пунктам и подробно. Опровергни поимённо, петух.
Ответы: >>742712
Аноним 13/05/16 Птн 18:06:16 742701
>>742698
ну прямого доступа к клиенту-то у клиентов этого клиента не было ж. а так, получается, юзернейм и пароль у тебя перед лицом в каком-нибудь App.config
Аноним 13/05/16 Птн 18:08:39 742704
14631629191930.jpg (5Кб, 240x186)
>>742464
>задача - сделать десктопное клиентское приложение
>Я собираюсь сделать серверную часть и клиентскую. Клиентская будет слать на серверную http-запросы

Не хочу ругаться, но ты не прав. Тебе сказали - клиентское приложение с собственной БД. Зачем HTTP? Зачем вообще n-tier?
Ответы: >>742708
Аноним 13/05/16 Птн 18:12:00 742708
>>742704
Да чтобы все охуели как он может.
Ответы: >>742719
Аноним 13/05/16 Птн 18:16:33 742712
>>742700

Tell me more. У тебя есть почтовый клиент. Это программа. У неё есть своя база данных с контактами и сообщениями. Доступ к ней нужен только с этого компьютера, более того - только этот пользователь должен иметь доступ к базе.

Ты бы строил эту програмку как n-tier? Удачи в трудоустройстве, она тебе понадобится.
Ответы: >>742771
Аноним 13/05/16 Птн 18:17:10 742714
>>742605
>>742595
А мне кажется кое-кто обпрограммировался.

Зачем для локального приложения, с собственной БД поднимать миддл-сервер.

Пиздец просто.
Для локального приложения, которому по логике вообще не нужна должна быть сеть, они городят кучу прослоек.
Ответы: >>742719 >>742727
Аноним 13/05/16 Птн 18:23:44 742719
>>742714
---->
>>742708
Аноним 13/05/16 Птн 18:33:28 742727
>>742714
Это приложение для обучения?тренировки, пускай пишет как можно больше. инб4 они потом и продакшен такую хуйню городят
Ответы: >>742757
Аноним 13/05/16 Птн 18:39:51 742738
>>742464
ТюмГУ?
Ответы: >>743028
Аноним 13/05/16 Птн 18:46:01 742745
>>742685
Ну вот зачем ты докапываешься? Стены выражены через уравнения прямых. Луч всегда пересекает две стены. В отличие от дебила - он встречается только с ближайшей. Вопрос был как узнать с какой, и надо ли для этого вычислять расстояние до каждой из двух стен.
Ответы: >>742759
Аноним 13/05/16 Птн 18:55:20 742757
>>742727
По такой логике, обучать программированию вообще нужно не изучения базовых понятий алгоритмов, переменных\циклов\ветвлений\етк, а сразу с фреймворков\многопоточности\soap
Ответы: >>742764
Аноним 13/05/16 Птн 18:57:44 742759
>>742745
покажи мне я тебе хаос принес, братишка, куда нужно бежать дибилу, дабы он пересек две стены, если бы даже был джаггернаутом из х-менов?
Ответы: >>742760 >>742786
Аноним 13/05/16 Птн 18:58:01 742760
14631658814960.png (9Кб, 400x400)
>>742759
отклеилося
Аноним 13/05/16 Птн 19:00:54 742764
>>742757
да епсь, если раньше для джунов надо было знать чуть-чуть if-else и, возможно иногда, sql, то сейчас джунеоръ - это кандидат с имеющимся коммерческим опытом и знанием фреймворков и прочей елбасы на уровне "как работает". такшо, хай обучаются, пока можно)
Ответы: >>742766
Аноним 13/05/16 Птн 19:03:23 742766
>>742764
Опыт полученный на курсачах и тому подобных проектах - нельзя называть коммерческим. Ровно как и фриланс не имееет никаких данов по типу джуна\миддла\синьора.
Ты можешь быть хоть трижды проффессионалом, но если ты не имел опыта работы в ентерпрайзе и в команде, ты всегда будешь даже еще не джуном.
Ответы: >>742776
Аноним 13/05/16 Птн 19:09:48 742771
14631665884190.jpg (9Кб, 238x211)
>>742712
Ой-вэй, он мне тут про локальные SQLite заливает. Почтовый клиент с базой, ололо.
Ну действительно, я тут другими категориями думаю, другими масштабами.
А этот тимлид ничего кроме локального хранилища на клиенте себе представить не может и даже не вчухал из обьяснений, о каком уровне речь.
Маня ты тупая, в локальных SQLite несколькие пользователи то не поддерживаются, там права доступа на уровне прав доступа к файлу. И не нужно оно там нихуя. В локальных сценариях со встроенными базами ОС справляется, разграничение доступа на уровне файла. Какие там нахуй права админа и пользователя, лол.
Пиздец.
Ответы: >>742811
Аноним 13/05/16 Птн 19:16:23 742776
>>742766
джун/мид - это, в первую очередь, твое умение пользоваться ЯП, стеком технологий, схватывать новый материал на основе имеющихся знаний, принимать определенные решения (под надзором знающих людей) какие-то решения, разве нет?
так вот, есть ли принципиальная разница, знаю я EF из-за того, что написал полтора курсача, или увидел его использование в реальном проекте? нет, ну естественно, разница есть и она, возможно, охуитительная. но ведь какой-нибудь кодэфёст, стейт-трекер, миграции, транзакции, хуйня-маня я знаю? что-то сложнее можно накопать на всяких рдсн и хабрах и нихуя не понять как-то применить, пускай неправильно. а столкнувшись с реальным кодом, воспроизвести все в памяти, догнать пробелы в понимании, задать пару уточняющих вопросов -> и за недели человек узнает на порядок больше того, что накопал за всю свою сраную жизнь
Аноним 13/05/16 Птн 19:21:18 742786
>>742759
Ты меня тралишь да? Компьютер не знает, что там стены, для него это уравнения. Если дебил начинает движение не из середины квадрата (как у тебя на картинке), а из рандомной точки прямоугольника - луч движения пересекает две прямые. Я не знаю как еще тебе это объяснить.
Ответы: >>742796 >>742797
Аноним 13/05/16 Птн 19:28:34 742796
>>742786
компьютер нихуя не знает про уравнения, маня

компьютер это исполнитель инструкций по перекладыванию байтов в памяти
Ответы: >>743887
Аноним 13/05/16 Птн 19:28:41 742797
>>742786
> Ты меня тралишь да?
я не пытался честно

> Если дебил начинает движение не из середины квадрата
я вот и пытаюсь понять, схренали он будет двигаться на стену/ы извне?
Ответы: >>742814
Аноним 13/05/16 Птн 19:46:44 742811
>>742771

Тебе настолько стыдно, что уже других "тимлидами" обзываешь? Тебя же по стилю письма видно, 140К в индустрии. Другими категориями он думает. Такими категориями думают бесплатно.

Ну а про SQLite (кстати, где о нём хоть слово? Может, это MDB? LocalDB? Excel? XML?) и про то, как там пользователей нельзя завести - спасибо, рассмешил под вечер.
Ответы: >>742942
Аноним 13/05/16 Птн 19:49:39 742814
>>742797
>схренали он будет двигаться на стену/ы извне?

Не забывай, что он дебил.
Ответы: >>742820
Аноним 13/05/16 Птн 19:58:16 742820
>>742814
Ну, вообще-то, изначально задача была про сферу и космический корабль. Но от трехмерности задачи у меня вывихнуло мозг, задача про дебила родилась сама собой.
Ответы: >>742823
Аноним 13/05/16 Птн 20:05:05 742823
>>742820
ты "упростил" задачу, убрав одну переменную из уравнений. а по сути не изменилось ничего
Аноним 13/05/16 Птн 23:21:24 742942
>>742811
Расскажи мне, как разграничивается доступ в SQLite, грамотей. Только не пизди много, у меня в одном из мобильных приложений SQLite используется, я в курсе что там и как.
Ответы: >>742964
Аноним 13/05/16 Птн 23:51:12 742956
>>742265
Есть ты используешь Identity в WebApi, то у тебя аутентификация на основе токена, как я понимаю. Я лично работал с именно с такой системой, когда WebApi делал. А почему ты решил, что формы не подойдут? Identity использует токен, а формы - куки. После получения токена от сервера его нужно ручками устанавливать в заголовок аутентификации запроса, куки ведь по сути так же работают. Мы их получает через response, и потом пихаем их в заголовки запроса. Просто в mvc это происходит без нашего вмешательства, а в WebApi придется ручками делать.

Я сам без коммерческого опыта разработки, говорю тебе сугубо со своего опыта над своими проектами, поэтому боюсь, что возможно я говорю что-то неверно и могу привести тебя в замешательство своими неверными(возможно) суждениями.
Ответы: >>743425
Аноним 14/05/16 Суб 00:35:42 742964
>>742942

Мне это даже не интересно. Есть тысяча способов освежевать кошку, и который из них будет выбран для обеспечения многопользовательского доступа - без разницы, хоть таблица users.

Ты слишком зациклен и прямолинеен. К слову, уверен, что у тебя нет сертификации - ты видишь то, чего нет в задаче, и не видишь того, что в ней есть, загоняешь себя в рамки. А любые сертификационные экзамены прежде всего рассчитаны на невнимательность и бескомпромиссность, коих у тебя два мировых запаса.
Ответы: >>743177
Аноним 14/05/16 Суб 07:38:19 743028
>>742605
> Вероятно, возраст близок к пенсионному.
Да.

>>742682
> вероятно, группа вопросозадающего состоит из таких себе погромистов
Это тоже.

>>742738
Нет, другая шарага другого Мухосранска.
Ответы: >>743030
Аноним 14/05/16 Суб 07:45:04 743030
>>743028
Алсо, по теме прямого доступа к бд. Там есть роли типа employee, который может, например, добавить заказ, а есть manager, который может больше всяких штук. Т. е. всю логику придется реализовывать с помощью хранимых процедур или чего-то подобного, а мне это нахуй не надо.
Аноним 14/05/16 Суб 09:58:27 743093
14632199073990.jpg (85Кб, 720x405)
Это не правильный тред для того, чтобы задать такой вопрос, но раз C# тред утонул, то задам здесь.

У меня есть совершенно практическая задача - отправить почтовое сообщение. C#, версия не важна.
Использовал бы я System.Net.Mail, но есть одно но - у меня уже сформировано тело сообщения, со всеми кодировками, включая аттачменты. Таким образом у меня два выхода - либо раскодировать всё и использовать вышеуказанный класс, либо создать SMTP соединение. И то и другое кажется, гхм, неэлегантным и энергозатратным.

В общем - посоветуйте компонент или способ, который позволяет подставлять RAW body?
Ответы: >>743164 >>743208
Аноним 14/05/16 Суб 11:02:53 743164
>>743093
https://msdn.microsoft.com/en-us/library/5k0ddab0%28v=vs.110%29.aspx
> у меня уже сформировано тело сообщения
> string body
Ответы: >>743260
Аноним 14/05/16 Суб 11:12:45 743177
>>742964
>без разницы, хоть таблица users
Вопрос был о разграничении прав на уровне СУБД, манёвренная маня.

>Ты слишком зациклен и прямолинеен
Я говорю о базовых вещах, о понимании предмета, в которых ты плаваешь как дерьмо в проруби.
Ответы: >>743260
Аноним 14/05/16 Суб 12:14:31 743208
>>743093
По каким-то неизвестным причинам MailMessage не умеет загружать себя из raw eml. Поэтому все делают через три пизды вприсядку.
Я использую mimekit.net для парсинга eml, например, потому что в нашей системе приходится обрабатывать дохуя разной почты с разных серверов, сохранять в базу, а потом опять доставать и обрабатывать. Скармливаешь мимекиту твою строку, дальше либо отправляешь почту из мимекита (там есть класс SmtpClient или типа того), или перегоняешь в MailMessage https://github.com/jstedfast/MimeKit/issues/140
Ответы: >>743265
Аноним 14/05/16 Суб 13:01:53 743260
>>743164

Нет. Это содержимое будет перекодировано. Вопрос был про raw.

>>743177
>Вопрос был о разграничении прав на уровне СУБД

Нет, не был. Задача была обеспечить работу с программой двум пользователям, у одного из которых был бы администраторский доступ. Уровень абстракции не важен.

Более того, в задаче не было ничего про СУБД. Было сказано - БД, т.е. база данных. Это может быть даже текстовый файл.
Ответы: >>743749
Аноним 14/05/16 Суб 13:05:14 743265
14632311144920.jpg (101Кб, 750x371)
>>743208

Спасибо, похоже это именно то, что нужно!
Аноним 14/05/16 Суб 14:16:42 743413
>>742595
>4) Нельзя сделать версионность API.
Как там, в 2005?
Аноним 14/05/16 Суб 14:21:47 743425
>>742956
Identity использует что угодно. В том стандартные классы есть и для Cookie-аутентификации. И вообще можно свое написать.
Аноним 14/05/16 Суб 18:45:24 743707
что такое "раздувание кода при использовании generics"?
типа SomeClass<TOp>.SomeMethod<THui>() это прям проблема?
Ответы: >>743752 >>743825
Аноним 14/05/16 Суб 19:46:34 743749
>>743260
Делать сразу по-человечески надо. Работа программиста на C# - это с большой вероятностью создание серверного ПО, с использованием тяжёлых продуктов MS, с авторизацией пользователей Active Directory.
Аноним 14/05/16 Суб 19:47:53 743752
>>743707
Дженерики наоборот сокращают код обычно. Вместо дохуя методов будет один.
Ответы: >>743755 >>743826
Аноним 14/05/16 Суб 19:49:13 743755
>>743752
вот такой мне вопрос задали. гугел полезного не находит. точнее находит выдержки из сообщений на форумах "а это у нас будет раздувание кода"
Аноним 14/05/16 Суб 20:30:24 743791
Друзья, горит диплом. Скиньте проект, +- тянущий на дипломную работу. Уже отчаялся совсем.
Ответы: >>743810 >>745464
Аноним 14/05/16 Суб 21:00:16 743810
>>743791
кек
Аноним 14/05/16 Суб 21:26:10 743825
>>743707
Во время жид-конпеляции(из ила в машинный) вычисляются все используемеые в программе THui - и для каждого копеляется отдельный класс вида SomеClass_TChetkyHui1 и т.д. При их вожности можно огребсти комбинаторный взрыв в коде.
Ответы: >>743903 >>743969
Аноним 14/05/16 Суб 21:27:22 743826
>>743752
Будет один только в байткоде.
Аноним 15/05/16 Вск 00:53:38 743887
14632736185340.jpg (40Кб, 500x366)
>>742796
Твоя бессмысленная констатация очевидного факта сгинула в вечности.
Аноним 15/05/16 Вск 03:46:49 743894
Анон, ньюфаг в треде. Есть ли литература отдельно по клиент-серверной архитектура via C#? Нагуглил пока только WCF фреймворк (есть ли по нему что-то годное, кроме мсдн?) и уебищные реализации через tcp-client/tcp-listener (ну это совсем шквар, байтоебство, охуеть). Да и wcf, насколько я понял, скорее для разработки веб-сервисов, а не для обеспечения общения коиента с серваком. Вощем, я запутался, двощ, выручай.
Ответы: >>743900 >>744273
Аноним 15/05/16 Вск 04:37:59 743900
>>743894
> для обеспечения общения коиента с серваком
HTTP, REST, JSON? Библиотек есть.
Аноним 15/05/16 Вск 04:49:54 743903
>>743825
thanx
Аноним 15/05/16 Вск 07:27:47 743969
>>743825
Не можно, потому что жидом конпеляется отдельный класс для каждого используемого value типа и один - на все reference типы.
Ответы: >>743971
Аноним 15/05/16 Вск 07:34:14 743971
>>743969
так, епт, проблема в чем?
Ответы: >>743979
Аноним 15/05/16 Вск 07:41:06 743979
>>743971
Никакого комбинаторного взрыва не будет, вот я к чему.
Аноним 15/05/16 Вск 13:50:20 744273
>>743894
> для разработки веб-сервисов, а не для обеспечения общения коиента с серваком
ЩИТО
Ответы: >>745282
Аноним 15/05/16 Вск 13:56:27 744277
Посоны, как реализовать итерационный обход в глубину двоичного дерева? В ноде есть значение и правый, левый потомок. гуглил, не работает
Ответы: >>744317
Аноним 15/05/16 Вск 14:51:42 744317
>>744277
Наркоман штоле сука https://en.wikipedia.org/wiki/Tree_traversal#In-order_2
Ответы: >>744337
Аноним 15/05/16 Вск 15:10:14 744337
14633250147550.gif (3684Кб, 378x300)
>>744317
Проблема разрешается после озвучивания тупого вопроса, это всегда работает.
Аноним 15/05/16 Вск 20:30:37 744676
Короче. Есть массив строк. Строки содержат цифры. Как с помощью LINQ преобразовать этот массив в массив int или какую коллекцию с <int>?
Ответы: >>744682
Аноним 15/05/16 Вск 20:36:01 744682
>>744676
Select(int.Parse)
Ответы: >>744685 >>744882
Аноним 15/05/16 Вск 20:43:50 744685
>>744682
Спасибо выручил уже час над этим сижу.
Ответы: >>744688
Аноним 15/05/16 Вск 20:45:23 744688
>>744685
хуево сидишь значит
Ответы: >>744690
Аноним 15/05/16 Вск 20:46:10 744690
>>744688
3 часа в LINQ, хотя это не оправдание, наверное
Ответы: >>744691
Аноним 15/05/16 Вск 20:48:06 744691
>>744690
ну гугел, гугел же
Ответы: >>744697
Аноним 15/05/16 Вск 20:54:22 744697
>>744691
Да там ом одни OfType<T> и Cast :(
Аноним 16/05/16 Пнд 00:21:39 744789
Аноны, вопрос от ньюфага.
Есть файл txt с 4 столбцами, но с неизвестным количеством строк. Открываю файл батоном с помощью OpenFileDialog в winforms. Как дальше мне записать каждый столбец файла в отдельный массив?
Ответы: >>744791
Аноним 16/05/16 Пнд 00:32:16 744791
>>744789

Смотря насколько там "неизвестное" количество строк. Либо File.ReadLine() либо File.ReadAllLines(), после чего полученный массив строк разбиваешь на столбцы. Если файл может быть большим, то обрабатываешь построчно, не загружая весь массив в память.

Можно сделать и быстрее, при помощи regular expressions, но если быстро и грязно - см. выше.
Ответы: >>744806 >>744808
Аноним 16/05/16 Пнд 02:27:01 744806
>>744791
Спасибо. Попробовал, но не вышло ничего у меня.
Вот код http://pastebin.com/tJ0djyZ6
Когда дохожу до Convert.ToDecimal выдает: Необработанное исключение типа "System.FormatException" в mscorlib.dll
Как справиться с этим?
Ответы: >>744811 >>744831 >>744887
Аноним 16/05/16 Пнд 02:35:28 744808
>>744791
"неизвестное" количество строк от 90 до 150 примерно
Аноним 16/05/16 Пнд 03:46:16 744811
>>744806
Так дай пример текстовика
Ответы: >>744814
Аноним 16/05/16 Пнд 03:54:19 744814
>>744811
вот
http://my-files.ru/8km7qt
Аноним 16/05/16 Пнд 04:57:24 744831
>>744806
Запятая смущает наверное. Попробуй сделать. Replace(",", ".") на строку, которую конвертишь. Или с culture info побалуйся
Ответы: >>744863 >>744887
Аноним 16/05/16 Пнд 07:01:47 744863
>>744831
Попробовал запятую на точку поменять непосредственно в файле - результата никакого.
Соответственно, Replace тоже не помогает(
Ответы: >>744867
Аноним 16/05/16 Пнд 07:21:26 744867
>>744863
попробуй парсить через кастомную культуру:
double.Parse("0,1",NumberStyles.AllowDecimalPoint,new CultureInfo(1052){NumberFormat = new NumberFormatInfo{NumberDecimalSeparator=","}})
Аноним 16/05/16 Пнд 08:01:20 744882
>>744682
Лучше

.Select(s => {
int i;
if (int.TryParse(s, out i) {
return (int?)i;
}
return null;}).Where(i => i != null).Select(i => i.Value)

Это предотвратит выброс исключения при наличии строк без цифр, такие строки будут проигнорированы.
Ответы: >>744887
Аноним 16/05/16 Пнд 08:16:44 744887
>>744806
Научись уже в точки станова.
Сплит неправильный. Лучше .Split(new char[] { ' ', '\t', '\n' }, StringSplitOptions.RemoveEmptyEntries);

>>744831
В рашен культуре надо наоборот точку заменять на зпт.

>>744882
Г-ди, какая дрисня.
Ответы: >>744897
Аноним 16/05/16 Пнд 08:40:54 744897
>>744887
Дрисня у тебя в голове.
Ответы: >>744898
Аноним 16/05/16 Пнд 08:43:13 744898
>>744897
это рили ебола, спрячь больше и не показывай, а мы сделаем вид, что ничего не было
Ответы: >>744906
Аноним 16/05/16 Пнд 09:01:19 744906
>>744898
Потому что ты так скозал? Изволь раскритиковать по пунктам, юное дарование.
Ответы: >>744908 >>744914
Аноним 16/05/16 Пнд 09:03:17 744908
>>744906
пункт 1. ты - хуй

пункт 2. см. п.1
Ответы: >>744911
Аноним 16/05/16 Пнд 09:11:12 744911
>>744908
Ясно.
Аноним 16/05/16 Пнд 09:25:30 744914
>>744906
Ладно.

Вот дрисня получше:
.Select(s => {
int i;
if (!int.TryParse(s, out i) {
return 0;
}
return i;});

Без всяких нулов.
Ответы: >>744915 >>744931
Аноним 16/05/16 Пнд 09:27:28 744915
>>744914
еще один
а если будут нули среди элементов коллекции наряду с неверно-распарсенными?
Ответы: >>744923
Аноним 16/05/16 Пнд 09:34:21 744923
>>744915
Ты какой-то странный.
Вместо неверных элементов будут нули, кол-во значений всегдв будет ожидаемо.
В случае с нулами прога тихо захавает нулы и вместо 10 интов на выходе, допустим, будет 8. Это хуже.
Ответы: >>744924 >>744934
Аноним 16/05/16 Пнд 09:38:34 744924
>>744923
ну, если ты смог заметить, я не высказывал слова одобрения варианту TryParse-WhereNotNull именно потому, что в недопустимой ситуации, при которой валить метод и отменять операцию, происходит пропускание результата

в твоем случае происходить ровным счетом то же самое, однако с единственной поправкой - выравниванием результирующей таблицы
Ответы: >>744925 >>744927
Аноним 16/05/16 Пнд 09:39:57 744925
>>744924
--> происходит пропускание неугодного результата
Аноним 16/05/16 Пнд 09:43:22 744926
Aggregate используйте, макаки(он же reduce, он же foldl)
Ответы: >>744927
Аноним 16/05/16 Пнд 09:48:42 744927
>>744924
Нет, в твом случае есть еще дикая линк-дрисня. азазаза

>>744926
Пошел нахуй фп-петушок. Весь шарп зашкварили своими переименованиями очевидных вещей и записью их в уёбищный стрелочный синтаксис.
Ответы: >>744930
Аноним 16/05/16 Пнд 09:50:08 744930
>>744927
> в твом случае есть еще дикая линк-дрисня
шо?
Аноним 16/05/16 Пнд 09:55:45 744931
>>744914
Ты дурак? 0 - это легитимное значение. Nullable для того и нужны, чтоб помечать отсутствующее блядь значение.
Аноним 16/05/16 Пнд 09:58:09 744934
>>744923
>В случае с нулами прога тихо захавает нулы и вместо 10 интов на выходе, допустим, будет 8. Это хуже.
И это нормально. Можно нулы не фильтровать и выдавать их на выход. Но это зависит от того, что по задаче нужно.
Аноним 16/05/16 Пнд 11:54:46 745014
Asp.net, нужно при введении текста в контрол исправлять текст в русской раскладке на текст в английской (пользователь вводит йцукен, а получается qwerty).
Пытался пороться в жаваскрипты, сделал вот такую функцию (где autoKeyboardLang - другая функция, которая собственно конвертирует строку)
function ClientTextChanged(sender, args) {
sender._text = autoKeyboardLang(sender._text)
}

добавляю ее в событие OnClientTextChanged или в OnClientKeyPressing контрола, но не работает.
Что делать?
Ответы: >>745511
Аноним 16/05/16 Пнд 16:17:17 745222
Уже год изучаю C#. Разобрался достаточно хорошо в языке, но есть проблема с ООП. Когда дело доходит до написания чего-либо сложного недостает понимания необходимых абстракций, и код со временем превращается либо в жутко накрученный, либо неподдерживаемый. Подскажите, как это перебороть ? Для примера пишу клиент для сайта ставок. Разобрал подключение и запросы но не знаю как оформить клиент с удобным интерфейсом и расширяемостью в случае надобности.
Ответы: >>745240 >>745270
Аноним 16/05/16 Пнд 16:28:52 745236
И все же, что лучше джуниору: писать велосипеды или учить библиотеки?
Ответы: >>745240
Аноним 16/05/16 Пнд 16:31:51 745240
>>745222
читать умные книжки о больших делах и ничего не понимать

>>745236
писать велосипеды и учить библиотеки. конечно, не охуевать до уровня написания собственного IIS или ASP.NET MVC
Ответы: >>745359
Аноним 16/05/16 Пнд 17:03:11 745270
>>745222
Попробовать применить DDD подход?
https://www.youtube.com/watch?v=6hkXkz4aQzQ[РАСКРЫТЬ]

Только не факт что это поможет, если ты в приметной области хорошо не разбираешься.
Аноним 16/05/16 Пнд 17:05:11 745272
Второе видео (чуть больше кокретики) https://www.youtube.com/watch?v=3oO7gd16Xp0[РАСКРЫТЬ]
Аноним 16/05/16 Пнд 17:25:24 745282
>>744273
Ну бля, ну нюфаг же, няша, не бей, лучше обоссы.
Аноним 16/05/16 Пнд 19:29:39 745359
>>745240
asp.net mvc нехуй делать написать.

там само сложное - Razor и другая шаблонизация
Ответы: >>745379
Аноним 16/05/16 Пнд 19:56:33 745379
>>745359
сказал синьор 99999999999999999 к в месяц
Аноним 16/05/16 Пнд 22:05:58 745464
>>743791
Вспомнил свой говнодиплом на бакалаврате.
За 3 дня оформил, мне диплом мой научрук скинул.
Аноним 17/05/16 Втр 00:31:00 745511
>>745014

Можешь вставить updatepanel, например, и менять текст на стороне сервера, без обновлений всей страницы.
Аноним 17/05/16 Втр 01:03:08 745519
14634469888090.jpg (7Кб, 235x215)
>>741981
Ебанный в рот, полон /pr специалистов, никто не сказал что это нихуя не тривиальная задача для ньюфага
Ответы: >>745753
Аноним 17/05/16 Втр 05:12:07 745553
>>741981
>1/3 кинетической инергии стене
Довольно странное допущение, этот коэффициент не зависит от угла падения?
И вообще странная задача. Ты хотел потренироваться в collision detection? Для такой постановки задачи нет нужды его использовать.
Запоминаешь начальную координату, скорость и список повреждённых стен.
В цикле:
1. Если не хватает скорости повредить стену то сдаёшься санитарам.
2. Определяешь в какую из стен он ударится. Для такой стены величина (расстояние до стены)/(скорость движения к этой стене) будет минимальной из положительных.
3. Смотришь на скорость и состояние стены. Есть три варианта: отскочить, повредить и убиться. Если повредил апдейтишь состояние стены.
4. Вычисляешь координаты, в которых ты врезаешься в стену, делаешь их текущими. Апдейтишь вектор скорости после отражения и передачи энергии, делаешь эту скорость текущей.
Следующая итерация.
Аноним 17/05/16 Втр 05:31:35 745563
>>737794
Для переноса legacy говна с VB6 на .NET. У пиндосов такого до хуя. У нас же больше были популярны паскали, поэтому писали на Delphi.
Ответы: >>745755
Аноним 17/05/16 Втр 05:34:53 745568
Ананасы, объясните за Entity Framework, не могу вдупить. Как сделать чтобы параметры подключения (ConnectingString) брались из конфиг файла, а не были зашиты в коде? И чтобы можно было по-прежнему ручками рисовать таблицы в дизайнере.
Ответы: >>745602 >>745618
Аноним 17/05/16 Втр 06:25:16 745602
>>745568
в параметр конструктора DbContext вешаешь название ConnectionString из соответствующей секции конфига
Аноним 17/05/16 Втр 06:41:16 745614
Где можно попрактиковать свои навыки на C#?
Потреннироваться и узнать что-то новое..
-
А еще ищу анона чтобы вместе замутить какой либо проект, одному хардово и скучно.
Фейко-мыло: anon.ananasov.pr@yandex.ru
Давай анончик, жду тебя :3
Ответы: >>745631
Аноним 17/05/16 Втр 06:53:27 745618
>>745568
>рисовать таблицы
Какие нахуй таблицы, иди классы проектируй, тебе нельзя таблицы то рисовать.
Аноним 17/05/16 Втр 07:20:45 745631
>>745614
Ставишь Visual Studio и тренируешься.
Ответы: >>745711
Аноним 17/05/16 Втр 09:51:26 745711
>>745631
сначала тренируешься ставить visual studio
Ответы: >>745763
Аноним 17/05/16 Втр 10:30:44 745752
Есть тут аноны из epam или знающие скажите стоит ли вкатываться в .net через их курсы? Что спрашивают на собеседовании чтобы попасть на курсы? Можно ли при хорошем раскладе укатить через несколько лет из рашки, скажем в Болгарию или Чехию?
Ответы: >>745767 >>750292
Аноним 17/05/16 Втр 10:32:19 745753
14634811396650.jpg (20Кб, 340x255)
>>745519

Каков вопрос, таков ответ, не находишь? Научись задавать вопросы, чтобы получать удовлетворительные ответы.
Ответы: >>745977
Аноним 17/05/16 Втр 10:33:57 745755
>>745563

VB и VB.NET слишком разные, никакой копипасты. Мне после VB было проще изучить C#, чем дёргать этого Франкенштейна.
Аноним 17/05/16 Втр 10:37:59 745763
14634814799000.jpg (33Кб, 728x408)
>>745711

Для начала было бы неплохо потренироваться скачивать Visual Studio. Не так просто, как кажется. Самому сложно, анончики, кто составит компанию?
Аноним 17/05/16 Втр 10:44:27 745767
>>745752

Забудь о курсах, на которые надо ходить и на которые надо "попадать". Всё доступно в сети, притом в качестве не хуже "нормальных" курсов.

Проблема в том, что обычные курсы ведутся теми, кто не программирует в реальной жизни, у них тупо времени не хватает. Мне в своё время удавалось вести собственные проекты и при этом умудряться обучать других, но это скорее исключение. А видео курсы создаются обычно теми, кто или работает постоянно программистом или вообще создал описываемые технологии. Так, на channel9 бесплатно, без смс есть обучающие видео от Андерса Хейльсберга. Того, что создал c#.
Ответы: >>745785
Аноним 17/05/16 Втр 11:07:26 745785
>>745767
У них курсы с последующим трудоустройством, поэтому я больше за компанию спрашивал, а не за курсы.
Аноним 17/05/16 Втр 14:04:49 745970
>>740757
Я имел ввиду то, что с помощью этого механизма, ты полностью подставишь свою реализацию.
К сожалению тебе придется копировать асм код(если все захардкожено) если бы хардкода не было можно было бы просто заменить геттер, но увы.

Так же, если тебе нужно это сделать разово, ты можешь использовать dnSpy, как написано в шапке в нем можно редактировать уже откомпиллированный код и отлаживать его.

Ну лично у меня других идей нет, к сожалению.
Надеюсь помог.
Аноним 17/05/16 Втр 14:16:55 745977
>>745753
Ну, так-то, да.
Аноним 17/05/16 Втр 18:18:09 746195
Как будет выглядеть следующее LINQ выражение в методах расширения в LINQ выражение в синтаксисе SQL?
File.ReadLines(path).First().Split(new char[] { ' ' }).Select(int.Parse).Where(i => i % 2 == 0).Sum()
Аноним 17/05/16 Втр 18:43:34 746235
>>746195
Решарпер умеет такое преобразовывать туда-обратно
Аноним 17/05/16 Втр 18:45:41 746240
>>746195
Что еще за сплит нью чар?
Аноним 17/05/16 Втр 18:46:49 746241
>>746195
Я ты типа хочешь сумму четных чисел в строке найти?
Ответы: >>746257
Аноним 17/05/16 Втр 19:00:52 746257
>>746241
Да. Именно сумма четных в строке с помощью LINQ в синтаксисе SQL. Это важно
Ответы: >>746263
Аноним 17/05/16 Втр 19:06:45 746260
>>746195
Скорее всего это транслируется в
>NotSupportedException: Method 'System.String[] Split(Char[])' has no supported translation to SQL.
Ответы: >>746264 >>746265
Аноним 17/05/16 Втр 19:10:22 746263
>>746257
"243698".Select(x => Char.GetNumericValue(x)).Where( x => x % 2 == 0).Sum()
Ответы: >>746270
Аноним 17/05/16 Втр 19:11:39 746264
>>746260
Хотя нет, там будет просто select top (1), а потом просто твой код выполнится как Linq to Objects
Ответы: >>746265
Аноним 17/05/16 Втр 19:13:09 746265
>>746260
>>746264
Нахуя вообще сплитить строку на чары? Строка это уже массив чаров.
Ответы: >>746269
Аноним 17/05/16 Втр 19:16:58 746269
14635126182860.png (9Кб, 699x57)
>>746265
Но там же по пробелу сплитится...
Ответы: >>746271
Аноним 17/05/16 Втр 19:17:17 746270
>>746263
да это не та форма, так и я могу :(. Нужно что-то вроде from s in /бла-бла/ where /бла-бла-бла/ le /бла-бла/ select s /бла-бла/;
Ответы: >>746308
Аноним 17/05/16 Втр 19:18:59 746271
>>746269
Ну если не лезть в хтмл то не видно. Тогда почему не просто Split(' ')?
Ответы: >>746273 >>746309
Аноним 17/05/16 Втр 19:20:22 746273
>>746271
Может автор не очень умный, никто же не знает.
Аноним 17/05/16 Втр 19:55:48 746308
>>746270

Ещё один. Научись вопросы задавать, чтобы тебе могли сразу ответить.
Ответы: >>746335
Аноним 17/05/16 Втр 19:57:41 746309
14635150610910.jpg (189Кб, 979x699)
>>746271
Ответы: >>746312 >>746314
Аноним 17/05/16 Втр 20:00:36 746312
14635152366790.png (19Кб, 472x364)
>>746309
Ответы: >>746315
Аноним 17/05/16 Втр 20:01:43 746314
>>746309
Если у тебя 1 элемент, то не надо массив создавать.
Ответы: >>746317
Аноним 17/05/16 Втр 20:02:07 746315
>>746312

Ну да. Char[] = array. Char(' ') = Char. Single char. Not array.
Аноним 17/05/16 Втр 20:02:42 746317
>>746314

Если так, то за меня это сделает компилятор. Та же хрень, никакого криминала.
Ответы: >>746321
Аноним 17/05/16 Втр 20:04:32 746321
>>746317
Ну на лабу пойдет. В нормальном проекте по рукам надают.
Ответы: >>746325
Аноним 17/05/16 Втр 20:06:43 746325
14635156036820.jpg (57Кб, 500x498)
>>746321

Да не надают. Какая разница, что компилятор за тебя допишет. Может вздохнут грустно, про себя, но до рукоприкладства не дойдёт.
Ответы: >>746330 >>746337
Аноним 17/05/16 Втр 20:11:54 746330
>>746325
>вздохнут
>предполагая что будут читать
Ответы: >>746373
Аноним 17/05/16 Втр 20:13:50 746335
>>746308
from blyat select huelect
что сложного-то
Да и сумму как ты выведешь без текучего синтаксиса
Аноним 17/05/16 Втр 20:15:02 746337
>>746325
Ну ок, тогда просто на работу не зайдут.
Аноним 17/05/16 Втр 20:44:06 746373
>>746330

Ну, я читаю код своих орлов. Порой занимательно.
Аноним 18/05/16 Срд 07:22:16 746551
Сап программач.
Делаю чатик по этому примеру http://xnim.ru/blog?id=28.
После закрытия программы, процесс остается висеть, видимо какой-то поток не завершает работу. Как её завершить? При этом надо же ещё закрыть порт, значит просто прекратить работу потока нельзя.
Ответы: >>746643 >>746719
Аноним 18/05/16 Срд 09:45:55 746643
>>746551
Ответы: >>746647
Аноним 18/05/16 Срд 09:48:30 746647
>>746643
Ебучий двачеклиент

Завершение основного потока приложения влечет за собой убивание фоновых.
Ответы: >>746651
Аноним 18/05/16 Срд 09:51:31 746651
>>746647
Да, я уже сделал этот поток фоновым и он завершается. Но как мне закрыть порт, перед завершением потока?
Ответы: >>746704
Аноним 18/05/16 Срд 10:49:59 746704
>>746651

socket.Shutdown(SocketShutdown.Both);
socket.Close();

это, вроде бы, закрывает соединение вместе с портом, не?
Ответы: >>746708
Аноним 18/05/16 Срд 10:51:36 746708
>>746704
Как поток поймет, что пора выполнить этот код?
Ответы: >>746720 >>746726
Аноним 18/05/16 Срд 10:59:13 746719
14635691539340.jpg (14Кб, 409x128)
>>746551

Используешь using?
Ответы: >>746730
Аноним 18/05/16 Срд 10:59:18 746720
>>746708
не уверен, что эту задачу нужно взваливать на поток. это должно делать приложение перед тем, как помереть
Ответы: >>746726 >>746730
Аноним 18/05/16 Срд 11:11:37 746726
>>746708
Поробуй послать ему сигнал из основного потока. ManualResetEvent в помощь.
Но вот этот анон прав >>746720. Основной поток должен правильно прибить все остальные.
Ответы: >>746730
Аноним 18/05/16 Срд 11:13:55 746730
>>746719
Не использую, а надо?

>>746720
>>746726
Спасибо, принцип понял.
Ответы: >>746743
Аноним 18/05/16 Срд 11:29:38 746743
14635709784960.jpg (78Кб, 800x600)
>>746730

А сам как думаешь?
Аноним 18/05/16 Срд 12:08:39 746780
Плоха ли идея запилить связаный список в БД? Есть таблица с страницами, которые принадлежат разным книгам. Нужно хранить и изменять порядок страниц.
Ответы: >>746784 >>746816
Аноним 18/05/16 Срд 12:10:15 746784
>>746780
колонка Order для таблицы страниц чем-то не устраивает?
Ответы: >>746789
Аноним 18/05/16 Срд 12:13:57 746789
>>746784 Ну придется сдвигать ордер у всех страниц следующих за изменяемой. В связном списке же при перемещении максимум 4 записи, кроме изменяемой.
Ответы: >>746808 >>746813
Аноним 18/05/16 Срд 12:28:57 746808
>>746789
и не знаю, чем это плохо потому, как иначе тебе придется в таблице хранить две нуллабл ссылки на эту же самую таблицу

почитай тут, может что найдешь интереснова
http://dba.stackexchange.com/questions/5683/how-to-design-a-database-for-storing-a-sorted-list
Аноним 18/05/16 Срд 12:32:47 746813
>>746789
Почему 4, у тебя doubly linked list штоле? На чем связи делаешь, на внешних ключах?
Аноним 18/05/16 Срд 12:35:15 746816
>>746780

Если тебе так не хочется изменять много записей (хотя в чем проблема?), то просто храни ID записи о предыдущей странице. Таким образом у тебя будет не номер страницы, а информация о предыдущей.
Аноним 18/05/16 Срд 12:44:18 746827
Нужны ли сегодня C# программисты? Я почему спрашиваю, когда-то я сидел на C#, но в те годы требовались в основном C++ и питонисты.

Затем стал набирать JS и я ухватив первые намёки бросился в эту степь. Стал клепать заказики на фрилансере, завёл себе неплохой источник денег. Постепенно трудозатраты стали выше, как и требования к работе, появилась туча библиотек, постоянная необходимость менять и править скрипты после очередного обновления ключевой библиотеки.

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

Затем таких макак стало больше, особенно этому способствовал стаковерфлоу и подобные местечки, предлагающие готовые решения на все случаи обычно практики. Даже петушара, не знающий алгоритмов сортировки, мог выполнять практически любую работу написав лично лишь 10% от всего кода. Как правило можно было просто скопировать и адаптировать готовое решение.

Конкуренция выросла, гонорары упали до уровня уборщика, а с учётом текущего курса сравнялись со стипендией в сраном коледже. Выжить на такие деньги, тратя кучу времени стало проблематично.

И вот я заметил, что и до моей мухосрани дошёл c#, на нем стали программировать станки и писать софт на заводах. Неужели наконец-то понадобились c# специалисты в этой стране и получают ли они приемлемые (от 2000$) деньги или до сих пор единственный выход для руспрограммиста - свалить за границу и просиживать офисное кресло за 4-6к вечнозелёных?
Аноним 18/05/16 Срд 12:46:07 746830
>>746827
Хочу добавить ещё одно. Опен сорс обесценил труд программиста. Как бы это не было круто, брать и слегка переделывать готовое под себя это в целом сделало хуже всем нам.
Аноним 18/05/16 Срд 13:10:16 746856
>>746827

Всё хорошо, только пост совсем не по теме.
Аноним 18/05/16 Срд 13:18:36 746866
>>746827
.NET нужен в хорошем Enterprise по своей большой сути. калькуляторы писать немного не в тему
также есть Unity3D и его геймдев

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

если ты хочешь во фриланс - добро пожаловать в пэхапэ/руби а лучше - спроси в вам перезвонят
Аноним 18/05/16 Срд 13:26:39 746876
14635779999690.jpg (34Кб, 604x417)
Снова спрошу про удаленку в рашке. Как обстоят дела с этим? Есть у кого саксес стори? или ансаксес
Ответы: >>746878 >>746914
Аноним 18/05/16 Срд 13:32:17 746878
>>746876
ну я на удаленку работаю, на C#, на рашкинских правда. две конторы подряд уже так.

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

если запад, upwork - то там пробиться сложно. там индусов дохуя а работы именно на C# мало. я еще пробовал в toptal, но не взяли. может еще попробую.
Ответы: >>746895 >>747346
ASP.NET Core RC2 Аноним 18/05/16 Срд 13:44:36 746892
14635790761130.png (10Кб, 400x400)
14635790761131.png (59Кб, 1208x634)
14635790761132.png (249Кб, 1786x1090)
>>746827
Кстати анончики, поздравляю с выходом RC2
https://blogs.msdn.microsoft.com/webdev/2016/05/16/announcing-asp-net-core-rc2/
Скачать можно здесь http://dot.net/ редирект на microsoft.com

А тут еще JetBrains выкатили новый Rider (C# IDE для OS X / Linux / Windows с возможностями решарпера).

Минусы: DNX проекты там все так же не работают.
Плюсы: наконец то можно редактировать/собирать Xamarin Android/iOS проекты на OS X APK/IPA делать нельзя.
Так что н#х#й Xamarin Studio для финально сборки/дебага конечно юзать придется

Рефакторинги из решарпера почти все работают и коде-комплить почти не тормозит.

.NET #FOREVER #ЖИВЕЕ_ВСЕХ_ЖИВЫХ
Ответы: >>746917
Аноним 18/05/16 Срд 13:45:32 746895
>>746878
Понятно, upwork-ом сам заинтересовался, но боюсь сильной конкуренции и английского языка. Ты на удаленке в шатате, по контракту или вообще никак?
Ответы: >>746914
Аноним 18/05/16 Срд 14:01:33 746914
>>746876
>>746895

Соответствующий тред есть. К .net и c# не имеет отношения.
Аноним 18/05/16 Срд 14:06:03 746917
>>746892
Они заебали, я хочу из вижуал студио, нажать кнопку паблишь для Линукс х64 и чтобы он мне полностю собрал комплект приложение + рантайм и чтобы на сервере устанавливать ничего не пришлось. Уже рц2, а так все еще сделать нельзя.
Ответы: >>746937
Аноним 18/05/16 Срд 14:32:33 746937
>>746917
А как же nginx, redis, postgress и тд?
На голом ASP.NET можно разве что хеловорды делать.

Я делаю через докер-контейнер, для этого достаточно что бы на сервер стоял docker.
У меня так сразу в комплекте идет: код (комп. на лету) + runtime + nginx (настроенный).

Потом разворачивать (и обновлять) даже на только что созданной VPS можно за минуты.
И соответственно переносить с сервера на сервер (или др хостинг) становится легко.
Ответы: >>747032 >>747094
Аноним 18/05/16 Срд 16:14:19 747032
>>746937
запилишь гайд?
>>746937
нюфажек
Аноним 18/05/16 Срд 17:25:36 747094
>>746937
Ну у тебя в образе уже dnx залитый?
Ответы: >>747097 >>747171
Аноним 18/05/16 Срд 17:27:25 747097
>>747094
Ну да, в принципе ты написал рантайм. В глаза ебусь.
Аноним 18/05/16 Срд 18:39:31 747171
>>747094
Там же есть базовый образ https://hub.docker.com/r/microsoft/dotnet/
"наследуешся" от него и у тебя уже установленный и настроенный dotNET (бывший DNX).
Ответы: >>747211
Аноним 18/05/16 Срд 19:19:29 747211
>>747171
Надо поиграться с докером. Никогда его не ковырял. А как туда код-то заливать из под винды? Через самбу?
Аноним 18/05/16 Срд 21:10:41 747346
>>746878
ты десктоп работу ищешь? По аспу вроде много работы на апворке
Ответы: >>747465
Аноним 19/05/16 Чтв 06:47:15 747465
>>747346
Асп, естественно.
Аноним 19/05/16 Чтв 07:59:33 747504
Как не сойти с ума используя MSDN?
Ответы: >>747510
Аноним 19/05/16 Чтв 08:16:28 747510
>>747504
я думал, msdn читать нужно
Ответы: >>747530
Аноним 19/05/16 Чтв 08:47:11 747530
>>747510
В каком порядке? Там бессвязный бред.
Ответы: >>747537
Аноним 19/05/16 Чтв 09:09:36 747537
>>747530
начнем с того, что именно тебе нужно?
Ответы: >>747564
Аноним 19/05/16 Чтв 09:51:17 747564
>>747537
Начну с того что навигация в https://msdn.microsoft.com/library не соответствует реальной структуре документации. Перебрасывает на различные порталы и и их подразделы.

Открываю библиотеку, вижу "Каталог API", вижу подраздел "Windows и Windows Phone", кликаю по ".NET API for Windows Phone". Хлебные крошки говорят что я попал в главный раздел "Приложения для Windows". Меню слева - это ведь хлебные крошки должны быть? Как я понял хлебные крошки работают на этом сайте(топ-корпорации тащемта) не везде. Хорошо, думаю давай покликаю по разделам слева. Попадаю на какие-то рекламные "лендинги". Перехожу обратно, кликаю на "Приложения для Windows" попадаю в "Разработка приложений в стиле Metro для Windows". Как вернуться обратно думаю на страницу ".NET API for Windows Phone". И вот хуй. Это невозможно. И это везде так в MSDN.
Ответы: >>747592
Аноним 19/05/16 Чтв 10:03:16 747570
>>736660 (OP)
>>736660 (OP)
Сап, сишарпач.
Есть ли смысл учить юнити? С какой вероятностью он пригодится в работе?
Так-то хочу попробовать в андроид разработку вкатиться, можт, сразу взяться за ксамарин?
Но есть старая мечта делать игрульки. Есть ли смысл, или в итоге получиться, что выучил чисто для себя?
мимо нюфаг с#
Аноним 19/05/16 Чтв 10:12:00 747576
>>747570
>получится
Фикс
Аноним 19/05/16 Чтв 10:48:09 747592
>>747564
иди нахуй крч, доебался до breadcumbs у майкрософт. у ms винда - ебанутая ось, а тут сайт виноват айяяй
Аноним 19/05/16 Чтв 10:49:22 747593
>>747570
есть, юнити развивается неплохо
насчет работы и вакансий - не скажу
Аноним 19/05/16 Чтв 10:49:38 747594
>>747570
Гейдев живее всех живых, но клепая сайтики выхлоп ощутимо большн
Ответы: >>747646
Аноним 19/05/16 Чтв 11:53:30 747646
>>747594
В любом случае веб не для меня.
И что, в рашке тоже жив? Сирсли?
Аноним 19/05/16 Чтв 16:07:56 747824
При присвоении новой коллекции CollectionChanged не срабатывает. Можно ли как-то побороть кроме как использовать метод Load?
http://pastebin.com/m7NDXWJM
Ответы: >>747878
Аноним 19/05/16 Чтв 16:37:36 747843
Не вижу разницы между анонимными методами и лямбда-выражениями кроме формы записи. Чяднт?
Ответы: >>747848 >>748169
Аноним 19/05/16 Чтв 16:43:44 747848
14636762248010.jpg (48Кб, 694x203)
>>747843
Вот и вся разница.
Ответы: >>747931
Аноним 19/05/16 Чтв 17:25:26 747878
>>747824

Естественно, ты же не изменяешь коллекцию и не добавляешь новые элементы. Items.Add не годится?
Ответы: >>747912
Аноним 19/05/16 Чтв 18:05:09 747912
>>747878
Не ударит ли это по производительности с большим количество элементов и большим количеством полей в базовом Item?
Ответы: >>747927
Аноним 19/05/16 Чтв 18:19:23 747927
14636819634230.jpg (80Кб, 536x536)
>>747912

Судя по тому, что ты ещё этого не попробовал, проблема с производительностью у тебя самого.
Аноним 19/05/16 Чтв 18:23:55 747931
>>747848
всегда считал лямбда выражения анонимными методами
Ответы: >>748166
Аноним 19/05/16 Чтв 19:34:51 747983
14636864916780.png (278Кб, 474x473)
Аноны , у кого есть торрент Видео курс C# Стартовый от Александра Шевчука. Всю помойку перерыл , везде только exe.
Ответы: >>747988 >>748069
Аноним 19/05/16 Чтв 19:39:29 747988
>>747983
Itvdn ищи на nnmclub
Ответы: >>747992
Аноним 19/05/16 Чтв 19:44:28 747992
>>747988
Я помню что от туда качал , но сейчас же траблы с этим трекером
Аноним 19/05/16 Чтв 21:12:25 748028
>>747570
Все же бамп вопросу.
Вакансий на юнити и на андроид-разработчика поровну. Вот два стула - куда пойти.
Оба реально стоят того?
Ответы: >>748061 >>748168
Аноним 19/05/16 Чтв 22:28:14 748061
>>748028
Вопрос закрыт, я уже все решил сам.
Ответы: >>748072
Аноним 19/05/16 Чтв 22:56:20 748069
>>747983
У меня на жестком диске лежат все эти лекции, но я тебе его не отдам.
Ответы: >>748354
Аноним 19/05/16 Чтв 22:57:05 748072
>>748061
Кокой ты у мамы самостоятельный!
Аноним 20/05/16 Птн 06:53:54 748166
>>747931
В терминологии C# лямбда-выражением называют анонимный метод в качестве параметра другого метода. Т.е. это когда используется =>
Ответы: >>748182 >>748185
Аноним 20/05/16 Птн 06:55:21 748168
>>748028
Возьму юнити точеный и срублю андроид дроченый. Больше всего вакансий на вебе.
Ответы: >>748300
Аноним 20/05/16 Птн 06:57:00 748169
>>747843
В лямбда-выражении не нужно указывать типы аргументов, т.к. они уже известны. Это сокращенная запись анонимного метода.
Аноним 20/05/16 Птн 07:10:03 748182
>>748166
хорошо, что такое анонимный метод в отрыве от участия его в качестве параметра вызова?
Ответы: >>748184 >>748185
Аноним 20/05/16 Птн 07:15:39 748184
>>748182
Создается объект анонимного класса с единственным методом, вроде так.
Аноним 20/05/16 Птн 07:17:13 748185
>>748166
или, погоди, ты хотел сказать, что лямбда - это форма декларации, а метод - это метод?

этот вот >>748182 аноний
Ответы: >>748197 >>748198
Аноним 20/05/16 Птн 07:32:32 748194
>>74798
Могу скинуть, пиши свое фекомыло
Аноним 20/05/16 Птн 07:33:51 748197
>>748185
Это вообще пришло из лиспа. Там функция это некое значение (код с набором параметров, возвращающий некоторый результат), которое подобно числам, строкам и т.д. может быть присвоено переменной. Т.е. объявление функции (def summ (x y) (+ x y)) полностью аналогично (def summ (lambda (x y) (+ x y))), в обоих случаях создается переменная summ, значением которой будет лямбда-выражение с 2 аргументами. Такие выражения можно использовать как параметры других функций, возвращать их и т.д. Это называется ФВП (функции высших порядков) или ФПК (функции первого класса).

В императивных языках типа Си ли Паскаля такой возможности долго не было, там можно было объявлять функции с именем int summ(int x, int y) {return x +y;}, но не нельзя создать аналогичную переменную:
typedef int (FUNCTION2*)(int x, int y);
FUNCTION2 summ = ???
Хотя по сути это одно и то же.

В скриптовых языках (Питон и т.д.) решили добавить немного функциональщины и прежде всего именно лямбда-выражения. В Microsoft решили добавить эту фичу в C# (благо там уже были делегаты, ссылки на методы), но т.к. там все на ООП, то сделали в виде анонимных методов.

На уровне кода при этом создается объект с единственным методом, этот метод и будет вызываться (делегаты именно так устроены). У этого объекта могут быть и поля - так можно реализовать замыкания (при создании объекта запоминать в полях внешние переменные и пользоваться ими в самом анонимном методе).

Надеюсь, понятно объяснил. Мне тоже после многолетнего опыта разработки на императивных языках было трудно въехать в функциональщину. Как-то непривычно, что функция тоже может быть передаваемым и возвращаемым значением.
Ответы: >>748199 >>748212 >>748229
Аноним 20/05/16 Птн 07:34:34 748198
>>748185
> лямбда - это форма декларации
Да. Это сокращение для анонимного метода.
Аноним 20/05/16 Птн 07:38:52 748199
>>748197
> typedef int (*FUNCTION2)(int x, int y);
Разумеется, так, сорри за опечатку.
Аноним 20/05/16 Птн 08:03:14 748212
>>748197
я хоть немного, но в курсе функционального программирования. просто такое понятие как "лямбда" в шарпе не рассматривал как форму декларации, а сразу была мысля в сторону анонимных функций
Аноним 20/05/16 Птн 08:14:33 748229
>>748197
>Мне тоже после многолетнего опыта разработки на императивных языках было трудно въехать в функциональщину.
Ой да ладно, в C вовсю переменные и параметры типа ссылки функцию используются. Callback-функции же. Замыканий только не было.
Аноним 20/05/16 Птн 09:50:03 748300
>>748168
Ебал я этот веб.
Аноним 20/05/16 Птн 11:14:19 748354
>>748069
На ЯД загрузить трудно ? Мне только начальный нужен.
Аноним 20/05/16 Птн 12:30:05 748410
Хлопци, мне для лабораторной в [strike]щколу[/strike]вуз надо составить викторину по сисярпу. Если не сложно, попредлагайте различные вопросы на тему "классы в c#". Нужны и вопросы с различными вариантами ответа и вопросы с кратким ответом.
Ответы: >>748427
Аноним 20/05/16 Птн 12:30:25 748411
вот так чтоли, блять?
Аноним 20/05/16 Птн 12:54:41 748427
>>748410
Давай, скажи - какими способами можно реализовать члены интерфейса в классах C#.

И воторой вопрос - какие методы и сколько надо реализовать при нестандартной реализации события.
Ответы: >>748471 >>748588
Аноним 20/05/16 Птн 13:47:41 748471
>>748427
> при нестандартной реализации события
IEvent чи шо?
Ответы: >>748837
Аноним 20/05/16 Птн 13:53:49 748478
>>736660 (OP)
Сап. У меня есть прога (exe+dllки) и мне нужно было поменять ее Name в Task Manager. Просто переименовать файл и конфиг не получилось, прога падала. Я добавил в конфиг вот это:
<runtime>
<loadFromRemoteSources enabled="true"/>
</runtime>
Это работает, но только в случае, если у меня в папке лежит оба exe и конфига - старый и переименованный. То есть, я запускаю переименованный ехе, в таск менеджере название такое, как мне надо, но прога не работает без старой дллки. А это новый фреймворк накатили, кстати. Раньше такой хуйне не было - просто переименовал ехе и все работало, без правки конфига.
Собственно вопрос - это ок? Или возможны проблемы? Помогите нубу, плиз.
Ответы: >>748635
Аноним 20/05/16 Птн 14:56:44 748540
14637562045340.png (48Кб, 656x421)
Анон,
Как объявить вложенную структуру в С# ?
В каждой структуре есть свойства.
Можешь доставить пример кода?
Я немного запутался с инициализацией верхней структуры.
Гугл выдает только для С.

Спасибо!
Ответы: >>748548
Аноним 20/05/16 Птн 15:02:49 748548
>>748540
https://dotnetfiddle.net/AhtXrE
где сложна?
Ответы: >>748561
Аноним 20/05/16 Птн 15:14:01 748561
>>748548
Спасибо большое!
Мне нужно определить struct wall, который состоит из структур точек начала и конца, которые являют собой структуры из координат x и y.
Мне они нужны в таком виде, потому что мне так легче их скармливать алгоритмам для векторных манипуляций.
Я это >>741981

Ответы: >>748593
Аноним 20/05/16 Птн 15:43:42 748588
>>748427
>скажи - какими способами можно реализовать члены интерфейса в классах C#
одним - просто берёшь и пишешь %тип% %член интерфейса% () {}, не?
Ответы: >>748589
Аноним 20/05/16 Птн 15:44:17 748589
>>748588
не только
Ответы: >>748590
Аноним 20/05/16 Птн 15:44:50 748590
>>748589
це как ещо то?
Ответы: >>748591
Аноним 20/05/16 Птн 15:45:30 748591
>>748590
%interfacename%.%membername%
Ответы: >>748592 >>748598
Аноним 20/05/16 Птн 15:46:01 748592
>>748591
а бля, точно. типа явное и неявное?
Аноним 20/05/16 Птн 15:48:01 748593
>>748561
> Мне нужно определить struct wall
не понятно, это вопрос, описание проблемы или ты хвастаешься?
Ответы: >>748594
Аноним 20/05/16 Птн 15:50:02 748594
>>748593
> это вопрос, описание проблемы
Ну типа да. В правильном ли направлении я иду?

>хвастаешься
проиграл
Ответы: >>748608
Аноним 20/05/16 Птн 15:51:24 748598
>>748591
По идее "первый способ" это прост синтаксический сахар этого.
Ответы: >>748603
Аноним 20/05/16 Птн 15:57:24 748603
>>748598
ну врядли, иначе это

public interface IA
{
int Count{get;}
}

public interface IB
{
int Count{get;}
}

public class AB:IA,IB
{
public int Count => 1;
}

должно транслироваться как
int IA.Count => __autogeneratedPrivateMember;
int IB.Count => __autogeneratedPrivateMember;

а зачем, спрашивается?
Аноним 20/05/16 Птн 16:01:53 748608
>>748594
ну, если не будет большое количество вычисляемых экземпляров твоих структур Point/Coordinate, дабы не засирать стек, то почему бы и нет

не очень для меня понятно, зачем тебе именно вложенные структуры?
Ответы: >>748641
Аноним 20/05/16 Птн 16:28:16 748635
>>748478
бамп вопросу
Аноним 20/05/16 Птн 16:41:48 748641
>>748608
> если не будет большое количество вычисляемых экземпляров
Вроде нет, стен-то всего 4.

>не очень для меня понятно, зачем тебе именно вложенные структуры?
Потому что я расписал логику и мне кажется, что для небольших векторных манипуляций вложенные структуры наиболее удобны и читаемы.
А что ты порекомендуешь?
Ответы: >>748661
Аноним 20/05/16 Птн 17:14:29 748661
>>748641
стен 4, но считать вектора ты будешь на каждом отскоке ведь

обычные структуры, раз ты их хочешь использовать. я бы вообще не заморачивался с value type, но вдруг в этом случае ты просадишься по производительности, тут не знаю.

или под вложенностью ты подразумеваешь наличие экземпляров типа структуры внутри экземпляра типа структуры?
Ответы: >>748663
Аноним 20/05/16 Птн 17:25:05 748663
>>748661
>или под вложенностью ты подразумеваешь наличие экземпляров типа структуры внутри экземпляра типа структуры?
Именно это я и подразумеваю. Понятия не имел, что может быть и другой смысл, поясни пожалуйста. Я недавно начал изучать язык.
Спасибо.
Ответы: >>748704
Аноним 20/05/16 Птн 18:13:15 748704
>>748663
как ты уже понял, можно объявлять типы внутри других типов, как в том самом фиддле
причем, это единственное место, где ты можешь объявить тип с модификатором видимости private
делается это, например, для того, чтобы получить доступ к внутренней реализации класса-контейнера. но, также, можно скрыть вложенный класс от кода из других местов по фану
Ответы: >>748743
Аноним 20/05/16 Птн 18:36:41 748734
14637694017300.png (43Кб, 466x383)
Шарпаны, нужен ваш совет.
Встала задача захуярить алгоритм логирования хуйни в MS SQL. Задача сама по себе тривиальна, но это мой первый раз, так что я нервничаю. Не знал с чего начать, поэтому сделал набросок через OleDB. Сразу встало несколько проблем. Неудобно конструировать запросы, все переменные нужно обзывать как ? и заполнять в обязательном порядке поочереди. Reader не имеет count, который мне очень нужен.

В общем, что лучше всего взять для работы с SQL чтоб было максимально гибким? Нужно выполнять много мелких запросов для чтения/записи мелких объемов данных.
Ответы: >>748735 >>748737
Аноним 20/05/16 Птн 18:39:04 748735
>>748734
Нихуя не понятно что ты логируешь и какую хуйню.
Аноним 20/05/16 Птн 18:43:12 748737
>>748734
https://github.com/nlog/NLog/wiki/Database-target
Привет.
Аноним 20/05/16 Птн 18:53:42 748743
>>748704
Лол, спасибо.
С трудом, но понял.
Ответы: >>748745
Аноним 20/05/16 Птн 18:55:09 748745
>>748743
судя по всему, не понял все-таки, да?
Ответы: >>748786
Аноним 20/05/16 Птн 20:00:12 748786
>>748745
Ну почему же, я же написал что понял. Просто еще негде приложить это, я же недавно начал.
ВНЕЗАПНО узнал что все уже придумано до нас - есть Vector Structure искаропки! Но я все равно пишу свою.
Аноним 20/05/16 Птн 20:12:42 748796
Аноны, что за Roslyn? Каждый раз при создании нового проекта в вс15 пишет, что потерян пакет Roslyn. Это критично или нет?
Ответы: >>748839
Аноним 20/05/16 Птн 21:20:12 748837
>>748471
Нет
Аноним 20/05/16 Птн 21:22:21 748839
>>748796
Roslyn - это новая инфраструктура компилятора C#/VB. Позволяет встраиваться и расширять на всех этапах. Актуально с C#6
Аноним 21/05/16 Суб 08:28:27 749073
Хочу совершить путешествие в мир асинхронных операций. Нужно запилить программку, которая будет состоять из одной винформы, а на ней что то типа галерии. Будет много контролов состоящих из квадрата внутри которого лейбл и пикчирбокс. Так вот, нужно чтоб все эти контролы (около сотни) сразу все появились, а картинки в них загружались по мере возможности.
Сейчас выглядит это как то так
foreach (var s in lst)
{
UserControl1 uc = new UserControl1();
uc.lbl.Text = s.txt;
uc.pcbx.Image = Вот тут нужна какая то асинхронная хуйня

}
Роюсь в WebClient но там все через обработчики событий. А куда его пихать ума не приложу. И нужно тогда для каждого контрола свой WebClient создавать или как?
Ответы: >>749083 >>749099
Аноним 21/05/16 Суб 08:45:25 749083
>>749073
https://msdn.microsoft.com/en-us/library/hh138334(v=vs.110).aspx
wpf лучше бы взял.
Аноним 21/05/16 Суб 08:58:54 749099
>>749073
Используй System.Threading.Tasks, Люк
Аноним 21/05/16 Суб 12:43:58 749332
>>736660 (OP)
.net сосет хуй
microsoft тоже
Ответы: >>749406
Аноним 21/05/16 Суб 14:03:41 749406
>>749332
Мать твоя членодевка, а отец - шлюха.
Ответы: >>749418
Аноним 21/05/16 Суб 14:11:11 749418
>>749406
перекатил бы лучше
Ответы: >>749458
Аноним 21/05/16 Суб 14:40:14 749458
>>749418
Нет ты.
Аноним 21/05/16 Суб 15:05:44 749482
Я получаю от стороннего веб-сервиса JSON и десериализую его в объект. Мне нужно узнать какие свойства этого объекта имеют значения отличные от дефолтного. Как это сделать? Судя по гуглу, нужна рефлексия(.GetType().GetProperties() и потом что-то делать с коллекцией PropertyInfo), но у меня нихуя не взлетает.
Ответы: >>749492
Аноним 21/05/16 Суб 15:10:34 749492
>>749482
покажи, как делаешь
Ответы: >>749509
Аноним 21/05/16 Суб 15:17:46 749509
>>749492
Пытался делать как в этом ответе
http://stackoverflow.com/questions/22683040/how-to-check-all-properties-of-an-object-whether-null-or-empty
Сложность в том, что там в качестве типа св-ва всегда string и он захардкожен, а у меня в объекте нагромождение свойств вроде строк, целых чисел, вещественных чисел и тд.
http://pastebin.com/7RDmFEk1
Ответы: >>749540
Аноним 21/05/16 Суб 15:45:18 749540
>>749509
http://stackoverflow.com/questions/325426/programmatic-equivalent-of-defaulttype
Аноним 21/05/16 Суб 19:28:52 749819
Кто ответит на вопрос вместо гугла?
Стоит у меня дома визуал студия 2010 экспресс. В ней когда я жму F6 создается папка Release и в ней релизная версия программы. Все заебись короче.
А вот на работе стоит та же студия 2010, но уже ультимат. Все поломано, со всеми патчами и т.п. Но в ней нихуя не собирается релиз. Ставлю в свойствах проекта собрать релиз, но он сбрасывается обратно на дебаг. Что за хуйня?
Аноним 22/05/16 Вск 12:07:33 750292
>>745752
Вкатился именно через Epam. Курсы неплохие, по крайней мере для меня, много чего узнал.
Аноним 28/05/16 Суб 08:59:57 755828
Начал читать троелсена и появился вопрос: как правильно реализовывать интерфейс в классе?
http://pastebin.com/TZtLUL99
Ответы: >>755878
Аноним 28/05/16 Суб 10:38:52 755878
>>755828
Второй вариант, который без имени интерфейса перед названием метода.
Ответы: >>755935
Аноним 28/05/16 Суб 11:40:05 755935
>>755878
Понятно, спасибо.
А первый вариант в каких ситуациях используется и используется ли вообще?
Ответы: >>756114
Аноним 28/05/16 Суб 14:17:31 756113
Анон, посоветуй литературы по правильному проектированию архитектуры. Чтобы там SOLID, ООП, вся хуйня Простите за слог, я немного накурен.
Ответы: >>756251 >>756533
Аноним 28/05/16 Суб 14:19:34 756114
>>755935
Это называется "Явная реализация интерфейса".
Ответы: >>756115 >>756178
Аноним 28/05/16 Суб 14:19:50 756115
>>756114
http://professorweb.ru/my/csharp/charp_theory/level9/9_5.php
Ответы: >>756178
Аноним 28/05/16 Суб 15:07:15 756178
>>756114
>>756115
Спасибо
Ответы: >>756251
Аноним 28/05/16 Суб 16:12:58 756251
14644519789720.gif (262Кб, 478x369)
>>756178
Я просто забрал у гугла работу, так что незачто. А вот свой вопрос-таки бампану >>756113
Аноним 28/05/16 Суб 23:08:02 756533
>>756113

Кагбэ книжки по подготовке к сертификации MCSD сойдут.
Аноним 05/06/16 Вск 14:06:32 762347
Предположим, есть class Base.
И есть class Derived : Base.
Тогда в чём смысл Base base_derived = new Derived?
Я думал, что если Derived оверрайдит что-то в Base, то объект будет типа Base но с частью свойств Derived - попробовал погонять так и сяк, но нихрена, и у меня получилось, что от Derived сработал только конструктор, как я понял если я вообще правильно понял.
Ответы: >>762606
Аноним 05/06/16 Вск 18:54:38 762606
>>762347
> попробовал погонять так и сяк
А руку пробовал менять?
http://pastebin.com/bQw2y2PL
Аноним 10/06/16 Птн 13:44:29 766367
Решил вкатиться в тестирование. Где то читал, что стоит сразу начинать с NUnit и забыть про дефолтный мсвский UnitTesting. Так ли это ?
Ответы: >>767143
Аноним 11/06/16 Суб 15:29:00 767143
>>766367

Начинать следует с правильных книг. Гугли ISTQB-BCS.

[Назад][Обновить тред][Вверх][Каталог] [Реквест разбана] [Подписаться на тред] [ Автообновление ] 521 | 47 | 169
Назад Вверх Каталог Обновить

Топ тредов
Подписывайся на официальный канал Двача в Телеграме и узнавай обо всех новостях и мемах первым! https://tlg.wtf/dvachannel[X]