BLToolit
От: Блудов Павел Россия  
Дата: 24.10.08 00:25
Оценка: 6 (1)
Здравствуйте, Ziaw, Вы писали:

Z>Здравствуйте, Блудов Павел, Вы писали:


БП>>Примерно так. Если урл сервиса не задан явно, то берётся имя хоста из .config файла и относительный путь из этого атрибута.

БП>>Смешиваются и получается адрес куда клиент и ломится собственно.

Z>т.е. по адресу http://myhost.org/MyServices/foo/bar.asmx приложение уже не разместить без перекомпиляции?

Почему? Нипишите свою логику для инициализации поля Path (или Url, не помню точно) и будет вам счастье.
У меня есть в одном месте код типа
   [GenerateWebServiceBinding("http://blablabla.org/Services/foo/bar.asmx/")]
    [GenerateXmlInclude(typeof(FooItem))]
    public abstract class FooBarAvatar : WebClientBase<FooBarAvatar>
    {
            public FooBarAvatar(): base(Settings.Default.FooBarUrl) {}
    }



Z>И всетаки? Как выглядит процедура/функция возвращающая List<MyItem>?

Примерно так
CREATE OR REPLACE 
FUNCTION LOAD_FOO
  RETURN SYS_REFCURSOR
IS
    retCursor SYS_REFCURSOR;
BEGIN
OPEN retCursor FOR
    SELECT
        FOO_ID, FOO_NAME, FOO_BAR
    FROM
        FOO;
RETURN
    retCursor;
END;
/


Т.е. просто возвращаем курсор, а он перекладывается в список или словарь объектов типа Foo.

Вот здесь
http://projects.rsdn.ru/RFD/wiki/
есть немного документации.
Здесь
http://rsdn.ru/Forum/?group=prj.rfd
можно задавать конкретные вопросы.
Здесь
http://code.google.com/p/bl-toolkit/
можно скачать исходники и примеры.
Здесь
http://bltoolkit.net/
документация и примеры на иностранном языке.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111>>
Re: .NET, WebService, Desktop-клиент
От: Блудов Павел Россия  
Дата: 20.10.08 11:05
Оценка: 3 (1)
Здравствуйте, <Аноним>, Вы писали:

А>МУЖИКИ КАК ВЫ ТАКОЕ ДЕЛАЕТЕ


А>Задача:


А>Есть БД. Нужно сделать клиента к ней (Desktop клиент). Клиент должен быть способен

А>работать не только в локалке но и в инете.
BLToolkit'ом.
На серверной стороне пишу
    [OraclePackage("FOOBAR_PACKAGE")]
    [GenerateWebService("http://blablabla.org/Services/foo/bar.asmx")]
    [GenerateXmlInclude(typeof(FooItem))]
#if DEBUG
    [BLToolkit.Aspects.Log]
#endif
    public abstract class FooBarPackage: OraclePackageBaseService<FooBarPackage>
    {
        [GenerateAttribute(typeof(WebMethodAttribute), true)]
        public abstract List<FooItem> LoadFoo(string blablablaId);
    }

Таким вот макаром оракловые пакеты тупо превращаются в ВебСлужбы.

На клиенте имеем
    [GenerateWebServiceBinding("http://blablabla.org/Services/foo/bar.asmx/")]
    [GenerateXmlInclude(typeof(FooItem))]
    public sealed class FooBarAvatar : WebClientBase<FooBarAvatar>
    {
        [GenerateSoapDocumentMethod]
        public abstract List<FooItem> LoadFoo(string blablablaId);
        public abstract void LoadFoo(AsyncCallback<List<FooItem>> callback);
    }


И далее где-то в коде
List<FooItem> fooItems = FooBarAvatar.Instance.LoadFoo(id);

или
FooBarAvatar.Instance.LoadFoo(id, delegate(List<FooItem> fooItems){
    //
    // Делаем что хотим с fooItems
    //
    });
... << RSDN@Home 1.2.0 alpha 4 rev. 1111>>
.NET, WebService, Desktop-клиент
От: Аноним  
Дата: 15.10.08 07:27
Оценка:
МУЖИКИ КАК ВЫ ТАКОЕ ДЕЛАЕТЕ

Задача:

Есть БД. Нужно сделать клиента к ней (Desktop клиент). Клиент должен быть способен
работать не только в локалке но и в инете.

Раньше делал так:

Для клиента в БД создаётся набор необходимых хранимок,
которые позволяют забирать нужные данные из БД. И сохранять в БД.
Фактически это была бизнес логика.

Для обмена данными с клиентом через инет/локалку, создаётся WebService —
фактически является обёрткой над хранимками — тупо вызывает их,
получает данные и РУЧНЫМ СПОСОБОМ преобразует их в DTO ну и результат
сериализуется в XML и передаётся на клиент.

На клиенте это DTO ручным способом (явно вызывая конструкторы) преобразуется
в BO. Ну и потом каким то образом представляется пользователю.

Надоел этот мазохизм. Очень трудомко. Что я должен открыть для себя,
чтобы создание таких приложений было быстрым и продуктивным. Кто как делает.

Повторю требования: Desktop клиент к БД, работа через инет HTTP 80 порт .
Re: .NET, WebService, Desktop-клиент
От: Aen Sidhe Россия Просто блог
Дата: 15.10.08 07:33
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Повторю требования: Desktop клиент к БД, работа через инет HTTP 80 порт .


1. Remoting + HTTP Binding
2. WCF + one from HTTP Binding
3. ADO .NET Data Services (не пробовал)
С уважением, Анатолий Попов.
ICQ: 995-908
Re[2]: .NET, WebService, Desktop-клиент
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 15.10.08 07:49
Оценка:
Здравствуйте, Aen Sidhe, Вы писали:

AS>Здравствуйте, Аноним, Вы писали:


А>>Повторю требования: Desktop клиент к БД, работа через инет HTTP 80 порт .


AS>1. Remoting + HTTP Binding

AS>2. WCF + one from HTTP Binding
AS>3. ADO .NET Data Services (не пробовал)

2. WCF + one from HTTP Binding + EF

4. ADO.NET Sync Services (еще не релиз)
Re[3]: .NET, WebService, Desktop-клиент
От: Aen Sidhe Россия Просто блог
Дата: 15.10.08 07:51
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Здравствуйте, Aen Sidhe, Вы писали:


AS>>Здравствуйте, Аноним, Вы писали:


А>>>Повторю требования: Desktop клиент к БД, работа через инет HTTP 80 порт .


AS>>1. Remoting + HTTP Binding

AS>>2. WCF + one from HTTP Binding
AS>>3. ADO .NET Data Services (не пробовал)

G>2. WCF + one from HTTP Binding + EF


Я не стал EF указывать, потому что можно юзать любой ORM.
С уважением, Анатолий Попов.
ICQ: 995-908
Re[4]: .NET, WebService, Desktop-клиент
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 15.10.08 07:58
Оценка:
Здравствуйте, Aen Sidhe, Вы писали:

AS>Здравствуйте, gandjustas, Вы писали:


G>>Здравствуйте, Aen Sidhe, Вы писали:


AS>>>Здравствуйте, Аноним, Вы писали:


А>>>>Повторю требования: Desktop клиент к БД, работа через инет HTTP 80 порт .


AS>>>1. Remoting + HTTP Binding

AS>>>2. WCF + one from HTTP Binding
AS>>>3. ADO .NET Data Services (не пробовал)

G>>2. WCF + one from HTTP Binding + EF


AS>Я не стал EF указывать, потому что можно юзать любой ORM.

Linq2SQL создает несериализуемые объекты, EF-сущности нормально сереализуются и передаются по WCF каналам.
Re[5]: .NET, WebService, Desktop-клиент
От: Ziggi111 Россия  
Дата: 15.10.08 08:32
Оценка:
Здравствуйте, gandjustas, Вы писали:

AS>>Я не стал EF указывать, потому что можно юзать любой ORM.

G>Linq2SQL создает несериализуемые объекты, EF-сущности нормально сереализуются и передаются по WCF каналам.
Почему это Linq2SQL создаёт несериализуемые объекты?
здесь написано как работать Linq сущностями в службах WCF.
Re[5]: .NET, WebService, Desktop-клиент
От: Aen Sidhe Россия Просто блог
Дата: 15.10.08 08:58
Оценка:
Здравствуйте, gandjustas, Вы писали:

А>>>>>Повторю требования: Desktop клиент к БД, работа через инет HTTP 80 порт .


AS>>>>1. Remoting + HTTP Binding

AS>>>>2. WCF + one from HTTP Binding
AS>>>>3. ADO .NET Data Services (не пробовал)

G>>>2. WCF + one from HTTP Binding + EF


AS>>Я не стал EF указывать, потому что можно юзать любой ORM.


G>Linq2SQL создает несериализуемые объекты, EF-сущности нормально сереализуются и передаются по WCF каналам.


А что, кроме МС ОРМов ничего нет?
С уважением, Анатолий Попов.
ICQ: 995-908
Re[6]: .NET, WebService, Desktop-клиент
От: Ziggi111 Россия  
Дата: 15.10.08 09:00
Оценка:
Здравствуйте, Aen Sidhe, Вы писали:

AS>А что, кроме МС ОРМов ничего нет?


Есть конечно, но это как любовь пофигистическая. Есть скем, есть где, есть чем, но зачем?
Re[2]: .NET, WebService, Desktop-клиент
От: Ziaw Россия  
Дата: 21.10.08 05:42
Оценка:
Здравствуйте, Блудов Павел, Вы писали:

БП>На серверной стороне пишу

БП>
    [OraclePackage("FOOBAR_PACKAGE")]
БП>    [GenerateWebService("http://blablabla.org/Services/foo/bar.asmx")]
БП>    [GenerateXmlInclude(typeof(FooItem))]
БП>#if DEBUG
БП>    [BLToolkit.Aspects.Log]
БП>#endif
БП>    public abstract class FooBarPackage: OraclePackageBaseService<FooBarPackage>
БП>    {
БП>        [GenerateAttribute(typeof(WebMethodAttribute), true)]
БП>        public abstract List<FooItem> LoadFoo(string blablablaId);
БП>    }
БП>

БП>Таким вот макаром оракловые пакеты тупо превращаются в ВебСлужбы.

Интересно, только сразу появились вопросы.
1.

[GenerateWebService("http://blablabla.org/Services/foo/bar.asmx")]

Это урл сервиса зашит в код?
2. Как выглядит сам package? С какими типами работает?
... << RSDN@Home 1.2.0 alpha 4 rev. 0>>
Re[3]: .NET, WebService, Desktop-клиент
От: Блудов Павел Россия  
Дата: 21.10.08 10:46
Оценка:
Здравствуйте, Ziaw, Вы писали:

Z>Интересно, только сразу появились вопросы.

Z>1.

[GenerateWebService("http://blablabla.org/Services/foo/bar.asmx")]

Это урл сервиса зашит в код?

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

Z>2. Как выглядит сам package? С какими типами работает?

Обычный оракловый пакет. Работает со всеми известными науке типами, включая XML и массивы. UDT тоже можно прикрутить — было бы желание.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111>>
Re[4]: .NET, WebService, Desktop-клиент
От: Ziaw Россия  
Дата: 23.10.08 15:09
Оценка:
Здравствуйте, Блудов Павел, Вы писали:

БП>Примерно так. Если урл сервиса не задан явно, то берётся имя хоста из .config файла и относительный путь из этого атрибута.

БП>Смешиваются и получается адрес куда клиент и ломится собственно.

т.е. по адресу http://myhost.org/MyServices/foo/bar.asmx приложение уже не разместить без перекомпиляции?

БП>Обычный оракловый пакет. Работает со всеми известными науке типами, включая XML и массивы. UDT тоже можно прикрутить — было бы желание.


И всетаки? Как выглядит процедура/функция возвращающая List<MyItem>?
... << RSDN@Home 1.2.0 alpha 4 rev. 1099>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.