24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!
Существует множество различных платформ и языков программирования, однако среди них нет более элитного, чем C#. Это поистине язык богов, сочетающий в себе простоту использования с поистине неограниченными возможностями. Знание C# — прекрасный детектор современного, умного и успешного человека. Изучение платформы .NET безошибочно указывает на успешного в будущем человека. ITT элита продолжает обсуждает будущее этого прекрасного и современного продукта компании Microsoft. Только в этом треде элитные разработчики ответят на самые острые вопросы индустрии.
Что почитать: - Bart De Smet - C# 5.0 Unleashed - Joseph Albahari и Ben Albahari - C# 5.0 in a Nutshell (на русском: C# 5.0, Справочник. Полное описание языка) - Pro C# 5.0 and the .NET 4.5 Framework (Andrew Troelsen) - Jon Skeet - C# in Depth (на русском: C# для профессионалов. Тонкости программирования) - Jeffrey Richter - CLR via C# (на русском: Программирование на платформе Microsoft .NET Framework 4.5 на языке C#) - Writing High Performance .NET Code (Ben Watson) - Pro WPF 4.5 in C# (Matthew MacDonald) - Windows Presentation Foundation 4.5 Cookbook (Pavel Yosifovich)
FAQ Q: Что с IDE для других систем? A: Самый юзабельный вариант - MonoDevelop ( http://www.monodevelop.com/download/ ) Для vim можно использовать OmniSharp ( https://github.com/OmniSharp/omnisharp-vim ) VS Code ( https://www.visualstudio.com/en-us/products/code-vs.aspx ) Также существуют плагины для Atom'а и Sublime Text, но функциональность там достаточно сильно урезана. SharpDevelop - еще одна IDE для C#, отличается малым размером (около 20мб) и опциональной портабельностью, при этом имея дизайнер WinForms и WPF, а также интеграцию с FxCop, StyleCop и прочими. Q: Пригоден для C# для мобильной разработки? A: Да, можно выбрать в окне выбора компонентов студии при установке VS
Дополнительные инструменты для разработки на C# LINQPad - сорт оф REPL, с возможностью быстрого подключения к БД и удобной визуализацией данных dnSpy - декомпилятор, малоизвестный форк ILSpy, где реализована возможность модификации IL-кода прямо в EXE и DLL файлах, отладка IL-кода и много других фич для reverse engineering'а. Плюс няшные темы как в студии dotPeek - бесплатный декомпилятор от JetBrains scriptcs - для запуска C# кода как скриптов, возможность использовать как REPL
С ОРМ ранее не работал. Хочу создать БД с использованием подхода code first. Есть таблицы A(id, a), B(id, b), C(a_id, b_id, data). В таблицу С каждая строка из А попадает 0 или более раз и каждой такой строке соответствует 1 или более строк из В. То есть С может выглядеть так: [(0, 0, "хуй"), (0, 1, "пизда"), (0, 2, "джигурда"), (4, 3, "qw"), (4, 10, "erty")]. Объясни, анон, как правильно установить для этого случая связи между таблицами в методе OnModelCreating контекста; в каком классе сущности хранить коллекцию элементов другой сущности,а в какой только один экземпляр другой сущности?
>>598506 > вебпараша со всякими js. Сейчас с трудом делаю свой говнопроект на mvc, основная проблема это js(фронтэнд), с бэкэндом проблем вообще не было. Все у меня выглядит очень стандартно(на бутстрапе).
>>598659 Очень медленно, если смотреть как мало всего сделал за это время. Начал можно сказать месяц назад, но начинал в основном с прохождения всяких туториалов и прочтения обучающих материалов. Потом забил на них и начал уже делать непосредственно, потому что времени только 2 месяца осталось. 90 процентов времени занимает гугление в духе "Как сделать чтобы вот так вот вышло". Что значит, что я нихуя толком не понимаю.
>>599426 Разве что речным моряком, по Днепру экскурсии возить. >>599389 Какой город? Есть кулстори с собеседований? Или вообще не зовут? Тоже с Украины, но у меня знакомые без опыта устроились без проблем относительно недавно(год назад, полгода назад)
>>599443 Харьков, позвали пару раз, после тестового задания, но на собеседовании сказали что у меня хуевая теория. А все потому что я разговариваю как аутист.
>>599443 А, еще сходил в никсы на стажера тестироваться. Я как узнал что тест письменный на листочках сразу попросил проводить меня обратно до выхода там входная и пройти давали только по пропускам.
А КАКИЕ СВОИ ПРОЕКТЫ У ВАС ЕСТЬ? А ЧЕМ ВЫ ЗАНИМАЛИСЬ ВСЕ ЭТО ВРЕМЯ? У ВАС ЕСТЬ СВОИ САЙТЫ? Каждое собеседование. Причем показываешь свои всратые сайты, так все ж насрать, йобу подавай. У меня совершенно нет идей проекта, который был бы достаточен и крут для джуниора. Какой сайтец можно запилить, чтобы удовлетворить техлида? inb4 минет
Я тут впервые, но помогите, плиз. Есть dll iTextSharp, есть прога на ней. Прога заполняет поля в pdf. Всё работает. Но нужно перенести на Windows App Store. http://pastebin.com/nB17UCvv И тут хрень полная. Создать пустой документ и его заполнить получается, а вот модифицировать никак. Возникает ошибка при создании ридера, мол уже используется процессом. Я поставил лок, но не помогло. И да, имя файла при его определении задавал как именем, так и полным путём. Я пошарил по форумам и прочим, пишут, что поддержки вроде как нет, но сделать надо.
Пытаюсь разобрать перцептрон, но слабо понимаю, что печатаю. Нужно ли классы отдельно сохранять и подключать или можно простыней писать в базовой программе? И как исправить это? http://habrahabr.ru/post/140495/
Аноны, куда лучше податься в дотнете, асп мвц или впф? Опыта в обеих технологиях нихуя, интересует будущее трудоустройство (дипломник). Опыта с сишарпом немного и это winforms.
>>601920 лее, я прочитал одну статью, еще в гугле книга вылезла и какие-то мутные статьи с msdn вообще без кода. Мне нужен именно сам код, библиотека с пояснением.
Туч, есть вопрос, вот у меня есть прога которая ищет файлы. В нее прикручен прогресс-бар, как сделать его последовательное заполнение? Прикрутить еще одно событие в метод поиска?
>>602783 test.Progress += () => progressbar.Dispatcher.Invoke(() => { progressbar.Value++; } ); Написал с лямбда выражением и прикрутил событие, но заполняется совсем чуть-чуть и останавливается.
Пжл, подскажите в чем дело. Я пытаюсь ввести 10 char в массив из 10 char. Для этого организую цикл. Но при выполнении litters = (char)Console.Read(); почему-то пропускается сразу 3 итерации цикла, а litters = (char)Console.Read(); выполняется всего один раз, и заполняет всего один символ из трех. Такое ощущение, что мой char с клавиатуры больше по битам чем обычный, или при нажатии клавиши Enter считывается и она. Подскажите как правильно сделать ввод поэлементно и в чем тут дело?
Сап, мертвый. 4 года пилю десктопы и сервисы и как- то меня подзаебало. Подскажите: есть ли смысл дернуться в WP и UWP? Есть ли спрос и деньги в этой области? Веб не хочу, не по душе мне js.
У меня есть wpf приложение и полсотни классов к нему. Как это все скомпоновать по решениям/проектам, чтобы работать было удобно?
Выносить классы в dll, или держать все в wpf проекте? Делать все в одном solution, или для каждого бинарника - отдельный solution?
Тащемта попробовал все классы раскидать в десяток разных dll со своим solution для каждого. Получилась ерунда полная. Во-первых, зависимости напрягают (перетащил проекты dll в новую папку - в главном проекте они потерялись, пичальбида). Во-вторых, для работы с dll приходится открывать несколько vs и делать несколько компиляций. В-третьих, просто бесит куча клонированных dll в bin директориях. Я хочу развертывать программу копированием одного .exe файлика.
Изначально, когда все было в одном проекте - терялся в классах. Их очень много и хер вспомнишь какой что делает. Стараюсь ебашить ООП, давать понятные названия, но как-то плохо получается. Пока 5 классов в программе - все легко и просто. А когда больше становится - начинаю тупить.
>>603005 >Во-вторых, для работы с dll приходится открывать несколько vs и делать несколько компиляций. Ты делаешь это неправильно. Нужен один солюшен в котором несколько проектов с зависимостями друг от друга. Будет конпеляция всего этого добра в одни клик.
>Их очень много и хер вспомнишь какой что делает. Незнаю мне подкаталогов хватает. В них запихиваю похожие классы или решающие какую-либо задачу целиком.
На ios и android большинство вакансий - это либо java/objective C, либо мультиплатформа на apache cordova и аналогах.
На Xamarin почему-то мобайл почти никто не делает. Предположу, что для этого есть веские причины. Люди бы не учили новый язык и новую среду, если бы задачу можно было легко решить на дотнете (который все возможные языки поддерживает).
>UWP "uwp" - 4 вакансии
Технология новая. Даже если она окажется востребованной - существенный спрос на нее появится только спустя несколько лет. Не факт, что она окажется востребованной. МС последние 10 лет в основном лажает с новыми технологиями. Если тренд сохранится - UWP окажется таким же ненужным говном, как Metro или Silverlight.
Задача 1. Ввести с клавиатуры три действительных числа a, b, c и решить уравнение ax2 + bx + c = 0, т. е. найти все его действительные корни и вывести их на экран (если любое число является корнем или корней нет, то ответ нужно выдавать в текстовом виде). Каждый из коэффициентов может быть равен 0. Сделайте это для меня пожалуйста. Я не шарю в проге.
Проблема в том, что поле _hour дублируется в обоих классах. Я хочу, чтобы оно было только в классе Hour, а из класса Minute можно было к нему обращаться. И соответственно в конструктор Minute не нужно было бы передавать _hour.
Простейшее наследование не подходит. Minute : Hour Потому что у нас точно так же будет создаваться новый объект _hour (и Hour) для каждого нового Minute.
Простейшая композиция вроде тоже не подходит. Hour { List<Minute> minutes; } Потому что мы не можем вызывать Hour._hour из методов класса Minute.
>>603179 Отдавай в минтуту Hour, а лучше сделай класс Time, раз они так сильно связаны >>603174 У тебя метод в методе, у нас в компиляторе за такое CS1525 нахуй.
>>603174 Скачай книгу уровня "сишарп для чайников" и поделай хэлловорды пару месяцев. Не нужно пытаться копировать сложный код, написанный другими людьми и пытаться запустить его, если ты не понимаешь самых основ. У тебя не получится.
>>603182 >Отдавай в минтуту Hour Точно! Как-то не красиво, смахивает на костыль. Но в принципе должно сработать.
>а лучше сделай класс Time, раз они так сильно связаны У меня ИРЛ все чуть сложнее. Связанных классов не 2, а 5. У каждого 3-10 полей, которые нужно передавать на уровень ниже. Если все это в одном классе держать - будет нечитабельная груда кода. Мы ведь классы делаем, чтобы читабельность повышать, правильно?
Делаю таблицу рекордов к своей недоигре с хранением записей в текстовом файле, а в апи шиндовсфона у чтения/записи файлов есть лишь асинхронная работа с файловой системой (StorageFile). Как я это делаю: 1. Создаем объект, который в конструкторе должен наполнить массив с записями таблицы рекордов, считав её из файла. 2. Затем вызываю метод >чекнуть, является ли новый рекорд больше тех, что есть в файле и перезаписать его
В случае ссинхроноус все работало бы замечательно. Но так асинхронные методы у нас с ссылками не работают, а работают с копией, то я тупо не могу наполнить массив с записями и все его значения всегда равны нулю.
Есть в шарпе какая-то возможность наполнить поле класса асинхронным методом?
Не копипастить же код из метода чтения в метод проверки на хайскор, должен же быть элегантный способ.
Есть одна программа с алгоритмом по поиску файлов. Есть два метода, первый метод непосредственно содержащий алгоритм, а второй непосредственно вызывает первый метод и записывает все результаты в Лист. Второй метод вызывается в листбоксе и соответственно выводится на экран. Вопрос в том, что требуется сделать так, чтобы поиск файлов выполнялся асинхронно, переделать короче вызов метода Поиска в Таск. Так вот, этот таск после выполнения находит каждый раз рандомное количество файлов. В чем может быть проблема? Использовал как раз async/await. ContinueWith тоже не помогло, хотя я скорее всего что то неправильно написал .
Алсо, использовать методы внутри конструктора норм или лучше вызывать отдельно? Ну, я имею ввиду >public Zaloopa() >{ >DoSomething() >} или >Zaloopa zaloopa = new Zaloopa(); zaloopa.DoSomething();
Подскажите, пожалуйста, некий "сборник" с задачами для набивания практики написания кода на шарпе. Желательно чтобы задачи эти были отсортированы в порядке "усложнения". И, конечно же, имелись примеры кода решающего эти задачи. Иначе без возможности "пощупать" в практическом применении для меня все напутствия в книге выглядят не больше чем матан из книг Ландау. А придумать самому себе задание как-то уж совсем не выходит.
>>603279 Видел я эти задачники. Математические примеры и алгоритмы, оторванные от жизни. Лучше поставить конкретную цель - написать свое приложение и затем решать проблемы по ходу их возникновения, гугля, набигая на стаковерфлоу и спрашивая ответ здесь, и не получая его.
>>603182 >Отдавай в минтуту Hour Сделал. Вызываю объект, лежащий в самом старшем классе так:
//Base - ссылка на объект уровнем выше this.Base.Base.Base.Base.Base.Data;
Тупо выглядит, но на самом деле код упростился до неприличия. Теперь вся логика абсолютно прозрачна и элементарна. Все данные и логика по уровням разбиты, на каждом уровне несколько простых действий. А в старой версии я охуевал от методов с 20 параметрами и непонятных зависимостей между классами.
Теперь буду любые многоуровневые циклы так реализовывать.
>>603308 >this.Base.Base.Base.Base.Base.Data Просто убери все лишнее и не делей так больше. Если все эти базы уровня Minute и Hour выше, то они нахуй не нужны.
>>603308 >this Здраствуйте я код мудака не слышавшего про абстракцию, виртуализацию и инкапсуляцию.
this(вот это я). Base(этот бездельник ничего не делает со своими данными). Base(еще один дармоед). Base(тупой придурок, все время об него спотыкаюсь). Base(а ты кто-такой?). Base(с дороги!). Data(А вот это мои сырые данные, фу устал. Пиздец поработал!)
У меня похожая ситуация, собираюсь несколько достаточно сложных проектов запиливать для обучения и фана.
Прямо сейчас доделываю шизанутую мат модель для machine learning. (на нижних уровнях происходит обычный подбор коэффициентов регрессионным анализом, а на вышестоящих уровнях обучаются параметры обучения нижестоящих уровней. То есть алгоритм не просто обучается по данным, а обучает сам себя более качественно обучаться по данным. Думаю херня выйдет с точностью ниже генетического алгоритма :D . Но нужно проверить, вдруг сработает.)
Следующим проектом планирую сделать удобно развертываемую базу данных и обертку для нее. (понятия не имею, как это сделать, начну с гугла "SQL lite"). Для специфической прикладной задачи. Есть потенциальная аудитория в несколько десятков/сотен человек (для минимал-версии). Если угореть и реализовать миллион функций - можно будет конкурировать с коммерческими продуктами за аудиторию в тысячи человек. Но такой цели пока что нет.
В дальнейшем будущем есть несколько идей потенциально-коммерческих проектов на ASP. Смутно представляю, что такое ASP, но на нем пишут тысячи людей, а значит он не может быть слишком уж сложным.
Если ты дольше месяца в программировании и умеешь юзать git, то можно вместе пилить и учиться.
Я сам нуб, comp science не знаю, фреймворки не знаю, парадигмы не знаю. Кода за всю жизнь написал тысяч 20 строк - в основном консольные приложения со сферическим матаном в вакууме.
>>603355 Нет. Я, можно сказать, нуб в программировании. Пытался в программирование в универе (инженер-конструктор) но дальше базового курса турбо Паскаля синтаксис, консольные щиталочки-сортировочки, примитивная графика и связанная с этим геомертия не дошло. Учил самостоятельно шарп, но остальная учёба не давала времени вникнуть в самую "суть" и набраться опыта. Писал несложные скрипты для пакетов МКЭ на фортране и С++. Сейчас в связи со сложившейся экономической и политической ситуацией выдалась минутка год свободного времени безработицы и мой друг пхп-макака руби он рэйлз зовёт меня подтянуть навыки шарпа и идти к ним в контору сначала макакой а потом мб. и чего лучше получится.
>>603310 Не понял последнее предложение. Что ты лишним называешь? По-моему ничего лишнего нет, наоборот все замечательно и прозрачно.
>>603316 Нет там дармоедов, все нужны. На каждом уровне несколько полей нужных.
>я код мудака не слышавшего про абстракцию, виртуализацию и инкапсуляцию. Предложи вариант лучше. Допустим, мне нужно реализовать вложенный десятикратно цикл. На каждом из уровней создаются 5 новых параметров, которые нужно хранить и передавать на нижний уровень. Каждый уровень использует методы, которые используют все имеющиеся параметры (для нижнего уровня это будет 10х5=50 параметров в методе). Каждый из уровней специфический, разумеется. Это не рекурсия.
>>603582 >>603582 Короче, мне нужно сделать асинхронную поисковую логику в отдельном таске, а потом уже сработал возврат листа со списком файлов. Wait блокирует поток, а мне нужно без блокировки основного потока.
>>603625 В МаняРóссии? >>603624 Ну потому что ты хочешь чтобы код, написанный после MainTask() выполнялся после выполнения MainTask(). Оно так и было бы в синхронном коде, но у тебя тут асинхронный код, поэтому MainTask() запускается в соседнем потоке, и, не дожидаясь выполнения MainTask(), начинает выполняться следующая строка. Await же позволяет писать асинхронный код как синхронный и жить как человек. Когда ты пишешь .Result, поток блокируется до завершения таска, поскольку этот поток - основной, т.е. UI поток, вся программка подвисает. await же ничего не блокирует, т.е. UI тред может нормально рисоваться и получать/обрабатывать события от пользователя/системы. Такие дела.
>>603705 >The November release candidate (RC1) will be a supported and production ready cross-platform release. Depending on feedback from RC1 we will ship additional release candidates as necessary.
Нужно вывести таблицу чтобы каждый столбец был датой дня недели(всего 7 столбцов). Таблицу можно переключать на следующую неделю. Как лучше это сделать? В паршиал вью и передавать значения дат в модель. Или код в самом паршиал вью сделать который каждый раз новые даты генерирует. Потому что в модели помимо дат будет еще и содержимое самой таблицы.
Есть один листбокс и есть один метод поиска файлов, который запускается с помощью таска. Когда файл находится, возникает событие ФайлНашелся и этот файл должен сразу же отобразиться в листбоксе. Внимание вопрос, как это сделать синхронно с таском?
Посоны, скачал книгу по Java, а там весь код на сишарпе лол.
Тупость какая-то: две версии одного и того же языка с микроскопическими отличиями. Но для каждой версии отдельная индустрия, разные библиотеки, разные фреймворки. Объединили бы уж.
Антоши, простите за глупый вопрос — но не могли бы вы в двух словах объяснить значение ключевого слова struct ? Это что, возможность самому создавать примитивы или как? перекатываюсь с друогого ЯП
Че блин за херня Выводит Invalid object name 'dbo.Persons'. У меня DbSet в единственном числе public virtual DbSet<Person> Person{ get; set; } Я нашел что вот так решается modelBuilder.Conventions.Remove<PluralizingTableNameConvention>(); Но до этого у меня все предыдущие таблицы были также в единственном числе и таких ошибок не возникало и вдруг на седьмой таблицу EF вспомнил о конвенциях.
>>604795 Как я понял, это что-то вроде облегченного класса с инкапсуляцией но без полиморфизма и наследование. Еще стракт в отличии от класса тип значение, а не ссылочный тип.
Шарпаны, а вообще на сколько быстрый asp.net? Подойдёт ли он, например, для реалтайм приложения по типу браузерки или онлайн игры(просто пример)? Понимаю, что есть signalR, но на сколько вся эта ебала производительна на единицу мощности? Может риалтайм там просто для того, чтобы энтерпрайзу можно было больший ценник втюхать?
Начал изучать паттерны @ Понял, почему программы меньше 50к строк считаются маленькими
Класс с крякающими утками: 10 классов, 2 интерфейса, 2 перечисления, 180 строк кода. Из них реально что-то делают 2 строки, а остальное - оформление.
Я обычно в 180 строк чуть ли не полноценные программы умещаю лол.
ООП специально придумали, что увеличивать объем кода в десятки раз, да? Чтобы работодателям пускать пыль в глаза и получать больше денег за ту же работу? Можете мне сказать правду, я никому не расскажу.
>>605029 Это поведение, которое может меняться во время жизни объекта. По дефолту изменения реализуются как Duck.quacking = new QuackBehaviorNumber42();
Свитчи я добавил от себя. Решил скрыть все классы, реализующие поведение, и само поле quacking. Сделал перечисление (соответствующее скрытым классам) и свойство, обрабатывающее это перечисление.
Херня вышла в общем-то. Новый класс QuackBehaviorNumber43 чтобы добавить - придется код в четырех местах менять.
В изначальном варианте не нравилась куча открытых типов. Пишешь ключевое слово, IntelliSense выдает список из 20 типов с идиотскими похожими названиями. С 20 еще можно как-то работать, с 50 начтется полный трэш.
>>605103 Там наоборот получается, сначала ты пишешь с решарпером и у тебя теорема эскобара, а потом внезапно ты уже не можешь без него писать, плюешься там, ломка, вот это все.
Есть такой набросок с EF, code first: http://pastebin.com/qzhkueKe Как мне сделать чтобы один составной предмет мог включать в себя несколько деталей одного типа (например чтобы в списке Components системного блока два раза фигурировала одна и та же сетевая карта, не создавая при этом в таблице Items две записи для нее)?
>>605124 А чем такой подход не нравится? Делаешь таблицу словарь с названием деталей и айди. И потом все таблицы которые будут использовать эту деталь будут ссылаться на этот айди в словаре.
Народ, поясните за среду разработки. Немного выучил и пишу код на C# чисто как хобби по профессии совсем не программер, но вот сейчас уже приближаюсь к окончанию одного весьма громоздкого проекта. Так получилось, что весь код писал и пишу на Visual Studio Express 2010. Сейчас столкнулся с некоторой сложностью с отловом багов как вызванных многопоточностью, так и непонятно откуда возникающими тормозами. Мне может чем-то помочь переход на версии Professional, Ultimate или каких-то иных средств разработки? Код пишу один, всякие Team Foundationы побоку.
>>605262 Microsoft Visual Studio 2015 Community (r,tm,c) Там прям Diagnostic Tools есть, и красивый график покажет тебе, как все хуево. И юзай профайлер же. У тебя там прям настоящая многопоточность или просто асинхронные действия?
>>605268 Ммм.. хрен знает что это... Короче это сервер онлайн игрухи. Есть основной процесс, который постоянно анализирует состояния одних объектов и вносит изменения, а есть асинхронные вызовы клиентов, которые вносят изменения в некоторые параметры. Собственно баги возникают, я думаю что это из-за криво написанной многопоточности, но как разбираюсь, оказывается это они от моих кривых рук :) Ну или я просто отследить немогу.
Господа, есть проблема. Был VS2015, работал как надо. Что-то меня дернуло обновиться до "обновления 1". Нихера он не обновилось из-за ссаной ошибки Team Explorer блаблабла. Решил откатиться - и тут оно. В общем нихера не работет, ставлю уже раз 20 и все фейлюсь и фейлюсь. Нагуглил такую проблему на хабре. Так вот - не помогает. Аноны, плизки, как побороть эту мутотень и поставить vs?
>>605422 Есть такой софт Reg Organizer. Там есть возможность чуть более расширенного удаления программ. После удаления программы он предлагает запустить поиск по оставшимся от софта следам, а именно по реестру, папкам, файлам. Попробуй через неё удалить и потом уже переустановить студию.
Как в решарпере сделать так чтобы он пропускал некоторые папки при рефакторинге? У меня он анализирует кучу js библиотек в которых я ничего рефакторить не хочу конечно же. Там есть меню Elements to skip from code analasys, но это не то, на рефакторинг никак не влияет.
>>605422 У меня оче долго обновлялся один компонент (Win10 SDK), я его решил отменить, а отменилась вся установка и студия не запускалась. Тогда я просто запустил установщик 2015 студии, и он восстановил и докачал обновления.
>>605744 Ну хуй знает, никогда такого не было. Один раз только была проблема, когда новые расширения не хотела грузить и удалять, но помогло удаление VisualStudio/14.0, после чего все нормально работало.
Объявляю базовый класс, у него есть конструктор. Потом наследую от него несколько классов. И в каждый нужно вставлять хуйню типа: public DerivedClass(string s) : base(s) { } Жутко бесит. Это ж boilerplate. Что делать?
>>605263 Он про IDE, а не про сам моно. >>605138 ЯННП. У меня одна таблица - типы деталей. Каждый тип может быть собран из многих типов (или ни из одного). Каждый тип так же может входить как компонент во многие типы. Без EF я бы создал отдельную таблицу Items_Relations с полями Composite_Item_Id, Component_Item_Id и Quantity с PK по первым двум полям. В принципе я и в EF могу сделать для этого отдельную сущность, но у меня же тогда не будет виртуальных полей с ленивой загрузкой (и соответственно не будет смысла ебаться с EF).
>>605844 Когда ты создаешь дочерний класс, clr сначала должна инициализировать родительские классы, т.е. вызвать их конструкторы, а она не знает с какими параметрами, ты ж их не указал. Если бы конструкторы наследовались, у тебя бы в дочернем классе висели все конструкторы, что немного ебет инкапсуляцию в рот.
>>605871 В моем первом примере EF сам создает таблицу для связи. Загрузка как бы есть, но в классе Item у нас теперь нет ссылок на связанные Item, а вместо этого ссылки на сами связи. То есть придется писать еще кучу методов.
Я сделал отдельную сущность для связи. http://pastebin.com/Aj47DqyV Теперь у меня какая-то херь с FK, их четыре вместо нужных двух, они просто дублируются. ЧЯДНТ?
Непонятка со стэком. Стэк же должен реализовывать только функциональность push-pop, правильно? Но мы можем написать: int a = new int(); int b = new int(); int c = new int(); a++;
По идее, чтобы добраться до a, процессору нужно вытолкнуть c и b из памяти. Но он обращается к a, не трогая b и c . Как он это делает?
>>605948 Эээ... Указатель стэка смещается на нужное количество позиций вглубь по стэку? А после того, как мы закончим работу с a - он вернется назад на верхушку? Как-то многовато действий. Зачем тогда вообще стэк использовать? Могли бы просто адрес в куче взять. Куча намного медленнее работает по каким-то низкоуровневым причинам, да?
>>595397 (OP) Поясните за c#? Для чего его юзают какие-то крупные предприятия и корпорации? Т.е., если я его выучу и пойду на работу, что я на нём буду писать? И насколько он сложный в освоении?
>>606247 Что тебе скажут, то и будешь писать. Веб-парашу, формочки всякие, говно под xamarin, говноигры под какое-то юнити. Скажут говно чистить - будешь говно чистить.
List<List<byte>> temp = new List<List<byte>>(best);
Изменяю члены temp - изменяются члены best. Так не нужно, нужно чтобы все вложенные элементы тоже новые создавались. Подскажите элегантный способ это сделать. Цикл инициализаций уродливо выглядит.
>>606253 >формочки всякие >2015 Ну хоть не консольки.
> говно под xamarin Никто не пишет на xamarin, не писал и не будет. Это технология - миф. Типа как мультиплатформенный дотнет под моно. В теории он как бы есть, но на самом деле его нет.
>>606247 У тебя неверные представления. Ты думаешь: выучиваю язык --> иду на работу --> говорят что писать
На самом деле: выучиваешь язык --> решаешь, что будешь писать --> выучиваешь стэк сопутствующих технологий и фреймворков --> идешь на работу
На сишарпе в данный момент можно найти работу по двум направлениям, притом второе раз в 10 менее востребовано: 1. ASP.NET web backend developer. Сопутствующий стэк мастхэв технологий: asp.net, ado.net, sql, html+css+javascript. 2. Unity3D game developer.
>И насколько он сложный в освоении? В принципе, один из самых широких и мощных языков по возможностям в данный момент. Есть функциональное программирование, декларативное программирование, байтоебство, работа с указателями.
C# как игры Близзард - easy to start, hard to master.
Напомню тебе очевидную вещь, которую ты возможно не понимаешь: навыки программиста - это только на 5% язык. Остальные 95% - знание фреймворков, технологий, паттернов, приемов и т. п. Основы языка может любая блондинка выучить за пару дней на ютубе. Но это не сделает ее программистом.
>>606287 >Есть функциональное программирование А что там есть, кроме ФВП, которые даже в сишке есть? (G)ADT? Частичное применение/Каррирование? Вывод типов? Хотя никакие перделки из ФЯП не сделают из изначально неприспособленного языка функциональный. >декларативное программирование Это ты про LINQ что ли? >мощных языков по возможностям в данный момент >в данный момент Лел. По возможностям он ещё даже до смолтолка из 80х не дорос.
Оптимизируешь код @ Повесил Garbage Collectors в правильных местах @ Скорость ухудшилась в 30 раз @ Вернул как было @ Повесил паралельность на циклы @ Скорость ухудшилась в 10 раз @ Вернул как было @ Заменил int на byte и short @ Скорость ухудшилась в 5 раз @ Вернул как было @ Оптимизация завершена
>>606431 У них нет ни одной hard to master игры, кроме старкрафта, в котором вне профессиональной сцены ты достигаешь относительно высоких результатов за счёт скорости, а не стратегии.
>>606445 >>606431 >>606416 И вообще мультиплеерные игры не в счёт. Hard to master в них достигается за счёт соперничества с другим игроком, имеющим такие же возможности, как и ты, а не за счёт самой игры. Да, игра должна при этом предоставлять должное количество механических деталей, дабы было в чём соревноваться, но близзард тут не причем, сейчас кучи игр с глубокой (относительно) механикой.
Туч, мне надо будет сдать курсач по одной йобе в лице программы для облегчения учета клиентов одной конторы. В функционале-бд с записями посещений клиентов и персональная карточка с возможностью распечатывания и всеми данными о клиенте. Что легче запилить? web с asp.net, или обычную настольную бд и десктоп приложение? просто я хотел бы, чтобы навыки работы потом пригодились
Есть дропдаунлист после изменения которого меняется содержимое таблицы череж аджакс. С ним есть одна проблема, он каким-то образом кэширует данные если страницу обновить, вместо того чтобы отобразить дефолтное значение он отображает последнее выбранное. Помогает вот такой атрибут написанный ко всему контроллеру [OutputCache(Location = OutputCacheLocation.None, NoStore = true)] Это нормальное поведение?
Анон, предстоит написать алгоритм, для расчета наиболее выгодного маршрута для пешеходов в городе. Вопрос: что нужно знать из теории графов? Если можно, дайте годную литературу.
>>606354 >Заменил int на byte и short >Скорость ухудшилась в 5 раз Процессору проще работать с int, т.е. целыми 32-битными числами. Ты можешь выиграть по памяти, но проиграешь по производительности в случае с заменой int на byte.
>>606565 >Анон, предстоит написать алгоритм, для расчета времени прибытия поезда. Вопрос: что нужно знать из арифметики? Если можно, дайте годную литературу.
>>605923 Но я теперь не использую Fluent API, у меня же отдельная сущность! Или там как-то можно прописать мое дополнительное поле в Map()? Алсо, если в ItemItem явно прописать атрибут [ForeignKey] нужным полям, то при попытке создать базу он вылетает, не выдавая исключения.
шарпоебы, насколько безопасно сидеть в сети из-под собственноручно написанного браузера? А то уже заебала вирусо-реклама хуяндексов и мейлсру, внедряющаяся в популярные бразуеры.
>>606850 Насколько собственноручно? ИЕ хостишь на форме или все таки хтмо рендеришь? >хуяндексов и мейлсру Говноед as is. Куда у тебя в браузер реклама внедряется?
>>606854 у меня мозила уже вся в яндексах и мейлсру, эти мрази крепят свой вирусняк к популярным программам для скачки. и вообще в каких-то приложениях, которые уже не помню, как отключать и флеш все время крошится.
>>607024 Вероятней всего из-за оверхеда на треды и переключение контеста, все зависит от самого цикла. Если в цикле у тебя набор простейших операций, то оверхед будет выше, чем время выполнения самом итерация, соотв. будет работать медленнее.
Кто-нибудь ещё, кроме меня, пытается запилить игру на MonoGame? XNA вообще насколько хуёвая технология? Не нашёл ничего лучше в плане 2D. Алсо, поддерживает всё, от винфона до линупса, даже UWP.
Пока хватает информации. У меня даже студия XNA не стоит, т.к. не ставится на Win10. Ресурсы использую pngшные, не знаю, зачем всё преобразовывать в xnb или как там.
Со шрифтом, правда, проблемы. Без студии, вроде бы, не сконвертировать в удобовариваемый формат.
>>607431 Это не твой браузер, это твоя говённая программка с готовым браузером внутри. Тебе осталось ещё антивирус написать и операционную систему с нескучными обоями.
Сап, анон. Подскажи, пожалуйста, как сделать все элементы в MenuStrip'e одинаковой длины, вне зависимости от количества текста, а также добавить стрелочку справа. В общем, как повторить правую часть пикрелейтеда?
>>606287 >На самом деле: >выучиваешь язык --> решаешь, что будешь писать --> выучиваешь стэк сопутствующих технологий и фреймворков --> идешь на работу --> пишешь то что говорят и на тех технологиях что говорят. очевидный фикс
>навыки программиста - это только на 5% язык. Остальные 95% - знание фреймворков, технологий, паттернов, приемов и т. п. Нихуя. Язык это 0%, фреймворки и технологии - 0%. А вот что делает программиста программистом даже я не знаю, вернее не могу сформулировать. Это способность разрабатывать алгоритмы.
>>608131 Когда вызываешь конструктор обьекта можно таким образом сразу задать значения его свойств. var text = new Text(){ color= red, size = 12, font = arial};
>>608633 Лел, теперь то это у тебя не просто таблица со связью, а нормальная сущность, настало время отразить это в коде. В ef в принципе можно мапить поля сущности в разные таблицы, я попробовал - у меня не взлетело.
>>608815 Создай класс для связи потому что это уже нихуя не просто связь. Qunatity к Item особого отношений то не имеет, или тебе прямо вообще принципиально чтоб один класс был?
>>608738 Принципиальная разница в том, что ASP - это фреймворк, а php - это язык. php можно сравнивать c C#. А ASP можно сравнивать c php-ориентед веб фреймворками, например с Laravel или Yii.
Принято считать, что C# и ASP.NET - это продвинутые инструменты, на которых высококвалифицированные специалисты разрабатывают надежные и легко масштабируемые системы и сервисы стратегического значения.
А php фреймворки - это опенсорсные любительские проекты, никогда не доживающие до версии 1.0.0, задача которых - помочь малообразованным людям с гуманитарным складом ума легко и быстро сделать блог о том, как сильно они любят неон и джаз.Кофе, Лондон и чб фото больше не трендятся :( .
>>609077 >В том смысле, что мой Мехмат катится в унылое говно. Проиграл с даунят, которые, желая стать программистами, пошли на мехмат. Вот это пиздец реально дебилы. Что сразу не на пожарника? Хотя бы профессия была бы благородная, а не позорный диплом математички. Алсо, алгебраическая геометрия у вас есть для галочки, только всем похуй на нее, до сих пор жрут картофан 3-х годов и решают дифурчики.
>>609122 Тоже не понимаю, нахуй эти дауны попёрлись на мехмат? Будто бы круды лепить или говно типа "КоКокБухгалетрия" на WPF требует матана. Причём половина этих хуесосов дай бог чтобы вспомнила хотя бы 30% того, что им там давали. Да и нахуй это не надо. Я тоже из математики пришёл, но вовремя соскочил, т.к. понял, что не в том направлении развиваюсь - столько времени потерял и потратил на кукаю-то хуйню. В программировании надо знать примерно 5% определённого матана(для категорных петушков отдельные разделы) и всё, больше где-то встретить что-то другое нереально, да и это тоже не везде применяется. Программирование - это прежде всего опыт, не знаю как это объяснить, но это так, знаю от рождения одарённых вундеркиндов, но они тоже говорят, что много где фейлились, т.к. опыта не хватало, дрочь на олимпиадную математическую какую-то хуйню вообще никак не связан с миром IT даже близко. Да и вообще программист - человек способный обрабатывать большие объёмы неважнокакой инфы в короткие сроки, если будет по работе нужно 1-2 раздела матана - можно освоить на время проекта и потом забыть, но идти на мехмат ради программирования - полнй идиотизм, подобных выблядков даже к компьютеру подпускать нельзя.
>>609122 >картофан интегралы диффуры А вот сейчас припекло, весь матан скатывается к "Надрочите алгоритмы решений всякой хуеты и ебашьте как автоматы за 2 часа весь письменный экзамен".
>>609160 Тогда к чему эти жалкие завывания: >Сделайте это для меня пожалуйста. Я не шарю в проге. Делай сам, тыж качаешьяся на ветке. Будь мужиком блядь!
>>609146 >Будто бы круды лепить или говно типа "КоКокБухгалетрия" на WPF требует матана. Работодатели делают вид, что требует. Не знаешь матан - хуй тебе, а не работа.
Если бы ты сказал что-то типа "учусь на историка" - я бы тебе помог, потому что это долбоебизм, когда гуманитариев заставляют код писать, который им нахуй не упал (бывшим одноклассникам код пишу, они учатся на менеджеров и журналистов, а их заставляют на Паскале кодить, даунизм).
Но если ты технарь (да не просто технарь, а мехмат мгу), то ты заслуживаешь быть изнасилованным толпой негров за такие вопросы даун блядь. Не шарит он в проге сука. На работу так же будешь устраиваться? "Здрасьти, возьмите меня пожалуйста, я тупой дебил и не умею решать квадратные уравнения". А на любые вопросы будешь отвечать "Я в этом не шарю, это не нужно, кто-нибудь за меня сделает".
Охуеть я думал МГУ типа элитный вуз с охуенным конкурсом, а оказывается там всякие дегенераты учатся.
1. Если ты положил готовый браузер из тулбокса на готовую форму в wpf/wf - это не ТВОЙ БРАУЗЕР. Это IE (уже существующий браузер), запиханный в уродливый интерфейс винформы, только и всего.
IE (Internet Explorer) - это такой убогий браузер, который Майкрософт поставляет со стандартной комплектацией винды. Его использовали еще до твоего рождения, спроси у родителей.
Если ты думаешь, что IE лучше фаерфокса или хрома с точки зрения безопасности - просто используй IE в нативном варианте. Это будет гораздо лучше с точки зрения интерфейса пользователя и быстродействия, все остальные параметры останутся идентичными. Чтобы запустить IE в нативном виде, нажми клавишу windows, набери "internet" и нажми Enter.
Называть IE, запущенный из винформы "своим браузером", это то же самое, что положить на своем сайте комментарии вконтакта и заявить, что ты сделал "свою" социальную сеть.
2. Если у тебя нет минимальных навыков пользования компьютером, Мозилла в этом не виновата.
Во-первых, плагины не устанавливаются сами. Их устанавливаешь ты. Либо вирусы. Чтобы не устанавливать всякое говно и не ловить вирусы, достаточно: - читать, что написано в установщике, прежде чем ставить галочки - не ставить пиратский софт с правами админа - не лазить по варезам и порнотубам с правами админа.
Во-вторых, любой ненужный плагин в Фаерфокс можно отключить или удалить. Для этого нужно нажать ctrl+shift+A , в появившемся окне нажать disable (отключить) или remove (удалить) напротив ненужного плагина.
Для полного понимания проблемы, тебе бы прочесть статью про Дениса Попова на Лурке. Но, скорее всего ты не сможешь открыть Лурк, потому что он заблокирован в рашке, а в vpn ты не можешь.
>>608822 Ну так я создал, давно уже. >Я сделал отдельную сущность для связи. >http://pastebin.com/Aj47DqyV >Теперь у меня какая-то херь с FK, их четыре вместо нужных двух, они просто дублируются. Но что же мне теперь сделать, чтобы ЭТО начало работать как надо, с двумя FK вместо четырех? Я понимаю, что надо что-то прописать в OnModelCreating(), но вариант с .Map() тут уже не катит. Мне принципиально чтобы работало, и было без лишних дублирующихся полей в БД.
>>609614 Норм ключи вроде. Твой код попробовал, не работает - вылетает без выкидывания исключения при обращении к базе. Точно так же вылетает, если поставить Required и int вместо Optional и Nullable<int>. Как эти невидимые ошибки в дебаггере ловить вообще?
Братцы, вот вы тут все айтишники и прочие спецы. У меня есть небольшой список вопросов, буду рад, если ответите. Для начала немного о себе. Учился на переводчика, дропнул. Сейчас работаю в IT сфере, т.к. неплохо разбираюсь в ПК. Хочу стать разработчиком. Начал учить C#. 1) Могу ли я стать разработчиком без корочки о высшем образовании? При условии, что буду знать asp.net MVC, MPF, шаблоны проектирования, структуры данных и прочее. 2) Реально ли будет зарабатывать с помощью C# на upwork 12-15 баксов в час, хотя бы?
>>609737 3) что лучше ещё выучить, чтоб взяли на работу джуном? какие проекты посоветуете самому сделать для портфолио, если хочу быть back-end разработчиком
>>603170 Едрен батон, наследование - это движение от общего к частному, здесь оно совершенно ни к месту. А зачем вообще эти классы, чем DateTime не устроил?
>>609737 1. Можешь, я был на собеседованиях уже где-то в 15 конторах, в одной из них спрашивали военник, в последней, где меня оформляли по тк. В первых двух всё было сдельно и не на полный день.
ДИПЛОМ НЕ СПРАШИВАЛИ НИГДЕ, НИКОГДА Могли спросить учусь или закончил и где учился, если закончил. Но это чисто из разряда вопросов обо всём, чтобы ответить тебе "о, я тоже там учился, ты с какой группы?"
2. Заработок программиста вещь очень условная. Ты можешь сидеть и вечно делать формочки в конструкторе и писать какой-то простецкий код на C#. Особого опыта это не даст, так можно и 10 лет просидеть, и зарплата твоя будет соответствующей. Всё зависит от широты твоей деятельности. Сравни вакансию на 20к, 50к, 100к.
3. Английский язык и свой C#, чего-то больше для стажёра не спрашивают, если что-то понадобиться тебе скажут выучить и тут понадобиться твой английский. На портфолио забей, сделай какие-нибудь стандартные программы из учебников по шарпам, что-нибудь там с сервером, с базой данных вот это всё.
>>609762 От каждого бэкендера это говно требуют, потому что работодатели зажрались.
>>609737 >2) Реально ли будет зарабатывать с помощью C# на upwork 12-15 баксов в час, хотя бы? А ты зайди и посмотри. По запросу ASP.NET 400 задач, 100к фрилансеров. По запросу frontend javascript 3000 задач, 30к фрилансеров. Где проще зарабатывать, как думаешь?
>>609647 Вообще. Как если бы Stop Debugging нажал. Использую LocalDb, хз как там дропать, удалить сам mdf файл? >>609787 В висте и XP SP3 точно есть. В SP2 не помню.
>>595397 (OP) Подскажите, как принято именовать функции, классы, константы. А то смотрю книги вижу фигу, там название классов то с большой, то с маленькой буквы, константы с маленькой, а в других источниках говорится, что константы надо писать КАПСОМ. Одни пишут, что в сишарпе можно именовать переменные на кириллице, другие наоборот - ни в коем случае так не делайте. Проясните ситуацию.
>>610279 Но LocalDb это считай что и есть SQL Express. Алсо, база нужна переносная, в одном файле. Лучше уж LocalDb, чем Access или SQL CE, не? >>610274 Trainee вроде называется?
>>610317 Названия классов с большой, свойства с большой, приватные поля с маленькой. Все с маленькой пишут жавабляди. Константы тебе вообще зачем нужны? Если вин апи, то обычно капсом пишут.
>>610264 У меня знакомого при поступление на стажера в люксофт попросили только отобразить массив данных в обратном направлении и рассказать о своих универских проектах на английском. И все.
Успешные погромисты, как мне сделать, что бы при редактировании таблицы с СКЛ базы изменялась сама база даных. То есть, без кнопок, изменил поле - энтер - готово. Вся соль в подключении рандомных баз без Entity?
>>609942 Алсо, раз вы подняли тему стажировок Вы узнаете о местах у рекрутеров или через знакомых? Как я понимаю, в офис завалиться без предварительного звонка не получиться
>>610421 >Цеху по разгрузке вагонов требуется junior power-lifter, стаж 2 года, опыт работы с сельдью, участие в региональных чемпионатах >Плюсом будет отсутствие вредных привычек, наличие помощников >Условия: работа на свежем воздухе, вода в кулере снежном покрове, печенек нет, есть рыбка
>>610427 >Что мы можем предложить: >Международная компания лидер в своей области с офисами в Вашингтоне и Лондоне >Наши клиенты - международные компании лидеры в своих областях с офисами в Вашингтоне и Лондоне >Работа в комфортабельных успешных лидерских вагонах международного уровня >Работа с высокотехнологичными современными ящиками с офисами в Вашингтоне и Лондоне >В работе используются самые актуальные перчатки от ведущих международных компаний лидеров в своей области с офисами в Вашингтоне и Лондоне >Дружный коллектив, карьерный рост, бесплатный воздух >Зарплата рыбой
>>610274 Суть капитализма в России: Платить работникам настолько мало, насколько это вообще возможно, под любыми предлогами. ТЫЖСТАЖЕР Продавать свою хуиту настолько дорого, насколько это вообще возможно. МЫЖ МИРОВАЯ ФИРМА С ОФИСАМИ В ВАШИНГТОНЕ И ЛОНДОНЕ
>>610684 Я однажды так же как ты подумал, написал сортировку. А мне сказали, что это был вопрос с подвохом. Если я не использую встроенные решения, а пишу все руками, значит я - любитель изобретать велосипеды и это говорит о том, что я настоящий код никогда не писал.
>>610684>>610697 Сколько писал тестовые задания - всегда явно указано "можно использовать буст/стл/аллаха" А когда хотят увидеть алгоритм - так и пишут "напишите алгоритм для обратного отображения массива" Так что скорее всего кандидат выглядит как зачухонец, воняет говном на весь кабинет, и его специально валят на хуйне чтобы избавиться.
>>610710 так от тебя модельной внешности и одежды с иголочки никто не требует. На крайнюю работу я собеседоваться пришел вообще в камуфляжных штанах, берцах и футболке с изображением какого-то мракобесия. И волосня почти до плеч. Но всё это, блядь, чистое и свежее. И ничего, взяли.
Собеседование - Как-то не очень, подготовитесь немного и опять к нам - А умею сосать хорошо - Простите что? - Сосу как умирающая шлюха, которая 20 лет не видела члена - Вы приняты
Господа, я такой лох, что не различаю джоины между собой, так как запросы руками не писал уже года, всё через EF и модели (в случае с вебом), либо же через SQLMS. Есть какая-нибудь литература только про написание запросов с примерами, заданиями и так далее? То, что встречается в интернете, - полная хуйня, состоящая из теории на 90% и запросы практически не охватывающая.
>>611143 >Распечатаю и на стену! А потом немного подумаешь и снимешь. На самом деле есть только левое соединение, остальные производные от него. Правое - это левое с поменяными местами таблицами, полное - двойное левое, внутреннее - инверсия двойного левого и так далее. То есть так работает сам сукль когда ты его просишь что-то соединить. Таблицы не нужны.
Анон, на русском есть годная литература для ньюфагов? А то что-то два семестра уже работаем на С#, а я кроме как f5 нажать ничего не умею. С меня как обычно.
>>611328 >А то что-то два семестра уже работаем на С#, а я кроме как f5 нажать ничего не умею Проверь не ограничиваются ли этим умения и самих преподов.
>>611347 У меня есть подозрение что тебе надо учиться кодить, а не учить C# (или какой-то другой язык). Если только язык - то берешь любую книгу что рекомендуют тут на сосаче и читаешь. Но их можно понять только уже умея быдлокодить. Так что если книги "плохие" и непонятные (хотя плохие и правда есть - Троелсен например), то дело в тебе и в неумении быдлокодить. А умение быдлокодить приходит с опытом быдлокодинга, а не от чтения книг.
>>611358 ХЗ. Я просто хотел написать какую-то программу (красивую и чтобы мне нравилась) и писал. Если она работала как мне надо - значит я её написал правильно. Если не работала, значит написал неправильно и искал ошибки, в том числе самими наивными методами.
Сосоны, пишу сейчас для UWP. Вроде приложения поддерживают только асинхронный ввод-вывод? По крайней мере в разные storage, что предлагает платформа, есть только асинхронные функции записи/чтения файлов. Но у меня в проекте есть xml-файлы некоторых преднастроек, и у меня получается читать их так: [code]Stream stream = System.IO.File.OpenRead(Directory.GetCurrentDirectory() + "\\Screens\\" + path);[/code]
То есть без всякой асинхронности. Я что-то делаю неправильно? Мне нужны эти файлы для всяких начальных действий инициализации, и нет смысла читать их в другом потоке, потому что основному потоку заняться тупо нечем. Или я что-то серьёзно не понимаю?
>>611521 Алсо, если я в дальнейшем буду использовать local storage или settings storage, то что делать с их асинхронностью, если приложение не должно продолжать выполнять код до завершения операции чтения? Заглушки асинхронности делать? Ничего не делающий цикл с условием "пока не будет заполнено значение"?
>>611554 Я знаю, что блокирует. Я не знаю, почему платформа где-то разрешает использовать синхронные операции чтения файла, а где-то навязывает асинхронность.
>>611562 Проблема в том, что я не хочу читать их асинхронно, мне это в хуй не упёрлось. Я не фотографии загружаю, а коротенькие xml-ки. Если сейчас это инициализирующие xml-ки, и я обнаружил, что их можно загрузить синхронно, то потом буду пользоваться localstorage, и придётся блокировать асинхронность, а мне что-то подсказывает, что это костыль.
>>611574 Ну, к примеру, класс который что-то отображает на экране. Координаты, прочую информацию об объектах отображения он должен получить из файла асинхронно. Следом за загрузкой из файла данных, собственно, происходит отрисовка. Т.к. я не могу рисовать, пока нет данных об объектах, мне придётся крутить цикл, который узнаёт о состоянии загрузки, и только по завершению даёт начать рисовать.
>>611585 Ну если у тебя mvvm, т.е. event-based - проблем нет, придут данные - нарисуется. А вообще, task.Result блокирует поток, подождешь и нарисуешь.
>>611593 Это значит модель-представление-представление-модель? Это паттерн проектирования? Я в проектировании совсем плох пока. Какие ещё бывают варианты? И спасибо за task.Result, я бы иначе читал состояние переменных, используемых в функции async-загрузки.
>>611628 Молю, не переводи на русский. Да, тысячи их, MVC и куча его интерпретаций, MVP, MVVM, MV*. В xaml-based самое популярное наверное mvvm. >иначе бы читал состояние переменных Что-то ты все таки делаешь не так, хуячь-ка везде async операции.
>>611660 Ну так SELECT * FROM A JOIN B ON A.FK = B.PK разворачивается в то что я написал. А все эти inner outer left right хуй когда нужны. >>611659 Когда нужно много таблиц, я делаю вьюшку.
Котаны, насколько дороги по времени операции получения значения атрибута класса и поиска метода по имени через метаинфу?
>>611668 >А все эти inner outer left right хуй когда нужны. Иногда таки нужны. Например left: найти всех заказчиков у которых сейчас нет заказа(корзина пуста) и посчитать как долго они заваливались на сайт, если долго удолить их к хуям.
>>611689 >Рефлексия быстрой не бывает. Ну вот хуйзнает.жпг В юните активно юзают атрибут RequireComponent для автоматического связывания всего говна при загрузке. У меня же позорный внешний словарь, который греет меня только O(1).
>>611697 И во многих ioc контейнерах атрибуты используются для того же, и все живут и не жалуются. Медленная она по сравнению с "обычным" кодом раз так в 5, если не писать циклы с рефлексией - можно остаться человеком.
Сап, шарпач, что скажешь про эти курсы по шарпу? https://ulearn.azurewebsites.net/ Собираюсь обмазаться ими после нг, ибо на голых плюсах жить студенту как-то совсем никак.
>>595397 (OP) Хочу вкатиться на Юнити. Какая база по C# нужна, какие книги читать посоветуете? Только начинаю изучать C#, в программировании нуб, за плечами есть небольшой опыт в ActionScript и парочка небольших флеш-игр.
Решил обмазаться асинхронностью. Нужно чтоб в окошке выполнилась задача, но при этом оно не висло. Ограничение Net 4.0 Поясните, за Task.Wait(). если захерачу его в метод получения данных, то форма будет активна?
>>613262 > ContinueWith Почитал описание, не понял что он мне даст.
Сейчас есть рабочая прога. В ней в одном месте есть буквально один метод получения данных. Когда код в него заходит прога зависает на некоторое время. Надо сделать просто чтоб она не висла, а спокойно ждала выполнения этого метода. Метод возвращает объект и дальше код продолжает выполнятся. Гугл вроде как рекомендует засунуть метод в Task и через Wait ждать Task.Result.
Сейчас дано //какой то код Object x = slowmethod(); //какой то код дальше, которому нужен x
В идеале хотелось бы просто поменять одну единственную строчку, чтоб она как то выполнялась не вешая форму и возвращала x.
Сперва думал про async/await, но с 2010 студией они похоже не работают. А нужно именно под 2010.
>>613282 > Надо сделать просто чтоб она не висла, BackgroundWorker для этого есть. Всегда нормально работал, не понимаю нахуя эта параллелтасклайбрари вообще всралась.
>>613288 Ему нужно создавать событие. А я хотел просто захерачить кусок кода в асинхронный обработчик, который бы выполнялся не стопоря форму. Хуй знает короче. Завтра буду думать.
>>613303 Попробуй так private static async Task ImitateAsyncOperation(int threadNumber, CancellationToken ct) { //Task t = new Task(Thread1, (object)threadNumber, ct); Task t = new Task(() => Thread1((object)threadNumber, ct), ct); t.Start(); await t; if (ct.IsCancellationRequested) { Console.WriteLine("ImitateAsyncOperation " + threadNumber + " cancel"); ct.ThrowIfCancellationRequested(); } Console.WriteLine("ImitateAsyncOperation (arter await): " + threadNumber); }
А вообще это всё херня раз приходится долго разбираться и искать примеры. Tasks это всё чушь по этой причине. Мне гораздо проще сделать прямо так, без гугления и ковыряния:
Вот и всё. Уверен на 99% что заработает даже без отладки. А с этой таск лайбрари только ебля с документацией и тестовым кодом для понимания как вообще всё это дерьмо работает. Понагромодили хуйни, а выгоды никакой.
>>613310 > А вообще это всё херня раз приходится долго разбираться и искать примеры. Tasks это всё чушь по этой причине. > Мне гораздо проще сделать прямо так, без гугления и ковыряния: Ты же понимаешь, что это совсем не то, его хочет ОП?
>>613312 Он просто запустит код где-то в отдельном треде и все. Ему же нужно > Метод возвращает объект и дальше код продолжает выполнятся. >//какой то код >Object x = slowmethod(); >//какой то код дальше, которому нужен x
>>613313 > Метод возвращает объект и дальше код продолжает выполнятся. "Метод возвращает" значит происходит выход из функции. "код продолжает выполнятся" значит в функции был запущен отдельный поток для выполнения кода. Это именно то что делает моя функция.
Его текст: >В идеале хотелось бы просто поменять одну единственную строчку, чтоб она как то выполнялась не вешая форму и возвращала x. Так вот, то что хочет сделать он - невозможно. Чтобы форма не вешалась ему придется выйти из обработчика события и вернуться в главный поток для обработки message loop. А он хочет этого не делать. Единственное что ему остается это в этот slowmethod в цикл (если там цикл) вставить Application.DoEvents.
Сап, посоны. Каким образом можно удалить папку, в которой работает процесс? Как можно вычислить все процессы, держащие папку, убить их и потом поубивать сами процессы и всё почистить? У кого есть готовые решения/сниппеты кода?
>>613438 Ок, начну гуглить и разбираться по делу. Я просто думал, может у кого уже есть готовые решения. Не хочу напрямую подключать библиотеки win32 api, хотелось только в рамках чисто дотнета решить это, без dllimport и неуправляемого кода.
Анон, а поясни мне за Jabber/XMPP для .NET. Какие есть годные библиотеки? agsxmpp - устаревшее говно с застывшей разработкой, у Matrix только коммерческая лицензия (и стоит она ДОХУЯ).
ITT элита продолжает обсуждает будущее этого прекрасного и современного продукта компании Microsoft. Только в этом треде элитные разработчики ответят на самые острые вопросы индустрии.
Скачать VS2015: https://www.visualstudio.com/en-us/products/vs-2015-product-editions.aspx
Community версии будет достаточно в большинстве случаев: она поддерживает и C#, C++, VB.NET и F#, а так же имеет возможность установки дополнений
Что почитать:
- Bart De Smet - C# 5.0 Unleashed
- Joseph Albahari и Ben Albahari - C# 5.0 in a Nutshell (на русском: C# 5.0, Справочник. Полное описание языка)
- Pro C# 5.0 and the .NET 4.5 Framework (Andrew Troelsen)
- Jon Skeet - C# in Depth (на русском: C# для профессионалов. Тонкости программирования)
- Jeffrey Richter - CLR via C# (на русском: Программирование на платформе Microsoft .NET Framework 4.5 на языке C#)
- Writing High Performance .NET Code (Ben Watson)
- Pro WPF 4.5 in C# (Matthew MacDonald)
- Windows Presentation Foundation 4.5 Cookbook (Pavel Yosifovich)
Что посмотреть:
- 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
- https://nnm-club.me/forum/viewtopic.php?t=891636 - коллекция видеоуроков, по всему дотнетовскому.
Ресурсы:
- http://stackoverflow.com/questions/tagged/c%23
- http://www.tutorialspoint.com/csharp/
- http://professorweb.ru
- http://net-informations.com
- http://habrahabr.ru/hub/csharp/
Онлайн-компиляторы:
- http://ideone.com/
- https://dotnetfiddle.net/
- http://csstub.com
- http://www.tutorialspoint.com/compile_csharp_online.php
FAQ
Q: Что с IDE для других систем?
A: Самый юзабельный вариант - MonoDevelop ( http://www.monodevelop.com/download/ )
Для vim можно использовать OmniSharp ( https://github.com/OmniSharp/omnisharp-vim )
VS Code ( https://www.visualstudio.com/en-us/products/code-vs.aspx )
Также существуют плагины для Atom'а и Sublime Text, но функциональность там достаточно сильно урезана.
SharpDevelop - еще одна IDE для C#, отличается малым размером (около 20мб) и опциональной портабельностью, при этом имея дизайнер WinForms и WPF, а также интеграцию с FxCop, StyleCop и прочими.
Q: Пригоден для C# для мобильной разработки?
A: Да, можно выбрать в окне выбора компонентов студии при установке VS
Дополнительные инструменты для разработки на C#
LINQPad - сорт оф REPL, с возможностью быстрого подключения к БД и удобной визуализацией данных
dnSpy - декомпилятор, малоизвестный форк ILSpy, где реализована возможность модификации IL-кода прямо в EXE и DLL файлах, отладка IL-кода и много других фич для reverse engineering'а. Плюс няшные темы как в студии
dotPeek - бесплатный декомпилятор от JetBrains
scriptcs - для запуска C# кода как скриптов, возможность использовать как REPL
Обзор 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/raw.php?i=mUAJ6Ugz
Прошлый тред тонет здесь: https://2ch.hk/pr/res/582010.html