Выложен скринкаст доклада “Создание приложений доступа к данным с помощью WPF” с весенней волны семинаров TechDays (Дни разработчика)
Доступно видео и исходный код демонстраций
Доклад уровня 300 – для тех, кто уже достаточно хорошо знаком с WPF, для тех, кто еще нет, советую сначала посмотреть обзорные доклады уровня 100 и, обязательно, - Основные принципы разработки приложений на WPF.
Описание доклада
В этом докладе мы рассмотрим лучшие практики создания приложений доступа к данным на Windows Presentation Foundation и посмотрим ряд демонстраций. WPF кроме визуализации, дает нам мощнейшие возможности по связыванию данных (DataBinding), мы увидим, как это помогает в разработке, и, что и как эффективно можно использовать и в ваших проектах.
Смотрим полностью здесь.
Comments
Anonymous
May 12, 2009
PingBack from http://asp-net-hosting.simplynetdev.com/%d0%b2%d1%8b%d0%bb%d0%be%d0%b6%d0%b5%d0%bd-%d1%81%d0%ba%d1%80%d0%b8%d0%bd%d0%ba%d0%b0%d1%81%d1%82-%d0%b4%d0%be%d0%ba%d0%bb%d0%b0%d0%b4%d0%b0-%e2%80%9c%d1%81%d0%be%d0%b7%d0%b4%d0%b0%d0%bd%d0%b8%d0%b5/Anonymous
September 24, 2009
Здравствуйте Роман. Делаю работу по вашему примеру где WPF приложение соединяется через ADO.NET Data Service c Entity model на Web Application. Где испоользуется ObservableCollection. Какой код нужен для вставки, удаления записей в главной таблице понятно, а как для подчиненной?Anonymous
September 29, 2009
Роман. Что нужно для того чтобы перенести Ado.net Data Service вебсервис не на собственный вебсервер у VS а на IIS ? Заранне спасибо!Anonymous
September 29, 2009
Добрый день. Если вы загрузили с помощью include/extend связанную коллекцию, вы можете удалять из нее записи абсолютно теми же способами как из основной. По поводу разворачивания на IIS, сервис данных оформляем как отдельный ASP.NET проект и выполняем операцию Publish. Детали - http://msdn.microsoft.com/en-us/library/aa751792.aspx Также документация по теме доступна здесь - http://msdn.microsoft.com/ru-ru/library/cc668792.aspxAnonymous
October 07, 2009
Здравствуйте. По поводу добавления удаления записей из связанной коллекции при добавлении я выполняю следующие процедуры: private void add_terytory_Click(object sender, RoutedEventArgs e) { terytory newter = new terytory { name = "Введите название" }; emp.Add_ter(newter); } public virtual void Add_ter(terrytory item) { //base.Add(item); - это действие для главной таблицы... в раскоментировке говорит что аргумент не та коллекция..не родительская mybase.AddToTerytory(item); } public void SaveChanges() { foreach (employe ee in mybase.employe.Expand("terytory")) if (ee.IsChanged) { mybase.UpdateObject(ee); ee.IsChanged = false; } mybase.SaveChanges(); } После этих действий в подчиненную таблицу попадает новая запись с теми полями которые вставлял кроме внешнего ключа. он остаётся NULL. в датагридах свойство в обоих IsSynchronizedWithCurrentItem="True". Что посоветуете?Anonymous
October 08, 2009
По связям между коллекциями нужно ходить через свойства Employees и Territories, а не через mybaseAnonymous
October 27, 2009
Здравствуйте Роман. У меня встала проблема. WPF Browser Application подсоединенный к севису, который лежит на iis запускается из проводника , а если его (WPF)опубликовать тоже на iis то выходит ошибка что приложение не безопасно...отказано в доверии. В настройках проета WPF на вкладке Security стоит Full trust application. Думаю что нужно ставить с частичным доверием. Но повключав разные опции, таки не добилсся чтоб на сервере запускалась страница с приложением. Что делать?)Anonymous
October 27, 2009
WPF Browser application в версии 3.5 SP1 надо конфигурировать с partial trust. Подробнее, что, как и где- здесь - http://msdn.microsoft.com/en-us/library/aa970060.aspx#XBAP_Security_Considerations и http://msdn.microsoft.com/en-us/library/aa970906.aspxAnonymous
November 01, 2009
здравствуйте Роман. Никак не могу разобраться по поводу добавления данных в подчиненную коллекцию сделал такой код: private void add_list_Click(object sender, RoutedEventArgs e) { territories newTer = new territories {nazv = "США"}; employees newemp = new employees {fam = "Новая Фамилия"}; emp.Add_list(newTer ,newemp); } public virtual void Add_list(teritories item,employees item2) { //base.Add(item2); mybase.AddToemployees(item2); item2.Terirtories.Add(item); mybase.AddTeritories(item); base.Add(item2); } в итоге у меня появляется запись и в в основном датагриде и в подчиненном.) после нажатия на SaveChanges все попадает в бд но внешний ключ у записи подчиненной таблицы все равно оказывается NULL. процедура SaveChanges public void SaveChanges() { foreach (per_osnastki ee in mybase.per_osnastki.Expand("per_listov_ns")) if (ee.IsChanged) { mybase.UpdateObject(ee); ee.IsChanged = false; } mybase.SaveChanges(); } 1.У меня получается дабавить запись в подчиненную таблицу только добавляя новую запись в основную!)) Как добавлять к выделенной на датагриде? 2.Почему не вставляется внешний ключ?Anonymous
January 23, 2010
Привет Роман. Сделал свое приложение по подобию. Observable Collection с единственной таблицей, все так же вяжется к датагриду. Единственное отличие - добавляется произвольная запись, удаляется не последняя, а выбранная. Все вроде бы круто, но вот какая проблема - при добавлении записи изменения в базу прокидываются, но вот при редактировании - почему-то нет. Причем я дебаггером отслеживал процедуру записи - вроде бы ни на каком этапе "старая" запись не вернулась, однако в базу она не попала и при перезагрузке данных все пропадает... Вот не знаю, что и делать..Anonymous
January 23, 2010
Ага, вот посмотрел, в вашем примере (EFBinding, #4 из скачиваемых материалов) все точно так же. Если отредактировать то поле, что Explisit Editing, нажать ОК и Save to DB, то изменение в базу не прокинется. В этом легко убедиться, если надать потом Load. А вот если Implicit отредактировать - изменение проходит в базу... Хотелось бы пояснений.Anonymous
February 13, 2010
Роман, такой вопрос: Предоставляет ли VS средства для создания БД, с самого начала, проектирование сущностей и создания связей между ними?Anonymous
February 14, 2010
Да, это возможности Visual Studio 2010 - Entity Framework v2.Anonymous
June 01, 2011
Да, действительно. Возможности WPF впечатляют!Anonymous
October 06, 2011
Здраствуйте, Роман,а как вы делали,чтоб значения в базе данных изменялись при изменении значений в гриде, или при нажатии кнопки сохранить? Хочу, чтоб при изменении, удалении, добавлении значений в грид, всё это передавалось в базу. У меня, всё кэшируется в датасете. При перезапуске я вижу всё то же, что и было раньше в гриде, без изменений, которые вносил.