powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / В раздумьях: WPF, Silverlight или, всё-таки, формза
25 сообщений из 51, страница 2 из 3
В раздумьях: WPF, Silverlight или, всё-таки, формза
    #37358554
.ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Смотрю в название топика.
WPF. WinForms. SL.

i seeSeVaSL не умрет, а будет там, где и положено ему быть - в самой системе без всяких плагинов.А как быть с невиндовыми осями?
Как быть с невиндовыми осями (в случае SL)?
Точно так же.
...
Рейтинг: 0 / 0
В раздумьях: WPF, Silverlight или, всё-таки, формза
    #37359696
тоже думаю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Т.е. Wpf предпочтительнее WinForms в том числе и для учеток?

Я смотрю пример из статьи (сколько кода, а выводит список и форму для добавления новой записи), читаю это , потом это и не совсем очевидно, почему Wpf лучше подходит для клиента к корпоративной базе, чем WinForms + mvp, к примеру.

Вот очень интересно, чем МСУ обоснует, что все-таки впф?

Зачем тратить время на глубокое изучение wpf, если уже сейчас официально говорят, что это не главное течение?
Через пару лет, наверняка уже будут говорить, что Wpf такое же старье, как и WinForms.

Вопрос для корректного обсуждения.
...
Рейтинг: 0 / 0
В раздумьях: WPF, Silverlight или, всё-таки, формза
    #37359802
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тоже думаю,

все эти впф сл хамл и т.д. фигня
попытка иметь в ОС еще одну ОС(браузер) изначальна говнистая идея была, никак сцуки не откажутся от этой фигни
был С и АПИ ОС
теперь можно C#(...) и .NET
...
Рейтинг: 0 / 0
В раздумьях: WPF, Silverlight или, всё-таки, формза
    #37359888
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тоже думаюВот очень интересно, чем МСУ обоснует, что все-таки впф?


Все просто до безобразия. Метод стека: формза умерла, сл тоже (к тому же в качестве десктопа он идет прямиком на свалку). Остался впф, который еще дышит. Ответ очевиден - берем дышащего зверька и мутим решение.
тоже думаюЗачем тратить время на глубокое изучение wpf, если уже сейчас официально говорят, что это не главное течение?

Та перестаньте Вы. Там и учить нечего - все просто, как в детском саду. Не так страшен черт, дяденька. Другое дело в течении, тут Вы несомненно правы. Но. Выбора другого нет, приходится играться с тем, что покамест пичкают нам в наши ненасытные желудки. Берем и используем. Без слез, соплей и возмущений - просто решаем поставленную задачу.
...
Рейтинг: 0 / 0
В раздумьях: WPF, Silverlight или, всё-таки, формза
    #37359918
тоже думаю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ниже код CustomerViewModel для формочки из примера указанной выше статьи.
На самом View - 4 поля и кнопка сохранения.
Кто-то говорит, что wpf + mvvm упрощает им работу?

Модератор: Берите в спойлер! Первый день на форуме?
Код: plaintext
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.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
using System;
using System.ComponentModel;
using System.Windows.Input;
using DemoApp.DataAccess;
using DemoApp.Model;
using DemoApp.Properties;

namespace DemoApp.ViewModel
{
    /// <summary>
    /// A UI-friendly wrapper for a Customer object.
    /// </summary>
    public class CustomerViewModel : WorkspaceViewModel, IDataErrorInfo
    {
        #region Fields

        readonly Customer _customer;
        readonly CustomerRepository _customerRepository;
        string _customerType;
        string[] _customerTypeOptions;
        bool _isSelected;
        RelayCommand _saveCommand;

        #endregion // Fields

        #region Constructor

        public CustomerViewModel(Customer customer, CustomerRepository customerRepository)
        {
            if (customer == null)
                throw new ArgumentNullException("customer");

            if (customerRepository == null)
                throw new ArgumentNullException("customerRepository");

            _customer = customer;
            _customerRepository = customerRepository;
            _customerType = Strings.CustomerViewModel_CustomerTypeOption_NotSpecified;
        }

        #endregion // Constructor

        #region Customer Properties

        public string Email
        {
            get { return _customer.Email; }
            set
            {
                if (value == _customer.Email)
                    return;

                _customer.Email = value;

                base.OnPropertyChanged("Email");
            }
        }

        public string FirstName
        {
            get { return _customer.FirstName; }
            set
            {
                if (value == _customer.FirstName)
                    return;

                _customer.FirstName = value;

                base.OnPropertyChanged("FirstName");
            }
        }

        public bool IsCompany
        {
            get { return _customer.IsCompany; }
        }

        public string LastName
        {
            get { return _customer.LastName; }
            set
            {
                if (value == _customer.LastName)
                    return;

                _customer.LastName = value;

                base.OnPropertyChanged("LastName");
            }
        }

        public double TotalSales
        {
            get { return _customer.TotalSales; }
        }

        #endregion // Customer Properties

        #region Presentation Properties

        /// <summary>
        /// Gets/sets a value that indicates what type of customer this is.
        /// This property maps to the IsCompany property of the Customer class,
        /// but also has support for an 'unselected' state.
        /// </summary>
        public string CustomerType
        {
            get { return _customerType; }
            set
            {
                if (value == _customerType || String.IsNullOrEmpty(value))
                    return;

                _customerType = value;

                if (_customerType == Strings.CustomerViewModel_CustomerTypeOption_Company)
                {
                    _customer.IsCompany = true;
                }
                else if (_customerType == Strings.CustomerViewModel_CustomerTypeOption_Person)
                {
                    _customer.IsCompany = false;
                }

                base.OnPropertyChanged("CustomerType");

                // Since this ViewModel object has knowledge of how to translate
                // a customer type (i.e. text) to a Customer object's IsCompany property,
                // it also must raise a property change notification when it changes
                // the value of IsCompany.  The LastName property is validated 
                // differently based on whether the customer is a company or not,
                // so the validation for the LastName property must execute now.
                base.OnPropertyChanged("LastName");
            }
        }

        /// <summary>
        /// Returns a list of strings used to populate the Customer Type selector.
        /// </summary>
        public string[] CustomerTypeOptions
        {
            get
            {
                if (_customerTypeOptions == null)
                {
                    _customerTypeOptions = new string[]
                    {
                        Strings.CustomerViewModel_CustomerTypeOption_NotSpecified,
                        Strings.CustomerViewModel_CustomerTypeOption_Person,
                        Strings.CustomerViewModel_CustomerTypeOption_Company
                    };
                }
                return _customerTypeOptions;
            }
        }

        public override string DisplayName
        {
            get
            {
                if (this.IsNewCustomer)
                {
                    return Strings.CustomerViewModel_DisplayName;
                }
                else if (_customer.IsCompany)
                {
                    return _customer.FirstName;
                }
                else
                {
                    return String.Format("{0}, {1}", _customer.LastName, _customer.FirstName);
                }
            }
        }

        /// <summary>
        /// Gets/sets whether this customer is selected in the UI.
        /// </summary>
        public bool IsSelected
        {
            get { return _isSelected; }
            set
            {
                if (value == _isSelected)
                    return;

                _isSelected = value;

                base.OnPropertyChanged("IsSelected");
            }
        }

        /// <summary>
        /// Returns a command that saves the customer.
        /// </summary>
        public ICommand SaveCommand
        {
            get
            {
                if (_saveCommand == null)
                {
                    _saveCommand = new RelayCommand(
                        param => this.Save(),
                        param => this.CanSave
                        );
                }
                return _saveCommand;
            }
        }

        #endregion // Presentation Properties

        #region Public Methods

        /// <summary>
        /// Saves the customer to the repository.  This method is invoked by the SaveCommand.
        /// </summary>
        public void Save()
        {
            if (!_customer.IsValid)
                throw new InvalidOperationException(Strings.CustomerViewModel_Exception_CannotSave);

            if (this.IsNewCustomer)
                _customerRepository.AddCustomer(_customer);
            
            base.OnPropertyChanged("DisplayName");
        }

        #endregion // Public Methods

        #region Private Helpers

        /// <summary>
        /// Returns true if this customer was created by the user and it has not yet
        /// been saved to the customer repository.
        /// </summary>
        bool IsNewCustomer
        {
            get { return !_customerRepository.ContainsCustomer(_customer); }
        }

        /// <summary>
        /// Returns true if the customer is valid and can be saved.
        /// </summary>
        bool CanSave
        {
            get { return String.IsNullOrEmpty(this.ValidateCustomerType()) && _customer.IsValid; }
        }

        #endregion // Private Helpers

        #region IDataErrorInfo Members

        string IDataErrorInfo.Error
        {
            get { return (_customer as IDataErrorInfo).Error; }
        }

        string IDataErrorInfo.this[string propertyName]
        {
            get
            {
                string error = null;

                if (propertyName == "CustomerType")
                {
                    // The IsCompany property of the Customer class 
                    // is Boolean, so it has no concept of being in
                    // an "unselected" state.  The CustomerViewModel
                    // class handles this mapping and validation.
                    error = this.ValidateCustomerType();
                }
                else
                {
                    error = (_customer as IDataErrorInfo)[propertyName];
                }

                // Dirty the commands registered with CommandManager,
                // such as our Save command, so that they are queried
                // to see if they can execute now.
                CommandManager.InvalidateRequerySuggested();

                return error;
            }
        }

        string ValidateCustomerType()
        {
            if (this.CustomerType == Strings.CustomerViewModel_CustomerTypeOption_Company ||
               this.CustomerType == Strings.CustomerViewModel_CustomerTypeOption_Person)
                return null;

            return Strings.CustomerViewModel_Error_MissingCustomerType;
        }

        #endregion // IDataErrorInfo Members
    }
}
...
Рейтинг: 0 / 0
В раздумьях: WPF, Silverlight или, всё-таки, формза
    #37359926
тоже думаю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
МСУ,

Почему формза умерла?
Ее столько лет развивали, что уже дальше и развивать то некуда.
В VS2010 вот появился Chart, неплохой на мой вкус.
...
Рейтинг: 0 / 0
В раздумьях: WPF, Silverlight или, всё-таки, формза
    #37359927
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тоже думаюТ.е. Wpf предпочтительнее WinForms в том числе и для учеток?

Я смотрю пример из статьи (сколько кода, а выводит список и форму для добавления новой записи), читаю это , потом это и не совсем очевидно, почему Wpf лучше подходит для клиента к корпоративной базе, чем WinForms + mvp, к примеру.

Вот очень интересно, чем МСУ обоснует, что все-таки впф?

Зачем тратить время на глубокое изучение wpf, если уже сейчас официально говорят, что это не главное течение?
Через пару лет, наверняка уже будут говорить, что Wpf такое же старье, как и WinForms.

Вопрос для корректного обсуждения.

1. На те "это" смотреть не нужно. Пример того, как в wpf пытаются применять подходы winforms.
Если про них забыть, то все гораздо проще, короче и внятней, чем в winforms даже с mvp.
2. Хотите вы или не хотите, но MS все равно заставит переходить на xaml.
3. SL5 практически не уступает WPF по возможностям. Всем уже давно понятно, что wpf дальше особо развивать не будут.
Но даже если и не будут, то все равно его возможностей с головой хватит еще на 10лет.
4. Ничего еще официально не говорят и МС играет в молчанку. Вероятнее всего - SL перекочует в систему, а в каком виде(урезанном или расширенном), узнаем в сентябре.
...
Рейтинг: 0 / 0
В раздумьях: WPF, Silverlight или, всё-таки, формза
    #37359930
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тоже думаюНиже код CustomerViewModel для формочки из примера указанной выше статьи.
На самом View - 4 поля и кнопка сохранения.
Кто-то говорит, что wpf + mvvm упрощает им работу?


...

Совершенно дурацкий пример, где смешаны ViewModel и Моdel
...
Рейтинг: 0 / 0
В раздумьях: WPF, Silverlight или, всё-таки, формза
    #37359955
тоже думаю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SeVa,

ОК. Возможно, что и дурацкий. Взят с msdn.microsoft.com

Кинете ссылочку на идеальнй пример попроще для wpf + mvvm?
Интересует ситуация для десктопнго клиента к обычной корпоративной учетке.
Т.е. что-бы посмотрел и сразу осознал всю выгоду :)
...
Рейтинг: 0 / 0
В раздумьях: WPF, Silverlight или, всё-таки, формза
    #37360048
.ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
тоже думаюНиже код CustomerViewModel для формочки из примера указанной выше статьи.
На самом View - 4 поля и кнопка сохранения.

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

Кто-то говорит, что wpf + mvvm упрощает им работу?
Говорят.
Те, кто понимает, зачем оно нужно. Какие плюсы при использования паттерна, какие минусы.
Касается любого паттерна, в том числе и MVVM.

Если же применять налево и направо, не задумываясь зачем, почему, и нужно ли - лучше не использовать паттерны совсем, нежели изображать из себя обезъяну с гранатой.
В последнее время расплодились толпы долбоёгов, которые зубы бы чистили с помощью MVVM, если бы умели.
...
Рейтинг: 0 / 0
В раздумьях: WPF, Silverlight или, всё-таки, формза
    #37360099
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тоже думаюSeVa,

ОК. Возможно, что и дурацкий. Взят с msdn.microsoft.com

Кинете ссылочку на идеальнй пример попроще для wpf + mvvm?
Интересует ситуация для десктопнго клиента к обычной корпоративной учетке.
Т.е. что-бы посмотрел и сразу осознал всю выгоду :)

От одной ссылки просветления не будет. Если такой любитель mvp, то можешь сравнить кол-во
кода в монстрообразном scsf для winforms и prism/WPF/SL. Минимум на порядок разница.
WPF/SL для корпоративных учеток - то, что доктор прописал.
...
Рейтинг: 0 / 0
В раздумьях: WPF, Silverlight или, всё-таки, формза
    #37360131
.ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SeVa... Если такой любитель mvp...
... то никто не запрещает использовать MVP и в связке с WPF :)
...
Рейтинг: 0 / 0
В раздумьях: WPF, Silverlight или, всё-таки, формза
    #37360289
Фотография EDUARD SAPOTSKI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хм... а я за SL! То что для бизнеса (особенно для большого) web-интерфейс наиболее оптимальное решение - доказано давно, и с каждым годом это утверждение становится более достоверным. И тут уж приходится выбирать или ASP.NET или SL. Так как у меня организм органически отвергает HTML и JS, то приходилось использовать толстых клиентов на WinForms, появление SL для меня было как манна небесная. Не скажу что я в SL достиг больших успехов но два простеньких проекта уже зарелизил, и клиенты довольны и я доволен. Так что я пока хоронить SL не собираюсь. Есть конечно свои заморочки но имхо решать бизнес задачи на SL на порядок приятнее чем на ASP.NET. А WPF хорош для чисто десктопных приложений.
...
Рейтинг: 0 / 0
В раздумьях: WPF, Silverlight или, всё-таки, формза
    #37361964
Фотография Шайтан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaПри правильном подходе можно совместить WPF и SL, отличаться будут только визуальные части.

совмещение - это использование в окошке (страничке, контроле) WPF контрола WebBrowser, в который грузятся странички с SL ?

или есть ещё какие-то варианты совмещения?
...
Рейтинг: 0 / 0
В раздумьях: WPF, Silverlight или, всё-таки, формза
    #37362156
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ШайтанSeVaПри правильном подходе можно совместить WPF и SL, отличаться будут только визуальные части.

совмещение - это использование в окошке (страничке, контроле) WPF контрола WebBrowser, в который грузятся странички с SL ?

или есть ещё какие-то варианты совмещения?

Нет не в окошках(обещают, что это будет возможно в следующей версии wpf). А сейчас -основной код одинаков(практически весь за исключением небольших моментов), а View разные
...
Рейтинг: 0 / 0
В раздумьях: WPF, Silverlight или, всё-таки, формза
    #37362223
sandyp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Нет не в окошках(обещают, что это будет возможно в следующей версии wpf).

В смысле в следующей? Сейчас же можно - SL в браузере, браузер внутри WPF app и т.д. Взаимодействие только вроде через JS.
А как можно будет в следующей?
...
Рейтинг: 0 / 0
В раздумьях: WPF, Silverlight или, всё-таки, формза
    #37362238
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обещают "бесшовную" интеграцию. На зимней конференции был доклад с демонстрацией на эту тему.
...
Рейтинг: 0 / 0
В раздумьях: WPF, Silverlight или, всё-таки, формза
    #37362793
Фотография Шайтан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaОбещают "бесшовную" интеграцию.вот это было бы реально зачётно!
...
Рейтинг: 0 / 0
В раздумьях: WPF, Silverlight или, всё-таки, формза
    #37362915
тоже думаю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну вот еще ссылки: 1 , 2

От мужика, который Former Product Manager (Silverlight/WPF) Microsoft Corp и т.д., считай, только-что написал по поводу Prism.

abandonware - программное обеспечение, которое больше не поддерживается разработчиком
...
Рейтинг: 0 / 0
В раздумьях: WPF, Silverlight или, всё-таки, формза
    #37362950
тоже думаю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Еще ссылки:
Rob Relyea (Program Manager on Kinect for Windows Team. Past: * Program Manager/Architect on WPF/XAML (2001-2011) * Program Manager on Internet Explorer team (1998-2001) )

Год назад отвечает на вопрос про смерть wpf , сейчас про него можно узнать из его твиттера.
...
Рейтинг: 0 / 0
В раздумьях: WPF, Silverlight или, всё-таки, формза
    #37362984
тоже думаю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
тоже думаюНу вот еще ссылки: 1 , 2

От мужика, который Former Product Manager (Silverlight/WPF) Microsoft Corp и т.д., считай, только-что написал по поводу Prism.

abandonware - программное обеспечение, которое больше не поддерживается разработчиком
Тут такой диалог развернулся:


Левый мужик: working on #silverlight navigation in a complex business app using a prism eventing model. is working well. having mtgs with all tues on UI.

Scott Barnes: dump prism, go caliburn micro :)

Левый мужик: caliburn m is nice but the client corp requires more std frameworks to be used. would like to look into it further with WP7

Scott Barnes: well PRISM is abandonware..so you're kind of flying solo now :)
...
Рейтинг: 0 / 0
В раздумьях: WPF, Silverlight или, всё-таки, формза
    #37363062
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тоже думаюНу вот еще ссылки: 1 , 2

От мужика, который Former Product Manager (Silverlight/WPF) Microsoft Corp и т.д., считай, только-что написал по поводу Prism.

abandonware - программное обеспечение, которое больше не поддерживается разработчиком

БЫВШИЙ пм, несет полную пургу. P&P никогда не сидят постоянно на одном проекте. Больше от Prism ничего не нужно, а иначе будет аналог монстроидального Caliburn. После критики в излишней утяжеленности(сравнивали с scsf), его покоцали в Caliburn.Micro.
...
Рейтинг: 0 / 0
В раздумьях: WPF, Silverlight или, всё-таки, формза
    #37364578
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приоритеты очевидны как ясный день: для корпоратива ASP.NET WebForms и набирающий обороты и популярность ASP.NET MVC. Для десктопа - WPF. Для веба - HTML5 (ASP.NET).
...
Рейтинг: 0 / 0
В раздумьях: WPF, Silverlight или, всё-таки, формза
    #37364734
Фотография Шайтан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУПриоритеты очевидны как ясный день:
- для корпоратива ASP.NET WebForms.....
- Для десктопа - WPF
- .....
а что, в "корпоративе" не может быть "десктопа" ???
...
Рейтинг: 0 / 0
В раздумьях: WPF, Silverlight или, всё-таки, формза
    #37364876
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шайтана что, в "корпоративе" не может быть "десктопа" ???
"Для десктопа" более расширенное определение.
...
Рейтинг: 0 / 0
25 сообщений из 51, страница 2 из 3
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / В раздумьях: WPF, Silverlight или, всё-таки, формза
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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