Существует множество различных платформ и языков программирования, однако среди них нет более элитного, чем C#. Это поистине язык богов, сочетающий в себе простоту использования с поистине неограниченными возможностями. Знание C# — прекрасный детектор современного, умного и успешного человека. Изучение платформы .NET безошибочно указывает на успешного в будущем человека. ITT элита продолжает обсуждает будущее этого прекрасного и современного продукта компании Microsoft. Только в этом треде элитные разработчики ответят на самые острые вопросы индустрии.
3. WinForms или WPF? Зависит от задачи. Для небольших проектов, скорее всего, будет достаточно винформочек. В случае, если разрабатываемое приложение достаточно серьёзное, то возможно его стоит писать с использованием WPF. WPF очень хорошо работает с паттерном MVVM ( https://ru.wikipedia.org/wiki/Model-View-ViewModel ), и позволяет пилить очень кастомизированные интерфейсы с помощью XAML, что в случае WinForms, делать намного сложнее.
4. Мне тут знакомый_нейм сказал, что C# умирает, это правда? Может не стоит его учить? Неправда. C# довольно активно развивается, недавно вышел новый компилятор, шестая версия шарпа, и уже активно разработывается седьмая. Весь дотнет понемногу становится опенсорсным, а ASP.NET становится независимым от платформы. В некотором смысле понемногу вымирают десктопные приложения с развитием веб-технологий, но в том же энтерпрайзе он еще очень даже востребован.
5. Какую ИДЕ выбрать? Для Windows самым очевидным вариантом будет Visual Studio (https://www.visualstudio.com/en-us/downloads/download-visual-studio-vs.aspx). Студия распространяется в двух редакциях: бесплатная коммьюнити-версия и платный энтерпрейс эдишн. В большинстве случае будет достаточно Community-версии: она поддерживает и C#, C++, VB.NET и F#, а так же имеет возможность установки дополнений Для мака и никсов самый юзабельный вариант - MonoDevelop ( http://www.monodevelop.com/download/ ). Для vim можно использовать OmniSharp ( https://github.com/OmniSharp/omnisharp-vim ). Кросплатформенный полуредактор/полуIDE VS Code ( https://www.visualstudio.com/en-us/products/code-vs.aspx ) Также существуют плагины для Atom'а и Sublime Text, но функциональность там достаточно сильно урезана. Кроме того, в данный момент JetBrains активно пилит свою IDE для шарпа (Project Rider), вероятно в ближайшее время станут доступны первые EAP. IDE заявлена как кросплатформенная, со всем решарпер-функционалом, поддержкой отладки, моно и .net core. SharpDevelop - еще одна IDE для C#, отличается малым размером (около 20мб) и опциональной портабельностью, при этом имея дизайнер WinForms и WPF, а также интеграцию с FxCop, StyleCop и прочими ништяками. Если хочется что-то по быстрому набросать, а выкачивать гигабйты нет желания, то возможно SharpDevelop будет лучшим вариантом.
6. С# для мобильной разработки Если нужны инструменты для разработке под мобилы, ставь сразу VS2015 и при установке выбирай все нужные компоненты. Больше информации тут - https://msdn.microsoft.com/ru-ru/library/dn771552.aspx Из актуальной литературы - Xamarin Mobile Application Development - Xamarin Essentials
7. Дополнительные инструменты для разработки на C# LINQPad - сорт оф REPL, с возможностью быстрого подключения к БД и удобной визуализацией данных dnSpy - декомпилятор, малоизвестный форк ILSpy, где реализована возможность модификации IL-кода прямо в EXE и DLL файлах, отладка IL-кода и много других фич для reverse engineering'а. Плюс няшные темы как в студии dotPeek - бесплатный декомпилятор от JetBrains scriptcs - для запуска C# кода как скриптов, возможность использовать как REPL
8. Расширения для студии ReSharper - одно из известнейших. Рефакторинги, умный автокомплит, настраиваемый стиль кода. Платный, но можно стянуть с торрентов Supercharger - показывает "карту" с классами, методами и всем остальным сбоку от кода с возможностью прыгать по ним Indent Guides - показывает вертикальные линии на каждом уровне отступов. Format document on Save - форматирует код каждый раз при сохранении документа Code alignment - Выравнивает код по указанным символам. Удобно, например, при инициализации словарей или в перечислениях
9. Что почитать? - The C# Player's Guide, второе издание (RB Whitaker) - отличная книга для ньюфагов в шарпе, все расписывается довольно подробно, очень много примеров кода. - C# 6.0 in a Nutshell (Joseph Albahari и Ben Albahari) - огромнейший справочник, over 1000 страниц, покрывает почти все области, начиная с синтаксиса и базовых типов и заканчивая интеропом и рослином - C# 6.0 Pocket Reference (Joseph Albahari и Ben Albahari) - просто выжимка из справочника, можно всегда держать рукой - C# 6.0 and the .NET 4.6 Framework (Andrew Troelsen) - 1600-страничный учебник по шарпу, покрывает BCL, WPF и ASP.NET, небо и даже аллаха. - C# 6.0 Cookbook (Jay Hilyard и Stephen Teilhet) - книга в формате "проблема-решение", можно пройтись по оглавлению, найти интересные проблемы и попыпаться самому решить, а уже потом посмотреть представленное решение. Книга скорее не для ньюфагов, а для тех, кто уже знаком с шарпом.
10. Более хардкорный материал - C# in Depth (Jon Skeet) - написана в виде истории версий C#, начиная с C#1.0. Описываются возможности, которые были добавлены в определенной версии и далее достаточно хардкорно и подробно эти возможности расписываются. - Writing High Performance .NET Code (Ben Watson) - охуенная книга. В основном фокуируется на оптимизации дотнет-говна. Методы оптимизации проложений, профилирование, вот это все. Крутейшая и достаточно детальная глава по GC. Рассматриваются достаточно известные проблемы вроде "for vs foreach", "класс vs структрура", кастинг, боксинг, перфоманс регулярок, коллекций, исключений. Короче все что нужно, чтобы вам перезвонили. - CLR via C# (Jeffrey Richter) - это классика, это знать надо.
11. Хочу еще хардкорней - C# Deconstructed (Mohammad Rahman) - введение в CLR, модели памяти и выполнения в CLR, байтоебство, JIT. Книга достаточно коротенькая, менее 200 страниц, можно осилить за пару дней. Желателен опыт работы WinDbg и понимание устройства PE-формата. - Expert C# 5.0 with .NET 4.5 Framework - еще одна книга этого автора, в этот раз намного длиннее. Очень много IL, анализа и разбора стандартной либы (те же коллекции), разбор ивентов, дегегатов, асинхронности etc. на уровне байткода. - .NET IL Assembler (Serge Lidin) - ILёбство, во многих местах повторяет документацию MSDN, но при этом имеет много интересных дополнений и заметок. Кроме того все неплохо структуировано и разложено по красивым табличкам
12. Литература по WPF Из более-менее актуального можно выделить пару книг: - Pro WPF 4.5 in C# (Matthew MacDonald) - Windows Presentation Foundation 4.5 Cookbook (Pavel Yosifovich)
13. Литература по ASP.NET - Professional ASP.NET MVC 5 (Jon Galloway, Brad Wilson, K. Scott Allen, David Matson) - Pro ASP.NET MVC 5 Platform (Adam Freeman) - Beginning ASP.NET for Visual Studio 2015 (William Penberthy)
14. Литература по асинхронности, параллелизму и всему такому - Concurrency in C# Cookbook (Stephen Cleary) - книга, написанная в формате "проблема - решение". Кроме базовых вещей, вроде асинков и параллелизма рассматриваются TPL Dataflows, Rx (реактивные расширения), тестирование всего этого асинхронного добра, ну и работа этого всего на более низких уровнях абстракции - Multithreading in C# 5.0 Cookbook - в основном ничего интересного, но есть довольна неплохая глава про синхронизацию, пусть и не слишком детальная - Pro Asyn_chronous Programming with .NET (Richard Blewett, Andrew Clymer) - опять же, интересного немного, но неплохие главы про асинхронность + UI и анализ дампов памяти в windbg
15. Литература не по шарпу, но так или иначе связанная с языком C# Game Programming Cookbook for Unity 3D (Jeff W. Murray) - разработка на шарпе под Unity Introduction to Neural Networks with C# (Jeff Heaton) - изучение нейронных сетей с примерами кода на шарпе. Под конец пишем программу для распознавания символов и нейроботов. Machine Learning Using C# Succinctly (James D. McCaffrey) - довольная коротенькая книга на тему машинного обучения с примерами кода на C#. Ничего особого: k-средние, классификация, наивный байес, но с кодом, который всегда можно поразбирать, если что неясно.
16. Но я не знаю английский, как я буду это все читать? На некоторые из перечисленных книг есть переводы, которые можно найти на том же рутрекере, однако, зачастую эти переводы неактальны, содержат неточности, и не самые понятные варианты перевода. Кроме того, переводы обычно пилятся только для нескольких самых популярных книг, более-менее серьёзный материал не переводят. Всегда можно сесть со словарем и понемногу читать, переводя непонятные фрагменты. Это очень полезно, так как в любом случае в разработке без знания ангельского делать нечего. Если очень хочется, то гуглить по запросам: "C# 5.0, Справочник. Полное описание языка", "C# для профессионалов. Тонкости программирования", "Программирование на платформе Microsoft .NET Framework 4.5 на языке C#"
17. Что еще нужно знать, чтобы взяли работать за еду? - SQL - подойдет люая книг по MSSQL/MySQL, базовые запросы, SELECT, INSERT, DELETE, UPDATE. Джойны, индексы, нормализация. В контексте шарпа еще ORM: Entity Framework, Dapper - Системы контроля версий - обычно гита достаточно: add/commit/push, merge, rebase, checkout, remote's, разрешение конфликтов, трехпанельные дифф-менеджеры, cherry-pick - Гитхабы-гитхабчики - issues, организация пулл-реквестов, интеграция с appveyor, теги, релизы, маркдаун - Алгоритмы - сложность алгоритмов, сортировки (пузырек, быстрая, вставками), поиск, рекурсия, алгоритмы на строках - Структуры данных - связанные списки, деревья (бинарные, красно-черные, b-деревья), хеш-таблицы, графы - Если идти в веб - HTML, CSS, JavaScript, веб-сокеты, REST - Паттерны проектирования, стиль кода, внедрение зависимостей, MVVM (если хочется в WPF), SOLID
Шалом, бандиты. Пытаюсь вкатиться в WPF после форм, щас параллельно гуглю, но вдруг опытный анон подскажет как жить. Подскажите вот чо: как лучше сделать кнопку кастомной формы (конкретно в моём случае - шестиугольник, который выглядит как пикрелейтед)?
>>749608 Или прям ващпе кастомной не сделать и всё упирается в использование свойств для UIElement типа render transform и layout transform? Или можно сделать собственный UIElement и в нём просто обработать событие Click и прикрутить соответсвующие анимации при наведении, нажатии и прочем?
Еще вопрос по WPF. Можно как то на фоне (в гриде/на окне) разместить текст посредством UIElement'a типа label или textblock, и чтобы при этом текст был деформированным типа как пикрелейтед? Еси да, то какое для этого свойство нужно менять? Или придётся делать кучу лэйблов, и каждый наклонять под нужный угол, чтобы текст получился изогнутым?
http://www.videosharp.info Друзья, кому-нибудь знаком зис щит? Годно ли? Имеет ли смысл такой формат обучения? Платить не буду, лучше поищу подобного в открытом доступе. Вопрос в том, стоит ли на подобное тратить время. Сейчас дрочу учебник по основам синтаксиса с#. За что лучше взяться после него? Попутно сделал 6 лабораторных работ какого-то универа. Это важный вопрос, как составить дальнейший план обучения. Понимаю, что важно много практики. Но где лучше взять ее?
>>749688 coursera.org там есть расиянские курсы, но не знаю, насколько они не на английском также есть возможность включить субтитры, для некоторых курсов - с переводом
>>749549 (OP) Ребят, помогите. Ебусь с формочками - никогда ими не пользовался. Делаю хрестоматийную программу "жизнь" - сначала делал в консольном приложении, потом решил захуярить в форму. Но получается так, что форма не воспринимает то что происходит в мэйне. ЧТо делать?
>>750051 что значит >что форма не воспринимает то что происходит в мэйне. ? Форма и не должна воспринимать то, что происходит в мэине. насколько я помню, когда в мэине вызывается метод Application.Run(new Form1()); начинается бесконечный цикл, в ходе которого форма обрабатывает события. и только после того, как ты закроешь форму, управление возвращается в мэин. вся логика должна быть прописана в самом классе формы.
Почаны, а можно как то в xaml при установке размеров/местоположения UIElement'a задавать размер не просто числом типа <...Width = "50" /> а используя значение одного из параметров другого UIElement'a. Например, как установить ширину UIElement'a равной 10% от ширины основного окна? Width = "MainWindow.Width*0.1" не робит.
Имеется приложение Windows Forms. Запускаю в нем поток на прием Udp пакетов. Когда приходит пакет, требуется вывести содержимое в TextBox. Как получить к нему доступ?
Што делать в WPF в следующей ситуации: создал шаблон кнопки через <ControlTemplate>, форму контрола задал через <Path.Data>, но клиентская область кнопки всё равно осталась прямоугольной. Как сделать клиентскую область такой же, как и форму контрола, прописанную в <Path.Data> ?
>>750324 Нашёл кривой на мой взгляд способ - задать соответствующий margin у Border'a в <Grid>'e, который находится внутри <ControlTemplate>'a. Вроде теперь только внутри формы срабатывают триггеры. Но всё же, есть какой то более правильный способ. Может там корректировка клиентской области в ксамл или типа того?
>>749549 (OP) Анончики, задаваю этот вопрос сразу в 2х тредах по C# и Java.
Есть знания в области геймдева со стороны 3D графики. Хочу начать изучать кодинг.
И вот вопрос: Что же будет перспективнее и более реально в соотношении время обучения/возможности на этом зарабатывать? На чем реальнее и перспективнее будет делать простые игры для мобилок?
Как вариант это уже более-менее знакомый мне Unity + C# Либо Java + другой движок
И в чем из этих языков будет проще отстраниться от конкретно геймдева в сочетании с движком и уйти просто в кодинг, не завязанный на играх вообще?
Есть какой нибудь способ изогнуть текст по дуге как пикрелейтед кроме как создавать собственный шаблон контрола, и заполнять его соответствующей логикой?
>>751845 Есть libgdx/jmonkeyengine, но если подходить серьезно, желая завершить проект, а не написать очередной вращающийся куб, то альтернативы Unity|UE нет
Прошел вот этот курс на курсере. Было довольно изично. Что можно похардкорнее ебануть? Цель в перспективе начать зарабатывать мамкиным фрилансом. Или лучше пиздовать джуниором в конторку?
Добра в хату, аноны! Я не кодер, поэтому простите, если буду изъясняться не в вашей терминологии. В общем, на работе дали задание написать программу на C# в Windows Forms. Я разобрался со всем, кроме того, как сделать так, чтобы при нажатии на элемент в MenuStrip менялось содержимое формы, т.е. появлялись другие кнопки и элементы без вызова новой формы. Думаю, что и с этим бы разобрался, но времени совсем нет. Поэтому буду весьма признателен, если дадите ссылку на исходник или напишете фрагмент кода, который позволяет реализовать то, что я описал выше.
>>752105 блят, не дописал. короче, во первых, посмотри в файле %название формы%.designer в регионе generated by windows или как там мать его добавляются элементы. там они добавляются в свойство Controls у формы посредством this.Controls.Add(anyControlName); помимо этого нужно создать собсна сам объект, например Button B = new Button(); и потом ещё что то делается, до того, как закинуть новый контрол в контрол формы. то ли размеры задаются, то ли местоположение. это лучше посмотреть как раз таки в designer'e. он генерируется автоматически для каждой формы.
Программач, Учусь по The C# Player's Guide. Дошел до PART 4: Advanced Topics (Примерно половина книги). Собственно, 2 вопроса: 1. Порекомендуй пожалуйста ресурс с упражнениями для ньюфажика моего уровня, если можно. 2. Где можно достать исходный код простенького бильярда или тенниса как на пике? Желательно бильярда.
>>752108 мдя. посмотрел у себя только что. создаёшь объект контрола (Button B = new Button();). прописываешь ему минимальные необходимые свойства (ну там размер, местоположение, текст), и потом в свойство самой формы Controls запихиваешь новый контрол типа this.Controls.Add(B); вроде должно работать. а насчёт удаления - попробуй подёргай методы того же this.Controls.Remove(); если там такие есть. в крайнем случае - хуячь всем контролам свойство Enabled=false;
Анон, как отскалить прямоугольники, чтобы растояния между ними оставались одинаковыми. На ум приходит только монструозный поиск всех прямоугольников на средней линии, высчитование сколько свободного места осталось со старыми отступами после проп. скейла и его распределение. Еще поиск по линии может заглючить из-за прямоугольников разной высоты.
>>752482 Не совсем понял твой вопрос. Нужна формула пропорционального скейла с сохранением отступов. Прямоугольники могут быть любых размеров и скейл тоже. Прямоугольники скелятся последовательно, на порядок расчитывать нельзя, из-за чего есть траблы с определением правильных растояний до соседей в том же проходе, отсюда нужно делать отдельный проход для доп выравнивания. Пик только для примера нужного результата.
Как-то все сложна-сложна. Гуглил какие-нибудь магические формулы для layuot solver'ов но не нашел ничего годного. Короч, пока забъю, но потом нужно будет сделать нормально.
>>752497 под решением я подразумевал использование WrapPanel из WPF (или того алгоритма, который использует он), но есть неуверенность по поводу возможности равномерного расстояния между элементами
твой пик окончательно поставил меня в тупик. то это были элементы, определение размеров которых не было проблемой, а теперь какая-то картошка на сковородке
>>752504 взять решарпером вскрыть эту панель и наковырять
по сути, тебе нужно составить таблицу (двумерный массив) элементов. для каждой строки/столбца хранить максимально высокий/широкий элемент. далее, просуммировать значения наибольшей высоты/ширины, получить свободное место по вертикали/горизонтали и поделить на количество столбцов/строк. так ты получишь размеры контейнеров для каждого из элементов. внутри этого контейнера элементы нужно отцентрировать, но это элементарно ж
в принципе, это все можно сделать без повторных проходов по таблице
есть какой-нибудь пример реализации стейт-менеджера контента пользователей приложения?
из имеющегося у меня примера присутствует реализация на основе графа зависимостей. почему мне этот пример не нравится: - при добавление пользователя/контента нужно добавлять ребра, соединяющий нового пользователя/контент со ВСЕМ/И контентом/пользователями - такая модель немного хуевасто ложится на, например, задачу построения личных сообщений
>>749549 (OP) >SharpDevelop - еще одна IDE для C#, отличается малым размером (около 20мб) Я тут решил начать изучать кодинг с нуля, и соснул с оставшимся размером на диске C при установке Visual Studio. Потому собственно вопрос, почему он весит настолько мало? Что там не так? В общем буду учить по книгам и простым туториалам для новичков, мне эта штука при компиляции не будет выдавать Error huisasi? Т.е. вписывая туда код из уроков, они будут воспроизводиться так же как на большой и тяжелой программе?
>>752971 VS - се есть мегамастадонт, который только кофе не готовит разве что. ванную, что эта 20сбайтовая дрочня представляет собой блокнот с компилятором
ошибки тебе пишет компилятор (или рантайм), в т.ч. и в студии. следовательно, вопрос поиска, в чем ошибка, на начальном уровне ставиться точно не будет
>>753045 В общем установил ничего не меняя кроме диска C, и он мне такое вот говорит. Наверняка у меня чего-то не установлено? Я совсем дебил, просто скопировал код из урока.
Чики-чики, двощь-двощь. Есть один асп.нет, нужно дернуть из текстбоксов несколько значений и внести их в некий шаблон (.dotx, .rtf или pdf) и сохранить/распечатать. Как это сделать без сторонних библиотек? Насколько я прогуглил, с pdf это сделать нереально, с .dotx нереально на серверной стороне (а иначе и не нужно), остался rtf, но он мозгоёбит с utf-8.
Как в WPF через xaml используя <DataTriggers> ловить изменения какой либо переменной в программной части? Ну типа есть в коде переменная bool, и каждый раз когда ей присваивают true/false, может быть и повторно одно и то же значение, DataTrigger срабатывает и делает свои чорные дела? Читал, что нужно указывать в объявлении <DataTrigger> определённый Binding, типа <DataTrigger Binding = "{Binding Path=%var_name%}" Value="True"> Однако, что мне нужно помимо этого? Реализовывать у класса INotifyPropertyChanged? Если да, то как реализовывать его члены?
Как мне из RSACryptoServiceProvider достать закрытый ключ и сохранить его куда-нибудь в файл? Сохранение через контейнер происходит куда-то в системные папки, а мне нужно, чтобы я мог на разных компьютерах запускать приложение. И ещё, как передать туда открытый ключ другого пользователя? Я так понял сами по себе там ключи не хранятся, а хранятся параметры из которых они вычисляются, такие как P, Q и т.д. Получается мне нужны все параметры другого пользователя, чтобы отправить ему сообщение?
>>753963 >>753201 >>752971 В общем я не знаю что мне делать, на диске C осталось всего 2 гб, сам я профессионально занимаюсь графикой, тут овер миллиарды разных плагинов под еще один миллард программ, поэтому в скором времени еще не смогу полностью снести систему. И насколько я понимаю VS просит по 10+гб на всех дисках? Простой покупкой винта и установкой на него системы я не обойдусь, он в любом случае будет просить места сразу на всех? Любые инсталяторы с официального сайта VS просят так же много пространства на дисках. А эта программа выдает какую-то ошибку. Есть вообще какое-то решение этому всему?
>>754058 Начинаю свой первый шаг и тут же спотыкаюсь и разбиваюсь нахуй насмерть. Первый же хеллоуворлд выдает ошибку разработчика IDE/ Чувствую эта дорога будет сочной и колоритной.
>>754061 Где ты вообще взял этот билд, последний который они рассылали на почту был 1906 (и в их твитере он последний). Может ты скачал что-то для внутреннего тестирования.
Посоны, а реально устроится джуниором в конторку, если я закончил вузик год назад и в программировании не полный даун, но таки не особо выше уровня начинающего?
Вообще как свой уровень определить кстати? Я знаю синтаксис, читаю код, пишу простенькие программки на codewars не выше 5 кю, с легкостью прошел курс на курсере из оппоста, но понятие наследования до сих пор понимаю лишь смутно.
>>754077 по большому счету, можно начинать на что-то надеяться, если ты знаешь как применить ООП в языке (и что это такое), и будешь иметь представление о шаблонах проектирования (хотя бы смутно, на уровне "ну наверна это так") и, опять таки, как это должно выглядеть в рамках выбранного тобой языка. конечно же надо знать фундаментальный базис платформы, т.е. писать хотя бы со второго раза компилируемый код
по факту, конечно же, требования о знаниях фреймворков, которых сейчас дохуя, никто не отменял, однако немного донные конторы не зажираются особо в этом плане
Посоны, поясните по харкору. Устроился я в одну быдлофирму быдлокодером, что бы сопровождать их быдлокод. И и вот роясь в чужом коде закралась мысль. Правильно ли это, объявлять строковую константу в статическом методе или лучше инициализировать ее где то во вне и потом в методе только к ней обращаться? Особенно если метод вызывается примерно 50000 раз.
>>754289 ToXmlString(false) - возвращает публичный ключ в формате XML ToXmlString(true) - возвращает публичный + приватный ключ в виде XML
Сохраняешь полученную строку в файл/передаёшь по сетевому потоку своему собеседнику. Собеседник у себя выполняет выполняет FromXmlString(string xmlString) с твоим ключом - в результате его RSACryptoServiceProvider будет содержать такой же ключ, как у тебя.
>>754323 Это я понял, мне нужна возможность передать открытый ключ текстом, вида: 8yCy7vitENliJ6SHLQewbk04+ypF1B6QrprzbsLfJpTiX26RXzBLpDxj3jbrY1ZhRbYdXjj+IV9YcA/NcIiWSvl1CrU8Uc2w Чтобы он мог на сайте увидеть эту строчку, выделить, скопировать в программу и все заработало. Я так понял в RSA открытый ключ состоит из двух чисел, а вот на этом сайте http://crypt-online.narod.ru/crypts/rsa/ ключи генерируются как одно число. Вот мне так же надо.
>>754326 1. Можешь просто выдавать юзеру полученную XML строку - то что тебе нужно (скопировал, вставил, заработало) будет работать. 2. По твоей ссылке ключ приводят в формат кодирования Base64, можешь поискать как в него закодировать/декодировать строку. 3. Можешь ручками из полученного XML выдрать Modulus и Exponent, сложить их в одну строку, разделив, например, каким-нибудь спецсимволом (хотя насколько я помню, при одинаковой длине ключа длина получившейся строки всегда будет одинаковой, так что можно даже не разделять их спесимволом, а просто экспериментально узнать длину отдельных компонентов) и потом восстанавливать на клиенте.
Шарпач, у меня проблема. Я студент, подрабатывающий автоматизатором(автотесты на C#). Я более-менее знаком с языком/опп/паттернами и у меня есть желание после института заниматься разработкой или автоматизацией тестирования. Проблема в том, что я не умею в науку(что-то вроде теории множеств, теории категорий, конечных автоматов и тд.). Как самостоятельно изучить эти серьезные серьезности? Если что, я не собираюсь заниматься научной работой после института, но мне хотелось бы знать достаточно для работы в каком-нибудь там акронисе или касперски лабе.
>>754834 Да реализовал уже. Как я понял, нет способа шаблонные переменные через операторы типа < > сравнивать, даже если у структур перегружены эти операторы? только CompareTo, isEqual и что ещё сам придумаю, но не операторы?
>>754850 што што. грю, переменные шаблонного типа можно сравнивать операторами, блять, вот этими: <, >? или только указывать после объявления сигнатуры метода where T:IComparable и использовать CompareTo или может быть есть всё таки способ использовать именно операторы? знаю, что == можно реализовать, если указать where T:Class, ну и в классах соответствующих надо == переопределить и Equals(). интересуют именно < и >
>>754890 Операторы должны быть static методами, static методы не могут быть в интерфейсах - никакого сравнения интерфейсов через операторы. С другой стороны, у нас же ООП, идите нахуй со своими операторами, и пишешь классы, и оверрайдишь им методы.
>>754897 А хотя вот тут я задумался, от ситуации же зависит. Побитовое сравнение естессно быстрее оператором, чем вызовом метода. А в случае с ссылочными типами, один хуй же при использовании оператора вызываются методы, определённые либо у object'a, либо переопределённые в самом классе, и тогда разницы уже не так и много?
>>754781 >Проблема в том, что я не умею в науку(что-то вроде теории множеств, теории категорий, конечных автоматов и тд.). Это хуета для чсвшного быдла, не засирай этим мозги, прибереги их для чего-нибудь более полезного.
>>754911 >Это хуета для чсвшного быдла Ну хз, обычно я слышу эти словосочетания от опытных коллег. Они, в отличие от меня, занимаются сложными задачами, а не чистят legacy говнокод вилкой. Хочу иметь хотя бы какое-то представление, а то совсем дауном себя чувствую.
>>754900 на втором пике A - struct ООП жи, операторы нинужны и сахарок. Если ты сам переопределяешь операторы - разницы то и нет, вот с интами повеселее, но это похоже оптимизации уровня компилятора.
>>755183 Ты не понял, единственные операторы сравнения, применимые к дженерикам - == и !=, и то, если в сигнатуре метода указать, что шаблонный тип - ссылочный тип: where T:class
Помогите с одним вопросом, недавно спрашивали на собеседовании: Есть класс Person со свойством Name, от которого унаследованы 2 класса: Doctor и Patient. Какая есть логическая ошибка и как её исправить, если Doctor заболеет?
>>755199 >>755202 Да, весь вопрос, сам немного не понял смысла. Ошибка, как мне сказали в том, что свойство Name продублируется и надо как-то исправить это
>>755313 я, возможно, скажу глупость, но такой подход это дерьмо. создай модель для твоего окна и протаскивай все изменения переменной через проперти этой модели
>>755317 Я в wpf совсем недавно. >создай модель для твоего окна и протаскивай все изменения переменной через проперти этой модели Вот это чо значит? Ты имеешь ввиду, типа сделать где нибудь label, который не будет отрисовываться на окне, и в него я записываю данные из программной части (view model или как там мать его), и считываю data-trigger'ом?
есь хто из глобаллоджика?Аноним27/05/16 Птн 17:54:04#174№755388
у вас там есть какой-нибудь интернал систем, где можно найти сотрудников вашей шараги? есть четыре человека, а я только одного могу найти в социалочках. возможно я паранойу, но чет терзают смутные сомнения
Прочитал я, значт, про binding в WPF. Всё бы хорошо, но вот чего я так и не понял: допустим, есть у меня controlTemplate, внутри него объявлен DataTrigger. Как установить этот DataTrigger на объект, объявленный в xaml'e в ресурсах окна/страницы типа <local:myOwnType x:key = "QWE" Value = "False" /> где myOwnType - класс, реализующий соответствующим образом INotifyPropertyChanged ? Пытаюсь сделать что то типа <DataTrigger Binding = "{<-- вот что здесь то писать для связки с QWE?-->"} Value = "True"> ... </DataTrigger> объект QWE периодически изменяется в C#-коде (ViewModel оно называется или как?)
>>755509 upd Попытался в самом ControlTemplate поместить в его ресурсы <ControlTemplate.Resources> </ControlTemplate.Resources> >>755517 Мне нужно, чтобы визуальный интерфейс реагировал на изменение одной переменной. Если конкретно - нужно сделать так: по нажатию кнопки проверяется определённое условие. В зависимости от результата проверки, меняется булевая переменная и происходит либо одно, либо другое действие (анимация в моём случае). Именно эту булевую переменную я и хочу скормить дата триггеру.
>>755518 блят, upd не дописал. Пытаюсь короче поместить внутрь ресурсов контрол темлейта <local:myOwnType x:key = "QWE" Value = "False" /> и уже у контрола изменяю эту переменную таким образом: ((myOwnType)myOwnControl.Template.Resources["QWE"]).Value = true, всё равно ноль реакции, хотя свойство это меняется. У дата триггера прописал <DataTrigger Binding = "{Binding ElementName = QWE NotifyOnUpdate = "True"} Value = "True"" >
>>755532 А вот здесь <EventTrigger RoutedEvent="Binding.TargetUpdated"> Событие Binding.TargetUpdated - это событие в классе, который я сам пишу и который реализует (или в случае event trigger уже не важно) INotifyOnPropertyChanged? И как мне тогда прикрутить объект моего типа?
другими словами, это механизм, который позволит контролу(!) узнать о том, что какое-то забинденное на него свойство изменилось
в общем, не нужно тебе его писать. достаточно прикрутить вью-модел к элементу, забить ему биндинг на то свойство модели, которое ты будешь менять (булево в твоем случае) и реализовать поведение по targetupdated
Ребят, у меня пиздец. Создается в формочке массив кнопок. И мне надо шоб при нажимании на них в мэйне что-то происходило. К событию Кнопачка.Клик можно += только метод с параметрами (object sender, EventArgs e). Но мне требуется, чтоб при нажатии я мог воздействовать на один определенный объект. Но как его туда впихнуть? При += метода к событию никакие параметры указать нельзя, следовательно нихуя я туда не запихаю. Что делать-та?
Пытаюсь получить большое случайное число, для этого создаю массив byte, заполняю его случайными числами, а затем передаю в конструктор BigInteger. Однако иногда создается два BigInteger, иногда один, а может вообще ни одного. При этом массив byte создается и заполняется всегда. В чем может быть проблема?
>>755584 Работай с объектами в мэйне не напрямую, а через вызовы методов, ебта. Я полагаю у тебя есть какая-то логика для определения, какая кнопка что делает, передавай это в метод. Опционально можешь результат вернуть и уже с формой что-то делай.
А вообще непонятно нихуя у тебя кроме того, что ты говно какое-то проектируешь. Если ничего не понял - давай код
Аноны, поясните за делегаты по хардкору. Посмотрел + прочитал уже дохуя всего, но понимание до сих пор отсутствует. Как я себе это сейчас представляю-ссылка на функцию с определённой сигнатурой. Хотелось бы вкурить это до конца
>>755819 Ты меня тролишь? На скрине в p нету числа, он мне Exception выкидывает, когда я пытаюсь его использовать. Когда оно нормально инициализируется, Exception, а нет.
>>755823 Ну так, немношк. Про exception ты ничего не говорил, и даже сейчас ты не говоришь что за ошибка. >посоны, у меня чет не работает, помогайте блядь Попробуй число в консольку вывести.
>>755827 Вот Exception, а вылетает он, потому что D не инициализировано. Как я уже сказал, процесс этот случайный, иногда D инициализируется нормально и программа работает без вылетов.
>>755786 У меня есть массив кнопок в форме. Есть такого же размера массив объектов, который я создаю в мэйне. В этих объектах есть метод, который вызывается при нажатии на кнопку. Ради простоты задачи пусть будет так, чтоб кнопка удалялась после нажатия. Для этого в вызываемый по событию метод нужно через ref засунуть эту самую форму и координаты кноаки в массиве и внутри метода удалить данную кнопку. Но если запись такова: муформ.кнопочка[и, ж].Клик += обж1.метод_при_клике; В этой записи нельщя передавать никаких параметров методу метод_при_клике. А мне надо передать и экземпляр формы, и переменные и и ж, чтоб метод знал какую кнопку удалить. Сам метод записывается в своем классе так: воид метод_при_клике(обжект сендер, эвентАргс е){} Если еще параметры добавить, то их все равно нельзя запихать. Я придумал сделать так, чтобы внутри этого метода изменялась переменная буул внутри данного класса, а потом из мейна в цикле, проверяющем все экземпляры этого объекта при таком-то значении этой переменной удалялась данная кнопка. Работает. Но это такая убогая и кривая реализация. Плюс программа будет усложняться далее - и что, мне лепить еще миллионы циклов внутри циклов чтоб вконец запутаться в этом клубке кода? Хотелось бы более красиво это реализовать.
Поясните мне вот какую вещь. Есть допустим у меня несколько контролов в контролах в контролах. И обращение к ним выглядит примерно как Control.Control.Control.Control.Label.Text
Если я создам переменную var s = Control.Control.Control.Control И буду потом все это херачить через нее как s.Label.Text Будет ли это правильно с точки зрения оптимизации? Чисто теоретимчески. Переменная будет потом заменена на полную конструкцию или компилятор ее реально создаст и она будет занимать память вот беда то?
>>755835 >и внутри метода удалить данную кнопку Это максимум говно, метод модели не должен знать ни о какой форме, ему похуй вообще на твою форму, понимаешь? Его это ебать не должно. Форма, напротив, должна знать о модели твой массив объектов в данном случае, потому что она является отображением этой самой модели, один объект -> одна кнопка. Передаешь массив объектов в твою форму и записываешь в private field, рисуешь кнопки относительно этого массива. В каждую кнопку записываешь ее координаты в Tag там или куда еще, в хэндлере кнопки твой массив уже есть в приватном поле, удалаешь свой объект по координатам из этого массива и перерисовываешь, например, кнопки относительно новой измененной модели.
>>755849 Так тебе по времени или по памяти оптимизировать? Ссылка то на объект будет занимать совсем чуть-чуть твоей драгоценной памяти, а время доступа к свойству ускорится пропорционально вложенности контрола.
>>755843 Так вот оно что, он последний байт как знак определяет, понял, спасибо. Решил проблему с помощью этого кода (пик). Правда не понятно, что такое 0x80.
Начинающий код манки репортинг ин Есть 3 класса: логгер, адресная книга и юзер. Есть 3 паттерна: сингтон, стратегия, фабрика. Правильно ли под логгер кинуть стратегию для записи в разные источники, синлтон на книгу(коллекция юзеров с ивентами)? Непонятки с фабрикой. Так как у нас один тип юзеров фабрику использовать нецелесообразно
>>755853 Я вообще интересуюсь. Просто столкнулся сейчас с такими длинными конструкциями и появилось желание сделать как в sql. Там просто хуячишь select * from AddrTradePromoItem a и потом ко всем колонкам можно обращаться через это самое a. Просто пишешь a.ID, a.Item и т.п. И вот подумалось как бы так провернуть в шарпе. Но нагуглил только создать переменную и хранить в ней ни то указатель, ни то сам объект. наверное все же упор на скорость, т.к. эта херь должна в цыкле отображать выборку и БД. А там от 10 до 100к записей.
>>755868 >и это программисты Так берется highest order bit, берется он у последнего байта, потому что конструктор ждет байты в little-endian порядке. Так как у тебя случайные байты берутся, тебе код с твоего пика не нужен, ты можешь просто нулевой байт в конец массива добавить.
>>755883 Я просто в шарпе не очень. Просто нужно оптимизировать одну прогу, оставшуюсю от прошлого сотрудника. А там на сколько я могу судить пиздец полнейший. Начиная с того, что делается пара тысяч апдейтов в цикле и открытие с закрытием соеденения тоже в цикле происходит. Из-за чего на каждый апдейт уходит по 2 секунды. В общем решил немного подтянуть знания в процессе разбора чужого кода.
>>755852 Тогда все равно нужно будет выгружать массив из формы в мэйн, там с ним оперировать и загружать обратно. Смешно, но я делаю "сапер". Кнопки о которых говорю - это ячейки игрового поля. При первом нажатии распределяются мины и при каждом открывается клеточка, и если там не мина и клетка не граничит с миной - запускается алгоритм поиска, который открывает незаминированное поле вокруг нажатой ячейеи. Вот проблема в том как проще и адекватнее привязать кнопки к этому алгоритму. Пока что в цикле чекается просто каждый экземпляр объекта с информацией о ячейке, и если переменная было_нажато == тру, то он делает все последующие операции. Кнопки я не в ручную расставлял, а генерировал циклом. Для инфы о ячейках создал отдельный класс, где указаны все параметры клетки и методы, оперирующие с ней при нажатии. А так же генератор случайной расстановки бомб.
>>755893 Нахуй ты его в main вообще создаешь? Он у тебя шарится между формами? Ячейка поля не должна рулить всем полем она охуела штоле в конце концов?, напиши менеджер поля, с методом OpenCell например, который будет рулить самой игрой, открывать нужные ячейки, завершать и игру и что-нибудь еще, ячейки же просто будут хранить состояние - открыта/закрыта и есть ли в ней мина.
>>755893 Через цикл, проверяющий переменную, изменяемую нажатием это реализовывать просто не очень удобно и красиво. Не удобно для дальнейшего усложнения кода или добавления чего-то в него. Почему нельзя, шоб событие при клике запускало все напрямую?
>>755905 У меня это в отдельном классе. Ты предлагаешь это их объявить в форме? Хм, а так же и правда удобнее. А так мэйн работает как связующее между этим классом и формой. Согласен што хуево по сравнению с твоей идеей
>>755908 И что - весь код, работающий с полем, тоже придется пихать в форму. В моем представлении в форме не должно быть много кода, все ядро должно быть в мэйне. Я не прав?
>>755913 Вот для этого напиши класс менеджера поля, который будет хранить поле и предоставлять методы для его изменения. А в форме сделаешь _mineFiledManager = new MineFieldManager(new MineField(8, 10))
>>755922 Да, иначе, когда ты будешь спрашивать пользователя какого размера поле он хочет и сколько там мин должно быть, тебе придется эти параметры передавть Manager'у, а его не его задача, у него свои могут настройки/параметры, например открывать ли соседние пустые клетки или пускай юзер сам их тыкает.
>>755869 Все три паттерна идут в логгер, он должен быть доступен из разных мест, поэтому синглтон, а куда писать и что писать внутри него решает фабрика стратегий, хехе.
>>755893 У тебя хуйня кака-то получается, остановись. Я так понимаю, что у тебя форма рулит логикой, хотя она вообще ничем рулить не должна, кроме себя. Анон правильно пишет, тебе нужен менеджер поля и вотэвар. Он что-то делает, а форма пусть реагирует на это. Как вариант, раз у тебя винформс, можешь из менеджера запускать события со своей сигнатурой, подпишешься на них в форме и будешь рисовать то, что тебе нужно
>>755943 Логика должна реагировать на форму. В форме нажимаешь кнопачку - должен мэйн это почувствовать как-то и среагировать, а потом из себя воздействовать на форму. Но это неудобно просто-напросто. Тот анон наоборот предлагает объявить поле и менаджпр в самой форме.
Дроч, помогай. Я заебался. Как в WPF сделать так, чтобы DataTrigger реагировал на изменение одной переменной, и где нужно размещать дата триггер и эту переменную? Имею ввиду, я делаю шаблон контрола, и мне показалось логичным разместить дата триггер в <controlTemplate>, а в его ресурсах создать объект класса, реализующий INotifyOnPropertyChanged. Не заработало. Попытался сделать <DataTemplate> и в его ресурсах разместить вышеупомянутый объект. Результат - хуй. Причём контролы, которые используют данные шаблоны (что ControlTemplate, что DataTemplate) видят и изменяют свойство, по которому я бы хотел заставить работать DataTrigger, но всё равно какая то хуйня и ничего не работает. Што делать то, блджад чтобы эта ёбаная сука уже завелась блять а то завёлся тут только я ебучий сука впф в рот его ебать мочалкой суки блять.
>>756297 Дак он мне не зашёл, епта. Там для него нужно привязываться к существующему контролу, и этот контрол в дальнейшем должен привязываться к определённой переменной из класса, реализующего INotifyOnPropertyChanged. В моём случае мне не нужно лишнее звено в виде промежуточного контрола, ни один контрол не должен быть привязан к переменной, которую я хочу использовать в DataTrigger. Я хочу, чтобы во ViewModel был объект, который имеет свойство, которое при изменении дёргает дата триггер у ControlTemplate'a и стартует анимацию.
>>756325 Да там уже не булевая параша, я её стринговой сделал, а то наткнулся на мнение, что для дата триггера ещё конвертер хуярить нужно. Как прибиндить свойство - я хз, ибо в ВПФ секу чуть менее, чем нихуя. Если я тебя правильно понял, ты предлагаешь к одному из компонентов ControlTemplate'a привязать свойство из класса, реализующего INotifyPropertyChanged, а затем этот компонент задействовать в EventTrigger? Если да, то текст значения свойства из класса нужно размещать в контент какого нибудь контрола → он где то да будет отображаться. Мне это не нужно.
>>756331 нет. это вроде у крестовиков общепринятое именование, в сисярпе в основном приватное поле с маленькой буквы, а свойство - с большой. хотя, конечно, называй как хочешь.
По мотивам этого говна. Нашёл, короче, решение. Вдруг кому понадобится - мне подошло решение вот отсюда с VisualStateManager http://stackoverflow.com/a/28188008
Анон, задали написать приложение, с использование Model View Controller. Есть какая нибудь гайдуха или учебник, чтобы плавно подвести к созданию такой вещи? Я в принципе понимаю как это сделать, но у меня это получится убого, хотелось бы круто, на событиях. А то изучая C# так к ним привыкнуть и не смог.
>>756331 По конвенции Android можно писать mфилд. Это правда Java, а не C#. Я называю поля просто филд (а свойства с большой буквы) и при присваивании this.name = name. Не нужен этот маразм.
>>755494 Там вообще пиздец. Системами контроля версий никто пользоваться не умеет. Постоянно нужно решать задачи вроде >>755888, только и код еще написан на Delphi, Visual FoxPro или тому подобном говне.
>>756774 помнится первый мой опыт внедрения EF в прожект пришелся на попытку построения статистики основываясь на значениях некой базы данных. так там все колонки были NULLable, а первичного ключа таблицы не имели вовсе. не стоит, я думаю, говорить про внешние ключи и зависимости таблиц, а тем более индексы и всявся. на мой вопрос "шоштакоето, пацаны, чо так хуевасто все?" мне ответили "ну так, потомушто могу"
>>755960 Правильно это через вызовы делать. Определил интерфейс для клиентов, они уже сами пусть разбираются. А кто клиентом будет не важно вообще. Хоть диалог, хоть консолька, хоть сервис.
Дващ, а дващ. Что происходит с объектами на одной странице в WPF, когда идёт переход на другую? Они остаются в памяти или ссылки на них удаляются, а мусорщик потом приберёт?
Анон, помоги, пожалуйста: Реализовать структуру данных для хранения координат прямоугольника и вычисления его сторон (а также - наоборот - преобразование сторон + координаты левого нижнего угла в координаты углов). Также реализовать определение длины периметра и площади прямоугольника, длины диагонали. Можно подумать и о операциях поворота на заданный угол (хотя бы на 90, 180), сжатии, растяжении. Рисовать его необязательно - только расчеты.
Вот, что я написал, плюс ещё хранение и вывод в консоль. Сейчас не могу написать вывод координат вершин [code lang="csharp"] class Rectangle { private double width; private double height; private double degree; private double x; private double y; public Rectangle(double x, double y, double width, double height, double degree) { this.x = x; this.y = y; this.width = width; this.height = height; this.degree = degree; } public double Width { get { return width; } set { width = value; } } public double Height { get { return height; } set { height = value; } } public double Degree { get { return degree; } set { degree = value; } } public double X { get { return x; } set { x = value; } } public double Y { get { return y; } set { y = value; } } public double Perimeter { get { return (width + height) 2; } set { double newwidth = (value) (width / ((width + height) 2)); double newheight = (value) (height / ((width + height) * 2)); width = newwidth; height = newheight; } } public double Diagonal { get { return Math.Sqrt(Math.Pow(width, 2) + Math.Pow(height, 2)); } } } [/code]
>>756911 Как видишь я пошел с конца, в классе имеется запись нижнего левого угла + угла наклона Я реализовал изменение периметра так, чтоб стороны изменялись пропорционально отношению этих самых сторон к старому периметру. Растягивание и сжатие понятное дело и так есть. Теперь нужно как-то найти координаты этих вершин имя угол наклона и размеры сторон
>>756905 потому что там скучная хуета и нужно использовать новый материал для ускорения процесса вхождения?)) (вхождения моего члена тебе в рот, я же просто хотел совета, остряк ебаный)
>>756914 Вот реализовал поиск координат, но теперь нужно как-то учесть отклонение этого самого прямоугольника, если его стороны не параллельны осям координат... public double GetAngleX( int angle) { double posX = 0; if (angle == 0)//левый нижний { posX = x; } else if(angle == 1)//левый верхний { posX = x; } else if (angle == 2)//правый верхний { posX = x + width; } else if (angle == 3)//правый нижний { posX = x + width; } return posX; } public double GetAngleY(int angle) { double posY = 0; if (angle == 0)//левый нижний { posY = y; } else if (angle == 1)//левый верхний { posY = y + height; } else if (angle == 2)//правый верхний { posY = y + height; } else if (angle == 3)//правый нижний { posY = y; } return posY; }
Аноны, по учебе нужно запилить веб сервис по сишарпу на 5 методов. Решил сделать сайт для студентов где можно добавить информацию о себе и редактировать ее. Сейчас уже на месте когда можно добавить инфу о себе и она записывается в бд и выводится на главной. Теперь хочу сделать возможность редактирования информации.
1. 5 методов контроллера? 2. После регистрации пытаюсь записать номер айдишника строки в куки знаю, что это хуйня, но я хочу уже хоть как-то сделать и лень еще с регистрацией ебаться. Код пикрелейтед 1. Но проблема в том, что куки просто не создаются, я проверял. Также пытался создать их способ когда создаешь экземпляр класса, но та же хрень.
3. Правильно ли вообще я делаю, что номер айдишника преобразовываю в строку сохраняю в куках и когда нужно, то я обратно преобразовываю в числовое и уже использую?
4. Если 3 пункт правильный, то, анон, как правильно написать запросы в бд, чтобы получить, к примеру, данные соответствующие айдишнику который я вытянул с кук.
5. Как написать запрос редактирующий полученные данные с метода?
6. Вообще есть ли какой-то мануал где самые основные запросы описаны?
> куки просто не создаются вроде бы как через this.Context.Response.Cookies.Set(new HttpCookie(CookieName, value));, не?
> пользуясь таким способом будет работать как надо ну ачо бы и нет. ты отдаешь клиенту ID, потом он тебе следующим запросом эту ID обратно присылает
> как правильно написать запросы в бд, чтобы получить, к примеру, данные соответствующие айдишнику который я вытянул с кук this.db.GovnoTable.SingleOrDefault(e => e.Id == int.Parse(this.Context.Request.Cookies.Get(CookieName).Value));
> запрос редактирующий полученные данные с метода как-то не понятно немношк. т.е. ты запросом отправляешь некую модель, с помощью значений которой и айдишника в куках ты хочешь внести изменения в запись БД?
> самые основные запросы описаны SQL/Web? какие запросы, чего ты хочешь-то?
>>756921 > там скучная хуета > для ускорения процесса вхождения примерами про уточек ты хочешь ускорить процесс понимания? нуок
>>757032 >вроде бы как через this.Context.Response.Cookies.Set(new HttpCookie(CookieName, value));, не?
заработало, правда без this.Context ну да ладно, главное, что работает, лол, спасибо, хотя и некоторые прошлые способы работали, я просто в глаза долбился
компилируется тоже без this.Context, но уже при работе вылезает исключение пикрелейтед.
И еще если эт исключение не страшное, то потом я передам student в представление. А как там уже вывести эти данные среди html кода
В индекс страницы у меня написано в начале @model IEnumerable < StudentList.Models.Student >, а потом я перебираю цикл var item in Model и уже вывожу @item.Value.
А в случае когда не будет массива, то как подключить модель и отобразить данные?
> запрос редактирующий полученные данные с метода > не понятно человек вводит данные, жмет на кнопку, запускается метод который получает эти данные и изменяет данные той строки где айдшиник тот который я вытянул с кук
> самые основные запросы описаны
ну я как заметил, здесь мы даже не писали запросы SQL запросы. Меня интересует синтаксис или примеры запроса типа как ты предоставил выше. this.db.GovnoTable.SingleOrDefault(e => e.Id == ...
Сап богоподобным, вопрос такой: имея базовые знания c# : дженерики, осн. классы, события и проч., понимание ООП и способы реализации на шарпе, представления о чистом коде(все это взято от курса компании Контур), небольшом опыте создания десктопов, и пары сайтов на Joomla, возможно ли найти работу/фриланс/сенсея для прокачки скила в веб приложениях (.ASP MVC) ? Где искать и куда тыкаться? P.S. .ASP MVC выбран ибо все компании в моем городе куда я пытался устроиться junior присылали тех. задание с ASP
>>757087 > int.Parse(this.Context.Request.Cookies.Get(CookieName).Value о, ну тут я загнался, LINQ не сможет транслировать этот вызов в SQL, следовательно, тебе надо объявить переменную с ID и ее использовать уже в SingleOrDefault var id = int.Parse(this.Context.Request.Cookies.Get(CookieName).Value); this.db.GovnoTable.SingleOrDefault(e => e.Id == id);
> в случае когда не будет массива а что будет? в смысле, как так может получиться, что у тебя не будет данных?
> запускается метод который получает эти данные и изменяет данные той строки где айдшиник тот который я вытянул с кук
[HttpPost] public ActinoResult Edit(SomeGovnoModel model) { if (!this.ModelState.IsValid) { throw new HuiPizdaException(); }
> var id = int.Parse(this.Context.Request.Cookies.Get(CookieName).Value); > var entity = this.db.GovnoTable.SingleOrDefault(e => e.Id == id); entity.SomeProp = model.SomeProp; entity.SomeProp1 = model.SomeProp1; entity.SomeProp_1 = model.SomeProp_1; this.db.SaveChanges();
return null; }
> Меня интересует синтаксис или примеры запроса типа как ты предоставил выше. this.db.GovnoTable.SingleOrDefault(e => e.Id == ... SELECT t.[Property], t.[Property_1] FROM Table AS t WHERE t.Id = @id вообще, любая книга по SQL пойдет. или википедия или T-SQL в MSDN
>>757093 > как вывести это в представлении ну ты ж сам написал, што: > В индекс страницы у меня написано в начале @model IEnumerable < StudentList.Models.Student >, а потом я перебираю цикл var item in Model и уже вывожу @item.Value. передается во вью твой энумерабл через return this.View(studentotaList) в ActinoResult методе (Index по сути)
А как здесь указать, чтобы для конкретной строки менялись данные. Я же по айди фильтрую.
entity.Name = model.Name; , но нейм конкретного айдишника
Вообще, спасибо за помощь, я бы умер в гугле, походу двач единственное место где можно получить быстрый ответ, на стаковерфлоу можно всего один вопрос задать и редко отвечают, на форуме ждешь неделю
напиши, если не сложно еще запрос, чтобы получить 5 строк где SomeProp имеет наибольшее значение хотя можно и просто где SomeProp имеет наибольшее, можно будет просто когда буду перебирать, то поставить счетчик
хочу сделать еще типо раздел с топом судентов с лучшими оценками, чтобы препод уж точно не доебался, что функционала мало
>>757137 какой ты молодец, а отсортируй таблицу по своему признаку по убыванию, а потом возьми из своего набора N записей. я думаю, сам осилишь? LINQ, ничего более
>>757032 Примерами для уточек? Я надеюсь, что ты скачаешь pdfку и откроешь её. Я уверен, что ты не станешь, но если ты это сделаешь - как же ты похаваешь дерьма, ебучий осёл. PS Книгу посоветовали читать при трудоустройстве в гугл. (бля не лично, в статье от гугла конечно)
Имеется текстовый файл с разрывами строк /r/n и /n (пикрелейтед). Нужно заменить все "одинокие" /n на /r/n. Какое регулярное выражение было бы правильнее использовать?
>>757355 Я бы решил без всяких регулярок в данном случае. Сначала заменяем все /r/n на какую-нибудь уникальную срань. Затем все /n на /r/n. А затем срань на /r/n. Конец.
Использую UdpClient.Receive, чтобы слушать порт. Естественно он блокирует поток. Как мне сделать, чтобы он слушал порт например 10 секунд, а затем продолжал работу?
Итак знатоки, вопрос. Как сделать загрузку изображений клиентом, но на сторонний хостинг, чтобы на моем сервере, в бд хранились ток ссылки на изображения.
Писал себе спокойно программку в VS (первый пик). Внезапно стала вылазить эта хуйня (второй пик) при каждой компиляции и запуске приложения. Чем лечить такое?
как можно обеспечить безопасность WebAPI приложения (и пользователя, его использующего)? AntiForgery, техники авторизации, HTTPS скипаем как очевидное ибо на интервью человека такой ответ не впечатлил
>>757852 не уверен, мы всей-таки говорим оп ситуации, когда контент не приходит тебе одним дуновением реквеста. ты не сможешь отправлять файл побайтово, пока клиент тебе его пытается пропихнуть. а если сможешь, то я хуй его, целесообразно ли это
Хлопци, можно ли в сисярпе для своего класса задать определённое поведение для приведения к типу не родительского класса? Ну например, есть у меня класс A со свойством public int X {get;set;}, что мне нужно в нём описать, чтобы я мог писать int i = 5+(int)A, где (int)A возвращает, допустим, значение свойства X?
Есть обджект в котором коллекция обджектов через линкью нужно посортировать эту коллекцию в словарик с двумя ключами. То есть, на выходе получить словарь, где на двва значения ключа мы имеем по новой коллекции этих обжектов. Как элегантно замутить подобное?
Как передать в метод-расширение который вернет пользователей лямбду в качестве параметра и еще параметры элементов (от и до) над которыми мы будем шаманить?
Вопрос в том, а можно ли как-то упростить? Или понятнее написать? Например, с первого взгляда может быть непонятно почему при несовпадении надо ресетнуть tempCount = 1. Так надо сделать, потому, что в конце цикла временной переменной присваивается число из массива, которое точно там есть минимум в одном экземпляре. Помоги новичку, программачик.
>>759098 Экспрешшоны то зачем, ти чиво? Dictionary не будет тебе ничего группировать, groupby не предоставляет доступ по ключу, если GroupBy().ToDictionary() то да, а так нет.
вот ни черта не разобрался с этим Допустим, у нас есть List<Users> list
Нам нужно забацать функцию, которая первым аргументом принимает некую лямбду (Expression), вторым и третим - элементы от и до. Потом в этом же методе через линк и на основе передаваемой лямбды выводи юзеров. Я туплю, но не понимаю как грамотно это сделать
>>759270 какой-то ты странный > на основе передаваемой лямбды выводи юзеров каша какая-то. надо-то тебе чего от этих трех параметров? какую информацию в методе тебе должна предоставить первая лямбда? что есть "элементы от и до"? критерии, от какого пользователя начинать, и кем заканчивать? или конкретные инстансы Users от которого и до которого?
Допустим я создал задачу и жду её выполнения 10 секунд. var task = MegaTask("parametr"); if (task.Wait(10000)){ //код, если задача успела выполниться } Как мне отменить выполнение задачи, если она не успела выполниться?
>>760124 Но это же мне придется в задаче отлавливать изменение токена вручную. А если у меня в задаче есть метод, блокирующий выполнение потока? Я так и не дойду до проверки на токен.
>>750374 ну торопись, подумай. Геймдев в рашке (особенно мелкий) это полный пиздец. Зп маленькие, запросы и требования охуевшие. Съебался в тырпрайз - слезы счастья на глазах. Все строго по таскам, все оговорено, никто не доебывает постоянными изменяющимися задачами. И да, платят больше. Если все-таки хочешь геймдев и нормальные деньги, выбор только один - с++.
Сап программач. Получаю UDP пакеты и сразу их закидываю в очередь packagesQueue (пик 1). Очередь обрабатываю в отдельном потоке, в методе PackagesHandler (пик 2). Суть в том, что этот поток очень сильно нагружает процессор. Я понимаю, что это из-за бесконечного цикла, но другого решения придумать не могу.
>>760553 вариант так себе - перед continue добавить thread.sleep
вариант получше - ждать Manual/AutoResetEvent
Диаграмма классов C# на Linux/OS XАноним03/06/16 Птн 12:20:50#414№760562
Нужно построить диаграмму классов по PCL dll'ке или по проекту Xamarin.
VS юзать не могут работаю на маке, Для Xamarin/VSCode нужного плагина не нашел. Нашел NClass - он не обновлялся с 2011 и тупо падает при открытие скомпилированной dll.
Может сайты какие-нибудь есть что бы online это делали? Или еще какие-нибудь C# приложения (работающие на mono)?
Поцаны, поясните тупому, вот есть класс "Главпетух" который реализует интрефейс "Кудахтер", и есть дочерний класс "Шконарный петух", так вот, дочерний класс полностью наследует реализацию интерфейса "Кудахтер" ?
Cап программач, только что попробовал работу с БД Access. В итоге на DataGridView отображаются колонки, вот только сохранить данные нихуя не получается. Да и при изменении самой БД, при компиляции программа кладет на это хуй. Хоть колонки удаляй, хоть данные вписывай - ноль реакции. Анон, помоги плез
Посоны, нет ли какой либы, для поиска файлов по wildcard? Нужны include/exclude фильтры для файлов/папок. Например как в msbuild можно указать dir1//*.yoba, вот я хочу либе отдавать набор таких строк, а она мне файлы в ответ. Можно было бы из msbuild'а выдрать, но он большой и зависимости на зависимостях, оверкил в общем.
>>762015 В чем там дело? Тоже хотел делать на .NET на основе Access, были такие же вопросы, пока отложил эту задачу. Надо может сделать тупо поля с текстом и списками, где надо, чтобы добавлять данные? Скинь ссылку, по которой разбираешься.
Платина. Поясните за .net core. 1) есть ли вакансии? Сильно ли отличается процесс разработки mvc? 2) удобно ли разрабатывать на линуксе/маке в VS code? Единственное, что удерживало меня от покупки мака - это то, что я дотнетчик. С редактором вместо Иде готов мириться.
>>762364 ты думаешь, ~Core - это какой-то принципиально другой дотнет? процесс разработки отличается так же, как отличается процесс разработки на новой и старой версиях продукта
Предположим, есть class Base. И есть class Derived : Base. Тогда в чём смысл Base base_derived = new Derived? Я думал, что если Derived оверрайдит что-то в Base, то объект будет типа Base но с частью свойств Derived - попробовал погонять так и сяк, но нихрена, и у меня получилось, что от Derived сработал только конструктор, как я понял если я вообще правильно понял.
>>762500 >>762760 Я и virtual, и override ставил. Сейчас ещё раз попробовал - получилось. Видимо, что-то неправильно в прошлый раз сделал, но код сохранять не стал. Кода было больше, но он был такой же, и свойства не менялись. Хотя одно из свойств конструктором Derived менялось.
У меня вопрос к гуру архитектуры. Есть контроллер, который аплодид файлы на удаленный сервер. Наследует интерфейс, который дает доступ к методу Upload и все.
Есть GUI с кастомным диалогом, по типу FileDialog (браузит файлы на сервере) и есть, э, консолька. Обе этих хуйни можно использовать для вызова аплода из контроллера. Теперь проблема: GUI на wpf и нужно сделать так, чтобы при сохранении файла, проходила валидация и диалог не закрывался, если валидация не прошла. Как это лучше сделать? Сейчас на кнопку save навешана команда, которая банально задает dialogresult для вьюхи и она закрывается.
Идеи: диалог открывается не напрямую из контроллера (он не знает про гуй вообще), а из другого контроллера, который на действия от пользователя вызывает нужную хуйню. В этот контроллер вынести валидацию в виде метода и передавать его делегатом во вью модел. Перед закрытием проверять результат, tru - закрыть, false - не надо. Лучше я ничего не придумал, но от этой идеи веет говном, как мне кажется. Кто что посоветует?
Аноны, кто напишет просто приложение базы данных? Просто чтобы таблички в нем редактировались и сохранялись, ну пару отчетов каких нибудь. Стоимость работы обсудим
Запрашиваю поддержку у mvc entity богов. Суть проблемы такова: через Framework надо обратиться к разным дата провайдерам и сейвченджнуться. т.е. есть вот такое:
public void someMethod(SomeViewModel item) { Framework.FirstDataManager.FirstEdit(item.First); Framework.FirstDataManager.FirstEdit(item.Second); }
при Db.Entry(item).State = EntityState.Modified; выдает: An entity object cannot be referenced by multiple instances of IEntityChangeTracker. как я понял проблема именно в том что подключение к базе еще не разорвано и к ней пилят новое, по-этому такая хуйня, как такое решать.
>>763412 да я ниче там не трогал, вот только это дописал private void bindingNavigatorAddNewItem_Click(object sender, EventArgs e) { clientTableAdapter.Adapter.Fill(vKRBDataSet); }
Анон, объясни дауну. Вылез из бункера, тут завезли C#5.0 с его async/await связкой. Который день играюсь с этим, но до сих пор грань в моём понимании между асинхронным и обычным кодом тонка. Вот допустим таск запускаем, да, живёт своей полноценной жизнью. Вот допустим другой таск запустили в асинхронном методе и ожидаем его, он что-то делает, компилятор уже успел прикрутить СтейтМашину и продолжение, выполнил таск и продолжил. А вот если я получаю, допустим, список пикч таким образом: Bitmap[] bmps = null; HttpClient hc = new HttpClient(new HttpClientHandler() { Proxy = null, UseProxy = false }); var urls = users.Select(v => { return v.AvatarUrl; }).Where(url => !String.IsNullOrEmpty(url)).ToList(); var tasks = urls.Select(async url => { return new Bitmap(await hc.GetStreamAsync(url)); }); bmps = await Task.WhenAll(tasks);
Массив ждёт выполнения тасков и по окончании достаёт из этого IEnumerable<Task<Bitmap>> tasks сами пикчи для дальнейших манипуляций. Анон, поясни для уверенности, как рюмка на столе, await просто ожидает пока не выполнится метод и если там что-то есть для возврата, то он это возвращает?
Анон, а если ещё пояснишь что происходит с вызывающим потоком, то я отсОсу буду тебе признателен.
>>749551 >9. Что почитать? >- The C# Player's Guide, второе издание (RB Whitaker) - отличная книга для ньюфагов в шарпе, все расписывается довольно подробно, очень много примеров кода.
Ребят. А есть че нибудь подобное на русском, для совсем нюфагов?
Ребят, у меня в программе есть функция отправки через POST и функция, грузящая капчу на антигейт и возвращающая результат. Все это наглухо вешает основной поток. Что мне использовать, если я нуб чтобы это все запихать в другие потоки и жить спокойно? Капча пишет результат в текстБок а так же обращается к richTextBox.Lines. Подскажите. Есть вроде какой-то бэкграундКомпонент?
Пацаны, у меня есть программа с формами для заполнения в wpf, как мне перенести из нее данные в шаблон для печати? В бумагу на пике в каждой строчке должна печататься информация из программы.
>Известно, что у чисел, которые являются степенью двойки, только один бит имеет значение 1. Напишите программу, которая будет выполнять проверку – является ли указанное число степенью двойки или нет.
Понятно что надо надо проверить что в числе, только один бит имеет значение 1, но как это сделать средствами c#?
И из той же оперы >Известно, что у четных чисел младший бит имеет значение 0. Напишите программу, которая будет выполнять проверку чисел на четность . Предложите два варианта решения поставленной задачи.
Первый вариант как я понимаю, сделать << 32(в случае работы с int) и получится либо 32 нуля либо 32 единицы. Насколько правильно так решать задачу и какой еще 1 вариант решения может быть у нее?
Вопросы дико нубские наверное, но никогда не занимался битоебством и хотелось бы разобраться с этим. Буду очень признателен за помощь. Задачки из курса itvdn, что в шапке треда
Делаю проект, суть которого создать веб службу на 5 методов и приложение которое будет использовать эти службы.
Я невнимательно читал и подумал, что веб сервис это сайт и сделал сайт на asp.net mvc, есть бд, есть методы в контроллере которые работают с этой бд.
Но как я понял, веб сервис это что-то к чему должен мой сайт обращаться и брать оттуда данные, то есть по сути брать не с локальной бд, а с "другого сервера" чтоли к которому могут иметь доступ и другие сайты. Я правильно понял, аноны?
Если да, то что теперь я должен сделать?
По сути я должен создать веб службу в ней бд и как-то подключить к своему сайту эту службу и работать с бд той веб службы?
И еще как создать проект веб службы? Я просто не вижу в меню создания проектов в вижуал студио надписи "веб служба" или "web service". я уже совсем запутался и еще понял свой проеб поздновато, надо по фасту все исправлять, стремно если не успею
Почаны, подскажите на вскидку, можно ли как-то захуячить эмуляцию просмотра твича, ну чтобы с минимальной нагрузкой на комп это происходило. Ну типо всякие розыгрыши для смотрящих канали и все такое. Может уже ПО есть или куда копать в плане разработки.
>>764217 Ясно только то, что ты нихуя не понял. Веб сервис - это что угодно, что отдает тебе данные, на какой технологии ты его напишешь - вопрос не первой важности.
>>764327 Задание сделать веб сервис и приложение которое будет использовать веб сервисы этого метода.
То есть по сути приложение у меня уже есть. Теперь по идее нужно создать веб сервис, там создать бд, и создать методы, подключить как-то веб сервис к своему сайту и с методов контроллера своего сайта обращаться к методам веб сервиса? Я правильно понимаю?
>>764484 тебе нужно сделать одно из: - mvc приложение с развернутым там недорест веб-сервисом - webapi приложение - wcf приложение (это как бы то, что будут ждать в идеальном случае, если я правильно понял) и к этому нужно сделать нечто, что будет использовать апи твоего вышеописанного говна. под нечто я имею ввиду именно нечто, хоть консольное приложение
Аноны, мне надо парсить следующее: >Уведомление отправляется как HTTP-запрос на адрес, указанный в настройках счета, в следующем формате: >метод — POST; >каждый параметр уведомления указывается парой ключ/значение в виде параметра POST-запроса; >MIME-тип — application/x-www-form-urlencoded; >кодировка символов — UTF-8. >Для приема уведомлений рекомендуется использовать протокол HTTPS. Обратите внимание, что получение контактной информации об отправителе в уведомлениях возможно только при использовании этого протокола. При использовании протокола HTTP контактные данные в уведомлении передаваться не будут.
Мне для парсинга этого надо что учить? Web-Response?
>>764566 Я в webResponse знаю только как это пишется, и то, возможно, неправильно. Ща буду разбирать. Просто не хотелось бы разбирать то что не то. А может кто-нить скинет простенький пример, что б в одном окне отправить Hello, а в другом принять, через WebRequest и WebResponse?
>>764603 Вот и я так понимаю, что мне надо не создавать запросы а генерировать ответы на них, и классы WebRequest и WebResponse мне не помогут. А что надо, что бы ответить на запрос WebRequest я пока не понял...
Литература по ASP.NET первая устарела. Я пытался на вс ком 2015 запускать проекты, везде эксепшны и ошибки. Чо посоветуете, аноны? Качать 2013 для professional asp.net или нахуй?
>>764489 Я уже понял, что мне нужно сделать веб апи и приложение которое будет его юзать, меня интересуют вопросы и конкретно вопросы которые я задал.
>То есть по сути приложение у меня уже есть. Теперь по идее нужно создать веб сервис, там создать бд, и создать методы, подключить как-то веб сервис к своему сайту и с методов контроллера своего сайта обращаться к методам веб сервиса? Я правильно понимаю?
>>764808 К созданному сайту, я сделал простой сайт который юзает бд, потом перечитал требования к проекту и понял, что нужно сделать сервис и приложение которое юзает его. Писал же уже.
Приложение - сайт уже есть, нужно прикрутить к нему сервис.
>>764839 Какие html и js? Причем тут это? Ты меня троллишь чтоли?
Пишу еще раз, подробно. Все что написано ниже не претендует на правду, я пишу свое понимание веб служб и сайтов которые их юзают. Если я не прав - поправьте.
Требование: Мне нужно создать веб службу и приложение которое будет использовать эту службу.
Мое понимание веб служб: Как я понимаю веб служба это служба которую могут использовать несколько сайтов. Например, когда ты покупаешь билет на поезд на одном сайте, то это билет становится не актуальным и на другом сайте, значит, сайты юзают одну веб службу билетов на поезд.
Я понимаю это так, что есть веб служба у которой есть методы, например, заказатьБилет(номер места). Когда кто-то покупает билет, то в коде сайта прописано обращение к этому методу веб службы. И на всех сайтах которые берут данные из БД веб службы статус меняется. И на всех сайтах выбранное место становится неактуальным.
Дано: Так вот, у меня есть сайт, то есть приложение asp.net mvc. На котором можно зарегистрироваться, редактировать информацию о себе, посмотреть список всех зарегистрированных. Мой сайт юзает базу данных где хранятся все данные зарегистрированных пользователей. Сайт открывается в браузере и там можно делать те действия которые я писал выше.
Потом я внезапно узнаю, что нужно сделать веб службу и приложение юзающее ее. План: По скольку мой сайт не использует веб служб я хочу создать веб службу и со своего сайта обращаться к ней. То есть создать там бд и методы "зарегистрироваться, редактировать информацию о себе, посмотреть список всех зарегистрированных".
А потом обращаться со своего уже сделанного сайта к этой веб службе и юзать методы этой веб службы.
Блять, я уже не знаю как понятней объяснить. Я не понимаю, что не понятного я пишу.
Вопрос: Правильно ли я все разжевал по поводу веб служб? Если нет, то что именно и почему? Правилен ли мой план?
>>764865 > обращаться со своего уже сделанного сайта к этой веб службе и юзать методы этой веб службы ну вот тебе html + js, только сверху у тебя будет движок MVC и куча мути, с ними завернутой, хули ты мне мозги ебешь?
> Правильно ли я все разжевал по поводу веб служб? если совсем быть кратким, то да если нет, то Веб-служба, веб-сервис — идентифицируемая веб-адресом программная система со стандартизированными интерфейсами. Веб-службы могут взаимодействовать друг с другом и со сторонними приложениями посредством сообщений, основанных на определённых протоколах (SOAP, XML-RPC, REST и т. д.). Веб-служба является единицей модульности при использовании сервис-ориентированной архитектуры приложения. В обиходе веб-сервисами называют услуги, оказываемые в Интернете. В этом употреблении термин требует уточнения, идёт ли речь о поиске, веб-почте, хранении документов, файлов, закладок и т. п. Такими веб-сервисами можно пользоваться независимо от компьютера, браузера или места доступа в Интернет и ответ тоже да, но так ты почитал хоть что-то полезное
>>764881 Не знаю можно ли писать запросы к веб службе js, мне во всяком случае нужно писать из контроллера и не придумывать велосипед, но причем тут нахуй html, какое еще дополнительный html код по твоему мнению я буду должен добавить на свой сайт? Да и даже если можно с js писать, то я совсем не те вопросы задавал.
>>764909 расскажи мне, будь добр пожалста, как будет выглядеть процесс, скажем, авторизации пользователя с имеющегося в данный момент у тебя MVC приложения в новосозданном веб-сервисе? говоря конкретней, что и с помощью чего, откуда и куда будет поступать/стучать/получать/и т.д.?
>>764914 Я знаю, что это нихуя не безопасно и тупо, но мне главное сдать проект, а не дрочиться с безопасностью, а поэтому когда чел регистрируется, то отправляю данные в метод веб сервиса, а получаю айдишник записи юзера в бд и записываю его в куки, когда юзер хочет редактировать данные о себе, то получаю данные с формы редактирования и вытаскивают ацдшник с кук и все это отправляю в метод веб сервиса, а там уже по айдшнику редактирую соответствующую строку с новыми данными которые получил от юзера
>>764938 я тебя спрашивал не про безопасность. а про то, какие шаги с каждой стороны проекта ты сделаешь для того, чтобы пройти тот или иной шаг процедуры? для описанного тобой примера, как ты скомпонуешь данные "чела", куда и с помощью чего ты отправишь, как будешь использовать ответ удаленного приложения/сервиса?
>>764950 Смысл от твоих вопросов? Что значит "скомпонуешь"? Чел нажмет кнопку отправить, мой метод примет эти данные передаст их в метод веб сервиса, а там метод веб сервиса запишет их бд? Что из этого тебе не понятно? Да и к чему твои вопросы? Это я пришел сюда с вопросами, а в итоге отвечаю на твои вопросы которые, честно говоря тупые, если можешь доказать обратное, то разжуй как я.
>>764955 хочу узнать, как ты будешь пытаться делать свое задание потому, что я, представляя весь механизм, вообще не понимаю, как будет реализовано. от слова совсем. даже откинув костыльность, небезопасность, говнокод и макароны. но если тебе все очевидно и понятно из своей задумки, то делай
>>764962 я тут весь тред распинаюсь с вопросами правильно ли я понимаю работу веб служб, описал свою ситуацию и задал вопросы с просьбой обьяснить, а по сути все, что ты написал > по сути, можно html+js присандалить как клиент твоего приложения
То есть понимая весь механизм ты поленился обьяснить почему я не прав, а написал просто "Ну ок, посмотрим как ты напишешь это"
>>764217 Консольное приложение тебе надо. В нем бесконечно слушай любой порт на предмет сообщений от твоих клиентов и делай в нем все что нужно. Формат сообщений не важен наверно, можно свой, можно какой-нибудь стандартный вроде хмл-рпц.
Вот. А потом после отладки сделать его одной из служб шинды.
>>764865 >Правилен ли мой план? Вероятно правилен. Но будет оче много гемороя с сетевой частью, там где можно просто поднять обычный веб-сервер с твоим сайтом. Будет локальный недосайт с прямыми запросами на хз какой ойпи с сомнительными предложениями к одной из служб винды. Учебный мараз корч.
Аноны который ебется с веб службами и хочет подключить их к сайту MVC в треде. Пик 1: Создал веб службу, при обращении методу веб службы который отдает список всех записей в бд получаю в гугл хроме страничку xml с записями. Вроде то, что и нужно.
Далее Пик 2: Здесь я уже пытаюсь со своего контроллера обратиться к веб службе и получить данные всех записей в бд.
Пик 3: Ошибка которую я имею.
Вопрос: Как сделать так, чтобы обратиться к веб службе, получить от нее ответ, а потом преобразовать в тип который нужен представлению?
Суп, пр. У меня WPF. Со стороннего сервиса вытягиваются метаданные, по которым строятся инстансы коллекции объектов. Мне хочется/надо сделоть какой-нибудь прикольный контрол (like ListView), чтобы на нем отрисовывались динамически элементы. Объект создался -> его вьюха добавилась на контрол. Я только начал в впф, памагити, как сделать хорошо? Можно как-то ListView забиндить на мою коллекцию элементов и заставить рефрешитсья при добавлении элементов в онную? Ну или как это сделать хорошо?
- Professional ASP.NET MVC 5 (Jon Galloway, Brad Wilson, K. Scott Allen, David Matson) - Pro ASP.NET MVC 5 Platform (Adam Freeman) Добавь в некст шапку что это для вс 13, на вс 15 не пашут примеры. Или добавь другие годные книжки для вс 15.
Сап, прогроммач. Скоро пойду на курсы, будут преподавать C#. Говорили будет front end и что-то с JQuery. Сам я нубас в этой теме. Что посоветуешь почитать?
Вечер в хату, зк! Какой ближайший аналог типа Object из Javascript есть в c#? Надо чтобы была па ключ - значение, при том чтобы значение могло бы быть любого типа. Ну и чтобы можно было удобно сериализовать в json-строку.
ITT элита продолжает обсуждает будущее этого прекрасного и современного продукта компании Microsoft. Только в этом треде элитные разработчики ответят на самые острые вопросы индустрии.
Литература вторым постом
1. Ресурсы:
- http://stackoverflow.com/questions/tagged/c%23
- http://www.tutorialspoint.com/csharp/
- http://professorweb.ru
- http://net-informations.com
- http://habrahabr.ru/hub/csharp/
2. Онлайн-компиляторы:
- https://dotnetfiddle.net/ - возможно лучший вариант. Встроено немного убогое, но все-таки автодополнение и проверка синтаксиса.
- http://ideone.com/
- http://csharppad.com/
- http://www.tutorialspoint.com/compile_csharp_online.php
- http://rextester.com/l/csharp_online_compiler
3. WinForms или WPF?
Зависит от задачи. Для небольших проектов, скорее всего, будет достаточно винформочек. В случае, если разрабатываемое приложение достаточно серьёзное, то возможно его стоит писать с использованием WPF. WPF очень хорошо работает с паттерном MVVM ( https://ru.wikipedia.org/wiki/Model-View-ViewModel ), и позволяет пилить очень кастомизированные интерфейсы с помощью XAML, что в случае WinForms, делать намного сложнее.
4. Мне тут знакомый_нейм сказал, что C# умирает, это правда? Может не стоит его учить?
Неправда. C# довольно активно развивается, недавно вышел новый компилятор, шестая версия шарпа, и уже активно разработывается седьмая. Весь дотнет понемногу становится опенсорсным, а ASP.NET становится независимым от платформы. В некотором смысле понемногу вымирают десктопные приложения с развитием веб-технологий, но в том же энтерпрайзе он еще очень даже востребован.
5. Какую ИДЕ выбрать?
Для Windows самым очевидным вариантом будет Visual Studio (https://www.visualstudio.com/en-us/downloads/download-visual-studio-vs.aspx). Студия распространяется в двух редакциях: бесплатная коммьюнити-версия и платный энтерпрейс эдишн. В большинстве случае будет достаточно Community-версии: она поддерживает и C#, C++, VB.NET и F#, а так же имеет возможность установки дополнений
Для мака и никсов самый юзабельный вариант - MonoDevelop ( http://www.monodevelop.com/download/ ).
Для vim можно использовать OmniSharp ( https://github.com/OmniSharp/omnisharp-vim ).
Кросплатформенный полуредактор/полуIDE VS Code ( https://www.visualstudio.com/en-us/products/code-vs.aspx )
Также существуют плагины для Atom'а и Sublime Text, но функциональность там достаточно сильно урезана.
Кроме того, в данный момент JetBrains активно пилит свою IDE для шарпа (Project Rider), вероятно в ближайшее время станут доступны первые EAP. IDE заявлена как кросплатформенная, со всем решарпер-функционалом, поддержкой отладки, моно и .net core.
SharpDevelop - еще одна IDE для C#, отличается малым размером (около 20мб) и опциональной портабельностью, при этом имея дизайнер WinForms и WPF, а также интеграцию с FxCop, StyleCop и прочими ништяками. Если хочется что-то по быстрому набросать, а выкачивать гигабйты нет желания, то возможно SharpDevelop будет лучшим вариантом.
6. С# для мобильной разработки
Если нужны инструменты для разработке под мобилы, ставь сразу VS2015 и при установке выбирай все нужные компоненты.
Больше информации тут - https://msdn.microsoft.com/ru-ru/library/dn771552.aspx
Из актуальной литературы
- Xamarin Mobile Application Development
- Xamarin Essentials
7. Дополнительные инструменты для разработки на C#
LINQPad - сорт оф REPL, с возможностью быстрого подключения к БД и удобной визуализацией данных
dnSpy - декомпилятор, малоизвестный форк ILSpy, где реализована возможность модификации IL-кода прямо в EXE и DLL файлах, отладка IL-кода и много других фич для reverse engineering'а. Плюс няшные темы как в студии
dotPeek - бесплатный декомпилятор от JetBrains
scriptcs - для запуска C# кода как скриптов, возможность использовать как REPL
8. Расширения для студии
ReSharper - одно из известнейших. Рефакторинги, умный автокомплит, настраиваемый стиль кода. Платный, но можно стянуть с торрентов
Supercharger - показывает "карту" с классами, методами и всем остальным сбоку от кода с возможностью прыгать по ним
Indent Guides - показывает вертикальные линии на каждом уровне отступов.
Format document on Save - форматирует код каждый раз при сохранении документа
Code alignment - Выравнивает код по указанным символам. Удобно, например, при инициализации словарей или в перечислениях
Обзор Roslyn: https://github.com/dotnet/roslyn/wiki/Roslyn%20Overview
Новые возможности C# 6.0: https://github.com/dotnet/roslyn/wiki/New-Language-Features-in-C%23-6
Код этой шапки: http://pastebin.com/cKKXYArs
Прошлый тред тонет здесь: https://2ch.hk/pr/res/736660.html