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

پ.ن.
- اسرار با اصرار کمی متفاوت است.
‫۱۳ سال و ۱۰ ماه قبل، جمعه ۱۹ آذر ۱۳۸۹، ساعت ۱۲:۱۷
در ASP.NET این استفاده‌ی مجدد از یک Thread منحصر به یک سشن نیست. همچنین از یک ترد مشخص الزاما برای درخواست بعدی استفاده نمی‌شود.
به علاوه DataContext نیز thread safe نیست و مباحثی را که در بالا ذکر شد در نظر داشته باشید. ممکن است وسط کار توسط یک کاربر دیگر استفاده شود.
+ این کار کردن با یک مرورگر و load یک کاربر ... روش صحیحی برای آزمودن نیست.
اگر خیلی علاقمند به انجام اینکار هستید باید از روش یک DataContext به ازای هر درخواست (per request) استفاده کنید، یعنی همان روش استفاده از Current.Items ذکر شده. اصطلاحا به این الگو، الگوی UnitOfWork گفته می‌شود. یک پیاده سازی خوب در این مورد اینجا هست: (+) و (+)
‫۱۳ سال و ۱۰ ماه قبل، جمعه ۱۹ آذر ۱۳۸۹، ساعت ۰۵:۰۳
ببینید محور اصلی بحث این تاپیک ASP.NET است و اگر از ویژگی ThreadStatic استفاده کرده‌اید، اشتباه است چون بحث استفاده مجدد از یک ترد موجود در ThreadPool در اینجا مطرح است (در بالا ذکر کردم).
در ASP.NET اگر می‌خواهید اطلاعاتی را صرفا برای استفاده در طول عمر یک درخواست ذخیره کرده و به اشتراک بگذارید از HttpContext.Current.Items استفاده کنید که برای این منظور طراحی شده و استاندارد است : (+)
‫۱۳ سال و ۱۰ ماه قبل، چهارشنبه ۱۷ آذر ۱۳۸۹، ساعت ۰۳:۰۴
نه آنچنان. پایه کار همان است. برنامه نویسی شیرپوینت بیشتر مبتنی است بر ASP.NET Webforms و Work flow foundation و نگارش جدید آن WCF هم دارد.
و در کل شرکتی که می‌خواهد از SharePoint درست استفاده کند باید متخصص‌هایی با این توانایی‌ها داشته باشد:
- توانایی راه اندازی دومین ویندوز سرور
- توانایی راه اندازی Exchange server
- توانایی راه اندازی SQL Server
- آشنایی کامل با IIS
- تسلط کامل به برنامه نویسی ASP.NET و وب پارت نویسی.
- آشنایی با برنامه نویسی Workflow foundation

به نظر من مایکروسافت بسیاری از کتابخانه‌هایی را که به دات نت فریم ورک اضافه کرده فقط و فقط به خاطر SharePoint بوده نمونه‌اش همین Workflow foundation . من کمتر دیدم از این مورد خارج از SharePoint استفاده شود. یا اگر دقت کرده باشید ASP.NET 2.0 وب پارت هم دارد ولی باز هم ... کاربردش جای دیگری است.
یا در SQL Server 2008 یک سری از قابلیت‌های file stream ایی که اضافه شده فقط به خاطر مدیریت ساده‌تر و بهینه‌تر حجم بالای دیتابیس شیرپوینت در نگارش 2010 آن بوده که همه چیز داخل آن ذخیره می‌شود.
‫۱۳ سال و ۱۰ ماه قبل، سه‌شنبه ۱۶ آذر ۱۳۸۹، ساعت ۲۰:۱۹
ممنون. مشکل قالب مربوط است به سایت PersianGig که اخیرا هر از چندگاهی به نظر down می‌شود. (عکس‌ها و css سایت از آنجا لینک شده)
‫۱۳ سال و ۹ ماه قبل، پنجشنبه ۱۶ دی ۱۳۸۹، ساعت ۲۳:۱۵
نسخه جدید برنامه در CodePlex قرار گرفت.
تغییرات:
- اضافه شدن امکان یکی کردن دیالوگ‌های دو فایل زیر نویس. برای مثال دو زیرنویس فارسی و انگلیسی را می‌خواهید یکی کنید.