اشتراک‌ها
انتشار پیش از موعد NET Core 2.1.

.NET Core 2.1.0 (along with ASP.NET Core and Entity Framework Core) will be released around May 30th, but for folks who can't wait until then and would like to get their hands on the bits a little early, read on! 

انتشار پیش از موعد NET Core 2.1.
اشتراک‌ها
انتشار R Tools 1.0 برای Visual Studio 2015

This release will be shortly followed by R Tools 1.0 for Visual Studio 2017 in early May. RTVS is a free and open source plug-in that turns Visual Studio into a powerful and productive R development environment. 

انتشار R Tools 1.0 برای Visual Studio 2015
اشتراک‌ها
خلاصه برنامه‌های آتی NET Core.

We are actively monitoring the 1.0 release for issues to include in a first patch (1.0.1) release of the .NET Core SDK. There is no scheduled date for this patch update but early August is likely.  

خلاصه برنامه‌های آتی NET Core.
اشتراک‌ها
datagrip یک IDE جدید برای SQL

For a year and a half we ran an Early Access Program (EAP) for this product while it was still known as 0xDBE. At some point one needs to stop and draw the line 

datagrip یک IDE جدید برای SQL
اشتراک‌ها
درباره ConnectJs
All the great stuff from last year. JavaScript. Web. CSS. HTML5. Mobile. With more of all that, and new tracks on PHP and Rails. Early Bird registration & CFP now open!
درباره ConnectJs
اشتراک‌ها
ویژوال استدیو 14 CTP
this early build is focused on enabling feedback and testing from the Visual Studio community.  Visual Studio "14" will most likely be available sometime in 2015, with a more complete preview release and final naming available later this year.  
ویژوال استدیو 14 CTP
اشتراک‌ها
افزونه Funnel
Funnel  به معنی قیف
 برای مدیریت لود کردن پروژه‌ها در یک Solution بزرگ
با این افزونه میتوانید تعداد کمی پروژه که الان می‌خواهید بر روی آن کار کنید را فقط لود کنید ! مزیت در پروژه هایی با 20 تا پروژه کاملا مشهود می‌باشد
و موجب بالا رفتن سرعت لود و  کار  VSبا ویژوال استودیو خواهد شد  مخصوصا اگر معتاد RSharper  هم باشید
افزونه Funnel
نظرات مطالب
افزودن و اعتبارسنجی خودکار Anti-Forgery Tokens در برنامه‌های Angular مبتنی بر ASP.NET Core
یک چنین پیاده سازی خواهد داشت:
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web;
using System.Web.Helpers;
using System.Web.Http.Controllers;
using System.Web.Http.Filters;
using System.Web.Mvc;
using ActionFilterAttribute = System.Web.Http.Filters.ActionFilterAttribute;

namespace NgxAntiforgeryWebApi.Providers
{
    public class XsrfCookieGeneratorAttribute : ActionFilterAttribute
    {
        public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext)
        {
            var xsrfTokenCookie = new HttpCookie("XSRF-TOKEN")
            {
                Value = ComputeXsrfTokenValue(),
                HttpOnly = false // Now JavaScript is able to read the cookie
            };
            HttpContext.Current.Response.AppendCookie(xsrfTokenCookie);
        }

        private string ComputeXsrfTokenValue()
        {
            string cookieToken, formToken;
            AntiForgery.GetTokens(null, out cookieToken, out formToken);
            return $"{cookieToken}:{formToken}";
        }
    }

    public class XsrfTokensValidationAttribute : ActionFilterAttribute
    {
        public override void OnActionExecuting(HttpActionContext actionContext)
        {
            IEnumerable<string> headerValues;
            if (!actionContext.Request.Headers.TryGetValues("X-XSRF-TOKEN", out headerValues))
            {
                actionContext.Response = new HttpResponseMessage(HttpStatusCode.BadRequest) { ReasonPhrase = "X-XSRF-TOKEN header is missing." };
                return;
            }

            if (headerValues == null)
            {
                actionContext.Response = new HttpResponseMessage(HttpStatusCode.BadRequest) { ReasonPhrase = "X-XSRF-TOKEN header value is empty." };
                return;
            }

            var xsrfTokensValue = headerValues.FirstOrDefault();
            if (string.IsNullOrEmpty(xsrfTokensValue) || !xsrfTokensValue.Contains(":"))
            {
                actionContext.Response = new HttpResponseMessage(HttpStatusCode.BadRequest) { ReasonPhrase = "X-XSRF-TOKEN header value is null." };
                return;
            }

            var values = xsrfTokensValue.Split(':');
            if (values.Length != 2)
            {
                actionContext.Response = new HttpResponseMessage(HttpStatusCode.BadRequest) { ReasonPhrase = "X-XSRF-TOKEN header value is malformed." };
                return;
            }

            var cookieToken = values[0];
            var formToken = values[1];

            try
            {
                AntiForgery.Validate(cookieToken, formToken);
            }
            catch (HttpAntiForgeryException ex)
            {
                actionContext.Response = new HttpResponseMessage(HttpStatusCode.BadRequest) {  ReasonPhrase = ex.Message };
            }
        }
    }
}
XsrfCookieGeneratorAttribute کار تولید کوکی مخصوص Angular را انجام می‌دهد (می‌تواند به عنوان فیلتر سراسری معرفی شود و یا فقط یکبار پس از لاگین، کوکی آن‌را به روشی که عنوان شده، تولید کنید؛ بدون نیاز به تولید هرباره‌ی آن با هر درخواستی) و XsrfTokensValidationAttribute بجای ValidateAntiForgeryToken اصلی بکار خواهد رفت.
نظرات مطالب
چگونه پروژه‌های Angular ی سبکی داشته باشیم - قسمت اول
مشکلی اصلی که در اینجا وجود دارد این است که چرا کامپایلر فعلی Angular (یعنی تا نگارش 7 آن)، قادر نیست وابستگی‌هایی را که در برنامه ارجاعی به آن‌ها وجود ندارند، در بسته یا بسته‌های کامپایل شده‌ی نهایی لحاظ نکند؟ این مشکل قرار است در نگارش 8 آن با ارائه‌ی یک کامپایلر جدید به نام Ivy که مدت زیادی است مشغول به کار بر روی آن هستند، برطرف شود:
The cool thing about Ivy versus the older compilers, however, is that it’s “ tree-shaking friendly ,” which basically means that it automatically removes unused bits of code (including unused Angular features!), shrinking your bundles.