Это копия, сохраненная 18 декабря 2015 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
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
Каким переводам книг по шарпу можно доверять, что они не теряют смысл первоисточника? В английский могу очень хорошо, но читать много и по долгу на английском сильно устаю.
> то они не теряют смысл первоисточника? В английский могу очень хорошо, но читать много и по долгу на английском сильно устаю.
Читай на русском тогда и не еби себе мозги, суть все равно в примерах в коде. Если что-то непонятно гуглишь на английском первая ссылка на стековерфлоу обычно разжевывает все.
Вот этого двачую. Книгу можно и на русском прочитать, там всё равно только общая инфа. А всё остальное приходится догугливать строго на ингише. На том же MSDN гораздо удобнее всё читать в оригинале, потому что автоперевод ужасен. В рунете же по большому счёту нихрена нет, кроме пары высеров на хабре.
System.DateTime.FromOADate()
Я тут на антонове вакансию видел, хотят инженера с вышкой и опытом работы 2 года взять на 3500 грн. Так шо сейчас вообще херово стало, еле на мивину хватате и на проезд до работы
2 года си шарпа и плюсов естественно. Это примерно 11к рублей.
Т.е. запускается таймер, которые каждые 100 мс делает что-то, и он останавливается через timelimit мс. Когда он остановится, внутри метода надо сделать кое-что и возвратить значение. Как это реализовать?
>>582128
Тебе уже сказали - читай ЧТО УГОДНО. У тебя сейчас этап "поиски волшебной таблетки". Думаешь, что найдешь одну супер-крутую книгу/сайт с супер-качественным материалом и идеальным переводом и сразу станешь ПРО.
Нихуя не будет такого.
Завязывай поскорее и переходи на следующий этап - изучение всего что попадает под руку в огромных количествах месяцы напролет. Потому что другого способа стать более-менее квалифицированным нету. Тема слишком большая и сложная, чтобы освоить ее из одного/двух/пяти курсов.
Имеет смысл использовать ref для входных параметров по дефолту, чтобы экономить память? Почему такой подход не является стандартом индустрии и применяется лишь изредка?
И вообще любые курсы - лишь опорная точка для практики. Только на практике крепкие знания получаются. Теорию сегодня выучишь, а через неделю забудешь, если руки не набьешь десятком практических примеров.
Инкаспулируй в класс с ивентом. Когда таймер отработет — дергаешь ивент и передаешь параметры с результатом.
Почитай хотя бы стандартный хелп для начала:
https://msdn.microsoft.com/ru-ru/library/14akc2c7.aspx
Там суть не в экономии памяти, а в том, как передаются параметры и что с ними происходит впоследствии.
Каноничные фото в стиле я-ленивое-хуло-не-могу-перепечатать-3-предложения делаются боком и на украинском языке.
Ты хочешь сказать, что со смартфоном в руках в 2015 легче перепечатать, чем просто сфотографировать?
> боком
Это значит что тебе лень даже камеру поместить прямо над листом и сфотать, чтоб нормально выглядело. Еблан тупой.
Да ладно вам. Сейчас какой-нибудь хикка с заниженной самооценкой все ему сделает, чтобы почувствовать себя нужным. Все в выигрыше. Не хотите помогать - не помогайте, никого же не заставляют.
Да я вообще не тот анон. Но если до тебя так долго доходит, что значит "боком", то ты тупой.
> при передаче параметра по ссылке (с помощью ключевого слова ref) в метод в качестве аргумента передается сам адрес на объект в памяти
http://metanit.com/sharp/tutorial/2.16.php
Reference-типы и так передаются по ссылке, а на value-типах ты много все равно не сэкономишь, тем более что сборщик мусора все равно сколлектит после завершения метода.
Никогда не понимал, зачем для квадратов Math.Pow использовать вместо обычного x [mul] x.
Чтобы школьнику с его задачкой пришлось дольше перепечатывать.
>на value-типах ты много все равно не сэкономишь
Математическая модель.
Массивы double размерностью от 1е4.
Приходится юзать х64, чтобы OutOfMemoryException не ловить.
>на value-типах ты много все равно не сэкономишь
Зато можно сэкономить на производительности
>There is no boxing of a value type when it is passed by reference.
Ну, как бы и так боксинга нет. Он происходит только при касте к ссылочному типу.
>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.
HttpClient
>размерность измерения
Не распарсилось, но возьми это https://msdn.microsoft.com/en-us/library/system.array.rank(v=vs.110).aspx
>Как узнать размерность каждого измерения
https://msdn.microsoft.com/ru-ru/library/system.array.getupperbound%28v=vs.110%29.aspx
>сделать foreach по одному измерению
Думаю что только кастом к одномерному.
https://msdn.microsoft.com/ru-ru/library/system.array.getlength(v=vs.110).aspx
аргумент 0 =>5
аргумент 2 =>20
Значит зашквар, спасибо.
Благодарю.
linq зашквар. Не спорь.
Ну это вебоговно, значит зашквар.
Я вот вкатился только вчера, пока писат ьнечего.
Пример полученной строки
"Обработка заявок"
Исходный текст - Обработка заявок
Не совсем, мне нужно получить ссылку по тексту внутри элемента.
Как мне поможет рендер? мне не нужна страница, мне нужна ссылка.
Хотя страничку благодаря тебе я отрендерил с нормальным текстом, спасибо
2 года назад точно был, потому что я здавал тут вопрос по поводу своего говнопроекта.
А вообще абу тебе статистику дал, в этом треде пока 27 постеров, в прошлом - 127
Спасибо
#pragma reginon
#pragma endregion
?
Что здесь оптимизировать-то, братишки?
public static IComparable GetMax(IComparable s1, IComparable s2)
{
return s1.CompareTo(s2)>0 ? s1: s2;
}
public static T Max<T>(T s1, T s2) where T: IComparable<T>
{
return (s1.CompareTo(s2) > 0 ? s1 : s2);
}
не?
Знаю C++ и Java. В ка4ком направлении двигаться, чтоб вкатиться в C#? Может сразу код писать, или лучше почитать чего для начала?
Да ничо не над, пиши сразу
Вот это посмотри, там короче. Лежало где-то на сайте Микрософта на русском языке.
Было пять с половиной часов назад.
Есть строка вида "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;
});
Тоже сойдет. Вся проблема в регулярке. В m.Groups[group].Value находится содержимое тэга, но замены не происходит или же происходит, но меняет содержимое на содержимое, а не содержимое+тэги на содержимое. Как-то так.
А в чем отличие твоего кода от того что было вначале? Зачем этот женерик вообще нужен?
В винде почти все шрифты имеют глифы для суперскрипта, но ни одного для сабскрипта. Сукапидоры. Неужели так сложно было добавить? Пиздуй, антоша, переопределять onpaint и сам рисуй свои ёбаные сабскрипты.
Всё, выписался, легче стало.
//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. Но при этом нагрузим цп излишними действиями по конвертации-деконвертации. Оно же того не стоит, да?
Ну так при иcпользовании short и byte переполнение получить легче, поэтому результат операций над ними - int. Микрософт заботится о тебе, и сам Билл стоит за твоей спиной и смахивает пыль с твоих плеч. unckecked тут вообще не причем, у тебя стадия компиляции.
>2015
>выиграл 3 байта
byte нужен чтоб например файл в массив байтов записать, но ведь всегда можно использовать стримы, а short вообще хуй знает.
>не могут в простейшие арифметические операции
Могут, но результат сложения short + short = int. Ну так надо, парень, всё хорошо. Отсюда и необходимость конвертации обратно в short. Однако, short a += 5 сработает четко и уверенно. Я понятия не имею, зачем так, но такое поведение однозначно лучше, чем int / double = int, например.
А, и правда ведь.
string[] temp = open.FileName.Split('\\'); ; ; ; ;
Моя студия под веществами, или это норм?
А что здесь нелегального?
Без js как я понял не обойтись, а то я его почти не знаю. Там вроде есть встревоженные хелперы для ajax может можно как-то ими?
Тогда продолжу гуглить готовое решение.
Пиздос, ты спецификацию не читал?
https://msdn.microsoft.com/en-us/library/aa664739(v=vs.71).aspx
>Без js как я понял не обойтись
Да, придётся приколхозить. Но там ничего сложного:
http://stackoverflow.com/questions/25056508/onchange-event-for-html-dropdownlist
Во время отладки debug --> windows --> disassembly . Если нету - включи в tools --> options --> debuging --> enable adress-level debugging . По дефолту включена в 2015 комьюнити эдишн.
>>584904
Спасибо, что дизассемблер показал. Теперь я знаю, как байтоебские вопросы решать, не отвлекая анона.
>>584890
Ясно.
>>584891
>однозначно лучше, чем int / double = int, например.
Это точно.
Я через пост-метод передаю всю модель Employee и отдельным параметром передаю string название должности , потом все это добавляю в коллекцию, кароче говоря все как нужно добавляется в бд.
Но тепреь проблема как прикуртить валидацию Required к текстбоксу в который должно вводиться название должности. Раньше я к свойствам модели просто аннотации дописывал и все.
> Я через пост-метод передаю всю модель Employee и отдельным параметром передаю string название должности
public ActionResult Edit(Employee emp, string workPost) вот таким образом
Добавь отдельное свойство в модели. В самой модели реализуй интерфейс IValidatableObject, через который ты можешь какую угодно валидацию делать. Или запили свой ValidationAttribute под это свойство (хотя мне, например, атрибуты не очень нравятся).
Ага, я вспомнил что можно NotMapped добавлять свойство модели тогда свойство не будет на бд отображаться.
Да, спасибо.
Мне тут нужно начинать писать диплом численные методы и все такое
Разум подсказывает "используй кресты", а сердце говорит "шарп ван лав"
Алсо, в связи с этим спросить хотел. нужно оптимизировать по максимуму и всё-такое
У меня есть функция, в которой используется массив определенной длины N. И я не хочу каждый раз при вызове функции выделять под него память, было бы неплохо, если бы массив создался только один раз.
В крестах я бы массив обозначил как static внутри функции и всё было бы пучком.
Здесь вроде так нельзя. Придется создавать статический массив в теле класса?
>>585089
А мне нравится больше, чем стиль_именования_переменных.
Солидарочка. Сам сейчас пишу на сишарпе и научился не бугуртить от конвенций, но считаю, что здесь они хуже, чем во всех остальных ЯП, которые я знаю.
> Мне тут нужно начинать писать диплом численные методы и все такое
Это интерсней наверное чем такой диплом как у меня. ВЕБ ПРИЛОЖЕНИЕ которое лучше существующих уже конкурентов, лол
Не знаю какой смысл несет статический массив, доступный в пределах одной функции дичь какая, но, да, приватный статический массив в классе тебе поможет. Хотя, наверно, можно и на уровне экземпляра класса эта реализовать, если немного подумать.
>>585104
Кодировать матан ради матана не особо интересно, как по мне.
Насколько мне известно, выделение памяти тем более под массив — одна из наиболее долгих операций. У меня функция очень часто дергается, хочу один раз выделить, а потом просто переписывать.
В общем придется как в паскале все переменные объявлять в самом начале лол. А там массивов ну ооочень много.
>>585111
>матан ради матана
Ну там как бы нелинейные системы дифф уравнений газодинамики. Там че-то с атмосферными явлениями связано и турбулентными потоками. Можно рисовать красивые векторные поля.
Я думаю, что везде ебут мозги на тему актуальности и обоснованности.
>>585115
Ты мыслишь в рамках функций, как будто на сях пишешь. Наверняка можно нормально инкапсулировать в класс все это твое дело. Ты же можешь создать класс, в нем приватный массив и дергать приватный метод столько раз, сколько тебе нужно. Зачем тебе именно статика, которая доступна на уровне нескольких экземпляров класса и отмирает только вместе с доменом?
>нелинейные системы дифф уравнений газодинамики
Мне уже неинтересно стало =/
А чего ты вообще паришься на тему выделения памяти? Типа долго считать будет? Так оно в любом случае на C# супер-быстрым не получится. Прикручивай туда OpenCL или CUDA - тут будет unsafe во все поля, сможешь любые фантазии воплотить.
Алсо не пробовал свой прожект на F# реализовать? Таки матан на нём писать удобнее.
GC.Collect() после ёмких операций, например. Сам он иногда подтупливает. Обычно, это некритично, но когда память быстро уходит, а сраный сборщик в этот раз почему-то решил отложить сборку на пару секунд, то вызвать полезно.
Бенчмарки давно смотрел?
>>585115
В классе поле-массив и твои функции, массив инициализируем в конструкторе. Создаем экземпляр класса, дергаем у него нужный метод.
>>585102
Никогда не видел кода на паскале, написанного по конвенциям, поэтому не в курсе есть ли они там вообще.
Везде только procedure naitielementvmassive(m:array of integer;e:integer).
Ну я так и сделаю. Просто не хотел класс лишними полями загромождать, которые используются только в одной функции, поэтому и задал первоначальный вопрос.
>>585125
Так я и хочу всю необходимую память сразу выделить. Тогда всё будет летать.
А если бы я хотел трахаться с unsafe я бы на крестах писал.
В CUDA вообще не шарю, в следующем семестре будет курс, магистерский диплом уже буду по хардкору писать на крестах.
В чем проблема P/Invoke использовать для критичных участков кода?
Что у тебя там за массивы? Размерность, количество?
>Бенчмарки давно смотрел?
http://stackoverflow.com/questions/22926046/unable-to-reproduce-c-vector-performance-advantages-over-c-sharp-list-perform
http://benchmarksgame.alioth.debian.org/u64q/compare.php?lang=csharp&lang2=gpp
Алсо есть ещё примеры IRL - Wt + Wt::Dbo vs MVC + EF. MVC сливает просто под чистую. Но это вовсе не значит, что .NET - плохая платформа. Задачи другие просто.
2. Заказчики/пользователи предпочитают громоздкий софт, решающий одновременно десятки задач? Или утилиты с минималистичным интерфейсом?
Кажется на рынке первый вариант преобладает. Но мне, как пользователю, такой дизайн софта не нравится. По-моему это дурацко, когда тебе нужна 1 функция, а тебя вынуждают устанавливать сложный софт с тысячей ненужных функций и разбираться в нем.
3. Разработка сверху-вниз применяется в реальном мире, или это вымысел теоретиков? У меня не получается.
Какие парадигмы проектирования и разработки показывают себя наиболее эффективными на практике?
>Какой-то каратист, про которого ничего не известно, побил какого-то боксера, про которого ничего не известно
>Следовательно карате сильнее бокса
Начиная с C, ^ это побитовый XOR для целочисленных типов. Можно перегрузить.
Если ты вдруг смотришь на С++/CLI код, то это управляемые указатели.
> Если ты вдруг смотришь на С++/CLI код, то это управляемые указатели.
Это я и искал, спасибо.
writing high performance .net code, c# deconstructed, net il assembler, pro .net performance, metaprogramming in .net
>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
Напомните, почему я учу сишарп?
Потому, что не хочешь учить блогодвиг и язык, на котором он написан?
Потому что есть глубоке и интересные сферы, а есть говно, зафорсенное хуесосами и делающееся хуесосами для хуесосов. Такое часто бывает во многих сферах, что интересная и "крутая" вещь и приносящая прибыль вещь — это не одна и та же вещь.
Деньги - это крутая вещь. У меня их нет и никогда не было, поэтому я точно знаю.
Пришло время перустанавливать студию.
бля)))))))))))))
Поставь 2013 Express.
Где-то в интернетах был гайд по тому, как восстанавливать темплейты в студии. Там с какими-то ключами ее надо запускать. Погугли.
Заходишь в program files (x86)\microsft visual studio тут_число\common7\common7\ide\
Там запускаешь консоль от админа и
devenv /installvstemplates
косяк такого варианта в том, что если ввести во входную строку например "ауауа23.12" IsMatch вернет true, а нужно жесткое совпадение. IsMatch ищет совпадение во всей строке.
Я исправленный вариант кинул, просто не то скопировал
Не трудно ли будет рассказать какую роль играет @ в выражении. Полазил немного по гуглу, ничего не нашел на этот счет '_'
Бесспорно. Но я, например, не стану заниматься неинтересной мне деятельностью исключительно ради прибыли, если есть менее прибыльные, но более интересные альтернативы.
>какую роль играет @ в выражении
Не нужно эскейпить специальные последовательности символов. Ну тут уже ссылку на MSDN кинули.
У меня вопрос по поводу xsp сервера. Он как-то неадекватно реагирует на routes.AppendTrailingSlash = true, превращая любую ссылку без конечного "/" в редирект. IIS ведёт себя нормально в этом случае, редиректов нет. Может, существует какая-то особая настройка в Web.config? Я облазил исходники на GitHub, но пока решения не нашёл, плохо искал видимо.
Так-то я разобрался, как обойти такое поведение под Apache, но хотелось бы найти решение именно в рамках xsp.
Сначала найди себе пидора, у которого ты сможешь отсосать. После этого я стал сеньёром-шарпистом, рекомендую!
http://pastebin.ru/9CyFXb8L
Многопользовательская работа с одним файлом базы данных с разных компьютеров — не поддерживается в связи с техническими сложностями. Однако доступ из разных процессов на одном компьютере вполне возможен и является штатным.
Так что прошу подсказать удобную БД для хранения небольшого кол-ва данных с поддержкой нескольких пользователей. На время разработки ануса БД будет висеть на локальном офисном ПК, так что хорошо бы что-нибудь лёгкое. Спасиб.
SQLCEкун выше
sqlite
>Правильно ли я делаю
Работает так, как надо? Значит правильно или, лучше сказать, адекватно. Соответствует ли это промышленным стандартам? Нет, не соответствует.
Работает, может думал совет какой дашь. Мне пока и так сойдёт, просто если я совсем неправильно делаю, то тыкни носом или пример какой-нибудь приведи.
>Bart De Smet - C# 5.0 Unleashed
Какая же интересная книга, жалко, что мой ангельский на уровне color is blue, и слова comprehend, assembly вызывают у меня лютейший бугурт и диссонанс.
Пошел учить обрезанную версию, а именно
>C# 6.0 in a Nutshell, Joseph Albahari, Ben Albahari
(((
Firebird.
Ну, недостаток твоего подхода в том, что чем сильнее у тебя разрастется кодовая база, тем сложнее тебе будет ее поддерживать. У тебя в кодбихайнде переплетен гуй, бизнес логика и доступ к базе. Это быстро выльется в большую кучу нечитаемого сложного кода. Для маленьких программ — ок, подъемно. В случае же больших программ, ты утонешь в говне и придется все переписывать, пользуясь архитектурными методологиями.
Сделай статический класс, в нём и храни. Как варинат, можно в Settings это хранить, чтобы лишний класс не создавать.
У меня выводится список полей ввода в виде таблицы, каждая клетка таблицы поле ввода.
В каждой строке можно отредактировать поля одного объекта
Потом внизу кнопочка сейв должна быть чтобы все это запостить на контроллер.
Или может как можно через AJAX и JS чтобы как только фокус с поля ввода уходит сабмититить асинхронно в бд.
Лучше наверное первый вариант.
Спасибо.
Форма — это, по-сути, набор пар ключ-значение. Ты можешь специальным образом обозвать ключи, чтобы они были в логической зависимости между собой. Например:
array[0].field=12
array[1].field=5
В мвс есть специальные конвенции, по которым он может мапить такие ключи в параметры.
С js ты можешь руками собрать данные с формы и асинхронно отправить пост запрос, сериализовав данные в json. Разница лишь в том, что страница не будет перезагружена.
У меня тип не проебывается.
public static IComparable GetMax(IComparable s1, IComparable s2)
{
return s1.CompareTo(s2) > 0 ? s1 : s2;
}
static void Main()
{
int i = 1, j = 2;
Console.WriteLine(GetMax(i, j).GetType());
}
Вывод: System.Int32
>У меня тип не проебывается.
https://dotnetfiddle.net/9ml17w
.maxstack 8
IL_0000: nop
IL_0001: ldc.i4.s 10
IL_0003: box [mscorlib]System.Int32
IL_0008: ldc.i4.s 12
IL_000a: box [mscorlib]System.Int32
IL_000f: call class [mscorlib]System.IComparable Program::GetMax(class [mscorlib]System.IComparable,
class [mscorlib]System.IComparable)
IL_0014: call void [mscorlib]System.Console::WriteLine(object)
IL_0019: nop
IL_001a: ldc.i4.s 10
IL_001c: ldc.i4.s 12
IL_001e: call !!0 Program::GetMax2<int32>(!!0,
!!0)
IL_0023: call void [mscorlib]System.Console::WriteLine(int32)
IL_0028: nop
IL_0029: ret
Тебе твой сениор-помидор не сказал чтоль в чем проблема, когда рефакторить отправил? Он аутист чтоль?
Нет.
Теперь солидным человеком стал. Паттерны, синглтоны — все как у людей.
Но ведь серверы не работают на винде, серверы работают на юниксах:
http://w3techs.com/technologies/overview/operating_system/all
Нахуй тогда asp.net нужен? И нахуй вообще .net нужен? Десктоп под вин писать? Или библиотеки, которые нигде кроме дотнета не работают?
Почему ms не сделают .net мультиплатформой? Это такой хитрый план, чтобы избежать популярности и востребованности?
Майкрософт поставляет винду в корпоративный сектор. Ты когда-нибудь видел, чтобы офис из 1к чел. сидел на линуксе? Нет? То-то и оно. Там же и сервера на вине стоят.
https://ru.wikipedia.org/wiki/.NET_Framework
>полноценная реализация платформы присутствует лишь для Windows. Частично подобная труднопереносимость компенсируется разработкой нескольких версий платформы для мобильных устройств, а также урезанными версиями .NET Framework для других операционных систем. Однако, несмотря на близость стандартов, принятых при разработке этих версий, конечные реализации полной совместимостью не обладают[18].
Окей, спасибо за информацию.
Да, слышал. В Росреестрах например используется RedHat. Винду в bigdata никто не возьмет
Не знаю, что ты хотел сказать, но соотношение ОС среди топовых сайтов и среди бичевских сайтов примерно одинаковое. Перевес в пользу винды минимальный и несущественный.
http://w3techs.com/technologies/market/operating_system
csc.exe
Уже три часа сижу, не могу сообразить что не так.
Перепост:
на событии онклик по кнопке которая находится в ячейке таблицы
происходит асинхронный пост запрос
<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;
});
});
});
Уже три часа сижу, не могу сообразить что не так.
Перепост:
на событии онклик по кнопке которая находится в ячейке таблицы
происходит асинхронный пост запрос
<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;
});
});
});
Бекенд АСП НЕТ и в js треде все молчат, а я уже замучился
>>587557
Спасибо большое.
Я думал что this автоматически присваивает того кто вызвал ивент
Оно так и есть получается, но я пытался его вызвать с другой функции
Поэтому и инфы нигде не мог найти потому что это очевидно
А почему второй вариант вообще не срабатывал? Мне казалось что оно должно вызваться при любом нажатии на button.
Что-то вроде такого
$(document).ready(function() {
$("button").on("click", function () {
});
});
Второй вариант должен работать. Посмотри под дебаггером что селектор возвращает. Может у тебя кнопки асинхронно грузятся после загрузки страницы и там пустая коллекция. Хуй знает.
Хммм
Нашел вот такой пример https://jsfiddle.net/PzSYM/
Но ничего не происходит в Файрфоксе, открыл через эклпрорер все работает нормально.
Что-то в лисе блочит js код в таком виде.
И в экплорере такое сообщение выдает, если его не прожать то js код не будет выполняться также как в лисе.
Блин, у меня оказывается в проекте стояла версия жеквери 1.1
Но все равно обычные функции не работают
$(document).ready(function() {
$(document).on("click", "button", function () {
\t\t \talert("123");
});
});
В jsfiddle все ок https://jsfiddle.net/3cyqrL17/7/
Создал новый проект MVC
Поставил нюгетом новую версию жеквери вместо установленной 1.1
Проверил бандл, все в порядке
Создал вот такой вот скрипт внизу дефолтной страницы
<script>
$(document).ready(function () { alert("123"); });
</script>
И нихуя.
https://stackoverflow.com/questions/13327008/document-ready-doesnt-work-under-mvc4-project
Лол, я додумался загуглить asp net mvc document ready doesn't work
Ну наконец-то.
Тебе дебаггер разве не говорил, что $ is not defined или ready is not a function?
Не заметил. В файрбаге столько окон, когда в первый раз включаешь не знаешь где что смотреть и на что обращать внимание
С EF никогда не работал до этого, убил весь день на гугление, кое-как сгенерил модель из базы, но теперь не могу создать датасорс и привязать его к гриду.
Вернее, могу, но он связи никак не обрабатывает. При этом на диаграмме все связи видно, в классах создаются какие-то виртуальные поля для них. Но как их в грид засунуть хуй его знает.
Ссылки в шапке не пробовал проверить? Там про 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 должно быть все равно на это свойство(вспомогательное для отображения на вью) потому что в бд его нету.
Ты небось туда и Required прицепил? Выбери что-то одно.
Ты проверь, может там какие пакеты с нугета тянулись с темплейтом. А так, 15 студия, например, баганутая немного. У меня она иногда во время работы намертво подвисает и приходится процесс убивать.
[CODE] SqlConnection connection = new SqlConnection("Server = 127.0.0.1,3306;");
[/CODE]
Как не менял эту строку все равно получаю ошибку: Неустранимая ошибка подключения. Состояние ошибки: 18.
Гуглил, нихуя по этому поводу не нашел. Чо делать? Алсо, мои знания о погроммировании чуть выше нуля, так что сильно не бейте.
https://www.connectionstrings.com/mysql-connector-net-mysqlconnection/
Алсо, что за запятая? Если это порт, то он через двоеточие должен идти.
Начнём с того, что номер порта после двоеточия пишется, а не после запятой. Алсо, ознакомься хотя бы с образцами строк подключения:
https://www.connectionstrings.com/sql-server-2012/
Изучай:
https://msdn.microsoft.com/ru-ru/data/ee712907
Тут всё доходчиво объяснено с примерами. Если у тебя MSSQL Server, тогда вообще халява, можно всю хуйню мышкой накодить и это будет работать.
В случае с другими серверами, скорее всего, могут потребоваться костыли либо придётся изначально Code First использовать. Что, однако, неплохо, т.к. будешь точно знать кто, с кем и когда связан.
>>588287
Я все это уже видел. Если писать через двоеточие то вообще не коннектится:
[CODE]При установлении соединения с SQL Server произошла ошибка, связанная с сетью или с определенным экземпляром. Сервер не найден или недоступен. Убедитесь, что имя экземпляра указано правильно и что на SQL Server разрешены удаленные соединения. (provider: TCP Provider, error: 0 - Этот хост неизвестен.)[/CODE]
Юзер айди, пароли и прочее погоды не меняют. Вот кусок кода:
http://pastebin.com/bGDBDaQd
>редактирования таблиц MySQL
>на SQL Server разрешены удаленные соединения
>MySQL
>SQL Server
Ну, ты понял, да?
Что не так? Объясни для дебила. Удаленка тоже будет, это пока база на локальном компе.
Мне кажется, что ты пытаешься провайдером от сиквел сервера подключится к мускулу. Я никогда не работал с мускулом на дотнете, но что-то мне подсказывает, что для этого нужен специальный провайдер.
Ты пытаешься подключиться к MySQL, используя класс для коннекта с MSSQL.
Добавь через NuGet пакет MySQL ADO.NET Provider, потом следуй мануалу:
https://dev.mysql.com/doc/connector-net/en/connector-net-programming-connecting-open.html
Когда хочешь перейти на какой-либо работника, чтобы отредактировать его данные, во вьюбэге вью для редактирования передается UrlReferer предыдущей страницы. На этот URL происходит перенаправление при сабмите формы чтобы вернуться назад на ту же страницу таблице с установленной той же компанией в дропдаунлисте.
Проблема в том что при изменении дропдаунлиста после ajax запроса url в адрессной строке не меняется.
Если поменять дропдаунлист, нажать на работника и отредактировать его данные потом вернуться назад, то переход будет не на последнее место, а на то которое было до изменение дропдаунлиста.
Можно во вьюбэг передавать вместо ссылки с реферера, обратную ссылку, которая создается после каждого запроса с помощью значений параметров текущей страницы и компании. Но может можно как-то по-другому?
Ты прости, мне по теме сказать нечего, но, прочём первую половину твоего поста, чуть не блеванул от осознания хуевости всех этих вещей. Серьезно, представляю, как ты с этим говном работаешь, и хуево становится. Просто, блядь, не могу выразить, насколько в моих глазах эта хуйня сосёт по сравнению с прикладным программированием.
Ничего личного, никого говном не считаю, равно как и себя чем-то хорошим, просто поток мыслей.
Та без проблем, меня уже подташнивает от этого, лол.
Какой из двух методов сортировки более оптимизированный/быстрый/грамотный?
Ответ аргументируйте
http://pastebin.com/Yd5JmSDM
эскобар.жпг
Вы там первокурсники совсем охуели чтоль? Иди перечитай лекцию по оценке вычислительной сложности алгоритмов. Потом напишешь тут свой ответ с аргументами.
А разве пост запрос так же нельзя подделать, впихнув туда нужные айдишники?
Может можно как-то через гет запрос передавать параметры, но ограничив их к конкретному пользователю.
Вот пример ?SID=7079712314252&From=Emp&EmployeeId=806424783
Если зайти под другим SID и вбить тот же EmployeeId оно же не разрешит такой переход.
Такой подход используется, когда куки на клиенте отключены. Чревато тем, что твой сид и ид могут подсмотреть и от твоего имени натворить хуйни.
Сид в куках уже не так просто узнать, но можно подделать форму и обманом заставить пользователя запостить хуйню. От этого защищаются путем добавления в форму и куки специального токена, который после поста сравнивается на сервере.
Я не знаю чем тебе не угодили пост запросы, но гет с сидом — это не очень. По крайней мере потому, что вид урла портит сильно.
Мне нужно что в командной строке были параметры, но при этом пользователи не видели чужую информацию, просто введя другие айдишники в параметры адрессной строки наугад. Если кто скинет ссылку на ?From=Emp&EmployeeId=806424783 то пользователь который авторизирован(та же группа) с теми же правами, но должен видеть только своих работников не мог перейти по ней.
SID может и в куки храниться
Эм. Делай авторизацию нормально. Аутентифицируешь пользователя и суешь его EmployeeId в сессию. Потом, когда пользователь зайдет на страницу /ShowMyEmployees, достаешь EmployeeId из сессии, отправляешь в базу запрос на получение подчиненных данного работника и выводишь этот список на экран. Таким образом у тебя для каждого работника будет свой личный список подчиненных, не доступный другим. Зачем передавать EmployeeId через урл?
Ну вот, потом ты хочешь зайти на страницу работника чтобы отредактировать его данные. Форма для редактирования получается через гет запрос урл будет в виде Edit?Id=22
Любой с подобными полномочиями может вбить Edit?Id=22 и редактировать данные несвоих работников
>Такой подход используется, когда куки на клиенте отключены. Чревато тем, что твой сид и ид могут подсмотреть и от твоего имени натворить хуйни.
Тут поможет https. Ещё без кук можно идентифицировать пользователей по фингерпринту (некоторая первоначальная авторизация всё равно нужна). Но это пиздец гиммор и очень высока вероятность совпадения. Короче, у кого куки отключены - тех сразу нахуй. Куки воруются в основном только через XSS или злобным трояном, поэтому считаются относительно безопасными хранилищем данных сессии.
>От этого защищаются путем добавления в форму и куки специального токена
Это тоже позволяет подделывать запросы. Правда, размах уже не тот, ну и подделка требует некоторых мозговых усилий.
Делаешь еще одну страницу /EditEmployee/{id}. Пользователь заходит на нее, ты достаешь его EmployeeId из сессии, достаешь {id} из урл и оправляешь в базу запрос на проверку наличия {id} в подчиненных EmployeeId. Если такой имеется, то позволяешь редактировать. Если нет, то посылаешь нахуй с редиректом. Проверку надо будет делать каждый раз при получении запроса на данный ресурс от пользователя.
О, вот это я и хотел узнать, спасибо.
Асло, {id} можно шифровать, если есть паранойя по поводу подделки запросов и утечки куки.
метод сортировки был взят для примера. в циклах может быть что угодно. интересно знать, что быстрее/меньше кушает: while или for
На сиплюсплюс наверное
Да никакой разницы. С моей точки зрения, относительно полезных операций в цикле, накладные расходы на организацию цикла не имеют значения: там за наносекунды все происходит. Нашел о чем спрашивать в дотнет треде, где все пользуются итераторами. Ты бы еще спросил, какова вероятность того, что биты в регистрах от наводок флипаться начнут, посылая по пизде твой цикл.
Qt
> Первый линейно отработает на отсортированном массиве.
big O используется же для худшего случая, нет?
Ну в папке есть, а в PATH отсутствует. Добавь в PATH эту папку глобально и забудь
Лол, напомнил мне как я такое же дополнение к бабл сорт придумал на уроке информатики и втирал уччителю про мой гениальный алгоритм сортировки.
Нет, но суть не в этом. Суть в том, что нормальный баблсорт может определить, когда массив отсортирован.
Я немного запутался в такой вещи как Socket
1) Во первых, поясни, что за магия реализуется в NetworkStream и КАКИМ ОБРАЗОМ NetworkStream.Read понимает когда пришло время возвращать -1 ? Где бы прочитать поподробнее об этом.
2)
Вот я делаю.
>offset=0;
>count=1024;
>_socket.Receive (buffer, offset, count, SocketFlags.None);
Что если в внутреннем буфере сокета данных имеется меньше count. Что произойдет?
Receive завершится и мне вернет фактическое количество принятых байтов?
Или функция будет ожидать пока не придет еще данных или пока не истечет тайм аут?
А кто его знает?
А ты знаешь?
Потестил - на рандомном массиве одинаковое время.
thanks
static int Bench1()
{
int y = 0;
int sum = 0;
while (y < 12) {
sum += y;
y++;
}
return sum;
}
static int Bench2() {
int sum = 0;
for (int y = 0; y < 12; y++) {
sum += y;
}
return sum;
}
Такой код, например, одинаковый IL сгенерит, так что разницы нет.
А у меня почему-то геттер и еще ругается что null в свойстве. Понятное дело что null будет в таком случае
>Где бы прочитать поподробнее об этом.
В гуголе, наверно.
>Что если в внутреннем буфере сокета данных имеется меньше 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.
private string postName;
public string PostName
{
get { return postName ?? (postName = Post.Name); }
set { postName = value; }
}
Тоже самое.
Когда сабмичю форму говорит что nullRefetence, оно так и должно быть, но первым же должен был выполниться сет, тогда бы такой ошибка не было.
В смысле смотри почему там нал и решай проблему, а не полагайся на незадокументированное поведение.
Это я знаю, там налл и должен быть.
Но этот ноллрефернц возникает после постзапроса.
При пост запросе по идее первым делом должен выполниться сеттер, тогда бы такой ошибки не было и нулл в . Но почему-то наоборот.
Переделал в авто гетсеттер
И присвоение свойству сделал через цикл обычный в контроллере
foreach (var staff in list)
{
staff.PostName = staff.Post.Name;
}
Но я думал так лучше будет, но оно почему-то не пашет.
Добра тебе анон.
Кое что понял.
Написал тут пару тестовых приложений.
Действительно, блокирует навечно. Если только не задать свойство ReceiveTimeout. Оно я так понимаю в миллисекундах собственно определяет когда можно считать соединение потерянным.
Просидел с этой проблемой пару часов, думая что валидация отлетела, лол.
Открыл пустую форму для создания и она внезапно ожила.
Может у тебя jQuery старый/забагованный? Или ты сам его допиливал под свои нужды? Там по идее валидации всё равно на начальные значения формы, проверка ведь только по факту сабмита идёт.
Жеквери самый последний через нюгет обновил. Может в этом проблема?
Там изначально поменьше версия стояла и кажется валидация работала в такой ситуации.
А валидация только на пустой форме работает. Если что-то было в поле, стираешь все и сабмитишь, только валидация на стороне сервера срабатывает.
>Жеквери самый последний через нюгет обновил. Может в этом проблема?
Вполне может быть, лол.
Посмотри дебаггер в браузере, вдруг ошибки какие-то появились. По-хорошему, нужно ещё пройтись дебаггером по JS-коду, может там хэндлер валидации кривой или ещё что-то.
Сука, как же я ненавижу JS. Сам с этим днищем регулярно подвисаю при разработке.
Как тебе больше нравится, так и делай. Но потом все же стоит свериться с книжкой, чтобы пробелов не было.
Штука просто в том, что у каждого свой подход к обучению: кому-то книжки с теорией нравится читать, кому-то видосики смотреть. Я вообще шарп изучал методом тыка в универе, чтобы делфями мозги сильно не ебать, и только перед тем как на работку устроиться книжки по нему прочитал.
Вроде понял в чем причина но как исправить
Я скопипастил вот такую вот штуку для того чтобы дата вводилась в нужном формате дата
$(document).ready(function () {
$.validator.methods.date = function (value, element) {
return this.optional(element) || parseDate(value, "dd.MM.yyyy") !== null;
};
});
Если убрать ее, то js валидация при редактировании срабатывает, но тогда всегда будет выводить ошибку что дата в непарвильном формате, потому что такой формат нестандартный для жеквери
В пустой форме срабатывала js валидация потому что форма с датой пустая и не реквайрд
Как то нужно чтобы это вместе работало.
Вот это решение работает https://stackoverflow.com/questions/793459/how-to-set-decimal-separators-in-asp-net-mvc-controllers/5117441#5117441 , но оно сбрасывает валидацию по типу. Если вбить просто строку то эксепшон вылетит.
Еще всюду предлагают регулар экспрешон аннотацию, но проверка запятая или точка происходят до того как происходит проверка регулярэкспрешоном.
И как переопределить текст ошибки "is not Valid" когда неправильный тип вводишь вместо числа строку
Вот это уже не работает на мвс 5
https://stackoverflow.com/questions/6214066/how-to-change-default-validation-error-message-in-asp-net-mvc
Да как хочешь. Можно очень хорошо познать язык, не прочитав ни единого учебника. Я лично считаю, что книжки не нужны, ибо пустая трата времени и денег. В MSDN есть всё.
>>590191
Посмотри здесь, вроде как раз твой вопрос решён:
http://stackoverflow.com/questions/24380305/validate-date-in-dd-mm-yyyy-format-using-jquery-validate
Я просто никогда не сталкивался с датой в jQuery, поэтому не могу точнее подсказать.
Алсо, есть элемент для выбора даты в Bootstrap. Он должен работать с валидацией jQuery из коробки:
https://www.nuget.org/packages/Bootstrap.v3.Datetimepicker/
Возможно, он тебя избавит от ебли с форматами даты.
>>590265
>но оно сбрасывает валидацию по типу
Это как?
Может, глобализацию в jQuery добавить нужно?
http://stackoverflow.com/questions/24188215/aspnet-mvc-4-validating-decimal-numbers
Алсо, как вариант, сделай модель-прокси, где нужные свойства будут string, тогда ты сможешь реализовать любые изыски при валидации. Хоть с регэксами, хоть без них. А потом просто зальёшь полученные данные в конечную модель. И никакой возни со сраной глобализацией.
Хочу затестить сайтик на MVC 6, но проблема в том, что у меня дохерище других виртуальных хостов на серваке, поэтому просто запустить Кестрел с сайтом - не вариант. Нужно, чтобы это всё работало в рамках одного веб-сервера (Apache). Mod_mono по понятным причинам пока не понимает vNext.
Единственный вариант на сегодняшний день - это организовать прокси под Апачем:
http://stackoverflow.com/questions/28631862/vnext-on-apache-webserver
Всё правильно понимаю?
> Это как?
Когда этой штуки не было я мог вбить дробное число только в формате через запятую, если вбиваешь строку вместо числа или дробное с точкой выводит "asasdasd" is not Valid for property Salary
Если эту штуку подключаешь то принимает и формат с точкой, и строку и вообще все.
Только когда строку вводишь выбивает эксепшон на странице.
> Возможно, он тебя избавит от ебли с форматами даты.
Сделал проще.
Поменял культуру в веб конфиге на российскую. И ввод даты на формат dd/MM/yyyy. MVC почему-то этот формат считает стандартным для такой культуры. А у меня до этого было через точку dd.MM.yyyy . В принципе не важно через точку или нет, дата все равно через дейт пикер выбирается.
Я поторопился. Оно почему-то выводит в формате с точкой, если данные там уже есть. То есть ты жмешь сабмит ничего не меняя, выводится пикрелейтед. Чтобы прнияло нужно дейтпикером еще раз выбрать ту же дату тогда оно поменяет точки на слэши.
Жеквери и сервер уже занют что должно через слыши должно быть, но по умолчанию выводит через точки
Хоть в EditorTemplates прописан нужный формат, не понимаю.
@model DateTime?
@Html.TextBoxFor(model => Model,
"{0:dd/MM/yyyy}",
new { @class = "form-control jqueryui-marker-datepicker" })
Решил такую штуку внутри объекта сделать, но внутри и так дата через слэши присвоена. Но снаружи оно превращается в точки и изменить его вручную не получается.
Лол. И на что ты надеялся? То, что ты видишь под дебаггером — это результат вызова ToString().
Создай темлейты (display и edit) для DateTime, которые будут выводить дату в нужном формате, ModelBinder напиши, который будет парсить дату, и перенастрой свой дейтпикер. Для валидации на клиенте придется дальше курить тему с jquery, которую ты уже начинал ($.validator). Если что-то не работает, значит ты где-то накосячил: гугли, дебаж и переписывай.
> То, что ты видишь под дебаггером — это результат вызова ToString().
Я и а прайват Datetime переменной проверял там тоже через слэши, не тот скриншот вставил.
> оздай темлейты (display и edit) для DateTime, которые будут выводить дату в нужном формат
Есть же вот >>590774 но оно только классы добавляет к текстбоксу который через EditorFor рендерится.
> ля валидации на клиенте придется дальше курить тему с jquery, которую ты уже начинал ($.validator). Если что-то не работает, значит ты где-то накосячил: гугли, дебаж и переписывай.
Я вычитал что там нужно всю валидацию прописывать.
То есть что-то одно выбираешь или asp.net mvc за тебя js валидацию пилит или ты все-все ручками прописываешь ко всем полям. Одновременно нельзя.
Вот поэтому когда у меня включается вот эта валидация >>590191 , мвс считает что я реализовываю всю валидацию вручную и дефолтная валидация на остальные поля перестает работать.
>Есть же вот >>590774
Но ты говоришь, что у тебя выводится не тот формат, значит вот это вот не работает. Пиши свой темплейт.
http://rachelappel.com/create-user-friendly-date-fields-with-asp.net-mvc-editortemplates-amp-jqueryui
>Я вычитал что там нужно всю валидацию прописывать.
Когда я последний раз использовал mvc и писал костыль для работы с датами, то нет, не нужно было. Правда у меня jq 1.11 был.
проиграл
Но выделять память можно, а дефайн низя((
CoTaskMemAlloc же
Прекрасные инструменты для профилирования прямо в реалтайме
Попробуй экспортировать из 2013 студии и импортировать в пятнадцатой, должно получиться.
Чем они мешали? И как мне запилить константу типа pi на весь проект? Или сделать битовые флаги?
Макросы не нужны. Константы можешь делать через статические классы, а битовые флаги через enum.
Добра. Спасибо за ответы на мои туповатые вопросы
https://msdn.microsoft.com/en-us/library/system.math.pi(v=vs.110).aspx
Битовые флаги - это вообще не туда. Язык разрабатывался для интырпрайз макак, которым дай свободу - они будут сдвигать влево отрицательные числа вместе с знаком. А для банковского по норм.
если на впфе не пишешь, то толку от 15 немного. Ну тока на последние плюшки языка посмотреть
Открыл страницу в эксплорере с дропдаунлистом, дропдаунлист внезапно начал открываться вверх, для всех значений кроме первого.
Хотелось бы выучить язык программирования для дальнейшего использования.
Из опыта только школьный паскаль.
Стоит ли остановиться на сишарпе?
Насколько он релевантен?
Ну, он довольно популярен в интерпрайзе для написание автоматизированных систем с веб-приложениями и сервисами. Он довольно прост в изучении и здорово снижает затраты на разработку программного обеспечения. Помимо прочего, им занимается майкрософт. Но вопрос тут скорее в том, чем ты сам хочешь заниматься?
Вообще сишарп был выбран, ибо скрипты в юнити написаны на нем.
Чем - это хороший вопрос. Хрен знает, если честно
А можно небольшую справку по тому, для чего какой из популярных языков годится?
>Существует множество различных платформ и языков программирования, однако среди них нет более элитного, чем C#.
Кекнул чутка, а вообще зачем используется шарп? Ну вот сишка - драйвера там всякие, операционки, кресты - те же операционки и прочий софт, остальная шелупонь - для всяких сайтиков, мобильных устройств или просто от слабоумия. Так зачем нужна решетка?
Swype даун, swype.
Так-то они много на что еще годятся, но я думаю, что это их основное применение:
php — веб разработка.
c++ — системный и прикладной софт, гейдев.
с — системный софт.
java, c# — корпоративный софт, выше уже писал.
python — скрипты автоматизации, веб разработка.
swift, obj-c — прикладной софт для яблока.
Пользовался стэковерфлоу?
Так вот, он написан на шарпе, можешь им теперь не пользоваться раз сишарп нинужен.
Спасибо, приятель
Можно подумать, что его не могли бы написать на чем-то другом. Его можно было бы и на си написать, если на то пошло.
Silverlight. Вывод графики придется перписывать с Windows.Forms.
То, как файлы расположены на диске, не имеет значения. Имеет значение только неймспейс, в котором определен класс. Впрочем, то, что using MyNamespace.MyFolder не работает, а MyNamespace.MyFolder.MyClass работает, действительно странно. У тебя там конфликтов с неймспейсами нет случайно?
Нету, решарпер просто юзинг подсвечивает как лишний и что его можно удалить
Когда все файлы были в одной общей папке Models юзинг использовался как нужно.
Ааа, не, я папки как классы назвал который подключаю юзингом, теперь понятно.
Я попробовал так присвоить, удалюю через Remove правило из ModelState чтобы проврерка IsValid выдала true, но тогда EF не пускает, хоть значение там присвоено он выдает ValidationError как будто значения там нету.
Отворачиваюсь на секунду и получаю Unhandled Exception: System.OverflowException: Number overflow в лицо. Как исправить-то? Там по идее 4 знака в целой части и хуй знает сколько после точки, но они мне в хуй не уперлись, мне бы только целую часть дернуть.
Посоветуйте что-нибудь почитать для изучения C#?
Посмотрел Изучаем С# 3-е издание. Меня там сразу игори отправляют писать. А учиться-то где?
Посмотрел C# in a nutshell. Сразу очень трудно вникнуть, ибо я не в курсе основ. Да и так-то это же справочник, и практических знаний я там не найду.
Может быть у меня неправильное отношение к делу?
Ну int16 - это шорт инт по идее, т.е. до 65535 включительно.
Попробуй еще Шилдта или Троелсена или видосики в шапке. Если не пойдет, то юзай туториалы с гугола.
http://www.amazon.com/Pro-NET-Framework-Experts-Voice/dp/1430242337
http://www.amazon.com/4-0-Complete-Reference-Herbert-Schildt/dp/007174116X/
Хочу и печатаю. Тебе жалко что ли?
А теперь помогло, лол. Я просто конвертил как Convert.ToInt16(Math.Truncate(Double)); и там не работало.
>Что почитать:
Так что почитать? Чтобы не очень сложно, но и без "зажмите левую кнопку и перетащите лейбл на форму".
Тебе в самом деле так сложно скачать эти книги и самому посмотреть, какая тебе больше подойдет?
FileStream file1 = new FileStream("c:\\Users\\Admin\\Desktop", FileMode.CreateNew);
выдает, что нет доступа.
Как этот доступ, собсна, предоставить?
Я сделал вот так прописав каждому текстбоксу атрибут onchange в котором делатется сабмит формы. На нужный акшон данные попадают, все в базе сохраняется, но потом страница редиректится на этот акшон отображая только паршиал вью вместо того чтобы остаться на той же страницы просто сделав замену в диве новым patialView
https://ideone.com/JjKpop
Считывай побайтово, хуле.
Посоны, а Шарп востребованный язык? Он заменит кресты?
Нет. Нет.
Да.
Есть, т.к. некоторые вещи не работают в Mono. Более того, определённые классы даже не планируются к реализации, потому что неприменимы на линуксе.
Ознакомься с этим:
http://www.mono-project.com/docs/about-mono/compatibility/
http://go-mono.com/status/
Алсо гуй лучше писать на Gtk#.
А еще, наконец, завезли REPL, прямо в студию, со автодополнением и всем таким, удобно. Лучше поздно, чем никогда.
Одновременно и .NET 4.6.1 вышел, там нихуя интересного нет, но пишут, что много ошибок в RuyJIT исправили, да и над перфомансом заодно поработали.
https://github.com/Microsoft/dotnet/blob/master/docs/releases/net461/dotnet461-changes.md
Главное, что ничего не сломалось при обновлении, как это часто бывает, все дополнения на месте, настройки сохранились (разве что хардварное ускорение мне само включило), и с остальным вроде все нормально.
)))00))0
> Нужно чтобы ajax пост запросом выполнялось сохранение данных в таблице по изменению текстбокса.
> Я сделал вот так прописав каждому текстбоксу атрибут onchange в котором делатется сабмит формы. На нужный акшон данные попадают, все в базе сохраняется, но потом страница редиректится на этот акшон отображая только паршиал вью вместо того чтобы остаться на той же страницы просто сделав замену в диве новым patialView
По идее, после ajax сабмита должно обновиться с заменой только UpdateTargetId который был прописан для div, а вместо этого происходит редирект на Post Action, в данном случае Edit.
Излагать свои мысли тебя должны были научить в школе.
Хуй знает чому так. Пакеты все стоят? Например:
https://www.nuget.org/packages/Microsoft.jQuery.Unobtrusive.Ajax/
Тогда не знаю. Создай дополнительно рабочую асинхронную форму с минимальными изощрениями и попробуй найти разницу.
Ну я попробовал.
Сначала сделал с явной кнопкой сабмит все ок работает.
Потом попробовал скрипт в главном вью прописать
<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 не может в одинарные кавычки
Ну я попробовал.
Сначала сделал с явной кнопкой сабмит все ок работает.
Потом попробовал скрипт в главном вью прописать
<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 не может в одинарные кавычки
> <input id="Name" name="Name" onchange="return $(this).closest('form').submit();" type="text" value="TheName" />
Не то скопировал вот как отображается
<input id="Name" name="Name" onchange="return $(this).closest('form').submit();" type="text" value="TheName" />
Лол. Заменяет символ автоматически на кавычки, кароче вот скриншот
Может оно его и заменяет, но событие онченж не пашет если кавычки заданы в таком виде
Если явно прописывать, без хелпера, то кавычки в разметке нормально отображаются
private List<Task<List<BailiffRequestedPerson>>> StartInitialParsedTasks(Getter getter, DateTime lastGetedObjectTime, string baliffRequestLink, ref int currentParsedPage)
Как считаете норм функция или что то пошло не так?
def lensgT[F[+_], A, B](set: A => F[B => A], get: A => F)(implicit M: Bind[F]): LensT[F, A, B]
Норм.
Как считаете норм метод, или что то пошло не так?
private List<Task<List<BailiffRequestedPerson>>> StartInitialParsedTasks(Getter getter, DateTime lastGetedObjectTime, string baliffRequestLink)
private Task<List<BailiffRequestedPerson>> AddNewParseTask(Getter getter, string baliffRequestLink, DateTime lastReceivedObjectTime)
selffix
Verschwaftmanshaftgebrauchsanweisung
Так baliff или bailiff, определись
Received слова не слышал? А get вообще неправильный глагол, gotten тогда уж лол. Но по смыслу не совсем то
Меня вложенности смущают, но я доверяю мнению профессионалов!
А по Entity Framework поясните
http://pastebin.com/kuNtymWk
почему это место долго выполняется и начинает жрать память как не в себя?
База локальная, на stackoverflow пишут что это преобразуется в один мегазапрос как?
Что за хуйня у меня происходит с дублированием записей?
При SaveChanges() он зачем-то создает дубль в таблице PatientType, которая у меня биндится к комбобоксу:
http://pastebin.com/qLvENLyM
Что не так в моем коде и как исправить?
Инбифо: почему названия сущностей капсом - это firebird + database first
Аноны, язык еще останется популярен? Ну, в течении долгого времени в россии по вакансиям?
Стоит ли изучать его в качестве первого?
А как я по гуглению вакансий узнаю, стоит ли сишарп изучать в качестве первого языка и сколько на него еще будут популярны вакансии?
Ты - никак.
Пиздец это неочевидная хуйня, а я уже подумал что текстбокс хелпер кэширует значения.
>построить граф на windows форме?
Я рисовал на форме через гди. Интерактивность была нинужна, поэтому просто картинка по файлу и расчет.
Но при желании можно было наколбасить своих контролов узлов/связей и запилить любой уровень интерактивности.
В рашке топ1 язык сейчас и будет топ1 языком еще лет 50. Потому что отсталая страна и люди отсталые.
Программисты слишком ЧСВшные, чтобы использовать простые и эффективные языке вроде php. Работодатели тоже слишком ЧСВшные.
Удивляюсь, почему у нас Хаскель не прижился.
В цивилизованном мире на asp.net никто не пишет года с 2008, да и раньше не особо писали. Сервер на винде - это зашквар по определению.
>стоит ли сишарп изучать в качестве первого языка
Не стоит ничего изучать в качестве первого языка. В поиска работы тред зайди и поинтересуйся, как у ребят дела.
Тебе 5 лет самостоятельно учить миллион технологий и фреймворков придется, чтобы хотя бы на стажера претендовать. И там таких типа тебя будет конкурс из 50 человек.
И платят этим людям столько же, сколько сторожу в супермаркете.
Не просто остается, а продолжает набирать популярность.
>финансирование есть
>прошу написать хорошей литературы
С такими реквестами лучше в soyuz-pisatelei.ru/forum иди.
>Тебе 5 лет самостоятельно учить миллион технологий и фреймворков придется, чтобы хотя бы на стажера претендовать.
Кек, примеры из реальности говорят об обратном.
mirknig.com -> Программирование
Так вот, суть проблемы: я никак не могу разобраться, как на PictureBox(или на саму форму, хуй его знает), залить несколько картинок(циферблат и 3 стрелки), и сделать так, чтобы они поворачивались на определенный угол, причем не вокруг своей оси, а вокруг определенной точки. Ну и главное - как сделать так, чтобы их можно было вращать мышкой вокруг этой же точки, без возможности перетаскивания в другое место? С меня тонны нефти.
Так не в вычислениях проблема, все формулы я уже нашел. Проблема именно в работе с формой и расположением элементов на ней. Я немного плаваю в синтаксисе #.
Гугли что-то вроде «gdi+ image transformation».
http://stackoverflow.com/questions/2056105/multiple-ordered-translate-scale-transforms-in-gdi
Вращение ручками придется пилить тоже ручками. Там, на самом деле, логика не особо сложная.
Кто может поделиться материалами к урокам itvdn? Нужны презентации с конспектами и домашними заданиями.
В той большой раздаче из шапки вроде все это есть
public void Test()
{
TextBlock.Text = "Хуй";
}
Девелоперы, а кто в конторах администрированием и настройкой сервера занимается? Что-то я серверные стэки (Linux+Apache+MySql, IIS+MSSqlServer) повбивал в хэдхантер и не нашел нихуя вакансий админа. Зато на каждой первой asp/java бэкенд вакансии требуется все вышеперечисленное. Кто все-таки эту работу делает? Неужели бэкенд девелоперы? Мне учиться настраивать IIS или нет?
>>594680
Привет. Полгода учусь по книжкам и интернету, бюджет 0 рублей.
Совет от всего сердца - не используй быдло-ориентед источники! (книжки, онлайн-курсы)
Это ебаная трата времени. Там на одну страницу фактической инфы будет 50 страниц воды, ненужных пояснений, ненужных деталей и ненужных примеров. И петросянских шуточек от автора-клоуна.
Читай официальные документации и официальные гайды. И исходники mscorlib, они теперь открытые. Так будет в разы быстрее. Знания будут более полными, более систематическими, более объективными (в книжках и курсах авторы часто свои субъективные домыслы и хуевые практики выдают за истину, будучи нубом сложно это быстро спалить).
>Кто все-таки эту работу делает?
Инженеры заказчика или как получится. На этапе разработки этим занимается кто-то из команды. Есть даже такое направление, как devops.
По трендам за последние 12 месяцев
- доля asp.net на серверах уменьшилась на 1%
- доля java увеличилась на 0.3%
- доля javascript увеличилась на 0.1%.
Остальные технологии своих позиций почти не изменили.
Как видишь, рынок очень инертный. Даже если тренд сохранится, asp.net будет второй по популярности платформой для разработки бэкенда (после php) еще как минимум 10 лет.
Вангую, что тренд не сохранится, а развернется. Юникс-истерия последних пяти лет - явление временное. Рано или поздно хипстерам надоест жрать говно ради показушной элитности. Фраза "Я использую Windows" снова станет легитимной. Маки, как и было задумано, станут уделом блондинок, а Линуксы - уделом красноглазых мазохистов любителей работать бесплатно.
Популярные сайты, работающие на:
php - facebook, vk, twitter, wikipedia;
java - ebay;
asp - microsoft.com.
Так это ты смотришь статистику веб-серверов открытых(в интернете). Очень много корпоративного софта тырпрайза пишется на .net и работает в сетях внутрикорпоративных, а тяжёлый тырпрайз на говнорнр не пишется, там .net или жаба. Доля дотнета в приложениях, работающих в браузере выше.
>Очень много корпоративного софта тырпрайза пишется на .net и работает в сетях внутрикорпоративных
Тут ты прав.
>тяжёлый тырпрайз на говнорнр не пишется
А чем тырпрайз от не тырпрайза отличается вообще? Фейсбук - это не тырпрайз? Даже если нет, то легким его не назовешь уж точно.
Все говорят то же, что и ты. Мол php для бложиков, серьезные сайты на жаве/дотнете. А по факту смотрю - почти все крупные популярные сайты на php работают. На джаве - единицы. На асп вообще нет (кроме сайтов майкрософта).
А фейсбук и твиттер без ООП что ли пишут? Весь функционал в одном методе с goto переходами?
Не верю. Везде ООП сейчас.
>Фейсбук
>php
Не совсем так, на сколько я понимаю. http://hacklang.org/
Почему он был изначально написан на пыхе? Популярным он был оч. для макакинга в то время, впрочем как и сейчас.
>На асп вообще нет
Например:
http://blog.stackoverflow.com/2008/09/what-was-stack-overflow-built-with/
>чем тырпрайз от не тырпрайза отличается
>Энтерпрайз - это когда все большое и мраморное. Когда для того, чтобы выключить порт на свитче, надо согласовать десять бумажек. И дорогое! И все сидят в небольшом зале с кожаными креслами в строгих костюмах с большими животиками. Только тогда это настоящий энтерпрайз. (c) ЛОР
>http://blog.stackoverflow.com/2008/09/what-was-stack-overflow-built-with/
>September 21, 2008
>>595122
Нет. Сложилось впечатление, что сейчас общепринято винду и MS считать говном, а Apple и Линуксы принято считать гениальным дарованием небес. Разве нет? В обществе прогрессивных фронтендеров выскажи точку зрения, что убунту - недоделанное говно, а вин10 охуенен - тебя просто засмеют.
>September 21, 2008
И что ты хотел этим сказать? Что его на чем-то другом переписали? Нет, все еще на дотнете.
>Не совсем так, на сколько я понимаю. >http://hacklang.org/
Сейчас в php7 тоже типизация, а производительность выше фейсбучного HHVM
Кто-то с вот этим работал? Что можете сказать?
А то я не в состоянии быстро пилить свои хелперы с моими нулевыми знаниями джаваскрипта, все время туплю на очевидных вещах.
Может быть. Мне вообще кажется, что, помимо написания корпоративного софта, на шарпе работу проблематично найти. Хотя сейчас мс вроде в сторону опенсорса и всяких линуксов движутся, может обезьянки и подтянутся. а может и нет.
Да, мне так же кажется.
Вообще айти современное - будто какая-то кастовая система из темных веков. Выбирают технологии не по объективным факторам, а по историческому наследию. Вот сложилось, что на дотнет пишется энтерпрайз - все, будем писать энтерпрайз на дотнете. Писать энтерпрайз на питоне - незаконно. Писать что-то кроме энтерпрайза на дотнете - тоже незаконно.
Языки и технологии используется не как инструмент с объективными возможностями и ограничениями, а как социальный маркер.
Уеб, что-ли? Тоже самое, что и php?
И как, с вакансиями нормально?
Не согласен, как раз технологии по объективным факторам и выбирают.
Писать энтер на питоне можно, но глупо, когда система разрастется ее сложнее развивать дальше и дебажить, а главное плюсы языка становятся его минусами.
Тоже самое и для дотнета, хотя сейчас это меняется, но все равно писать какой-нибудь скрипт по работе с текстом или парой файлов или спарсить пару страниц с инета будет дольше и чуток посложнее, чем на питоне, а в работе может оказаться и ресурсо затратнее.
>>595287
Зеленый?
Или как их правильно раскрасить в какой-то цвет? По умолчанию они белые
>А по Entity Framework поясните
Почему вставка 200 строк проходит за 10 сек, а 3000 длится уже час?
Потому что ты забыл сделать context.Configuration.AutoDetectChangesEnabled = false; ?
Нет, с ним тоже не работает
dbContext.Configuration.ValidateOnSaveEnabled = false; тоже не катит.
Я думаю там какая то особая EF Linq магия
Ты когда контекст дергаешь, достань результирующий сиквел код из iqueryable и посмотри на его план выполнения.
Решил проблему достав все запросы при помощи
dbContext.Database.Log = e => writer.WriteLine(e);
Как оказалось decreeNumPresentInDb на каждое вхождение посылает новый запрос.
И если при 200 позициях - 4000 запросов проходят быстро, то для 3000 - 3000^2 слегка тормозят.
.ToList() исправил проблему.
Логинюсь как показано на пиках.
Для неумеющих читать: в графе "About" белым по чёрному написано "besides I'm NodeJS developer".
Какую маску (регулярное выражение) нужно впердолить, чтобы преобразовать [id1|Пашко] в <a href="http://vk.com/id1">Пашко</a>
([хуй|пизда] в <a href="http://vk.com/хуй">пизда</a> и так далее)?
На вторых мыслях, ну его нахуй, уже через костыль сделал.
Пишу матмодель на шарпе.
Модель простая, но очень много циклов и рекурсии (то есть вызовов методов). Работа в основном с двоичными массивами целых чисел в диапазоне от 0 до 100.
Возникла проблема с тем, что модель обсчитывается порядка 6 часов. Она и должна долго считаться, но хотелось бы по возможности сократить это время.
Поэтому, подскажите по оптимизации.
1. Представлять данные в int или byte ?
Байты весят меньше, но насколько я понимаю, сишарп не умеет с ними работать напрямую. Поэтому приходится делать приведение в int при каждом действии. С ОЗУ проблем нет, всего около 1 ГБ используется (доступно 16 ГБ).
2. foreach или for?
3. Количество параллельных тасков ограничивать количеством ядер, или запускать больше?
4. Модель асинхронности дотнет 4.0 или олдскульные потоки? Есть разница в скорости выполнения?
5. Методы экземпляра или статик методы?
Реализовать и так и так могу. Второй вариант будет нечитаемым быдлокодом, но мне насрать на это, мне нужна скорость. Какие методы быстрее вызываются?
6. Сборщик мусора нужно где-то использовать?
Попытался собирать мусор после того, как большой кусок данных перестает использоваться - быстродействие ухудшилось буквально в несколько раз. Сборка мусора ручная секунду или две занимает, прям такой лаг конкретный. ОЗУ освобождается, но это неважно в конкретной задаче.
7. Собирать под x64 или x86 ? По уму конечно x64 нужно, спрашиваю на всякий случай, мало ли что с этим дотнетом не так.
Любым другим советам тоже буду рад.
Ютуб бесплатный видеокурс Unity 3D как создать диабло за 30 минут с нуля без знаний без опыта уроки для умственно-отсталых
Сделайте это для меня пожалуйста. Я не шарю в проге.
[code]char strArr;[/code]
Всё думаю, как это дело оптимизировать.
https://2ch.hk/pr/res/595397.html
https://2ch.hk/pr/res/595397.html
https://2ch.hk/pr/res/595397.html
Перекату уже неделя, ОП ХУЙ.
Это копия, сохраненная 18 декабря 2015 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.