نظرات مطالب
مدیریت سفارشی سطوح دسترسی کاربران در MVC
- راه حل‌های مبتنی بر سشن، از Classics ASP دهه نود به ارث رسیده‌اند. عملا با پیشرفت‌هایی که حاصل شده نیازی به بسیاری از آن‌ها نیست. مصرف حافظه بالایی دارند و همچنین با ری‌استارت شدن برنامه در سرور، تمام سشن‌ها از بین خواهند رفت. این مشکلات در Forms Authentication وجود ندارند.
- قدمت Forms Authentication به ASP.NET 1.x بر می‌گردد. می‌توانید در این مورد در سایت‌های دیگر نیز بیشتر تحقیق کنید که آیا مشکل حادی از سال 2001 تا الان گزارش شده یا خیر.
- کلید رمزنگاری این کوکی‌ها در سمت سرور قرار دارد و تنها یک راه برای دسترسی به آن‌ها هست؛ دسترسی به سرور. در این حالت عملا کل سیستم مورد حمله قرار گرفته و یک کوکی شاید اهمیت خاصی نداشته باشد.
- ضمنا طول مدت زمان معتبر بودن اطلاعات Forms Authentication و دائمی بودن و نبودن کوکی‌های آن قابل تنظیم است (بحث شده در مطلب فوق).
نظرات مطالب
یکی کردن اسمبلی‌های یک پروژه‌ی WPF
راه حل بسیار جامع و ساده ای ارائه کردید که مشکلات روش‌های قبل را ندارد، برنامه به خوبی اجرا می‌شود ولی هنگام گرفتن گزارش با استفاده از stimulsoft خطای زیر ظاهر می‌شود:
(ساختار try-catch نادیده گرفته می‌شود و یک Unhandled Exception رخ می‌دهد.)
The type or namespace name 'Stimulsoft' could not be found (are you missing a using directive or an assembly reference?)
با قرار دادن اسمبلی‌های StimulReport در کنار فایل EXE مشکل برطرف می‌شود در صورتی که این اسمبلی‌ها درون ExE مدفون هستند:


چرا برای اسمبلی‌های تلریک چنین مشکلی به وجود نمی‌آید و اینکه علاوه بر اسمبلی‌های زیپ شده خود اسمبلی‌ها نیز در فایل قرار داده شد؟

نظرات مطالب
ASP.NET MVC #21
- مراجعه کنید به دوره «استفاده از افزونه‌ها و امکانات jQuery در ASP.NET MVC» برای تکمیل بحث. برای نمونه مطلب «افزونه‌ای برای کپسوله سازی نکات ارسال یک فرم ASP.NET MVC به سرور توسط jQuery Ajax» اطلاعات یک فرم رو به صورت خودکار توسط متد form.serialize به سرور ارسال می‌کند.
- نمی‌تونید از Ajax معمولی (یا به عبارتی XMLHttpRequest) برای ارسال فایل استفاده کنید. یا باید از سیلورلایت یا فلش استفاده کنید، یا از
مرورگرهایی که XMLHttpRequest Level 2 را پشتیبانی کنند (از IE 10 به بعد مثلا)، امکان Ajax upload توکار به همراه گزارش درصد آپلود را بدون نیاز به فلش یا سیلورلایت، دارند.یک نمونه پیاده سازی آن 
نظرات مطالب
سفارشی سازی Header و Footer در PdfReport
در مورد جزئیات نحوه مقدار دهی فیلدهای این نوع قالب‌ها مراجعه کنید به مطلب «ساخت یک گزارش ساز به کمک iTextSharp و Open Office».
بعد از آشنایی، متد GetITextSharpImageFromAcroForm تعریف شده در PdfReport هم راه ساده‌تر پر کردن این نوع فیلدها است.
 public static iTextSharp.text.Image GetITextSharpImageFromAcroForm(
                            this PdfWriter pdfWriter,
                            string pdfTemplateFilePath,
                            IList<CellData> data,
                            Action<IList<CellData>, AcroFields, PdfStamper> onFillAcroForm,
                            IList<iTextSharp.text.Font> fonts,
                            int pageNumber = 1)
یک چنین امضایی داره تعریف شده در فضای نام PdfRpt.Core.Helper. 
نظرات مطالب
EF Code First #12
مزیت این روش، استفاده از یک IoC Container برای مدیریت طول عمر DbContext در طول یک درخواست است.
در برنامه‌های وب، کار صرفا به یک کلیک ساده ختم نمی‌شود که در همان لحظه، یک Context آغاز و پایان یابد. در طی یک درخواست وب، قسمتی از صفحه لیست گروه‌ها، قسمتی دیگر لیست نویسندگان، قسمتی دیگر گزارش درصد استفاده از مرورگرها و قسمتی دیگر لیست آخرین مطالب را نمایش می‌دهد. تمام این‌ها هم در طی یک درخواست رخ می‌دهند و هرکدام، ماژول ماژول طراحی شده‌اند و از هم جدا.
اینجا است که ارزش استفاده از قابلیت‌های مدیریت طول عمر IoC containers برای به اشتراک گذاری یک DbContext در طی یک درخواست بهتر مشخص می‌شود. به این ترتیب می‌شود به سرباری کم و سرعتی بالا دست یافت چون مدام به ازای قسمت‌های مختلف برنامه Context ایجاد و تخریب نمی‌شود.
نظرات مطالب
NOSQL قسمت دوم
در حالت کلی هر‌کدام از پایگا‌ه‌‌داده‌ها بسته به نیاز استفاده می‌شن ، توی برنامه‌های اینترپرایز وبی مفهوم Polyglot Persistence مطرحه (که می‌شه اونو نگه‌داری یا ذخیره سازی چند زبانی ترجمه کرد) که می‌گه توی یک سیستم از چندین نوع پایگاه داده می‌شه (باید) استفاده کرد. به عنوان مثال برای نگه‌داری داده‌هایی جهت گزارش گیری و یا ایجاد Transactionها بهترین گزینه همان سیستم‌های RDBMS هستند ، در مطالب آتی به این موضوع اشاره بیشتری خواهم کرد ، مارتین فویلر در این مطلب مفهوم Polyglot Persistence را به خوبی توضیح داده‌اند.
نظرات مطالب
آشنایی با Window Function ها در SQL Server بخش اول
سلام  
 سرعت و قابلیت اجرایی Over Clause به مراتب از Group by بهتر است. بطوریکه اگر یک عملیات یکسان را،بطور جداگانه،هم با Over Clause و هم با Group By انجام دهید. و در Execution Plan مشاهده نمایید، تفاوت را حس خواهید نمود. سایت زیر یک مثال ساده در این رابطه قرار داده است:
در مورد اینکه برای محیط های Transactional  مناسب است یا نه، عوامل زیادی در آن دخیل است و بسته به حجم داده ای مورد انتظار شما در خروجی دارد،بطور مثال اگر بخواهید یک گزارش 400 صفحه ای ایجاد نمایید، بطور حتم در چنین محیط هایی هیچ Scriptی مناسب، نیست، اما بطور قاطع می‌توان گفت که Window Function‌ها از کارایی بسیار خوبی برخوردار هستند، و انجام عملیات‌های پیچیده محاسباتی را برای ما آسانتر نموده اند.
نظرات مطالب
معرفی کتابخانه PdfReport
- لطفا برای رفع مشکلات مرتبط با PdfReport از این قسمت سایت استفاده نمائید.
- برای مشاهده خطای واقعی بر روی لینک view details (ذیل قسمت Actions تصویر فوق) کلیک کنید. در اینجا بهتر می‌توان بررسی کرد که مشکل اصلی چه چیزی بوده است. (ممکن است فونت مورد استفاده در مسیر برنامه شما نباشد، یا دسترسی write نداشته باشید، یا پوشه خروجی pdf در مسیر و ریشه برنامه شما ایجاد نشده (مطابق تنظیمات AppPath انتهای گزارش)، یا هر خطای دیگری که ریز آن در قسمت view details یاد شده، ذکر می‌شود)
 
نظرات مطالب
ASP.NET MVC #12
- Viewها در ASP.NET MVC پس از اولین بار فراخوانی، کامپایل می‌شوند. البته می‌شود با دستکاری فایل پروژه، آن‌ها را در زمان build هم کامپایل کرد. در قسمت‌های قبل توضیح دادم. بنابراین سربار این مساله بسیار کم است.
- شاید برای مواردی مانند تکست باکس، لینک و امثال آن، آنچنان تفاوتی در این بین نباشد که از اصل آن‌ها استفاده شود، یا یک متد کمکی. اما مثلا در مورد رندر کردن یک گرید پویا بر اساس پارامترهای انتخابی یک گزارش چطور؟ هدف اصلی، بیشتر این نوع موارد است.
- مباحث caching اطلاعات را هم در قسمت‌های بعدی به آن اشاره کردم. این مورد سبب می‌شود تا اصلا کدی در سمت سرور اجرا نشود. البته در مورد بایدها و نبایدهای آن هم بحث شده در همان مطلب.
نظرات مطالب
ASP.NET MVC #6
کسی که دانشی در مورد وب فرم‌ها نداره چطور می‌تونه مثلا ستون‌های یک GridView رو طراحی و بایند کنه؟ برای نمونه یک گزارش رو دربیاره؟ اینجا هم به همین ترتیب. یک ترکیب کلی صفحه وجود دارد که طراح می‌تونه صرفنظر از اینکه کار شما PHP است یا ASP.NET در بیاره. مثلا یک فایل PSD  به شما تحویل بده (روش مرسوم). یک قسمت‌هایی هم باقی خواهد ماند که باید برنامه نویس پرکنه زمانیکه این فایل PSD رو تبدیل به قالب سایت کرد. زمانیکه master page رو درست کرد. المان‌ها رو در جاهای مختلف جایگذاری کرد.