Вы видите копию треда, сохраненную 31 июля 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
ITT элита продолжает обсуждает будущее этого прекрасного и современного продукта компании Microsoft. Только в этом треде элитные разработчики ответят на самые острые вопросы индустрии.
Литература вторым постом
1. Ресурсы:
- http://stackoverflow.com/questions/tagged/c#
- http://www.tutorialspoint.com/csharp/
- http://professorweb.ru
- http://net-informations.com
- http://habrahabr.ru/hub/csharp/
2. Онлайн-компиляторы:
- https://dotnetfiddle.net/ - возможно лучший вариант. Встроено немного убогое, но все-таки автодополнение и проверка синтаксиса.
- http://ideone.com/
- http://csharppad.com/
- http://www.tutorialspoint.com/compile_csharp_online.php
- http://rextester.com/l/csharp_online_compiler
3. WinForms или WPF?
Зависит от задачи. Для небольших проектов, скорее всего, будет достаточно винформочек. В случае, если разрабатываемое приложение достаточно серьёзное, то возможно его стоит писать с использованием WPF. WPF очень хорошо работает с паттерном MVVM ( https://ru.wikipedia.org/wiki/Model-View-ViewModel ), и позволяет пилить очень кастомизированные интерфейсы с помощью XAML, что в случае WinForms, делать намного сложнее.
4. Мне тут знакомый_нейм сказал, что C# умирает, это правда? Может не стоит его учить?
Неправда. C# довольно активно развивается, недавно вышел новый компилятор, шестая версия шарпа, и уже активно разработывается седьмая. Весь дотнет понемногу становится опенсорсным, а ASP.NET становится независимым от платформы. В некотором смысле понемногу вымирают десктопные приложения с развитием веб-технологий, но в том же энтерпрайзе он еще очень даже востребован.
5. Какую ИДЕ выбрать?
- Visual Studio ( https://www.visualstudio.com/downloads/download-visual-studio-vs ) - самый очевидный вариант для Windows. Студия распространяется в двух редакциях: бесплатная коммьюнити-версия и платный энтерпрейс эдишн. В большинстве случае будет достаточно Community-версии: она поддерживает и C#, C++, VB.NET и F#, а так же имеет возможность установки дополнений.
- MonoDevelop ( http://www.monodevelop.com/download/ ) - самый юзабельный вариант для мака и никсов.
- Visual Studio Code ( https://code.visualstudio.com/download ) - кросплатформенный полуредактор/полуIDE, есть возможность дебага под mono.
- Project Rider - кросплатформенная IDE для шарпа от JetBrains, внутри решарпер со всем фичами, снаружи - idea http://download.jetbrains.com/resharper/riderRS-146.1908.exe - для Windows, .dmg - для OS X, .tar.gz - для Linux.
- SharpDevelop - еще одна IDE для C#, отличается малым размером (около 20мб) и опциональной портабельностью, при этом имея дизайнер WinForms и WPF, а также интеграцию с FxCop, StyleCop и прочими ништяками. Если хочется что-то по быстрому набросать, а выкачивать гигабйты нет желания, то возможно SharpDevelop будет лучшим вариантом.
6. С# для мобильной разработки
Если нужны инструменты для разработке под мобилы, ставь сразу VS2015 и при установке выбирай все нужные компоненты.
Больше информации тут - https://msdn.microsoft.com/ru-ru/library/dn771552.aspx
Из актуальной литературы
- Xamarin Mobile Application Development
- Xamarin Essentials
7. Дополнительные инструменты для разработки на C#
- LINQPad - сорт оф REPL, с возможностью быстрого подключения к БД и удобной визуализацией данных
- dnSpy - декомпилятор, малоизвестный форк ILSpy, где реализована возможность модификации IL-кода прямо в EXE и DLL файлах, отладка IL-кода и много других фич для reverse engineering'а. Плюс няшные темы как в студии
- dotPeek - бесплатный декомпилятор от JetBrains
- scriptcs - для запуска C# кода как скриптов, возможность использовать как REPL
8. Расширения для студии
- ReSharper - одно из известнейших. Рефакторинги, умный автокомплит, настраиваемый стиль кода. Платный, но можно стянуть с торрентов
- Supercharger - показывает "карту" с классами, методами и всем остальным сбоку от кода с возможностью прыгать по ним
- Indent Guides - показывает вертикальные линии на каждом уровне отступов
- Format document on Save - форматирует код каждый раз при сохранении документа
- Code alignment - Выравнивает код по указанным символам. Удобно, например, при инициализации словарей или в перечислениях
Обзор Roslyn: https://github.com/dotnet/roslyn/wiki/Roslyn Overview
Новые возможности C# 6.0: https://github.com/dotnet/roslyn/wiki/New-Language-Features-in-C#-6
ПРИНИМАЮТСЯ ПРЕДЛОЖЕНИЯ ПО ШАПКЕ
Код этой шапки: http://pastebin.com/cKKXYArs
Прошлый тред тонет здесь: https://2ch.hk/pr/res/749549.html (М)
- The C# Player's Guide, второе издание (RB Whitaker) - отличная книга для ньюфагов в шарпе, все расписывается довольно подробно, очень много примеров кода.
- C# 6.0 in a Nutshell (Joseph Albahari и Ben Albahari) - огромнейший справочник, over 1000 страниц, покрывает почти все области, начиная с синтаксиса и базовых типов и заканчивая интеропом и рослином
- C# 6.0 Pocket Reference (Joseph Albahari и Ben Albahari) - просто выжимка из справочника, можно всегда держать рукой
- C# 6.0 and the .NET 4.6 Framework (Andrew Troelsen) - 1600-страничный учебник по шарпу, покрывает BCL, WPF и ASP.NET, небо и даже аллаха.
- C# 6.0 Cookbook (Jay Hilyard и Stephen Teilhet) - книга в формате "проблема-решение", можно пройтись по оглавлению, найти интересные проблемы и попыпаться самому решить, а уже потом посмотреть представленное решение. Книга скорее не для ньюфагов, а для тех, кто уже знаком с шарпом.
10. Более хардкорный материал
- C# in Depth (Jon Skeet) - написана в виде истории версий C#, начиная с C#1.0. Описываются возможности, которые были добавлены в определенной версии и далее достаточно хардкорно и подробно эти возможности расписываются.
- Writing High Performance .NET Code (Ben Watson) - охуенная книга. В основном фокуируется на оптимизации дотнет-говна. Методы оптимизации проложений, профилирование, вот это все. Крутейшая и достаточно детальная глава по GC. Рассматриваются достаточно известные проблемы вроде "for vs foreach", "класс vs структрура", кастинг, боксинг, перфоманс регулярок, коллекций, исключений. Короче все что нужно, чтобы вам перезвонили.
- CLR via C# (Jeffrey Richter) - это классика, это знать надо.
11. Хочу еще хардкорней
- C# Deconstructed (Mohammad Rahman) - введение в CLR, модели памяти и выполнения в CLR, байтоебство, JIT. Книга достаточно коротенькая, менее 200 страниц, можно осилить за пару дней. Желателен опыт работы WinDbg и понимание устройства PE-формата.
- Expert C# 5.0 with .NET 4.5 Framework - еще одна книга этого автора, в этот раз намного длиннее. Очень много IL, анализа и разбора стандартной либы (те же коллекции), разбор ивентов, дегегатов, асинхронности etc. на уровне байткода.
- .NET IL Assembler (Serge Lidin) - ILёбство, во многих местах повторяет документацию MSDN, но при этом имеет много интересных дополнений и заметок. Кроме того все неплохо структуировано и разложено по красивым табличкам
12. Литература по WPF
Из более-менее актуального можно выделить пару книг:
- Pro WPF 4.5 in C# (Matthew MacDonald)
- Windows Presentation Foundation 4.5 Cookbook (Pavel Yosifovich)
13. Литература по ASP.NET
- Professional ASP.NET MVC 5 (Jon Galloway, Brad Wilson, K. Scott Allen, David Matson)
- Pro ASP.NET MVC 5 Platform (Adam Freeman)
- Beginning ASP.NET for Visual Studio 2015 (William Penberthy)
14. Литература по асинхронности, параллелизму и всему такому
- Concurrency in C# Cookbook (Stephen Cleary) - книга, написанная в формате "проблема - решение". Кроме базовых вещей, вроде асинков и параллелизма рассматриваются TPL Dataflows, Rx (реактивные расширения), тестирование всего этого асинхронного добра, ну и работа этого всего на более низких уровнях абстракции
- Multithreading in C# 5.0 Cookbook - в основном ничего интересного, но есть довольна неплохая глава про синхронизацию, пусть и не слишком детальная
- 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
- 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
Есть что нибудь для примера с C#? Хуячил онли винформдесктоп приложухи, для БД. Слабо представляю как это заставить работать с API.
сорян, сам только с гугла пришел
СИ ШАРП КРАЩА МОВА ПРОГРАМУВАННЯ
а разницы-то
Сам в университете немного учил шарп и джаву, по работе только писал скрипты на sas и vba + t-sql
Может быть я чего-то не понимаю, но почему корпоративные сайтики пишутся на C#? Чтобы автоматически интегрироваться-синхронизироваться с какими-нибудь ERP и прочими системами?
Потому что изначально в asp.net были веб формы, которые как фин формы, только нет. А это значит можно пересадить всех индусов разработчиков с десктопов на разработку новых тогда сайтиков без особых усилий и они будут выдавать нормальную скорость разработки. И не надо содомировать себя джяваскриптом тогда еще плохим. Время шло, асп менялось, но традиции остались
Спасибо за пояснения. Если ты работаешь с C#, то расскажи пожалуйста почему ты выбрал именно этот язык или стек технологий, а не какой-нибудь другой?
на самом деле, коммерческая разработка куда интересней и лутшее, но от индусских замашек никуда не денешься
Да потому что он охуенный. Сейчас то с одним c# конечно сложно если ты не только бэк пишешь, поэтому нужно js и html/css/bootstrap/angular
>Может быть я чего-то не понимаю, но почему корпоративные сайтики пишутся на C#?
Потому что там есть WebForms (фреймворк для разработки сайтов), у которого есть следующие свойства:
1. Если его изучить (изучается относительно долго из-за контринтуитивности и дроча на декларативность), то можно довольно быстро делать сайты. Быстро значит дешево и выгодно.
2. Все сайты на WebForms уёбищны и однообразны, практически не допускающие кастомизации и модернизации. Они безнадежно отстали от современных web-технологий и в принципе не способы их догнать из-за неэффективной парадигмы.
Это делает WebForms идеально подходящим для копроративных сайтов. Потому что копроративные сайты таковы, что ими пользуются только работники копрорации, причем принудительно, поэтому их внешний вид, дизайн и удобство нахуй никому не всрались, а только будут отвлекать от работы. Сайт должен быть тошнотворным, чтобы работник тратил на него как можно меньше времени, и въебывал на основной своей функции. Его уебищный вид не может снизить количество уникальных посетителей или продажи рекламы, потому что посещение принудительно для всех работников - это по сути часть их рабочего места, и никакой рекламы там нет.
Для сайтов, которые предназначены для всего интернета, WebForms не подходит по той же причине - уебищности, из-за которой привлечь посетителей становится невозможно (они в отличие от работников копрорации являются свободными клиентами в конкурентной среде), и как следствие невозможно заработать на впаривании рекламы или еще какого-либо другого дерьма.
>Сейчас то с одним c# конечно сложно если ты не только бэк пишешь
Писал копроративные сайты не используя JS вообще. У нас вся конторка так делала, вплоть до того что 90% быдлокодеров боялись JS как огня и не знали его.
Даже добавлю свою пасту со своим багетом от WebForms с тех времен когда я работал по найму и писал на этом говне.
Пилю кулстори пары прошедших дней. Надо сделать контрол ASP.NET WebForms. Контрол среди прочего должен позволять загружать файлы. У меня была идея сделать загрузку файла на хуяксе, без рефрешей страниц. Просто потому что это заебись по юзабельности и скорости. В принципе это не требовали, наверное и не надо было даже пытаться. Вообще, многие вещи на ASP.NET лучше даже не пытаться, - только промучаешься, побаттхеришь и потратишь время, потому что они попросту невозможны или стоят неприемлемых затрат времени и сил.
Итак, суть. В нормальных (в вебе нет ничего нормального, поэтому "нормальных" здесь условно) фреймворках такое делается через сабмит формы с файлом (этот изврат следствие того что аяксом нельзя аплоадить файлы из-за дебильности разработчиков браузеров), принятием ответа сервера в невидимый iframe (этот изврат уже как следствие предыдущего извращения - сабмита формы) и обработки этого ответа джаваскриптом. уже всё это показывает что сам html и все браузеры - говно, что в свою очередь говорит о том что в вебе есть целая традиция говноедства, особенно если еще вспомнить джаваскрипт и PHP. В ASP.NET всё получается еще более ебанутым. Чтобы засабмитить форму, нужно чтобы она была. Для этого её нужно сделать. ASP.NET уже имеет одну форму вокруг всей страницы, такова его ебанутая архитектура. В добавок к ней, замечательный HTML слово "замечательный" в данном случае в значении "полное говно" запрещает размещать форму внутри другой формы. Тем самым в ASP.NET фактически нельзя использовать тег form и как следствие аплоадить файлы асинхронно. Можно конечно разместить еще одну форму после формы созданной ASP.NET. Но только не в контроле, потому что ASP.NET помещает весь контрол в форму, и все формы в контроле автоматом окажутся во внешней форме, как следствие будут проигнорированы браузерами согласно ебанутому HTML. Создать форму из контрола динамически джаваскриптом внизу или вверху страницы (вне формы ASP.NET) - заведомый фейл, потому что разметка формы будет находиться вне основной вёрстки, внизу или вверху страницы. Можно было бы сделать эту форму невидимой, заполнить её джаваскриптом скопировав видимые пользователю поля которые он ввёл, и всё было бы заебись. Но это тоже не получится, потому что объект input file нельзя клонировать "в целях безопасности" как страдает безопасность если вы склонировали input file с файлом который указал сам пользователь понятно только ебанутым разработчикам браузеров подобно тому, например, как христианам понятно как женщина была сделана из ребра мужчины, в то время как ни один нормальный человек такой хуйни никогда не поймёт просто потому что он нормален, а не ебанут. Можно всю форму поместить в iframe, iframe может находиться в форме, а форма - в iframe. Но тут другой облом - с вёрсткой. Если на форме находится поле textarea, а оно там находится по требованию заказчика, то его ресайзинг мышью сразу выдаст наличие iframe (появятся скроллбары и ресайзинг будет ограничен iframe) и очень удивит заказчика почему же он не может нормально ресайзить это ёбаное поле textarea. Можно извратиться еще жестче, поместив форму с input file в iframe, а поле textarea расместить вне iframe, после чего при нажатии кнопки "отправить" копировать это поле в форму перед сабмитом. Я уж думал что это и есть решение моей проблемы, но тут внезапно фейл - на самом деле мне надо аплоадить не один файл, а два. Оказывается это может многое менять. Находятся они в макете в таблице в разных строках, и textarea находится между ними. Поэтому разместить их в iframe отдельно от остальной вёрстки не получится. Можно сделать два iframe, по каждому для каждого файла, и сабмитить их раздельно, принимать на сервере тоже как следствие раздельно, проверять что приняты оба, отправлять всю эту херню на клиент, проверять и там, предусматривать ситуации когда только один сабмит прошел успешно, а второй зафейлился, после чего удалять файл из базы, потому что он часть зафейленного сабмита, для чего нужно сделать механизм отслеживания фейловых файлов, для чего надо менять БД и всю работу с ней, одним словом - пиздец. Либо сделать вёрстку сверхебанутой и не по макету заказчика - разместить два файла рядом (которые по логике совсем разные и рядом быть не должны) - проще говоря, зафейлить ТЗ. Относительно элементарная задача, которая даже в относительно нормальных фреймворках решается довольно ебануто и дорого плане времени, в ASP.NET WebForms становится еще на порядок дороже и сложнее.
Короче, няши, ASP.NET WebForms это форменное говно и никогда не пытайтесь сделать на нём нормальный сайт - всё равное не получится. WebForms предназначен не для этого. Он предназначен для быстрого клепания говносайтов в стиле конца 90-х с рефрешем всей страницы по каждому малейшему поводу, плюс многокилобайтовый вьюстейт в довесок. Ах да, забыл сказать что UpdatePanel не работает с input file. Может кому-то это не было очевидно и половину моего рассказа он считал меня идиотом не знающим "богатые" возможности WebForms.
Даже добавлю свою пасту со своим багетом от WebForms с тех времен когда я работал по найму и писал на этом говне.
Пилю кулстори пары прошедших дней. Надо сделать контрол ASP.NET WebForms. Контрол среди прочего должен позволять загружать файлы. У меня была идея сделать загрузку файла на хуяксе, без рефрешей страниц. Просто потому что это заебись по юзабельности и скорости. В принципе это не требовали, наверное и не надо было даже пытаться. Вообще, многие вещи на ASP.NET лучше даже не пытаться, - только промучаешься, побаттхеришь и потратишь время, потому что они попросту невозможны или стоят неприемлемых затрат времени и сил.
Итак, суть. В нормальных (в вебе нет ничего нормального, поэтому "нормальных" здесь условно) фреймворках такое делается через сабмит формы с файлом (этот изврат следствие того что аяксом нельзя аплоадить файлы из-за дебильности разработчиков браузеров), принятием ответа сервера в невидимый iframe (этот изврат уже как следствие предыдущего извращения - сабмита формы) и обработки этого ответа джаваскриптом. уже всё это показывает что сам html и все браузеры - говно, что в свою очередь говорит о том что в вебе есть целая традиция говноедства, особенно если еще вспомнить джаваскрипт и PHP. В ASP.NET всё получается еще более ебанутым. Чтобы засабмитить форму, нужно чтобы она была. Для этого её нужно сделать. ASP.NET уже имеет одну форму вокруг всей страницы, такова его ебанутая архитектура. В добавок к ней, замечательный HTML слово "замечательный" в данном случае в значении "полное говно" запрещает размещать форму внутри другой формы. Тем самым в ASP.NET фактически нельзя использовать тег form и как следствие аплоадить файлы асинхронно. Можно конечно разместить еще одну форму после формы созданной ASP.NET. Но только не в контроле, потому что ASP.NET помещает весь контрол в форму, и все формы в контроле автоматом окажутся во внешней форме, как следствие будут проигнорированы браузерами согласно ебанутому HTML. Создать форму из контрола динамически джаваскриптом внизу или вверху страницы (вне формы ASP.NET) - заведомый фейл, потому что разметка формы будет находиться вне основной вёрстки, внизу или вверху страницы. Можно было бы сделать эту форму невидимой, заполнить её джаваскриптом скопировав видимые пользователю поля которые он ввёл, и всё было бы заебись. Но это тоже не получится, потому что объект input file нельзя клонировать "в целях безопасности" как страдает безопасность если вы склонировали input file с файлом который указал сам пользователь понятно только ебанутым разработчикам браузеров подобно тому, например, как христианам понятно как женщина была сделана из ребра мужчины, в то время как ни один нормальный человек такой хуйни никогда не поймёт просто потому что он нормален, а не ебанут. Можно всю форму поместить в iframe, iframe может находиться в форме, а форма - в iframe. Но тут другой облом - с вёрсткой. Если на форме находится поле textarea, а оно там находится по требованию заказчика, то его ресайзинг мышью сразу выдаст наличие iframe (появятся скроллбары и ресайзинг будет ограничен iframe) и очень удивит заказчика почему же он не может нормально ресайзить это ёбаное поле textarea. Можно извратиться еще жестче, поместив форму с input file в iframe, а поле textarea расместить вне iframe, после чего при нажатии кнопки "отправить" копировать это поле в форму перед сабмитом. Я уж думал что это и есть решение моей проблемы, но тут внезапно фейл - на самом деле мне надо аплоадить не один файл, а два. Оказывается это может многое менять. Находятся они в макете в таблице в разных строках, и textarea находится между ними. Поэтому разместить их в iframe отдельно от остальной вёрстки не получится. Можно сделать два iframe, по каждому для каждого файла, и сабмитить их раздельно, принимать на сервере тоже как следствие раздельно, проверять что приняты оба, отправлять всю эту херню на клиент, проверять и там, предусматривать ситуации когда только один сабмит прошел успешно, а второй зафейлился, после чего удалять файл из базы, потому что он часть зафейленного сабмита, для чего нужно сделать механизм отслеживания фейловых файлов, для чего надо менять БД и всю работу с ней, одним словом - пиздец. Либо сделать вёрстку сверхебанутой и не по макету заказчика - разместить два файла рядом (которые по логике совсем разные и рядом быть не должны) - проще говоря, зафейлить ТЗ. Относительно элементарная задача, которая даже в относительно нормальных фреймворках решается довольно ебануто и дорого плане времени, в ASP.NET WebForms становится еще на порядок дороже и сложнее.
Короче, няши, ASP.NET WebForms это форменное говно и никогда не пытайтесь сделать на нём нормальный сайт - всё равное не получится. WebForms предназначен не для этого. Он предназначен для быстрого клепания говносайтов в стиле конца 90-х с рефрешем всей страницы по каждому малейшему поводу, плюс многокилобайтовый вьюстейт в довесок. Ах да, забыл сказать что UpdatePanel не работает с input file. Может кому-то это не было очевидно и половину моего рассказа он считал меня идиотом не знающим "богатые" возможности WebForms.
Блять. Какаяже Визуальная Студия душная программа. Мало того, что устанавливается по 100 лет, так ещё и постоянно какие-то ебаные ошибки при установке, невидимые ошибки при запуске, и БЛЯТЬ ЦЕЛАЯ СВАЛКА ГОВНА в установленных программах.
Неосиляторы не осиливают
> поэтому нужно js
Интерестно, а почему MS не сделает компилятор C# -> JS?
Это же сейчас тренд (Clojure/Scala/Kotlin/GWT) что бэкенд и фронтенд пишется на одном языке.
А они зачем-то в typescript вкладываются...
Тут на днях релизнулась стабильная XamarinStudio 6.0 со стильной темной темой и поддержкой C# 6.0
Она стала заметно быстрее и плавнее.
А еще в VisualStudioCode появилась нормальная отладка C# приложений.
В Rider пока новых билдов не было (наверное интегрируют новый CoreCLR), но тоже что-то интересное выкатят.
Хочу сравнивать такие объекты http://pastebin.com/3gEDDDzR
Я написал реализацию, но не уверен что это правильно http://pastebin.com/4DBfsM89
т.е. до недавнего времени Xamarin студия не умела в C# 6? MS VS же уже почти год как умеет.
Да вроде не все так страшно, из того что ты написал у меня есть только
>ЦЕЛАЯ СВАЛКА ГОВНА в установленных программах
http://duoco.de/
>>767653
https://msdn.microsoft.com/en-us/library/ms132151(v=vs.110).aspx#Anchor_3
Нужно больше проверок на null и GetHashCode должен все поля брать, судя по Equals
>GetHashCode должен все поля брать
Не понимаю как это делается, особенно если у меня будет класс с кучей разнотипных свойств.
В стабильной ветке - нет, в alpha/beta - да
возьми у своих свойств их хэш-коды и соотнеси их вместе, используя простые числа. это вроде бы стандартная практика. можно еще сдвиги использовать, но я не знаю тонкостей такого подхода
Ты когда нибудь видел JS в google search/gmail/google docs?
Там JS давно на уровне байт-кода.
У Google есть проект Closure Compiler который буквально компилирует JS->JS,
так что потом без source-map уже ничего не поймешь.
Мне кажется, что я принципиально что-то делаю не так. Насколько неадекватна архитектура пикрелейтед, и как можно её улучшить?
Можно spritemap заполнять не в конструкторе, а в отдельном методе, посмотри builder pattern например.
http://www.matthewedmondson.info/2012/08/virtual-method-call-in-contructor.html
>Какую ИДЕ выбрать?
Могли бы и про замарин написать, пользуюсь под виндой, зависимости нет, по производительности среда летает в отличии от VS
Мне xamarin.com только visual studio под винду предлагает скачать
у 1-го решения уже в референсах лежит ссылка на 2-й и теперь мне надо сделать ссылку со 2-го на 1-й? Зацикливание!
Вариант, типо, перекинь все нужные классы вместе с тем который перекинул - не вариант.
Щито делать, дэсу?
Так вынеси все в общую dll
Сделать третье решение, и в обоих классах ссылаться на него
Нужно чтобы в зависимости от четверти появлялся список из цифр зубов. Ну то бишь я выбираю допустим первую четверть, а мне выходит зуб с 18-11, выбираю вторую и в выборе только с 28-21.
с помощью контекста окна, событий OnPropertyChanged и ObservableCollection-членов. короче, велкомэ ту мввм
Блядство, а можешь поподробнее пожалуйста? биндинги здесь никак не помогут? Я не шарю в проге :с
С самим комбобоксом тебе делать почти ничего не нужно, только забиндить свойство ItemsSource на коллекцию в твоей ViewModel. Можно на простой IEnumerable.
Далее, биндишь SelectedItem на свойство модели представления, которое у тебя за четверть отвечает. У него в сэттере уже вызываешь нужную логику загрузки списка.
Собственно все, даже с event trigger'ами ебаться не нужно.
1) смотишь что такое мввм
2) создаешь вью модель и имплементиш INotifyPropertyChnaged
3) создаешь проперертю в классе "Четверть" и пропертю-список четвертей
4) Хардкодиш лист зубов
5) Делаешь лист тех, которые надо отображать
6) Копируешь зубы из хардкожденой коллекции в ту, которую показывать надо на изменение проперти четверть
7) привязываешь вьюшку (то, что на скрине) к моделе представления
Будет ли сильно замечаться потеря в производительности, если использовать промежуточный сервер на сисярпе, если приложение-сервер и сервер ms-sql будут находится на одной физической машине?
Если всё таки стоит делать отдельный сервер на шарпе, как его лучше реализовывать (имею ввиду через какие классы/технологии/фрэймворки/способы коммуникации), учитывая, что будет происходить обмен не только текстовой инфой в большом размере, но и фото.
Но в реальной жизни никто из десктопа к БД не коннектится(кроме SQLite)
Ну мне не совсем преподу показать. Это не только курсовая, но и приложение для одной организации.
>Будет ли сильно замечаться потеря в производительности, если использовать промежуточный сервер на сисярпе, если приложение-сервер и сервер ms-sql будут находится на одной физической машине?
Забыл уточнить, сервер в любом случае будет располагаться в локальной сети, ибо скорость передачи и трафик не безлимитный.
Сделай сервер с помощью wcf например
Что ты понимаешь под отдельным приложением? Чем тебе не подходит традиционная 3-tier архитектура с уровнем доступа к данным?
Алсо, не надо выполнять напрямую sql из кода. Даже параметризованные запросы только в легаси встречаются. Используй ORM. Только дженерик репозитории не используй. Это рак и за такое нужно клавиатурой по ебалу бить.
А вообще, судя по твоему посту, у тебя нет представления о будущей архитектуре вообще. Пойми сначала, что нужно сделать. Потом прочитай про трехуровневую архитектуру.
> Только дженерик репозитории не используй. Это рак и за такое нужно клавиатурой по ебалу бить
не, ну чё ты, а
> Используй ORM. Только дженерик репозитории не используй.
А если у меня Xamarin в котором нет EF вообще, а есть только ссаный "Sqlite.query<T>(...)"?
ток делай параметризованные запросы, не втуляй, шо юзер послал, в запрос
Если не дженерик репозиторий, то что? Не могу догнать
Там dapper можно заюзать.
Рассылал резюмешки по компаниям, даже на интервью не пригласили, мрази. Посоветуйте чего, посоны.
На русракере в комментах вроде была ссылка на сервер лицензий
Сука, вспомнил
Слишком быстро ты выхлопа какого-то ожидаешь
Я 3 месяца резюме рассылал каждую неделю
было всего лишь 3 собеседования, на третьем взяли на работу.
Говорю с дивана, но учитывая схожесть синтаксиса обоих сисярпа и джавы, я бы точился под то, под что больше существует готовых фреймворков и апи для андроида.
в смысле, имеет, лол
вообще, предполагается следующее развитие событий: в основном, клиент и сервер будут находится в одной локальной сети, но в исключительных случаях предполагается подключение к серверу через интернет.
дак что там насчёт сокетов, они уже устарели, и появились более функциональные технологии? и что нужно читать о WCF в контексте моей задачи?
Не для того .net делали, чтобы в сокеты пороться постоянно. В контексте твоей задачи тебе нужно просто прочитать про wcf, например у троелсена. А лучше сразу web api!
1. На скрине у меня 32 комбобокса, которые формируют зубную формулу, в каждом по 9 вариантов статуса зуба. Как мне не плодить все эти статусы в каждом комбобоксе? Ну вы понимаете, у меня в каждом комбобоксе по 9 вариантов и все они одинаковые.
2. Работа с заполнением вордовского документа из шаблона ворда.
Короче, в одном окне я заполняю одну страницу в ворде, перехожу в новое окно, заполняю форму и пытаюсь внести изменения в документ. Все вылетает на эксепшене
Так делаешь у зуба СтатусЗуба в виде enum'а например, делаешь коллекцию зубов и ехал биндинг через биндинг.
Проверь свойсвто ErrorCode исключения.
>Kursach.exe
Вышли на новый уровень
И правда охуел. Как-то не подумал там искать. Извиние.
таак, а куда впилить коллекцию enumerable? создать под неё класс? биндингом привязать объект класса к каждому комбобоксу?
Во ViewModel твоей вьюхи конечно же! Если ты не читал про mvvm, то сейчас самое время.
Все, разобрался, спасибо анон.
>>769636
ну чтобы сделать varName = new StringBuilder, очевидно
насчет бить не уверен, если в разных методах формируется строка по ходу выполнения какого-то куска. ну не знаю короче
StringBuilder и так
>Represents a mutable string of characters
а тут еще ref этот ебаный.
>ну не знаю короче
В этом и суть, ref только запутывает код, и пиздить таки нужно.
ну локальная переменная же. если ты в методе присвоишь новое значение ей, то из метода без реф оно уже не выйдет
Так нет причин менять ссылку на StringBuilder, можно поменять его состояние. Если функция хочет что то вернуть, она должна просто это вернуть.
Поясните, как здесь кэшировать полученные данные? В вебформсах всегда пользовался SqlDataSource и CacheKeyDependency.
Вот допустим у меня есть
public ActionResult Customers_Read([DataSourceRequest]DataSourceRequest request)
{
var list = DAL.GetAllCustomers();
return Json(list.ToDataSourceResult(request));
}
Куда мне запихать list, чтобы не получать из БД каждый раз овер 9000 записей при любом действии с гридом? И как их таки получить заново при нажатии кнопки refresh?
Во всех туториалах куда ни глянь ебаный EF, так что приходится спрашивать на двощах. Всем бобра заранее.
> 2016 год
> .NET, ASP.NET MVC, EF, MSSQL оффициально поддерживают Linux/macOS
> EF уже дошел во версии 6.X и теперь его переписывают с 0
> Кто-то продолжает насиловать труп и использовать подходы из 2000
Интерпрайз такой интерпрайз (небось еще и гос контора)
>M$SQL
Дорого же.
И вообще, ОРМ нинужны, у меня от запросов, которые они генерируют, глаза вытекают просто.
Выдаю жсоном все данные сразу, но пейджинг, сортировку и фильтрацию делаю на клиенте, все работает как мне надо, считывает заново только при рефреше.
Здравствуйте, шарпобояре. Я так понимаю, на C# можно делать всё, от консольных хеллоувордов до игор с графоном. Какое из направлений считаете наиболее перспективным, чтобы моё увлечение программированием стало приносить какую-то денюжку, не заглохло в ближайшие 5 лет, а может даже и помогло найти постоянную работу хотя фуллтайм работа в офисе мне нахуй не всралась, если честно. Я вот Пахомова и Подбельского почитал немного 3 книги, дальше думаю копать юнити или андроид. Что посоветуете?
> Что посоветуете?
1) Перестать задавать такие вопросы, они всех заебали еще на 10 перекате
2) Пройти сюда >>769498 (OP)
Попробуй почитать шапку.
Здрасте
До какого уровня надо читать книги по Сишарпу, чтобы уметь писать типичные и простые вещи на Юнити?
К чему не прикасаться?
Добра!
inb4: читай WCF мудак. блят, я бы с радостью его освоил, но заглянув в интернет и книгу троелсена, я увидел, что читать по нему столько, что я насрал как конь со страху, честно. учитывая что время поджимает меня оче сильно, а в WCF придётся как мне кажется долго ковыряться в поиске методов реализации интересующего меня функционала, я пока что решил всё же использовать либо tcp-сокеты либо пайпы, но не могу определиться, что из этого лучше, ибо на форумах в сообщениях за различные даты встречал разные противоречивые мнения. вот хочу современные мнения узнать. или всё таки не выёбываться и потратить пару дней на дроч WCF, если он того стоит?
В MVC я делал это, наследуя ViewModel от IValidatableObject.
Есть мысль передавать в качеств е параметра в акшн-метод не саму сущность, а ее dto, и dto так же наследовать от IValidatableObject.
Дайте, пожалуйста, совет.
естественно, валидацию проводить нужно. можно просто использовать ValidationAttribute-ы для пропертей твоей модели
Вкратце: есть форма логина и есть требования по валидации. Кроме очевидных пустых инпутов может быть еще неправильный пароль, юзернейм и так далее, которые нужно подкрашивать. Логином, ровно как и самой валидацией, у меня занимается не модель представления, а другая либа вообще. Как лучше организовать моменты хотя бы тех же неправильного юзернейма и пароля? IErrorDataInfo говно ебаное, с ним нормальную валидацию не сделаешь. Инпутов на форме хоть и немного, но не хочется на каждый заводить HasError свойство, чтобы к нему забиндить error template. Или других способов все равно нет?
Есть один говнокод, который мне волею судьбы нужно поддерживать. Проблема в том, что сроки ограничены, а код работает не быстро. Совсем небыстро. В начале прога начитывает две таблицы из двух разных баз sql с двух разных серверов. Потом ебется с ними создавая зависимости и только через 40 минут можно собственно что то отлаживать. Наебавшись с гуглом я сократил это время примерно до 25 минут напихав plinq во все поля. Но все ровно есть куча мест, в которых процесс грузит систему на 25% максимум (1 ядро из 4).
Два особо проблемных куска это собственно начитывание данных из БД. Выглядит приммерно так:
while (reader.Read())
{
lst.Add(
new Customers()
{
customer_id = (int)reader.GetValue(0),
address = (string)reader.GetValue(1),
region = (int)reader.GetValue(2),
});
}
Хуярится все это через OleDb. Я вообще хз что тут можно оптимизировать.
Второй момент это работа с листами. Как я понял операции удаления из листа нельзя распараллелить. И это длится минуты. Я хз что с ними можно сделать, кроме как захуярить в массивы и удалять через циклы.
Есть какие идеи?
Вангую что каждый reader.GetValue это отдельный запрос в базу. Нельзя как-то сделоть через IQueryable и LINQ?
Сколько же у тебя записей в таблицах?
и есть часы на с#
зачем в часах используют строку Convert.ToInt16 ? что это значит?
например,
h = Convert.ToInt16(Console.ReadLine());
> Нельзя как-то сделоть через IQueryable и LINQ?
ХЗ, я в чтении из sql не силен. Если есть идеи буду благодарен за наводку.
> Сколько же у тебя записей в таблицах?
В сумме что то около полумиллиона.
Это не отдельный запрос
ну тип кароч приобразуит в шарт страку))
заюзируй Hashtable вместо листа. вродикак, удаление там шустрее
http://theburningmonk.com/2011/03/hashset-vs-list-vs-dictionary/
> приложение делало "это"
ну какт слишком размыто. интернеты не смогут ответить на все вопросы в такой манере. есть говнокниги в стиле "саветы праграмиздам", но и они не покроют в достаточной мере ответы на интересующие тебя вопросы. как правило, это знакомство с основой языка (+ некоторые внутренние части), плюс книги/статьи по шаблонам, архитектуре приложений и прочей хуите
и тут бац (спустя пол года) выходит RC2
=> Начинаешь перекатываться (ведь DNX стал deprecated) =>
Хуяк и перестали работать DllImport (юзаю нативную библиотеку для сжатия картинок).
https://github.com/dotnet/cli/issues/3105
=> ОК перекачусь c CoreCLR на MONO =>
Хуяк, а MONO больше не поддерживается, на Linux/macOS теперь только CoreCLR
https://github.com/dotnet/cli/issues/2576#issuecomment-211625062
=> ОК откачусь на DNX =>
Хуяк, а DNX закрыт и установщик выпилен
мне например нужно, что бы моё приложение брало данные из таблицы Excel, и выдавало мне нужный результат в моём приложении в табличном виде, что бы были фильтры и сортировка. Значить гуглить DataGridView например?
благодарю
%solution name% context menu -> Add -> Existing project
Access to foreach variable in closure. May have different behavior when compiled with different versions of the compiler.
Начал гуглить, но так нихуя и не понял нужно мне что то менять или забить хуй?
Так мне нужно каждый по очереди. Как это сделать селектом без цикла?
Код на работе. Там целый проект. Есть один foreach и в нейм пара сотен строк. Вроде все работает, но решарпер ругается описанным выше длинным словом. И нихуя не понятно имеет его мнение смысл или нет.
В целом забей хуй, если работает.
Зависит от компилятора. На одном может быть одна и та же переменная на каждом шаге цикла, т.е. с ссылочными типами можно на грабли сесть. А на других на каждом шаге новая переменная делается для текущего элемента. Поэтому решарпер и кидает warning
Примерно как то так и в гугле написано. Но мне бы хотелось понять, как дела обстоят именно у меня. Как я понял, мне нуждно чтоб делалась каждый раз новая. Но как в этом убедится?
из гугл апи, которые хоть как-то подходят под эту задачу, тольк Directions или SnapToRoads. но они, по сути, выполняют задачу поиска пути по имеющимся данным, а я хочу эти данные сконструировать для города/региона/страны
ну хуй его знает ёпта
на работе получил такое предложение, учить C#. у меня все на нем кодают, думаю легко пойдет, помогут если-что.
Какой?
1. Wpf для десктопа?
2. Аспнет ? (Да, нужен)
3. Ксамарин для ведроида и оси?
Во что вкатываться?
не поверишь, но на всем этом пишут и все нужно
> 1. Wpf для десктопа?
Ксамарин для десктопа. Нахуй ненужно.
> 2. Аспнет ? (Да, нужен)
Сайт на шарпе. Идея хорошая, но сосет с проглотом у пхп.
> 3. Ксамарин для ведроида и оси?
Рисовать треугольные квадраты и овальные пятиугольники вместо кнопок с изогнутым текстом. Если освоишь, то хорошо. Если нет, похуй.
Вот есть у меня listview, задаю ему итемссурс - коллекция пользовательских объектов. У этих объектов есть своя коллекция ещё объектов, и надо при SelectionChanged в listview рядом рисовать treeview по коллекции, которая лежит в выделенном пользовательском объекте.
Мне прямо через код менять итемссурс для тривью при SelectionChanged?
если я не ошибаюсь и это WPF, то тебе через код такие вещи менять не нужно. ну, если ты не пишешь в стиле button1_Click
Да, у меня wpf и mvvm, и всё норм до момента, когда надо treeview отрисовывать по селекшну в lv. Непонятно, как тут сделать красиво
byte[] byteArray=new byteArray[unknownsize];
T Rezult = (byte[])byteArray;
Разумеется, код выше нескомпилируется. Я было думать в сигнатуре метода указывать "where T:IConvertible", но судя по документации, имплементация IConvertible позволяет кастовать к шаблонному типу всякие там инты, стринги и прочую шушару, но в моей ситуации типом Т может быть только один мой кастомный enum, или System.Data.DataTable. Как быть, двощ, куда копать? инбифо землю себе рой мудила
Ты какую непонятную вещь хочешь сделать.
зачем тебе кастовать к byte[] ? Хочешь какие-то специфические для byte[] вещи сделать? Если да, то:
byte[] result = (byte[])byteArray;
byte[] result0 = result.Reverse() // для примера
T Rezult = (T)result0;
Конкретно я делал так:
Data[j] = (T)((ICloneable)Data).Clone();
где Data это T[].
ну тут вроде бы как у listView2 идет привязка к датасорсу модели, который поменяется (и просигналит OnPropertyChanged либо другим каким-нибудь ивэнтом) при изменении выбранного айтема для listView1
>>775824
ну прям совсем универсально не выйдет, тебе нужна какая-нибудь абстракция, которая может создавать инстанс имени себя из byte[]
тьфу блять, не дописал
то есть типа я создаю абстрактный класс AClass, в котором я делаю оператор public static explicitit operator AClass (byte[] byteArray)
{
/
проверка условий, по которым возвращается тип, которым может быть Т?
/
}
ну можно без explicitit operator (и даже лучше в таком случае), а просто объявить интерфасе с единственным методом
interface ICanBeConvertedFromByteArray
{
ICanBeConvertedFromByteArray GetValue(byte[] array);
}
ну, в любом случае, к T ты не приведешься. только после выполнения вышеуказанного метода и явным кастом с потенциальным InvalidCastException
в ScrollViewer запхай родительский контейнер
Дано: wpf-приложение. Использую windowchrome для красивой nc.
Вопрос: что сделать с resize и move в системном меню, чтобы было заебись?
Просто так они не работаю. Если убрать их из меню через винапи, ресайз и мув самого окна не работают, задисэйблить их тоже не вышло.
1) Перехватывать нажатия всех клавиш - примерно я представляю как сделать.
2) Записывать все в текстовый файлик, отправлять на фтп - тоже знаю как.
Примерно в таком виде, дешевом и сердитом, будет работать? Я ничего не упускаю?
Что нужно еще:
1) Как-то сообщаться с сервером - не знаю как сделать. Хотя когда-то писал на шарпе клиент-сервер какой-то.
2) Обновлять мое приложение тихо - самый сердитый способ который мне видится: проверять есть ли на фтп нужный файл с приставкой new - скачать его, запустить, выйти.
работать будет с загрузкой проца на 50% для процесса (для современных процессоров, возможно, цифра будет поменьше)
а так, пошел нахуй
+ к >>776711
> есть ли на фтп нужный файл с приставкой new - скачать его, запустить, выйти
вспоминаю ебалу, которую мы ну, не совсем, я в разработке этой идеи участия мало принимал в свое время на производстве придумали для обновления клиента. тоже подобное говнище, аж взгрустнулось но ты не забывай идти нахуй, к слову так
это же и есть тот самый pattern-matching, так жэж?
>работать будет с загрузкой проца на 50% для процесса
Схуяли, дурачок? Написал уже отправку всех нажатий в текстовый лог, полет нормальный, проц не грузит.
как отслеживал нажатия?
Хе-хе
Само хреновое что делегаты не конвертируются к джерик-делегатам (Func/Action).
Хочется обмазаться функциональщиной (без F#) и приходиться везде таскать крокодилы
Func<string, Func<string, Task<string>>, Action<List<Item>>>
Может они хотя бы алиасы для этого заведут как в котлине.
C#_6.0_in_a_Nutshell.pdf
C#_in_depth.pdf
CLR_via_C#.pdf
LINQ_для_профессионалов.pdf
Внедрение_зависимостей_в_.NET.pdf
лол, тебе же все надо усвоить, так читай все подряд, че не понятно будет, прочтешь в другой книге из перечисленных или в интернете.
Идея неплохая, канешь, но всё ещё считаю что знание Рихтера переоценено. Не думаю, что кому-то кроме сеньоров это реально пригодится в разработке. А мидлам и C# in depth пойдёт.
Если кратко, то всё вот так:
abstract class A
{
public static bool q;
}
class B : A
{
public static bool q = true;
}
как мне сделать, чтобы вижак не ругался?
Но я хочу сделать один родительский класс, и несколько дочерних, но чтобы в дочерних было одинаковоназывающееся статичное поле.
Можно это как то сделать, кроме варианта объявить в родительском абстрактном, а в дочернем уже в конструкторе задавать значение?
>Можно это как то сделать, кроме варианта объявить в родительском абстрактном КЛАССЕ, а в дочернем уже в конструкторе задавать значение?
СДЕЛАТЬ НАРМАЛЬНА БИЗ ТАКОЙ ВОТ ЕБОЛЫ
зачем тебе вообще такой изврат? чем не устраивают абстрактные члены?
Хз, есть IDataErrorInfo, но он говно ебаное.
Я вот не придумал, как подсветить конкретный инпут без введения доп. свойств типа "...HasError" и через дататриггер вешать на инпут с ошибкой эррор темплейт.
У меня всего три инпута на форме и, наверное, именно таким путем я и пойду, хоть мне не нравится идея шести свойств на три инпута.
А вообще, впф ссанина лютое и говно от аутистов. Жаль, что лучше в майкрософтмирке нет.
не лучше вместо удвоения количества свойств использовать какой-нибудь комплексный дженерик тип и с него брать статус ошибки/значение?
всё, я понял, спасибо, мне оно не нужно
Уволняйся
Беги оттуда.
Вот так нужно писать! Пиши-пиши-пиши-пиши! Пиши сайт, блядь!
https://www.youtube.com/watch?v=J7aStGi3hE8
рано, долгов наплодить не успел
Слабо себе представляю как фронтендщик будет лезть в Razor. Razor это инструмент бэкендщика
Ну не читай тогда. И так смотрю умный дохуя.
Как в юнити изменить шаблонный код новых скриптов на C#? Заебался уже каждый раз одно и то же руками править. Если что, привязка к VS 2015.
ну прям-таки только
собственно, это и будет полезный опыт. или тебе не?
в любом случае, в веб-приложении костяк составляет все-таки бекенд. если тебе дали только лайауты и XAML ковырять, то пичаль. если же ты делаешь дела и в BLL, то какая хер разница, на чем писать? разница-то есть, но не суть
> MVVM применяется только в Silverlight и WPF
Ты серьёзно? В большинстве случаев любой сложный интерфейс делают через MVVM. На том же фронтенде для этого используют Knockout и Angular (на реакте честно говоря хуй знает, не трогал его).
Если будешь потом прогать под мобилки, то для шарповского Xamarin.Forms (не советую его использовать, он довольно сырой ещё) тоже как правило используют MVVM либы MVVMLight и MVVMCross.
А _ у прайват членов и т.д.? Названия чего начинаются с большой буквы? Давай подробнее
Все названия пространств имен, классов, интерфейсов, енумов, структур, методов, свойств, публичных полей - PascalCase. Для приватных полей и локаьных переменных - camelCase. Символ _ (underscore) выбрось на помойку и забудь, уродство то еще. Интерфейс должны начинаться с символа I (IEnumerable), при наследовании о класса, в названии нужно сохранять название класса, от которого наследуешь. HomeController : Controller, ImportOperationStatusJsonParser : JsonParser Никогда не используй венгерскую нотацию, новояз и прочие сокращения. Описывая бизнес-логику, названия для переменных, свойств, методов должны исчерпываще описывать, зачем они нужны и что они делают.
То бишь код типа:
var rolesExceptRelatedToUser = await userService.GetRolesExceptRelatedToUser(user); должен вызывать для cисярппрограммизда увлажнение в трусах.
quickfix
точнее даже
var rolesExceptRelatedToUser = await userService.GetRolesExceptRelatedToUserAsync(user);
А чем плох underscore? По-моему удобно и всегда видно что поле приватное и не локальная переменная.
Нет в стандарте, значит нинужно.
Потому, что в сишарпе стоит избегать перловщины, язык изначально спроектирован так, чтобы не было кучи спецсимволов. Тебе руби тогда нужен, где есть полный набор из var, @var, $var и _var. Я бы даже сказал, что комментариев вообще-то тоже в сишарпе стоит избегать. Надо использовать либо встроенную документацию, либо писать такой код, чтобы не нужны были комментарии. Иногда бывает набыдлокодишь огромный метод, абы чтобы как-нить работало на скорую руку, а потом еще сидишь с помощью решарпера все это дело по маленьким методам рефакторишь.
>>780544
Если писать из принципа VerbrNoun, VerbNounAsync, то опускание User выглядит, будто тебе букв не хватило.
А протектед поля и переменые? А также протектед и прайват методы как?
Приватед поля с маленькой, остальные с большой. Свойства и методы всегда с большой.
А в принципе похуй, тут для приема/передачи на комп юзаешь SerialPort и норм. Он с байтами работает, так что выбери какойнибудь протокол для связи мк и пк (модбас например). Но это если чтото серьезное думаешь делать
В документации они пишут https://msdn.microsoft.com/en-us/library/ms229045.aspx
>DO NOT use underscores
В их гитхабе
>private readonly IModel _model;
https://github.com/aspnet/EntityFramework/blob/dev/src/Microsoft.EntityFrameworkCore.Relational/Query/ExpressionVisitors/RelationalEntityQueryableExpressionVisitorFactory.cs
Котаны, хелп. Есть вот такая страничка- в ней можно загружать изображения и выбирать из списка уже загруженные файлы для показа.
http://pastebin.com/XWXP0jRA
Каким образом можно прикрутить сюда удаление и редактирование имени выбранного изображения?
Пробовал через File.Delete(), чёт ничего не работало.
Написано на asp.net razor v3
WinForms делал тот же человек, что и Delphi, на 95% они идентичны. Потом переходить на WPF.
Ничего сравнимого по удобству с Delphi 7 хотя бы так и не появилось.
С .NET проблемы на делфи. Нужно освоить. Визуальное программирование совсем убого? Мне нужно научиться именно работе с компонентами, если писать на обычном Visual Basic это всё с нуля надо? Или тоже есть уже готовые компоненты?
Делал-то тот же, только "на отъебись".
То же самое, что и на Delphi + резиновая сетка для автоматического выравнивания/изменения размеров.
В шараге стоит Delphi 2007, там проблемы с ним, новый я туда не припру, они весят как скотины и если я без лицензии что нибудь поставлю меня ёбнут. Попробую WinForms.
Что вообще можете сказать, про программирование интерфейсов программ на C#? Или это не особо популярно? Я с трудом могу мозги перестроить после этого ебучего Delphi. Пробовал на Python это делать, с QT горем на полам пытался, ёбнулся, когда события присваивал этому всему.
Компоненты некоторые те же самые. FastReports для VCL - FastReports для .NET
Но в Visual Studio все это криво и косо
>там проблемы с ним
В чем проблемы?
> Что вообще можете сказать, про программирование интерфейсов программ на C#? Или это не особо популярно?
Популярно. Пишут и страдают, страдают и пишут.
Те кто Delphi не видел, страдают меньше - они не понимают насколько все это может быть проще и удобней.
> Я с трудом могу мозги перестроить после этого ебучего Delphi
Заебись. Ты попробовал клубок qt-говна, убедился в том что это переусложненное кривое говно, а виновата тебе в этом именно Delphi. Заебись.
Мне нужно написать программу родительского контроля. Нужно реализовать базовые функции, типа считывать аккаунты в системе, создавать процесс, который будет следить за активностью пользователя по таймеру. Должно быть общее количество часов и почасовой режим. Ведение журналов действий пока особо не надо. Вся эта хуйня должна пойти на диплом. Сказали посмотреть в сторону .NET, я пока до сих пор не понимаю что именно мне сейчас смотреть, решил для начала поставить это всё. Можете что нибудь посоветовать? Хуй с ним с интерфейсом, что вообще на эту тему почитать можно?
В шараге он ебошится при попытке запуска любого приложения на Delphi 2007, лицензия стоит кооперативная, сказали. НУ ВОТ ТАК.
Delphi ни в чём не виновата. Это замечательный язык как по мне, проблема в том, что программа выходит хуй знает какого размера (и я программирую как убогое говно скорее всего) и сейчас все другие языки программирования выглядят как-то ИНАЧЕ. Сложно воспринимать всё, после того как с делфи работал.
> В чем проблемы?
Access Violation при запуске, что же еще. Управление памятью всегда было больной темой в Delphi - и GC нет, и вручную как на C++ распределять нельзя.
У меня такие же мысли. Но писать надо, второй вариант это йобнутая хуйня с базами данных (от которых уже тошнит) и программой которую я должен сам нафантазировать на произвольную ТОРГОВУЮ ТЕМУ. Ну нахуй.
Dependency injection. В composition root в твоем контейнере регистрируешь тип в скоупе синглтона.
>>781586
Пиздец. Я ни одного слова не понял я в wpf со вчера . По подробней нельзя объяснить или я пошёл нахуй в гугл?
Зачем поддерживать синглтон самому, когда это за тебя будет делать контейнер?
>>781530
Твои классы зависят в основном от других классов. Твои модели представления, например, скорее всего зависят от интерфейса доступа к данным. Чтобы не выстрелить себе в ногу, как правило такие зависимости передаются классу через конструтор кодом, который вызывает этот класс. Это dependency injection.
У вызывающего кода тоже свои зависимости, и так далее до самого начала. Composition root - это то место, где ты создаешь все свои зависимости и, в идеале, на выходе получаешь один инстанс какого-то одного класса, с которого начинается вся работа.
Чтобы вручную все эти зависимости не пихать есть специальные тулзы - IoC контейнеры.
Судя по всему ты не шаришь, поэтому советую не идти в гугл, а сразу скачать Dependency Injection in .NET и следовать всему, что там написано. В гугле, как правило, примеры по dependency injection полны антипаттернов (в частности сервис локаторы). Не читай все это говно, прочитай лучше книгу и пойми, что там написано. Потом себе спасибо скажешь.
И еще почитай про трехуровневую архитектуру, потому что это
>Логику клиента запихал в отдельный класс.
не хорошо. Каждому окну\странице\вкладке - свой класс с логикой (в разумных пределах, конечно).
> Каждому окну\странице\вкладке - свой класс с логикой
Бред, бизнес-логика вообще не доложна быть привязана к экранам.
Кто сказал, что что-то должно быть намертво привязано?
Оох. Яснопонятно, спасибо.
И еще вопрос по WPF. Никто не сталкивался с таким, что когда комбобоксу присваиваешь стиль, то не видно выбранный объект и не видно вводимый текст (если IsEditable==true). Если не использовать стиль, то всё работает как часы. Понятно, что проблема со стилем, но что именно с ним может быть не так? Есть шаблон контрола для toggle button'a, есть шаблон контрола для PopUp и для TextBox, все они используются в шаблоне ComboBox'a. И что самое для меня удивительное, не так давно мне удалось завести это говно, т.е. элементы из раскрываемого списка выбирались и отображались на комбобоксе, но потом, после некоторых действий, никак не связанных со стилем CB, элементы комбобокса снова не отображаются. Комбобоксы привязываются к public observable collection'ам в view model через ItemsSource=
"{Binding Path=ObsColName,...}" ссылка на объект view model объявлена в неймспейсе, сам объект создаётся к конструкторе окна и я тут же присваиваю DataContext'у окна объект ViewModel. Также, у комбобоксов SelectedValue привязано к свойствам-string'ам в том же объекте view model. view model реализует INotifyPropertyChanged. Ну и свойства при изменении вызывают метод PropertyChanged.
>ссылка на объект view model объявлена в неймспейсе
Вру, ссылка объявлена в классе. Самофикс.
А всё, отбой тревоги. Я ебаклак просто, закомментировал нужный шаблон текстбокса и оставил с таким же наванием пустой.
Задачка простая: создать класс который проверяет валидно ли судоку, или его нельзя юзать.
Начал хуячить, создал массив, прохожусь по массиву(чтобы понять сколько на сколько судоку, часть задания) и тут какого то хуя всплывает пикрелейтед из второго GetUpperBound. Я ему мамой клянусь массив двумерный а он не верит. Далее код.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SkillTest
{
class Program
{
static void Main(string[] args)
{
int n;
int[][] goodSudoku1 = {
new int[] {7,8,4, 1,5,9, 3,2,6},
new int[] {5,3,9, 6,7,2, 8,4,1},
new int[] {6,1,2, 4,3,8, 7,5,9},
new int[] {9,2,8, 7,1,5, 4,6,3},
new int[] {3,5,7, 8,4,6, 1,9,2},
new int[] {4,6,1, 9,2,3, 5,8,7},
new int[] {8,7,6, 3,9,4, 2,1,5},
new int[] {2,4,3, 5,6,1, 9,7,8},
new int[] {1,9,5, 2,8,7, 6,3,4}
};
Console.WriteLine("Length of Array: {0,3}", goodSudoku1.Length);
Console.WriteLine("Number of Dimensions: {0,3}", goodSudoku1.Rank);
Console.WriteLine(goodSudoku1.GetUpperBound(0) + 1);
Console.WriteLine(goodSudoku1.GetUpperBound(1) + 1);
Console.ReadLine();
}
}
}
Задачка простая: создать класс который проверяет валидно ли судоку, или его нельзя юзать.
Начал хуячить, создал массив, прохожусь по массиву(чтобы понять сколько на сколько судоку, часть задания) и тут какого то хуя всплывает пикрелейтед из второго GetUpperBound. Я ему мамой клянусь массив двумерный а он не верит. Далее код.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SkillTest
{
class Program
{
static void Main(string[] args)
{
int n;
int[][] goodSudoku1 = {
new int[] {7,8,4, 1,5,9, 3,2,6},
new int[] {5,3,9, 6,7,2, 8,4,1},
new int[] {6,1,2, 4,3,8, 7,5,9},
new int[] {9,2,8, 7,1,5, 4,6,3},
new int[] {3,5,7, 8,4,6, 1,9,2},
new int[] {4,6,1, 9,2,3, 5,8,7},
new int[] {8,7,6, 3,9,4, 2,1,5},
new int[] {2,4,3, 5,6,1, 9,7,8},
new int[] {1,9,5, 2,8,7, 6,3,4}
};
Console.WriteLine("Length of Array: {0,3}", goodSudoku1.Length);
Console.WriteLine("Number of Dimensions: {0,3}", goodSudoku1.Rank);
Console.WriteLine(goodSudoku1.GetUpperBound(0) + 1);
Console.WriteLine(goodSudoku1.GetUpperBound(1) + 1);
Console.ReadLine();
}
}
}
Двумерный массив низя. Эта херня часть задания. Но спасибо. Я как-то провтыкал что это массив масивов.
обоссал закуток спермаиндусов
Сейчас контракт службы выглядит таким образом
http://pastebin.com/7eN340vP
достаточно аннотировать имеющийся класс как [DataContract] а все свойства как [DataMember]
Вот код.
http://pastebin.com/ENnDeT70
На Хабре об этом не писали?
Лол, был в похожей ситуации. Парниша пиздатый SPA делал, пришел новый начальник, всех собрал и сказал - это что такое? на asp.net mvc razor все должно быть, переучиваться будут все. Почти весь отдел написал заяву в тот же день я тоже
Тогда, видимо, проблема не в коде, а дисплее или около того. KMP когда на весь экран фильм разворачиваю тож пишет разрешение 1536х864. А виндовоз грит что фуллхд. Странно всё это.
Telemetry is: Enabled
Project test (.NETCoreApp,Version=v1.0) was previously compiled. Skipping compilation.
> Telemetry is: Enabled
> Telemetry is: Enabled
> Telemetry is: Enabled
Спасибо, Майкрософт!
а у нас все наоборот. Хуяк и одномоментно все учим нокаут и иже с ним
да это ущербо-ось пока что. Под Rasspbian(Debian) запускаю.
Начиная с RC2 моно больше не поддерживается (и не будет).
https://github.com/dotnet/cli/issues/2576#issuecomment-211625062
Ну пускай тогда под ARM x86 мне дотнет запилют, суки. Не покупать же ради этого RPi 3.
Да, хуйню пизданул. Кароч надо под арм линукс
Объясните мне что происходит? Работаю в одной софтварной конторе asp.net кодером и примерно с 15 года началась тенденция, что даже самые стабильные заказчики все чаще говорят "не хотим windows server - хотим gnu/linux", хотя раньше их все устраивало. И позиция у них все жестче и жесче "винда на сервере, вы что смеетесь". У нас уже создали целый отдел под node.js/angular, что дальше?
Двачую, сам давно перепрыгнул и теперь плачу копейки за мощьный VPS на Ubuntu
(и никакой отдельной платы за лицензию на windows).
Плюс docker контейнеры нормальные и человеческий SSH.
Поясните, почему все так кипишат из-за каких-то проблем с релиз-кандидатами? Какой даун вообще пишет продакшн код на нерелизнутой платформе?
Я сам был виндоблядком до некоторых пор. Недавно увлёкся изучением линукса. Теперь я понимаю что сервера на линукс это лучший выбор. Ты представь что на твоём серваке можно поставть ровно столько софта/либ/и рантаймов сколько тебе нужно для работы. Там не будет ВООБЩЕ ничего лишенего.
Windows server же это огромная свалка борохла, а при этом нужен он тебе только для того чтобы сайтец хостить в IIS (сферический пример, но тем не менее такое может быть). Огромное количество ресурсов машины тратится на хуй пойми что. Ставятся обновления компонентов которые ты вообще не используешь(да и ещё эти обновления могут поломать к хуям то что ты, как раз таки, используешь). Подняты службы которые тебе не в хуй не впёрлись на этой машине(общие папки, обозреватель сети, служба печати и проч.)
По сути правильно собраный линукс для тебя это ядро ос + твоя рабочая нагрузка + либы которые нужны для твоего софта. Я уже не говорю о скорости поднятия машины. Если у тебя распредёлённая система с динамически поднимаемыми вм это вообще шик. В Azure развёртывание дополнительного инсанса в Azure services занимает минут 10, это пиздец ящитаю.
Мы начали писать, но проект не находится в активных продажах сейчас. Был опыт продажи проектов FMCG компаниям. Они ахуевали от стоимость SQL того-же самого + win server. Так что новый продукт решили пилить на .netcore + postgresql.
>katana
Хуйню сказал, owin естественно. Никакой ебли с IIS. Для селфхостед уже катана, ога, тоже мегагодная штука.
Никому :) , это бэкенд для моих же мобильных приложений (которые тоже open-source).
Именно по этому мне нужны экономные решения и никто не ограничивает меня legacy-технологиями.
Там есть большое количество служб. Можно просто виртуалку развернуть и будет тебе обычные дэдик. Есть Azure Services, которая умеет в автоматическое горизонтальное масштабирование, которое легко настраивается.
Так же есть Web app это типа shared хостинга у обычных провайдеров. Ты просто по FTP закидываешь сайт и оно работает. Есть бесплатный план обслуживания(как раз таки shared, без гарантий по производительности и невозможно привязать свой домен. По умолчанию даётся твой_сайт.azurewebsites.com).
SQL Azure это по сути MS SQL без администрирования самого сервера. Создаёшь типа виртуальный сервер, создаёшь в нём сколько тебе надо бд, берешь коннекшн-стринги и работаешь. Всё делается через гую без мозгаёбства минут за 15.
Кстати для SQL тоже есть какие-то бесплатные лимиты.
Собственно в используя azure webapps
https://azure.microsoft.com/ru-ru/services/app-service/web/
Тебе твой оуин вообще не нужен.
Ну на работе у меня классический asp mvc стэк. Coreclr и линукс это я по фану дома ковыряю. Понравилась мне вся эта история с тех пор как диплом написал на распбери пи debian +coreclr + sqlite
Потому что команда состоявшихся высококвалифицированных дотнетчиков. Тратить деньги на переобучение никто не хочет, да и смысла особо нет. Дешевле подправлять пока стейбл не выкатят.
Есть один курсач, на шарпе, ибо мы не ищем лёгких путей и учим основы языка за 2 дня: http://pastebin.com/uHtfhTDY
Итак, имеется явная проблема со считыванием. Мне кажется, или код, вместо того, чтобы взять двойку из таблицы, видит там набор умлаутов из "Mein Kampf"? Иначе я не могу объяснить вот это:
[CODE]Необработанное исключение типа "System.FormatException" в mscorlib.dll
Дополнительные сведения: Входная строка имела неверный формат.[/CODE]
>FMCG компаниям. Они ахуевали от стоимость SQL того-же самого + win server.
FMCG-компаниями ты продуктовый магазин дяди Ашота штоле называешь?
Дешевое пека-железо, дешевые шарпо-студенты, дешевый вин-сервер. Единственное что дорогое может быть это MS SQL Server, но только со всеми энтерпрайзными свистелками - да, тогда он уже почти как серьезные СУБД начинает стоить. Но вашему продукту они зачем, свистелки эти все?
>команда состоявшихся
>нетькорэ
А что вы там пишите? Там же пока сырое все
Все шарящие сейчас на node/angular ушли жи
такое впечатление, что фундамент платформы кардинально изменится/изменяются с выходом Core
У меня есть дерево классов, в нем некоторые дети перегружают методы некоторых родителей, но аргументы остаются те же.
И есть помимо него еще класс, в котором есть метод, который в качестве аргумента должен иметь возможность экземпляр любого класса из дерева, и в дальнейшем вызывать его метод (который там то перегружается, то нет).
Попробовал сделать просто через указание родительского класса как тип аргумента, но тогда вызывается метод родителя, даже если у наследника есть перегрузка.
Пытался понять как сделать через дженерики - и не понял.
Помогите пожалуйста, с меня два спасибо.
> Попробовал сделать просто через указание родительского класса как тип аргумента, но тогда вызывается метод родителя, даже если у наследника есть перегрузка
такое происходит, если ты используешь new для переопределения метода родителя, либо родительский метод не виртуальный и, по сути, у наследников происходит перекрытие родительских методов
кроче, надо юзать виртуальные методы
Спасибо тебе, большое спасибо. Всё встало на места.
Правда, теперь я не понимаю - отчего вообще возникла необходимость явно указывать перезапись, интуитивно это кажется наиболее верным поведением (мне).
тогда, имея два и больше варианта поведения, как определять, какой тебе нужен в данный момент?
Просто погуглил:
http://stackoverflow.com/questions/4801215/how-do-i-use-an-xmlserializer-to-deserialize-an-object-that-might-be-of-a-base-o
http://stackoverflow.com/questions/20084/xml-serialization-and-inherited-types
мимо
Благодарю
Каждый раз проигрываю с тех, кто умудряется получить ВО, но при этом не получить опыт работы. Вы как так делаете?
Учиться же надо, ты што, некогда работать!
опыта чуть больше года, знаю mvc, ef, tsql, немного фронтенда(angular, knockout). хочу чтобы побольше бэкенда было.
макдак. первое время сплошной бэкенд, потом с повышением все больше работы во фронте
Что посоветуете интересного?
проект dll-а с классами в SolutionExplorer -> References (ПКМ) -> Add reference -> Projects -> ищешь свой проект с UserControl -> отмечаешь галку -> OK
>ищешь свой проект с UserControl
вот это же через browse делается? а то у меня список solution'ов пустой. И ещё, добавлять нужно файл .dll, .sln или .csproj?
ну тут нормальным вариантом будет добавить post build event для проекта с контролом - копировать dll и pdb соответствующей библиотеки и всех зависимых частей куда-то в папку скомпилированных библиотек, а для другого проекта - добавить референс на длл из той папки. после ребилда у тебя будет гарантия, что ты используешь всегда актуальную версию
подозреваю, частично механизм у тебя именно так и работает, но тут, скорее всего, проблема в том, что источник библиотеки не обновляется по какой-то причине
Оказалось, в одном из namespace'ов библиотеки с классами были ошибки, которые при сборке почему то не показывались. Сейчас осталась вторая проблема - добавляю в библиотеку с классами reference на библиотеку WPF-UserControl'ов с окном, и при использовании namespace'a с окном, VS2013 выдаёт ошибку, что типа "тип или пространство имён %имя пространства имён% не может быть найдено. может вы забыли референс?" При этом, namespace из той же библиотеки нормально видится той же студией в другом WPF-проекте - не библиотеке. ШТОДЕЛАТЬ
Всё, решил проблему. У библиотеки WPF UserControl целевая версия .net framework была выше, чем у библиотеки с классами
Катана это имплементация OWIN спеки, там по сути обычный http listener. Не вижу в ней смысла сейчас, когда core релизнулся.
Kestrel из .net core в этом плане на порядок производительнее и дает пососать и ноде и goвну.
Можно конечно, но в продакшн лучше все равно проксировать через Nginx. Да и по раздаче статики он лучший вариант.
по сути, никакого
http://stackoverflow.com/a/1554058
только для первого и последнего пункта по ссылке мне нечего сказать, т.к. не сталкивался. остальное - какая-то хуита
Что почитать про энтерпрайзное архитектуренье в .NET-экосистеме?
Что вместо JPA, что вместо JMS, что вместо JTA?
Распределенные транзакции, очереди, вотэтовсё.
ASP.NET и другие вебодела неинтересны, для веб-недобэкенда есть Node с хипстерами за миску пиццы.
Ну последняя хуйня довольно полезная, когда нужно конструктор потестить на проверку аргументов, или аргументы правильно расчитываются.
>>786953
У NUnit с третьей версии есть большой недостаток - не работает их GUI Runner и приходится запускать тесты плагином для студии, который ну очень сильно тормозит
Из тех, кто работал в нашей группе, никто не закончил универ.
WCF - это обертка над MSMQ и MSDTC со свистелками?
>недобэк
Для этой вашей .Net Core есть какая нибудь ModbusLib или ничего еще .Нет?
для ноды есть например
Ты задачу то бы описал сначала? На примере вк - документашка вк может тебе и логиниться не надо будет
Если все же хочется поиграть в жс - можешь посмотреть в сторону phantomjs, или anglesharp, который тоже умеет в выполнение скриптов.
Нужно было помогать в бизнесе родителям, постоянно работал у них, по специальности опыта не получил
>Кокок подчёркивания не нужны.
В то же время в доке аспнета все примеры их используют.
разве?
Leading underscore и snake_case не одно и то же.
1) Почему пишут "Для автоматического определения адреса одиночного прибора допустимо использовать команду запроса версии с широковещательным адресом 54535251"
Но в мониторе видно что порядок вообще обратный, а именно надо посылать в таком порядке:
byte[] broadcastInvoke = { 0x51, 0x52, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x4A };
Почему в обратном порядке отправлено первые 4 байта?
Эту строку я скопипастил из монитора и сделал массив, тестировал соединение
2)L-3, L-2,L-1 это длина в байтах? Вот есть команда 14 (запрос заголовка архива с устройства). Адрес устройства я получил, команда 14, параметры команды 01. Заполняю: 35 51 00 00 15 01 XX XX XX XX XX XX XX XX XX XX - что в этих иксах писать? Я могу посмотреть монитор опять, но я не пойму суть.
2) Поясни за контрольные суммы по модулю 2 и 256 - как их генерить? Я понимаю что это XOR, но что складывать и как выводить в сообщение? Какой порядок? опять обратный или нет?
Шарпач, помоги!
Там же написано, что младший байт передается первым, про endianness прочитай уже. Попробуй нулями заполнить, а лучше посмотри что на самом деле отправляется. По модулю 2 - бит четности, 256 - байтики складываешь не обращая внимание на переполнение
Что значит байтики складываешь? Я только ООП выучил более-менее, а булеву алгебру только в школе проходили.
Как бит четности найти, что тут нужно складывать, можешь привести пример, раз уж тащишь. Тебе это явно не составит труда, няша.
>>788263
Опросить теплосчетчик и расшифровать входящие данные.
Значит запись в мониторе идет в обратную сторону; чтобы понять как работать с 14 командой нам нужно ее видеть, вот пример с 0:
FF FF FF FF /АДРЕС/ 00 /КОМАНДА/ 00 00 00 00 00 00 00 00 00 /ДАННЫЕ/ FF FF /CRC/
Так как параметры явно не указаны, значит можно заполнять нулями, если в другом месте описания протокола не написано обратное.
>Но в мониторе видно что порядок вообще обратный
>Младший байт адреса передается первым
>передается первым
>первым
Совсем пиздоглазый?
Я разобрался, спасибо. CRC победить не могу.
XOR же это оператор ^
Складываю в калькуляторе - ок! получается 0x35^0x51^0x02 = 0x66
Складываю в коде - пися, получается 0х18
ЧОМУ!?!?!
Потому что для нужного мне дистра нет готового решения, очевидно же. Частично ответы нашёл тут:
https://github.com/dotnet/coreclr/blob/master/Documentation/building/freebsd-instructions.md
Но вообще MS здесь подобосрались маленько, в линуксе ведь как принято - указываются зависимости, а дальше оно должно собираться почти без танцев с бубном на любом дистре. В данном случае всё иначе.
Ладно, похуй, придётся дебиан накатывать.
private void Che_nebud(object sender, EventArgs e)
{
...
}
private void Question_TextChanged(object sender, KeyEventArgs e)
{
return Che_nebud();
}
Или объединить как-нибудь EventArgs и KeyEventArgs? Вообще я хочу чтобы функция срабатывала при нажатии на кнопку "Ввод" и enter на клаве.
> Можно ли из одного воида вызвать другой воид?
Конечно, только надо сначала результат Che_nebud() присвоить во временную переменную и ее уже потом возраращать.
Как это сделать? Допустим есть куча функций после обработки которых в конце вызывается эта самая Che_nebud()
А иногда лучше иметь контейнер, который
- может развернуть за минуты на любой машине
- можно запускать несколько экземпляров не заботясь о конфликтах
- можно перемещать с машины на машину вместе с настроенным окружением
- можно иметь базовый настроенный контейнер и наследоваться от него
- можно централизованно обновлять инкриментно все контейнеры через hub
Если ты из void хочешь вызвать void, то return не надо. Иначе необходимо вызывать все, что ты там хочешь внутри, приводить к возвращаемому типу данного метода и вертать
В папке images
Entity Framework, LINQ-to-SQL
Action callback;
1) callback();
2) callback.Invoke();
Нету их это одно и тоже.
Только во втором случае ты можешь еще написать callback?.Invoke(); для избежание NPE
P.S.
Ну почему блин до сих пор не сделали callback?(); ?
Чтобы жопа от сахара не слиплась.
Потому что ещё не вышел C# 7/
Если что сцена пустая, вся логика пока абстрактная, это же так называется?
Конечно, берешь свой проект 2010 года под Windows с COM, WCF, C# 3.5, ASP.NET 2, EF 3
и переносишь на линкус.
почему нет? в продакшн, конечно, отправлять на свой страх, но знаю две конторки, клепающие на коре коммерческий шлак
В принципе уже можно. Проблемы есть, но они как правило связаны с какой-нибудь экзотикой - достаточно те самые ишьюсы почитать. Пока что самый главный минус - это местами довольно сильное отличие master на гитхабе от того, что есть в готовых бинарниках, поэтому может потребоваться самостоятельная сборка Core + CoreFX + CLI, чтобы какой-нибудь срочный баг пофиксить. На debian stable с этим проблем нет, например.
Ну и делать что-то mono уже как-то не камильфо, там как не работали многие вещи, так до сих пор и не работают. Плюс вспомогательные компоненты mono типа xsp не обновлялись уже чёрти сколько, поэтому их тоже приходится отдельно собирать с патчами.
Я вот недавно решал, на чём буду писать новый прожект под линукс, хотел уже C# дропнуть и делать всё на nodejs, но релиз Core несколько исправил ситуацию.
Если через Insert, то это удалять 1 строчку каждый раз при достижении максимального, но как она удаляется, первый столбец ключевой типа int нумерация сбивается, в итоге через пару дней работы там уже будут нихуевы значения, первая строчка уже под номером 170 тысяч, вместо 1.
>Update запись сразу в 4 таблицы делается долго( по 150мс в каждую таблицу)
Чё-то дохуя, хотя смотря что ты там хранишь, конечно. Юзай Dapper или SqlCommand.
Ну у меня по сути вся проблема в том, что я когда удаляю первую строку, у меня удаляется вся строка и соответственно там ключевой столбец "N" была строка с номером один, удалил ее, теперь первая сторка с номером 2 и т.д. Мне то в принципе поебать что там в этом ключевом столбце, он мне вообще нахуй не нужен, но я боюсь, что там когда-нибудь выйдет за диапазон INT и будет эксепшн выдавать или что-то вроде того
http://stackoverflow.com/questions/21824478/reset-identity-seed-after-deleting-records-in-sql-server
А, у тебя EF.
Смирись уже, это стандартный подход любой БД или делай как >>791489 говорит, только не на всякой базе это есть.
AIK будет расти пока не упрется в максимум, только после этого он начнет подбирать свободные значения.
AIK это вообще более быстрая/оптимизированная альтернатива Guid (генерация неповторяющихся айдишников).
У тебя какая-то логика работы приложения неправильная, раз зависишь от его конкретных значений.
Есть страница, которая выдаёт n первых результатов в виде ul-списка, а затем подгружает остальные по мере прокрутки страницы вниз. Проще говоря, принцип отображения схож с лентой новостей вк, только на обрабатываемом ресурсе есть пределы, до которых страница "растёт вниз" (присутствует счётчик страниц, например, Page 1 of 150). Навигация по страницам также присутствует.
Когда я создаю CQ DOM объект с содержимым по требуемому запросу, то получаю код как раз тех самых первых n результатов - то есть, всё то, что поместилось на страницу 1. Есть ли какой-то хитрый способ, чтобы без особого геморроя получить код всех страниц по одному запросу в один объект? Или нужно сперва получить количество результирующих страниц, а потом в цикле пробегать их все, каждый раз создавать новый DOM объект и парсить по-отдельности? Вариант сомнительный, т.к. каждая страница и так парсится не особо быстро - в пределах 1.5-2 секунд, а если страниц 5-10 тысяч?
Ну может логика неправильная я не знаю, подскажите что ли.
Вот у меня есть необходимость каждую секунду записывать показания с датчиков, нужно чтобы эта информация хранилась 24 часа(86400 секунд). Старые значения не нужны.
Датчиков у меня 30 штук.
Получается делаю базу данных, в ней таблицу с полями N(PK),Time,Датчик1, Датчик2, ДатчикN...
Каждую секунду делаю db.Table.Add(entry) в итоге у меня каждую секунду добавляется новая строка в таблицу, так пока количество строк не станет 86400, теперь мне больше строк не надо, какой выход? Удалять первую строку и вставлять новую, так у меня всегда будет 86400.
Как это лучше сделать?
поставь сторонний джоб, который каждый час будет удалять все записи, не входящие в топ-86400 по времени
>джоб
?
>удалять все записи
Первичный ключ при этом будет обновляться или так же как сейчас будет смещаться?
>>791511
>Партицирование
Сейчас погуглю
ну какой-нибудь сторонний скрипт, запускающийся по интервалу
первичный ключ будет инкрементироваться, как и любой другой первичный ключ
>AIK
Автоинкремент? Ну я все это делаю через Entity framework создал таблицу - первичный ключ int и он сам стал автоинкрементом, нельзя убрать с него автоинкремент([N] INT NOT NULL PRIMARY KEY,) вот и весь его код. А без Primary key - ошибка.
Туплю, вроде можно без автоинкремента, самому вставлять значения в N.
long хватит всего на 68 лет, если не брать отрицательные, а вот bigint хватит до конца времен.
>но релиз Core несколько исправил ситуацию
Я вот хочу запилить веб-сервер для игры и думаю использовать новый asp.net core. Выглядит он круто, гораздо лучше старого asp. И вроде как работает быстрее, но чёрт знает. Не хотелось бы потом ловить баги. Хотя сервер простенький.
Что-ты сомневаешься: ASP NET Core уже вышел стабильной версии 1.0, EF Core тоже.
Сам .NET core конечно еще версии "preview 2", ну так НЕ бери всякие извращенные линкусы.
Возьми Ubuntu или Debian для сервера, на них все отлажено и стабильно (а лучше официальный докер).
>Вообще то вышел уже.
Кто?
У .NET Core последняя версия 1.0.0-preview2-003121
У тебя где-то есть стабильная?
Хранимая процедура. В принципе можно и в коде обработать.
Мне вроде сказали, что вышла rtm
RootObject rootObject = JsonConvert.DeserializeObject<RootObject>(jsonResponse);
в rootObject все остальные объект. Поле attrib типа object. при десериализации поле attrib имеет либо тип object(bool), либо object(Newtonsoft.Json.Linq.JObject). А можно сделать так что бы оно сразу приводилось либо к bool либо к моему типу Attrib? Подскажите годных статей как парсить такие json?
Пиши кастомный конвертер. Вот пример из доков Newtonsoft:
http://www.newtonsoft.com/json/help/html/CustomJsonConverter.htm
Дальше гугли уже самостоятельно, на SO было несколько тредов на эту тему. Только учти, что они несколько староваты, с тех пор интерефейсы малость поменялись.
>Возьми Ubuntu или Debian для сервера, на них все отлажено и стабильно (а лучше официальный докер).
Иногда с MS можно проигрывать бесконечно. Убрали из зависимостей mono, зато теперь mscrolib.dll только по ссылке под конкретный дистр. Обещают вроде пофиксить это дело. Вот тогда заживём, да. Можно будет не привязываться к обоссаным ubuntu/debian алсо проиграл от версии nodejs в debian stable.
Unity3d.
На самом деле вполне можно найти работу, где будешь иметь дело с винформами, но это конечно менее перспективное направление.
Пиздец. В релизе третьего апдейта пиарили оптимизацию памяти в студии как главную фичу. После установки студия стала жрать почти в два раза больше. Дебилы бля.
Беру переменною строки в код и как мне вставить значение в {0}
Докумекал сам
можэ решарперский или еще какие-нибудь говноаддоны? бывшие тиммейты тоже после апдейтов ругались на подобную ебень, но источником проблемы была во всех случаях точно не ВС
В /б/ пиздуй
Лолка, лучше одного быдло-кодера на зимарине нанять, чем отдельно под каждую мобильную платформу. Тем более, что разницы в производительности нет. Нативность платформ поддерживается
А куда вкатываться, если со своим скиллом под мобилки что-то делать не вариант, а веб чет не нравится вообще?
я не знаю, соре
Зайди в любую контору и спроси: 1 говнокодер на шарпе или вместо - жабаеб и крестовик для мобилок
Не знаю где конкретную имплементацию найти, просто исходя из того что впф как раз был создан для такого типа интерфейсов. Самому наверное долго писать, может стоит посмотреть всякие прикладные бибилиотеки типа telerik или devexpress.
Кстати, как в последней студии получить полный доступ к фичам этого ксамарина? Юзаю пиратский ключик если что.
попробую devexpress. Спасибо.
На коммьюнити все работает бессплатно
Вот я пришел на собеседование по ASP.NET вакансии. Когда я сказал что хотелось бы заниматься бэкэндом и я не могу по псд шаблону сверстать страничку, на меня посмотрели как на дауна.
Говоришь им, мол я хтмл макака вам или кодер и шлешь нахуй
ВНЕЗАПНО студия и написана на впф.
Во втором посте.
Есть один пикчюрбокс. В него грузятся изображения разного размера. И нужно сделать так, чтоб по ширине он всегда был одинаков 480 пикселей, а по высоте занимал ровно столько, сколько нужно для изображения. Т.е. что бы и альбомные листы показывал и портреты.
Поставил ему PictureBoxSizeMode.Zoom Картинка отображается как надо. Но сам бокс не меняется в размере. Если задать ему размер руками, то по бокам всегда будет пустое пространство если изображение не квадратное. А как сделать так, чтоб он сам менял высоту под конкретное изображение?
Сука, теперь я понимаю боль здесь сидящих.
Преобразовывает введенную строку в 16-и битное представление целочисленного числа со знаком. h из контекста задачи - часы. Следовательно задает час, введённый с консоли. Почему Int16 вместо int? Потому что экономия памяти в 16 бит, хотя я бы взял byte, будь это кресты или наконец DateTime'ом кастовал
>насколько важно хорошо разбираться в верстке
Нужно знать основы HTML, CSS, JS, Bootstrap. Знать примерно основные фреймворки. Верстать тебе нужно будет только если тебя как фуллстек программиста возьмут, но я бы не стал браться за такое, ибо тебе мозги вынесут просто нахуй. Просто основы подучи и все основные паттерны ASP.NET типа UnitOfWork, Repository, Service. И про SOLID не забудь, а то засмеют.
>>792635
>Потому что экономия памяти
Скорее это только ухудшит работу с памятью. Использовать типы отличные от int нужно с большим умом. Я когда только C# учил тоже везде пихал shot'ы, байты и тому подобное, пока мне не сказали, что я занимаюсь хуйитой.
Если ты в программировании совсем ньюфаг, то я бы посоветовал эту книгу для начала (правда её сложно найти)
http://www.ozon.ru/context/detail/id/1462024/
Вот отзыв:
Книга отлично подходит для тех, кто только начинает изучать программирование, не имея никакого опыта вообще. Написана очень доходчиво. По каждому аспекту рассматривается большое количество часто возникающих вопросов. Для профессионалов в C# чего-либо интересного в книге нет.
>Нужно знать основы HTML, CSS, JS, Bootstrap
А, и HTTP тоже изучи, если ещё не знаешь. Ещё
https://habrahabr.ru/post/189086/
>насколько важно хорошо разбираться в верстке.
По-хорошему, нужно знать и уметь дебажить JS (соответственно, понимать как работают всякие jQuery, Bootstrap, Angular, React), потому что овердохуя багов будет сыпаться в твой бэкенд именно из фронтенда. А значит, неплохо бы ещё понимать, что это за фигня написана в cshtml-файлах. Лишними эти знания не будут, инфа 100%.
>Когда я сказал что хотелось бы заниматься бэкэндом и я не могу по псд шаблону сверстать страничку, на меня посмотрели как на дауна.
Ну сейчас рынок такой, хуле. Многие хотят получить именно фуллстэк-кодера, при этом в вакансии может быть написано что угодно. Но это совсем другой уровень мозгоёбства и, соответственно, оплаты труда.
Если ты целенаправленно идёшь на бэкенд, то просто забей на этих товарищей и ищи дальше. Есть адекватные конторы, которые не будут задавать дурацких вопросов, а будут спрашивать только за бэкенд.
>хуитой
И правильно говорят. Нахуй экономить память там, где её много подметает GC. Это не микроконтроллер.
Во имя Того, чье имя – Врата, призываю тебя!
Во имя всех Мелких и Мягких, призываю тебя!
Отрекаюсь от программирования, проклинаю оптимизацию кода,
В ассемблер не верую!
Сей непорочный винчестер и сей компьютер приношу я в жертву тебе,
Да умирится твой голод неутолимый!
Сколько в памяти занимает значение типа bool?
Правильный ответ - 8 байт
зависит от типов свойств/полей до и после. вроде же если явно не вмешиваться в механизм размещения типа в памяти, то, например, восемь булов тоже упакуются в один квант
ты не знаешь, что означает это слово, либо просто доебался до того, каким образом я описываю принцип?
двач
Platinum tier:
Адресная книга
Low tier:
Блог
Middle tier:
Форум с плюшками
God tier:
Дашборда для любого сложного сервиса с открытым апи (вк, фб), на ангуляре, со сбором какой-нибудь статистики, пиздатым ее отображением (google charts например). Печать отчетов в пдф. Выгрузка файлов в зипах.
> восемь булов тоже упакуются в один квант
Упакуются, а дальше? Допустим ты передаешь булево значение в метод. На уровне процессора это можно сделать через регист общего назначения или через стек, конкретная реализация выбирается компилятором. Для соврременных процессоров основными регистрами вляются 64 битные. Т.е. один бит будет загружен в 64 битный регистр. Если параметров несколько, то скорее всего их передадут через стек. А как проще всего поместить в стек значение?
push rax - помещает в стек весь 64 битный регистр. Снова 64 бита, как ни крути.
Теоретически, если у тебя около 64 булевых переменных, то их можно хранить в одной переменной размером 64 бита и проверять значение каждой командами сдвига. Но я хз как это в шарпе реализовано и реализовано ли вообще. В общем случае для одной едиственной булевой переменной скорее всего выделят все те же 64 бита, что бы проще работалось с регистрами.
ну ваще в шарпе можно явно работать с запакованными булями через bitarray/bitvector32, ну и передать его как параметр там, например
OpenTK
К сожалению до многих это до сих пор не доходит и они продолжают лепить IRepository<T> повсюду.
Может быть лет через 10 додумаются до Command/Query Object.
Уже сам нашёл, событие loaded
Есть кто перекатился с Java? Интересует:
почему перешли,
как давно,
что ожидали,
что получили,
не жалеете?
В основном ебусь с парсами данных, машинной авторизацией(не для брута) ну и с апи некоторых сайтов баловался.
Какую должность искать?
На что расчитывать?
Энтити Фрэймворк, ИИС.
>>793319
Оно-то как раз позволит быть независимым от MS (ну точнее не более зависимым, чем джависты зависят от Оракла, а питонисты от левой пятки Гвидо). И с чего бы ему не взлететь?
MissingSchemaAction.Ignore
Как заставить его игнорить лишние столбцы. Вот например у меня 10 столбцов в базе, я заполняю датасет "SELECT * FROM SomeTable". Потом
Adapter.Fill(Dataset,"bla bla")
и до этого я хочу вызвать Dataset.MissingSchemaAction.Ignore - по описанию игнорирует лишние столбцы, иду на MSDN встречаю ссылку выше(Какие столбцы, как игнорировать?).
Есть модель Item, ее имя и id заполняется при старте из sql, value регулярно обновляется с opc-сервера. Фреймворк mvvm light.
Собственно я создал ItemsViewModel, коллекцию в нем, а дальше возникли сомнения. Например, нужно ли для всех методов, работающих с sql, выделить отдельный ViewModel? И т. д. Как это примерно должно выглядеть?
Стандартными средствами это нельзя реализовать вроде бы. Я даже не уверен, что эмуляторы браузеров в состоянии это сделать (NHtmlUnit, AngleSharp и т.д.). Скорее всего, придётся где-то в фоне запускать нормальный браузер и уже из него выковыривать видео через COM-интерфейс, например.
Алсо у твича API есть, скорее всего через него можно поток видео забирать.
я знаю, что такую штуку можно сделать с лайвстримером, на гитхубе лежат уже сотни обёрток для него, но чёт хочется самому эту штуку написать.
А ну ка скажи мне. Используешь ты какой нибудь SQL server с ef, а потом случилось так, что тебе пришлось перекатиться на монго. Что ты будешь делать? Переписывать весь код в контроллерах? А может быть легче написать только круд для монги и через ioc контейнер подкинуть его в контроллеры?
Так же представь что у тебя массив из айдишников, и штук так 2к, например. Тебе надо из по вытаскивать обработать и записать в базу. Лучше сделать эту операцию параллельной, знаешь что произойдет если ты будешь использовать общий контекст? Крашнется все к ебеням, вот тут тебе юнитОфВорк и поможет.
>тебе пришлось перекатиться на монго
Сложно представить такую ситуацию, люди съезжают куда-нибудь на PostgreSQL с MSSQL, ну да ладно.
>Что ты будешь делать? Переписывать весь код в контроллерах?
Ну так-то контроллеры должны абстрагироваться от взаимодействия с БД. Сервисами, например, которые внедряются через IOC. А уж как там сервис получает данные, насрать абсолютно. Нужно будет, всё быстренько переписывается под Mongo или ещё какую парашу.
>Лучше сделать эту операцию параллельной, знаешь что произойдет если ты будешь использовать общий контекст?
Во-первых, в EF есть Async, а во-вторых, нахуя делать общий контекст?
Задача такая: сервер собирает карту на основе OSM, а также данные о рейсах с flightradar24 и отправляет клиенту в лице WPF-приложения, на котором отображается карта с нанесёнными на неё самолётами.
Как лучше всего можно реализовать часть, связанную с картой? Гуглил много и долго, в том числе на английском, только сильнее запутался. Буду рад ответу на хотя бы один из этих вопросов:
1. Как решается задача в общих чертах?
2. Есть ли хорошие примеры самописного кода?
3. Какие есть библиотеки/фреймворки с хорошей документацией и примерами? Нашел OsmSharp и MapSurfer.NET, но у первого документации нет вообще, у второго достаточно бедная. Разбираться же на примерах без четкого понимания, что вообще происходит придётся очень долго, а времени мало.
у майкрософтовского бинга же есть карты, у него отсутствует возможность встроиться в дотнет приложения штоли, не смотрел?
вероятней всего, товарищ имел ввиду, что при использовании Repository поверх того, что предлагает EF, также в случае резкого перепрыга на другую СУБД, ты подключаешь вместо IRepository<T> -> EFRepository<T> ---> HuiPizdaRepozitory<T> и типа все как и раньше. но проблема в том, что сейчас не 92й год, и каждая СУБД тянет на себя всю свою разницу с другими вендорами, а следом за ними и реализация неких плюшек. что в итоге выливается во все-равно переписывание части БЛ под новые нужды
Использую OpenGL для отображения картинок (1000x1000 - 3000x3000), но у меня оно медленно работает и память замусоривается.
Схема примерно такая:
Загрузить необходимые текстуры.
Привязать текстуру.
Нарисовать прямоугольник (с текстурой).
Отвязать текстуру.
Удалить текстуру (GL.DeleteTexture), так как она не используется далее. И так несколько раз.
Но даже со сбором мусора вручную (GC.Collect) оно всё-равно забивает всю видеопамять вскоре.
ты же вкурсе мамин русофоб что для англоговорящих всё выглядит так же да?
foreach(var x in Environment.GetEnvironmentVariables())
{
Console.WriteLine("{0} = {1}", x.Key, x.Value);
}
Ок, запустил сам на виртуалке.
HOME = /home/Username
PATH = /usr/local/bin:/usr/bin:/bin
MONO_DISABLE_SHM = 1
SHLVL = 0
TMPDIR = /tmp/
LANG = en_US.UTF-8
PWD = /home/Username
>аяксом нельзя аплоадить файлы
Почему? Я php+js макак объясните мне. В .net я не должен что-то выдумывать или пользоваться сторонними разработками, а должен использовать некие стандартные инструменты, которые ограничивают возможности в угоду скорости разработки?
Я апложу аяксом на нужный url, там роутинг, контроллер, экшен, проверка прав, загрузка на диск, запись в бд, отдаю ответ что всё збс. В бразуре js смотрит что ответ збс и прикрепляет миниатюру, либо если всё плохо информирует. Также делаю возможность удаления и сортировки.
А почему ты хочешь перекатится с жабы?
Есть задача: сделать два класса. Первый "книга" с параметрами вроде автор-цена и прочее, второй "библиотека" - содержащий массив "книг".
Класс "книга"
class Book
{
public Book(string Autor, string Name, string Publish, string Printing, string Price)
{
this.Autor = Autor;
this.Name = Name;
this.Publish = Publish;
this.Printing = Printing;
this.Price = Price;
}
string Autor;
string Name;
string Publish;
string Printing;
string Price;
+ методы с сет/гет для редактирования
}
Класс "библиотека"
class Lib
{
public Book[] arrLib = new Book[10];
+ методы
}
В мейне создаю книгу
Book B = new Book ("1","2","3","4","5");
Что и как надо сделать, чтоб можно было работать с массивами arrLib (arrLib[0] = B; например)?
Есть задача: сделать два класса. Первый "книга" с параметрами вроде автор-цена и прочее, второй "библиотека" - содержащий массив "книг".
Класс "книга"
class Book
{
public Book(string Autor, string Name, string Publish, string Printing, string Price)
{
this.Autor = Autor;
this.Name = Name;
this.Publish = Publish;
this.Printing = Printing;
this.Price = Price;
}
string Autor;
string Name;
string Publish;
string Printing;
string Price;
+ методы с сет/гет для редактирования
}
Класс "библиотека"
class Lib
{
public Book[] arrLib = new Book[10];
+ методы
}
В мейне создаю книгу
Book B = new Book ("1","2","3","4","5");
Что и как надо сделать, чтоб можно было работать с массивами arrLib (arrLib[0] = B; например)?
Первый этап:
Есть один сайт, на него я делаю post-запрос с авторизацией
Результат отправляю в строку и для проверки сохраняю в отдельном файле. Файл проверю - все ок, содержимое такое, какое должно быть после удачной авторизации.
Второй этап:
А вот на втором этапе я и забуксовал
Требуется отправить get-запрос на тот же сайт. Ок. Делаю get-запрос, сохраняю результат в файл, смотрю содержимое файла и вижу то, что бывает, когда неавторизованный пользователь кликает на какую-нибудь ссылку, требующею авторизации.
Что мне в данном случае делать?
Я понимаю, что нужно использовать куки, но я не могу банально допереть как получить куки после того, как я сделал post-запрос
Подскажите, в какую сторону копать.
Раз уж тред про .NET, добавь пожалуйста годных учебников по VB.
Спасибо.
Вы видите копию треда, сохраненную 31 июля 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.