مطالب
ویرایش قالب پیش فرض Add View در ASP.NET MVC برای سازگار سازی آن با Twitter bootstrap
همانطور که در مطلب «اعمال کلاس‌های ویژه اعتبارسنجی Twitter bootstrap به فرم‌های ASP.NET MVC» ملاحظه کردید، برای سازگار سازی یک فرم جدید ایجاد شده ASP.NET MVC با پیش فرض‌های Twitter bootstrap، حداقل 8 مرحله باید طی شود و ... چقدر خوب می‌شد اگر این‌کارها به صورت خودکار توسط VS.NET بجای قالب پیش فرض ایجاد فرم آن، تولید می‌شد. در ادامه قصد داریم این سفارشی سازی را انجام دهیم.


مراحل کلی سفارشی سازی قالب‌های Scaffolding پیش فرض ASP.NET MVC

قالب‌های Scaffolding پیش فرض ASP.NET در مسیر Microsoft Visual Studio X\Common7\IDE\ItemTemplates\CSharp\Web\MVC X\CodeTemplates قرار دارند. برای نمونه اگر بخواهیم پیش فرض‌های تولید فرم‌های MVC4 را تغییر دهیم، باید به پوشه MVC 4\CodeTemplates\AddView\CSHTML مراجعه و فایل Create.tt را ویرایش کنیم.
اینکار هرچند عملی است اما آنچنان جالب نیست؛ از این جهت که تاثیری کلی و سراسری خواهد داشت.
برای اعمال محلی این تغییرات فقط به یک پروژه خاص، تنها کافی است همین مسیر CodeTemplates\AddView\CSHTML به همراه تمام فایل‌های tt آن، در پوشه جاری پروژه مدنظر ما کپی شود. به این ترتیب ابتدا به این پوشه محلی مراجعه خواهد شد.
روش دوم کپی کردن این فایل‌ها، استفاده از بسته نیوگت ذیل است:
 PM> Install-Package Mvc4CodeTemplatesCSharp


سفارشی سازی فایل Create.tt پیش فرض ASP.NET MVC جهت سازگار سازی آن با Twitter bootstrap

در اینجا قصد داریم همان 8 مرحله مطلب «اعمال کلاس‌های ویژه اعتبارسنجی Twitter bootstrap به فرم‌های ASP.NET MVC» را به فایل Create.tt که اکنون در پوشه CodeTemplates\AddView\CSHTML\Create.tt ریشه پروژه جاری قرار دارد، اعمال کنیم.
الف) ابتدا نام این فایل را به CreateBootstrapForm.tt تغییر می‌دهیم. از این لحاظ که این نام جدید در drop down مرتبط با scaffold template صفحه Add view ظاهر خواهد شد. به علاوه نیازی نیست تا این فایل tt در همان لحظه اجرا شود، بنابراین به خواص آن در VS.NET مراجعه کرده و مقدار گزینه custom tool آن‌را خالی می‌کنیم (مانند سایر فایل‌های tt اضافه شده).
ب) قسمت ابتدایی فایل CreateBootstrapForm.tt را که همان کپی مطابق اصل فایل Create.tt است، به نحو ذیل تغییر می‌دهیم:
<#
    if (!mvcHost.IsContentPage) {
#>
<script src="~/Scripts/jquery-1.9.1.min.js"></script>
<script src="~/Scripts/jquery.validate.min.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>

<#
    }
}
#>
@using (Html.BeginForm()) {
    @Html.ValidationSummary(true, null, new { @class = "alert alert-error alert-block" })

    <fieldset class="form-horizontal">
        <legend><#= mvcHost.ViewDataType.Name #></legend>

<#
foreach (ModelProperty property in GetModelProperties(mvcHost.ViewDataType)) {
    if (!property.IsPrimaryKey && !property.IsReadOnly && property.Scaffold) {
#>
        <div class="control-group">
<#
        if (property.IsForeignKey) {
#>
            @Html.LabelFor(model => model.<#= property.Name #>, "<#= property.AssociationName #>",new {@class="control-label"})
<#
        } else {
#>
            @Html.LabelFor(model => model.<#= property.Name #>,new {@class="control-label"})
<#
        }
#>
        
           <div class="controls">
<#
        if (property.IsForeignKey) {
#>
            @Html.DropDownList("<#= property.Name #>", String.Empty)
<#
        } else {
#>
            @Html.EditorFor(model => model.<#= property.Name #>)
<#
        }
#>
            @Html.ValidationMessageFor(model => model.<#= property.Name #>,null,new{@class="help-inline"})
</div>
        </div>

<#
    }
}
#>
<div class="form-actions">
            <button type="submit" class="btn btn-primary">ارسال</button>
            <button class="btn">لغو</button>
          </div>
    </fieldset>
}

<div>
    @Html.ActionLink("Back to List", "Index")
</div>
<#
if(mvcHost.IsContentPage && mvcHost.ReferenceScriptLibraries) {
#>

@section JavaScript {    

}
که حاصل آن به صورت ذیل قابل استفاده و دسترسی خواهد بود:


دریافت فایل CreateBootstrapForm.tt اصلاح شده:
همانطور که عنوان شد، برای استفاده از آن فقط کافی است آن‌را در مسیر CodeTemplates\AddView\CSHTML\CreateBootstrapForm.tt ریشه پروژه جاری خود کپی کنید.
بازخوردهای دوره
مثال - نمایش درصد پیشرفت عملیات توسط SignalR
در این صورت آیا نوع پروژه حتما باید WebApi انتخاب بشه؟
چون وقتی پروژه از نوع MVC هست فایل WebApiConfig.cs  وجود ندارد. با افزودن دستی این کلاس و افزودن سیستم مسیر یابی به شکلی که گفتید .نتیجه ای نداشت.
در فایل Global هم این مورد ذکر شده افزوده شد ولی باز هم مسیر api شناسایی نشد.
ولی وقتی که پروژه به صورت webapi انتخاب بشه به درستی عمل می‌کنه.
اشتراک‌ها
نکته‌هایی درباره‌ی Redirect یا تغییر مسیر صفحات وب

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

تغییر مسیر یا Redirect از روش‌های مختلفی امکان‌پذیر است. در این نوشته به تغییر مسیر از طریق سرآمد پاسخ( header ) می‌پردازیم و از روش‌های موجود در HTML و JavaScript چشم‌پوشی می‌کنیم. 
نکته‌هایی درباره‌ی Redirect یا تغییر مسیر صفحات وب
نظرات مطالب
آپلود فایل‌ها توسط برنامه‌های React به یک سرور ASP.NET Core به همراه نمایش درصد پیشرفت
- مسیر نهایی تصویر را مطلق وارد کنید. مسیر مطلق https://localhost:5001/uploads/name.png که توسط برنامه‌ی ASP.NET Core مدیریت می‌شود، در یک مرورگر و یا هر برنامه‌ی دیگری، مستقل از برنامه‌ی React شما قابل دسترسی و نمایش است.
- برای آزمایش برنامه می‌توانید برنامه‌ی React و برنامه‌ی ASP.NET Core را بر روی یک پورت هم اجرا کنید (اگر می‌خواهید مسیرها را نسبی وارد کنید). اطلاعات بیشتر
نظرات مطالب
ایجاد پروژه‌ی «کتابخانه» توسط Angular CLI 6.0
این تنظیم بر روی import کتابخانه‌ها تاثیری ندارد و نباید داشته باشد. باید به یک کتابخانه همانند بسته‌های npm نگاه کنید که import آن‌ها وابسته به مسیرهای پروژه‌ی استفاده کننده‌ی از آن نیست و کاملا مستقل از آن است. در اینجا جهت سهولت کار « .... قسمت paths آن نیز به صورت خودکار ویرایش شده‌است ...» تا مسیر کتابخانه را بتوانید همانند سطر سوم تصویری که ارسال شد، تعیین کنید (این مسیر نسبی نیست) و اگر شناسایی نمی‌شود، تنظیم compilerOptions مربوط به paths را که در متن جاری ذکر شده، بررسی کنید:

نظرات مطالب
حل مشکل ویژوال استودیو در سیستمهایی که از رزولوشن (DPI) بالا و مانیتور های 4K استفاده می کنند
مسیر program files در ویندوزهای جدید، یک مسیر محافظت شده‌است و برای اعمال تغییرات در آن نیاز به دسترسی ادمین دارید. یا برنامه را با دسترسی ادمین (run as admin) اجرا کنید و یا فایل exe را جای دیگری کپی کنید، تغییرات را اعمال کنید و بعد بر روی فایل موجود کپی کنید (که در اینجا ابتدا دسترسی مدیریتی را باید تائید کنید تا امکان کپی را پیدا کنید).
نظرات مطالب
ASP.NET MVC #5
- مسیر http://localhost/Home/List را باید دستی در مرورگر وارد کنید.
- همچنین امکان انتخاب action پیش فرض حین دیباگ نیز در VS.NET وجود دارد (در برگه‌ی خواص پروژه):

البته این تنظیم فقط در حالت دیباگ در VS.NET عمل می‌کند. تنظیم اصلی صفحه‌ی پیش فرض، همان default route برنامه است (مسیر پیش فرض صفحه‌ی ابتدایی در سرور).
نظرات مطالب
هدایت درخواست فایل‌های استاتیک در ASP.NET MVC به یک کنترلر
بدون اینکه تنظیمات قسمت مسیریابی رو انجام بدم این مسیر باز میشه:
http://localhost:1431/Export/api.pdf  
و در حالت پش فرض هم فایلهای موجود در فولدرهای Scripts و Content با تایپ مسیر آنها تو Url،همگی قابل دسترس هستند.

- تو درک این عبارت مشکل دارم.ممکنه کمی در این باره توضیح بدین:
 routes.IgnoreRoute( "{resource}.axd/{*pathInfo}" );
ممنون
نظرات مطالب
تهیه پردازنده‌های سفارشی برای افزونه XMLWorker کتابخانه iTextSharp
تمام این روش‌ها پشتیبانی می‌شوند. اگر src تصویر
1- مسیر لوکال هست، در مطلب مقدماتی استفاده از XMLWorker از کلاس ImageProvider تهیه شده استفاده کنید.
2- URL و مسیر وب است، خود iTextSharp به صورت خودکار آن‌را دانلود می‌کند.
3- base64 است، از راه حل مطلب جاری استفاده کنید.
از لحاظ سرعت کار، 3 سریعترین است؛ بعد 1 و در آخر 2.

نهایتا در هر سه حالت، عکس در فایل PDF مدفون می‌شود و نیازی به تنظیم خاصی ندارد.
نظرات مطالب
تعامل MATLAB (متلب) با دات نت - قسمت اول
نه دوست عزیز همونطور که گفتم ساختار متلب متفاوت هست.
منظور از Speak همون تابع است.
کافیست تابع فوق را در یک M فایل (کدها در متلب با پسوند ام فایل ذخیره می‌شوند) ذخیره کنید. سپس در داخل متلب مسیر اجرای کد را به مسیر M فایل تغییر دهید و سپس دستور رندر کردن رو که بالا گفته شد در Command Window اجرا کنید. متن فوق به تابع Speak ارجاع داده می‌شود.