PDA

View Full Version : سوال: بهترین تکنولوژی ساخت برای برنامه های تحت شبکه



Programmer 1
شنبه 04 خرداد 1392, 17:59 عصر
سلام،
برای ساخت برنامه هایی مثل یاهو مسنجر و یا برنامه های LanChat(چت در شبکه محلی) و یا برنامه هایی که هم واسط کاربری کلاینت و هم تحت وب دارند و در تعامل با هم هستند، مثلا کاربران از طریق برنامه کلاینت اطلاعاتی وارد برنامه میکنند و با مراجعه به سایت می توانند تحلیل های آماری این اطلاعات را مشاهده کنند و یا حتی اطلاعاتی را تحت وب ذخیره کنند و تحت دسکتاپ قابل استفاده باشه، برنامه هایی مثل TeamViewer و ... چه تکنوژی هایی لازمه بلد باشیم؟

بزارید سنارویی تعریف کنم :

برنامه ای قصد دارم طراحی کنم که سه نسخه داره، نسخه دسکتاپ، تحت وب، موبایل ، این برنامه به گونه ای خواهد بود که اطلاعات در هر سه نسخه قابل نمایش و آپدیت کردن هستش، یعنی مثلا کاربر اطلاعاتی رو از نسخه موبایل ارسال میکنه و کاربرانی که در نسخه تحت وب هستند اطلاعات ارسال شده را می توانند ببینید و همچنین کاربران دسکتاپ، هر کدوم از این نسخه ها می تونه در تعامل با سایر نسخه ها باشه.

برای طراحی و پیاده سازی چنین برنامه ای تحت پلتفرم دات نت چه تکنولوژی ها و زبان ها و ... باید بلد باشیم؟

FastCode
شنبه 04 خرداد 1392, 18:07 عصر
این برنامه ها هر کدوم داستان متفاوتی دارند.که هر کدام در یک لایه تعریف میشه
برای بعضی ها xmpp برای بعضی ها rudp و .....

برای این مدلی که دارید طراحی میکنید اول راجع به مدل OSI و بعد ASN1 و بعد راجع به protocol buffers تحقیق کنید که یک مقدار بیشتر با موضوع و جزئیاتش آشنا بشید که بتونید سوالتون رو بهتر بپرسید.

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

Programmer 1
شنبه 04 خرداد 1392, 18:45 عصر
این برنامه ها هر کدوم داستان متفاوتی دارند.که هر کدام در یک لایه تعریف میشه
برای بعضی ها xmpp برای بعضی ها rudp و .....

برای این مدلی که دارید طراحی میکنید اول راجع به مدل OSI و بعد ASN1 و بعد راجع به protocol buffers تحقیق کنید که یک مقدار بیشتر با موضوع و جزئیاتش آشنا بشید که بتونید سوالتون رو بهتر بپرسید.

قبل از این انتخاب بهتر هست که راجع به دیتابیس های توزیع شده و ACID مطالعه کنید که به مشکلات بدتر از این نخورید.
انتخاب پرتوکل سینک چیزی هست که بعدا عم اگر پشیمون بشید راه برگشت داره.
ممنونم ولی خیلی خوب متوجه گفته های شما نشدم. من بیشتر برنامه تحت دسکتاپ و اکثرا برنامه های بانک اطلاعاتی نوشتم، با wpf و C# آشنایی خوبی دارم، با Unit testing ، TDDو متد اسکرام و فلسفه Lean آشنایی خوبی دارم، ولی تا الان سمت این نوع برنامه ها نیومدم، به همین خاطر پاسخ کلی نیاز ندارم، مثلا بگید اول سوکت پروگرمینگ یاد بگیرید، بعدش WCF و یا هر چیز دیگه ای، انتظار ندارم پاسخ بدید اول بروید در مورد شبکه اطلاعات کسب کنید، مدل osi رو خوب یاد بگیرید، با متدهای رفع خطا و ... آشنا بشید، بعدش در مورد پروتکل TCP/IP شروع کنید به مطالعه، با انواع مختلف روش های آدرس دهی آشنا بشید.
درسته اینها رو باید بلد بود ولی در مرحله اول می خوام از جز به کل برم یعنی شما وقتی بگید بروید سوکت پروگرمینگ یاد بگیرید یقینا جایی از کتاب با TCP/IP و سوکت و ... برخورد می کنم و در موردش مجبور خواهم شد اطلاعات کسب بکنم، ولی این حالت فرقش اینه که در حد همون مبحث اطلاعات کسب خواهم کرد و نه بیشتر، این طور که شما می فرمایید بنده برم در مورد OSI کتابی بخونم کلی با جزئیات که بعضا به درد یک برنامه نویس شاید نخوره روبرو می شم و باعث سر در گمی میشه.
شما طوری راهنمایی کردید که شبیه کتاب های چند بخشی، فقط عناوین کلی مطالب را بیان کردید و هر بخش رو تقسیم بندی نکردید، یعنی اصلا مسیر معلوم نیست. بنده نیاز به مسیر دارم.
لطفا شفاف تر و دقیقتر توضیح بدید
ممنونم

FastCode
شنبه 04 خرداد 1392, 19:53 عصر
منظورم این نبود که OSI رو یاد بگیرید.میخواستم فقط تفاوت لایه های ۵ تا ۷ رو درک کنید که موقعی که ASN1 یا protocol buffers رو میخونید(یکی از این دو رو باید کامل یاد بگیرید) به مشکل نخورید.
توضیح کامل این موارد خیلی طولانیه.من خودم چند سال هست که دارم روی این مطلب کار میکنم و هر چیزی که بگی رو مجبور شدم بخونم.از شبکه بگیر تا کامپایلر و MVCC و CUDA تا RSA و TPM.فقط برای اینکه این که این روش رو بتونم پیاده سازی کنم.اصلا چیز ساده ای نیست.شاید در نگاه اول ساده به نظر بیاد ولی عملا شما میخواهید به نصف بیشتر اهداف plan 9 برسید که اصلا هدف پایینی نیست.