View Full Version : سوال: چه روشی برای OnLine & OffLine نرم افزار وجود داره؟
Zohreh G
چهارشنبه 31 فروردین 1390, 10:35 صبح
سلام
من احتیاج به برنامه ای دارم که بتونه به صورت OnLine & OffLine کار کنه.منظورم اینه که من باید این رو در نظر داشته باشم که کاربر ممکنه اصلا به اینترنت دسترسی نداشته باشه و از شبکه هم نمی تونه استفاده کنه.تعداد کاربران هم تقریبا میشه گفت زیاده و اینکه هر کدوم در یک شهر هستند.برای این کار من برنامه رو با استفاده از C# نوشتم و به صورت Win نه Web.کل اطلاعات هم در یک سرور ذخیره می شود و برای استفاده کاربران از این اطلاعات ،برای انتقال اطلاعات هم از فایل XML استفاده می کنم.با توجه به اینکه من می خواهم به صورت OnLine & OffLine کار کنم آیا روش من درسته؟ آیا راه دیگه ای برای انتقال اطلاعات وجود داره؟ و اینکه آیا مبحث من ربطی به سرویس ها داره یانه؟ به WCF چطور؟
از همه تشکر میکنم.........
sia_2007
چهارشنبه 31 فروردین 1390, 11:06 صبح
سلام
میتونه به WCF ربط پیدا کنه اگه از Microsoft Message Queue استفاده بشه؛ تا در این صورت؛ رد و بدل شدن اطلاعات به زمان آنلاین بودن موکول بشه
فایل XML دیگه چی هستش ؟!!!!
Caching هم مطرحه
موفق باشید
Zohreh G
چهارشنبه 31 فروردین 1390, 12:41 عصر
سلام
میتونه به WCF ربط پیدا کنه اگه از Microsoft Message Queue استفاده بشه؛ تا در این صورت؛ رد و بدل شدن اطلاعات به زمان آنلاین بودن موکول بشه
فایل XML دیگه چی هستش ؟!!!!
Caching هم مطرحه
موفق باشید
فرض کنید کاربر به صورت OFF یک سری داده وارد DB خودش می کنه یا بعضی داده هارو Update میکنه،من این داده ها رو در بانک اطلاعات هست به XML تبدیل میکنم و وقتی به internet وصل شد ،این فایل رو به سرور میفرستم.به این صورت سرور هم Update میشه.آیا راه دیگه ای هست؟
sia_2007
چهارشنبه 31 فروردین 1390, 12:51 عصر
مشکل کار شما ؛ اینه که کاربر اول یه سری دیتا رو تو حالت Offiline عوض میکنه
بعد میره فایل XML رو دستی تغییر میده و کل Bussiness Rule های برنامتون رو دور میزنه
چون به نظر نمیآد برنامه تون سمت سرور App Server آی مثل WCF یا Remoting داشته باشه
میشه راحت با برنامتون همه مدل شوخی کرد !
مشکل دوم کندی XML هستش
این XML ها دستی اند یا با Data Set به وجود اومدن ؟
برنامه شما به نظر حتی XML رو Zip نمیکنه؛ ( چون من واقعا نمیدونم برنامتون چی هستش و فقط حدس میزنم )
Zohreh G
چهارشنبه 31 فروردین 1390, 16:33 عصر
مشکل کار شما ؛ اینه که کاربر اول یه سری دیتا رو تو حالت Offiline عوض میکنه
بعد میره فایل XML رو دستی تغییر میده و کل Bussiness Rule های برنامتون رو دور میزنه
چون به نظر نمیآد برنامه تون سمت سرور App Server آی مثل WCF یا Remoting داشته باشه
میشه راحت با برنامتون همه مدل شوخی کرد !
مشکل دوم کندی XML هستش
این XML ها دستی اند یا با Data Set به وجود اومدن ؟
برنامه شما به نظر حتی XML رو Zip نمیکنه؛ ( چون من واقعا نمیدونم برنامتون چی هستش و فقط حدس میزنم )
ممنون که جواب میدین. من چون نمی خوام کسی با برنامه شوخی کنه دارم سوال می پرسم،اگه بلد بودم که نمی پرسیدم:خجالت:XML با DataSet هست و Encode میشن.
sia_2007
چهارشنبه 31 فروردین 1390, 16:46 عصر
باید کامل برنامتون رو توضیح بدید
مثلا DB تون چیه ؟
این که سمت سرور Service دارین ؟
و هر چیزی که به درد بخوره
هر چی کامل تر توضیح بدهی جواب مطمئنتری دریافت میکنی
به Detail هم توضیح بده
موفق باشی
Zohreh G
شنبه 03 اردیبهشت 1390, 07:47 صبح
DB من Sql server 2008 و دیگه نمی دونم چی توضیح بدم...
sia_2007
شنبه 03 اردیبهشت 1390, 09:38 صبح
با سلام دوباره
ببینید باید حداقل بگید که آیا از سرویس خاصی سمت سرور استفاده کردین ؟ مثلا WCF یا Remoting یا برنامتون مستقیم به دیتابیس وصل میشه ؟
اگه نه این تاپیک (http://barnamenevis.org/showthread.php?281709-آیا-می-تونم-این-کار-رو-با-استفاده-از-WCF-انجام-بدم؟) رو مرور کنید ( در هر حالت مرورش کنید بهتره )
من بودم از Win App ای استفاده میکردم که Cache داره و Cahce اش با سرور Sync میشه و سمت سرور WCF داره.
دور XML رو هم خط میکشیدم چون XML آی که DataSet درست میکنه خیلی سنگینه
تاپیک رو که خوندین بحث رو ادامه میدیم
موفق باشید
Zohreh G
شنبه 03 اردیبهشت 1390, 11:47 صبح
سلام
من تاپیک شما رو خوندم .من مثل اینکه درست توضیح ندادم.فرض کنید برای همون بیمه شما یک سری دستورالعمل دارید(مثلا نحوه محاسبه بیمه و یا ....).این دستورالعمل ها از طریق بیمه مرکزی اعلام میشن البته هر روز تغییر نمی کنن.حتی ممکنه سالیانه باشه.
حالا یه سری شعبه دارم که میخوام شعبه ها هم از این دستورالعمل ها استفاده کنن ولی این شعبه ها اینترنت ندارن و شبکه هم نیستند.به دلیل زیاد بودن شعبه ها و همچنین وجود آنها در شهرهای مختلف امکان شبکه کردن اونها (به دلیل هزینه زیاد) امکان پذیر نیست.
من میخوام هر شعبه بتونه (بدون اینکه با بیمه مرکزی در ارتباط باشه )ثبت نام انجام بده و یا داده های قبلی اش رو update کنه .و بعد به صورت هفتگی این داده ها رو به بانک مرکزی انتقال بده.
مثلا بتونه از کافی نت استفاده کنه و این کار رو انجام بده.من برای این مشکلم دنبال راه حل هستم.....:ناراحت:
کتاب یا مقاله یا هر چیز دیگه ای اگه امکان داره معرفی کنین................
خیلی ممنون که وقت می زارین
sia_2007
شنبه 03 اردیبهشت 1390, 13:09 عصر
اوهوم، من فکر کردم اینترنت داره؛ ولی چند وقت یه بار وصل میشه
اون تاپیکی که هم معرفی کردم برای تشخیص فرق حالتی که سرویس داریم با حالتی که نداریم بودش توی یه سرویس Online یا چند وقت یه بار Online بودش
من تا حالا این کار رو نکردم؛ تجربه اش رو هم ندارم
یه کوچولو سخت هم به نظر میآد :چشمک:
در هر حال اگه از دیتاست استفاده کردین
دیگه نباید مشکلی داشته باشین
چون دیتاست لیست تغییراتش رو تو یه XML ذخیره میکنه و میتونین با اون XML سرور و کلاینت رو Sync کنین
مثلا فرض کنین، یه سری آمارگیر هر روز میآن PDA هاشون رو به روز میکننن و میرن تو شهر چرخ میزنن و Data Entry میکنن
چون Offline هستن؛ آخر روز میآن اون XML رو تحویل میدن و تغییراتشون رو روی سرور اعمال میکنن و تغییرات آخر سرور رو دریافت میکنن
ولی پیاده سازیش رو دیگه بلد نیستم
موفق باشید
Zohreh G
شنبه 03 اردیبهشت 1390, 13:52 عصر
ممنونم:لبخندساده::لبخندساد :
لطف کردین...،یه قسمتی از برنامه هم همین کار با PDA است...
ولی از اون تاپیک و این بحث خوشم اومد.میشه کتاب معرفی کنینالبته اگه فارسی باشه خیلی بهتره:خجالت:
farzadny
شنبه 03 اردیبهشت 1390, 15:11 عصر
من این موردو پیاده کردم با یه دیتا بیس local و یه دیتا بیس مرکزی که کاربر میتونه اطلاعات را به صورت انلاین به سرور بفرسته و یا اگر دسترسی نداشته باشه و یا تمایلی به انجام تغییرات به صورت انلاین نداشته باشه تغییرات را در سیستم خودش میدهد و یک قصمت به روز رسانی اطلاعات در نظر گرفتم که در اونجا کاربر اطلاعات local خودش و یا base را به روز کنه... یه خورده روی sp ها کار کن و یه جدول واسه log برای هر جدول قرار بده خیلی توضیحاتش زیاده که چیکار کردم اما بدم نمیاد روشمو مطرح کنم شاید نقص هایی داشته باشه که تا الان متوجه نشدم...
Zohreh G
شنبه 03 اردیبهشت 1390, 15:46 عصر
من یک فیلد برای انتقال در نظر گرفتم برای هر table. که در هنگام انتقال از مرکز به کاربر این فیلد false می شود تا اطلاعات db مرکز تغییر نکنه و یا del نشه..
و اینکه به تعداد انتقال هایی که از مرکز به کاربر میدم یک count دارم و در هنگامی که کاربر ها اطلاعاتشون رو انتقال میدن این Count باید به تعداد Count از دیتابیس مرکز به کاربر ها باشه.
وقتی این دو عدد با هم برابر بشه این فیلد در تمام table ها true میشه و میشه اطلاعات مرکز رو ویرایش کرد و یا....
برای هر کابر دو سری اطلاعات هست:
1. اطلاعاتی که برای همه کاربران یکسان هست مثل دستور العمل ها و یا نحوه محاسبه و .....
2. اطلاعاتیکه با توجه به محدوده جغرافیایی هر کاربر فرق میکنه.و اینکه کاربر چه ارباب رجویی داره(مسلما ارباب رجوئی که در شهر تهران با کاربر 1 کار میکنه با کاربر 2 که در شهر کرج کار میکنه ارتباطی نباید داشته باشه
میشه شما هم توضیح بدین اگه ممکنه؟
sia_2007
شنبه 03 اردیبهشت 1390, 16:15 عصر
اهل لوس بازی نیستم اما بیشتر اونها از تجربه حاصل شده؛
در مورد کاری که اون دوستمون کردن؛ و یا کار خودتون چیزی که من میتونم حدس بزنم اینه که شما دارین چرخ رو از نو اختراع میکنین
برای مثال در حالت ایشون شاید بشه از Sync SDK ای که برای SQL هستش استفاده کرد.
یا همون کار با DataSet هم خیلی خوب هستش، چون DataSet تغییرات خودش رو به بهترین وجهی مدیریت میکنه و حقیقتش پیشنهاد خودمم همینه
من سیستم 100% آفلاین کار نکردم؛ اما مطمئنم شما اولین نفری نیستین که به این مشکل برخورد کردین ؛ پس مسلما غیر از اختراع دوباره چرخ؛ راهی براش وجود داره
موفق باشید
b.ghadami
یک شنبه 06 شهریور 1390, 10:33 صبح
من همچین پروژه ای رو به این صورت پیاده کردم که یک Win App با یک نسخه از Sql Local نوشته میشه که جداول دقیقا مشابه جداول بانک اصلیه کابرا ها افلاین کار میکنن زمانی که احتیاج به sync شدن داده ها داشتید با استفاده از Replication میتونید بانک کلاینت ها رو با مشنری یکی کنید
بنظر من مشتری هرچند وقت یکبار انلاین بشه و بانکشو بروز کنه
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.