powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Десктоп приложение
24 сообщений из 24, страница 1 из 1
Десктоп приложение
    #38813434
zz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Требуется помощь зала!

Находимся на стадии планирования нового проекта, который, как ясно из названия, представляет из себя десктоп-приложение. Одним из требований является красивый легкоизменяемый дизайн. Т.е. специально обученный дизайнер (не имеющий понятия о .NET) где-то у себя в студии делает дизайн, мы как можно скорее натягиваем его на софт.

Возник диспут, на чем писать, варианты:

1. WinForms. Есть богатый опыт разработки, но вроде как считается устаревшей платформой, нет нормальный MVP-фреймворков, и вообще не модно.

2. WPF. Модно, стильно, современно, вот только разрабатывать на нем среди нас могут не только лишь все, мало кто может это делать. С другой стороны, MS пообещал развивать и поддерживать.

3. Что-то еще????

И параллельно, какие сторонние компоненты посоветуете для гламурного внешнего вида? На WinForms использовали DevExpress, в целом всё устраивает, но как-то тяжеловесно. Что скажете за другие библиотеки?

Спасибо.
...
Рейтинг: 0 / 0
Десктоп приложение
    #38813604
Фотография EDUARD SAPOTSKI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да кагбэ вопрос больше в резервах времени. Если время есть разобраться в WPF, то конечно лучше юзать WPF. Если проект нужно было сдать вчера, то юзайте что знаете.
...
Рейтинг: 0 / 0
Десктоп приложение
    #38813612
zz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Время есть
...
Рейтинг: 0 / 0
Десктоп приложение
    #38813712
Фотография VSVLAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zz,

Если есть дизайнер, который ни сколько не знает .NET, то на чём он будет рисовать? HTML? WPF видел издалека, но писать на XAML думаю ему не понравится. Можно думаю веб-интерфейс сделать (наподобие HTA приложений), только практикуют ли это сейчас или WPF это всё
...
Рейтинг: 0 / 0
Десктоп приложение
    #38813820
Фотография EDUARD SAPOTSKI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zzВремя есть
Тогда вперед. Если хотите сократить временные издержки, могу предложить консультации по проектированию на WPF/SL(XAML).
Оплата через договор по безналу.

P.S. В последнее время как-то больше приходится заниматься консультационными услугами.
...
Рейтинг: 0 / 0
Десктоп приложение
    #38813916
Фотография Диез
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EDUARD SAPOTSKI,

А гибридные приложения WinForms/WPF не проходилось делать?
Например, в WPF нет MDI - делаем обычный винформный MDI, а в дочерние окна вставляем elementHost и дальше всё под WPF.

Интересуют потенциальные грабли такого подхода. Насколько он жизнеспособен?
...
Рейтинг: 0 / 0
Десктоп приложение
    #38813937
Фотография EDUARD SAPOTSKI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДиезА гибридные приложения WinForms/WPF не проходилось делать?
Например, в WPF нет MDI - делаем обычный винформный MDI, а в дочерние окна вставляем elementHost и дальше всё под WPF.

Интересуют потенциальные грабли такого подхода. Насколько он жизнеспособен?
Это первая психологическая ломка, когда разработчик из WinForms приходит в WPF/SL - где MDI и как без него жить? На самом деле в WPF/SL почти все контролы по сути являются контейнерами. Реализовать свой MDI на WPF/SL это дело нескольких часов. И это наверное первое что пытаются сделать все разработчики, я тоже делал Но потом начинаешь понимать что в WPF/SL MDI по сути нафиг не нужен, в WinForms он фактически нужен от безисходности, а как иначе? А в WPF/SL можно очень много придумать других вариантов навигации, MDI один из множества.
По поводу гибридных приложений WinForms/WPF, мне чаще приходилось в WPF приложения добавлять ранее написанные компоненты WinForms. Никто не запрещает делать наоборот. Но я лично против такого подхода. Дело в том что вся сила WPF/SL не в возможностях делать гламурный UI, а в мощном механизме биндингов и широкие возможности при построении архитекруры приложений.
В WPF/SL может быть одна модель с данными к которой биндингами прикручены десятки формочек, в WinForms подобное тоже можно сделать, но через попу.
Получается, что если в WinForms приложение добавляем WPF компонент, мы только получаем возможность делать гламурный UI, а в остальном мы работаем как и работали в стиле WinForms.
Вот как-то так...
...
Рейтинг: 0 / 0
Десктоп приложение
    #38813938
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что такое "стиль WinForms"?
...
Рейтинг: 0 / 0
Десктоп приложение
    #38813943
Фотография EDUARD SAPOTSKI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAЧто такое "стиль WinForms"?
Это когда берем ссылку на объект и ее передаем в один контруктор одной формочки, из нее в другой контруктор второй формочки... десятой. Затем из десятой дергаем метод девятой или генерим событие, из девятой восьмой... И затем половина разваливается при допиле 5-й формочки... лепота
...
Рейтинг: 0 / 0
Десктоп приложение
    #38813957
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EDUARD SAPOTSKIskyANAЧто такое "стиль WinForms"?
Это когда берем ссылку на объект и ее передаем в один контруктор одной формочки, из нее в другой контруктор второй формочки... десятой. Затем из десятой дергаем метод девятой или генерим событие, из девятой восьмой... И затем половина разваливается при допиле 5-й формочки... лепота Хм. Этот стиль называется "кривые ручки".
К сожалению встречается не только в WinForms проектах.
...
Рейтинг: 0 / 0
Десктоп приложение
    #38813960
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zzТребуется помощь зала!

Находимся на стадии планирования нового проекта, который, как ясно из названия, представляет из себя десктоп-приложение. Одним из требований является красивый легкоизменяемый дизайн. Т.е. специально обученный дизайнер (не имеющий понятия о .NET) где-то у себя в студии делает дизайн, мы как можно скорее натягиваем его на софт.

Возник диспут, на чем писать, варианты:

1. WinForms. Есть богатый опыт разработки, но вроде как считается устаревшей платформой, нет нормальный MVP-фреймворков, и вообще не модно.

2. WPF. Модно, стильно, современно, вот только разрабатывать на нем среди нас могут не только лишь все, мало кто может это делать. С другой стороны, MS пообещал развивать и поддерживать.

3. Что-то еще????

И параллельно, какие сторонние компоненты посоветуете для гламурного внешнего вида? На WinForms использовали DevExpress, в целом всё устраивает, но как-то тяжеловесно. Что скажете за другие библиотеки?

Спасибо.Посмотрите в сторону Telerik, у них вроде как есть возможность и свои темы дизайнить. Советую напрямую к ним обратиться со своими вопросами.
...
Рейтинг: 0 / 0
Десктоп приложение
    #38813969
Alexsalog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Десктоп приложение
    #38814069
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAEDUARD SAPOTSKIпропущено...

Это когда берем ссылку на объект и ее передаем в один контруктор одной формочки, из нее в другой контруктор второй формочки... десятой. Затем из десятой дергаем метод девятой или генерим событие, из девятой восьмой... И затем половина разваливается при допиле 5-й формочки... лепота Хм. Этот стиль называется "кривые ручки".
К сожалению встречается не только в WinForms проектах.
+
...
Рейтинг: 0 / 0
Десктоп приложение
    #38814169
RomanH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EDUARD SAPOTSKI Но потом начинаешь понимать что в WPF/SL MDI по сути нафиг не нужен, в WinForms он фактически нужен от безисходности, а как иначе?

-1. причем жирный минус :)
Все известные десктоп операционные системы используют многооконность(многодокументность-MDI). Во многих из них есть MDI-навигатор(всем известный taskbar). Люди уже как 30 лет имеют возможность работать ОДНОВРЕМЕННО с несколькими окнами. И используя вышеупомянутый taskbar, переключаться с одной формы на другую и это более удобнее чем закладки(ИМХО и не только, некоторые юзеры предпочитают работать с десктоп приложениями так же как и в ОС - работа с несколькими формами в одном фрэме)
...
Рейтинг: 0 / 0
Десктоп приложение
    #38814811
Фотография EDUARD SAPOTSKI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемые, я ничего не имею против MDI, юзайте на здоровье!
Говорю, что времена меняются, сегодня у нас есть множество вариантов организации навигации. Почему MDI стал так популярен? В первую очередь потому что разрешение экранов раньше было 800х600 и даже меньше, буржуйством считалось 1024х768. Что в такой экран засунешь? Правильно, одну простенькую формочку!
Сейчас сижу за моником 1680х1050, в такой размер можно спокойно засунуть одну жирную форму, которая информационно будет закрывать определенную категорию задач. Зачем таскбар? Можно через табы сделать, или рибон какой прикрутить.
Возмите тот же офис 2007 который вышел с рибоном всесто классического меню. По началу все плевались, и я плевался. Но вот 6 лет прошло и юзеры гартают те же рибоны и уже не плюются.
Технология WPF гораздо гибче в плане построения UI, если юзаю WPF то точно знаю, что заказчик не поставит меня в тупик очередной хотелкой в плане UI.
...
Рейтинг: 0 / 0
Десктоп приложение
    #38814829
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EDUARD SAPOTSKI, а не фиг писать глупости про безысходность в WinForms :)
...
Рейтинг: 0 / 0
Десктоп приложение
    #38814845
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RomanHEDUARD SAPOTSKI Но потом начинаешь понимать что в WPF/SL MDI по сути нафиг не нужен, в WinForms он фактически нужен от безисходности, а как иначе?

-1. причем жирный минус :)
Все известные десктоп операционные системы используют многооконность(многодокументность-MDI). Во многих из них есть MDI-навигатор(всем известный taskbar). Люди уже как 30 лет имеют возможность работать ОДНОВРЕМЕННО с несколькими окнами. И используя вышеупомянутый taskbar, переключаться с одной формы на другую и это более удобнее чем закладки(ИМХО и не только, некоторые юзеры предпочитают работать с десктоп приложениями так же как и в ОС - работа с несколькими формами в одном фрэме)

В WPF в принципе тоже есть MDI, точнее tabbed-MDI ( http://avalondock.codeplex.com/)
...
Рейтинг: 0 / 0
Десктоп приложение
    #38814986
zz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EDUARD SAPOTSKIТехнология WPF гораздо гибче в плане построения UI, если юзаю WPF то точно знаю, что заказчик не поставит меня в тупик очередной хотелкой в плане UI.

Вот это решающий аргумент в нашем случае.
...
Рейтинг: 0 / 0
Десктоп приложение
    #38815079
Фотография EDUARD SAPOTSKI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79В WPF в принципе тоже есть MDI, точнее tabbed-MDI ( http://avalondock.codeplex.com/)
Шум на пустом месте, проще надо быть. За 10 минут набросал:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
<Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525" TextOptions.TextFormattingMode="Display">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="*" />
            <RowDefinition Height="24" />
        </Grid.RowDefinitions>
        <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="*" />
            <RowDefinition Height="4" />
            <RowDefinition Height="4*" />
            <RowDefinition Height="4" />
            <RowDefinition Height="2*" />
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*" />
            <ColumnDefinition Width="4" />
            <ColumnDefinition Width="4*" />
            <ColumnDefinition Width="4" />
            <ColumnDefinition Width="2*" />
        </Grid.ColumnDefinitions>
        
        <Grid Grid.Column="2" Grid.Row="2" Background="#FF282E3B">
            <Grid.RowDefinitions>
                <RowDefinition Height="24" />
                <RowDefinition Height="*" />
            </Grid.RowDefinitions>
            <Grid Grid.Column="0" Grid.Row="0">
                <Grid.Background>
                    <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                        <GradientStop Color="#FF424E5C" Offset="0" />
                        <GradientStop Color="#FF262C34" Offset="1" />
                    </LinearGradientBrush>
                </Grid.Background>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="*" />
                    <ColumnDefinition Width="24" />
                    <ColumnDefinition Width="24" />
                    <ColumnDefinition Width="24" />
                </Grid.ColumnDefinitions>
                <TextBlock x:Name="textBlockTitle" Text="Window" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="8,0,0,0" Foreground="#FFF2DFDF" FontWeight="Bold" />
                <Button Grid.Column="1" Grid.Row="0" Template="{DynamicResource ButtonMDI_Template}" Background="{x:Null}" BorderBrush="#FF272D35" BorderThickness="1,0,0,0" Content="_" Foreground="White"/>
                <Button Grid.Column="2" Grid.Row="0" Template="{DynamicResource ButtonMDI_Template}" Background="{x:Null}" BorderBrush="#FF272D35" BorderThickness="1,0,0,0" Foreground="White" Content="±"/>
                <Button Grid.Column="3" Grid.Row="0" Template="{DynamicResource ButtonMDI_Template}" Background="{x:Null}" BorderBrush="#FF272D35" BorderThickness="1,0" Foreground="White" Content="X"/>
            </Grid>
			<Border Grid.Row="1" Margin="4,0,4,4" x:Name="content"  Background="#FF3A4450">		
			</Border>
        </Grid>
        <GridSplitter Grid.Column="2" Grid.Row="1" VerticalAlignment="Center" HorizontalAlignment="Stretch" Height="4" />
        <GridSplitter Grid.Column="2" Grid.Row="3" VerticalAlignment="Center" HorizontalAlignment="Stretch" Height="4" />
        <GridSplitter Grid.Column="1" Grid.Row="2" VerticalAlignment="Stretch" HorizontalAlignment="Center" Width="4" />
        <GridSplitter Grid.Column="3" Grid.Row="2" VerticalAlignment="Stretch" HorizontalAlignment="Center" Width="4" />
        </Grid>
        <Grid Grid.Row="1">
            <Grid.Background>
                <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                    <GradientStop Color="#FF424E5C" Offset="0" />
                    <GradientStop Color="#FF262C34" Offset="1" />
                </LinearGradientBrush>
            </Grid.Background>
        </Grid>
        <StackPanel Grid.Row="1" Orientation="Horizontal" VerticalAlignment="Stretch" HorizontalAlignment="Left">
            <Button Content="Window 1" Width="120" Style="{DynamicResource ButtonMDI}" Template="{DynamicResource ButtonMDI_Template}" Background="{x:Null}" Foreground="White" BorderThickness="1,0" BorderBrush="#FF272D36"/>
            <Button Content="Window 2" Width="120" Template="{DynamicResource ButtonMDI_Template}" Background="{x:Null}" Foreground="White" BorderThickness="0,0,1,0" BorderBrush="#FF272D36"/>
            <Button Content="Window 3" Width="120" Background="{x:Null}" Template="{DynamicResource ButtonMDI_Template}" Foreground="White" BorderThickness="0,0,1,0" BorderBrush="#FF272D36"/>
            <Button Content="Window 4" Width="120" Background="{x:Null}" Template="{DynamicResource ButtonMDI_Template}" Foreground="White" BorderThickness="0,0,1,0" BorderBrush="#FF272D36"/>
        </StackPanel>
    </Grid>
</Window>




Как разнести это в отдельные классы, динамически подгружать контент и прописать разные драг энд дропы надеюсь объяснять не нужно.
...
Рейтинг: 0 / 0
Десктоп приложение
    #38815088
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EDUARD SAPOTSKIКак разнести это в отдельные классы, динамически подгружать контент и прописать разные драг энд дропы надеюсь объяснять не нужно.
Не-а, не нужно, я WFP пока не увлекаюсь. Но AvalonDocks и WpfMdi на слуху были.
...
Рейтинг: 0 / 0
Десктоп приложение
    #38815831
Фотография Диез
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EDUARD SAPOTSKIArm79В WPF в принципе тоже есть MDI, точнее tabbed-MDI ( http://avalondock.codeplex.com/)
Шум на пустом месте, проще надо быть. За 10 минут набросал:
...

Как разнести это в отдельные классы, динамически подгружать контент и прописать разные драг энд дропы надеюсь объяснять не нужно.

То, что вы реализовали, внешне слегка напоминает MDI, но таковым не является :)

Нет, по крайней мере, двух важных (на мой взгляд) фич:

- Управление окнами с клавиатуры (т.е. без мыши, от слова "вообще")
- Merge главного меню дочерних окон в главное меню родительского.

MDI, при всей его древности, весьма продуманный интерфейс. А вот в наше время разработчики часто забывают про эргономику как таковую ;)

Сколько времени, по-вашему, займет реализация этих пунктов на WPF?
И не проще ли взять готовое решение? Хотя бы тот же MDI (хотя я предпочитаю DockPanel Suite )
...
Рейтинг: 0 / 0
Десктоп приложение
    #38815854
carrotik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
.. какая клавиатура, если скоро все будут тыкать в форму пальцами .. ну, или чем придется ...
...
Рейтинг: 0 / 0
Десктоп приложение
    #38815867
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
carrotikкакая клавиатура, если скоро все будут тыкать в форму пальцами
Распространенное заблуждение. На самом деле есть такие категории пользователей (например, операционисты банка), для которых скорость реакции интерфейса очень важна. И они массово используют горячие клавиши. Иногда мне кажется, что они буквально играют на клавиатуре, как на рояле.
...
Рейтинг: 0 / 0
Десктоп приложение
    #38815870
Фотография EDUARD SAPOTSKI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДиезСколько времени, по-вашему, займет реализация этих пунктов на WPF?
У меня уже есть MDI который написал несколько лет назад. Тогда на это ушло несколько дней. Сейчас на реализацию такого уйдет не более дня.
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Десктоп приложение
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]