PDA

View Full Version : ارتباط برنامه از طریق اینترنت



bastakboys
یک شنبه 27 آذر 1390, 00:52 صبح
دوستان به همفکریتون نیازمندم

یه پروژه دارم که می خواهم شما پیشنهادتان را درباره نحوه پیاده سازی این پروژه بدان

ببینید ما یک دفتر مرکزی داریم و یک دفتر دیگه و میخاهیم برنامه ها از طریق اینترنت با هم در ارتباط باشند

به نظر شما من از کجا شروع کنم

از چه نوع ارتباطی استفاده کنم؟

mo.esmp
یک شنبه 27 آذر 1390, 05:10 صبح
وب سرویس يک ارتباط از طريق HTTP يا HTTP هست که Request/Respond Oriented هست. شما يه server دارين و client ها ارتباطشون با server هست.از مزيت های وب سرویس اينکه ميتونيد تحت وب هم ازش استفاده کنيد و وابستگی به O/S يا پلتفرمی نداره. خوبه اگه درست فکر کنم راه اندازی یک سرور برای وب سرویس پر هزينه تر باشه. ولی خوب اگه ميخواين يه ارتباطه چند طرفه و سريع مثل چت داشته باشین در اينجا سوکت ها کارای بيشتری دارن. ولی خوب سوکت هم مشکلات مربوط به خودش رو داره، وابستگی به O\S، مشکلات ّFirewall ،اندازه پيامها، proxy ...

meisam3322
یک شنبه 27 آذر 1390, 11:17 صبح
وب سرویس يک ارتباط از طريق HTTP يا HTTP هست که Request/Respond Oriented هست. شما يه server دارين و client ها ارتباطشون با server هست.از مزيت های وب سرویس اينکه ميتونيد تحت وب هم ازش استفاده کنيد و وابستگی به O/S يا پلتفرمی نداره. خوبه اگه درست فکر کنم راه اندازی یک سرور برای وب سرویس پر هزينه تر باشه. ولی خوب اگه ميخواين يه ارتباطه چند طرفه و سريع مثل چت داشته باشین در اينجا سوکت ها کارای بيشتری دارن. ولی خوب سوکت هم مشکلات مربوط به خودش رو داره، وابستگی به O\S، مشکلات ّFirewall ،اندازه پيامها، proxy ...

داداش تو که همش راه حل پیشنهاد دادی و گفتی نه نمیشه .... بنده خدا رو که گیج کردی ...

عزیز دل، بهترین راه برنامه نویسی ASP.NET هست....

mo.esmp
یک شنبه 27 آذر 1390, 17:04 عصر
داداش تو که همش راه حل پیشنهاد دادی و گفتی نه نمیشه .... بنده خدا رو که گیج کردی ...

عزیز دل، بهترین راه برنامه نویسی ASP.NET هست....

میشه بگید بهترين راه برنامه نويسی asp.net يعنی چی ؟ حالا چرا php نباشه ؟ حالا اگه اينطور باشه بايد همه Applicationهايی که بايد تحت اينترنت کار کنن بايد درشو تخته کنن و نسخه تحت وبشو راه بندازن. چيز های که در رابطه با سوکت و وب سرویس نوشتم چيزی نبوده که از خودم دربيارم.

برای انجام بعضی کارا هميشه چند راه حل داره وجود داره که هر کدوم ويژگی و مشکلات مربوط به خودشون رو دارن.

bastakboys
یک شنبه 27 آذر 1390, 23:21 عصر
ممنونم دوستان
ولی من بدنبال تحلیل درست این کار هستم نه روش کار
من می خواهم بدانم تحلیل شما برای این کار چیه

من می خواهم بدانم که چطوری این رابطه بین برنامه دفتر مرکزی با دفتر یا دفترهای کوچکتر را برقرار کنم بطوری که هر عملی که در دفتر های تابع در برنامه صورت می گیرد دفتر مرکزی متوجه آن عمل شود(یعنی دفتر مرکزی روی دفتر های تابعه دید کامل داشته باشه)

حالا اول تحلیل این کار رو به من بگید و بعد روش استفاده از این تحلیلتون و مشکلات این روش
در ضمن من مشکلی با گرفتن سرور و آی پی ولید هم ندارم
و پیشاپیش از دوستان ممنونم :خجالت:

bastakboys
دوشنبه 28 آذر 1390, 15:22 عصر
ببینید اینکار را بکنم چهطوریه
1. یک vps بگیرم و sqlserver را در آن نصب کنم و بانکم رو در اونجا اتچ کنم
2.در برنامه اصلی و برنامه کلاینتها از دیتابیس سرور استفاده کنم

اما اینجا چند تا مشکل داریم
اگر به هر دلیلی یکی از برنامه های اصلی یا کلاینت ها به سرور دسترسی نداشته باشند با مشکل مواجه می شیم

mo.esmp
سه شنبه 29 آذر 1390, 03:47 صبح
میتو نی از 2تا دیتابیس استفاده کنی یکی برای آنلاین و یکی برای آفلاین هنگامی که اینترنت نیست. بعد میتونی از بهنگام سازی دیتابیسها استفاده کنی.
SQL Replication (http://technet.microsoft.com/en-us/library/ms151198.aspx)
Sync Framework (http://msdn.microsoft.com/en-us/sync/default)

bastakboys
سه شنبه 29 آذر 1390, 21:20 عصر
ممنون دوست عزیز
آموزش فارسی ندارید یا نمونه سورس

Hybrid
سه شنبه 29 آذر 1390, 21:36 عصر
سلام دوستان ....

کسی نمیتونه آموزش اینو(استفاده از اینترنت در برنامه) برامون بزاره ...آموزش فارسی باشه بهتره ...یا حداقل تو این تاپیک آموزش بده ..

ممنون

bastakboys
چهارشنبه 30 آذر 1390, 12:55 عصر
دوستان کسی نبود

alimanam
چهارشنبه 30 آذر 1390, 13:24 عصر
با سلام


کسی نمیتونه آموزش اینو(استفاده از اینترنت در برنامه) برامون بزار

سوال کمی مبهمه یعنی چی استفاده از اینترنت در برنامه ! شما اگه یک کنترل WebBrowser رو روی یک فرم بزاری و بهش یگی برو تو فلان لینک میشه استفاده کردن برنامه از اینترنت ( اطلاعات سایتی که لود میشه رو استفاده کنی مثل استفاده کردن از امکاناتی که خود سوریس دهنده اون وب اپلیکشن بهت اجازه میده که استفاده کنی ) میتونی یک فایل از اینترنت دانلود کنی این هم یه جور استفاده است ! میتونی یک فایل رو آپلود کنی اینم باز یه جور استفاده است میتونی مثل این دوستمون که میخواد db برنامه اش رو در هاستی آپلود کنه و ازش تحت شبکه استفاده کنه هم یه جور استفاده دیگه از اینترنت هستش و علی آخر الاماشاا.. متد داریم هر کدوم به یه روشی از اینترنت دارن استفاده میکنن حتی ارسال یک ایمیل هم خودش یه جور استفاده است دیگه پس سوال شما کلی جواب میتونه داشته باشه .

موفق باشید ./

Hybrid
چهارشنبه 30 آذر 1390, 13:39 عصر
دوست عزیز علی جان ممنون که چواب دادی آره قبول دارم یه کم سوالمو کلی مطرح کردم به خاطر این جواب های زیادی داشت...ولی بیشتر منظورم این بود که بشه از طریق اینترنت برناممونو آپلود کنیو و امکاناتی رو از طریق اینترنت بهش اضافه کنیم...

ممنون از جوابت ..دوستان اگه کسی میتونه کمک کنه..

alimanam
چهارشنبه 30 آذر 1390, 14:08 عصر
ولی بیشتر منظورم این بود که بشه از طریق اینترنت برناممونو آپلود کنیو و امکاناتی رو از طریق اینترنت بهش اضافه کنیم...به نظر من بهترین روشی که دقیقا چیزی که شما مدنظرتونه اینه که بیای برنامه ات رو جوری برنامه نویسی کنی که Plugin داشته باشه یعنی هربار که امکانات جدیدی بهش اضافه کردی در ابتدا چک کنی که آیا پلاگین جدیدی اضافه شده و اگه شده دانلود و در مسیر پلاگین ها دانلود بشه و هنگامی که برنامه میخواد لود بشه مسیر پلاگین ها ( مثلا درون یک پوشه بزار پلاگین ها رو ) رو چک کنه و تک تک اون ها رو در برنامه لود کنه . البته این روش روش کلی نیست یعنی به درد همه نوع برنامه ها نمیخوره چه بسا خیلی از برنامه ها هستن که کاربریشون این اجازه رو به برنامه نویس نمیده که این کار رو طراحی کنه چون ماهیت برنامه نیازی به پلاگین نداره . روش دیگه هم اینه که بیای هروقت تغییراتی رو در برنامه دادی ( نسخه جدیدتر رو نوشتی یا چندتا باگ رو رفع کردی یا امکانات بهتری براش نوشتی ) اون رو از اینترنت دانلود کنی ( بوسیله یک برنامه واسطه ) و هنگام اتمام دانلود برنامه اصلی رو از حافظه خارج و حذف ( Delete ) کنی و فایل دانلود شده رو به جای برنامه اصلی جا ( Copy ) بدی .البته بدی این روش هم اینه که ممکنه حجم برنامه زیاد باشه و با این اینترنت .... واقعاً منطقی نباشه که از این روش استفاده کنی .

موفق باشید ./

Hybrid
چهارشنبه 30 آذر 1390, 14:38 عصر
سلام دوست عزیز ممنون از اینکه جواب دادی ...

روشهاتو گرفتم روش اول به نظر من معقولانه تر بود چون دیگه نیازی به خود برنامه نبود فقط کافیه برناممون چک کنه و خودش رو آپدیت کنه مثل همین آنتی ویروس ها...
ولی نمیدونم این روش رو چه طور پیاده سازی کنم مثلا یه برنامه بسازم که Plugin قبول کنه..آیا منبعی چیزی داری واسه یاد گیریش..؟؟ ممنون از جوابت./

alimanam
چهارشنبه 30 آذر 1390, 15:52 عصر
روشهاتو گرفتم روش اول به نظر من معقولانه تر بود چون دیگه نیازی به خود برنامه نبود فقط کافیه برناممون چک کنه و خودش رو آپدیت کنه مثل همین آنتی ویروس ها...
ولی نمیدونم این روش رو چه طور پیاده سازی کنم مثلا یه برنامه بسازم که Plugin قبول کنه..آیا منبعی چیزی داری واسه یاد گیریش..؟؟ ممنون از جوابت./ به لینک های زیر سری بزنین سورس رو نگاه کنین متوجه میشین چقدر آسونه !

http://www.developerfusion.com/article/4371/writing-pluginbased-applications (http://www.developerfusion.com/article/4371/writing-pluginbased-applications/)
http://geekswithblogs.net/WTFNext/archive/2009/05/06/how-to-create-a-plugin-architecture-in-vb.net.aspx
http://divil.co.uk/net/articles/plugins/plugins.asp

فایل ضمیمه حاوی سورس کد لینک اول هست .

موفق باشید ./

bastakboys
چهارشنبه 30 آذر 1390, 17:53 عصر
آقای alimanam (http://barnamenevis.org/member.php?43498-alimanam)
روی کار من نظری ندارین
یعنی من یه وی پی اس بگیرم و
دیتابیس اصلی رو تو این سرور مجازی بریزم
و برنامه دفتر اصلی و نمایندگی ها از این دیتا بیس استفاده کنن
و برنامه ها هر کدوم یه دیتا بیس مجزا داشته باشن(که اگه ارتباطشان به هر شکل با دیتا بیس اصلی قطع شد بتوانند از اون استفاده کنن)

bastakboys
شنبه 03 دی 1390, 17:32 عصر
نظر دیگه ای نبود
ایده خودم درسته
برم دنبالش؟

ali reza mansoori 2
شنبه 03 دی 1390, 21:35 عصر
VPS فکر کنم گزینه خوبی باشه البته از هاست هم میتونید استفاده کنید ولی امنیتش نصبت به VPS پایین تره
شما بانک اصلی تون رو روی فضایی مجازی که VPS در اختیارتون میزاره آپ کنید
بعد از برنامه ها به اون کانکت بشید البته میزان دسترسی به اطلاعات و مدیریت آن بستگی به برنامه نویسی شما داره
شما میتونید یک بانک کوچک برای حالت آفلاین طراحی کنید و بگید وقتی برنامه آفلاین بود یک سری از کارها رو مثل ثبت اطلاعات رو روی این بانک انجام بده و وقتی که برنامه آنلاین شد اطلاعات به بانک اصلی انتقال داده بشه
پیشنهاد میکنم قبل از انجام این کار ها حتما موارد امنیتی رو هم در نظر بگیرید

alimanam
دوشنبه 05 دی 1390, 23:36 عصر
با سلام


روی کار من نظری ندارین

نظر دیگه ای نبود

نظر من هم همینه که دوستمون راهنمایی کردن .


فکر کنم گزینه خوبی باشه البته از هاست هم میتونید استفاده کنید ولی امنیتش نصبت به VPS پایین تره
شما بانک اصلی تون رو روی فضایی مجازی که VPS در اختیارتون میزاره آپ کنید
بعد از برنامه ها به اون کانکت بشید البته میزان دسترسی به اطلاعات و مدیریت آن بستگی به برنامه نویسی شما داره
شما میتونید یک بانک کوچک برای حالت آفلاین طراحی کنید و بگید وقتی برنامه آفلاین بود یک سری از کارها رو مثل ثبت اطلاعات رو روی این بانک انجام بده و وقتی که برنامه آنلاین شد اطلاعات به بانک اصلی انتقال داده بشه
پیشنهاد میکنم قبل از انجام این کار ها حتما موارد امنیتی رو هم در نظر بگیرید

فقط یک نکته اگه خواستی با VPS این کار رو انجام بدی حتماً حتماً از وب سرویس ها استفاده کن تا امنیت برنامه به مراتب بالاتر بره .

موفق باشید ./

bastakboys
سه شنبه 06 دی 1390, 22:26 عصر
با سلام




نظر من هم همینه که دوستمون راهنمایی کردن .



فقط یک نکته اگه خواستی با VPS این کار رو انجام بدی حتماً حتماً از وب سرویس ها استفاده کن تا امنیت برنامه به مراتب بالاتر بره .

موفق باشید ./

دوستان از پاسخگوییتون ممنونم

فقط
آموزش یا سورسی از این گونه برنامه ها در اختیار ندارید؟

alimanam
سه شنبه 06 دی 1390, 22:29 عصر
آموزش یا سورسی از این گونه برنامه ها در اختیار ندارید؟

منظورتون وب سرویسه ؟

bastakboys
سه شنبه 06 دی 1390, 22:42 عصر
منظورتون وب سرویسه ؟

هم اون هم روسی که من میخوام استفاده کنم
بخصوص آپدیت بین دیتابیسها

alimanam
سه شنبه 06 دی 1390, 23:51 عصر
دوست عزیز نوشتن وب سرویس که کاری نداره شما کافیه نوع پروژه رو ASP .NET Web Service Application انتخاب کنی اونجا توابع خودت رو بنویسی و در نهایت بعد از Build کردن بیای اون رو Publish کنی در ادامه هم فایل های این وب سرویس رو در هاست مورد نظر آپلود کن بعدش به صورت Add New Web Service به پروژه خودت اضافه اش کن سخت که نبود درسته !:لبخندساده: اگه متوجه نشدی من سعی میکنم یک فایل فلش آماده کنم که همه این مراحل رو شامل بشه . در مورد دومی که فرمودین !!! خوب شما توابع مورد نیازت رو در همون وب سرویس بنویس (Insert,Delete,Update,Searching) و بعد ازشون در برنامه ات استفاده کن نوشتن این توابع هم ربطی به موضوع تاپیک شما نداره و کلی سورس در این مورد در این سایت موجوده میتونی استفاده کنی . در مورد اینکه سوال داشتی اگه ارتباط قطع بشه کارها به صورت آفلاین انجام بشه بعد از اینکه اتصال دوباره راه افتاد اطلاعات به دیتابیس اصلی منتقل بشه هم دقیقا برنامه نویسی ساده است با کمی دقت بیشتر و چندتا تابع به راحتی قابل پیاده سازی شدن است .

موفق باشید ./

bastakboys
چهارشنبه 07 دی 1390, 00:15 صبح
دوست عزیز نوشتن وب سرویس که کاری نداره شما کافیه نوع پروژه رو ASP .NET Web Service Application انتخاب کنی اونجا توابع خودت رو بنویسی و در نهایت بعد از Build کردن بیای اون رو Publish کنی در ادامه هم فایل های این وب سرویس رو در هاست مورد نظر آپلود کن بعدش به صورت Add New Web Service به پروژه خودت اضافه اش کن سخت که نبود درسته !:لبخندساده: اگه متوجه نشدی من سعی میکنم یک فایل فلش آماده کنم که همه این مراحل رو شامل بشه . در مورد دومی که فرمودین !!! خوب شما توابع مورد نیازت رو در همون وب سرویس بنویس (Insert,Delete,Update,Searching) و بعد ازشون در برنامه ات استفاده کن نوشتن این توابع هم ربطی به موضوع تاپیک شما نداره و کلی سورس در این مورد در این سایت موجوده میتونی استفاده کنی . در مورد اینکه سوال داشتی اگه ارتباط قطع بشه کارها به صورت آفلاین انجام بشه بعد از اینکه اتصال دوباره راه افتاد اطلاعات به دیتابیس اصلی منتقل بشه هم دقیقا برنامه نویسی ساده است با کمی دقت بیشتر و چندتا تابع به راحتی قابل پیاده سازی شدن است .

موفق باشید ./
ممنون از پاسخگوییتون

درباره وب سرویس من تا حالا این کار رو نکردم اما آموزش هاش رو دیدم
اما فکر کنم گفتید وب سرویس امنیتش پایینه

اما درباره آپدیت دیتابیسها
اگه تا حالا دیتابیس رو به صورت ویزاردی به برنامه اضافه کرده باشین و یک جدول رو کشیده باشین تو فرم میبینید که دیتا گرید و خیلی کنترل ها به فرم اضافه میشه
یکی از اونا نویگیتوره که یک دکمه سیو آل داره

Private Sub TblBankBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TblBankBindingNavigatorSaveItem.Click
Me.Validate()
Me.TblBankBindingSource.EndEdit()
Me.TableAdapterManager.UpdateAll(Me.EbookshopDataS et)

End Sub

و هر تغییری که ما در دیتا گرید بدیم یکجا در دیتا بیس ذخیره می کنه
من دنبال چنین قابلیتی می گردم تا تغیرات را از دیتاگرید آفلاین به دیتا گرید آصلی انتقال بدم

bastakboys
پنج شنبه 04 خرداد 1391, 19:08 عصر
کسی روشش رو بلد نیست؟

alimanam
شنبه 06 خرداد 1391, 14:14 عصر
با سلام


اما فکر کنم گفتید وب سرویس امنیتش پایینه

عزیزم درست فکر نکردین من کی گفتم وب سرویس امنیتش پایینه ؟؟؟؟!!!!


اما درباره آپدیت دیتابیسها
اگه تا حالا دیتابیس رو به صورت ویزاردی به برنامه اضافه کرده باشین و یک جدول رو کشیده باشین تو فرم میبینید که دیتا گرید و خیلی کنترل ها به فرم اضافه میشه
یکی از اونا نویگیتوره که یک دکمه سیو آل داره

من که ربطی بین موضوع تاپیک با چیزی که توضیح دادین رو پیدا نکردم عنوان تاپیک رو یکبار دیگه بخونین .اگر سوال بود لطفا متناسب با اون یک تاپیک جدید ایجاد کنین تا بقیه دوستان بتونن بهتر کمکتون کنن .
در مورد ایجاد و چگونگی استفاده از وب سرویس ها مطالب زیادی هست میتونین چه در این سایت چه در گوگل سرچ کنین .

مــــوفق باشید./

alipaye
یک شنبه 08 مرداد 1391, 09:44 صبح
به نتيجه اي رسيدي در جريان بزار. مخصوصا پياده سازي ديتابيس در حالت آفلاين.