تمام برنامههای وب، از دادهها استفاده میکنند و امکان ذخیره سازی، به اشتراک گذاری و بازیابی آنها حتی زمانیکه اتصال به شبکه برقرار نیست، بسیار حائز اهمیت است. به همین جهت مرورگرهای امروزی نیز به همراه قابلیتهایی هستند تا این امر را سادهتر کنند. این محل ذخیره سازی، درون مرورگر کاربر بوده و دسترسی به آن نیز بسیار سریع است. همچنین امکان دسترسی به آن در حالت آفلاین و بدون اتصال به شبکه نیز میسر است. البته باید دقت داشت که بسته به نوع ذخیره ...
یک برنامهی Angular، از گروهی از کامپوننتها تشکیل میشود؛ برای مثال یک کامپوننت App وجود دارد که آن نیز از تعدادی کامپوننت مختلف تشکیل میشود. ماژولها کار سازماندهی و بسته بندی این کامپوننتها را انجام میدهند و با بزرگتر شدن برنامه میتوان قسمتهای مختلف را در ماژولهای متفاوتی قرار داد. مزایای این روش به شرح زیر هستند:
- بهبود کپسوله سازی قسمتهای مختلف برنامه با بسته بندی آنها در ماژولهای متفاوت
- فراهم آوردن امکان ...
اعتبارسنجی مبتنی بر ویندوز، بر اساس قابلیتهای توکار ویندوز و اختیارات اعطا شدهی به کاربر وارد شدهی به آن، کار میکند. عموما محل استفادهی از آن، در اینترانت داخلی شرکتها است که بر اساس وارد شدن افراد به دومین و اکتیودایرکتوری آن، مجوز استفادهی از گروههای کاربری خاص و یا سطوح دسترسی خاصی را پیدا میکنند. میانافزار اعتبارسنجی ASP.NET Core، علاوه بر پشتیبانی از روشهای اعتبارسنجی مبتنی بر کوکیها و یا توکنها ، قابلیت استفادهی از ...
فرض کنید قصد داریم خاصیت htmlContent زیر را در قالب این کامپوننت نمایش دهیم: export class ShowHtmlComponent {
htmlContent = "Template <script>alert(\"Hello!\")</script> <b>Syntax</b>";
}
اگر از روش متداول binding استفاده شود: <h3>Binding innerHTML</h3>
<p>Bound value:</p>
<p>{{htmlContent}}</p>
چنین خروجی حاصل خواهد شد:
...
در مطلب « C# 7 - Tuple return types and deconstruction » با نوعهای جدید بازگشتی Tuple در C# 7.0 آشنا شدیم. در C# 7.1 تشخیص نام اعضای Tuple تعریف شده بهبود یافته و از این لحاظ شبیه به anonymous types شدهاست. مفهوم «Name Inference» یا «حدس زدن نامها» را با یک مثال بهتر میتوان توضیح داد. string name = "User 1";
int age = 20;
var personTuple = (name, age);
Console.WriteLine(personTuple.Item1); // User 1
Console.WriteLine(person ...
Literal چیزی است مانند null و در حقیقت یک واژهی کلیدیاست که دارای مقداری مشخص میباشد. واژه کلیدی default نیز مفهوم مشابهی را به همراه دارد. تا پیش از C# 7.1 برای دسترسی به مقدار پیشفرض value types به صورت ذیل عمل میشد: int a = default(int);
در اینجا مقدار پیشفرض نوعی که بین پرانتزها ذکر میشود، بازگشت داده خواهد شد. اگر int ذکر شود، صفر و اگر bool ذکر شود، مقدار fa ...
پس از فعالسازی C# 7.1 ، اولین ویژگی جدید C# 7.1، متدهای Main برنامههای کنسول (و همچنین WPF و WinForms) هستند که اینبار قابلیت تعریف async را نیز دارند.
نحوهی کار با متدهای async، در متدهای Main نگارشهای پیش از C# 7.1
برای کار با متدهای Async نیاز است از واژهی کلیدی await استفاده شود و با قید این واژه، ضروری است واژهی کلیدی async نیز به امضای متد دربرگیرندهی عملیات اضافه گردد؛ اما در نگارشهای پیشین زبان #C ...
C# 7.1 به همراه به روز رسانی سوم VS 2017 ارائه شدهاست و اگر در ابتدای کار سعی کنید برای مثال یکی از ویژگیهای جدید C# 7.1، مانند static async Task Main را توسط آن آزمایش کنید، خطای کامپایل برنامه را دریافت میکنید. علت اینجا است که این نگارش خاص حتما نیاز به تنظیمات ویژهای را جهت فعالسازی دارد.
فعالسازی کامپایلر C# 7.1 در VS 2017
ابتدا مسیر Visual Studio -> Build tab -> Advanced را طی کنید:
...
کلاینت جاوا اسکریپتی SignalR Core، بازنویسی کامل شدهاست و دیگر وابستگی به jQuery ندارد. این کلاینت از طریق npm توزیع میشود: npm install @aspnet/signalr-client --save
فایلهای آن نیز شامل فایلهای جاوا اسکریپتی مرتبط و همچنین Typings مورد استفادهی در TypeScript است که نمونهای از نحوهی استفاده از این Typings را در مطلب « کار با SignalR Core از طریق یک کلاینت Angular » مطالعه کردید.
بررسی محتوای پوشهی node_modules ...
نگارش AspNetCore.SignalR 1.0.0-alpha1-final چند روزی هست که منتشر شدهاست. در این مطلب قصد داریم یک برنامهی وب ASP.NET Core 2.0 را به همراه یک Hub ایجاد کرده و سپس این Hub را در یک کلاینت Angular (2+) مورد استفاده قرار دهیم.
پیشنیازها
برای دنبال کردن این مثال فرض بر این است که NET Core 2.0 SDK. و همچنین Angular CLI را نیز پیشتر نصب کردهاید. مابقی بحث توسط خط فرمان و ابزارهای dotnet cli و angular cli ادام ...