نظرات مطالب
ارتقاء به ASP.NET Core 1.0 - قسمت 15 - بررسی تغییرات Caching
نکته‌ای در مورد کش کردن فایل‌های استاتیک در ASP.NET Core
تمام مطالب فوق در مورد کش کردن خروجی اطلاعات پویا هستند. در مورد فایل‌های ایستا می‌توان از میان افزار static files به نحو ذیل استفاده کرد:
app.UseStaticFiles(new StaticFileOptions() 
{ 
    OnPrepareResponse = context => 
    { 
        context.Context.Response.Headers["Cache-Control"] =  
                "private, max-age=43200"; 
 
        context.Context.Response.Headers["Expires"] =  
                DateTime.UtcNow.AddHours(12).ToString("R"); 
    } 
});
در اینجا نحوه‌ی افزودن هدرهای مخصوص caching را به فایل‌های استاتیک ارائه‌ی شده‌ی توسط برنامه به کمک StaticFileResponseContext مشاهده می‌کنید.
نظرات مطالب
مبانی TypeScript؛ تنظیمات TypeScript در ویژوال استودیو
یک نکته‌ی تکمیلی در مورد VS 2015
- کامپایل خودکار پس از ذخیره‌ی یک فایل ts، به این صورت فعال می‌شود (افزودن فایل tsconfig.json به ریشه‌ی سایت):
{
    "compileOnSave": true,
    "compilerOptions": {
     },
    "exclude": [
    ]
}
و پس از آن باید یکبار VS.NET را بسته و مجددا اجرا کنید.
محل گزینه‌ی compileOnSave، داخل compilerOptions نیست و خارج از آن است.
- همچنین نکته‌ی حذف نگارش 1 را از مسیر C:\Program Files (x86)\Microsoft SDKs\TypeScript فراموش نکنید (در صورت وجود).
نظرات مطالب
کنترل DatePicker شمسی مخصوص Silverlight 4
سلام، ظاهراً issue tracker پروژه در codeplex مشکل داره، مجبور شدم اینجا سوالم رو مطرح کنم(ببخشید):
DLL مربوط در پروژه اضافه شده و به خوبی کار میکند، منتها وقتی می‌خوام از کلاس PersianCalendar استفاده کنم در زمان build پروژه خطای زیر رو دریافت میکنم:
Error143The type 'System.Globalization.PersianCalendar' exists in both 'c:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\Silverlight\v5.0\mscorlib.dll' and '....\SilverlightPersianDatePicker.dll'
برای رفع این تداخل چه پیشنهادی میدهید؟
ممنون از شما
نظرات مطالب
Url Routing در ASP.Net WebForms
مرجع رسمی مسیریابی در وب فرم‌ها عنوان می‌کنه که URL routing allows you to configure an application to accept request URLs that do not map to physical files. یعنی چون آدرس شما الان پسوند پیدا کرده، دیگه وارد سیستم مسیریابی نمیشه و به صورت یک فایل فیزیکی پردازش میشه. یعنی در مسیر و پوشه‌ای شبیه به آدرسی که نوشتید به دنبال اون فایل می‌گرده (که نیست و به همین جهت خطای 404 رو دریافت می‌کنید). البته با تنظیم RouteTable.Routes.RouteExistingFiles = true امکان تغییر این پیش فرض هست. در این حالت درخواست تمام فایل‌های فیزیکی وارد سیستم مسیریابی میشن. البته در این مورد خاص باید یک IRouteHandler بنویسید تا این درخواست فایل رسیده رو پردازش کنه.
نظرات مطالب
آموزش TypeScript #2
سلام من زمانی که فایل پروژه رو ویرایش کردم به این مشکل برخوردم . امکانش هست بگید مشکل از کجاست :
Error 1 The command ""C:\Program Files (x86)\Microsoft SDKs\TypeScript\0.8.0.0\tsc" -target ES5 " exited with code 3. c:\users\IT\documents\visual studio 2012\Projects\MvcApplication6\MvcApplication6\MvcApplication6.csproj 259 5 MvcApplication6
 
نظرات مطالب
AngularJS #1
These files are parsed by our docs parser (nodejs script), source can be found here:
https://github.com/angular/angular.js/tree/master/docs/src
It is combined together with docs parsed from the source and result is html, served at docs.angularjs.org
ماخذ
نظرات مطالب
استفاده یکپارچه از NUnit در VS.NET بدون نیاز به افزونه‌ها
با عرض سلام و تشکر از وب سایت پر محتواتون.
اونچه رو که در بالا فرموده بودین رو بنده آزمایش کردم ولی متاسفانه به هنگام build کردن پروژه با خطای زیر روبرو می‌شوم :
Error1The command "c:\program files\nunit 2.6.2\bin\nunit.exe C:\Users\Ali\documents\visual studio 2010\Projects\NUnitExample\NUnitExample.UnitTests\bin\Debug\NUnitExample.UnitTests.dll /run" exited with code 9009.NUnitExample.UnitTests
 ممنون می‌شوم راهنماییم کنید.
نظرات مطالب
فعال سازی قسمت ارسال فایل و تصویر ویرایشگر آنلاین RedActor در ASP.NET MVC
با تشکر فراوان از لطفتون. همچنین یک راهنمای جالب برای این سایت اینجاست. دوستانی که میخوان کمی تغییرات در این ادیتور بدن مثلا زبان فارسی اضافه کنن یا یک سری امکانات این چنینی حتما آدرس زیر رو ببین. چیز‌های جالبی داخلش هست.
http://imperavi.com/redactor/docs/ 
همچنین داخل این راهنما خروجی هم دقیقا آئرده شده که من بعد از سوال پیدا کردم. خروجی برای image باید به شکل زیر باشه
{ "filelink": "/images/img.jpg" }
و برای فایل هم به شکل زیر باشه
{ "filelink": "/files/file.doc", "filename": "Filename" }
چیزی که خیلی وقت من رو گرفت اون اسلش قبل نام فایل بود که نمیزاشتم و خروجی مد نظر رو بم نمیداد. دوستان این قضیه رو حتما مد نظر داشته باشن تا مثل من وقتشون زیاد گرفته نشه :)
نظرات مطالب
T4MVC : یکی از الزامات مدیریت پروژه‌های ASP.NET MVC
اگر علاقمند هستید که اخبار آن‌را دنبال کنید نیاز است سورس کنترل آن‌را مرور کنید:
http://t4mvc.codeplex.com/SourceControl/list/changesets
24cc121c697f, by Michael Swain, Oct 22 8:39 PM

XmlSettings Patch

Patch to modify T4MVC to use an XML settings file instead of a static
include. This allows for future compatability as long as setting types
do not change.
نام جدید آن T4MVC.tt.settings.xml شده.
+ این فایل به همراه بسته NuGet آن نیست و باید از سورس کنترل دریافت شود (داخل پوشه T4MVCHostMvcApp\T4MVC Files).
مطالب
کنترل عمومی فایل‌های آپلودی در ASP.NET MVC
در مطلب «محدود کردن کاربر‌ها به آپلود فایل‌هایی خاص در ASP.NET MVC» تصمیم گیری بر اساس یک لیست سفید صورت می‌گیرد. برای مثال کاربران فقط قرار است تصویرهایی از نوع png یا jpg را ارسال کنند. اکنون نیاز است حالت کلی‌تری را درنظر بگیریم که کاربر قرار است هر نوع فایل دلخواهی را ارسال کند. در اینجا نباید امکان آپلود هر نوع فایلی، خصوصا فایل‌های اجرایی ASP.NET یا هر نوع موتور اجرایی دیگری که ممکن است روی سرور نصب باشد (مثلا PHP)، وجود داشته باشد. برای این منظور فیلتر دیگری به نام AllowUploadSafeFiles طراحی شده است که سورس آن‌را در ذیل مشاهده می‌کنید:
using System;
using System.Linq;
using System.Collections.Generic;
using System.IO;
using System.Web.Mvc;

namespace SecurityModule
{
    [AttributeUsage(AttributeTargets.Method, AllowMultiple = false)]
    public sealed class AllowUploadSafeFilesAttribute : ActionFilterAttribute
    {
        static readonly IList<string> ExtToFilter = new List<string> { 
            ".aspx", ".asax", ".asp", ".ashx", ".asmx", ".axd", ".master", ".svc", ".php" ,        
            ".php3" , ".php4", ".ph3", ".ph4", ".php4", ".ph5", ".sphp", ".cfm", ".ps", ".stm",
            ".htaccess", ".htpasswd", ".php5", ".phtml", ".cgi", ".pl", ".plx", ".py", ".rb", ".sh", ".jsp",
            ".cshtml", ".vbhtml", ".swf" , ".xap", ".asptxt"
        };

        static readonly IList<string> NameToFilter = new List<string> { 
           "web.config" , "htaccess" , "htpasswd", "web~1.con"
        };

        static bool canUpload(string fileName)
        {
            if (string.IsNullOrWhiteSpace(fileName))
                return false;

            fileName = fileName.ToLowerInvariant();
            var name = Path.GetFileName(fileName);
            var ext = Path.GetExtension(fileName);

            if (string.IsNullOrWhiteSpace(name))
                throw new InvalidOperationException("Uploaded file should have a name.");

            return !ExtToFilter.Contains(ext) &&
                   !NameToFilter.Contains(name) &&
                   !NameToFilter.Contains(ext) &&
                   //for "file.asp;.jpg" files
                   ExtToFilter.All(item => !name.Contains(item));
        }

        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            var files = filterContext.HttpContext.Request.Files;
            foreach (string file in files)
            {
                var postedFile = files[file];
                if (postedFile == null || postedFile.ContentLength == 0) continue;

                if (!canUpload(postedFile.FileName))
                    throw new InvalidOperationException(string.Format("You are not allowed to upload {0} file.", Path.GetFileName(postedFile.FileName)));
            }

            base.OnActionExecuting(filterContext);
        }
    }
}
در این فیلتر، یک سری پسوند خطرناک مانند aspx، asp و امثال آن فیلتر می‌شوند و اجازه آپلود نخواهند یافت. همچنین فایل‌هایی مانند web.config یا نام داسی آن معادل web~1.con نیز فرصت آپلود نخواهد یافت.
استفاده از این فیلتر سفارشی به نحو زیر است:
[AllowUploadSafeFiles]
public ActionResult UploadFile(HttpPostedFileBase file)