- Atomic Operation داریم ولی شیء Atomic ؟
- بحث استفاده مجدد از یک ترد در ASP.NET به این معنا است:
ترد یک در سشن کاربر یک، یک DataContext استاتیک را ایجاد کرده. حتی آنرا با ویژگی ThreadStatic هم مزین کرده است. اکنون به نظر در پایان درخواست کارش به پایان رسیده است. در این لحظه ASP.NET این ترد یک را در اختیار سشن کاربر 2 قرار میدهد. این DataContext استاتیک شما که با توجه به ویژگی ThreadStatic بودن آن در این ترد زنده است و جهت Tracking بسیاری از موجودیتها از آن استفاده شده، اطلاعات خود را در اختیار کاربر 2 قرار داده است. این DataContext نه لزوما میتواند معتبر باشد (شاید dispose شده) و یا شاید حاوی اطلاعات حساس و غیرضروری. هر دو مورد در یک برنامه چند کاربره مشکل ساز است.
- زمانیکه از ORM استفاده میکنید، لایه دسترسی به داده همان ORM است و از دید لایههای دیگر مخفی است. شما یک لایه دیگر به نام BLL برای جداسازی اعمال انجام شده توسط آن از لایه نمایش بایدایجاد کنید.
پ.ن.
- اسرار با اصرار کمی متفاوت است.
- بحث استفاده مجدد از یک ترد در ASP.NET به این معنا است:
ترد یک در سشن کاربر یک، یک DataContext استاتیک را ایجاد کرده. حتی آنرا با ویژگی ThreadStatic هم مزین کرده است. اکنون به نظر در پایان درخواست کارش به پایان رسیده است. در این لحظه ASP.NET این ترد یک را در اختیار سشن کاربر 2 قرار میدهد. این DataContext استاتیک شما که با توجه به ویژگی ThreadStatic بودن آن در این ترد زنده است و جهت Tracking بسیاری از موجودیتها از آن استفاده شده، اطلاعات خود را در اختیار کاربر 2 قرار داده است. این DataContext نه لزوما میتواند معتبر باشد (شاید dispose شده) و یا شاید حاوی اطلاعات حساس و غیرضروری. هر دو مورد در یک برنامه چند کاربره مشکل ساز است.
- زمانیکه از ORM استفاده میکنید، لایه دسترسی به داده همان ORM است و از دید لایههای دیگر مخفی است. شما یک لایه دیگر به نام BLL برای جداسازی اعمال انجام شده توسط آن از لایه نمایش بایدایجاد کنید.
پ.ن.
- اسرار با اصرار کمی متفاوت است.