Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 13:52 03.06.24 
Компютри и Интернет
   >> .NET
Всички теми Следваща тема *Кратък преглед

Страници по тази тема: 1 | 2 | 3 | 4 | >> (покажи всички)
Тема Remoting vyprosche?  
Автор БOИЛ ()
Публикувано27.06.03 08:58



Zdraveite !
Problema mi e slednia :
Chrez Remoting tehnologiata i VB.NET se mychim da napravim Aplication Server.
Podkarahme go gore-dolu za sega , obache imam neshto za pitane :
Naprimer pt Clientskoto prilojenie se vika method na AppServer-a , koito method triabva da zapylni obekt DataTable prez ADO.NET ot MS SQL Server 2000.
Vyprosyt mi e :
Po kakyv nachin stava predavaneto na DataTable-a na APp Servera , i toi po kakyv nachin go vryshta . Zashtoto pyrvia nachin koito mi doide na uma e kato vhoden parametyr na methoda . Obache ako predam DataTable-a ByRef -> toest adresa mu e na Clientskoto prilojenie ...Ako e ByVal , togava kakvoto i da se pravi na AppServera to ne se vryshta obratno pri clienta ....
T.e. kakyv e nachina za predavane i vryshtane na danni ot i kym AppServera ?
Като допъlnitelno info za AppServer-a : Izpolzvame :
MarshalingByRef, Server Acivated Object,SingleCall

Blagodaria predvaritelno!

P.S. -> ideiata za cluba e mnogo dobra . Tyi kato tova e nova tehnologia , nadiavam se malko po malko da se ojivi ....Az lichno pisha na VB.NET ot malko poveche ot godina , no vse oshte imam oshte mnogo,mnogo da ucha ....



Тема Re: Remoting vyprosche?нови [re: БOИЛ]  
Автор шeф нa Coди Дeвня (full optional)
Публикувано27.06.03 19:19



az lichno bih go serializiral kato XML pri clienta, prashtam go kato stream na server-a, server-a poluchava xml stream, ot tozi xml si prava data table na server-a, rabotia si varhu neia, pak ia serializiram v xml s promenite i ia prashtam kato stream obratno na clienta koito si ia obrushta v datatable

tova koeto ti se opitvash na napravish mnogo prilicha na DCOM, koeto e veche mnogo ostariala tehnologia i e izcialo zamestena ot web services/SOAP/XML scenarios

tova koeto az se opitvam da ti obesna mnogo prilicha na web services

taka che moeto mnenie da razuchish web services i da minesh kam tozi rod komunikacia za da ne ti se naloji da prenapisvash skoro app server-a si :))))


XM TurboCT .. where comfort meets power

Тема Re: Remoting vyprosche?нови [re: БOИЛ]  
Авторrosen (Нерегистриран)
Публикувано28.06.03 17:18



Пиши на кирилица бе, кютук



Тема Re: Remoting vyprosche?нови [re: шeф нa Coди Дeвня]  
Автор БOИЛ ()
Публикувано30.06.03 08:48



Blagodaria ti za otgovora ....
Za Web Services chestno kazano ne se biah zamislial ...No vse pak Remoting uj e naslednik na DCOM /pone taka go obiaviavat/ ...A za Web Services - te ne sa li za Web Aplications ? Ako sa -> niama da mi svyrshat rabota ....



Тема Re: Remoting vyprosche?нови [re: rosen]  
Автор БOИЛ ()
Публикувано30.06.03 08:49



Ti mai ne si malko ГЛУПАВ .....Nai - veroiatno si obyrkal cluba ...."Cigani i Romi" se namira malko po-gore...



Тема Re: Remoting vyprosche?нови [re: БOИЛ]  
Автор Fahrenheit (ASNative)
Публикувано30.06.03 11:18



Мне, и за други работи ще станат. Какво ще ползва методите на сървъра няма голямо значение... дали друг сървър (web) или клиентско приложение... Генерираш си проксито и си пушка :)

ASNatives can usually be found in dark rooms where the only light is the glow of a CRT …


Тема Re: Remoting vyprosche?нови [re: БOИЛ]  
Автор шeф нa Coди Дeвня (full optional)
Публикувано30.06.03 11:23



по принцип да ... web services се появиха когато DCOM срещна the internet ... и тъй като DCOM има нужда от paired connection, а това през http не става ... и се появиха web services ... които според мене са гениални ... web services са subdomain на .net remoting infrastructure ... като всяка технология е направена да решава определен домейн от проблеми ...

ако мислиш че имаш нужда точно от remoting има една книга "Advanced .NET Remoting" ... не съм я чел ама мисля че ще ти свърши работа ако можеш да си я поръчаш ...

освен това решението което аз ти предложих прилича на това което всъщност става при remoting: значи, за да може един обект от един application domain да се подаде като параметър на метод на обект от друг application domain "нашия" обект трябва да се сериализира и прати на другия application и там да се реконструира. За да стане това обекта трябва да бъде маркиран с [serializable] custom attribute или да имплементира ISerializable интерфейс. Локални обекти които не могат да бъдат сериализирани не могат да бъдат предавани като параметри на друга апликация .. тоест те не са remotable ...

имаш 2 начина да предадеш един обект на remote application:
1. by value: тоест копие на обекта се сериализира се праща на remote application като binary stream където се реконструира отново
2. by ref: тоест праща се reference към обекта на remote application-а, където от този ref се конструира proxy към нашия обект ... и channal-a по който текат messages остава отворен ... всяко извикване на метод на този обект генерира roundtrip между proxy/stub двойката ... така че с DataTable ... просто performance-a ще си разкаже играта ...

доколкото разбрах тебе те интересува втория начин ...

тука има едно обаче ...

начи DataTable наследява MarshalByValueObject който както става ясно от заглавието му не може да се предава by ref при remoting ... обаче това е направено с цел ... по принцип е лоша идея да се предават by ref големи обекти при remoting, защото по channel-a между proxy/stub двойката става прекалено голям трафик и следователно performance-a пада значително ...

по-принцип DataSet и DataTable са единствените обекти който наследяват ISerializable и могат да се ползват при remoting ама by value :(

такааа ... начи аз лично виждам два начина за процедиране от тук нататък -- my way or the hard way :)))))

1. the hard way: правиш си свой клас който наследява MarshalByRefObject и правиш copy/paste от сорсовете на DataTable там ... което лично на мене ми звучи като да те пуснат в ада и ти да си избереш най-големия огън и да се цопнеш в него :)))

2. my way: пращаш си DataTable by value, променяш си го и го връщаш на клиента като return value, при което той си сменя reference-a към него и готово ... ако не можеш да върнеш DataTable като return value, тогава го сериализираш в XML или в квото си решиш пращаш го като string на клиента, на сървъра го реконструираш в DataTable, работиш си върху него, пак го сериализираш на string, връщаш го на клиента като return value, клиента си го рекунструира на DataTable и всички са щастливи ... и не губиш performance :))))

нещо то сорта :

DataTable myMethod(DataTable dt);





XM TurboCT .. where comfort meets power

Тема Re: Remoting vyprosche?нови [re: шeф нa Coди Дeвня]  
Автор БOИЛ ()
Публикувано30.06.03 14:10



Отново ти благодаря за обстойния отговор...
Тук също го пробвахме този вариант /DataTable-a да се връща като Rетурн Валуе / и се получи/и то без да сериализра / ... Най-вероятно ще се спрем на този вариант ...
А между впрочем четох няколко глави от книгата на Инго Раммер - Advenced .Net Remoting, където в прав текст си пишеше ,че когато се изпозва MarshalByValue , тогава изпълнението въобще не е "Remoting" а си се изпълнява на клиента ....По този начин според мен си губи смисъла ...



Тема Re: Remoting vyprosche?нови [re: БOИЛ]  
Автор шeф нa Coди Дeвня (full optional)
Публикувано30.06.03 22:07



начи сериализация винаги има ... дали ще я направиш ти или .нет е въпрос на ентусиазъм :)))

а за MarshalByValue и MarshalByRef се бъркаш нещо ... значи това се отнася за параметрите на метода на обекта, а не за самия обект ... обекта ти е винаги remote ... щото ако можеше ти да отидеш при него или той да дойде при тебе нямаше да има нужда от remoting въобще ... :))

това което са искали да кажат в книгата е че методи на обекта-параметър който маршал по референсе към сървъра се изпълняват на клиента ... скив по-долу примера ... начи при маршал бай реф: Execute ще се изпълни на клиента обаче тебе не те интересува това толкова колкото те интересува MyRemoteMethod, а той винаги се изпълнява на сървъра ....

примерно:

class CMyLocalObject
{
void Execute()
{
doSomeThingHere();
}
};

class CMyRemoteObject
{
void MyRemoteMethod(CMyLocalObject o)
{
for ( int i = 0 ; i < 1000 ; i++ )
o.Execute();
}

};

void main()
{
CMyLocalObject o;

CMyRemoteObject r = CreateObject(...);

r.MyRemoteMethod(o);
}

начи представи си какво става при подаване на параметъра с референсе и като валуе :)))

начи при валуе се праща копие на CMyLocalObject при което MyRemoteMethod завърта един бърз цикъл до 1000 и излиза ... всичко става на сървъра щото той си има копие на CMyLocalObject и не трябва за нищо да се обръща към клиента ...

а при референсе се праща референсе от тип CMyLocalObject на MyRemoteMethod при което той конструира прокси код който реферира към CMyLocalObject и при всяко едно извикване на CMyLocalObject::Execute() се прави извикване по проксито на CMyLocalObject::Execute() ... тоест имаш 1000 отивания и връщания между клиента и сървъра .... което хич не е гот :(


XM TurboCT .. where comfort meets power

Тема Re: Remoting vyprosche?нови [re: шeф нa Coди Дeвня]  
Автор Vroomfundel (непознат )
Публикувано02.07.03 17:14



Добър отговор и добър пример. И все пак идеята за ползване на WebService си е по-добро решение. Само да не тръгнеш да предаваш самия DataTable през уеб метода, напъхай си го в DataSet.





Тема Re: kym shef na sodi devniaнови [re: шeф нa Coди Дeвня]  
Авторnovak (Нерегистриран)
Публикувано03.07.03 09:26



dai poveche info za tova serializirane s xml
kakva e ideiata pri nego
niakakva knijka ili ...



Тема Re: kym shef na sodi devniaнови [re: novak]  
Автор Vroomfundel (непознат )
Публикувано03.07.03 19:59



Дръж една прилична лекция за сериализация, че даже и на български:



Ето и нещо за remoting, ама е малко basic де:







Тема Web Services vs. Remotingнови [re: шeф нa Coди Дeвня]  
Автор TPECKATA (разболяващ)
Публикувано14.07.03 11:15



Да ама не е баш така както го обясняваш.
Web Service-те са полезни и приложими когато имаш client-pull сценарии (на по-прост език когато клиента прави заявки към сървъра и не е необходимо сървъра да генерира събития при клиента)
Remoting-ът е предназначен точно за тези случаи (client-push сценарии) в които е необходимо сървъра да предизвика събитие в клиента.
Дали ще се използва Web Service или Remoting зависи основно от това дали е необходимо (или дали се планира) сървъра да генерира събития в клиента.

"— Треска те хваща, а? — шепнеше тихо, с подмигване бай Ганьо"
БАЙ ГАНЬО СЕ ВЪРНА ОТ ЕВРОПА


Тема Re: Remoting vyprosche?нови [re: шeф нa Coди Дeвня]  
Авторdidi (Нерегистриран)
Публикувано14.07.03 17:37



ne znam



Тема Re: Remoting vyprosche?нови [re: didi]  
Автор Vroomfundel (луд за вързване)
Публикувано15.07.03 16:00



И аз доста работи не знам, но не ми беше идвало на ума за всичките да си призная в съответния форум

peace, love, unity


Тема Re: Remoting vyprosche?нови [re: Vroomfundel]  
Автор TPECKATA (разболяващ)
Публикувано23.07.03 00:21



Е то за целта трябва или много въображение или глупост в излишък

"— Треска те хваща, а? — шепнеше тихо, с подмигване бай Ганьо"
БАЙ ГАНЬО СЕ ВЪРНА ОТ ЕВРОПА


Тема Re: kym shef na sodi devniaнови [re: шeф нa Coди Дeвня]  
АвторEbektor (Нерегистриран)
Публикувано30.07.03 17:14



TAPACI!!!!

Ebah mu mamata!!! Are Remoting-a ne go chuvate, shte go prejiveia, ama da mi serializirate dataset s XmlWriter, ebi mu maikata!!! ds.GetXml() nai-malkoto be! da go eba!!!



Тема Re: kym shef na sodi devniaнови [re: Ebektor]  
Автор шeф нa Coди Дeвня (full optional)
Публикувано30.07.03 23:49



1. никъде не става въпрос за DataSet, а за DataTable, който няма такъв метод
2. с GetXml нямаш flexibility, тоест как ще земеш първия фийлд, но без втория, но с третия, без ред 3, и т.н. ...
3. освен това GetXml си го форматира както на него му е кеф, а не както на тебе ... затова аз лично предпочитам да си го напиша сам ...
4. ако в тоя DataSet имам 10 DataTables, а на човека му трябва само една ...
5. с GetXml имаш доста по-голям overhead отколкото с WriteXml защото се връща като стринг ...
и мисля да спра до тук ... УМНИКО ...


XM TurboCT .. where comfort meets power

Тема Re: kym shef na sodi devniaнови [re: шeф нa Coди Дeвня]  
Автор gruhal ((l)user)
Публикувано31.07.03 00:00



be hubavo ti e kazal Ebektora ama...

1, 2, 3, 4, 5 - XSLT da si chuwal da se spomenawa? Ili si nad tia neshta?
5. Aha, shto ne si poglednesh poslednia red...sb.ToString(), twa na kwo go obryshta na unsigned int li?!

Izobshto pyk niama da obsyjdam 'genialnata' idea sys sobstwenoto serializirane i premiatane kym servera i prochie....te MS remotinga sa go izmislili ei taka shtoto imalo mnogo prazno miasto w help file-a.



Тема Re: kym shef na sodi devniaнови [re: gruhal]  
Автор шeф нa Coди Дeвня (full optional)
Публикувано31.07.03 00:20



я, още един гений ... абе тука било бъкано бе ... начи първо ще форматираш XML-a и после ще го трансформираш в друг XML ... типично за VB програмист, който пише с голямата лопата ... и през това време юзера ще иде за кафенце докато си чака резултата ...

и къв ToString() те гони та не може да спиш ... имах предвид това:
Note GetXml returns XML as a string, and therefore, requires more overhead than using WriteXml to write XML to a file.


XM TurboCT .. where comfort meets power

Тема Re: Remoting vyprosche?нови [re: БOИЛ]  
АвторПporpaмиcт (Нерегистриран)
Публикувано01.08.03 14:58



po-leko be Bodil!



Тема Re: kym shef na sodi devniaнови [re: шeф нa Coди Дeвня]  
Автор gruhal ((l)user)
Публикувано02.08.03 20:59



Абе бастун, нещо много си отворен ми се струваш. За твое сведение VB не съм ползвал през 15-те си години професионална работа с компютър, но за разлика от теб спокойно пиша на asm за 4 различни архитектури (x86, 68xxx, PPC i MIPS).

Няма какво да ти обяснявам, колко е бърз .NET XSLT-a, то явно при теб е "Пей си Пенке ле, ама кой ли те слуша". За .ToString()-a....ти май си позабравил какво си писал няколко поста по-нагоре, а? Ми дай тогава да ти опресня малко паметта, щото MSDN можеш да ми цитираш, ама собствените си глупости не помниш:

result = Encoding.UTF8.GetBytes(sb.ToString());

Това познато ли ти изглежда, или сега ще кажеш че ти всъщност си искал да си предадеш XML-a като файл, а тоя ред някак си случайно си го написал?!

Айде ,със здраве, не смятам повече да се занимавам с теб.



Тема Re: kym shef na sodi devniaнови [re: gruhal]  
Автор шeф нa Coди Дeвня (full optional)
Публикувано04.08.03 10:28



да бе всичко е супер бързо ... дай по този случай да ползваме всички възможни технологии дето им знаем абривиатурите ... въпроса е принципен тука ...

хубу с мен не се занимавай ... и аз лично не мисля да се занимавам с който и да е било ... ама вие всички тука сте "български критици": не знам как е ама и така не е ... аз съм предложил на човека с проблем различни варианти да си го реши и той да си избере щото аз не знам точно той какво прави и от какво има нужда ...

чуй само твоето предложение как звучи и после говори за мойте глупости ... начи човека иска да marshall-не един DataTable между клиент и сървър ... ето и предложението с GetXml():

1. правиш празен DataSet
2. бочиш вътре DataTable-a
3. Генерираш XML-а с GetXml()
4. Трансформираш чрез XSLT
5. ToString()

еми просто no comments ...


XM TurboCT .. where comfort meets power

Тема Re: kym shef na sodi devniaнови [re: шeф нa Coди Дeвня]  
Автор gruhal ((l)user)
Публикувано04.08.03 12:23



МОЕТО предложение?! Това което казах е, че е безмислено да се сериализира на ръка DateTable-a (да не говорим, че е error prone).

Ето ти моето предложение:

1. Взимаш си DataSet-а и го marshall-ваш by val на сервера.
2. Сервера пак by val ти връща резултата (без да ти модифицира твоя DS)
3. Гледаш call-овете да са "chunky" - тъкмо си имаш DataSet - използвай му многото таблици *shrug*



Тема Re: kym shef na sodi devniaнови [re: gruhal]  
Автор Vroomfundel (луд за вързване)
Публикувано04.08.03 12:29



Ама може и да се наложи да сериазлизираш DataTable ръчно. Примерно ако имаш DataSet с 10 DataTable-а пълни с разни данни, а ти трябва само едната таблица. Файда няма да го предаваш целия DS by val.

peace, love, unity


Тема Re: kym shef na sodi devniaнови [re: Vroomfundel]  
Автор gruhal ((l)user)
Публикувано04.08.03 12:36



Ми метни си ги в друг таблиците, предай си само таблица ако искаш (DT също е ISerializable и marshal-by-val). Ако си напишеш собствен сериализатор, всеки път като някой смени нещо по таблиците ти ще трябва да си го оправяш!

А и затова казах chunky calls - за предпочитане е да викаш като имаш много таблици за обновяване.



Тема Re: kym shef na sodi devniaнови [re: gruhal]  
Автор Vroomfundel (луд за вързване)
Публикувано04.08.03 13:19



Даде, вярно, нищо по-лесно от това да създадеш нов DS със желаната таблица.
И все пак (както май беше казано някъде по-горе) живота ще ти е по-лесен ако свикнеш да работиш с DataSet, а не DataTable.

peace, love, unity


Тема Re: kym shef na sodi devniaнови [re: Vroomfundel]  
Автор gruhal ((l)user)
Публикувано04.08.03 14:22



Не виждам нищо по-лесно в това да се ползва DS а не DT, т.е. и двете са еднакво лесни. Освен ако не се ползват typed DS де.



Тема Re: Remoting vyprosche?нови [re: БOИЛ]  
Автор БOИЛ ()
Публикувано03.09.03 20:38



баси дискусията стана ...
Все пак аз си го изпращях Ремоутинг-а по следния начин :
-> Маршал - бай - реф
-> Сървър - активейтед
-> Сингъл кол
Всичко което ми връща , ми го връща като ретърн велю на функцията ...
И сега върви като по-вода ...Въпреки ,че на Апп. Сървър-а в някои моменти ЦПУ-то скача на 99% а РАМ-а на над 500 МБ , на клиента се връща само една стойност....
Благодаря още веднъж на всички участници в лафнята !
>:О)))



Тема Re: Remoting vyprosche?нови [re: Пporpaмиcт]  
Автор БOИЛ ()
Публикувано03.09.03 20:47



Dobre be, (G)rosen....



Тема Re: Remoting vyprosche?нови [re: БOИЛ]  
Авторval (Нерегистриран)
Публикувано11.10.06 13:50



добре, начи можем да си използваме публични методи на сървъра от сорта на
MyClass remotingMethod(SomeClass param). И клиентът ще прати SomeClass обект и ще получи MyClass обект, нали така.

Моят взпрос е какви точно трябва да са SomeClass и MyClass?

Да наследяват от MarshalByRefObject? Да са Serializable?



Тема Re: Remoting vyprosche?нови [re: val]  
Авторval (Нерегистриран)
Публикувано11.10.06 16:25



намерих едно място, където пише, че тряа да са [Serializable]:






Страници по тази тема: 1 | 2 | 3 | 4 | >> (покажи всички)
Всички темиСледваща тема*Кратък преглед
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.