‫۱۰ سال و ۸ ماه قبل، جمعه ۱۸ بهمن ۱۳۹۲، ساعت ۰۵:۳۸
هدفم طرح یک ایده بود. امتحان کردید؟ (HttpNotFoundHandler مشترک است بین MVC و وب فرم‌ها)
‫۱۰ سال و ۸ ماه قبل، جمعه ۱۸ بهمن ۱۳۹۲، ساعت ۰۴:۵۷
در ASP.NET MVC برای اینکه کسی نتواند فایل‌های View را مستقیما فراخوانی کند، دسترسی به آن‌ها در فایل web.config کلا بسته شده:
  <system.web>
    <httpHandlers>
      <remove verb="*" path="*.aspx" />
      <add path="*.aspx" verb="*" type="System.Web.HttpNotFoundHandler" />
    </httpHandlers>
  </system.web>

  <system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <handlers>
      <add name="BlockViewHandler" path="*.aspx" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
    </handlers>
  </system.webServer>
‫۱۰ سال و ۸ ماه قبل، جمعه ۱۸ بهمن ۱۳۹۲، ساعت ۰۴:۰۱
- در مورد فارسی نویسی در iTextSharp یک دیباگ مرحله به مرحله قبلا در سایت مطرح شده. اگر خروجی یونیکد نگرفتید یعنی قلم صحیحی در حال استفاده نیست. کدهایی که قبلا ارسال کرده بودم به این نحو است:
// روش صحیح تعریف فونت  
var systemRoot = Environment.GetEnvironmentVariable("SystemRoot");
FontFactory.Register(Path.Combine(systemRoot, "fonts\\tahoma.ttf"));
در کدهای شما به این نحو:
var systemRoot = Environment.GetEnvironmentVariable("SystemRoot");
FontFactory.Register(Path.Combine(systemRoot, "c:\\windows\\fonts\\tahoma.ttf"));
با توجه به استفاده از Path.Combine، مسیری را که معرفی کرده‌اید می‌شود چیزی مانند c:\\windows\\c:\\windows\\fonts\\tahoma.ttf . به همین جهت این فونت یافت نشده و ثبت نمی‌شود (چون دوبار system root در آن وجود دارد).
- بله؛ قدرت پردازش CSS در XML Worker آن خیلی بهتر است از HTML Worker.
- در مورد میزان چرخش جدول، RunDirection = PdfWriter.RUN_DIRECTION_RTL را با حالت LTR هم تست کنید (PdfWriter.RUN_DIRECTION_LTR ).
‫۱۰ سال و ۸ ماه قبل، پنجشنبه ۱۷ بهمن ۱۳۹۲، ساعت ۱۶:۰۸
var id = Page.RouteData.Values["id"];
var title = Page.RouteData.Values["title"];

var blogPost = _postsService.FindPost(id);
if(blogPost == null)
{
  Response.RedirectPermanent("~/notfound");
}

if(blogPost.Title != title)
{
  Response.RedirectPermanent("~/post/" + id + "/" + blogPost.Title);
}
سیستم مسیریابی، اطلاعات id و title وارد شده توسط کاربر را به شما می‌دهد. زمانیکه می‌خواهید مطلب را نمایش دهید، این title دریافتی را با title واقعی مطلب مانند کدهای فوق مقایسه کنید. (البته بهتر است از GenerateSlug استفاده کنید و عناوین نهایی را بر این اساس مقایسه و اصلاح کنید)
‫۱۰ سال و ۸ ماه قبل، پنجشنبه ۱۷ بهمن ۱۳۹۲، ساعت ۰۴:۱۱
این نوع routing خاص سمت کلاینت برنامه‌های تک صفحه‌ای وب را با استفاده از کتابخانه‌ای مانند path.js می‌شود انجام داد. مثال‌های آن‌را به همراه سورس صفحات آن بررسی کنید.
نمونه آن‌را در مطلب « پیاده سازی دکمه «بیشتر» یا «اسکرول نامحدود» به کمک jQuery در ASP.NET MVC  » (کامنت آخر آن) پیاده سازی شده می‌توانید مشاهده و دریافت کنید. از این قابلیت در سایت جاری در حال استفاده است. مثلا اگر به قسمت مطالب در بالای صفحه مراجعه کنید، چنین آدرسی قابل مشاهده است:
https://www.dntips.ir/postsarchive#/page/1/date/desc  
در پایین صفحه اگر دراپ داون‌های مرتب سازی را تغییر دهید، نام فیلد یا صعودی و نزولی بودن آدرس تغییر می‌کنند. شماره صفحه نیز با هر بار کلیک بر روی دکمه‌ی بیشتر یکی اضافه می‌شود. همچنین این آدرس‌ها را می‌شود ذخیره و عینا بازیابی کرد.
‫۱۰ سال و ۸ ماه قبل، چهارشنبه ۱۶ بهمن ۱۳۹۲، ساعت ۲۳:۲۹
- مطلب فوق بیشتر مرتبط است به استثناهای کتابخانه‌های native استفاده شده در برنامه‌های دات نت. برای سایر موارد باید در فایل App.xaml.cs موارد ذیل را بررسی کنید:
    public partial class App
    {
        public App()
        {
            this.DispatcherUnhandledException += appDispatcherUnhandledException;
            AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
        }
+ نمونه تنظیم زیر در فایل app.config یک برنامه WPF کار می‌کند (آزمایش شد):
<?xml version="1.0"?>
<configuration>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
  </startup>
  <runtime>
     <legacyCorruptedStateExceptionsPolicy enabled="true" />
  </runtime>
</configuration>
‫۱۰ سال و ۸ ماه قبل، چهارشنبه ۱۶ بهمن ۱۳۹۲، ساعت ۲۲:۵۳
فایل‌های csproj و sln آن‌را حذف کنید. بعد دو پروژه وب فرم و MVC خالی درست کنید و فایل‌های موجود را به آن‌ها اضافه کنید. ماژول آن هم یک class library ساده است.