Существует множество различных платформ и языков программирования, однако среди них нет более элитного, чем C#. Это поистине язык богов, сочетающий в себе простоту использования с поистине неограниченными возможностями. Знание C# — прекрасный детектор современного, умного и успешного человека. Изучение платформы .NET безошибочно указывает на успешного в будущем человека. ITT элита продолжает обсуждает будущее этого прекрасного и современного продукта компании Microsoft. Только в этом треде элитные разработчики ответят на самые острые вопросы индустрии.
3. WinForms или WPF? Зависит от задачи. Для небольших проектов, скорее всего, будет достаточно винформочек. В случае, если разрабатываемое приложение достаточно серьёзное, то возможно его стоит писать с использованием WPF. WPF очень хорошо работает с паттерном MVVM ( https://ru.wikipedia.org/wiki/Model-View-ViewModel ), и позволяет пилить очень кастомизированные интерфейсы с помощью XAML, что в случае WinForms, делать намного сложнее.
4. Мне тут знакомый_нейм сказал, что C# умирает, это правда? Может не стоит его учить? Неправда. C# довольно активно развивается, недавно вышел новый компилятор, шестая версия шарпа, и уже активно разработывается седьмая. Весь дотнет понемногу становится опенсорсным, а ASP.NET становится независимым от платформы. В некотором смысле понемногу вымирают десктопные приложения с развитием веб-технологий, но в том же энтерпрайзе он еще очень даже востребован.
5. Какую ИДЕ выбрать? - 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 - Выравнивает код по указанным символам. Удобно, например, при инициализации словарей или в перечислениях
9. Что почитать? - The C# Player's Guide, второе издание (RB Whitaker) - отличная книга для ньюфагов в шарпе, все расписывается довольно подробно, очень много примеров кода. - C# 6.0 in a Nutshell (Joseph Albahari и Ben Albahari) - огромнейший справочник, over 1000 страниц, покрывает почти все области, начиная с синтаксиса и базовых типов и заканчивая интеропом и рослином - C# 6.0 Pocket Reference (Joseph Albahari и Ben Albahari) - просто выжимка из справочника, можно всегда держать рукой - C# 6.0 and the .NET 4.6 Framework (Andrew Troelsen) - 1600-страничный учебник по шарпу, покрывает BCL, WPF и ASP.NET, небо и даже аллаха. - C# 6.0 Cookbook (Jay Hilyard и Stephen Teilhet) - книга в формате "проблема-решение", можно пройтись по оглавлению, найти интересные проблемы и попыпаться самому решить, а уже потом посмотреть представленное решение. Книга скорее не для ньюфагов, а для тех, кто уже знаком с шарпом.
10. Более хардкорный материал - C# in Depth (Jon Skeet) - написана в виде истории версий C#, начиная с C#1.0. Описываются возможности, которые были добавлены в определенной версии и далее достаточно хардкорно и подробно эти возможности расписываются. - Writing High Performance .NET Code (Ben Watson) - охуенная книга. В основном фокуируется на оптимизации дотнет-говна. Методы оптимизации проложений, профилирование, вот это все. Крутейшая и достаточно детальная глава по GC. Рассматриваются достаточно известные проблемы вроде "for vs foreach", "класс vs структрура", кастинг, боксинг, перфоманс регулярок, коллекций, исключений. Короче все что нужно, чтобы вам перезвонили. - CLR via C# (Jeffrey Richter) - это классика, это знать надо.
11. Хочу еще хардкорней - C# Deconstructed (Mohammad Rahman) - введение в CLR, модели памяти и выполнения в CLR, байтоебство, JIT. Книга достаточно коротенькая, менее 200 страниц, можно осилить за пару дней. Желателен опыт работы WinDbg и понимание устройства PE-формата. - Expert C# 5.0 with .NET 4.5 Framework - еще одна книга этого автора, в этот раз намного длиннее. Очень много IL, анализа и разбора стандартной либы (те же коллекции), разбор ивентов, дегегатов, асинхронности etc. на уровне байткода. - .NET IL Assembler (Serge Lidin) - ILёбство, во многих местах повторяет документацию MSDN, но при этом имеет много интересных дополнений и заметок. Кроме того все неплохо структуировано и разложено по красивым табличкам
12. Литература по WPF Из более-менее актуального можно выделить пару книг: - Pro WPF 4.5 in C# (Matthew MacDonald) - Windows Presentation Foundation 4.5 Cookbook (Pavel Yosifovich)
13. Литература по ASP.NET - Professional ASP.NET MVC 5 (Jon Galloway, Brad Wilson, K. Scott Allen, David Matson) - Pro ASP.NET MVC 5 Platform (Adam Freeman) - Beginning ASP.NET for Visual Studio 2015 (William Penberthy)
14. Литература по асинхронности, параллелизму и всему такому - Concurrency in C# Cookbook (Stephen Cleary) - книга, написанная в формате "проблема - решение". Кроме базовых вещей, вроде асинков и параллелизма рассматриваются TPL Dataflows, Rx (реактивные расширения), тестирование всего этого асинхронного добра, ну и работа этого всего на более низких уровнях абстракции - Multithreading in C# 5.0 Cookbook - в основном ничего интересного, но есть довольна неплохая глава про синхронизацию, пусть и не слишком детальная - Pro Asyn_chronous Programming with .NET (Richard Blewett, Andrew Clymer) - опять же, интересного немного, но неплохие главы про асинхронность + UI и анализ дампов памяти в windbg
15. Литература не по шарпу, но так или иначе связанная с языком - C# Game Programming Cookbook for Unity 3D (Jeff W. Murray) - разработка на шарпе под Unity - Introduction to Neural Networks with C# (Jeff Heaton) - изучение нейронных сетей с примерами кода на шарпе. Под конец пишем программу для распознавания символов и нейроботов. - Machine Learning Using C# Succinctly (James D. McCaffrey) - довольная коротенькая книга на тему машинного обучения с примерами кода на C#. Ничего особого: k-средние, классификация, наивный байес, но с кодом, который всегда можно поразбирать, если что неясно.
16. Но я не знаю английский, как я буду это все читать? На некоторые из перечисленных книг есть переводы, которые можно найти на том же рутрекере, однако, зачастую эти переводы неактальны, содержат неточности, и не самые понятные варианты перевода. Кроме того, переводы обычно пилятся только для нескольких самых популярных книг, более-менее серьёзный материал не переводят. Всегда можно сесть со словарем и понемногу читать, переводя непонятные фрагменты. Это очень полезно, так как в любом случае в разработке без знания ангельского делать нечего. Если очень хочется, то гуглить по запросам: "C# 5.0, Справочник. Полное описание языка", "C# для профессионалов. Тонкости программирования", "Программирование на платформе Microsoft .NET Framework 4.5 на языке C#"
17. Что еще нужно знать, чтобы взяли работать за еду? - SQL - подойдет люая книг по MSSQL/MySQL, базовые запросы, SELECT, INSERT, DELETE, UPDATE. Джойны, индексы, нормализация. В контексте шарпа еще ORM: Entity Framework, Dapper - Системы контроля версий - обычно гита достаточно: add/commit/push, merge, rebase, checkout, remote's, разрешение конфликтов, трехпанельные дифф-менеджеры, cherry-pick - Гитхабы-гитхабчики - issues, организация пулл-реквестов, интеграция с appveyor, теги, релизы, маркдаун - Алгоритмы - сложность алгоритмов, сортировки (пузырек, быстрая, вставками), поиск, рекурсия, алгоритмы на строках - Структуры данных - связанные списки, деревья (бинарные, красно-черные, b-деревья), хеш-таблицы, графы - Если идти в веб - HTML, CSS, JavaScript, веб-сокеты, REST - Паттерны проектирования, стиль кода, внедрение зависимостей, MVVM (если хочется в WPF), SOLID
Можно ли как то реализовать просмотр твича, для получения всяких плюх(типо розыгрышей там, дропов в играх), без собственно обычного браузерного просмотра видоса? То есть без лишней нагрузки на комп. Ну типо накрутки смотрящих. Куда копать подскажи.
Поясните за ваш язык. Реально по сравнению с той же джавой вкатиться в программирование неофиту? В чем конкретно в основном состоит работа? Написание декстопных приложений под винду и игоры? Если начну учить язык, то смогу пролезть хоть на какую-нибудь начальную работу? Сам в университете немного учил шарп и джаву, по работе только писал скрипты на sas и vba + t-sql
>>767219 Может быть я чего-то не понимаю, но почему корпоративные сайтики пишутся на C#? Чтобы автоматически интегрироваться-синхронизироваться с какими-нибудь ERP и прочими системами?
>>767223 Потому что изначально в asp.net были веб формы, которые как фин формы, только нет. А это значит можно пересадить всех индусов разработчиков с десктопов на разработку новых тогда сайтиков без особых усилий и они будут выдавать нормальную скорость разработки. И не надо содомировать себя джяваскриптом тогда еще плохим. Время шло, асп менялось, но традиции остались
>>767231 Спасибо за пояснения. Если ты работаешь с C#, то расскажи пожалуйста почему ты выбрал именно этот язык или стек технологий, а не какой-нибудь другой?
>>767223 >Может быть я чего-то не понимаю, но почему корпоративные сайтики пишутся на C#? Потому что там есть WebForms (фреймворк для разработки сайтов), у которого есть следующие свойства:
1. Если его изучить (изучается относительно долго из-за контринтуитивности и дроча на декларативность), то можно довольно быстро делать сайты. Быстро значит дешево и выгодно. 2. Все сайты на WebForms уёбищны и однообразны, практически не допускающие кастомизации и модернизации. Они безнадежно отстали от современных web-технологий и в принципе не способы их догнать из-за неэффективной парадигмы.
Это делает WebForms идеально подходящим для копроративных сайтов. Потому что копроративные сайты таковы, что ими пользуются только работники копрорации, причем принудительно, поэтому их внешний вид, дизайн и удобство нахуй никому не всрались, а только будут отвлекать от работы. Сайт должен быть тошнотворным, чтобы работник тратил на него как можно меньше времени, и въебывал на основной своей функции. Его уебищный вид не может снизить количество уникальных посетителей или продажи рекламы, потому что посещение принудительно для всех работников - это по сути часть их рабочего места, и никакой рекламы там нет.
Для сайтов, которые предназначены для всего интернета, WebForms не подходит по той же причине - уебищности, из-за которой привлечь посетителей становится невозможно (они в отличие от работников копрорации являются свободными клиентами в конкурентной среде), и как следствие невозможно заработать на впаривании рекламы или еще какого-либо другого дерьма.
>>767250 >Сейчас то с одним c# конечно сложно если ты не только бэк пишешь Писал копроративные сайты не используя JS вообще. У нас вся конторка так делала, вплоть до того что 90% быдлокодеров боялись JS как огня и не знали его.
>>767405 Даже добавлю свою пасту со своим багетом от 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.
>>766002 (OP) Блять. Какаяже Визуальная Студия душная программа. Мало того, что устанавливается по 100 лет, так ещё и постоянно какие-то ебаные ошибки при установке, невидимые ошибки при запуске, и БЛЯТЬ ЦЕЛАЯ СВАЛКА ГОВНА в установленных программах.
>>767250 > поэтому нужно js Интерестно, а почему MS не сделает компилятор C# -> JS? Это же сейчас тренд (Clojure/Scala/Kotlin/GWT) что бэкенд и фронтенд пишется на одном языке.
>>767668 возьми у своих свойств их хэш-коды и соотнеси их вместе, используя простые числа. это вроде бы стандартная практика. можно еще сдвиги использовать, но я не знаю тонкостей такого подхода
>>766002 (OP) >Какую ИДЕ выбрать? Могли бы и про замарин написать, пользуюсь под виндой, зависимости нет, по производительности среда летает в отличии от VS
сап, паrни. есть 2 решения и мне нужно перекинуть 1 класс с первого во второе, но этот класс еще создает обьекты других классов с первого решения. у 1-го решения уже в референсах лежит ссылка на 2-й и теперь мне надо сделать ссылку со 2-го на 1-й? Зацикливание! Вариант, типо, перекинь все нужные классы вместе с тем который перекинул - не вариант. Щито делать, дэсу?
Sup, как мне настроить поведение combobox? Нужно чтобы в зависимости от четверти появлялся список из цифр зубов. Ну то бишь я выбираю допустим первую четверть, а мне выходит зуб с 18-11, выбираю вторую и в выборе только с 28-21.
>>768495 С самим комбобоксом тебе делать почти ничего не нужно, только забиндить свойство ItemsSource на коллекцию в твоей ViewModel. Можно на простой IEnumerable. Далее, биндишь SelectedItem на свойство модели представления, которое у тебя за четверть отвечает. У него в сэттере уже вызываешь нужную логику загрузки списка. Собственно все, даже с event trigger'ами ебаться не нужно.
>>768495 1) смотишь что такое мввм 2) создаешь вью модель и имплементиш INotifyPropertyChnaged 3) создаешь проперертю в классе "Четверть" и пропертю-список четвертей 4) Хардкодиш лист зубов 5) Делаешь лист тех, которые надо отображать 6) Копируешь зубы из хардкожденой коллекции в ту, которую показывать надо на изменение проперти четверть 7) привязываешь вьюшку (то, что на скрине) к моделе представления
Хлопци, жизнь занесла меня в такое болото, что мне нужно для курсовой сделать БД, оболочка к которой будет на сисярпе (а хули, я ничего больше не знаю). Сервер по требованию преподавателей должен быть на ms sql. И вот вопрос: стоит ли делать отдельное серверное приложение на шарпе, в котором будут находится sql-команды на выполнение процедур и который будет обеспечивать связь непосредственно между приложением-клиентом и sql-сервером? Или сервер на шарпе будет лишним звеном, и все sql-команды и адаптеры хуячить в клиентском приложении? Тогда ведь понадобится в клиентском приложении позаботиться о сохранности и зашифрованности передаваемой инфы, не перегруженным ли будет клиентское приложение? + В зависимости от некоторых условий, диктуемых клиентским приложением, предполагаются различные ответы sql-сервера, опять же, придётся все эти проверки делать в клиентском приложении, что опять же, ящитаю, будет лишним.
Будет ли сильно замечаться потеря в производительности, если использовать промежуточный сервер на сисярпе, если приложение-сервер и сервер ms-sql будут находится на одной физической машине?
Если всё таки стоит делать отдельный сервер на шарпе, как его лучше реализовывать (имею ввиду через какие классы/технологии/фрэймворки/способы коммуникации), учитывая, что будет происходить обмен не только текстовой инфой в большом размере, но и фото.
>>768509 >Будет ли сильно замечаться потеря в производительности, если использовать промежуточный сервер на сисярпе, если приложение-сервер и сервер ms-sql будут находится на одной физической машине?
Забыл уточнить, сервер в любом случае будет располагаться в локальной сети, ибо скорость передачи и трафик не безлимитный.
>>768509 Что ты понимаешь под отдельным приложением? Чем тебе не подходит традиционная 3-tier архитектура с уровнем доступа к данным?
Алсо, не надо выполнять напрямую sql из кода. Даже параметризованные запросы только в легаси встречаются. Используй ORM. Только дженерик репозитории не используй. Это рак и за такое нужно клавиатурой по ебалу бить.
А вообще, судя по твоему посту, у тебя нет представления о будущей архитектуре вообще. Пойми сначала, что нужно сделать. Потом прочитай про трехуровневую архитектуру.
>>768530 > Используй ORM. Только дженерик репозитории не используй. А если у меня Xamarin в котором нет EF вообще, а есть только ссаный "Sqlite.query<T>(...)"?
>>768864 Слишком быстро ты выхлопа какого-то ожидаешь Я 3 месяца резюме рассылал каждую неделю было всего лишь 3 собеседования, на третьем взяли на работу.
хлопцы, пытаюсь создать клиент-серверное приложение, и тут встал вопрос как организовать общение между клиентом и сервером? читаю сейчас на рсдне да профессоре вебе статьи про NetworkStream и TcpListener, TcpClient и прочие сокеты, но заметил, что статья на рсдне датируется 2005 бородатым годом. не устарела ли эта технология связи, может уже появилось что то новое, на что лучше обратить внимание?
>>768648 Говорю с дивана, но учитывая схожесть синтаксиса обоих сисярпа и джавы, я бы точился под то, под что больше существует готовых фреймворков и апи для андроида.
>>769528 вообще, предполагается следующее развитие событий: в основном, клиент и сервер будут находится в одной локальной сети, но в исключительных случаях предполагается подключение к серверу через интернет.
>>769532 Не для того .net делали, чтобы в сокеты пороться постоянно. В контексте твоей задачи тебе нужно просто прочитать про wcf, например у троелсена. А лучше сразу web api!
Sup, я в проге новичок и у меня есть два серьёзных вопроса. 1. На скрине у меня 32 комбобокса, которые формируют зубную формулу, в каждом по 9 вариантов статуса зуба. Как мне не плодить все эти статусы в каждом комбобоксе? Ну вы понимаете, у меня в каждом комбобоксе по 9 вариантов и все они одинаковые. 2. Работа с заполнением вордовского документа из шаблона ворда. Короче, в одном окне я заполняю одну страницу в ворде, перехожу в новое окно, заполняю форму и пытаюсь внести изменения в документ. Все вылетает на эксепшене
>>769610 Так делаешь у зуба СтатусЗуба в виде enum'а например, делаешь коллекцию зубов и ехал биндинг через биндинг. Проверь свойсвто ErrorCode исключения. >Kursach.exe Вышли на новый уровень
Шарпач, объясни в чем профит передавать StringBuilder в метод с использованием слова ref? Сегодня увидел такую штуку на работе, но не смог понять в чем космический эффект.
Посоны, а последнюю книгу Албахари C# 6.0 in a nutshell где можно взять на ингрише? Я бы заплатил 50 бачинских и купил, но сука жаба давит. На русеке не надо.
>>769630 >>769636 ну чтобы сделать varName = new StringBuilder, очевидно насчет бить не уверен, если в разных методах формируется строка по ходу выполнения какого-то куска. ну не знаю короче
>>769771 StringBuilder и так >Represents a mutable string of characters а тут еще ref этот ебаный. >ну не знаю короче В этом и суть, ref только запутывает код, и пиздить таки нужно.
>>769794 Так нет причин менять ссылку на StringBuilder, можно поменять его состояние. Если функция хочет что то вернуть, она должна просто это вернуть.
Вкатываюсь в мвц после вебформса. Поясните, как здесь кэшировать полученные данные? В вебформсах всегда пользовался SqlDataSource и CacheKeyDependency. Вот допустим у меня есть public ActionResult Customers_Read([DataSourceRequest]DataSourceRequest request) { var list = DAL.GetAllCustomers(); return Json(list.ToDataSourceResult(request)); } Куда мне запихать list, чтобы не получать из БД каждый раз овер 9000 записей при любом действии с гридом? И как их таки получить заново при нажатии кнопки refresh? Во всех туториалах куда ни глянь ебаный EF, так что приходится спрашивать на двощах. Всем бобра заранее.
>>769830 > 2016 год > .NET, ASP.NET MVC, EF, MSSQL оффициально поддерживают Linux/macOS > EF уже дошел во версии 6.X и теперь его переписывают с 0 > Кто-то продолжает насиловать труп и использовать подходы из 2000 Интерпрайз такой интерпрайз (небось еще и гос контора)
>>769865 >M$SQL Дорого же. И вообще, ОРМ нинужны, у меня от запросов, которые они генерируют, глаза вытекают просто. Выдаю жсоном все данные сразу, но пейджинг, сортировку и фильтрацию делаю на клиенте, все работает как мне надо, считывает заново только при рефреше.
>>766002 (OP) Здравствуйте, шарпобояре. Я так понимаю, на C# можно делать всё, от консольных хеллоувордов до игор с графоном. Какое из направлений считаете наиболее перспективным, чтобы моё увлечение программированием стало приносить какую-то денюжку, не заглохло в ближайшие 5 лет, а может даже и помогло найти постоянную работу хотя фуллтайм работа в офисе мне нахуй не всралась, если честно. Я вот Пахомова и Подбельского почитал немного 3 книги, дальше думаю копать юнити или андроид. Что посоветуете?
Анон, молю тебя, поясни за mssql в шарпах, пол дня их ковыряю никак не могу передать значение переменной в базу, оче хочу засунуть её туда не прибегая к sql языку через query запросы, можно это реализовать?
антохи, для клиент-серверного приложения внутри локальной сети что лучше использовать - именованные трубы или tcp-сокеты (или что там у tcpListener и tcpClient)? под "лучше" понимается способность быстрее передавать с клиента на сервер и обратно большое количество текстовой информации и изображений, также приветствуется гибкость (в плане различных настроек, типа приоритет передачи именно по этому каналу/сокету и т.д.) и возможность шифрования передаваемой инфы (да да, нахуй это нужно внутри локалки, но всё же может понадобится для некоторых ОЧЕ важных данных) inb4: читай WCF мудак. блят, я бы с радостью его освоил, но заглянув в интернет и книгу троелсена, я увидел, что читать по нему столько, что я насрал как конь со страху, честно. учитывая что время поджимает меня оче сильно, а в WCF придётся как мне кажется долго ковыряться в поиске методов реализации интересующего меня функционала, я пока что решил всё же использовать либо tcp-сокеты либо пайпы, но не могу определиться, что из этого лучше, ибо на форумах в сообщениях за различные даты встречал разные противоречивые мнения. вот хочу современные мнения узнать. или всё таки не выёбываться и потратить пару дней на дроч WCF, если он того стоит?
>>770526 Ебаный Entity Framework >>770534 Ты охуел штоле? Тебе такой то soap выкатили, дали инструменты, тебе надо просто сгенерить проксю и инвокнуть ебаный метод. Троелсен - 50 страниц, ну охуеть теперь. Но в целом можно web api выучить за 10 минут и сделать уже
Есть тут .net-анон с опытом валидации на WPF с правилами чуть сложнее, чем "показать error template, если инпуты пустые"? Вкратце: есть форма логина и есть требования по валидации. Кроме очевидных пустых инпутов может быть еще неправильный пароль, юзернейм и так далее, которые нужно подкрашивать. Логином, ровно как и самой валидацией, у меня занимается не модель представления, а другая либа вообще. Как лучше организовать моменты хотя бы тех же неправильного юзернейма и пароля? 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. Я вообще хз что тут можно оптимизировать.
Второй момент это работа с листами. Как я понял операции удаления из листа нельзя распараллелить. И это длится минуты. Я хз что с ними можно сделать, кроме как захуярить в массивы и удалять через циклы.
>>771479 > Нельзя как-то сделоть через IQueryable и LINQ? ХЗ, я в чтении из sql не силен. Если есть идеи буду благодарен за наводку. > Сколько же у тебя записей в таблицах? В сумме что то около полумиллиона.
Аноны, раньше не занимался программированием, но по долгу службы мне оно нужно и я решил вкатиться. Нужно научиться писать плагины для приложений Autodesk, которые облегчат мою работу. С чего мне начинать? Я примерно прикинул что и как должно работать, нашёл API по интересующему меня продукту, теперь осталось всё это притворить в код. Сделаю оболочку на WPF, остальное нужно написать. Так вот, как учить C#? Например мне нужно что бы приложение делало "это". Я забиваю в Гугле: как сделать на С# "это" и т.д. Или есть методы проще и эффективнее. Прошу совета.
>>771829 > приложение делало "это" ну какт слишком размыто. интернеты не смогут ответить на все вопросы в такой манере. есть говнокниги в стиле "саветы праграмиздам", но и они не покроют в достаточной мере ответы на интересующие тебя вопросы. как правило, это знакомство с основой языка (+ некоторые внутренние части), плюс книги/статьи по шаблонам, архитектуре приложений и прочей хуите
Спокойно пишешь ASP.NET MVC сайтик на coreclr DNX и тут бац (спустя пол года) выходит RC2
=> Начинаешь перекатываться (ведь DNX стал deprecated) => Хуяк и перестали работать DllImport (юзаю нативную библиотеку для сжатия картинок). https://github.com/dotnet/cli/issues/3105
>>771834 мне например нужно, что бы моё приложение брало данные из таблицы Excel, и выдавало мне нужный результат в моём приложении в табличном виде, что бы были фильтры и сортировка. Значить гуглить DataGridView например?
>>771943>>771846 Ох, анончик в CoreCLR RC2 все РАБОТАЕТ, это я протупил.
Забыл что у этой либы были динамические зависимости на другие (и без них она не загружалась в память). Через brew установил все зависимости и ВСЕ ЗАРАБОТАЛО.
Поставил тут сеюе решарпер, а он мне во всех foreach циклах начал ругаться на переменную: Access to foreach variable in closure. May have different behavior when compiled with different versions of the compiler. Начал гуглить, но так нихуя и не понял нужно мне что то менять или забить хуй?
>>773795 Код на работе. Там целый проект. Есть один foreach и в нейм пара сотен строк. Вроде все работает, но решарпер ругается описанным выше длинным словом. И нихуя не понятно имеет его мнение смысл или нет.
>>773723 Зависит от компилятора. На одном может быть одна и та же переменная на каждом шаге цикла, т.е. с ссылочными типами можно на грабли сесть. А на других на каждом шаге новая переменная делается для текущего элемента. Поэтому решарпер и кидает warning
>>773932 Примерно как то так и в гугле написано. Но мне бы хотелось понять, как дела обстоят именно у меня. Как я понял, мне нуждно чтоб делалась каждый раз новая. Но как в этом убедится?
есть у кого-нибудь линк или методика построения графа дорожных/пешеходных переходов/~ездов/дорог из данных гугле(или не только)мапа? из гугл апи, которые хоть как-то подходят под эту задачу, тольк Directions или SnapToRoads. но они, по сути, выполняют задачу поиска пути по имеющимся данным, а я хочу эти данные сконструировать для города/региона/страны
>>775368 > 1. Wpf для десктопа? Ксамарин для десктопа. Нахуй ненужно. > 2. Аспнет ? (Да, нужен) Сайт на шарпе. Идея хорошая, но сосет с проглотом у пхп. > 3. Ксамарин для ведроида и оси? Рисовать треугольные квадраты и овальные пятиугольники вместо кнопок с изогнутым текстом. Если освоишь, то хорошо. Если нет, похуй.
Суп. Вот есть у меня listview, задаю ему итемссурс - коллекция пользовательских объектов. У этих объектов есть своя коллекция ещё объектов, и надо при SelectionChanged в listview рядом рисовать treeview по коллекции, которая лежит в выделенном пользовательском объекте. Мне прямо через код менять итемссурс для тривью при SelectionChanged?
Бандосы, есть какой то метод, в котором присутствует шаблонный тип Т. дак вот, как мне кастовать массив байт к этому шаблонному типу. К примеру,
byte[] byteArray=new byteArray[unknownsize]; T Rezult = (byte[])byteArray;
Разумеется, код выше нескомпилируется. Я было думать в сигнатуре метода указывать "where T:IConvertible", но судя по документации, имплементация IConvertible позволяет кастовать к шаблонному типу всякие там инты, стринги и прочую шушару, но в моей ситуации типом Т может быть только один мой кастомный enum, или System.Data.DataTable. Как быть, двощ, куда копать? инбифо землю себе рой мудила
>>775815 ну тут вроде бы как у listView2 идет привязка к датасорсу модели, который поменяется (и просигналит OnPropertyChanged либо другим каким-нибудь ивэнтом) при изменении выбранного айтема для listView1
>>775824 ну прям совсем универсально не выйдет, тебе нужна какая-нибудь абстракция, которая может создавать инстанс имени себя из byte[]
>>775829 Я хочу кастовать не К byte[], а массив byte[] хочу кастовать к шаблонному типу Т >>775830 то есть типа я создаю абстрактный класс AClass, в котором я делаю оператор public static explicitit operator AClass (byte[] byteArray) { }
то есть типа я создаю абстрактный класс AClass, в котором я делаю оператор public static explicitit operator AClass (byte[] byteArray) { / проверка условий, по которым возвращается тип, которым может быть Т? / }
>>775834 ну можно без explicitit operator (и даже лучше в таком случае), а просто объявить интерфасе с единственным методом interface ICanBeConvertedFromByteArray { ICanBeConvertedFromByteArray GetValue(byte[] array); }
ну, в любом случае, к T ты не приведешься. только после выполнения вышеуказанного метода и явным кастом с потенциальным InvalidCastException
Посоны, вот рисую на WPF, у меня например окно 1920х1080(например), на нем там элементы и все такое. Открываю проект на ноутбуке, там 1368х768(или что-то вроде того). А форма в 1920х1080 и соответственно, все что на форме не помещается не отображается снизу(по бокам все нормально) и нельзя вниз проскролить форму, вопрос - как добавить прокрутку, чтобы можно было вниз листать?
Дано: wpf-приложение. Использую windowchrome для красивой nc. Вопрос: что сделать с resize и move в системном меню, чтобы было заебись? Просто так они не работаю. Если убрать их из меню через винапи, ресайз и мув самого окна не работают, задисэйблить их тоже не вышло.
Собираюсь понаехать к одной тянке погостить и решил установить ей кейлоггер. Не будем обсуждать моральную сторону вопроса, а сугубо техничную. Писать буду на си шарпе, т.к. больше нихуя не знаю. Какие задачи: 1) Перехватывать нажатия всех клавиш - примерно я представляю как сделать. 2) Записывать все в текстовый файлик, отправлять на фтп - тоже знаю как.
Примерно в таком виде, дешевом и сердитом, будет работать? Я ничего не упускаю?
Что нужно еще: 1) Как-то сообщаться с сервером - не знаю как сделать. Хотя когда-то писал на шарпе клиент-сервер какой-то. 2) Обновлять мое приложение тихо - самый сердитый способ который мне видится: проверять есть ли на фтп нужный файл с приставкой new - скачать его, запустить, выйти.
>>776699 + к >>776711 > есть ли на фтп нужный файл с приставкой new - скачать его, запустить, выйти вспоминаю ебалу, которую мы ну, не совсем, я в разработке этой идеи участия мало принимал в свое время на производстве придумали для обновления клиента. тоже подобное говнище, аж взгрустнулось но ты не забывай идти нахуй, к слову так
Как жить с неполноценными first class functions?Аноним22/06/16 Срд 11:07:31#187№776722
>>776711 >работать будет с загрузкой проца на 50% для процесса Схуяли, дурачок? Написал уже отправку всех нажатий в текстовый лог, полет нормальный, проц не грузит.
Анон. Работаю разработчиком где-то между джуном и мидлом. До этого работал админом при команде разработчиков, поэтому некоторые вещи знаю, но где-то есть пробелы. Всю разработку осваивал сам по видеурокам + троэлсон. В общем есть набор книг, в каком порядке читать? C#_6.0_in_a_Nutshell.pdf C#_in_depth.pdf CLR_via_C#.pdf LINQ_для_профессионалов.pdf Внедрение_зависимостей_в_.NET.pdf
Сап, прогач, оче сильно нужна твоя помощь, как установить коннект к проксе и пересылать через неё ВСЕ in/out, а не какие-то конкретные, на проксе также также стоит логин/пасс. Выручай анон, с меня как обычно
>>777402 Идея неплохая, канешь, но всё ещё считаю что знание Рихтера переоценено. Не думаю, что кому-то кроме сеньоров это реально пригодится в разработке. А мидлам и C# in depth пойдёт.
>>777087 Хз, есть IDataErrorInfo, но он говно ебаное. Я вот не придумал, как подсветить конкретный инпут без введения доп. свойств типа "...HasError" и через дататриггер вешать на инпут с ошибкой эррор темплейт. У меня всего три инпута на форме и, наверное, именно таким путем я и пойду, хоть мне не нравится идея шести свойств на три инпута.
А вообще, впф ссанина лютое и говно от аутистов. Жаль, что лучше в майкрософтмирке нет.
Пиздеец, я молча никого не трогая разрабатывал фронтент отдельно, в атоме на ангуляре, с галпом,йоманом, scss и прочими ништяковыми инструментами верстал и манипулировал запросами с няшным $resourse, как тут же недавно поставили задачу, эти бекендщики пересесть на studio professional, где бек и фронт разом выплевывается, какой то блять Razor, какая-то ебанутая система сборки, и заставляют учить это все, аргументируя это тем что нужно будет разрабатывать отчеты, на стимулсофт, я поглядел это вообще какой-то пиздец. Я с# нихуя не знаю. Что делать ананасы?
Народ, пришёл к вам спросить, где ж ещё подскажут да поделятся. Отучился в универе не так давно, устроился в небольшую компанию связанную с разработкой систем для менеджмента на с#. Порой были задачи на производственные нужды. Не суть. Вопрос в чём: все, кого я знаю с универа и кто программирует на с# съебались в штаты в банки или работают у нас никем/непоспецухе/планктоном. Меня это заебало, если честно. Можно было бы попробовать уехать и работать в интерпрайзе, связи есть, но ебал я такую жизнь. Стоит бросать прямо сейчас и менять язык/специальность или на c# можно найти что-то интересное? Почему у крестов такой выбор, а шарписты сосут хуи в бизнесе?
>>766002 (OP) Как в юнити изменить шаблонный код новых скриптов на C#? Заебался уже каждый раз одно и то же руками править. Если что, привязка к VS 2015.
Посоны, волею судеб мне сейчас приходится учить и кодить на Silverlight. Понятно, технология мёртвая, все дела, но даст ли мне его изучение какой полезный опыт?
>>779395 ну прям-таки только собственно, это и будет полезный опыт. или тебе не? в любом случае, в веб-приложении костяк составляет все-таки бекенд. если тебе дали только лайауты и XAML ковырять, то пичаль. если же ты делаешь дела и в BLL, то какая хер разница, на чем писать? разница-то есть, но не суть
>>779395 > MVVM применяется только в Silverlight и WPF
Ты серьёзно? В большинстве случаев любой сложный интерфейс делают через MVVM. На том же фронтенде для этого используют Knockout и Angular (на реакте честно говоря хуй знает, не трогал его).
Если будешь потом прогать под мобилки, то для шарповского Xamarin.Forms (не советую его использовать, он довольно сырой ещё) тоже как правило используют MVVM либы MVVMLight и MVVMCross.
>>779775 Все названия пространств имен, классов, интерфейсов, енумов, структур, методов, свойств, публичных полей - PascalCase. Для приватных полей и локаьных переменных - camelCase. Символ _ (underscore) выбрось на помойку и забудь, уродство то еще. Интерфейс должны начинаться с символа I (IEnumerable), при наследовании о класса, в названии нужно сохранять название класса, от которого наследуешь. HomeController : Controller, ImportOperationStatusJsonParser : JsonParser Никогда не используй венгерскую нотацию, новояз и прочие сокращения. Описывая бизнес-логику, названия для переменных, свойств, методов должны исчерпываще описывать, зачем они нужны и что они делают.
То бишь код типа: var rolesExceptRelatedToUser = await userService.GetRolesExceptRelatedToUser(user); должен вызывать для cисярппрограммизда увлажнение в трусах.
>>780519 Потому, что в сишарпе стоит избегать перловщины, язык изначально спроектирован так, чтобы не было кучи спецсимволов. Тебе руби тогда нужен, где есть полный набор из var, @var, $var и _var. Я бы даже сказал, что комментариев вообще-то тоже в сишарпе стоит избегать. Надо использовать либо встроенную документацию, либо писать такой код, чтобы не нужны были комментарии. Иногда бывает набыдлокодишь огромный метод, абы чтобы как-нить работало на скорую руку, а потом еще сидишь с помощью решарпера все это дело по маленьким методам рефакторишь.
>>780544 Если писать из принципа VerbrNoun, VerbNounAsync, то опускание User выглядит, будто тебе букв не хватило.
>>780983 А в принципе похуй, тут для приема/передачи на комп юзаешь SerialPort и норм. Он с байтами работает, так что выбери какойнибудь протокол для связи мк и пк (модбас например). Но это если чтото серьезное думаешь делать
Котаны, хелп. Есть вот такая страничка- в ней можно загружать изображения и выбирать из списка уже загруженные файлы для показа. http://pastebin.com/XWXP0jRA
Каким образом можно прикрутить сюда удаление и редактирование имени выбранного изображения? Пробовал через File.Delete(), чёт ничего не работало.
>>781203 С .NET проблемы на делфи. Нужно освоить. Визуальное программирование совсем убого? Мне нужно научиться именно работе с компонентами, если писать на обычном Visual Basic это всё с нуля надо? Или тоже есть уже готовые компоненты?
>>781208 В шараге стоит Delphi 2007, там проблемы с ним, новый я туда не припру, они весят как скотины и если я без лицензии что нибудь поставлю меня ёбнут. Попробую WinForms. Что вообще можете сказать, про программирование интерфейсов программ на C#? Или это не особо популярно? Я с трудом могу мозги перестроить после этого ебучего Delphi. Пробовал на Python это делать, с QT горем на полам пытался, ёбнулся, когда события присваивал этому всему.
> Что вообще можете сказать, про программирование интерфейсов программ на C#? Или это не особо популярно? Популярно. Пишут и страдают, страдают и пишут. Те кто Delphi не видел, страдают меньше - они не понимают насколько все это может быть проще и удобней.
> Я с трудом могу мозги перестроить после этого ебучего Delphi Заебись. Ты попробовал клубок qt-говна, убедился в том что это переусложненное кривое говно, а виновата тебе в этом именно Delphi. Заебись.
>>781211 Мне нужно написать программу родительского контроля. Нужно реализовать базовые функции, типа считывать аккаунты в системе, создавать процесс, который будет следить за активностью пользователя по таймеру. Должно быть общее количество часов и почасовой режим. Ведение журналов действий пока особо не надо. Вся эта хуйня должна пойти на диплом. Сказали посмотреть в сторону .NET, я пока до сих пор не понимаю что именно мне сейчас смотреть, решил для начала поставить это всё. Можете что нибудь посоветовать? Хуй с ним с интерфейсом, что вообще на эту тему почитать можно?
>>781216 В шараге он ебошится при попытке запуска любого приложения на Delphi 2007, лицензия стоит кооперативная, сказали. НУ ВОТ ТАК. Delphi ни в чём не виновата. Это замечательный язык как по мне, проблема в том, что программа выходит хуй знает какого размера (и я программирую как убогое говно скорее всего) и сейчас все другие языки программирования выглядят как-то ИНАЧЕ. Сложно воспринимать всё, после того как с делфи работал.
>>781216 > В чем проблемы? Access Violation при запуске, что же еще. Управление памятью всегда было больной темой в Delphi - и GC нет, и вручную как на C++ распределять нельзя.
>>781232 У меня такие же мысли. Но писать надо, второй вариант это йобнутая хуйня с базами данных (от которых уже тошнит) и программой которую я должен сам нафантазировать на произвольную ТОРГОВУЮ ТЕМУ. Ну нахуй.
Шарпач, у меня встал вопрос. Есть одно приложение-клиент для БД на WPF, которое связывается с бизнес-сервером на другом ПК. В этом приложении много различных окон, вкладок, страниц и прочего. Логику клиента запихал в отдельный класс. Предполагаю, что для связи с сервером буду создавать объект клиента, соединятся, принимать инфу и передавать инфу. И вот тут то вопрос: как сделать так, чтобы объект клиента был только один на всё приложение, и чтобы он был доступен из всех окон, чтобы не приходилось пересоздавать его и прочее. Или придётся для каждого окна делать отдельный экземпляр клиента?
>>781575 >>781530 ну тут вопрос, нужен ли там IoC? почему бы не обойтись просто синглтоном и все. на крайняк периодически убивать экземпляр после продолжительного необращения к нему
>>781586 Зачем поддерживать синглтон самому, когда это за тебя будет делать контейнер?
>>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.
Я хуй и не пойму какого хуя. Задачка простая: создать класс который проверяет валидно ли судоку, или его нельзя юзать. Начал хуячить, создал массив, прохожусь по массиву(чтобы понять сколько на сколько судоку, часть задания) и тут какого то хуя всплывает пикрелейтед из второго 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(); } } }
Аноны, спасайте. Есть WCF Service, который принимает класс сериализованный в json. Обязательно описывать этот класс в сервисе? Сейчас контракт службы выглядит таким образом http://pastebin.com/7eN340vP
Хвощ, помогай. Хочу, чтобы по нажатии делался скрин экрана и сохранялся. Я в программировании не шарю вообще, посему моё поделие походит на монстра Франкенштейна, склеенного из решений предложенных интернетом. Вроде всё работает, картинка сохраняется, однако сохраняет картинку в разрешении 1536х864, хотя дисплей 1920х1080. Как эту еботу исправить? Вот код. http://pastebin.com/ENnDeT70
бандиты, при работе с именоваными трудами (named pipes) нужно ли закрывать NamedPipeServerStream методом .Close() после каждой передачи? Или можно держать их открытыми без потери в производительности и избыточных затрат памяти, только лишь надо вызывать метод .flush() после каждой передачи? Или нужно всё таки держать каналы закрытыми, и открывать непосредственно на передачу?
>>778094 Лол, был в похожей ситуации. Парниша пиздатый SPA делал, пришел новый начальник, всех собрал и сказал - это что такое? на asp.net mvc razor все должно быть, переучиваться будут все. Почти весь отдел написал заяву в тот же день я тоже
>>783567 Тогда, видимо, проблема не в коде, а дисплее или около того. KMP когда на весь экран фильм разворачиваю тож пишет разрешение 1536х864. А виндовоз грит что фуллхд. Странно всё это.
Собственно пытался установить coreCLR на распери пи 2, но соснул большого ARM-овского хуйца. Раньше когда был dnvm можно было поставить mono-вскую dnx для arm, а сейчас хуйс. Никто не в курсе они это чинить будут?
>>766002 (OP) Объясните мне что происходит? Работаю в одной софтварной конторе asp.net кодером и примерно с 15 года началась тенденция, что даже самые стабильные заказчики все чаще говорят "не хотим windows server - хотим gnu/linux", хотя раньше их все устраивало. И позиция у них все жестче и жесче "винда на сервере, вы что смеетесь". У нас уже создали целый отдел под node.js/angular, что дальше?
>>785085 Двачую, сам давно перепрыгнул и теперь плачу копейки за мощьный VPS на Ubuntu (и никакой отдельной платы за лицензию на windows). Плюс docker контейнеры нормальные и человеческий SSH.
"I've got a talk on .NET Core in 2 weeks. I think I'll just get up on stage and cry for 50 minutes" Поясните, почему все так кипишат из-за каких-то проблем с релиз-кандидатами? Какой даун вообще пишет продакшн код на нерелизнутой платформе?
>>785042 Я сам был виндоблядком до некоторых пор. Недавно увлёкся изучением линукса. Теперь я понимаю что сервера на линукс это лучший выбор. Ты представь что на твоём серваке можно поставть ровно столько софта/либ/и рантаймов сколько тебе нужно для работы. Там не будет ВООБЩЕ ничего лишенего. Windows server же это огромная свалка борохла, а при этом нужен он тебе только для того чтобы сайтец хостить в IIS (сферический пример, но тем не менее такое может быть). Огромное количество ресурсов машины тратится на хуй пойми что. Ставятся обновления компонентов которые ты вообще не используешь(да и ещё эти обновления могут поломать к хуям то что ты, как раз таки, используешь). Подняты службы которые тебе не в хуй не впёрлись на этой машине(общие папки, обозреватель сети, служба печати и проч.) По сути правильно собраный линукс для тебя это ядро ос + твоя рабочая нагрузка + либы которые нужны для твоего софта. Я уже не говорю о скорости поднятия машины. Если у тебя распредёлённая система с динамически поднимаемыми вм это вообще шик. В Azure развёртывание дополнительного инсанса в Azure services занимает минут 10, это пиздец ящитаю.
>>785112 Мы начали писать, но проект не находится в активных продажах сейчас. Был опыт продажи проектов FMCG компаниям. Они ахуевали от стоимость SQL того-же самого + win server. Так что новый продукт решили пилить на .netcore + postgresql.
>>785115 >>785117 Кстати досихпор не знаю, какое серверное ПО стоит за азурой? Фермы из виндовс серверов? Я не то чтобы в тренде дохуя, Но азура+katana+azure sql выглядит оче годно для меня.
>>785133 Там есть большое количество служб. Можно просто виртуалку развернуть и будет тебе обычные дэдик. Есть Azure Services, которая умеет в автоматическое горизонтальное масштабирование, которое легко настраивается. Так же есть Web app это типа shared хостинга у обычных провайдеров. Ты просто по FTP закидываешь сайт и оно работает. Есть бесплатный план обслуживания(как раз таки shared, без гарантий по производительности и невозможно привязать свой домен. По умолчанию даётся твой_сайт.azurewebsites.com). SQL Azure это по сути MS SQL без администрирования самого сервера. Создаёшь типа виртуальный сервер, создаёшь в нём сколько тебе надо бд, берешь коннекшн-стринги и работаешь. Всё делается через гую без мозгаёбства минут за 15. Кстати для SQL тоже есть какие-то бесплатные лимиты.
>>785228 Ну на работе у меня классический asp mvc стэк. Coreclr и линукс это я по фану дома ковыряю. Понравилась мне вся эта история с тех пор как диплом написал на распбери пи debian +coreclr + sqlite
>>785231 Потому что команда состоявшихся высококвалифицированных дотнетчиков. Тратить деньги на переобучение никто не хочет, да и смысла особо нет. Дешевле подправлять пока стейбл не выкатят.
Итак, решёточники, у меня проблема. Есть один курсач, на шарпе, ибо мы не ищем лёгких путей и учим основы языка за 2 дня: http://pastebin.com/uHtfhTDY Итак, имеется явная проблема со считыванием. Мне кажется, или код, вместо того, чтобы взять двойку из таблицы, видит там набор умлаутов из "Mein Kampf"? Иначе я не могу объяснить вот это: [CODE]Необработанное исключение типа "System.FormatException" в mscorlib.dll
Дополнительные сведения: Входная строка имела неверный формат.[/CODE]
>>785117 >FMCG компаниям. Они ахуевали от стоимость SQL того-же самого + win server. FMCG-компаниями ты продуктовый магазин дяди Ашота штоле называешь? Дешевое пека-железо, дешевые шарпо-студенты, дешевый вин-сервер. Единственное что дорогое может быть это MS SQL Server, но только со всеми энтерпрайзными свистелками - да, тогда он уже почти как серьезные СУБД начинает стоить. Но вашему продукту они зачем, свистелки эти все?
У меня есть дерево классов, в нем некоторые дети перегружают методы некоторых родителей, но аргументы остаются те же.
И есть помимо него еще класс, в котором есть метод, который в качестве аргумента должен иметь возможность экземпляр любого класса из дерева, и в дальнейшем вызывать его метод (который там то перегружается, то нет).
Попробовал сделать просто через указание родительского класса как тип аргумента, но тогда вызывается метод родителя, даже если у наследника есть перегрузка.
Пытался понять как сделать через дженерики - и не понял.
>>785777 > Попробовал сделать просто через указание родительского класса как тип аргумента, но тогда вызывается метод родителя, даже если у наследника есть перегрузка такое происходит, если ты используешь new для переопределения метода родителя, либо родительский метод не виртуальный и, по сути, у наследников происходит перекрытие родительских методов
>>785789 Спасибо тебе, большое спасибо. Всё встало на места. Правда, теперь я не понимаю - отчего вообще возникла необходимость явно указывать перезапись, интуитивно это кажется наиболее верным поведением (мне).
Шарписты, есть массив некого основного класса Item, от Item наследуются Item1, Item2,...,ItemN. В Item есть несколько параметров, а ItemN добавляют некоторые свои параметры. Как мне заполнить этот массив из файла? Сериализация через XML работает только для одного класса, а не для класса с потомками
тред не читал, куда пойти работать в дс2? опыта чуть больше года, знаю mvc, ef, tsql, немного фронтенда(angular, knockout). хочу чтобы побольше бэкенда было.
Халп! Есть 2 библиотеки - одна просто с классами, другая - библиотека UserControl'ов для WPF. Так уж вышло, что мне нужно связать эти 2 библиотеки друг с другом. если в краце - в dll с UserControl сделано окно для "тостерных" оповещений, а в dll с классами планируется сделать вызовы этих окон в одном WPF-проекте (не библиотеке) Но что то пошло не так и... во первых, при добавлении референса в другие проекты на библиотеку с классами, видна не последняя версия библиотеки, а старая, примерно недельной давности, там нету большей части того, что я дописал за последнюю неделю. Rebuild проекта не дал каких либо результатов. И ещё, в библиотеке с классами, несмотря на добавленный референс на библиотеку UserControl'ов, не распознаётся namespace из той самой UC-библиотеки, где и лежит класс с окном для оповещения. ШТОДЕЛАТЬ?
>>786557 проект dll-а с классами в SolutionExplorer -> References (ПКМ) -> Add reference -> Projects -> ищешь свой проект с UserControl -> отмечаешь галку -> OK
>>786558 >ищешь свой проект с UserControl вот это же через browse делается? а то у меня список solution'ов пустой. И ещё, добавлять нужно файл .dll, .sln или .csproj?
>>786565 ну тут нормальным вариантом будет добавить post build event для проекта с контролом - копировать dll и pdb соответствующей библиотеки и всех зависимых частей куда-то в папку скомпилированных библиотек, а для другого проекта - добавить референс на длл из той папки. после ребилда у тебя будет гарантия, что ты используешь всегда актуальную версию
подозреваю, частично механизм у тебя именно так и работает, но тут, скорее всего, проблема в том, что источник библиотеки не обновляется по какой-то причине
Решил короче одну свою проблему из >>786549 Оказалось, в одном из namespace'ов библиотеки с классами были ошибки, которые при сборке почему то не показывались. Сейчас осталась вторая проблема - добавляю в библиотеку с классами reference на библиотеку WPF-UserControl'ов с окном, и при использовании namespace'a с окном, VS2013 выдаёт ошибку, что типа "тип или пространство имён %имя пространства имён% не может быть найдено. может вы забыли референс?" При этом, namespace из той же библиотеки нормально видится той же студией в другом WPF-проекте - не библиотеке. ШТОДЕЛАТЬ
>>785134 Катана это имплементация OWIN спеки, там по сути обычный http listener. Не вижу в ней смысла сейчас, когда core релизнулся. Kestrel из .net core в этом плане на порядок производительнее и дает пососать и ноде и goвну.
http://stackoverflow.com/a/1554058 только для первого и последнего пункта по ссылке мне нечего сказать, т.к. не сталкивался. остальное - какая-то хуита
Что почитать про энтерпрайзное архитектуренье в .NET-экосистеме? Что вместо JPA, что вместо JMS, что вместо JTA? Распределенные транзакции, очереди, вотэтовсё.
ASP.NET и другие вебодела неинтересны, для веб-недобэкенда есть Node с хипстерами за миску пиццы.
>>787025 Ну последняя хуйня довольно полезная, когда нужно конструктор потестить на проверку аргументов, или аргументы правильно расчитываются. >>786953 У NUnit с третьей версии есть большой недостаток - не работает их GUI Runner и приходится запускать тесты плагином для студии, который ну очень сильно тормозит
Я как нибудь могу использовать js код на определённой странице из бэкэнда? Те есть сайт, допустим вк. Я могу запустить на нём определённый js, и залогиниться на нём?
>>787369 Ты задачу то бы описал сначала? На примере вк - документашка вк может тебе и логиниться не надо будет Если все же хочется поиграть в жс - можешь посмотреть в сторону phantomjs, или anglesharp, который тоже умеет в выполнение скриптов.
Шарпач, я знаю, тут седят боги программирования, я бы мог спросить в других ветках, суть одна - байтоебствою в ветке шарпа народ кажется более УМНЕЕ. Что хотят здесь от меня? я не могу разобраться. 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, но что складывать и как выводить в сообщение? Какой порядок? опять обратный или нет?
>>788255 Там же написано, что младший байт передается первым, про endianness прочитай уже. Попробуй нулями заполнить, а лучше посмотри что на самом деле отправляется. По модулю 2 - бит четности, 256 - байтики складываешь не обращая внимание на переполнение
>>788261 Что значит байтики складываешь? Я только ООП выучил более-менее, а булеву алгебру только в школе проходили. Как бит четности найти, что тут нужно складывать, можешь привести пример, раз уж тащишь. Тебе это явно не составит труда, няша.
>>788263 Опросить теплосчетчик и расшифровать входящие данные.
>>788267 Значит запись в мониторе идет в обратную сторону; чтобы понять как работать с 14 командой нам нужно ее видеть, вот пример с 0: FF FF FF FF /АДРЕС/ 00 /КОМАНДА/ 00 00 00 00 00 00 00 00 00 /ДАННЫЕ/ FF FF /CRC/ Так как параметры явно не указаны, значит можно заполнять нулями, если в другом месте описания протокола не написано обратное.
>>788325 Я разобрался, спасибо. CRC победить не могу. XOR же это оператор ^ Складываю в калькуляторе - ок! получается 0x35^0x51^0x02 = 0x66 Складываю в коде - пися, получается 0х18 ЧОМУ!?!?!
Господа, где можно найти FAQ по установке .NET Core на линукс не из списка дистров, указанных в dotnet-репо? Допустим, пропатчил я скрипты - оно собирает практически всё, но при попытке собрать mscorlib.dll начинает качать какую-то невнятную хуйню, пытаясь угадать название моего дистра. Зачем? Я же вроде как из сорцов собираю.
>>789062 Потому что для нужного мне дистра нет готового решения, очевидно же. Частично ответы нашёл тут: https://github.com/dotnet/coreclr/blob/master/Documentation/building/freebsd-instructions.md Но вообще MS здесь подобосрались маленько, в линуксе ведь как принято - указываются зависимости, а дальше оно должно собираться почти без танцев с бубном на любом дистре. В данном случае всё иначе. Ладно, похуй, придётся дебиан накатывать.
>>789721 > Можно ли из одного воида вызвать другой воид? Конечно, только надо сначала результат Che_nebud() присвоить во временную переменную и ее уже потом возраращать.
>>789816 А иногда лучше иметь контейнер, который - может развернуть за минуты на любой машине - можно запускать несколько экземпляров не заботясь о конфликтах - можно перемещать с машины на машину вместе с настроенным окружением - можно иметь базовый настроенный контейнер и наследоваться от него - можно централизованно обновлять инкриментно все контейнеры через hub
>>789740 Если ты из void хочешь вызвать void, то return не надо. Иначе необходимо вызывать все, что ты там хочешь внутри, приводить к возвращаемому типу данного метода и вертать
Посоны, есть мануалы как делать базу данных, таблицы и записывать туда данные на VS2012 + MS SQL, раньше делал VS2010+MS SQL CE, но на 2012 нету больше CE, где почитать про это?
>>789945 >>790313 Может через месяц-три будет удобнее, да. Там как раз тонну патчей напишут. Сейчас можно регулярно ловить сегфолты даже в типа "официальных" контейнерах.
Ануний, подскажи зеленому как правильно реализовать поведение кораблей в космосе (2d-рейнджеро-подобная игрушка на unity). Есть к примеру торговец и пират, нужно чтоб они вели себя подобающе. Что мне делать? Добавлять каждому объекту функцию Behavior(), само собой у разных типов своя реализация, и вызывать эту функцию каждый апдейт движка у всех существующих кораблей? Просто другого в голову ничего не пришло, не обижайте.
>>791190 В принципе уже можно. Проблемы есть, но они как правило связаны с какой-нибудь экзотикой - достаточно те самые ишьюсы почитать. Пока что самый главный минус - это местами довольно сильное отличие master на гитхабе от того, что есть в готовых бинарниках, поэтому может потребоваться самостоятельная сборка Core + CoreFX + CLI, чтобы какой-нибудь срочный баг пофиксить. На debian stable с этим проблем нет, например. Ну и делать что-то mono уже как-то не камильфо, там как не работали многие вещи, так до сих пор и не работают. Плюс вспомогательные компоненты mono типа xsp не обновлялись уже чёрти сколько, поэтому их тоже приходится отдельно собирать с патчами. Я вот недавно решал, на чём буду писать новый прожект под линукс, хотел уже C# дропнуть и делать всё на nodejs, но релиз Core несколько исправил ситуацию.
Посоны, как быть, если мне надо в базе данных(localdb v11.0) в таблице хранить не более 86400 записей, при достижении 86400, нужно старые перезаписывать? Если заранее делать пустую базу с 86400 строк, то через Update запись сразу в 4 таблицы делается долго( по 150мс в каждую таблицу).
Если через Insert, то это удалять 1 строчку каждый раз при достижении максимального, но как она удаляется, первый столбец ключевой типа int нумерация сбивается, в итоге через пару дней работы там уже будут нихуевы значения, первая строчка уже под номером 170 тысяч, вместо 1.
>>791431 Ну у меня по сути вся проблема в том, что я когда удаляю первую строку, у меня удаляется вся строка и соответственно там ключевой столбец "N" была строка с номером один, удалил ее, теперь первая сторка с номером 2 и т.д. Мне то в принципе поебать что там в этом ключевом столбце, он мне вообще нахуй не нужен, но я боюсь, что там когда-нибудь выйдет за диапазон INT и будет эксепшн выдавать или что-то вроде того
Я просто не пойму, если я удаляю строки из таблицы в базе данных SQL, то первичный ключ тоже удаляется и нихуя не обновляется, в итоге он просто идет вразброс, 15,21,23,24,25,27. Нельзя его обновить как-то, чтобы он снова шел с 1?
>>791480 Смирись уже, это стандартный подход любой БД или делай как >>791489 говорит, только не на всякой базе это есть.
AIK будет расти пока не упрется в максимум, только после этого он начнет подбирать свободные значения. AIK это вообще более быстрая/оптимизированная альтернатива Guid (генерация неповторяющихся айдишников).
У тебя какая-то логика работы приложения неправильная, раз зависишь от его конкретных значений.
Аноны, зелёный вопрос по парсингу с CsQuery. Есть страница, которая выдаёт n первых результатов в виде ul-списка, а затем подгружает остальные по мере прокрутки страницы вниз. Проще говоря, принцип отображения схож с лентой новостей вк, только на обрабатываемом ресурсе есть пределы, до которых страница "растёт вниз" (присутствует счётчик страниц, например, Page 1 of 150). Навигация по страницам также присутствует. Когда я создаю CQ DOM объект с содержимым по требуемому запросу, то получаю код как раз тех самых первых n результатов - то есть, всё то, что поместилось на страницу 1. Есть ли какой-то хитрый способ, чтобы без особого геморроя получить код всех страниц по одному запросу в один объект? Или нужно сперва получить количество результирующих страниц, а потом в цикле пробегать их все, каждый раз создавать новый DOM объект и парсить по-отдельности? Вариант сомнительный, т.к. каждая страница и так парсится не особо быстро - в пределах 1.5-2 секунд, а если страниц 5-10 тысяч?
>>791495 Ну может логика неправильная я не знаю, подскажите что ли.
Вот у меня есть необходимость каждую секунду записывать показания с датчиков, нужно чтобы эта информация хранилась 24 часа(86400 секунд). Старые значения не нужны.
Датчиков у меня 30 штук.
Получается делаю базу данных, в ней таблицу с полями N(PK),Time,Датчик1, Датчик2, ДатчикN...
Каждую секунду делаю db.Table.Add(entry) в итоге у меня каждую секунду добавляется новая строка в таблицу, так пока количество строк не станет 86400, теперь мне больше строк не надо, какой выход? Удалять первую строку и вставлять новую, так у меня всегда будет 86400.
>>791522 >AIK Автоинкремент? Ну я все это делаю через Entity framework создал таблицу - первичный ключ int и он сам стал автоинкрементом, нельзя убрать с него автоинкремент([N] INT NOT NULL PRIMARY KEY,) вот и весь его код. А без Primary key - ошибка.
Двач, подскажи начинающей студентоте, у нас С# будет идти только в рамках винформочек, но я так понимаю это совсем неактуально, сейчас есть знания ООП, структур данных, доучиваю события и делегаты, куда двигаться дальше? ASP.NET и СУБД? И насколько необходимо хорошо знать HTML/CSS/JS? Такой объем информации тяжело потянуть в оставшиеся 2 года.
>>791368 >но релиз Core несколько исправил ситуацию Я вот хочу запилить веб-сервер для игры и думаю использовать новый asp.net core. Выглядит он круто, гораздо лучше старого asp. И вроде как работает быстрее, но чёрт знает. Не хотелось бы потом ловить баги. Хотя сервер простенький.
>>791620 Что-ты сомневаешься: ASP NET Core уже вышел стабильной версии 1.0, EF Core тоже.
Сам .NET core конечно еще версии "preview 2", ну так НЕ бери всякие извращенные линкусы. Возьми Ubuntu или Debian для сервера, на них все отлажено и стабильно (а лучше официальный докер).
Ребята, подскажите как парсить json вот такой например http://pinterestapi.co.uk/spb/pins там в элементах массива attrib либо объект либо false. Я использую либу от newtopsoft. делаю так RootObject rootObject = JsonConvert.DeserializeObject<RootObject>(jsonResponse);
в rootObject все остальные объект. Поле attrib типа object. при десериализации поле attrib имеет либо тип object(bool), либо object(Newtonsoft.Json.Linq.JObject). А можно сделать так что бы оно сразу приводилось либо к bool либо к моему типу Attrib? Подскажите годных статей как парсить такие json?
>>791754 Пиши кастомный конвертер. Вот пример из доков Newtonsoft: http://www.newtonsoft.com/json/help/html/CustomJsonConverter.htm Дальше гугли уже самостоятельно, на SO было несколько тредов на эту тему. Только учти, что они несколько староваты, с тех пор интерефейсы малость поменялись.
>>791661 >Возьми Ubuntu или Debian для сервера, на них все отлажено и стабильно (а лучше официальный докер).
Иногда с MS можно проигрывать бесконечно. Убрали из зависимостей mono, зато теперь mscrolib.dll только по ссылке под конкретный дистр. Обещают вроде пофиксить это дело. Вот тогда заживём, да. Можно будет не привязываться к обоссаным ubuntu/debian алсо проиграл от версии nodejs в debian stable.
Пиздец. В релизе третьего апдейта пиарили оптимизацию памяти в студии как главную фичу. После установки студия стала жрать почти в два раза больше. Дебилы бля.
>>792041 можэ решарперский или еще какие-нибудь говноаддоны? бывшие тиммейты тоже после апдейтов ругались на подобную ебень, но источником проблемы была во всех случаях точно не ВС
Йоп. Недавно закончил шарагу и как-то поздно определился с каким языком вкатываться в работу на дядю. Сейчас жестко задрачиваю Шилдта и параллельные темы с разных ресурсов, но как-то не выходит найти каких-то практических задачек среднего уровня по какому-нибудь десктопу. Может кто посоветовать что? Хотя, раз пошла такая пьянка, может быть кто-нибудь вкатится и поможет освоить этот язык и направит с технологиями, которые нужны будут для джуна?
>>792409 Лолка, лучше одного быдло-кодера на зимарине нанять, чем отдельно под каждую мобильную платформу. Тем более, что разницы в производительности нет. Нативность платформ поддерживается
Не знаю где конкретную имплементацию найти, просто исходя из того что впф как раз был создан для такого типа интерфейсов. Самому наверное долго писать, может стоит посмотреть всякие прикладные бибилиотеки типа telerik или devexpress.
Так как большинство вакансий под .NET это ASP, насколько важно хорошо разбираться в верстке. Вот я пришел на собеседование по ASP.NET вакансии. Когда я сказал что хотелось бы заниматься бэкэндом и я не могу по псд шаблону сверстать страничку, на меня посмотрели как на дауна.
Поможите с укращением винформс. Есть один пикчюрбокс. В него грузятся изображения разного размера. И нужно сделать так, чтоб по ширине он всегда был одинаков 480 пикселей, а по высоте занимал ровно столько, сколько нужно для изображения. Т.е. что бы и альбомные листы показывал и портреты. Поставил ему PictureBoxSizeMode.Zoom Картинка отображается как надо. Но сам бокс не меняется в размере. Если задать ему размер руками, то по бокам всегда будет пустое пространство если изображение не квадратное. А как сделать так, чтоб он сам менял высоту под конкретное изображение?
>>771533 Сука, теперь я понимаю боль здесь сидящих.
Преобразовывает введенную строку в 16-и битное представление целочисленного числа со знаком. h из контекста задачи - часы. Следовательно задает час, введённый с консоли. Почему Int16 вместо int? Потому что экономия памяти в 16 бит, хотя я бы взял byte, будь это кресты или наконец DateTime'ом кастовал
>>792559 >насколько важно хорошо разбираться в верстке Нужно знать основы HTML, CSS, JS, Bootstrap. Знать примерно основные фреймворки. Верстать тебе нужно будет только если тебя как фуллстек программиста возьмут, но я бы не стал браться за такое, ибо тебе мозги вынесут просто нахуй. Просто основы подучи и все основные паттерны ASP.NET типа UnitOfWork, Repository, Service. И про SOLID не забудь, а то засмеют.
>>792635 >Потому что экономия памяти Скорее это только ухудшит работу с памятью. Использовать типы отличные от int нужно с большим умом. Я когда только C# учил тоже везде пихал shot'ы, байты и тому подобное, пока мне не сказали, что я занимаюсь хуйитой.
Вот отзыв: Книга отлично подходит для тех, кто только начинает изучать программирование, не имея никакого опыта вообще. Написана очень доходчиво. По каждому аспекту рассматривается большое количество часто возникающих вопросов. Для профессионалов в C# чего-либо интересного в книге нет.
>>792559 >насколько важно хорошо разбираться в верстке.
По-хорошему, нужно знать и уметь дебажить JS (соответственно, понимать как работают всякие jQuery, Bootstrap, Angular, React), потому что овердохуя багов будет сыпаться в твой бэкенд именно из фронтенда. А значит, неплохо бы ещё понимать, что это за фигня написана в cshtml-файлах. Лишними эти знания не будут, инфа 100%.
>Когда я сказал что хотелось бы заниматься бэкэндом и я не могу по псд шаблону сверстать страничку, на меня посмотрели как на дауна.
Ну сейчас рынок такой, хуле. Многие хотят получить именно фуллстэк-кодера, при этом в вакансии может быть написано что угодно. Но это совсем другой уровень мозгоёбства и, соответственно, оплаты труда. Если ты целенаправленно идёшь на бэкенд, то просто забей на этих товарищей и ищи дальше. Есть адекватные конторы, которые не будут задавать дурацких вопросов, а будут спрашивать только за бэкенд.
>>792686 Во имя Того, чье имя – Врата, призываю тебя! Во имя всех Мелких и Мягких, призываю тебя! Отрекаюсь от программирования, проклинаю оптимизацию кода, В ассемблер не верую! Сей непорочный винчестер и сей компьютер приношу я в жертву тебе, Да умирится твой голод неутолимый!
Сколько в памяти занимает значение типа bool? Правильный ответ - 8 байт
>>792706 зависит от типов свойств/полей до и после. вроде же если явно не вмешиваться в механизм размещения типа в памяти, то, например, восемь булов тоже упакуются в один квант
God tier: Дашборда для любого сложного сервиса с открытым апи (вк, фб), на ангуляре, со сбором какой-нибудь статистики, пиздатым ее отображением (google charts например). Печать отчетов в пдф. Выгрузка файлов в зипах.
>>792714 > восемь булов тоже упакуются в один квант Упакуются, а дальше? Допустим ты передаешь булево значение в метод. На уровне процессора это можно сделать через регист общего назначения или через стек, конкретная реализация выбирается компилятором. Для соврременных процессоров основными регистрами вляются 64 битные. Т.е. один бит будет загружен в 64 битный регистр. Если параметров несколько, то скорее всего их передадут через стек. А как проще всего поместить в стек значение? push rax - помещает в стек весь 64 битный регистр. Снова 64 бита, как ни крути. Теоретически, если у тебя около 64 булевых переменных, то их можно хранить в одной переменной размером 64 бита и проверять значение каждой командами сдвига. Но я хз как это в шарпе реализовано и реализовано ли вообще. В общем случае для одной едиственной булевой переменной скорее всего выделят все те же 64 бита, что бы проще работалось с регистрами.
Кто кодит под вин фон, подскажите какое событие вызывается при возврате на предыдущую страницу. Например: нажал кнопку на странице и перешёл в настройке, потом при нажатии кнопки назад и возвращении на страницу откуда открывались настройки нужно обновить данные в соответствии с введенными настройками.
>>792699 К сожалению до многих это до сих пор не доходит и они продолжают лепить IRepository<T> повсюду. Может быть лет через 10 додумаются до Command/Query Object.
хочу найти работу. вроде не тупой, быстро учусь, но не знаю что конкретно надо в рабочей ситуации. В основном ебусь с парсами данных, машинной авторизацией(не для брута) ну и с апи некоторых сайтов баловался. Какую должность искать? На что расчитывать?
Анон, здравствуй, хочу на джуна асп.нет мвц пойти. Подскажи пожалуйста, что нужно знать. У меня есть базовые навыки по шарпу(шарю паттерны и основные ооп знания), более-менее разбираюсь в веб-дев стеке(хтмл+цсс+джаваскрипт), ну и немного по сетям читал. А и sql скрипты юзал с ADOшкой, тоесть какие-то базовые разбираюсь. Купил на лето книжку по asp.net mvc 5, но чувствую подвох, что этого мало чтоб начать писать бэк-энд, подскажи пожалуйста какие еще технологии нужно еще разобрать, выучить? Заранее благодарен.
>>793304 Энтити Фрэймворк, ИИС. >>793319 Оно-то как раз позволит быть независимым от MS (ну точнее не более зависимым, чем джависты зависят от Оракла, а питонисты от левой пятки Гвидо). И с чего бы ему не взлететь?
Объясните на пальцах как работает async await? Каким образом он не блокирует первый (UI) поток или как он ожидает окончание работы второго потока/таска, не блокируя UI-поток и оставаясь (?)потокобезопасным?
Как заставить его игнорить лишние столбцы. Вот например у меня 10 столбцов в базе, я заполняю датасет "SELECT * FROM SomeTable". Потом Adapter.Fill(Dataset,"bla bla")
и до этого я хочу вызвать Dataset.MissingSchemaAction.Ignore - по описанию игнорирует лишние столбцы, иду на MSDN встречаю ссылку выше(Какие столбцы, как игнорировать?).
Посоны, кто умеет в mvvm, поясните за структуру: Есть модель Item, ее имя и id заполняется при старте из sql, value регулярно обновляется с opc-сервера. Фреймворк mvvm light. Собственно я создал ItemsViewModel, коллекцию в нем, а дальше возникли сомнения. Например, нужно ли для всех методов, работающих с sql, выделить отдельный ViewModel? И т. д. Как это примерно должно выглядеть?
>>794282 Стандартными средствами это нельзя реализовать вроде бы. Я даже не уверен, что эмуляторы браузеров в состоянии это сделать (NHtmlUnit, AngleSharp и т.д.). Скорее всего, придётся где-то в фоне запускать нормальный браузер и уже из него выковыривать видео через COM-интерфейс, например.
>>792699 А ну ка скажи мне. Используешь ты какой нибудь SQL server с ef, а потом случилось так, что тебе пришлось перекатиться на монго. Что ты будешь делать? Переписывать весь код в контроллерах? А может быть легче написать только круд для монги и через ioc контейнер подкинуть его в контроллеры? Так же представь что у тебя массив из айдишников, и штук так 2к, например. Тебе надо из по вытаскивать обработать и записать в базу. Лучше сделать эту операцию параллельной, знаешь что произойдет если ты будешь использовать общий контекст? Крашнется все к ебеням, вот тут тебе юнитОфВорк и поможет.
Сложно представить такую ситуацию, люди съезжают куда-нибудь на PostgreSQL с MSSQL, ну да ладно.
>Что ты будешь делать? Переписывать весь код в контроллерах?
Ну так-то контроллеры должны абстрагироваться от взаимодействия с БД. Сервисами, например, которые внедряются через IOC. А уж как там сервис получает данные, насрать абсолютно. Нужно будет, всё быстренько переписывается под Mongo или ещё какую парашу.
>Лучше сделать эту операцию параллельной, знаешь что произойдет если ты будешь использовать общий контекст?
Во-первых, в EF есть Async, а во-вторых, нахуя делать общий контекст?
Анон, дай совет по работе с картами. Задача такая: сервер собирает карту на основе OSM, а также данные о рейсах с flightradar24 и отправляет клиенту в лице WPF-приложения, на котором отображается карта с нанесёнными на неё самолётами. Как лучше всего можно реализовать часть, связанную с картой? Гуглил много и долго, в том числе на английском, только сильнее запутался. Буду рад ответу на хотя бы один из этих вопросов: 1. Как решается задача в общих чертах? 2. Есть ли хорошие примеры самописного кода? 3. Какие есть библиотеки/фреймворки с хорошей документацией и примерами? Нашел OsmSharp и MapSurfer.NET, но у первого документации нет вообще, у второго достаточно бедная. Разбираться же на примерах без четкого понимания, что вообще происходит придётся очень долго, а времени мало.
>>795517 вероятней всего, товарищ имел ввиду, что при использовании Repository поверх того, что предлагает EF, также в случае резкого перепрыга на другую СУБД, ты подключаешь вместо IRepository<T> -> EFRepository<T> ---> HuiPizdaRepozitory<T> и типа все как и раньше. но проблема в том, что сейчас не 92й год, и каждая СУБД тянет на себя всю свою разницу с другими вендорами, а следом за ними и реализация неких плюшек. что в итоге выливается во все-равно переписывание части БЛ под новые нужды
Анон, дай совет криворучке. Использую OpenGL для отображения картинок (1000x1000 - 3000x3000), но у меня оно медленно работает и память замусоривается. Схема примерно такая: Загрузить необходимые текстуры. Привязать текстуру. Нарисовать прямоугольник (с текстурой). Отвязать текстуру. Удалить текстуру (GL.DeleteTexture), так как она не используется далее. И так несколько раз. Но даже со сбором мусора вручную (GC.Collect) оно всё-равно забивает всю видеопамять вскоре.
хлопци, как в WPF анимировать движение окна, при условии, что команда на движение подаётся через метод, не связанный с базовыми событиями любого контрола этого окна (типа там mousedown/keypress, т.е. обычные триггеры/ивенттриггеры/мультитриггеры не подойдут, разве что сейчас попробую дататриггер)? пробовал VisualStateManager, но либо не понял как его прикрутить собсна к окну в кзамле описал visualstategroup со всеми соответствующими анимациями просто между тегами window, перед гридом. не grid же мне толкать, либо неправильно вызываю метод VisualStateManager.GoToState(this, "aaa",false); из Model.
>>767429 >аяксом нельзя аплоадить файлы Почему? Я 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; например)?
Аноны, не могу сообразить в куки. Первый этап: Есть один сайт, на него я делаю post-запрос с авторизацией Результат отправляю в строку и для проверки сохраняю в отдельном файле. Файл проверю - все ок, содержимое такое, какое должно быть после удачной авторизации. Второй этап: А вот на втором этапе я и забуксовал Требуется отправить get-запрос на тот же сайт. Ок. Делаю get-запрос, сохраняю результат в файл, смотрю содержимое файла и вижу то, что бывает, когда неавторизованный пользователь кликает на какую-нибудь ссылку, требующею авторизации.
Что мне в данном случае делать? Я понимаю, что нужно использовать куки, но я не могу банально допереть как получить куки после того, как я сделал post-запрос
ITT элита продолжает обсуждает будущее этого прекрасного и современного продукта компании Microsoft. Только в этом треде элитные разработчики ответят на самые острые вопросы индустрии.
Литература вторым постом
1. Ресурсы:
- http://stackoverflow.com/questions/tagged/c%23
- http://www.tutorialspoint.com/csharp/
- http://professorweb.ru
- http://net-informations.com
- http://habrahabr.ru/hub/csharp/
2. Онлайн-компиляторы:
- https://dotnetfiddle.net/ - возможно лучший вариант. Встроено немного убогое, но все-таки автодополнение и проверка синтаксиса.
- http://ideone.com/
- http://csharppad.com/
- http://www.tutorialspoint.com/compile_csharp_online.php
- http://rextester.com/l/csharp_online_compiler
3. WinForms или WPF?
Зависит от задачи. Для небольших проектов, скорее всего, будет достаточно винформочек. В случае, если разрабатываемое приложение достаточно серьёзное, то возможно его стоит писать с использованием WPF. WPF очень хорошо работает с паттерном MVVM ( https://ru.wikipedia.org/wiki/Model-View-ViewModel ), и позволяет пилить очень кастомизированные интерфейсы с помощью XAML, что в случае WinForms, делать намного сложнее.
4. Мне тут знакомый_нейм сказал, что C# умирает, это правда? Может не стоит его учить?
Неправда. C# довольно активно развивается, недавно вышел новый компилятор, шестая версия шарпа, и уже активно разработывается седьмая. Весь дотнет понемногу становится опенсорсным, а ASP.NET становится независимым от платформы. В некотором смысле понемногу вымирают десктопные приложения с развитием веб-технологий, но в том же энтерпрайзе он еще очень даже востребован.
5. Какую ИДЕ выбрать?
- 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%20Overview
Новые возможности C# 6.0: https://github.com/dotnet/roslyn/wiki/New-Language-Features-in-C%23-6
ПРИНИМАЮТСЯ ПРЕДЛОЖЕНИЯ ПО ШАПКЕ
Код этой шапки: http://pastebin.com/cKKXYArs
Прошлый тред тонет здесь: https://2ch.hk/pr/res/749549.html