Существует множество различных платформ и языков программирования, однако среди них нет более элитного, чем 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
На часть моего вопроса мне ответили, спасибо тому анону, спрошу еще раз тут остальное.
Каким переводам книг по шарпу можно доверять, что они не теряют смысл первоисточника? В английский могу очень хорошо, но читать много и по долгу на английском сильно устаю.
>>582128 > то они не теряют смысл первоисточника? В английский могу очень хорошо, но читать много и по долгу на английском сильно устаю. Читай на русском тогда и не еби себе мозги, суть все равно в примерах в коде. Если что-то непонятно гуглишь на английском первая ссылка на стековерфлоу обычно разжевывает все.
>>582153 Вот этого двачую. Книгу можно и на русском прочитать, там всё равно только общая инфа. А всё остальное приходится догугливать строго на ингише. На том же MSDN гораздо удобнее всё читать в оригинале, потому что автоперевод ужасен. В рунете же по большому счёту нихрена нет, кроме пары высеров на хабре.
>>582445 Я тут на антонове вакансию видел, хотят инженера с вышкой и опытом работы 2 года взять на 3500 грн. Так шо сейчас вообще херово стало, еле на мивину хватате и на проезд до работы
Есть метод с такой логикой: http://pastebin.com/Pzu7wLhc Т.е. запускается таймер, которые каждые 100 мс делает что-то, и он останавливается через timelimit мс. Когда он остановится, внутри метода надо сделать кое-что и возвратить значение. Как это реализовать?
Тебе уже сказали - читай ЧТО УГОДНО. У тебя сейчас этап "поиски волшебной таблетки". Думаешь, что найдешь одну супер-крутую книгу/сайт с супер-качественным материалом и идеальным переводом и сразу станешь ПРО. Нихуя не будет такого.
Завязывай поскорее и переходи на следующий этап - изучение всего что попадает под руку в огромных количествах месяцы напролет. Потому что другого способа стать более-менее квалифицированным нету. Тема слишком большая и сложная, чтобы освоить ее из одного/двух/пяти курсов.
Имеет смысл использовать ref для входных параметров по дефолту, чтобы экономить память? Почему такой подход не является стандартом индустрии и применяется лишь изредка?
>>582664 И вообще любые курсы - лишь опорная точка для практики. Только на практике крепкие знания получаются. Теорию сегодня выучишь, а через неделю забудешь, если руки не набьешь десятком практических примеров.
>>582701 Да ладно вам. Сейчас какой-нибудь хикка с заниженной самооценкой все ему сделает, чтобы почувствовать себя нужным. Все в выигрыше. Не хотите помогать - не помогайте, никого же не заставляют.
>>582671 >>581980 Если в случае без ref копируется ссылка на объект, почему изменение объекта по этой ссылке внутри метода не затрагивает изменений снаружи метода? Ведь обе ссылки на один объект указывают? Не понимаю, объясни.
>>582666 Reference-типы и так передаются по ссылке, а на value-типах ты много все равно не сэкономишь, тем более что сборщик мусора все равно сколлектит после завершения метода.
>>582837 >на value-типах ты много все равно не сэкономишь Математическая модель. Массивы double размерностью от 1е4. Приходится юзать х64, чтобы OutOfMemoryException не ловить.
>>582837 >на value-типах ты много все равно не сэкономишь Зато можно сэкономить на производительности >There is no boxing of a value type when it is passed by reference.
>>582927 Ну, как бы и так боксинга нет. Он происходит только при касте к ссылочному типу. >Do not confuse the concept of passing by reference with the concept of reference types. The two concepts are not the same. A method parameter can be modified by ref regardless of whether it is a value type or a reference type.
Если использовать статический метод в веб приложении то он будет один на все поступающие запросы? Так можно делать или обязательно все методы должны вызываться на уровне объекта?
Кто нибудь CsQuery пользуется? Почему он мне выдает строку в другой кодировке после разбора по dom? Пример полученной строки "Обработка заявок" Исходный текст - Обработка заявок
>>583786 Не совсем, мне нужно получить ссылку по тексту внутри элемента. Как мне поможет рендер? мне не нужна страница, мне нужна ссылка. Хотя страничку благодаря тебе я отрендерил с нормальным текстом, спасибо
Скорее по регуляркам, но да пох. Помогите с такой задачкой, пжалста. Есть строка вида "A<sub>3</sub>B". Как регулярочкой аккуратно заменить <sub>3</sub> на результат выполнения некоего делегата, которому нужно передать только "3"? Пока вот че наваял, но что-то идет не так. string text = "A<sub>3</sub>B"; Regex subRegex = new Regex(@"(?<=<sub>)(?<content>.+)(?=</sub>)", RegexOptions.IgnoreCase); text = subRegex.Replace(text, m => { var gr = m.Groups["content"].Value; //некоторые действия return m.Value; });
>>584667 Тоже сойдет. Вся проблема в регулярке. В m.Groups[group].Value находится содержимое тэга, но замены не происходит или же происходит, но меняет содержимое на содержимое, а не содержимое+тэги на содержимое. Как-то так.
>>584678 В винде почти все шрифты имеют глифы для суперскрипта, но ни одного для сабскрипта. Сукапидоры. Неужели так сложно было добавить? Пиздуй, антоша, переопределять onpaint и сам рисуй свои ёбаные сабскрипты.
short i = 5; //short a = i + 1; //cannot implicitly convert int to short //short a = i + (short)1; // the same //unchecked { short a = b + (short)1; } // the same short a = (short)(i + 1);
То есть short и byte такие мудаки, что не могут в простейшие арифметические операции без конвертации в int и обратно?
Зачем эти типы существуют? С точки зрения оптимизации: мы выиграем 2-3 байта озу, по сравнению с использованием int. Но при этом нагрузим цп излишними действиями по конвертации-деконвертации. Оно же того не стоит, да?
>>584873 Ну так при иcпользовании short и byte переполнение получить легче, поэтому результат операций над ними - int. Микрософт заботится о тебе, и сам Билл стоит за твоей спиной и смахивает пыль с твоих плеч. unckecked тут вообще не причем, у тебя стадия компиляции.
>2015 >выиграл 3 байта
byte нужен чтоб например файл в массив байтов записать, но ведь всегда можно использовать стримы, а short вообще хуй знает.
>>584873 >не могут в простейшие арифметические операции Могут, но результат сложения short + short = int. Ну так надо, парень, всё хорошо. Отсюда и необходимость конвертации обратно в short. Однако, short a += 5 сработает четко и уверенно. Я понятия не имею, зачем так, но такое поведение однозначно лучше, чем int / double = int, например.
Как сделать в MVC чтобы обновлялось содержимое таблицы на основании изменения dropdownlist? Без js как я понял не обойтись, а то я его почти не знаю. Там вроде есть встревоженные хелперы для ajax может можно как-то ими?
Помогите совладать с x:Bind в UWP приложении. Я храню дата темплейты в App.xaml и решил впердолить туда x:Bind. Теперь у меня фейлится компиляция с ошибкой "XBF generation error code 0x09c4.". Partial C# класс с вызовом InitializeComponent в конструкторе у меня есть, если это важно.
>>584960 Во время отладки debug --> windows --> disassembly . Если нету - включи в tools --> options --> debuging --> enable adress-level debugging . По дефолту включена в 2015 комьюнити эдишн.
>>584904 Спасибо, что дизассемблер показал. Теперь я знаю, как байтоебские вопросы решать, не отвлекая анона.
Есть класс Employee к нему привязана коллекция Staff(список его должностей) Я через пост-метод передаю всю модель Employee и отдельным параметром передаю string название должности , потом все это добавляю в коллекцию, кароче говоря все как нужно добавляется в бд. Но тепреь проблема как прикуртить валидацию Required к текстбоксу в который должно вводиться название должности. Раньше я к свойствам модели просто аннотации дописывал и все.
>>584989 > Я через пост-метод передаю всю модель Employee и отдельным параметром передаю string название должности public ActionResult Edit(Employee emp, string workPost) вот таким образом
>>584989 Добавь отдельное свойство в модели. В самой модели реализуй интерфейс IValidatableObject, через который ты можешь какую угодно валидацию делать. Или запили свой ValidationAttribute под это свойство (хотя мне, например, атрибуты не очень нравятся).
>>585087 Алсо, в связи с этим спросить хотел. нужно оптимизировать по максимуму и всё-такое У меня есть функция, в которой используется массив определенной длины N. И я не хочу каждый раз при вызове функции выделять под него память, было бы неплохо, если бы массив создался только один раз. В крестах я бы массив обозначил как static внутри функции и всё было бы пучком. Здесь вроде так нельзя. Придется создавать статический массив в теле класса?
>>585089 А мне нравится больше, чем стиль_именования_переменных.
>>585089 Солидарочка. Сам сейчас пишу на сишарпе и научился не бугуртить от конвенций, но считаю, что здесь они хуже, чем во всех остальных ЯП, которые я знаю.
>>585087 > Мне тут нужно начинать писать диплом численные методы и все такое Это интерсней наверное чем такой диплом как у меня. ВЕБ ПРИЛОЖЕНИЕ которое лучше существующих уже конкурентов, лол
>>585093 Не знаю какой смысл несет статический массив, доступный в пределах одной функции дичь какая, но, да, приватный статический массив в классе тебе поможет. Хотя, наверно, можно и на уровне экземпляра класса эта реализовать, если немного подумать.
>>585104 Кодировать матан ради матана не особо интересно, как по мне.
>>585111 Насколько мне известно, выделение памяти тем более под массив — одна из наиболее долгих операций. У меня функция очень часто дергается, хочу один раз выделить, а потом просто переписывать. В общем придется как в паскале все переменные объявлять в самом начале лол. А там массивов ну ооочень много.
>>585111 >матан ради матана Ну там как бы нелинейные системы дифф уравнений газодинамики. Там че-то с атмосферными явлениями связано и турбулентными потоками. Можно рисовать красивые векторные поля.
>>585114 Я думаю, что везде ебут мозги на тему актуальности и обоснованности.
>>585115 Ты мыслишь в рамках функций, как будто на сях пишешь. Наверняка можно нормально инкапсулировать в класс все это твое дело. Ты же можешь создать класс, в нем приватный массив и дергать приватный метод столько раз, сколько тебе нужно. Зачем тебе именно статика, которая доступна на уровне нескольких экземпляров класса и отмирает только вместе с доменом?
>нелинейные системы дифф уравнений газодинамики Мне уже неинтересно стало =/
>>585115 А чего ты вообще паришься на тему выделения памяти? Типа долго считать будет? Так оно в любом случае на C# супер-быстрым не получится. Прикручивай туда OpenCL или CUDA - тут будет unsafe во все поля, сможешь любые фантазии воплотить. Алсо не пробовал свой прожект на F# реализовать? Таки матан на нём писать удобнее.
>>585133 GC.Collect() после ёмких операций, например. Сам он иногда подтупливает. Обычно, это некритично, но когда память быстро уходит, а сраный сборщик в этот раз почему-то решил отложить сборку на пару секунд, то вызвать полезно.
>>585125 Бенчмарки давно смотрел? >>585115 В классе поле-массив и твои функции, массив инициализируем в конструкторе. Создаем экземпляр класса, дергаем у него нужный метод. >>585102 Никогда не видел кода на паскале, написанного по конвенциям, поэтому не в курсе есть ли они там вообще. Везде только procedure naitielementvmassive(m:array of integer;e:integer).
>>585122>>585142 Ну я так и сделаю. Просто не хотел класс лишними полями загромождать, которые используются только в одной функции, поэтому и задал первоначальный вопрос.
>>585125 Так я и хочу всю необходимую память сразу выделить. Тогда всё будет летать. А если бы я хотел трахаться с unsafe я бы на крестах писал. В CUDA вообще не шарю, в следующем семестре будет курс, магистерский диплом уже буду по хардкору писать на крестах.
1. Решение на 600 строк кода за 20 часов - это нормальная скорость разработки? Притом в середине работы кода было больше. Если бы мне платили за строки, то за последние 10 часов я остался бы должен лол.
2. Заказчики/пользователи предпочитают громоздкий софт, решающий одновременно десятки задач? Или утилиты с минималистичным интерфейсом? Кажется на рынке первый вариант преобладает. Но мне, как пользователю, такой дизайн софта не нравится. По-моему это дурацко, когда тебе нужна 1 функция, а тебя вынуждают устанавливать сложный софт с тысячей ненужных функций и разбираться в нем.
3. Разработка сверху-вниз применяется в реальном мире, или это вымысел теоретиков? У меня не получается. Какие парадигмы проектирования и разработки показывают себя наиболее эффективными на практике?
>>585338 >Какой-то каратист, про которого ничего не известно, побил какого-то боксера, про которого ничего не известно >Следовательно карате сильнее бокса
>upwork.com >.net C# >204 were found based on your criteria >Php >4,730 were found based on your criteria >Wordpress >5,670 were found based on your criteria
>>585581 Потому что есть глубоке и интересные сферы, а есть говно, зафорсенное хуесосами и делающееся хуесосами для хуесосов. Такое часто бывает во многих сферах, что интересная и "крутая" вещь и приносящая прибыль вещь — это не одна и та же вещь.
Хотел поучиться программировать на этом ваше с#, используя уроки с сайта Microsoft. У меня как раз было установлено vs 2015 Community. Смотрю первый урок-пример "Hello World", как там написано хочу создать проект и тут оказывается что нет в списке шаблонов консольного приложения. В комьюнити 2015 его вообще нет, или переустановка спасет ситуацию? Или нужна какая-то другая бесплатная версия vs?
>>585715 Заходишь в program files (x86)\microsft visual studio тут_число\common7\common7\ide\ Там запускаешь консоль от админа и devenv /installvstemplates
Может кто подсказать как сопоставить шаблон регулярного выражения и строку? Например есть шаблон "[0-9]{2,2}\\.[0-9]{2,2}". Нужен такой метод, который, скажем, возвращает true если входная строка например была такой: "23.12" или "12.32" И false в случаях таких строк: "fefef" или "ef23.12" и "23.12effe23.34". То есть метод IsMatch не подходит. Кто-нибудь делал что-нибудь подобное?
>>585751 косяк такого варианта в том, что если ввести во входную строку например "ауауа23.12" IsMatch вернет true, а нужно жесткое совпадение. IsMatch ищет совпадение во всей строке.
>>585644 Бесспорно. Но я, например, не стану заниматься неинтересной мне деятельностью исключительно ради прибыли, если есть менее прибыльные, но более интересные альтернативы.
Господа, есть тут пишущие на ASP.NET под Mono? У меня вопрос по поводу xsp сервера. Он как-то неадекватно реагирует на routes.AppendTrailingSlash = true, превращая любую ссылку без конечного "/" в редирект. IIS ведёт себя нормально в этом случае, редиректов нет. Может, существует какая-то особая настройка в Web.config? Я облазил исходники на GitHub, но пока решения не нашёл, плохо искал видимо. Так-то я разобрался, как обойти такое поведение под Apache, но хотелось бы найти решение именно в рамках xsp.
Шарпаны, решил угореть по шарпу и написать для себя простенькую софтину для отслеживания перемещения материальных ценностей на работе. В качестве БД выбрал SQLCE. Правильно ли я делаю для вывода/изменения данных?
Ну и ещё, я тут только что вычитал про SqlCe Многопользовательская работа с одним файлом базы данных с разных компьютеров — не поддерживается в связи с техническими сложностями. Однако доступ из разных процессов на одном компьютере вполне возможен и является штатным. Так что прошу подсказать удобную БД для хранения небольшого кол-ва данных с поддержкой нескольких пользователей. На время разработки ануса БД будет висеть на локальном офисном ПК, так что хорошо бы что-нибудь лёгкое. Спасиб. SQLCEкун выше
>>586391 >Правильно ли я делаю Работает так, как надо? Значит правильно или, лучше сказать, адекватно. Соответствует ли это промышленным стандартам? Нет, не соответствует.
>>586428 Работает, может думал совет какой дашь. Мне пока и так сойдёт, просто если я совсем неправильно делаю, то тыкни носом или пример какой-нибудь приведи.
>Bart De Smet - C# 5.0 Unleashed Какая же интересная книга, жалко, что мой ангельский на уровне color is blue, и слова comprehend, assembly вызывают у меня лютейший бугурт и диссонанс. Пошел учить обрезанную версию, а именно >C# 6.0 in a Nutshell, Joseph Albahari, Ben Albahari (((
>>586456 Ну, недостаток твоего подхода в том, что чем сильнее у тебя разрастется кодовая база, тем сложнее тебе будет ее поддерживать. У тебя в кодбихайнде переплетен гуй, бизнес логика и доступ к базе. Это быстро выльется в большую кучу нечитаемого сложного кода. Для маленьких программ — ок, подъемно. В случае же больших программ, ты утонешь в говне и придется все переписывать, пользуясь архитектурными методологиями.
Анонистусы, такие дела: хочу написать одну приблуду для ВК, но так как я идиот, я не могу понять где хранить токен авторизации, чтобы он был доступен во всё время работы приложения. Поможете?
Как засамбитить массив который содержит объекты? У меня выводится список полей ввода в виде таблицы, каждая клетка таблицы поле ввода. В каждой строке можно отредактировать поля одного объекта Потом внизу кнопочка сейв должна быть чтобы все это запостить на контроллер. Или может как можно через AJAX и JS чтобы как только фокус с поля ввода уходит сабмититить асинхронно в бд. Лучше наверное первый вариант.
>>586747 Форма — это, по-сути, набор пар ключ-значение. Ты можешь специальным образом обозвать ключи, чтобы они были в логической зависимости между собой. Например: array[0].field=12 array[1].field=5 В мвс есть специальные конвенции, по которым он может мапить такие ключи в параметры. С js ты можешь руками собрать данные с формы и асинхронно отправить пост запрос, сериализовав данные в json. Разница лишь в том, что страница не будет перезагружена.
Поясните. Если я напишу бэкенд сайта на asp.net - он будет работать только если сервер работает на винде, правильно? Но ведь серверы не работают на винде, серверы работают на юниксах: http://w3techs.com/technologies/overview/operating_system/all
Нахуй тогда asp.net нужен? И нахуй вообще .net нужен? Десктоп под вин писать? Или библиотеки, которые нигде кроме дотнета не работают?
Почему ms не сделают .net мультиплатформой? Это такой хитрый план, чтобы избежать популярности и востребованности?
>>586971 Майкрософт поставляет винду в корпоративный сектор. Ты когда-нибудь видел, чтобы офис из 1к чел. сидел на линуксе? Нет? То-то и оно. Там же и сервера на вине стоят.
>>586999 https://ru.wikipedia.org/wiki/.NET_Framework >полноценная реализация платформы присутствует лишь для Windows. Частично подобная труднопереносимость компенсируется разработкой нескольких версий платформы для мобильных устройств, а также урезанными версиями .NET Framework для других операционных систем. Однако, несмотря на близость стандартов, принятых при разработке этих версий, конечные реализации полной совместимостью не обладают[18].
>>586870 Зачем этот говнопаттерн нужен для хранения всяких рандомных данных? Обычного статик-класса без наворотов хватит за глаза.
>>586971 ASP.NET, ADO.NET, EF и т.д. работают на линуксе. Есть несколько нюансов, но они несущественны. Сложнее всего первый раз заинсталлить и веб-сервер настроить.
Господа, нет ли какой-то более доступной и менее ванильной среды, чем вижуал студио? Он уже запарил у меня телефончик выпрашивать и навешивать регистрации. У меня вообще паранойя насчет слежки и снятия денег с телефона, неужели нельзя хотя бы в нотепаде ваш шарп компилировать и собирать??
Блин спрашивал в js треде, никто не ответил Уже три часа сижу, не могу сообразить что не так. Перепост: на событии онклик по кнопке которая находится в ячейке таблицы происходит асинхронный пост запрос <button type="submit" class="btn btn-default btn-xs" style="border: 0px;" onclick="return deleteRow();"> <i class="glyphicon glyphicon-remove"></i> </button>
выполняется следующий js код
<script> function deleteRow() { var r = confirm('Вы уверены что хотите удалить информацию этого работника?'); if (r === true) { var trow = $(this).closest("tr"); trow.remove(); return true; } return false; } </script> Но почему-то динамически строка таблицы не удаляется. В бекенде все ок удаляется, и если обновить таблицу то строка пропадает ________________________________ В дебагере посмотрел что $(this) указывает на window а не на нажатую кнопку Еще нашел как это сделать без прописывания онклик в баттоне Но не один способов не работает совсем, если в первом случае хоть самбит окно вызывалось функция запускалась, то сейчас вообще нихуя не запускается после подобного кода $(document).ready(function() { $("button").on("click", function () { var r = confirm('Вы уверены что хотите удалить информацию этого работника?'); if (r === true) { var trow = $(this); trow.remove(); return r; } return r; }); });
или $(document).ready(function () { //add a class 'btndel' to button, identify the buttons $('.btndel').each(function () { //registering click event to each button $(this).click(function () {
//assume button has an attrubute 'data-delid' with the value of current record id
if (confirm("Do you want to delete record ")) { var trow = $(this); trow.remove(); return true; } return false; }); });
>>587555 Бекенд АСП НЕТ и в js треде все молчат, а я уже замучился >>587557 Спасибо большое. Я думал что this автоматически присваивает того кто вызвал ивент Оно так и есть получается, но я пытался его вызвать с другой функции Поэтому и инфы нигде не мог найти потому что это очевидно А почему второй вариант вообще не срабатывал? Мне казалось что оно должно вызваться при любом нажатии на button. Что-то вроде такого $(document).ready(function() { $("button").on("click", function () { }); });
>>587567 Второй вариант должен работать. Посмотри под дебаггером что селектор возвращает. Может у тебя кнопки асинхронно грузятся после загрузки страницы и там пустая коллекция. Хуй знает.
>>587573 Хммм Нашел вот такой пример https://jsfiddle.net/PzSYM/ Но ничего не происходит в Файрфоксе, открыл через эклпрорер все работает нормально. Что-то в лисе блочит js код в таком виде.
>>587623 Блин, у меня оказывается в проекте стояла версия жеквери 1.1 Но все равно обычные функции не работают $(document).ready(function() { $(document).on("click", "button", function () { alert("123"); }); }); В jsfiddle все ок https://jsfiddle.net/3cyqrL17/7/
Ничего не понимаю Создал новый проект MVC Поставил нюгетом новую версию жеквери вместо установленной 1.1 Проверил бандл, все в порядке Создал вот такой вот скрипт внизу дефолтной страницы <script> $(document).ready(function () { alert("123"); }); </script> И нихуя.
>>587641 >>587662 У меня похожая фигня была, когда я криво настроил CSP (NWebsec) - неверно указал script-src и не разрешил инлайн скрипты. Там в дебаггере это сразу видно по сообщениям вида "CSP violation ..."
Где нибудь есть ВНЯТНЫЙ гайд по EntityDataSource в частности и EF вообще. С EF никогда не работал до этого, убил весь день на гугление, кое-как сгенерил модель из базы, но теперь не могу создать датасорс и привязать его к гриду. Вернее, могу, но он связи никак не обрабатывает. При этом на диаграмме все связи видно, в классах создаются какие-то виртуальные поля для них. Но как их в грид засунуть хуй его знает.
>>587960 Ссылки в шапке не пробовал проверить? Там про EF в частонсти есть. http://professorweb.ru/my/entity-framework/6/level1/ > кое-как сгенерил модель из базы Я тоже долго не мог понять какой подход лучше(их всего 3 Model first Code first и DBFirst) Но в итоге лучше всего подходит для разработки Code-Second это когда ты и базу и объекты параллельно обновляешь. Тем более сейчас появилась возможность грузить кодсеконд с готовой бд. > какие-то виртуальные поля для них Виртуальные свойства для Lazy Loading. Это значит что данные с бд будут подгружаться только при обращение к этому виртуальному свойству. Есть еще Eager Loading когда считай вся связанная таблица в память подгружается. > Но как их в грид засунуть хуй его знает. Просто обратиться к свойствам того класса который определен как вирутал. Например у класса Customer есть virtual List<Order> orders, выводишь название заказов для каждого пользователя форичем через запятую, например.
Блин, херня какая-то. При context.SaveChages() в бд, возникает ошибка валидации в свойстве у которого атрибут NotMapped. Я думал EF должно быть все равно на это свойство(вспомогательное для отображения на вью) потому что в бд его нету.
Решил интереса ради создать Universal Windows Application. Оно создавалось минут 8, лагало, попытка запустить была еще минуты 4. Это проблема моего калькулятора или просто студия после идеи кирпич?
>>588244 Ты проверь, может там какие пакеты с нугета тянулись с темплейтом. А так, 15 студия, например, баганутая немного. У меня она иногда во время работы намертво подвисает и приходится процесс убивать.
Хотел создать программу для редактирования таблиц MySQL, но обосрался на этапе коннект чека. [CODE] SqlConnection connection = new SqlConnection("Server = 127.0.0.1,3306;"); [/CODE] Как не менял эту строку все равно получаю ошибку: Неустранимая ошибка подключения. Состояние ошибки: 18. Гуглил, нихуя по этому поводу не нашел. Чо делать? Алсо, мои знания о погроммировании чуть выше нуля, так что сильно не бейте.
>>587960 Изучай: https://msdn.microsoft.com/ru-ru/data/ee712907 Тут всё доходчиво объяснено с примерами. Если у тебя MSSQL Server, тогда вообще халява, можно всю хуйню мышкой накодить и это будет работать. В случае с другими серверами, скорее всего, могут потребоваться костыли либо придётся изначально Code First использовать. Что, однако, неплохо, т.к. будешь точно знать кто, с кем и когда связан.
>>588285 >>588287 Я все это уже видел. Если писать через двоеточие то вообще не коннектится: [CODE]При установлении соединения с SQL Server произошла ошибка, связанная с сетью или с определенным экземпляром. Сервер не найден или недоступен. Убедитесь, что имя экземпляра указано правильно и что на SQL Server разрешены удаленные соединения. (provider: TCP Provider, error: 0 - Этот хост неизвестен.)[/CODE] Юзер айди, пароли и прочее погоды не меняют. Вот кусок кода: http://pastebin.com/bGDBDaQd
>>588317 Мне кажется, что ты пытаешься провайдером от сиквел сервера подключится к мускулу. Я никогда не работал с мускулом на дотнете, но что-то мне подсказывает, что для этого нужен специальный провайдер.
Есть дропдаунлиста перечнем компаний, по его изменению асинхронно обновляется таблица с пейджиигом с работниками этих компаний. Когда хочешь перейти на какой-либо работника, чтобы отредактировать его данные, во вьюбэге вью для редактирования передается UrlReferer предыдущей страницы. На этот URL происходит перенаправление при сабмите формы чтобы вернуться назад на ту же страницу таблице с установленной той же компанией в дропдаунлисте. Проблема в том что при изменении дропдаунлиста после ajax запроса url в адрессной строке не меняется. Если поменять дропдаунлист, нажать на работника и отредактировать его данные потом вернуться назад, то переход будет не на последнее место, а на то которое было до изменение дропдаунлиста. Можно во вьюбэг передавать вместо ссылки с реферера, обратную ссылку, которая создается после каждого запроса с помощью значений параметров текущей страницы и компании. Но может можно как-то по-другому?
>>588461 Ты прости, мне по теме сказать нечего, но, прочём первую половину твоего поста, чуть не блеванул от осознания хуевости всех этих вещей. Серьезно, представляю, как ты с этим говном работаешь, и хуево становится. Просто, блядь, не могу выразить, насколько в моих глазах эта хуйня сосёт по сравнению с прикладным программированием.
Ничего личного, никого говном не считаю, равно как и себя чем-то хорошим, просто поток мыслей.
>>588890 Вы там первокурсники совсем охуели чтоль? Иди перечитай лекцию по оценке вычислительной сложности алгоритмов. Потом напишешь тут свой ответ с аргументами.
Через параметры юрл нельзя передавать персонализированные данные. А разве пост запрос так же нельзя подделать, впихнув туда нужные айдишники? Может можно как-то через гет запрос передавать параметры, но ограничив их к конкретному пользователю.
>>588923 Вот пример ?SID=7079712314252&From=Emp&EmployeeId=806424783 Если зайти под другим SID и вбить тот же EmployeeId оно же не разрешит такой переход.
>>588924 Такой подход используется, когда куки на клиенте отключены. Чревато тем, что твой сид и ид могут подсмотреть и от твоего имени натворить хуйни.
Сид в куках уже не так просто узнать, но можно подделать форму и обманом заставить пользователя запостить хуйню. От этого защищаются путем добавления в форму и куки специального токена, который после поста сравнивается на сервере.
Я не знаю чем тебе не угодили пост запросы, но гет с сидом — это не очень. По крайней мере потому, что вид урла портит сильно.
>>588933 Мне нужно что в командной строке были параметры, но при этом пользователи не видели чужую информацию, просто введя другие айдишники в параметры адрессной строки наугад. Если кто скинет ссылку на ?From=Emp&EmployeeId=806424783 то пользователь который авторизирован(та же группа) с теми же правами, но должен видеть только своих работников не мог перейти по ней. SID может и в куки храниться
>>588945 Эм. Делай авторизацию нормально. Аутентифицируешь пользователя и суешь его EmployeeId в сессию. Потом, когда пользователь зайдет на страницу /ShowMyEmployees, достаешь EmployeeId из сессии, отправляешь в базу запрос на получение подчиненных данного работника и выводишь этот список на экран. Таким образом у тебя для каждого работника будет свой личный список подчиненных, не доступный другим. Зачем передавать EmployeeId через урл?
>>588958 Ну вот, потом ты хочешь зайти на страницу работника чтобы отредактировать его данные. Форма для редактирования получается через гет запрос урл будет в виде Edit?Id=22 Любой с подобными полномочиями может вбить Edit?Id=22 и редактировать данные несвоих работников
>>588933 >Такой подход используется, когда куки на клиенте отключены. Чревато тем, что твой сид и ид могут подсмотреть и от твоего имени натворить хуйни. Тут поможет https. Ещё без кук можно идентифицировать пользователей по фингерпринту (некоторая первоначальная авторизация всё равно нужна). Но это пиздец гиммор и очень высока вероятность совпадения. Короче, у кого куки отключены - тех сразу нахуй. Куки воруются в основном только через XSS или злобным трояном, поэтому считаются относительно безопасными хранилищем данных сессии.
>От этого защищаются путем добавления в форму и куки специального токена Это тоже позволяет подделывать запросы. Правда, размах уже не тот, ну и подделка требует некоторых мозговых усилий.
>>588963 Делаешь еще одну страницу /EditEmployee/{id}. Пользователь заходит на нее, ты достаешь его EmployeeId из сессии, достаешь {id} из урл и оправляешь в базу запрос на проверку наличия {id} в подчиненных EmployeeId. Если такой имеется, то позволяешь редактировать. Если нет, то посылаешь нахуй с редиректом. Проверку надо будет делать каждый раз при получении запроса на данный ресурс от пользователя.
>>589001 Да никакой разницы. С моей точки зрения, относительно полезных операций в цикле, накладные расходы на организацию цикла не имеют значения: там за наносекунды все происходит. Нашел о чем спрашивать в дотнет треде, где все пользуются итераторами. Ты бы еще спросил, какова вероятность того, что биты в регистрах от наводок флипаться начнут, посылая по пизде твой цикл.
>>588890 Лол, напомнил мне как я такое же дополнение к бабл сорт придумал на уроке информатики и втирал уччителю про мой гениальный алгоритм сортировки.
Сап анон. Я немного запутался в такой вещи как Socket 1) Во первых, поясни, что за магия реализуется в NetworkStream и КАКИМ ОБРАЗОМ NetworkStream.Read понимает когда пришло время возвращать -1 ? Где бы прочитать поподробнее об этом.
2) Вот я делаю. >offset=0; >count=1024; >_socket.Receive (buffer, offset, count, SocketFlags.None);
Что если в внутреннем буфере сокета данных имеется меньше count. Что произойдет? Receive завершится и мне вернет фактическое количество принятых байтов? Или функция будет ожидать пока не придет еще данных или пока не истечет тайм аут?
Чето не понял при пост запросе в сложный объект сначала должен сеттер запускаться. А у меня почему-то геттер и еще ругается что null в свойстве. Понятное дело что null будет в таком случае
>>589090 >Где бы прочитать поподробнее об этом. В гуголе, наверно.
>Что если в внутреннем буфере сокета данных имеется меньше count. Что произойдет? Вернет все, что есть во внутреннем буфере с учетом размера твоего буфера. Судя по докам винсока (сокеты в дотнете — обертка над winsock), для tcp, даже если в буфере всего 1 байт, то recv может разблокировать поток и вернуть данные.
https://msdn.microsoft.com/en-us/library/windows/desktop/ms741688(v=vs.85).aspx > Any data that has already been received and buffered by the transport will be copied into the specified user buffers. In the case of a blocking socket with no data currently having been received and buffered by the transport, the call will block until data is received. Windows Sockets 2 does not define any standard blocking time-out mechanism for this function. For protocols acting as byte-stream protocols the stack tries to return as much data as possible subject to the available buffer space and amount of received data available. However, receipt of a single byte is sufficient to unblock the caller. There is no guarantee that more than a single byte will be returned. For protocols acting as message-oriented, a full message is required to unblock the caller.
>>589139 private string postName; public string PostName { get { return postName ?? (postName = Post.Name); } set { postName = value; } } Тоже самое. Когда сабмичю форму говорит что nullRefetence, оно так и должно быть, но первым же должен был выполниться сет, тогда бы такой ошибка не было.
>>589151 Это я знаю, там налл и должен быть. Но этот ноллрефернц возникает после постзапроса. При пост запросе по идее первым делом должен выполниться сеттер, тогда бы такой ошибки не было и нулл в . Но почему-то наоборот. Переделал в авто гетсеттер И присвоение свойству сделал через цикл обычный в контроллере foreach (var staff in list) { staff.PostName = staff.Post.Name; } Но я думал так лучше будет, но оно почему-то не пашет.
>>589138 Добра тебе анон. Кое что понял. Написал тут пару тестовых приложений. Действительно, блокирует навечно. Если только не задать свойство ReceiveTimeout. Оно я так понимаю в миллисекундах собственно определяет когда можно считать соединение потерянным.
JS валидация не работает когда поле изначально было заполнено? Просидел с этой проблемой пару часов, думая что валидация отлетела, лол. Открыл пустую форму для создания и она внезапно ожила.
>>589383 Может у тебя jQuery старый/забагованный? Или ты сам его допиливал под свои нужды? Там по идее валидации всё равно на начальные значения формы, проверка ведь только по факту сабмита идёт.
>>589560 Жеквери самый последний через нюгет обновил. Может в этом проблема? Там изначально поменьше версия стояла и кажется валидация работала в такой ситуации. А валидация только на пустой форме работает. Если что-то было в поле, стираешь все и сабмитишь, только валидация на стороне сервера срабатывает.
>>589561 >Жеквери самый последний через нюгет обновил. Может в этом проблема? Вполне может быть, лол. Посмотри дебаггер в браузере, вдруг ошибки какие-то появились. По-хорошему, нужно ещё пройтись дебаггером по JS-коду, может там хэндлер валидации кривой или ещё что-то. Сука, как же я ненавижу JS. Сам с этим днищем регулярно подвисаю при разработке.
>>589750 Штука просто в том, что у каждого свой подход к обучению: кому-то книжки с теорией нравится читать, кому-то видосики смотреть. Я вообще шарп изучал методом тыка в универе, чтобы делфями мозги сильно не ебать, и только перед тем как на работку устроиться книжки по нему прочитал.
>>589576 Вроде понял в чем причина но как исправить Я скопипастил вот такую вот штуку для того чтобы дата вводилась в нужном формате дата $(document).ready(function () { $.validator.methods.date = function (value, element) { return this.optional(element) || parseDate(value, "dd.MM.yyyy") !== null; }; }); Если убрать ее, то js валидация при редактировании срабатывает, но тогда всегда будет выводить ошибку что дата в непарвильном формате, потому что такой формат нестандартный для жеквери В пустой форме срабатывала js валидация потому что форма с датой пустая и не реквайрд Как то нужно чтобы это вместе работало.
>>589642 Да как хочешь. Можно очень хорошо познать язык, не прочитав ни единого учебника. Я лично считаю, что книжки не нужны, ибо пустая трата времени и денег. В MSDN есть всё.
>>590265 >но оно сбрасывает валидацию по типу Это как? Может, глобализацию в jQuery добавить нужно? http://stackoverflow.com/questions/24188215/aspnet-mvc-4-validating-decimal-numbers Алсо, как вариант, сделай модель-прокси, где нужные свойства будут string, тогда ты сможешь реализовать любые изыски при валидации. Хоть с регэксами, хоть без них. А потом просто зальёшь полученные данные в конечную модель. И никакой возни со сраной глобализацией.
Тут был вроде был анон, использующий vNext (dnx/core) на линуксе. Помоги, плз. Хочу затестить сайтик на MVC 6, но проблема в том, что у меня дохерище других виртуальных хостов на серваке, поэтому просто запустить Кестрел с сайтом - не вариант. Нужно, чтобы это всё работало в рамках одного веб-сервера (Apache). Mod_mono по понятным причинам пока не понимает vNext. Единственный вариант на сегодняшний день - это организовать прокси под Апачем: http://stackoverflow.com/questions/28631862/vnext-on-apache-webserver Всё правильно понимаю?
Так, C# аноны, нужна помощь. В вузике дали лабы для работы с GDI. Но, так как я сижу на работе большую часть времени, мне доступен только линукс и IDE MonoDevelop. Есть какие-нибудь гайды по работе с GDI на Mono? Пользоваться VS на работе нет возможности.
>>590293 > Это как? Когда этой штуки не было я мог вбить дробное число только в формате через запятую, если вбиваешь строку вместо числа или дробное с точкой выводит "asasdasd" is not Valid for property Salary Если эту штуку подключаешь то принимает и формат с точкой, и строку и вообще все. Только когда строку вводишь выбивает эксепшон на странице.
>>590293 > Возможно, он тебя избавит от ебли с форматами даты.
Сделал проще. Поменял культуру в веб конфиге на российскую. И ввод даты на формат dd/MM/yyyy. MVC почему-то этот формат считает стандартным для такой культуры. А у меня до этого было через точку dd.MM.yyyy . В принципе не важно через точку или нет, дата все равно через дейт пикер выбирается.
>>590743 Я поторопился. Оно почему-то выводит в формате с точкой, если данные там уже есть. То есть ты жмешь сабмит ничего не меняя, выводится пикрелейтед. Чтобы прнияло нужно дейтпикером еще раз выбрать ту же дату тогда оно поменяет точки на слэши. Жеквери и сервер уже занют что должно через слыши должно быть, но по умолчанию выводит через точки
>>590774 Решил такую штуку внутри объекта сделать, но внутри и так дата через слэши присвоена. Но снаружи оно превращается в точки и изменить его вручную не получается.
>>590792 Лол. И на что ты надеялся? То, что ты видишь под дебаггером — это результат вызова ToString(). Создай темлейты (display и edit) для DateTime, которые будут выводить дату в нужном формате, ModelBinder напиши, который будет парсить дату, и перенастрой свой дейтпикер. Для валидации на клиенте придется дальше курить тему с jquery, которую ты уже начинал ($.validator). Если что-то не работает, значит ты где-то накосячил: гугли, дебаж и переписывай.
>>590821 > То, что ты видишь под дебаггером — это результат вызова ToString(). Я и а прайват Datetime переменной проверял там тоже через слэши, не тот скриншот вставил. > оздай темлейты (display и edit) для DateTime, которые будут выводить дату в нужном формат Есть же вот >>590774 но оно только классы добавляет к текстбоксу который через EditorFor рендерится. > ля валидации на клиенте придется дальше курить тему с jquery, которую ты уже начинал ($.validator). Если что-то не работает, значит ты где-то накосячил: гугли, дебаж и переписывай. Я вычитал что там нужно всю валидацию прописывать. То есть что-то одно выбираешь или asp.net mvc за тебя js валидацию пилит или ты все-все ручками прописываешь ко всем полям. Одновременно нельзя. Вот поэтому когда у меня включается вот эта валидация >>590191 , мвс считает что я реализовываю всю валидацию вручную и дефолтная валидация на остальные поля перестает работать.
>Я вычитал что там нужно всю валидацию прописывать. Когда я последний раз использовал mvc и писал костыль для работы с датами, то нет, не нужно было. Правда у меня jq 1.11 был.
Ньюфаг в тренде приветствует сишарпогоспод. Хотелось бы выучить язык программирования для дальнейшего использования. Из опыта только школьный паскаль. Стоит ли остановиться на сишарпе? Насколько он релевантен?
>>591042 Ну, он довольно популярен в интерпрайзе для написание автоматизированных систем с веб-приложениями и сервисами. Он довольно прост в изучении и здорово снижает затраты на разработку программного обеспечения. Помимо прочего, им занимается майкрософт. Но вопрос тут скорее в том, чем ты сам хочешь заниматься?
>>582010 (OP) >Существует множество различных платформ и языков программирования, однако среди них нет более элитного, чем C#. Кекнул чутка, а вообще зачем используется шарп? Ну вот сишка - драйвера там всякие, операционки, кресты - те же операционки и прочий софт, остальная шелупонь - для всяких сайтиков, мобильных устройств или просто от слабоумия. Так зачем нужна решетка?
>>591056 Так-то они много на что еще годятся, но я думаю, что это их основное применение: php — веб разработка. c++ — системный и прикладной софт, гейдев. с — системный софт. java, c# — корпоративный софт, выше уже писал. python — скрипты автоматизации, веб разработка. swift, obj-c — прикладной софт для яблока.
Сап ребята. Нужно запилить на винфон программу для рисования фрактала. На С# есть алгоритм, там используется System.Drawing; из него Graphics и Pen. Как это гавно портировать на мобилу, есть какие библиотеки подобные декстопным для работы с графикой на мобилке?
Странная фигня. Расскидал файлы внутри одной папки еще дальше по папкам и теперь using MyNamespace.MyFolder; вверху страницы просто ничего не делает и всем классам нужно явно прописывать полный путь типа MyNamespace.MyFolder.MyClass только так их видит вижуал студия.
>>591190 То, как файлы расположены на диске, не имеет значения. Имеет значение только неймспейс, в котором определен класс. Впрочем, то, что using MyNamespace.MyFolder не работает, а MyNamespace.MyFolder.MyClass работает, действительно странно. У тебя там конфликтов с неймспейсами нет случайно?
>>591198 Нету, решарпер просто юзинг подсвечивает как лишний и что его можно удалить Когда все файлы были в одной общей папке Models юзинг использовался как нужно.
А нельзя как-то реквайрд полю присвоить значение самому в пост методе контроллера? Я попробовал так присвоить, удалюю через Remove правило из ModelState чтобы проврерка IsValid выдала true, но тогда EF не пускает, хоть значение там присвоено он выдает ValidationError как будто значения там нету.
int dvachek = Convert.ToInt16(double); Отворачиваюсь на секунду и получаю Unhandled Exception: System.OverflowException: Number overflow в лицо. Как исправить-то? Там по идее 4 знака в целой части и хуй знает сколько после точки, но они мне в хуй не уперлись, мне бы только целую часть дернуть.
Ньюфаг со школьными знаниями паскаля снова вернулся. Посоветуйте что-нибудь почитать для изучения C#? Посмотрел Изучаем С# 3-е издание. Меня там сразу игори отправляют писать. А учиться-то где? Посмотрел C# in a nutshell. Сразу очень трудно вникнуть, ибо я не в курсе основ. Да и так-то это же справочник, и практических знаний я там не найду. Может быть у меня неправильное отношение к делу?
Подскажите ньюфагу FileStream file1 = new FileStream("c:\\Users\\Admin\\Desktop", FileMode.CreateNew); выдает, что нет доступа. Как этот доступ, собсна, предоставить?
Нужно чтобы ajax пост запросом выполнялось сохранение данных в таблице по изменению текстбокса. Я сделал вот так прописав каждому текстбоксу атрибут onchange в котором делатется сабмит формы. На нужный акшон данные попадают, все в базе сохраняется, но потом страница редиректится на этот акшон отображая только паршиал вью вместо того чтобы остаться на той же страницы просто сделав замену в диве новым patialView https://ideone.com/JjKpop
Для 15ой студии наконец вышел первый апдейт. В него включено много инноваций, например, новая иконка приложения, и черно-белый значек вместо смайлика в заголовке окна. Еще текущий бранч в статусбаре стал показывать. Возрадуемся! А еще, наконец, завезли REPL, прямо в студию, со автодополнением и всем таким, удобно. Лучше поздно, чем никогда. Одновременно и .NET 4.6.1 вышел, там нихуя интересного нет, но пишут, что много ошибок в RuyJIT исправили, да и над перфомансом заодно поработали. https://github.com/Microsoft/dotnet/blob/master/docs/releases/net461/dotnet461-changes.md Главное, что ничего не сломалось при обновлении, как это часто бывает, все дополнения на месте, настройки сохранились (разве что хардварное ускорение мне само включило), и с остальным вроде все нормально.
>>593201 > Нужно чтобы ajax пост запросом выполнялось сохранение данных в таблице по изменению текстбокса. > Я сделал вот так прописав каждому текстбоксу атрибут onchange в котором делатется сабмит формы. На нужный акшон данные попадают, все в базе сохраняется, но потом страница редиректится на этот акшон отображая только паршиал вью вместо того чтобы остаться на той же страницы просто сделав замену в диве новым patialView
По идее, после ajax сабмита должно обновиться с заменой только UpdateTargetId который был прописан для div, а вместо этого происходит редирект на Post Action, в данном случае Edit.
Написал простенький NSIS-скрипт для установки одной своей программки ( http://pastebin.com/aDVrEn6R ), добавил msbuild таску, и теперь вот думаю, безопасно ли использовать полный пусть к ngen? Это который Microsoft.NET\Framework64\v4.0.30319. Он вроде не меняется при установке новых версий, но все-таки.
>>593221 Ну я попробовал. Сначала сделал с явной кнопкой сабмит все ок работает. Потом попробовал скрипт в главном вью прописать <script type="text/javascript"> $(document).ready(function () { $('#MyTextbox').change(function () { $(this).closest('form').submit(); }); }); </script> Почему-то это выполнялся только один раз. После этого до меня дошло что у меня вот тут хуита написана onchange = "return form1.submit()" поменял на это onchange="return $(this).closest('form').submit();" Все заработало как надо наконец-то Но все равно не понятно почему скрипт выполнялся только один раз, после одной попытки туда ничего не попадает больше.
И это еще не все Подумав что все в порядке написал вот таким вот образом @Html.TextBox("Name", Model.Name, new {onchange = "return $(this).closest('form').submit();" }) И тут снова ВНЕЗАПНО нихуя не работает, вообще ничего, даже редиректа Посмотрел в разметку как рендерится @Html.TextBox <input id="Name" name="Name" onchange="return $(this).closest('form').submit();" type="text" value="TheName" /> Все из-за того что HtmlTextBox не может в одинарные кавычки
>>593751 Лол. Заменяет символ автоматически на кавычки, кароче вот скриншот Может оно его и заменяет, но событие онченж не пашет если кавычки заданы в таком виде Если явно прописывать, без хелпера, то кавычки в разметке нормально отображаются
Как считаете норм функция, или что то пошло не так? private List<Task<List<BailiffRequestedPerson>>> StartInitialParsedTasks(Getter getter, DateTime lastGetedObjectTime, string baliffRequestLink, ref int currentParsedPage)
>>593876 Как считаете норм функция или что то пошло не так? def lensgT[F[+_], A, B](set: A => F[B => A], get: A => F)(implicit M: Bind[F]): LensT[F, A, B]
>>593894 Как считаете норм метод, или что то пошло не так? private List<Task<List<BailiffRequestedPerson>>> StartInitialParsedTasks(Getter getter, DateTime lastGetedObjectTime, string baliffRequestLink)
>>593957 Меня вложенности смущают, но я доверяю мнению профессионалов!
А по Entity Framework поясните http://pastebin.com/kuNtymWk почему это место долго выполняется и начинает жрать память как не в себя? База локальная, на stackoverflow пишут что это преобразуется в один мегазапрос как?
Что за хуйня у меня происходит с дублированием записей? При SaveChanges() он зачем-то создает дубль в таблице PatientType, которая у меня биндится к комбобоксу:
Как построить граф на windows форме? Нагуглил либу QuickGraph, но не понял как ее использовать. Еще на ютубе туторчик смотрел (по этой либе), но там wpf приложение, и там редактировали xaml файл, чего в обычном winFofm приложении нет. Помогите, пожалуйста.
>>594250 >построить граф на windows форме? Я рисовал на форме через гди. Интерактивность была нинужна, поэтому просто картинка по файлу и расчет. Но при желании можно было наколбасить своих контролов узлов/связей и запилить любой уровень интерактивности.
>>594152 В рашке топ1 язык сейчас и будет топ1 языком еще лет 50. Потому что отсталая страна и люди отсталые.
Программисты слишком ЧСВшные, чтобы использовать простые и эффективные языке вроде php. Работодатели тоже слишком ЧСВшные. Удивляюсь, почему у нас Хаскель не прижился.
В цивилизованном мире на asp.net никто не пишет года с 2008, да и раньше не особо писали. Сервер на винде - это зашквар по определению.
>>594163 >стоит ли сишарп изучать в качестве первого языка Не стоит ничего изучать в качестве первого языка. В поиска работы тред зайди и поинтересуйся, как у ребят дела. Тебе 5 лет самостоятельно учить миллион технологий и фреймворков придется, чтобы хотя бы на стажера претендовать. И там таких типа тебя будет конкурс из 50 человек.
Многоуважаемые господа, посетители сего чудного топика. Будьте так любезны и посвятите меня в премудрости сего знания описываемого в этом месте. Времени могу уделять много, финансирование есть в связи с чем прошу написать хорошей литературы по языку для закупки и в каком порядке её изучать. На данный момент есть пикрейлетед Спасибо.
>>594626 >Тебе 5 лет самостоятельно учить миллион технологий и фреймворков придется, чтобы хотя бы на стажера претендовать. Кек, примеры из реальности говорят об обратном.
Доброго времени суток, господа. Есть задание - нужно написать простенькую прогу с аналоговыми часами, которые будут идти по времени системы. При этом необходимо еще добавить фичу установки времени перетаскиванием секундной/минутной или часовой стрелки мышью. Так же нужно реализовать класс самих часов, цифровые часы на их основе и звон будильника в определенное время. Если с цифровыми часами, будильником и классом я разобрался, то с аналоговыми часами - беда. Так вот, суть проблемы: я никак не могу разобраться, как на PictureBox(или на саму форму, хуй его знает), залить несколько картинок(циферблат и 3 стрелки), и сделать так, чтобы они поворачивались на определенный угол, причем не вокруг своей оси, а вокруг определенной точки. Ну и главное - как сделать так, чтобы их можно было вращать мышкой вокруг этой же точки, без возможности перетаскивания в другое место? С меня тонны нефти.
>>594758 Так не в вычислениях проблема, все формулы я уже нашел. Проблема именно в работе с формой и расположением элементов на ней. Я немного плаваю в синтаксисе #.
>>582010 (OP) Девелоперы, а кто в конторах администрированием и настройкой сервера занимается? Что-то я серверные стэки (Linux+Apache+MySql, IIS+MSSqlServer) повбивал в хэдхантер и не нашел нихуя вакансий админа. Зато на каждой первой asp/java бэкенд вакансии требуется все вышеперечисленное. Кто все-таки эту работу делает? Неужели бэкенд девелоперы? Мне учиться настраивать IIS или нет?
>>594680 Привет. Полгода учусь по книжкам и интернету, бюджет 0 рублей. Совет от всего сердца - не используй быдло-ориентед источники! (книжки, онлайн-курсы) Это ебаная трата времени. Там на одну страницу фактической инфы будет 50 страниц воды, ненужных пояснений, ненужных деталей и ненужных примеров. И петросянских шуточек от автора-клоуна. Читай официальные документации и официальные гайды. И исходники mscorlib, они теперь открытые. Так будет в разы быстрее. Знания будут более полными, более систематическими, более объективными (в книжках и курсах авторы часто свои субъективные домыслы и хуевые практики выдают за истину, будучи нубом сложно это быстро спалить).
>>594978 >Кто все-таки эту работу делает? Инженеры заказчика или как получится. На этапе разработки этим занимается кто-то из команды. Есть даже такое направление, как devops.
>>594152 По трендам за последние 12 месяцев - доля asp.net на серверах уменьшилась на 1% - доля java увеличилась на 0.3% - доля javascript увеличилась на 0.1%. Остальные технологии своих позиций почти не изменили.
Как видишь, рынок очень инертный. Даже если тренд сохранится, asp.net будет второй по популярности платформой для разработки бэкенда (после php) еще как минимум 10 лет.
Вангую, что тренд не сохранится, а развернется. Юникс-истерия последних пяти лет - явление временное. Рано или поздно хипстерам надоест жрать говно ради показушной элитности. Фраза "Я использую Windows" снова станет легитимной. Маки, как и было задумано, станут уделом блондинок, а Линуксы - уделом красноглазых мазохистов любителей работать бесплатно.
>>595032 Так это ты смотришь статистику веб-серверов открытых(в интернете). Очень много корпоративного софта тырпрайза пишется на .net и работает в сетях внутрикорпоративных, а тяжёлый тырпрайз на говнорнр не пишется, там .net или жаба. Доля дотнета в приложениях, работающих в браузере выше.
>>595100 >Очень много корпоративного софта тырпрайза пишется на .net и работает в сетях внутрикорпоративных Тут ты прав.
>тяжёлый тырпрайз на говнорнр не пишется А чем тырпрайз от не тырпрайза отличается вообще? Фейсбук - это не тырпрайз? Даже если нет, то легким его не назовешь уж точно. Все говорят то же, что и ты. Мол php для бложиков, серьезные сайты на жаве/дотнете. А по факту смотрю - почти все крупные популярные сайты на php работают. На джаве - единицы. На асп вообще нет (кроме сайтов майкрософта).
>>595111 >Фейсбук >php Не совсем так, на сколько я понимаю. http://hacklang.org/ Почему он был изначально написан на пыхе? Популярным он был оч. для макакинга в то время, впрочем как и сейчас.
>Энтерпрайз - это когда все большое и мраморное. Когда для того, чтобы выключить порт на свитче, надо согласовать десять бумажек. И дорогое! И все сидят в небольшом зале с кожаными креслами в строгих костюмах с большими животиками. Только тогда это настоящий энтерпрайз. (c) ЛОР
>>595122 Нет. Сложилось впечатление, что сейчас общепринято винду и MS считать говном, а Apple и Линуксы принято считать гениальным дарованием небес. Разве нет? В обществе прогрессивных фронтендеров выскажи точку зрения, что убунту - недоделанное говно, а вин10 охуенен - тебя просто засмеют.
>>595164 Может быть. Мне вообще кажется, что, помимо написания корпоративного софта, на шарпе работу проблематично найти. Хотя сейчас мс вроде в сторону опенсорса и всяких линуксов движутся, может обезьянки и подтянутся. а может и нет.
Вообще айти современное - будто какая-то кастовая система из темных веков. Выбирают технологии не по объективным факторам, а по историческому наследию. Вот сложилось, что на дотнет пишется энтерпрайз - все, будем писать энтерпрайз на дотнете. Писать энтерпрайз на питоне - незаконно. Писать что-то кроме энтерпрайза на дотнете - тоже незаконно.
Языки и технологии используется не как инструмент с объективными возможностями и ограничениями, а как социальный маркер.
>>595280 Не согласен, как раз технологии по объективным факторам и выбирают. Писать энтер на питоне можно, но глупо, когда система разрастется ее сложнее развивать дальше и дебажить, а главное плюсы языка становятся его минусами. Тоже самое и для дотнета, хотя сейчас это меняется, но все равно писать какой-нибудь скрипт по работе с текстом или парой файлов или спарсить пару страниц с инета будет дольше и чуток посложнее, чем на питоне, а в работе может оказаться и ресурсо затратнее. >>595287 Зеленый?
>>595438 Решил проблему достав все запросы при помощи dbContext.Database.Log = e => writer.WriteLine(e); Как оказалось decreeNumPresentInDb на каждое вхождение посылает новый запрос. И если при 200 позициях - 4000 запросов проходят быстро, то для 3000 - 3000^2 слегка тормозят. .ToList() исправил проблему.
Что прописать в EntityDataSource чтобы выбрать только данные, которые относятся к текущему пользователю под которым я зашел (в таблице с данными есть FK на таблицу пользователей)? Логинюсь как показано на пиках.
Влом запиливать отдельный тред, поэтому спрошу здесь. Какую маску (регулярное выражение) нужно впердолить, чтобы преобразовать [id1|Пашко] в <a href="http://vk.com/id1">Пашко</a> ([хуй|пизда] в <a href="http://vk.com/хуй">пизда</a> и так далее)?
Сап, шарпоебы. Есть один сайт с которого необходимо спарсить около 600000 строк данных. Эти данные динамически обновляются, выдаются не более 10 ед за раз, сайт периодически падает. В общем все сложно. Посему реквестирую какой нибудь литературы по методологии парсинга.
>>582010 (OP) Пишу матмодель на шарпе. Модель простая, но очень много циклов и рекурсии (то есть вызовов методов). Работа в основном с двоичными массивами целых чисел в диапазоне от 0 до 100.
Возникла проблема с тем, что модель обсчитывается порядка 6 часов. Она и должна долго считаться, но хотелось бы по возможности сократить это время.
Поэтому, подскажите по оптимизации.
1. Представлять данные в int или byte ? Байты весят меньше, но насколько я понимаю, сишарп не умеет с ними работать напрямую. Поэтому приходится делать приведение в int при каждом действии. С ОЗУ проблем нет, всего около 1 ГБ используется (доступно 16 ГБ). 2. foreach или for? 3. Количество параллельных тасков ограничивать количеством ядер, или запускать больше? 4. Модель асинхронности дотнет 4.0 или олдскульные потоки? Есть разница в скорости выполнения? 5. Методы экземпляра или статик методы? Реализовать и так и так могу. Второй вариант будет нечитаемым быдлокодом, но мне насрать на это, мне нужна скорость. Какие методы быстрее вызываются? 6. Сборщик мусора нужно где-то использовать? Попытался собирать мусор после того, как большой кусок данных перестает использоваться - быстродействие ухудшилось буквально в несколько раз. Сборка мусора ручная секунду или две занимает, прям такой лаг конкретный. ОЗУ освобождается, но это неважно в конкретной задаче. 7. Собирать под x64 или x86 ? По уму конечно x64 нужно, спрашиваю на всякий случай, мало ли что с этим дотнетом не так.
Анон, можно ли IPGlobalProperties.GetActiveTcpConnections выпонить для удаленной машины без разделения на клиент и сервер? Каким путем еще можно пойти?
Задача 1. Ввести с клавиатуры три действительных числа a, b, c и решить уравнение ax2 + bx + c = 0, т. е. найти все его действительные корни и вывести их на экран (если любое число является корнем или корней нет, то ответ нужно выдавать в текстовом виде). Каждый из коэффициентов может быть равен 0. Сделайте это для меня пожалуйста. Я не шарю в проге.
Подскажите в чем косяк. Задача такова. Нужно ввести 10 char в массив из 10 char, для этого я организую цикл, в каждой итерации выполняется litters = (char)Console.Read();, где i счетчик цикла от нуля. Однако, при вводе чара, в цикле проскакивают сразу четыре итерации. какбуд-то бы мой чар больше по битам чем должен быть. Есть такое ощущение что считывается еще и клавиша Enter, но даже этим объяснить не получается. Как через цикл ввести все значения?
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/mUAJ6Ugz
Прошлый тред тонет здесь: https://2ch.hk/pr/res/570067.html