# برنامه نویسی با محصولات مایکروسافت > برنامه نویسی مبتنی بر Microsoft .Net Framework > WCF , Web Services , .Net Remoting >  Remoting

## mhd78

با توجه به اینکه در Remoting باید Metadata را مشخص کرد (نوع داده ای که بین Client ,Server رد و بدل می شود)  مثلا کلاس Person .
  RemotingConfiguration.RegisterWellKnownServiceType  (GetType(Person), "Person .soap", WellKnownObjectMode.SingleCall)


حال اگر بخواهیم با دو یا چند کلاس کار کنیم چه باید بکنیم

----------


## manager

هر Type ای رو که خواستی، به عنوان Well Known Service ثبت کن.

----------


## mhd78

اینکه مشخصه ولی من میخوام با چند Type کار کنم مثلا کلاس person,Office
و از آنجا که در سمت Server,Client نوع metadata مشخص است و در واقع ثابت ایست مثلا در هر دو طرف Person یا Office است
 چه باید بکنم؟

----------


## manager

> اینکه مشخصه ولی من میخوام با چند Type کار کنم مثلا کلاس person,Office
> و از آنجا که در سمت Server,Client نوع metadata مشخص است و در واقع ثابت ایست مثلا در هر دو طرف Person یا Office است
>  چه باید بکنم؟


متاسفم، من هر چی این سوالتون رو خوندم، متوجه نشدم دقیقا مشکلتون چیه !!!!!!!!! :متفکر:

----------


## yavari

سلام

وای چقدر خوشحالم که یکی مثل من درگیر ریموتینگه !!!  :لبخند:   :تشویق:  

شما میتونی داخل Share Class  مد نظرت یه فضا نام ایجاد کنی و کلاساتو داخل اون داشته باشی ! حالا هر چند تا کلاس !!! و از آبجکتا و ایونتای کلاسای مربوطه استفاده کنی !
بعدم کانفیگت اینجوری باشه
<Configura...
...
type="InBetween.RemoteClass,RemoteClass"
...

امیدوارم منظورتونو درست فهمیده باشم !  :خجالت:  

موفق باشید و پرتوان در این راه !  :تشویق:

----------


## mhd78

من دو فرم به نامهای Personel,Office دارم می خواهم از روش MultiTier  و Remoting استفاده کنم 
با توجه به اینکه در Remoting باید Metadata را مشخص کرد (نوع داده ای که بین Client ,Server رد و بدل می شود) مثلا کلاس Person .
RemotingConfiguration.RegisterWellKnownServiceType (GetType(Person), "Person .soap", WellKnownObjectMode.SingleCall

حال چگونه می توانم Typeیی که بین Client,Server جابجا می شودرا بصورت دینامیک تعریف کنم یعنی یکبار ابجکت Person و یکبار دیگر ابجکت office و ...
لطفا با یک مثال توضیح دهید
با تشکر

----------


## manager

> من دو فرم به نامهای Personel,Office دارم می خواهم از روش MultiTier  و Remoting استفاده کنم 
> با توجه به اینکه در Remoting باید Metadata را مشخص کرد (نوع داده ای که بین Client ,Server رد و بدل می شود) مثلا کلاس Person .
> RemotingConfiguration.RegisterWellKnownServiceType (GetType(Person), "Person .soap", WellKnownObjectMode.SingleCall
> 
> حال چگونه می توانم Typeیی که بین Client,Server جابجا می شودرا بصورت دینامیک تعریف کنم یعنی یکبار ابجکت Person و یکبار دیگر ابجکت office و ...
> لطفا با یک مثال توضیح دهید
> با تشکر


خوب شما باید از یک Interface میان این Typeها استفاده کنی. در سمت سرور هر شیئ خاصی از این Typeها ایجاد کنی و به سمت کلاینت بفرستی. دقت داشته باش که در سمت Client نمی تونی و نباید به Propertyهایی غیر از Propertyهای مشخص شده در Interface دسترسی پیدا کنی، در عیر این صورت از Soapsode.exe استفاده کن(که اصلا پیشنهاد نمی شه و تو Maintenance سیستم دچار مشکل های عدیده ای می شی)
کلا کاری که می خوی بکنی یکمی غیر منطقی ! و باید تمام Typeهایی رو که تو Client باهاشون کار می کنی رو صراحتا معلوم کنی.

----------


## yavari

سلام
متاسفانه منظورتونو درست متوجه نشدم  !
چیزی که از پست شما برداشت میشه اینه که شاید نیاز داشته باشید 2 تا کانال برا اینکار رجیستر کنین اما اگه بتونین Share Class تون رو بذارید شاید بهتر بشه فهمید منظورتونو !

موفق باشید

----------


## mhd78

اینکه باید از Interface  استفاده کرد بدیهی است و لی همانطور که می دانید در سمت Server , در ActiveServer باید مشخص کرد که این interface بوسیله جه کلاسی پیاده سازی می شه و این یعنی اینکه static کار کردن چون ما یک کلاس و یک Object خاص را مشخص کردیم هدف من این است که بتوانم Object سمت server را Dynamic بگیرم
در مورد ShareClass مورد اشاره شما باید بگویم که اگر من 30 کلاس در Bussiness Layer داشته باشم زیاد جالب نحواهد بود
لطفا یک مثال واقعی در مورد ShareClass بزنید(Code)

----------


## manager

> اینکه باید از Interface استفاده کرد بدیهی است و لی همانطور که می دانید در سمت Server , در ActiveServer باید مشخص کرد که این interface بوسیله جه کلاسی پیاده سازی می شه و این یعنی اینکه static کار کردن چون ما یک کلاس و یک Object خاص را مشخص کردیم هدف من این است که بتوانم Object سمت server را Dynamic بگیرم
> در مورد ShareClass مورد اشاره شما باید بگویم که اگر من 30 کلاس در Bussiness Layer داشته باشم زیاد جالب نحواهد بود
> لطفا یک مثال واقعی در مورد ShareClass بزنید(Code)


دقیقا این از اصول Remoting هست، شما نمی تونید یک کلاس رو به صورت Dynamic بین Client/Server به اشتراک بذارید ! تقاضای شما مثل این می مونه که بخواین یک برنامه ای بنویسید که با مجموعه از کلاس ها کار کنه که Type این کلاس ها به صورت پویا باشه ؟!! شما می تونید با اشیاء پویا کار کنید که از یک Interface مشترک به ارث می برند.
در مورد Share Classها هم باید بگم شما باید با Interfaceها کار کنید و اگر به مطلبی که نوشتم دقت کنید می ببیند که من Share کردن Class Metadata و نیز خود کلاس ها را پیشنهاد نکردم.
در ادامه توجه شما رو به مبانی شیئ گرائی جلب می کنم، که تاکید بیشتری باشه که این کار شما با اصل شیئ گرائی مشکل دارد.

----------


## mhd78

ببینید من در سمت Server سه کلاس Personel,Office,Rules دارم که این سه کلاس یک Interface را پیاده سازی می کنند من در Server , در ActiveServer چه باید بنویسم که با هر سه Object در سمت Client (WinApp) بتوانم کار کنم 
لطفا با کد توضیح دهید

----------


## yavari

> ببینید من در سمت Server سه کلاس Personel,Office,Rules دارم که این سه کلاس یک Interface را پیاده سازی می کنند من در Server , در ActiveServer چه باید بنویسم که با هر سه Object در سمت Client (WinApp) بتوانم کار کنم 
> لطفا با کد توضیح دهید


سلام
دوست من ، کافیه اون کلاسی که اینترفیستون عنصری از اونه رو صدا کنین !

            RemotingConfiguration.RegisterWellKnownServiceType  ( _
                  GetType(RemoteLib), _
                  "ClientApplication", WellKnownObjectMode.Singleton)

امیدوارم این سمپل مفید باشه براتون !

موفق باشید .

----------


## mhd78

> دقیقا این از اصول Remoting هست، شما نمی تونید یک کلاس رو به صورت Dynamic بین Client/Server به اشتراک بذارید ! تقاضای شما مثل این می مونه که بخواین یک برنامه ای بنویسید که با مجموعه از کلاس ها کار کنه که Type این کلاس ها به صورت پویا باشه ؟!! شما می تونید با اشیاء پویا کار کنید که از یک Interface مشترک به ارث می برند.


با تشکر 
من هم دقیقا همین را می خواهم من می خواهم با اشیاء پویا کارکنم که  یک Interface را پیاده سازی کرده باشند
لطفا با کد مثال بزنید




> دوست من ، کافیه اون کلاسی که اینترفیستون عنصری از اونه رو صدا کنین !
> 
> 
> کد:
>             RemotingConfiguration.RegisterWellKnownServiceType  ( _
>                   GetType(RemoteLib), _
>                   "ClientApplication", WellKnownObjectMode.Singleton)امیدوارم این سمپل مفید باشه براتون !


جناب آقای یاوری  با تشکر 
سمپلی که شما فرستادید در سمت Server دارای یک کلاس است و این بسیار ساده است اما هدف من این است که کلاسهای سمت Server که Inerface را پیاده سازی می کنند چند تا باشند و در سمت Client (WinApp) با همه آن Object ها بتوان کار کرد

لطفا با کد مثال بزنید

----------


## mhd78

Please Help me

----------


## yavari

سلام

من هنوز به خیلی مونده تا به این گیرا برسم !  :خجالت:  
http://msdn2.microsoft.com/en-us/library/y0h540a7.aspx
http://msdn2.microsoft.com/en-us/library/cbzcxy2s.aspx
ببینید اینا کمکتون میکنه !

موفق باشید

----------


## mhd78

جناب آقای یاوری با تشکر
بنده در مورد Remoting و چگونه عمل کردن آن مشکل ندارم از نظر من Remoting زمانی در MultiTier مفید خواهد بود که بتوان با استفاده از یک Activer Server که  دینامیک است و بتواند کلاسهای مختلف مربوط به BL,DL را پشتیبانی کند پیاده سازی کرد یعنی برای هر کلاس مربوط به BL نیاز نباشد یک ActiveServer نوشت

----------

