logo
میهمان عزیز خوش آمدید! برای بهره‌مندی از تمام امکانات لطفا وارد حساب کاربری خود شوید ورود یا ثبت نام.

اطلاع رسانی

Icon
Error

ورود


گزینه ها
مشاهده آخرین ارسال مشاهده آخرین ارسال خوانده نشده
admin  
#1 ارسال شده : 1394/06/11 04:49:57 ب.ظ
admin

رتبه: Administration

گروه ها: Administrators
تاریخ عضویت: 1392/08/28
ارسالها: 16

4 تشکر دریافتی در 4 ارسال
[سوال مطرح شده در ایمیل]

با عرض سلام و وقت بخیر
بنده کار با پروژه ارچارد رو چند وقتی هست شروع کردم و چند ماژول هم براش نوشتم و پس از تحقیقات زیادی که انجام دادم تصمیم گرفتم بعنوان هسته اصلی پروژه هام استفاده کنم ولی خب الان به یه موردی برخوردم و اون اینکه تو کار با حجم دیتای زیاد ، به نظر میاد ساختار مناسبی نداشته باشه بعنوانر مثال داده های من برای ماژول خبرم توی دو تا جدول ذخیره میشه که این مورد باعث میشه حجم دیتابیس هم خیلی زیاد بشه و یکسری اطلاعات حداقل به نظر خودم اضافه تو دیتابیس داشته باشم .
نمی دونم چرا باید برای هر contentpart در دو جدول اطلاعات ذخیره بشه یکی تو جدول مربوط به رکوردهای content part و یکی هم تو contentItemRecord !!!
برا bulk insert که تو بعضی از ماژول ها نیاز اصلی من هست با nhibernate به مشکل برخوردم و resource زیادی مصرف میشه و زمان زیادی هم نیاز هست !

خب این ها مواردی هستن که من باهاش مواجهم البته یکی دو مورد اصلی و نیاز به راهنمایی دوستانی دارم که با پروژه ارچارد درگیر هستند. نهایتا تصمیم گرفتم اگه امکانش باشه لایه دیتااکسسم رو از nhibernate تغییر بدم به Ado.net که تا حالا تو پروژه هام استفاده کردم و نمی دونم که آیا چنین چیزی ممکن و یا منطقی هست یا نه ؟
البته اگه امکان آشنایی بیشتر با اساتید این حوزه باشه ممنون میشم راهنمایی کنین .

ویرایش شد بوسیله کاربر 1394/06/11 04:50:50 ب.ظ  | دلیل ویرایش: مشخص نشده است

admin  
#2 ارسال شده : 1394/06/11 04:51:19 ب.ظ
admin

رتبه: Administration

گروه ها: Administrators
تاریخ عضویت: 1392/08/28
ارسالها: 16

4 تشکر دریافتی در 4 ارسال
[پاسخ]

برای جداول با داده زیاد احتیاجی نیست که حتما از منطق ContentPart اورچارد استفاده کنیم همچنین ساختار ارتباط با پایگاه داده یکی از بهترین راه حل هایی هست که برای دات نت طراحی شده است.
برای این کار مستقیما مدل خود را بدون ارث بری از ContentPart بیسازید ، به عبارت دیگه فقط فایل myTblRecord.cs را میسازیم.

باید توجه داشت در فایل Migrations.cs برای ساخت تیبل مورد نظر از .ContentPartRecord() استفاده نکنید.

متوانید از ماژول Orchard.Roles جهت راهنما استفاده نمایید.

ویرایش شد بوسیله کاربر 1394/06/11 04:52:37 ب.ظ  | دلیل ویرایش: مشخص نشده است

admin  
#3 ارسال شده : 1394/06/11 04:52:14 ب.ظ
admin

رتبه: Administration

گروه ها: Administrators
تاریخ عضویت: 1392/08/28
ارسالها: 16

4 تشکر دریافتی در 4 ارسال
[سوال مطرح شده در ایمیل]


با تشکر از پاسختون
بله این مورد رو تو بعضی از مدل ها و جدول هام استفاده کردم ولی خب یک جاهایی نیاز به این هست که از منطق ContentPart استفاده کنیم و همون جاها هم به مشکل بر می خورم و البته نمی دونم حذف ContentPart تا چه حد منطقی هست ، برای ادامه کار و وقتی که قرار هست ماژول های دیگه ای هم اضافه بشه . چون فکر می کنم اگه قرار بر کنار گذاشتن ساختار اصلی ارچارد هست دیگه لزومی نداره ازش بعنوان هسته اصلی پروژه ها استفاده بشه و الیته باز نمی دونم شاید این دیدگاه و فکر من اشتباه هست !
فک کنین من یه contentpart ایجاد کردم تو یکی از ماژول هام و الان می خوام ازش تو یه contentType استفاده کنم با حذفی که قبلا براش اتفاق افتاده طبیعتا نمی تونم همچین استفاده ای ازش بکنم .
شاید لازم باشه بیشتر در این مورد توضیح بدم :
ببینین مثلا ماژول خبری رو در نظر بگیرین که قرار هست از سایت های مختلف خبر جمع کنه و نمایش بده حالا من می خوام از خبرهام بعنوان مطلب بلاگ هم استفاده کنم ، راه حلی که به ذهنم میرسه اینه که از content part مربوط به blog post استفاده کنم و با راه حلی که می خوایم در نظر بگیریم نمی تونیم این کار رو انجام بدیم و مواردی از این دست ...
admin  
#4 ارسال شده : 1394/06/11 04:52:59 ب.ظ
admin

رتبه: Administration

گروه ها: Administrators
تاریخ عضویت: 1392/08/28
ارسالها: 16

4 تشکر دریافتی در 4 ارسال
[پاسخ]

ما برای پروژه هایی که بالای یک میلیون رکورد دارد از این روش استفاده میکنیم و دیگه از قابلیت های اورچارد برای مدیریت محتوی استفاده نمیکنیم
توجه کنین که ContentType و ContentPart برای توسعه وب توسط کاربران ایجاد میشه ، یعنی در قسمت ادمینی قابلیت تعریف فرم مورد نظرشون رو بوجود میاره
پس اگر برنامه ای که میخواید بنویسین که در حد جمع آوری RSS از تعداد محدودی سایت هست که در نهایت منجر به تراکنش هایی کمتر از 1000 رکورد در ثانیه میشه از همون منطق ContentPart استفاده کنین نباید مشکلی بوجود بیاره
اما اگر میخواین مثل سامانه قطره از تعداد بیشماری سایت خبری RSS بگیرین قطعا تمامی برنامه را میبایستی از راه دوم اجرا نمایید.
در حال حاضر من امکانی را در اورچارد ندیدم که بشه مدلی که بدون ContentPart ایجاد شده را به مدلی که با این منطق ایجاد شده وصل نمود، در صورتی که راهی پیدا کردیم خوشحال میشم به اشتراک بگذارین
admin  
#5 ارسال شده : 1394/06/12 12:08:06 ق.ظ
admin

رتبه: Administration

گروه ها: Administrators
تاریخ عضویت: 1392/08/28
ارسالها: 16

4 تشکر دریافتی در 4 ارسال
[پاسخ]

پاسخهای شما را در http://orchard.codeplex.com/discussions/644174 دیدم
من در رابطه با تراکنش های بالا با اورچارد کار کردم ، اما مشکل سرعت در خواندن و نوشتن را با Raid کردن 5 هارد 300GB HP حل کردم ، برای داده های حجم بالا بغیر از بهینه سازی کد میبایستی حتما سخت افزار هم بهینه باشه.
البته من حجم رکورد شما را نمیدونم اما باتوجه به اینکه ذکر کردین در دقیقه 10000 رکورد بایستی ذخیره کنین تقریبا ثانیه ای 170 رکورد باید ذخیره بشه اگر سرعت هارد شما 50MB/s باشد حداکثر حجم هر رکورد شما 300KB میشود البته پارامتر های زیادی سرعت رو کاهش میدهد. با فرض اینکه این پارامتر ها وجود نداره محاسبه کردم.
admin  
#6 ارسال شده : 1394/06/12 12:08:41 ق.ظ
admin

رتبه: Administration

گروه ها: Administrators
تاریخ عضویت: 1392/08/28
ارسالها: 16

4 تشکر دریافتی در 4 ارسال
[سوال مطرح شده در ایمیل]


راستش من با table data type خود sql و با یه sp برا insert حتی در کمتر از یک دقیقه 100 هزار رکورد رو تونستم insert بکنم دنبال همچین چیزی توی orchard و nhibernate بودم حتی با transaction.requirenew برای هر 100 رکورد ، سرعت ثبت چندان قابل قبول نیست چون به هر حال ما باز هم رکوردها رو تک تک create می کنیم. و البته امروز بعد از مدتها تصمیم گرفتیم تا پیدا کردن راه حل نهایی احتمالی تو ارچارد پروژه رو توی asp.net mvc جلو ببریم که تو خیلی از موارد و توی کار با sqlدستمون بازتر هست و حداقل مشکلاتی که به لحاظ insert و read مواجهیم رو نداریم . این چیزی هست که قبلا تست کرده بودیم و جواب هم گرفته بودیم. ولی خب چون می خواستیم پروژه هامون یکپارچه بشه اورده بودیم تو orchard.
admin  
#7 ارسال شده : 1394/06/12 12:14:27 ق.ظ
admin

رتبه: Administration

گروه ها: Administrators
تاریخ عضویت: 1392/08/28
ارسالها: 16

4 تشکر دریافتی در 4 ارسال
[پاسخ]

بنظرم با همین روشی که میگید از طریق وب سرویس اطلاعات را به اورچارد انتقال بدین بهتر است قطعا نه اورچارد با هر CMS دیگه ای هم کار کنید سرعت تبادل اطلاعات پایین میاید به دلائل زیادی
shahin  
#8 ارسال شده : 1394/09/25 03:43:41 ب.ظ
shahin

رتبه: Newbie

گروه ها: Registered
تاریخ عضویت: 1393/04/16
ارسالها: 1
ایران (جمهوری اسلامی)
مکان: Tehran

1 تشکر دریافتی در 1 ارسال
بهترین راه حل استفاده از ماژول Orchard-O-Data برای انجام عملیات CRUD می‌باشد بخصوص زمانی که بخواهیم از اورچارد رو برای مدیریت محتوا استفاده کنیم و از این داده ها در جای دیگر استفاده کنیم
admin  
#9 ارسال شده : 1395/08/27 12:05:52 ق.ظ
admin

رتبه: Administration

گروه ها: Administrators
تاریخ عضویت: 1392/08/28
ارسالها: 16

4 تشکر دریافتی در 4 ارسال
جهت استفاده برای اطلاعات حجیم به اسن نکته توجه شود که حتما lazy mode غیر فعال شود.
کاربرانی که در حال مشاهده انجمن هستند
رفتن به انجمن  
شما نمی توانید مطلب جدید در این انجمن ایجاد کنید
شما نمی توانید برای مطالب ارسالی پاسخ ارسال کنید
شما نمی توانید مطلب ارسالی خود را حذف کنید
شما نمی توانید مطلب ارسالی خود را ویرایش کنید
شما نمی توانید در مطلب ارسالی خود نظرسنجی ایجاد کنید
شما نمی توانید در این انجمن نظر دهید

ایجاد شده توسط YAF.NET 2.2.3 | YAF.NET © 2003-2018, Yet Another Forum.NET
این صفحه در مدت زمان 0/140 ثانیه ایجاد شد.