اشتراک‌ها
طراحی اتمی (Atomic Design) چیست؟

فرض کنید به عنوان یک پروژه، باز طراحی(Redesign) پرتال شهرداری یا یک فروشگاه اینترنتی در وسعت دیجی کالا یا بامیلو به شما سپرده می‌شود ، در این پروژه شما با صدها صفحه مواجه هستید که گاهی از نگاه طراح پنهان می‌ماند و یا باز طراحی برای تمامی صفحات فرآیندی با ریسک ، هزینه و زمان بالا خواهد بود.

یکی از راه حل‌های پیشنهادی که با آن مواجه شدم طراحی اتمی ( Atomic Design ) معرفی شده توسطBrad Frost است که در ادامه به معرفی این روش می‌پردازم. 
طراحی اتمی (Atomic Design) چیست؟
نظرات مطالب
سفارشی سازی ASP.NET Core Identity - قسمت پنجم - سیاست‌های دسترسی پویا
من از دیالوگ استفاده میکنم که موقع باز کردن صفحات بصورت آژاکسی نیست. یک url رو باز می‌کند چون به اون Url دسترسی ندارد صفحه هدایت به لاگین نمی‌شود.
$("#dialog").dialog({ autoOpen: false, open: function (event, ui) {   $(this).load(url);  }) });
<div id="dialog" title="Basic dialog">
    <p>Dialog box</p>
</div>
نظرات مطالب
بهبود SEO در ASP.NET MVC
یک نکته‌ی تکمیلی در مورد محتوای تکراری
به گزارش‌های گوگل در مورد سایت جاری که نگاه می‌کردم، تمام لینک‌های به صفحات جستجوی سایت را مثلا https://www.dntips.ir/search?term=seo تکراری گزارش کرده بود (تعداد زیادی بودند). چون عنوان قبلی صفحه جستجو، فقط «جستجو» بود (یک عنوان همیشه ثابت). بعد از اینکه عنوان را تبدیل کردم به «جستجو + عبارت وارد شده»، گزارش موارد تکراری آن برطرف شد. 
نظرات مطالب
Google OpenID Authentication در ASP.NET با استفاده از DotNetOpenAuth

با سلام و تشکر از پست خوبتون

در زمانی که ما از سیستم‌های ورود و ثبت کاربران شرکت‌های دیگر استفاده می‌کنیم آیا می‌توانیم لاگ گرفته یا اینکه برای خودمان یک صفحه داشته باشیم تا ورود و خروج‌های اکانت‌های درون وبسایتمان را بررسی کنیم یا اینکه خودمان باید این بخش را کدنویسی کنیم؟

یک سئوال دیگر این است که زمانی که از openid ‌های شرکت‌های دیگه استفاده می‌کنیم فقط احراز هویت را از این سرویس‌ها دریافت می‌کنیم یا اینکه در همه صفحات و دیگر کارهای کاربر نظارت به صورت خودکار انجام می‌شود یا اینکه باز هم باید کدنویسی کنیم؟

پاسخ به بازخورد‌های پروژه‌ها
تنظیم عناصر گزارش
- مراجعه کنید به مجموعه مثال‌های این کتابخانه که همراه سورس آن است. مثلا (^ و ^ و ^)
- به علاوه برچسب PdfReport را که در سایت پیگیری کنید این موارد بحث شدن:
«سفارشی سازی Header و Footer در PdfReport»

ضمنا در PdfReport یک هدر و یک فوتر بیشتر وجود ندارد. اما به ازای هر صفحه، یکبار callback آن‌ها فراخوانی خواهند شد. یعنی می‌تونید در صفحات مختلف، هدرها و فوترهای متفاوتی رو طراحی کنید یا اینکه همه رو ثابت در نظر بگیرید.
بازخوردهای پروژه‌ها
Page Break
سلام
مدتی است که با این کتابخانه شروع به کار کردم و از آن بسیار راضی هستم. از شما بدلیل زحماتتان سپاسگزارم.  یک راهنمایی می‌خواستم.
در حالتی که از ستون‌های با قلب سفارشی HTML استفاده می‌کنیم، آیا امکان مدیریت انتقال به صفحات جدید وجود دارد.
برای مثال در نمونه پروژه سوالات امتحانی، و یا پروژه هایی که جهت تبدیل HTML به PDF استفاده می‌شوند تگ H1 همیشه در صفحه جدید نمایش داده شود. آیا این امکان وجود دارد و یا راه حل مشابهی برای مدیریت این موضوع دارید؟
نظرات مطالب
نحوه کاهش مصرف حافظه EF Code first حین گزارشگیری از اطلاعات

سلام؛ من اینجا و اینجا و اینجا  را ... مطالعه کردم. اما متوجه نشدم در زمان گزارش گیری با هر ابزاری (Stmulsoft, FastReport, ..) اطلاعات باید به صورت یک BusinesObject و یا هر عنوان دیگه ای به ابزار مورد نظر در قالب یک IEnumeable ارسال شود. در حالی که اگر ما IQueable را با .ToList() به یک IEnumerable تبدیل شود، ممکن است در برگیرنده کل اطلاعات باشد. در این موارد راهی برای کاهش حافظه و سربار کم وجود دارد؟ متد ToList را نمی‌توان به صورت Lazy پیاده سازی کرد یعنی اگر ابزار گزارش ساز فرضا صفحه 1 را نمایش دهد اطلاعات تا صفحه یک از بانک واکشی بشود. اگر گزارش ما 200 صفحه باشد در حالت عادی کل اطلاعات در سرور لود شده و برنامه‌های گزارش ساز صرفا پس از تهیه گزارش اطلاعات را به صورت صفحه بندی نمایش می‌دهند.

بازخوردهای دوره
پیاده سازی دکمه «بیشتر» یا «اسکرول نامحدود» به کمک jQuery در ASP.NET MVC
در حالت استفاده‌ی از MVC، قسمت رندر خود pager یک کد سمت سرور هست. جائیکه لینک به صفحات مختلف رندر می‌شود، هش‌تگ مربوط به افزونه‌ی pathjs را هم خودتان اضافه کنید:
 var path = "#/page/" + (page + 1) + "/" + $(options.pagerSortById).val() + "/" + $(options.pagerSortOrderId).val();
این کد جاوا اسکریپتی هست (در فایل jquery.InfiniteScroll.js) که انتهای یک url به صورت هش‌تگ (page/1/#) اضافه می‌شود. همین هش‌تگ را در حین رندر url شماره صفحات خودتان اضافه کنید.
قسمت بعدی آن، پردازش این هش‌تگ‌ها است (زمانیکه به صورت مستقیم در مرورگر وارد شد) که نیاز به کد جاوا اسکریپتی زیر را دارد:
Path.map("#/page(/:page)(/:sortby)(/:order)").to(function () {
که آن هم جزئیاتش در فایل jQueryMvcSample02_V2.zip موجود است.
اشتراک‌ها
نرم افزار نمونه سازی رابط کاربری Pencil
بزارید مطلب رو خیلی ساده بیان کنیم، فرض کنید که یک سفارش طراحی و برنامه نویسی یک نرم افزار به شما داده شده؛ حالا بعد از بستن قرارداد چیکار میکنید؟ آیا به سرعت بدون اینکه مشتری تصوری از برنامه ای که قراره به دستش برسه داشته باشه کار رو شروع می‌کنید؟! خب البته مسلما بهتره که مشتری قبل از طراحی کامل نرم افزار، نمایی از بخش‌های مختلف نرم افزار رو ببینه؛ مشتری با دیدن این بخش‌ها میتونه نیازهایی رو که داره بهتر به شما منتقل کنه.
برای ساخت نمونه‌های رابط کاربری (GUI Prototyping) راه‌ها و نرم افزار‌های مختلفی وجود داره. نرم افزار Pencil یکی از اون راه‌ها است؛ که تونسته با مجتمع سازی یک محیط خوش دست و کارا ساخت نمونه‌های رابط کاربری رو لذت بخش‌تر از قبل بکنه. توسط این نرم افزار میشه نمونه‌های رابط کاربری رو برای نرم افزارهای سیستمی، سایت‌ها و نرم افزار‌های موبایل ایجاد کرد. این نرم افزار رایگان به دو صورت به کاربران ارائه شده: 1- به صورت یک افزونه برای مرورگر محبوب فایرفاکس که آخرین نسخه اون حجمی معادل 5 مگابایت داره. 2- به صورت یک نرم افزار مستقل که فارغ از مرورگر میتونه اجرا بشه البته در این حالت حجمی حدود 22 مگابایت رو به خودش اختصاص داده.

تصویری از محیط برنامه

Pencil


تصویر یه نمونه رابط کاربری ساخته شده توسط این برنامه (خودم ساختمه اش ها!)

Website GUI Prototyping

نرم افزار نمونه سازی رابط کاربری Pencil