Существует множество различных платформ и языков программирования, однако среди них нет более элитного, чем C#. Это поистине язык богов, сочетающий в себе простоту использования с поистине неограниченными возможностями. Знание C# - прекрасный детектор современного, умного и успешного человека. Изучение .net-platform безошибочно указывает на успешного в будущем человека. ITT собирается элита IT индустрии и обсуждает будущее этого поистине прекрасного и современного продукта компании Microsoft. Только в этом треде элитные разработчики ответят на самые острые вопросы индустрии.
>>446393 Каждый пишет по-своему, если тебе кажется, что в C# мноо семантического шума, то не пиши, лол. Тебя же никто не заставляет. С помощью .net можно реализовать 90% повседневный задач, если ты работаешь где-нибудь на аутсорсе. Хороший язык, платформа, много возможностей. Не пойму чего некоторые так агрятся. Скорее это говорит о них, чем о языке.
>>446255 Что ты уже наставил. Обычно она ставится в пару кликов. Скачать с торрентов VS 2013 Pro, поудаляю всю херню и попробуй начисто заново установить.
>>446515 Я было хотел написать, но это сложно в посте запихнуть, нужно простыню катать. Ты походу ньюфаг совсем; Это надо голосом рассказывать и показывать на примерах.
>>446535 из моих знаний это лабы в универе. сейчас пишу прошивку в микроконтрллер(для диплома) разделил программу по окнам, но по сути это просто стена текста. проболвал уроки на трубе по ооп, а там суть НУ кароче создаем отдельный класс в нем метод, потом еще чото, заправляем инкапсуляцией и наследованием. так гораздо проще и удобно.
Есть тут WPF боги? Какая-то фигня, не могу понять в чём дело. Вот этот пикрелейтед тестовый код выдаёт ошибку, а почему - не пойму Суть в чём - на форму ставится метка, и необходимо что бы при нажатии мышкой на экран контент мышки анимированно увеличивался на 1000 за 1 сек. Анимация посредством встроенной в WPF анимации. Самое смешное, что я запилил тестовое приложение, опробовал, всё работает, удалил тестовое (хули тут 5 строчек), стал встраивать в основное приложение - ошибка. Снова запилил тестовое - не работает.. Чё за х...
>>446830 Эм... при перемещении змейки делать проверку, не являются ли новые координаты за пределами поля и далее принимать решение - проигрыш, остановка или принудительный поворот змейки.
>>446386 Есть одна задача: создать БД с инфой о работниках организации (ФИО, данные, занимаемые должности и т.д.) и запилить WPF-приложение, в котором можно всё это говно просматривать/редактировать. Также нужно запилить приложение ASP.NET, работающее с этой же базой, но только в режиме чтения, без возможности изменить что-либо. Так вот, вопрос: как всё это сделать в минимальные сроки (неделя, максимум - полторы)? Опыт C#/.NET и всего вышеперечисленного практически нулевой (разве что есть небольшие познания в С++ и в ООП).
>>447025 > пилишь Data Access Layer, сажаешь на него оба приложения. Вот на этом месте я нихуя и не понял. Ещё забыл указать, что Entity Framework тоже нужно использовать.
>>447027 Ты какой-то лечтик, что ты не понел? Делаешь класс с четырьмя методами: получить список пидоров, получить пидора по ид, сохранить пидора, удалить пидора. В этих методах теребишь свой EF. Кладешь все это говно в отдельнуюю длл. Создаешь два своих клиентских приложения, пилишь еба интерфейсик, пользуешь это общую длл в обоих.
>>447030 Спасибо, кэп. Только КАК, БЛЯТЬ, ЭТО СДЕЛАТЬ? Всё, что подобное находил в гугле - либо не работает, либо толком не описано. Что такое DbContext? Нахуя он нужен? Что за непонятные свойства и почему я должен их добавлять в код? Как припилить интерфейс к исполняемому коду? Что это за хуйня, с помощью которой хуй знает как эта хуйня в коде получила данные из Textbox'a? А хуй его знает.
>>447040 > Что как? Как все сделать? Ладно, попробую поставить вопрос иначе. Глав про ADO.NET Entity, WPF и ASP этой книге мне хватит, чтобы написать эту прогу?
>>447046 По EF хватит, про WPF и ASP скорее всего тоже если у тебя asp.net web forms, а не MVC. По wpf - если у тебя трехзвенная архитектура - то надо бы WCF еще ну, чтобы было больше трехбуквенных аббревиатур, если похуй - то не надо. Готовься к обилию воды в главах по интерфейсикам.
>>447047 >если у тебя asp.net web forms, а не MVC Таки надо MVC. >Готовься к обилию воды в главах по интерфейсикам. От этого самый багет. Хрен разберёшь, что действительно надо юзать и как, а что нафиг не нужно.
>>447054 >Таки надо MVC Тогда нужна совсем другая книга, посвященная именно MVC да, она тоже 1к страниц Легче наверное будет нагуглить какой-нибудь видео, как зделоть сайт на asp.net mvc, если только выводить информацию то наверное займет немного времени посмотреть.
Ананасы, как правильнее писать? Вот такие вермишели: return new MagickImage(new WebClient().DownloadData(new Uri((string)value))).ToBitmap(); или кучу строк?
Как же это заебало. Опять делаю все "по учебнику" и нихуя не работает. В XAML пишу: xmlns:pizdec="clr-namespace:Pizdec" А в <Window.Resources>: <pizdec:Govno x:Key="ProstoGovno"></pizdec:Govno> причем он видит класс Govno и сам его дописывает, но тут же выдаёт ошибку, что Govno не существует в пространстве имен clr-namespace:Pizdec. Это что за толстота? Пробовал уже методом перебора дрочить, но этот вариант единственный без красноты, просто ебаная ошибка.
>>447952 1) raw strings 2) default values 3) lambda до недавнего времени. Сейчас уже нет 4) Вычисления с плавающей точкой. Это мне как ньюфагу первое в голову пришло.
Можете подкинуть идею проекта для себя, чтобы отработать на практике asp.net mvc? Всегда есть стандартный вариант запилить свою борду, но может еще что интересное можно.
Почему у нас нет весны/осени? Почти полгода зима -> неделю две 0-10 градусов цельсия -> лето Я из-зи этого осеннюю куртку уже лет 7 ношу, а она еще норм.
Помогите. Есть форма. В ней есть текстбокс. Нужно реализовать автоподстановку в поле по первым введенным символам желательно из тамблицы в БД, ну и если результата нет то чтоб в БД записалось новое значение. Так вообще делать можно? Мб у кого пример есть похожий.
>>448611 Загружаю из бд в тэйбл, а потом тупо сравниваю с элементами? Прально понял? Я очень нуб, но для меня вожно правильное написание. И проверку делать после каждого вводимого символа?
>>447034 >Что за непонятные свойства и почему я должен их добавлять в код >Как припилить интерфейс к исполняемому коду? Гугли про биндинги. Только за неделю ты в MVVM/MVC не разберешься. Делай дедовским методом, это дело потом освоишь. >>447111 https://msdn.microsoft.com/en-us/library/xzf533w0%28v=vs.71%29.aspx Но вообще все забили на официальные(тм) мелкософтовские конвенции, и используют и подчеркивания в именах полей, и венгерскую нотацию, и хуй пойми что еще.
>>447419 Кучу строк проще дебажить. >>447463 Попробуй построить. Возможно класса говно еще не было в последнем билде, тогда будет подчеркивать. >>448590 Не изобретай велосипеды, скачай WPF Toolkit.
>>448499 Успешный программист зарплата в долларах, да? Жалко, что остальные твои сограждане со средней зп в 50 баксов.
(Автор этого поста был предупрежден.)
>>448825 > Жалко, что остальные твои сограждане со средней зп в 50 баксов.
Вторую часть поста ты решил тактично обойти? Таких как ты в Укарине 1 процент, готовься к гопстопам на улице со стороны нуждающихся.
(Автор этого поста был предупрежден.)
Вопрос не по си#, но спрошу тут, так как с ним эксперементирую. Учебная БД на аццессе (да бы видеть первое время все происходящее). Нужно добавить новую запись, но перед добавлением проверить ее на уникальность по четырем полям (фио и др). Так как с сюл я знаком еще меньше чем С#, то придумал нелепый способ. Перед инсертом заполняю дататэйбл всей БД и сравниваю вводимые переменные с полями дататэйбл. Если совпадения есть, то отклоняю инсерт. Но это отвратительно. должна же быть конструкция СКУЭль запроса, чтоб он это сделал в момент инсерта сам и передал мне что нить, если нарушена уникальность по Нному кол ву полей.
>>448962 >да бы видеть первое время все происходящее Чем тебе не нравится Sql server managment studio? По поводу остального. Копай sql в сторону primary key и unique. Когда настроишь и попробуешь протолкнуть негодные данные(повторяющееся что то, не понял что именно у тебя там) он кинет тебе SqlException.
>>448973 Почему аццесс. Так как программист из меня херня, а программа должна работать. Хотелось бы на работе простыми средствами в случае чего выдернуть бд в эксель и в рукопашную разобраться.
А нужно мне, чтоб в БД не попал человек, который там уже есть. По Фамилии, Имени, отчеству и дате рождения. За совет спасибо. Я так понимаю, это нужно аццесс ковырять, чтоб задать ключи.
Ананасы, помогайте. Поставил в WPF ListView, но у него почему-то этот уебанский голубой стиль из семерки, хотя у меня восьмерка и всё по дефолту в XAML. Как нормальный сделать? Откуда это говно вылезло?
Посоветуйте годную книжку для околонулевого уровня. Есть ли какие-нибудь годные интерактивные курсы для ньюфагов, чтобы с задачками для закрепления материала.
Нужно сделать приложение, которое бы ходило по ссылкам в вебе и могло бы дергать данные со страниц с динамическим контентом. Искал по тегу "headless browser", нахожу пока какую-то хуету. Может есть что-то, с чем уже приходилось работать? Простота использования и установки приветствуется.
Sup программач, я закопался в типах. Необходимо считать значения из ячейки DataGridView в int, но при таком приведении k = (int)cordsTable.Rows[0].Cells[0].Value прога вылетает с ошибкой. Подскажи что делать. mdsn не помог, гугл молчал...
Читаю книгу Герберта Шилдта по крестам, 4.0. Грит, первую программу можно создать и в среде разработки, с чем я справился, и с помощью консоли csc. Открываю в семерке developer kommand prompt от имени администратора, пишу через csc путь к файлу example.cs c задачей вывести текст "Простая программа на С#.", о он сука просто пишет версию компилятора и ничего не выводит. а в среде разработке консоль когда запускаю программу выводит. Что не так?
>>449654 Convert.ToInt32() >>449570 ya mozhet netochno virazilsya, mne nuzhno rasshirenie nuget, predostavlyayushee funkcii 'headless browser'. Proboval "Watin", no on ochen gluchniy. Izvinyayte za translit, pishu ne s kompa.
Товарищи шарповцы помогите пожалуйста: Необходимо чтобы пользователь мог ввести в datagridview только числа. Сталкивался с подобной задачей на qt - там нагуглил делегаты, и прописывал их для конкретных столбцов. Здесь я так подозреваю что их тоже надо использовать, только как-то они у меня не гуглятся. Подскажите пожалуйста где про это можно прочитать (желательно ссылочку), или расскажите как это сделать.
>>449696 Да нахуй тебе это компеляция из командной строки. Ей мало кто пользуется, бегло прочитай эти главы и приступай к самому главному - ООП. А потом уже будет в детали вдаваться. Из командной строки компилируют редко, просто набери текст проги в Visual Studio и жми пункт Run. Скорее всего ты пропустил какой-нибудь параметр, забей.
На данный момент изучаю сишарп и девелопмент по ВФ в частности, есть желание замутить клиент для одного сайта для ВФ. 1) Что для этого требуется, конкретные технологии? 2) Я вообще смогу сделать это с помощью сишарпа/замл, или придётся прикручивать хтмл/жс ещё? 3)Пока что, вроде как, понял, что нужно копать в сторону асп.нет, так ли это?
>>449949 > Что для этого требуется, конкретные технологии? Xaml, c# все. > Я вообще смогу сделать это с помощью сишарпа/замл, или придётся прикручивать хтмл/жс ещё? 1. Качаешь страничку в html и парсишь её, вытаскивая нужные данные или 2. Находишь API к сайту, если есть > Пока что, вроде как, понял, что нужно копать в сторону асп.нет, так ли это? АСП для клиентского приложения не нужен.
Для Entity Framework Code First есть хоть какой-то адекватный способ автоматически засовывать в базу хранимую процедуру при создании модели? Пока что хуярю sql запрос в конструкторе контекста, и вызываю процедуры ExecuteSqlCommand из самописных методов контекста. Хотет чтоб хранимая процедура была представлена экземпляром класса, и экспортировалась/импортировалась при изменении модели. Пиздец кривой фреймворк, нахуй я связался с ним.
>>450736 спасибо. а не подскажешь еще такую вещь, у меня есть 2 кнопки, в одной все считается и выводится, вторая управляет только радиобаттонами и мне нужно данные из 1 кнопки передать во вторую. как это реализовать?
Анон, поясни за WCF. Прочитал на вики и еще пару первых ссылок с гугла, все равно допереть не могу. Это такой фреймворк, помогающий обмениваться информацией между разными машинами/процессами? Там еще как-то другие языки упоминались. Помоги понять, пожалуйста.
>>450876 Он позволяет создавать распределенный системы, например, SOAP-сервисы по интернету, не только между процессами. Для RESTful-сервисов лучше использовать ASP.NET Web API 2.
>>450876 Прочитал, сначала подумал что это что-то вроде Akka или Distributed STM в дуднет-мирке, оказалось что очередная тырпрайзопараша из джява мирка.
>>451041 Есть ощущение что это позволит несколько гибче мыслить. Учитывая что из навыков 15 лет назад паскаль в школе\ университете С мне показался неплохим вариантом обновить знания
>>451067 Анальной зависимостью от M$ и обычно, но не всегда люто, бешено зашкаливающим уровнем неадеквата и фимоза гойловного мозга большинства девелоперов.
Я опять всплываю. Однажды даже тред создавал, про годные примеры работы с БД и генерации файлов .xlsx, .dox и т.д. Победил в том треде анон, даровавший ссылку: http://www.codeproject.com/Articles/607868/Social-Club-Sample-application-using-WinForms-Csha Ввиду нубства и тотального непонимания ООП. Тупое переписывание кода под мои (как и было пересказано) успехом не увенчалось. Мне пришлось купить учебник. Почитал. Многое понял. Долго и упорно создавал разные .xlsx. Думал это важно. Потом начал мучить SQL. Достаточно быстро все начало добавляться, удаляться, редактироваться. Тогда же я понял, что паркуясь как мудак к успеху я не прийду (ввиду нежелания понимать ООП). Писал код прям в кнопки. Выглядело жутко. От вида происходящего вспомнил, про ссылку анона. Посмотрел, и за час переписал, как мне надо (добавив тразакции, про которые я прочитал где то в другом месте). Все бы хорошо, но непонятны некоторые строчки из того примера. А именно (начну с низов):
public static readonly string SqlInsert = "Insert Into BdClubMember(Sname, Fname, Tname, BDate) Values(@Sname, @Fname, @Tname, @Bdate)"; Ясен красен, просто запрос SQL.
class ClubMemberAccess : ConnectionAccess, IClubMemberAccess { public bool AddClubMember (ClubMemberModel clubMember) { using (OleDbCommand oleDbCommand = new OleDbCommand()) { //АддВизВалью, ExecuteNonQuery(), и т.д. } }
Здесь мы вставляем параметры в запрос и выполняем его.
Вопрос. Далее он создает два интерфейса. Оба работают, но зачем?
public interface IClubMemberAccess { bool AddClubMember(ClubMemberModel clubMember); }
и второй:
public interface IClubMemberService { bool RegisterClubMember(ClubMemberModel clubMember); }
И вот второй меня пугает. Каким чертом он работает. Автор примера для работы создает экземпляр именно IClubMember Servise и дает ему объект clubMember. Который успешно создается в БД. Но Так же успешно работает IClubMemberAccess. Но IClubMemberAccess, хотяб связан с ClubMemberAccess, а тот нихера. Запутался.
public static class EM { public static int[] FindAllIndexof<T>(this IEnumerable<T> values, T val) { return values.Select((b,i) => object.Equals(b, val) ? i : -1).Where(i => i != -1).ToArray(); } }
> return values.Select((b,i) => object.Equals(b, val) ? i : -1).Where(i => i != -1).ToArray();
>>451100 вернуть значения.Выбрать(индексы (объект b с индексом i) с условием что если b и val эквивалентны то индекс = i иначе -1).ВыбратьТакиеГде(индексы i не равны -1).ВМассив();
>>451098 И в догонку. Если БД создана правильно, то получается хренова туча таблиц. Верно ли, что для выполнения команды инсерт в подчиненную таблицу, придутся проверять (СиШарпом) наличие связанной записи в основной таблице и наоборот. И так же при редактировании записи в связанной таблице, необходимо будет проверять наличие записи, а потом применять insert или update, в зависимости от. Херово объяснять не имея хорошей теоретической базы.
>>451098 >The service class acts as a bridge between the data access and UI. It contains the service methods to call the data access methods. Service и Access находятся на разных уровнях, если ты вдруг решишь валидировать какую нибудь хитрую хуйню, то делать это надо будет именно на сервисе, так так есдинственная задача access'a - тыкать базу данных. Также, если ты внезапно захочешь переехать на какие нибудь xml охоспаде файлы или сторонний сервис вместо базы - просто переписываешь access не трогая service. Разделение обязанностей же. >>451110 Да
>>451148 public class ClubMemberService : IClubMemberService { private IClubMemberAccess memberAccess;
public ClubMemberService() { this.memberAccess = new ClubMemberAccess(); } }
Ти код то читал?
>очень печалит Ну можешь не проверять, просто кинешь пользователю грустное сообщение про то, что все тлен, сделать то особо ничего нельзя. Ну это про внешние ключи и связанные таблицы, например. Если ты в одну таблицу вставляешь/обновляешь, тут конечно же, надо проверить.
>>451161 Бля. Вот дебил. Я не реализовал ClubMemberService, но всеравно каким то хером iClubMemberService работает. К сожалению, не могу показать реализацию (Дианон, травля). Спасибо. Буду думать.
>>451186 А бля. Пронесло. (думал мистика какая) Все реализовано все норм. (писал 2 недели назад, все забыл). Значит будем общаться через IClubMemberService. Неплохо, неплохо.
И так. Я все еще здесь. Подсказывайте мне. Каким образом будет сделать правильно. Проверять вводимые данные при попытке передачи данных серверу, или непосредственно при вводе? (там вроде есть "триггеры?" Типа анфокус (ВС нету под рукой, не могу посмотреть, как правильно называется.) Или же забить хер. Ограничения ввести в БД и ловить exception. Дохера вопросов от безграммотности.
>>451254 Надо проверять и на сервере, иало ли из какой птзды у тебя будут данные приходить, не обязательно из твоего приложения, и на клиенте при вводе, чтобы пользователь прям сразу видел где он долбоеб. Ловить исключения целостности БД то еще удовольствие, хуй разберешь, что пошло не так.
>>446386 Господа, не обоссывайте, но помогите. Ранее заминался изучением простейшего php, просто ради развлечения, не денег ради, но забросил. я прекрасно понимаю, что макакинг на пхп - уберговно Решил начать изучение С#, только уже серьезно и до конца. Суть в том, что мне нужна книга/сайт/руководство/статья, которая начинает обьяснение с базовых основ, про массивы, классы, переменные, весь синтаксис и т.п. Желательно максимально актуальная не говно мамонта, вроде C# 5.0 / .net 4.5. ОП пост прикрепленного, а так же ОП пост этого треда читал, внял советам, но все же хочу попросить у знатоков.
>>451686 >>451684 Второе не такая уж и проблема, английский знаю достаточно, но хотелось бы не проебать чего-то важного при изучении. За подсказку спасибо, ознакомлюсь.
>>451687 Есть и на русском, но нинужно, язык там без заковырок, к тому же будешь концепции называть понятными именами. https://msdn.microsoft.com/ru-ru/library/512aeb7t.aspx >Универсальные шаблоны Ну это же просто пиздец, никто так не называет дженерики.
Критики много, но для практического программирования с нуля на сишарп годная книга. По мне остальные дают слишком много ненужной теории. Я сначала прочитал ее (не целиком, а первые страниц 200-300)потом начал вышерекомендованные учебники. http://rutracker.org/forum/viewtopic.php?t=3606549 Ща обоссут
Что, блядь, никто не знает, как реализовать в ef codefirst класс хранимых процедур, самостоятельно лезущих в базу при создании модели? Пока наименее затратный вариант наследоваться от одного из этих говен https://github.com/Fodsuk/EntityFrameworkExtras https://codeonlystoredprocedures.codeplex.com/ допилив базовый конструктор сиквел-запросом на создание процедуры в базе, и в конструкторе контекста насоздавать нужное количество экземпляров. Есть способ проще? >>450376
>>451757 Да. Она дно, для тех кто знает хоть приблизительно, что такое ооп. Я вот в свое время, юзал только qbasic да Fortran. И весь Ооп прошел мимо. Поэтому эта книга меня спасла. В остальных пишут, как реализовать, но не пишут зачем.
Да, и еще один. Можно ли при использовании Linq обойтись без синтаксиса запросов, а использовать только методы? у меня начинается борьа с api вида: как бы я сделал sql-запрос с последующей попыткой видоизменить его до Linq-запроса
>>446386 Сегодня у нуба вечер лулзов. Мне нужно было экранировать двойные кавычки в строке. Я словил поржал когда стработал вот этот метод: .Replace("\"", "\"") Скрин прилагаю. Всем добра.
>>451801 Щито поделать, выбор-то заюзать сырой ef или писать свой велосипед на голом ado.net. В подходе date first все эти процедурки, функции и проче говно из базы есть. Вот только он мне не подходит.
>>452014 Поделись, зачем тебе экранировать кавычки? Прлбелы лучше заменять через регулярки, перенос строки - через Environment.NewLine. XDocument умеет сохранять в XML без переносов - doc.ToString(SaveOptions.DisableFormatting) зачем и это тебе?
1)Неофит виз проблем хиэ. Не могу понять, в чём соль интерфейсов. Прочитал уже кучу статей, мсдн, хабр, видосы посмотрел, но не понимаю, зачем это говно нужно. Вот когда мы наследуемся от класса, мы автоматически получаем все методы, которые там были, и юзаем их. Но при наследовании с интерфейсов нам всё равно приходится всё это писать вручную. Так нахуй они нужны, если самому всё писать надо? возможно, когда я проснусь, пожалею о том, что потревожил /зк глупым вопросом, но сейчас до меня действительно не доходит 2)Вчера я целый день разбирался с делегатами и ивентами, сегодня целый день с интерфейсами, до этого сутки были посвящены data binding-у. Я глупый или это нормально, что так много времени уходит на понимание таких вещей?
>>452204 Представь, что у тебя 5 типов объектов и каждый наследует от одного интерфейса. У каждого из объектов, допустим по 10 методов в этом интерфейсе. Если не использовать интерфейсы, у тебя в коде получится лапша типа такого: Obj1Method1 Obj1Method2 Obj1Method3 Obj1Method4 Obj2Method1 Obj2Method2 и т.д.
>>452204 Сможешь приводить типы удобно. Сможешь в массиве переменных типа ISosacher хранить ссылки на объекты типа Politacher, Bitard, Watnaya Martyha. И все эти типы будут реализовывать метод ShitPost(), описанный в ISosacher.
Анон, что будет, если я через TaskFactory создам таску и внутри сделаю Thread.Sleep? У меня уснет таска или поток, так что его никто больше не сможет использовать?
>>446386 Двач-погромач, не бейте, лучше обоссыте у меня проблма. Есть один документ. XML документ. И мне надо с ним написать маленькую прогу. Задача включает в себя работу с XML как на c#, так и на javascript выебоны для тестового задания. Преобразованный в строку XML передается через ViewBag, после чего обрабатывается джаваскриптом. Для удобства демонстрации на скрине свалил все в кучу. Готовое решение нашел на стековерфлове, тестовое содержимое ViewBag.Str привожу ниже.
<?xml version="1.0" encoding="UTF-8"?><all><Item name = "String_item"></Item></all>
Онлайн-валидаторы на этот XML не ругаются, а вот браузер в консоли пишет not well-formed. Если есть более красивое решение - буду благодарен Я хочу эволюционировать.
>>452201 Спасибо за совет. Кавычки я экранировал из-за того, что без этого XML наотрез отказывался записываться в переменные джаваскрипта. Многосторочный текст тоже.
>>452237 >>452208 Но ведь это всё можно сделать с помощью делегатов, не? Т.е. мы объявляем интерфейс, потом объявляем методы этого интерфейса в каждом классе. Если бы мы делали это без интерфеса, нам тоже пришлось бы в каждом классе объявлять эти методы.
>>450490 >>450434 Может посоветуете что-нибудь годное по теме. Только троелсена прочитал. Начал вакансии изучать, а там MVC через MVC. Думал почти с шарпом разобрался, а тут такая подстава. может видеоуроки годные есть с примерами, а то эта книжка тяжело шла
>>452684 Ты наверное видел там asp.net mvc который савсем другой. Ты думал на троелсене ты остановишься? Начинается новая глава: читать книги по технологиям тысячи их, качай какую-нибудь тысячестраничную книгу от apress типа pro asp.net mvc и читай-читай-читай.
Есть две тян, как их ебать вместе одновременно. Если бы у меня были два хуя то не проблема, но у меня один хуй, так вот сую я один хуй а он бац лезет сразу в две пизденки, таким образом я одним хуем ебу двух тян синхронно.
Шарпаны. Есть некий текстбокс значение в котором проверяется регулярным выражением. Нужно оставить оставить только кирилицу (чек) и дефис. (поле для ввода фамилии. С кириллицей разобрался, а с дефисом не могу.
есть flash контрол их две штуки главный и не главный (две одинаковых флеш игрушки открыты на одной форме) главная получает фокус и я в ней играю. не главная не получает фокус но тоже в ней играю синхронно и не что мне не мешает играть в главной и не что не мешает не главной получить все input event-ы от главной
гугл говорит что моя говновинда не умеет так делать я мол должен передать фокус и послать контрол нахуй после вернуть фокус туда где он был, но этож пиздец!
>>452690 >Ты думал на троелсене ты остановишься? Я думал его хватит чтоб первую работу хотя бы стажером найти. >>452686 Про паттерн я в курсе, в ASP.NET MVC подводных камней очень много.
>>452795 Знаете вот ребятушки, я не понимаю зачем вы столько времени сидите и читаете. Любая технология учится без чтения ебучих 1к высеров с ебаной водой. Взял задачу - пилишь, по пути все смекаешь так, что уже не забудешь даже никогда, при себе имеешь гугл или справочник для возникающих вопросов. Все что нужно ведь.
>>452910 И на выходе получаешь спагетти код, а на собеседовании путаешь абстрактный класс с интерфейсом. Собеседуют на ждуниора по теории, к сожалению, а не по практике в основном.
Аноны, возник вопрос по отображению информации из XML-файла в представлении. Как его грамотнее реализовать? Делать ли отдельный класс в модели, который будет дальше служить моделью представления, или писать код на джаваскрипте, используя XML DOM и загружая документ джаваскриптом с последующей генерацией элементов представления тем же джаваскриптом? Во втором варианте меня смущает то, что вся работа с файлом будет происходить на стороне клиента, т.е. он может запустить туда свои немытые руки. Как у вас это делается?
И небольшой апдейт по прошлому вопросу. Нашел я почему well-formed документ, передаваемый в переменную джаваскрипта из контроллера, становится not well-formed. Я сначала отображал содержимое строки, которую собирался преобразовать в xml-документ, внутри div'a и браузер мне показывал вполне нормальный xml. Но когда я содержимое строки отобразил в консоли, то увидел что все спецсимволы резко заменились на выражения типа < Если вместо измененного варианта строки подставить оригинал - все работает. Как избежать "помощи" среды при передаче строки с xml-кодом из контроллера в представление?
>>453045 Есть Xamarin, если студент могут дать инди лицензию бесплатно, так же можно своровать с рутрекера. Очень дружелюбный сапорт, могут скинуть тем с документацией и похожими солюшенами.
>>453249 зазубривать -- нет. очевидно, что ты паттерны эти никогда не применял, поэтому кидать понты "я знаю" не стоит. но почитать надо, и в случае вопроса честно отвечать, что читал, понял так и так (адекваты оценят стремление).
Литературу, если честно, почти любую, но GoF не стоит (лучше английскую википедию полистай, там норм про паттерны и алгоритмы).
Дали лабу, написать стек. 1.Создал класс MyStack<T>, со списком list<T>, реализовал для него IEnumerator and IEnumerable. Собственно проблема: при попытке доступа через foreach foreach (var i in stack), он считает, что тип i типа object, хотя при создании stack MyStack<int> stack = new MyStack<int>(); был указан тип Int. ЧЯДНТ? весь код: http://pastebin.com/m32963kb
>>453348 MVP ещё глянь Вообще, паттерны все достаточно общие, поэтому глянь dispatcher, abstract factory, interface, mixin; SOLID, DRY, DI and so forth.
Что именно нужно знать -- я хз, желательно всё, но сильно не грузись, и врать, что "знаешь" всё тоже не нужно. Говори, что читал (как на сессии, лол).
>>453258 Да мне не только про паттерны почитать. Последние несколько месяцев я яростно задрачивал ASP.NET, и совсем уж позабыл что там учил в начале, когда курс C# только начинался. Алсо на WPF вообще болт клал и ни на одной паре по нему не был. Это оче хуево?
>>453777 Он уже устарел. Но в C# для Win32 API почти для каждого метода есть обёртка, я писал C# прогу, которая на кнопки кликала определённые по возникновению события и использовал именно Win API методы.
Поясните зачем вообще нужны интерфейсы? Разве я не могу реализовывать также само методы в классе, не дописывая к нему, что он реализует некий интерфейс? Получается просто для удобства. Кто-то другой увидит что такой интерфейс реализуется и сразу поймет какие методы есть в классе, не разбираясь в реализации самого класса. А еще какой-то прок от них есть?
>>453822 Однажды император Николай I, встретившись с Гречем на улице, спросил его: — Скажите, пожалуйста, Греч: к чему служит в русской азбуке буква «ять»? — Она служит, Ваше Величество, как знак отличия грамотных от неграмотных, — ответил Греч не задумавшись. Так-то.
>>453881 Интерфейсы нужны зачем? Ну ты вот приведи реальный кейс использования, чтобы понятно было. Вот мы пишем класс, описываем в нём все методы. А теперь мы наследуемся от интерфейса, и всё равно описываем все методы вручную. Так зачем? другой анон
>>453901 Собеседования проводишь? Как относишься в 30+ lvl претендентам в джуны которые не айти закончили, хотя и техническую специальность. Зачем в вакансиях пишут опыт 2+ года, если ждуниор подразумевает отсутствие опыта? Сколько обычно претендентов на место?
>>453822 Интерфейс - это протокол объекта. Если объект реализует интерфейс - ты можешь с полной уверенностью дёргать методы объекта, в этом интерфейсе описанные, не заглядывая в реализацию и не уточняя конкретный класс, экземпляром которого объект является.
Sup /pr. Вопрос возможно элементарный, но я как-то не догоняю. Как сделать так, чтобы элементы управления (типо datagridview, treeview) растягивались вместе с формочкой? В Qt для этого были пружинки и компоновка по сетке, а тут то ли я пиздоглазый, то ли нету
Анончик, я хочу создать простой файловый контейнер (как винрар в режиме без сжатия). Допустим есть один файл, который я хочу поместить в контейнер. Открываю байтовый поток, считываю байты и записываю их в массив байтов, этот массив байтов и будет как бы скопированным исходным файлом. Так? А потом, если мне нужно этот файл извлечь, я байтовым потоком считываю массив и записываю новый файл. Всё верно? Поправь меня пожалуйста
>>454268 Всё получилось, только не понятно как указать путь для распаковки файла, сейчас он записывает файл из массива прямо в папку с проектом. Вот так выглядит запись
FileStream fs2 = new FileStream("newFile.txt", FileMode.CreateNew); BufferedStream bs2 = new BufferedStream(fs2); bs2.Write(buffer, 0, (int)fs.Length);
Есть форма с кучей разнообразных проверок заполнения перед передачей всего этого в бд. Как обычно реализуют протокол ошибок, чтоб пользователь клацнул сохранить, а ему хрен тебе, у тебя ошибки там то и там то. (к каждому текстбоксу привязан errorprovider), но сделать протокол былоб полезно. И еще, если метод проверки текстбокса (дата) получает стринг, возвращает дайттайм. Делает некие проверки, то сильный ли зашквар, для кодировки ошибок использовать к примеру неиспользуемый диапазон годов возвращаемого дэйттайма. Или это жуткое и отвратительное решение? Как сделать лучше?
>>454507 >И еще, если метод проверки текстбокса (дата) получает стринг, возвращает дайттайм. Делает некие проверки, то сильный ли зашквар, для кодировки ошибок использовать к примеру неиспользуемый диапазон годов возвращаемого дэйттайма. Или это жуткое и отвратительное решение? Как сделать лучше?
>>454512 У меня даты рождения не могут быть 0001-1900 г.г. Мой метод возвращает дату рождения в переменной типа дэйттайм и получает в виде стринг. Если возникли ошибки конвертации (или иные ошибки) он возвращает в одном случае 01.01.0010, в остальных другие даты в диапазоне 0001-1900. А форма уже обрабатывает эту дату и выдает соответствующую ошибку. Это норм решение? По мне так бред, но как делают нормальные люди?
>>454536 все зависит от того, как у тебя сделана обработка ошибок. в каноничном случае ты делаешь верификацию данных в методе, который повешен на событие Validated каждого контрола, данные которого надо проверить.
А там уже выставляешь соответствующие ошибки в свой errorProvider.
>>454519 Ох лол, это же обосрамс разрабов, не так ли? Я делал java-like метод, там нет дефолтного буфера. Завтра потестю перформанс на разных файлах, спасибо за толковый линк!
>>454574 Да. Так и делаю. Просто текст ошибки зависит от криво вернувшейся проверяемой строки. Вот и все дела. Понаписал. теперь думаю норм это или нет.
Поцони! Поцони! Накатил последнюю, самую новую, модную Visual Studio 2015 CTP 6 Ultimate. Решил поставить ру$$кий в настройках. Студия послала скачивать пакет локализации для 2013. Естественно, он не завёлся. Потом я нагуглил пакет локализации для VS 2015 пререлиз. Скачал, запустил, пишет мол, что данный пакет локализации более ранней версии, чем моя VS. ЧЯДНТ? Чо за хуйня? Что делать, анончик? Нужен русский язык.
Очередной вопрос. Есть база данных с разными таблицами и разными связями. (вопрос не по адресу, но в SQL тред я не хочу. Там судя по оппосту все оче ЧСАшные)
Начал было делать запросы (с#) к этой базе, но ввиду безграмотности смог придумать только простые select, insert, update к разным таблица. А правильность взаимодействия между таблицами уже определяют методы с-шарпа. Вобщем получается хуета. По 3-4 запроса к разным таблицам для выкавыривания нужных данных. Хуета вроде это: -Перед вставкой новой строки select по ключевым полям и возврат Id. - если Id=0 то insert, если id!=0 то update. (и это только по одной таблице, а мне нужно одновременно пихать в 4) У меня select'ов, update'ов, if'ов на всех не хватит. А это еще и большая нагрузка на сеть. Постоянно открыты транакции (передаю часто, но по чуть-чуть). Нужно придумать годные длинные запросы, которые сразу будут проверять есть запись или нет. Инсертить сразу во все поля. Наверника есть ресурс где разжеванны данные проблемы с примерами.
Есть один код. Он использует депенденси инджекшн. Но есть одна проблема. Мне нужно сделать List<> из объектов класса. И тут возникает проблема. Если для создания объекта хватает указания интерфейса, то в коллекции нужно указывать именно реализацию интерфейса, а не сам интерфейс, иначе ошибку выдает. Не портит ли такой расклад саму идею депенденси инджекшн, создавая зависимость нашего класса от конкретного объекта, а не от абстракции?
Двач поясни за SourceGrid в С#. Чем лучше простого DataGrid, в чем подводные камни. И интересует сам вопрос как отследить выделенную ячейку и конец редактирования ячейки. Последнее событие есть у DataGrid, у SourceGrid не нашел.
Заимел сегодня пикрелейтед. Планирую прокачать устройство .Net и знание C# через это. Также по работе приходится портированием заниматься, так что в тему будет. Но я одного в толк не могу взять. Зачем нужен метод Emit()? Кто будет в здравом уме писать на IL? Одно дело запиливать плагины с помощью рефлексии, другое — писать компилятор внутри программы.
>>455208 Я правильно понимаю: интерфейс нужно реализовывать только лишь для того, чтобы не забыть объявить метод в классе? Это всё? Ещё какие-то профиты есть?
>>455244 >>455242 Конкретный пример, простой и понятный, можете привести? Разжевать всё, разложить по полочкам, чтобы дауны вроде меня не загрязняли этот чудеснейший тред. Ну видите же, что дохуя людей не понимают, в чём соль, так нет чтобы помочь, будут блять сидеть и сыпать умными фразами и оскорблениями. инбифо гугл
>>455245 Ну вот смотри, есть у тебя интерфейс Pizda, с функцией ebat(). Сегодня тебе достаточно реализации RezinovayaPizda, но завтра тебе понадобится её изменить - и для этого достаточно будет просто подменить реализацию на PizdaTvoeyMamki. Таким образом, ты ебёшь свою мамку, а код остаётся практически нетронутым и работает с интерфейсом.
>>455246 Пример надо сделать лучше, поскольку pizdaTvoeyMamki вполне наследуется от Pizda, тип можно и без интерфейсов. Вот JopaLuchshegoDruga - не наследуется, зато реализует интерфейс, хоть они даже и разных классов но ebat() можно и то, и то.
>>455245 К примеру, если реализовать интерфейс IComparable можно пользоваться foreach, а не изобретать велосипед заново. Вообщем, интерфейс определяет абстрактные методы и может быть наследуемым сколь угодным количеством классов.
>>455245 Тебе написали же, это нужно для полиморфизма. Создав интерфейс ты создаешь новый класс объектов - класс объектов которые реализуют этот интерфейс. ОТНАСЛЕДОВАВ ОТ ЭТОГО ИНТЕРФЕЙСА любой другой класс ты можешь работать с ним как с объектом класса реализующего этот интерфейс (а не объектом его родного класса). Это замена множественному наследованию.
Анон вопрос по ASP.NET. Смотри, есть у меня мой класс MyPage, который наследуется от System.Web.UI.Page. В нем я переопределяю метод OnPreInit, в котором мне нужно использовать добавленное свойство профайла. Дело в том, что в классе MyPage я могу получить доступ к профайлу только через Context, но у этого профайла нет того свойства, что я ему добавил. Щито делать? Как получить доступ?
>>455316 Niet. Сам профиль, как я понял, в классе Page не хранится. Алсо, смог получить доступ через метод, вот так Context.Profile.GetPropertyValue("Имя_свойства"). Есть еще и SetPropertyValue. Вроде бы работает.
Хэлп! Как полученный анонимный тип получившийся выборкой из базы в контроллере вывести в представлении? Как преобразовать,чтоб компилятор не ругался и foreach в представлении работал?
Хочу сделать реакцию программы на сброшенный в нее файл. Ну, как в винамп/фубар вбрасываешь и там файлы в списке появляются. Как это сделать? Как вообще гуглить такое действие? throw file ассоциируется у людей в основном с исключениями.
>>455354 Это как-бы разные паралельные миры. ASP юзают в основном корпорации у которых итак уже есть инфраструктура на винде, и выделять лишний сервак на PHP - одновременно и лень, и затратно, и геморойно, и нового админа искать.
>>455589 Я примерно представляю. Хочу сменить и язык и сферу.
>>455591 И как ощущения? Не жалеешь? К нам тоже недавно приходил собеседоваться крестовик с опытом-уж не знаю, какова его мотивация перехода в PHP-макакинг.
>>455593 Я писал в далёком 2007. Там геморроя было тонны. На каждом шагу какая-то проблема, документации маловато, ресурсы строго ограниченны. Сама функциональность была скудной. В итоге всё тупило и тормозило. Хотя можно было сервак развернуть прямо на домашней машинке имея всего-то установочный диск. Ещё я юзал связку с MS SQL и побочно прикрутил туда кучу свистелок и перделок. В итоге вышло довольно годно и крутилось на институтском третьем пне. На весь проект ушло 6 месяцев неспешной ежедневной работы по 3 - 4 часа вечерком или паралельно работе. Но диплом я написал и защитил на отлично. После написал аналог на PHP + MYsql и охренел что туже самую функциональность получил пиная ПХП 7 дней по вечерам паралельно общаясь в аське в тянкой. Справедливости ради скажу что для аналога мне не надо было писать тонну мукулатуры и всяких ERWIN диаграмм.
Ещё скажу что знание ASP - таки мне помогло спустя 3 года после института получить охуительнийшую работу для нашего мухосранска. Такие дела.
>>455579 Яб почитал. Спасибо за совет. Но ввиду использования вместо сервера - access (на первые пару месяцев, пока пользователи будут проводить всевозможное тестирование. А я наконецто абстрагируюсь от визуальных табличек.) , использование нормальных запросов невозможно. Когда программа выйдет на частично-полный функциональный уровень, я переведу на какой нить sqlserver и перепишу запросы.
>>455322 Создать свой тип, переписать то что нужно из переменной анонимного типа в переменную твоего типа. Для себя набыдлокодил вот такую штуку: http://pastebin.com/gsxDBsxW
>>455781 Ну у меня в таблице имена и типы полей такие же, как в моих классах. То есть если есть таблица Customers, то у меня объявлен класс Customer, в котором есть свойства, соответствующие полям таблицы по типу данных, с такими же именами как и поля в таблице. Я делаю запрос к базе, ну например select * from customers, получаю DataTable. Как делать запросы можно найти на MSDN. Этим методом получаю List<Customer> из DataTable. Вообще говоря, правильно было бы добавить отдельные конфиги, в которых можно было бы задавать соответствие полей в таблицах БД и свойств в классах. Но мне было лень. Если не особо нужна высокая скорость, рекомендую не заморачиваться и использовать какой-нибудь ORM.
Мне нужен ВПФ текст бокс с проверкой орфографии, красными волнистыми линиями и контекстным меню с исправлениями, ну ты понел. С подключением внешних словарей, HunSpell например, то есть то что есть из коробки (англусик, и все) не устраивает. Подскажите какую либу спиратить и где? Я нагуглил TextControl, но на трекерах не могу найти. Напердолить свой контрол у меня мозгов не хватает.
>>456252 PHP любая макака освоит. Для небольших сайтов лучше не найти. Но если проект серьёзный и с полноценной поддержкой, то ASP .NET. В преимуществе PHP (я про его простоту) таится один недостаток. Нет повода для роста. Работодателю проще будет нанять какого-нибудь школоло и платить копейки, чем профессионалу башлять.
>>456179 Иногда это удобней. Допустим, у тебя банковская система. Тебе нужно перекинуть деньги с одного счёта на другой. То есть, ты списываешь деньги в одном месте и зачисляешь их в другом месте. Бывает такое, что зачисление происходит с ошибкой, а списание уже произошло. NHibernate и EntityFramework помогают избежать такого. Представь, если бы какая-нибудь страна У перечисляла стране Р деньги за газ, и произошёл бы сбой. Это как пример.
>>448127 >microsoft virtual academy Коданоны, поясните нубу за эту академи. У меня сложилось впечатление, что это маркетинговый бред полу-бесполезный для прогеров, разве что язык подучить по их трепу. Пытался разобраться с ASP.NET MVC по тамошним курсам (Введение в ASP.NET MVC) и немного прихуел: общие фразы, никакой конкретики, куча ошибок которые они не шарят как исправить и вообще боятся вносить изменения чтобы все не слетело, в итоге понял что MVC - неподъемный пиздец и забил. Вчера начал смотреть там курс по C# (Разработка современных приложений на C#) и снова хуею: максимум трепа какой мелкософт хороший и впереди планеты всей, минимум конкретики и кода. При этом курс по Python находил вполне годный, что вообще-то странно для тематики сайта. Поделитесь ГОДНЫМИ курсами оттуда, по любой C#-тематике, даже MVC готов снова попробовать.
>>456276 Андрея прочитай для начала, потом конкретные книги по ASP.NET MVC. От кода охуеешь и вернешься к курсам. На хабре есть говененький урок с картинками для дебилов. На сайте микрософта тысяча статей. Если тебе нужно смотреть видяшку, то тебе в php тред.
>>456278 не понимаю, почему тут так дрочат на Троелсэна. Я начинал учить C# по его книге и ненавижу его уебищную манеру повествования: 5 страниц сложнейшего и запутанейшего материала, которые заканчиваются фразой типа: "но это вам никогда не понидобится, вот 2 строчки которые делают то же самое", или куча занудной чуши которая так и просится быть скипнутой, но внутри ненавящево вставлен очень важный абзац. Когда наконец-то блеванул и перешел на Албахари - это было просветление.
Посоны, а есть кто с опытом написания по под WPhone? А то я начал колупаться, и у меня пара вопросов, которые не гуглятся.
Вообще, в идее написать органайзер, который будет взаимодействовать с каким-нибудь расписанием, которое будет тащить с помощью каких-нибудь апи с серверов или просто загружаться.
Как мне хранить данные о напоминаниях в какие-то моменты, связанные с этим загруженным расписанием? О повторениях напоминалок и т.п.?
>>456622 При тонне кода для ORM требуется две тонны кода в БД. Кроме того, дебажить удобней в ORM. Хотя признаться честно, в голове у меня связь с БД всё равно прорисовывается через SQL, и в своих проектах, наверное, так делать и буду. Но в огромных, корпоративных будет использоваться ORM, как ни крути. Потому его изучение имеет две цели: 1. Понимать внутренние тонкости связи с БД. 2. Понимать чужой код. Если тупо фрилансишь и поддерживаешь только свои проекты, то какая разница, чем ты пользуешься?
>>456645 Тащемта у нормальных людей орм используется для мапинга результатов выборки в поля объекта, прекрасный пример такого орм - это bltoolkit, простой и быстрый. Хибернейт и EF - это паралич мозга корпоративных дегенератов.
>>456822 фигня какая-то. Всё вышеперечисленное не даёт преимуществ в конкретной ситуации перевода денег. Пишу на обоих языках, и на обоих это делается элементарно и просто.
>>456848 >Хибернейт и EF Ну и как это поможет проверить состояние ячейки бд до и после? Или вы каким-то способом через особую задницу решили всё это проверить?
>>456826 Долгоиграющие транзакции, как с переводом денег, решаются на уровне бизнес-логики, а не на уровне субд. Делается запись: деньги ушли со счета 1. Другая запись: деньги пришли на счет 2. Затем выполняется проводка и считается итоговый баланс. Этой технологии тысячи лет, при чем тут орм?
>>456851 По моему Хибернейт и есть задница. Кто то использовал его в связке с WCF? В консольном приложении у меня все работает а при попытке повторить на сервисе возникает проблема сериализации, хотя я классы сущностей и так через прокси классы использую.
Посоны поясните как можно пикрелейтед реализовать 1 функцией.
Я вот реализовал, но как-то убого.
Например у меня кнопка Btn_Str_Up и текстбокс TB_Str.
И мол беру FindName("TB_" + ((Button)sender).Name.Substring(4, 3)); и он сразу находит правильный текстбокс. Но как-то это топорно, есть ли способ получше?
>>456894 Но мввм/биндинги - одна из главных фич впф. Использовать впф, и не использовать биндинги, это же пиздец. >>456896 >коряво зато все понятно Заказчику тоже так говорить будешь?
>>456901 MVVM как раз и делает твои данные независимыми от интерфейса. Тебе никто не мешает эту модель подключить не биндингами, а через ивенты. Просто через биндинги удобнее. >>456904 Если планируешь укатываться именно в дуднет, то лучше так и делать.
Привет, программач, я нуб. Хочу в этот ваш С#, с чего начать, что читать, блджад? Крайне желательно на русском Что понадобится, помимо головы и рук - софт, хуефт, дополнительное оборудование (ака второй монитор, который, к слову, имеется)?
>>457071 Можешь начать с третьей главы, первые 2 потом прочтешь. А вообще лучше сначала книжку по си прочесть(Подбельский Фомин), потом уже к си шарпу переходить.
>>456275 Это обычные транзакции и реализуются на уровне БД: begin transaction, commit / rollback. С ORM и без неё - это пара строк кода.
Вижу, что какое-то неправильное понимание ORM и её применения. Постараюсь пояснить.
Итак. Database ORM в общем случае отвечает только за преобразование объектов базы данных в экземпляры классов в приложении и наоборот из экземпляров классов в таблицы, строки и столбцы.
Один из примеров таких простых ORM это Dapper. Даёт тебе удобную обертку над SqlConnection с маппингами, параметризованными запросами и прочим. Работает очень быстро. Материализация результатов, генерация и выполнение запросов на уровне ADO.net. Как правило, такие ORM жестко завязаны на конкретную БД. Написание запросов требует хорошего знания SQL синтаксиса, большего времени программиста.
Выше идут ORM вроде NHibernate и Entity Framework. Они представляют более высокий уровень абстракции над хранилищем данных и не привязаны (или в меньшей степени) к конкретному продукту и версии СУБД. Например NHibernate это реализует через отдельный слой драйверов и диалектов. Сегодня ты на SQL server, а завтра можешь брать Oracle или ещё что, нужно будет лишь поменять строчку в конфиге. В итоге твоя БД в коде прилаги выглядит как класс (в терминах ORM - контекст), где таблицы - это свойства этого класса. В Entity Framework это DbContext и наборы DbSet<T>, которые реализует методы коллекций вроде Add(), Remove(), FirstOrDefault(), Where(). А ещё с ними можно работать через LINQ с лямбдами и писать всякую няшность вроде Db.Schoolboys.Where(c => c.Mother.Status == "Bitch"); что в автоматически преобразуется в запросы и улетает на сервак. Никакой ебли с select, join, where, group by, order by, having, count, подзапросами. Все через LINQ. Так же легко сделать проекцию в другой тип данных, либо анонимный через. Select(c => new {...} ) и подтянуть только необходимые колонки вместо select *. Плюсы: Быстро писать код, потому что это привычная среда для разработчика приложения. Минусы: медленно работает, чертовски медленно по сравнению с тем же Dapper или DataReader. Генерируемые запросы по чуть более сложным случаям могут быть не оптимальными (но всегда можно написать и чистый SQL запрос и использовать текущий коннекшн ORM), что также бьёт по производительности. В итоге такая ORM из-за высокого уровня абстракции постоянно разруливатет кучу сторонних вещей, вроде графов объектов, dirty и transient состояний, поскольку строгая типизация то значит здесь куча рефлексии, которая сама по себе работает медленно. Не буду расписывать подробно, но ещё из коробки в этих ORM ещё может присутствовать: миграции, генерация схемы и реверсинжиниринг схемы в классы, fluent конфигурации, unit of work паттерн и т.д.
Также ничто не мешает использовать NHibernate или EF вместе с Dapper для оптимизации узких мест.
Вот. Постарался вкратце изложить. Главное понимать, что основная задача любой Database ORM - создать необходимый уровень абстракции над хранилищем данных, предоставив удобные программисту средства для работы с ним, в первую очередь маппинг. Все остальное опционально.
>>457159 Да и ещё. Проект на ORM выглядит чище, а рефакторинг проводить проще. Если над одним приложением работает несколько разработчиков, то чужой код гораздо легче понять. Искать баги тоже проще.
>>457159 Спасибо, Адекватный анон. Хороший ответ, а то одни вскукареки про абстракции и "так удобнее". Мне например было не удобно. Если что тебя можно терзать более конкретными вопросами?
>>457159 >предоставив удобные программисту средства для работы с ним Зачем ты называешь джунов программистами? Ибо хуибернетовские костыли предназначены именно для них: обезьянок, которые еще не могут в sql. Программисту удобнее писать запросы руками в management studio, там можно и план посмотреть, и не надо поднимать все приложение для отладки.
>>457193 C# идет к этому. Пока в основном только веб-разработка. Гугли Core CLR, .NET Core, DFX.
>>457203 Ты либо жирнишь, либо никогда не работал в промышленной разработке ПО. Сейчас нужно писать много и быстро. Бизнесу похуй на то, какие у тебя там костыли, пока они приносят деньги. Пока ты будешь дрочить свои запросы в SSMS, и копипастить тонны SELECT ... FROM по коду, на ORM можно быстро наклепать прототип и косить бабло. Если потом будет не устраивать производительность решения, то меняется на Dapper и Dapper.Extensions. Реально вкусно, попробуй - захочешь еще.
>>457215 С чего бы ему загнуться? Язык развивается, потиху начинает мочь в опенсорс и кроссплатформу, софта написано достаточно. Для мобилок развивается Xamarin. Может это и фанбойство, но Майкрософт делает правильные шаги в этом направлении.
Стоит ли изучать WPF? Есть небольшой опыт разработки в WPF и ASP.NET MVC, стоит вопрос о том, где усугублять свои знания. Если с веб-разработкой всё ясно (жить будет), то WPF выигрывает только тем, что там специалистов не сыщешь, а потому и зарплаты у них выше. Единственное, что смущает: будет ли жить WPF?
>>457548 Обе изучай. Технологии очень похожие, разметка + контроллер. На практике нет отдельно программистов на WFP и отдельно на ASP.NET, обычно сталкиваются и с тем, и с другим.
>>457630 Если брать основы проектов, то там всё вроде понятно. C#. А вот если копнуть глубже то с одной стороны надо изучать html5, css, ангуляры, протоколы обмена данных, создание динамических страниц, безопасность и всё такое. В WPF же са мое геморное то, что приходится сталкиваться с неожиданностями XAML, например, я бы сам хрен догадался, что для того чтобы привязать список объектов к UniformGrid, состоящей и CheckBox'ов, надо создать ItemController, указать ему UniformGrid в качестве формы и назначить отдельно свой список в DataTemplate. Я когда первый раз делал, от нелогичности чуть мозг не сломал.
Я это всё к чему? В каждой технологии есть свои особенности и чтобы стать профессионалом, надо заниматься чем-то определённым. По крайней мере первое время.
>>448210 Не знаю насчёт "m_fieldname". Подчёркивание перед названием мода пошла ставить потому, что так проще соблюдать соответствие между свойством (или методом) и соответствующим ему полем.
>>457713 По официальным naming conventions вроде как должно быть myData / MyData для полей и свойств соответственно, но почему-то тоже чаще вижу _myData / MyData.
Парни, что почитать/посмотреть по разработке контролов на WinForms? Я нуб в программировании. Для моих очень специфичных задач мне нужно научится делать сложные контролы и хорошо разбираться в том, как они работают.
Например, мне нужно сделать таблицу, в ячейках которой размещаются различные контролы: чекбоксы, выпадающие менюшки, текстовые поля, кнопки. Если в ячейке хранится численный тип, при редактировании должны появляться инкременты/декременты, если дата - должен появляться календарь, если цвет, то колор-пикер, и т.д. В таблице может быть дохуя строк, для всего этого должна работать сортировка, выделение, массовое редактирование. И желательно, чтобы составлять такую таблицу (то есть выбирать количество столбцов, типы ячеек) можно было не в редакторе форм Visual Studio, а во время исполнения, вызывая методы.
C# только начал изучать, если где-то наговорил хуйни, ткните носом.
Сделал так, чтобы программа при старте исчезала из панели задач и появлялся значок в трее(справа внизу). При двойном клике на значок открывается окошко там же.
В общем вопрос такой, как сделать, чтобы при клике правой кнопкой мыши на значке в трее выскакивало контекстное меню(хотя бы кнопку закрыть, неудобно клацать 2 раза и закрывать окно для завершения программы).
>>457853 Ниразу этого не делал, но вангую, что надо просто расширять базовый класс нужного тебе контрола, то есть изгаляйся над этим как хочешь. Видел в таком стиле как-то костыль, который делал прозрачный текстбокс на винформах.и безбожно лагал
Какой способ парсинга хмл является самым православным? Я уже запутался, блять: кто-то отдельные классы создаёт, повторяющий структуру хмл с атрибутами, кто-то через фоич ноды какие-то тягает, я сам пока что вот так вот запилил:
Я пока что слабо себе представляю, как таким образом буду всю страницу парсить, это ж долго дохуя, не? Ещё усугубляет ситуацию то, что я пишу апп для виндоус стор, и из-за этого, как я понял, некоторые вещи отказываются работать, например, foreach не хочет работать с DocumentElement, xmlDocument-а вообще нет, вместо него XDocument, как я понял. Короче, как вы уже поняли, я нуб ебаный, и я прошу вас ткнуть меня носом в самый православный способ парсинга, чтобы всё было современно, стильно и молодёжно, спасибо.
Есть задача, курсовик. Не могу разобраться в выделенном месте. Мне надо организовать шифровку и дешифровку. Алфавит шифра и обычный я уже написал. Подскажите
//--------------------------------------------------------------------------- using namespace std; char Rus(const char); #pragma argsused
int main(int argc, char argv[]) { char str[50], str1[50] = ""; // исходная строка int k; // кол-во позиций для сдвига int choice; // значение выбора действия char m[32]; // массив русский алфавит char s[32]; // массив преобразованный int strlength;
char b = 128; for(int i = 0; i < 32; i++) { m = b; b++; }
Ребята, есть такая задача, нужно ходить по сайту и собирать все ссылки с него, потом проходиться по всем собранным ссылкам (и так далее, рекурсивно). Написал какую-то хуйню на ночь глядя, почти нихуя не понял, что написал, но вроде работает. Как думаете, никаких проблем не вылезет, или может я вообще сделал все не так? http://pastebin.com/FZUMy4ew
В лекциях с pluralsight чувак сказал, что создание такого контрола почти ничем не отличается от создания обычного приложения на WinForms, но мне бы найти более подробные гайды, в которых учат делать не форму из двух текстовых полей и кнопки, а что-то более похожее на то, что есть по ссылке.
Осло, добавьте в шапку следующего треда https://dotnetfiddle.net/ , клевая же штука - можно конпелировать не снимая свитера и есть интеллисенс для бедных.
>>457853 Под винформс уже написано все что можно было написать, включая кучу выебонистых датагридов на любой вкус. >>457864 Скачай Hardcodet TaskbarNotification и не изобретай велосипеды.
Аноны, поясните почему все так хейтят silverlight? Годная вроде штука, сейчас мелкософты глядишь и совместимость полную запилят, ну или комьюнити запилит crl опенсорснули вон, откуда ненависть?
>>458361 Легче пилить асп.нет который "работает" во всех браузерах и устройствах, чем делать плагины под каждую платформу. Они его скорее бросят, чем то что ты написал.
Господа, недавно начал С# заниматься. Посоветуйте готовую библиотеку если таковая вообще имеется для взаимодействии с сайтами через js либо через что-то иное.
>>458361 Это мертворожденная технология, просто майкрософт решил выебнуться и запилить свой флеш. Одно время была мода пилить сайты на флеше, которая быстро прошла, но майкрософт не ищет легких путей. Для большого интернета есть ASP.NET MVC, для безумных гридов в энтерпрайзе ASP.NET, а сильверлайт не нужен.
>>458001 Я опять здесь и у меня опять проблема. Я даже не знаю, как поисковой запрос сформулировать, но я честно пытался найти. Как распарсить подобный хмл? Я так понимаю, там List<> запиливать надо будет или как вообще? Вот есть одинаковые ноды, которые все лежат рядом, как отдельный нод взять? http://pastebin.com/GhEK5i4E
>>458643 Оче хуевый xml, если бы item'ы были завернуты в items то все бы заработало без дополнительных атрибутов. Но можно и с ними https://dotnetfiddle.net/Uspmx4
Я чувствую что много не понимаю, но не знаю откуда начать. Вопрос таков.
В прожкте, в references, подключено кучу всяких либ, причем по дефолту. Среди них Microsoft.CSharp System.Data System.Data.DataSetExtensions System.Core Итд.
Меня мучает вопрос, зачем они там. Ибо когда я их удаляю, программа все равно компилируется и запускается.
Особенно меня волнует Microsoft.CSharp Интуиция подсказывает, что без этой ВАЖНОЙ либы ничего работать не будет. Но все работает. В общем, я в небольшом замешательстве.
Еще, хотелось бы узнать, есть средство чтобы удалить неиспользуемые либы? Влияет ли как-то их наличие/отсуцтвие на генерируемый код?
>>459148 По дефолту из шаблона проекта подключаются. Для минимальной работы достаточно только System.
>Еще, хотелось бы узнать, есть средство чтобы удалить неиспользуемые либы? Блядь, либы общие и лежат в системе, тебе дается только ссылка на них. Не трогай совсем, иначе сломаешь другие проги юзающие их.
>Влияет ли как-то их наличие/отсуцтвие на генерируемый код? Конпелятор умнеее тебя на порядок.
>>446386 Поясните за кроссплатформенность VS2015. Можно ли уже писать прогу под Андроид и портировать её сразу на АйОС, ВинФон? Или даже портировать её сразу в ВЕБ и Виндовс?
>>459178 Можно писать под разные телефоны через Xamarin. Насколько оно кросплатформенно на практике - хуй знает. Веб и десктоп (а теперь и телефон) - это совершенно разные платформы, написать, чтобы работало везде, не получится.
Аноны, суть такова. Сказали реализовать пикрелейтеднаписан на плюсах на WPF. Есть вопрос. Можно ли получить такую ёбу инфы о процессе стандартными либами, и есть нет, то есть ли либы специально для этого?
>>459178 >>459224 Можно пилить на Apache Cordova под Windows, Android, iOS. Насколько я понимаю, то в итоге получается веб-приложение в сборках для разных осей. Думаю, что спермокода и костылей, вместе с дрочиловом веб-технологий там предостаточно. Ну и это не native код, как делается в Xamarin.
>>459341 Бля, я давно как-то делал такую же задачу, решил переписать рихтера под .net, долго ебался, уже и не помню толком ничего, лет 6 назад это было.
Подскажите, как отслеживать изменения в очень большой форме (порядка 50 текст боксов). ПРи нажатии клавиши "Сохранить" будет отправлена пачка запросов SQL. Но не хочется отправлять всегда все, а исключительно измененные текстбоксы (группами в соответствии с таблицами сервера БД). Есть ли пути объединения текстбоксов в группы. Чтоб не писать 50 раз if (textbox1.modifed == true), а допустим 5 раз if (группа-textbox.modifed ==true). Понимаю, глупый вопрос. И да. Сажи мне.
>>459604 И в догонку использование Com сервера Excel для генерирования больших документов жутко ресурсоемкое дело. Какими методами лучше генерировать excel документы? Можно ли каким нибудь образом генерировать их на удаленном компьютере, а открывать на стороне клиента?
>>459668 >Это Win Forms? На форме редактируется одна сущность? SQL запросы можно отсылать и пачкой (batch). Короче больше инфы дай по вопросу.
Да? Это винформс. Про сущности не понял, но на форме редактируется информация об одном объекте. Отсылать запросы не проблема. Проблема столько проверочной херни писать.
Пока тред в бамплимите спрошу такую вот вещь. Почему тут так негативно относятся к С#. Что в нем плохого? Ведь у падаванов по с++ не подучается и строку на экран вывести не создавая отдельного треда? Что плохово в С# для написания шиндопрограмм? Я конечно понимаю, что крузиз не напишешь.
>>459752 >что крузиз не напишешь. Им нравится, что в теории они могут то, чего не можем мы. Вообще любой языкосрач следствие развитого комплекса неполноценности, а это тут не редкость, так что можно не обращать внимания. Ну а сама ненависть по той же причине, почему ненавидят шинду. Стильно, модно, молодежно. Дух бунтарства, мнимая илитарность, вот это все.
>>459740 Сущеость (entity) - да, это "отдельный объект". Правильнее говорить класс объектов. Например User, Customer, Product. В БД сущность представляет собой отдельную таблицу (в подавляющем большинстве случаев).
А из-за ебучего приведения БД к 3ей нормальной форме пришлось наплодить херову тучу сущностей (классов со свойствами представляющие таблицу). Теперь нужно каким то образом узнавать сколько из них нужно апдэйтить, какие инсертить и т.д. Ща накатаю кнопку сэйв на 4 листа кода и буду охуевать от своей невъебенности.
>>459768 Ну хуево тогда быть тобой. Сириусли, сейв на 4 листа - это значит, что ты идешь не туда. И уже через неделю не раскуришь, что там происходит. Можно конечно написать, но после этого я бы порекомендовал сделать рефакторинг, если есть на это время.
Ну или сразу взять хоть тот же Entity Framework, через Database First подход замапить свою схему из БД в классы и ебашить хардкор. В инглишь умеешь? Посмотри https://msdn.microsoft.com/en-us/data/jj206878 Даже если ты ниразу не работал с EF и прочим, то перевести на O/RM займет максимум пару часов. В твоей случае можно даже не париться по поводу DI и IoC, сойдет создание контекста "на лету".
>>459771 Прочитал про ORM. Годная тема, но мне еще рано наверное. Для начала допишу ручками, в дальнейшем обязательно прикручу орм. Я вообще пока очень нуб. Спасибо.
>>459777 Глянь еще Dapper. Это всего один класс c расширениями для SqlConnection. Много делается ручками именно так, как ты хочешь. Но меньше копипасты и есть приятные фичи: маппинги, удобные параметризованные запросы. https://github.com/StackExchange/dapper-dot-net
подскажите как мне найти через какие именно вершины у меня находит кратчайший путь в алгоритме дейкстры http://pastebin.com/i6w4pDna на пикрелейтед нужный мне граф, как мне узнать и вывести что в 6 вершину из 1-ой кратчайший путь через третью
Мне нужно найти сумму элементов строках матрицы, которые не содержат отрицательных элементов. Как это сделать? Ну типо проверить на отрицательность элементы строк, там, это вроде ясно. В теории. Можете сраному школьнику код сделать?
Полезные ссылки:
- http://professorweb.ru
- http://net-informations.com/
- книги Э.Троелсена
- C# in a nutshell