Поделиться через


Выложен скринкаст доклада “Создание приложений доступа к данным с помощью 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.aspx

  • Anonymous
    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, а не через mybase

  • Anonymous
    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.aspx

  • Anonymous
    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
    Здраствуйте, Роман,а как вы делали,чтоб значения в базе данных изменялись при изменении значений в гриде, или при нажатии кнопки сохранить? Хочу, чтоб при изменении, удалении, добавлении значений в грид, всё это передавалось в базу. У меня, всё кэшируется в датасете. При перезапуске я вижу всё то же, что и было раньше в гриде, без изменений, которые вносил.