Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

.NET und C# ohne Web?

4812   6 7 8 9 10 11 12 13 14 15 16 все
Murr патриот08.06.21 15:10
Murr
NEW 08.06.21 15:10 
в ответ alex445 08.06.21 14:06

если позволишь, так народ начнёт прямо в разметке развесистые функции писать

-----

Ну так на этот случай есть полиси и коде ревью...

И когда народ хорошенько натрахается с невозможностью быстро что-то поправить в спагетти-лике - вполне себе без проблем пишет как требуется...


foreach элементы <li> или <a>

-----

В ASP.NET изначально есть шаблоны для итеративного вывода...

Вот только не каждый до их использования доходит - учить много надо - влепить <LI> куда как проще...

AlexNek патриот08.06.21 18:06
AlexNek
NEW 08.06.21 18:06 
в ответ alex445 08.06.21 14:06
делают в цикле for или foreach элементы <li>

А что в вебе есть UI элементы которые могут себя отрисовать? смущ

AlexNek патриот08.06.21 18:08
AlexNek
NEW 08.06.21 18:08 
в ответ Срыв покровов 08.06.21 14:54
ни тебе проверки, что ты тут букву пропустил, ни прыжка в класс, где есть проперти

не имею понятия, что там в голой визуал студии, но с решарпером и нормальной разметкой я таких проблем не испытываю.

uscheswoi_82 свой человек08.06.21 19:16
uscheswoi_82
NEW 08.06.21 19:16 
в ответ AlexNek 08.06.21 18:06
А что в вебе есть UI элементы которые могут себя отрисовать? смущ

А я понял так, что ASP NET MVC Razor при попадание в AcrionResult возвращает во View коллекцию допустим из БД, которую можно во View отобразать используя foreach см. https://metanit.com/sharp/mvc5/4.1.php.

Например:

@foreach (BookStore.Models.Book b in Model)
{
    <p>@b.Name</p>
}


Кстати есть вроде готовая сетка для ASP NET MVC Razor https://docs.microsoft.com/ru-ru/archive/msdn-magazine/201... не нужны эти foreach


Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение Дневник тяжелобольного инвалида
uscheswoi_82 свой человек08.06.21 19:40
uscheswoi_82
NEW 08.06.21 19:40 
в ответ AlexNek 08.06.21 18:06

Кстати, если можно было бы сделать в Razor View content-type как javascript см. https://stackoverflow.com/questions/4411841/how-to-set-con..., то можно было бы View-шку переделать на JavaScript, но боюсь JavaScript и C# там будет такая каша.

Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение Дневник тяжелобольного инвалида
Срыв покровов коренной житель08.06.21 20:30
NEW 08.06.21 20:30 
в ответ wasja-de 08.06.21 15:06
так я тоже об этом же. А потом удобно дать морду, чтобы кто посмотрел, попользовал как демо, а, если понравилось, то и купил. А если делать на дотнете и иже с ними, то надо для выхода на рынок сразу поддерживать всю эту галиматью в виде маков, винд, линуксов, где у каждого - свои погремушки.

чот я тебя не понимаю.
на дотнете тоже можно делать Web-приложения.

Срыв покровов коренной житель08.06.21 20:35
NEW 08.06.21 20:35 
в ответ AlexNek 08.06.21 18:08
решарпером и нормальной разметкой я таких проблем не испытываю.

Что ты имеешь в виду под нормальной разметкой?

AlexNek патриот08.06.21 21:39
AlexNek
NEW 08.06.21 21:39 
в ответ Срыв покровов 08.06.21 20:35
Что ты имеешь в виду под нормальной разметкой?

Всего лишь эту строку смущ

    d:DataContext="{d:DesignInstance {x:Type viewModels:SettingsPanelViewModel}}"
alex445 местный житель08.06.21 23:13
NEW 08.06.21 23:13 
в ответ Срыв покровов 08.06.21 14:54, Последний раз изменено 08.06.21 23:43 (alex445)
WPF мне тоже как-то не зашел
например что напрягает

для Visual Studio object.property это тупо текст, ни тебе проверки, что ты тут букву пропустил, ни прыжка в класс, где есть проперти, по ф12
ни Find all References

Надо контекст данных установить, тогда Интеллисенс вываливает список с подсказками пропертей:



XAML: Intellisense for Bindings And the Data Context -Deborah's Developer MindScape (msmvps.com)


Всего лишь эту строку

Всё верно. Причём можно это ставить для каждого подконтрола отдельно, а не для всего контрола в целом. Например, в окне объявил пространства имён для нужных тебе типов, а в конкретных контролах этого окна уже установил контексты данных для дизайна:


<Window

xmlns:d="http://schemas.microsoft.com/expression/blend/2008"

xmlns:ns1="clr-namespace:MyApp.ViewModels1"

xmlns:ns2="clr-namespace:MyApp.ViewModels2">


<Grid d:DataContext="{d:DesignInstance Type=ns1:MyViewModel1}">

<ContentPresenter Content="{Binding Path=Property1.Subproperty1}"/>


<Grid d:DataContext="{d:DesignInstance Type=ns2:MyViewModel2}">

<ContentPresenter Content="{Binding Path=Property1.Subproperty1}"/>


И F12 для быстрого перехода из разметки в класс тоже работает. Единственное что плохо - синтаксис всего этого слишком многословный.

alex445 местный житель08.06.21 23:30
NEW 08.06.21 23:30 
в ответ wasja-de 08.06.21 15:06
так я тоже об этом же. А потом удобно дать морду, чтобы кто посмотрел, попользовал как демо, а, если понравилось, то и купил. А если делать на дотнете и иже с ними, то надо для выхода на рынок сразу поддерживать всю эту галиматью в виде маков, винд, линуксов, где у каждого - свои погремушки. Как-то недавно работал с одной фирмой, в которой один фортрановский программист поддерживал бекенд и 28 человек рисовало фронты на все платформы, но начальство кололось, но не лезло на кактус жаваскрипта.

Браузер - это тоже платформа. Будет война браузеров с неподдерживаемыми стандартами веба (каждый будет свой подстандарт поддерживать) - придётся снова писать под каждый браузер свои хаки. Оно ещё недавно так было, да и сейчас частично - тот же Фаерфокс PWA не поддерживает

Progressive web application - Wikipedia

alex445 местный житель08.06.21 23:33
NEW 08.06.21 23:33 
в ответ AlexNek 08.06.21 18:06, Последний раз изменено 09.06.21 00:54 (alex445)
А что в вебе есть UI элементы которые могут себя отрисовать?

Мне пофиг. Я знаю, что есть ваиант лучше, и на вебовскую дикость смотрю с удивлёнными глазами - "вы ещё кипятите?!". Почему, чтобы сделать список, нужно руками прописать, что нужно в цикле создавать элементы этого списка? Ну или юзать спецкомпонент, который это сам умеет делать. Т.е. опять же - чтобы нормально что-то сделать, нужно залинковать кучку костылей-библиотек, потому что из коробки в вебе доступно примерно нифига.

Murr патриот08.06.21 23:52
Murr
NEW 08.06.21 23:52 
в ответ alex445 08.06.21 23:33

чтобы сделать список, нужно руками прописать, что нужно в цикле создавать элементы этого списка?

-----

Кто это тебе сказал?

Что - можно - да, что - нужно - нет.


Ну или юзать спецкомпонент

-----

Какой спецкомпонент? Все стандартное, из коробки...

Просто учи мат.часть...

alex445 местный житель09.06.21 00:58
NEW 09.06.21 00:58 
в ответ Murr 08.06.21 23:52, Последний раз изменено 09.06.21 01:01 (alex445)

А ещё веб бесит тем, что там нет стандартов оформления - на каждом новом сайте нужно разбираться и привыкать, что как работает, где какие функции, какие кнопки жать, чтобы стандартные действия сделать. Типа того же поиска - он может быть где угодно на странице и как угодно оформить, а может и не быть вообще - вы об этом узнаете, только сначала внимательно изучив страницу.


Так мало того, даже на одном сайте всё по-разному оформлено может быть - даже одно и то же действие. Одни кнопки такие, другие - сякие. После нажатия на "удалить" перекинет на отдельную страницу "да, я хочу удалить...". Что это за мерзость? Такое ощущение, что один кусок делал один человек, другой - другой. Или тот же, но в разное время. А смотреть стили и следить за ними ему было лень. Из-за этого веб производит впечатление наколенной поделки и цирка с конями.



Дали команде задачу делать сайт - сделали. Потом через год другому чуваку дали задачу добавить страничку с доп. функционалом - он ваяет вообще другой дизайн и своё оформление. После 3-5 лет таких доработок сайт превращается в набор несвязанных друг с другом разноцветных кусков. Потому что в вебе привести всё к единому виду - боль. Каждый лепит свои костыли. Ещё и гордятся этим.

alex445 местный житель09.06.21 01:13
NEW 09.06.21 01:13 
в ответ alex445 08.06.21 23:13, Последний раз изменено 09.06.21 01:16 (alex445)

У МС дизайнер для WPF-XAML кривой-косой. И, похоже, на это давно забили - чтобы всякие удобные штуки работали, нужно надобавлять всяких расширений из Бленда. Не знаю, как в других своих XAML-фреймворках (UWP, например) они это сделали, но для WPF он глючный и многословный. Но всё ещё удобнее, чем веб фронтэндовские костыли. У веб фронтэнда разве что стили неплохо сделаны, но тоже с наследованием всё запутано, синтаксиса нормального для наследования и переопределения стилей нет - нужно запомнить кучу условностей, которые по написанию друг от друга почти не отличаются. Поэтому я и терпеть не могу веб фронтэнд - мозго...ство для восторженных студентов.

uscheswoi_82 свой человек09.06.21 01:22
uscheswoi_82
NEW 09.06.21 01:22 
в ответ alex445 09.06.21 00:58
А ещё веб бесит

А меня бесит ООП. Многие современные ЯП без всяких ООП обходятся. А там где ООП хорошо развито, у меня нет денег на такие новые и платные среды разработки и фреймворки. Допустим если я программирую на древнем .NET то в моём случае нужно использовать делегаты, а если я использую делегаты, то методы должны быть статическими, а у меня конструктор есть. Я не думал что буду делегаты использовать, пол дня программировал класс (конструктор, Get-еры, Set-еры, разные методыитд), а теперь надо все методы на статический переделовать, и избавляться от конструктора.

А если я на современном NET делать, то нужно лучше тоже самое через async/await. А комп хрюкает и крехтит от Visual Studio 2019/Visual Studio 202x Community Edition.

Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение Дневник тяжелобольного инвалида
alex445 местный житель09.06.21 01:25
NEW 09.06.21 01:25 
в ответ alex445 09.06.21 00:58, Последний раз изменено 09.06.21 01:40 (alex445)
А ещё веб бесит тем, что там нет стандартов оформления - на каждом новом сайте нужно разбираться и привыкать, что как работает, где какие функции, какие кнопки жать, чтобы стандартные действия сделать. Типа того же поиска - он может быть где угодно на странице и как угодно оформить, а может и не быть вообще - вы об этом узнаете, только сначала внимательно изучив страницу.


Так мало того, даже на одном сайте всё по-разному оформлено может быть - даже одно и то же действие. Одни кнопки такие, другие - сякие. После нажатия на "удалить" перекинет на отдельную страницу "да, я хочу удалить...". Что это за мерзость? Такое ощущение, что один кусок делал один человек, другой - другой. Или тот же, но в разное время. А смотреть стили и следить за ними ему было лень. Из-за этого веб производит впечатление наколенной поделки и цирка с конями.

А ещё это всё при загрузке тормозит. А если добавлена ленивая загрузка, которая сейчас примерно у всех, то у вас интерфейс будет прыгать и дёргаться, пока весь контент не подгрузится и всё не встанет на свои места. Даже на быстром интернете. Тебе кажется, что всё загрузилось - ну вот же виден интерфейс - и ты жмёшь на кнопку. Хрен тебе - скрипты ещё не отработали, контент снизу (или сверху - как любит Вики пихать какую-нибудь рекламу в баннер, который позже всех загружается, смещая весь интерфейс нафиг) не подгрузился. Так что жди ещё полсекунды. Если бы мне на десктопных приложухах каждая кнопка просила подождать полсекунды, я бы... А в вебе - в порядке вещей. Так что кто часто пользуется одним и тем же сайтом и хочет быстро жать на кнопки, к расположению которых он привык - фигвам, у нас тут модно-молодёжно. Типичный пример - сайт википедии и вообще на викидвижках (wictionary и т.п.). Особенно это бесит на мобилах с медленным интернетом и малыми экранами. Я привык при изучении языка часто искать слова - каждое обращение к полю поиска это боль и ожидание, пока там какой-то тупой скрипт выполнится. Если не вовремя нажать - перезагружает страницу вместо поиска. Я могу тыкать по нужным мне кнопкам по нескольку раз в секунду, т.к. все действия уже отработал до мелочей, а веб интерфейс говорит мне подождать, пока он прогрузится, прорисуется, выровняет все компоненты и вот наконец он готов... а мне уже и не нужно. Причём с соединением это не связано - уже всё передано. Это клиент-сайд пытается прожевать тонны джаваскрипта и отрисовать всё на моём устройстве (мы же экономим ресурсы нашего сервера?). Как офигенно "работать" в веб-версиях всяких офисных пакетов - хоть от МС, хоть от Гугла, хоть от кого. Если у вас куча нервов и свободного времени, а мышкой вы двигаете как будто первые два часа компьютер осваиваете - переходите работать в веб, там всё под вас заточено.

alex445 местный житель09.06.21 01:32
NEW 09.06.21 01:32 
в ответ uscheswoi_82 09.06.21 01:22

А меня бесит ООП. Многие современные ЯП без всяких ООП обходятся. А там где ООП хорошо развито, у меня нет денег на такие новые и платные среды разработки и фреймворки. Допустим если я программирую на древнем .NET то в моём случае нужно использовать делегаты, а если я использую делегаты, то методы должны быть статическими, а у меня конструктор есть. Я не думал что буду делегаты использовать, пол дня программировал класс (конструктор, Get-еры, Set-еры, разные методыитд), а теперь надо все методы на статический переделовать, и избавляться от конструктора.

А если я на современном NET делать, то нужно лучше тоже самое через async/await. А комп хрюкает и крехтит от Visual Studio 2019/Visual Studio 202x Community Edition.

Переходите в веб - там всё устаревает за 2-3 года (а не за 10-15, как в дотнете с делегатами) и куча тормозных и жрущих ресурсы сред разработки, которые едва ли до половины полноценной Студии дотягиваются. Сейчас пара-тройска ненагруженных страничек отжирает примерно гигабайт оперативы. А на этих страничках текст и несколько картинок. Когда-то я на этом гигабайте в Кризис играл, а теперь только текст и несколько картинок. Зато все модные словечки из современной веб-разработки задействованы. Всё в контейнерах крутится, на нодах всяких. Мобильный телефон с 2-3 гигабайтами оперативы сейчас невозможно нормально использовать - фактически однозадачный, постоянный своп и перезагрузка страниц.

uscheswoi_82 свой человек09.06.21 01:59
uscheswoi_82
NEW 09.06.21 01:59 
в ответ alex445 09.06.21 01:32
Переходите в веб

Не, мне нужно сделать серверный командный интерпретатор, на подобие Bash, чтобы два или три файла можно было интерпретировать параллельно, а так-же чтобы можно было разделить экран на 2 или 3 участка, и чтобы можно было подключаться спомощью Telnet или PuTTY к этой программе, и ещё чтобы это всё было многопользовательским. Сначало делал одназадачным, а потом захотел сделать многозадачным. Там всё просто - сплитую строку т.е. пробелы и новую строку, дальше split возвращает массив, потом читаю из массива команду и параметры. Перед отъездом в Германию делал такое, только там было через COM порты, а тут по TCP-IP надо. Вообще никогда на экраны не разделял, может и через делегаты не то... Вдохновения появилось разделять экраны когда я посмотрел видео про компьютер GRID, там помойму можно было загрузить две программы, и разделить экран на зоны, и можно было переключаться между зонами, только всё чисто в текстовом режиме. Может быть и заброшу и переделаю всё в графическом виде. Пол дня делал парзер, теперь надо избавляться от конструктора из-за делегатов.

Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение Дневник тяжелобольного инвалида
wasja-de завсегдатай09.06.21 10:04
NEW 09.06.21 10:04 
в ответ alex445 09.06.21 01:32, Последний раз изменено 09.06.21 10:50 (wasja-de)
Зато все модные словечки из современной веб-разработки задействованы. Всё в контейнерах крутится, на нодах всяких

так может это кривожопость современных веб дезигнеров? А новомодность они притягивают, чтобы перед шефом отчитаться и не показаться дебилом, не способным сделать то, что надо, но без новомодных фреймворков.


У меня довольно развесистая самопально написанная морда, отрисовывая в 3Д одновременно 50 молекул, в каждой по 10-100 изомеров/конформеров и в каждом по 100+ атомов съедает только 39МБ браузерной памяти, а 100кб голого JS без фреймворков грузится довольно со свистом, то есть теоретически, если делать для себя, то можно сделать удобно, компактно и быстро.

alex445 местный житель09.06.21 10:04
NEW 09.06.21 10:04 
в ответ uscheswoi_82 09.06.21 01:59

Не совсем понял, что вы хотите. Можете глянуть тут Parallel Class (System.Threading.Tasks) | Microsoft Docs

6 7 8 9 10 11 12 13 14 15 16 все