اشتراک‌ها
راهنمای نسبتا" کامل اعتبار بخشی به درخواستهای ارسالی به ASP.NET Core web API با استفاده از IdentityServer4 در سمت کلاینت

This is a guide on how to make requests to a protected resource using Client Credentials with the IdentityServer4.Contrib.HttpClientService nuget package. The library is actually an HttpClient service that makes it easy to make authenticated and resilient HTTP requests to .protected by IdentityServer4 resource

راهنمای نسبتا" کامل اعتبار بخشی به درخواستهای ارسالی به ASP.NET Core web API با استفاده از IdentityServer4 در سمت کلاینت
نظرات مطالب
ارسال پیام های تبلیغاتی به Telegram با استفاده از #C
چند نمونه دموی برنامه هایی که من دیدم از خود برنامه وایبر در دسکتاب استفاده  می‌کنند. به این صورت که، زدن کلیدهای روی برنامه سیموله شده. ولی در مورد تلگرام قضیه فرق میکنه خود شرکت از استفاده از API استقبال میکنه:

Using Telegram API
Our API is 100% open for all developers who wish to create Telegram applications on our platform
 Feel free to study the open source code of existing Telegram applications for examples of how things work here
اشتراک‌ها
نصب و پیکربندی Microsoft Team Foundation Server 2015
در کار تیمی بر روی پروژه‌های بزرگ ، نرم افزار‌هایی همچون Microsoft Team Foundation Server و ... باعث شده که خیلی از دغدغه‌های تیم‌های توسعه دهنده  نرم افزار برطرف شود . 

برای نصب و پیکربندی :
روش اول : اگر دسترسی به سرور ندارید ، مایکروسافت  برای توسعه دهندگان Net. ،  روی سرور‌های خود Microsoft Team Foundation Server را پیاده کرده است و در این روش ما به ویژوال استودیو  و به یک حساب کاربری مایکروسافت نیاز داریم و با مراجعه به سایت www.visualstudio.com وارد حساب کاربری مایکروسافت خود شده و بر روی Create Account کلیک کرده و اطلاعات مورد نیاز را وارد می‌کنیم .در مرحله بعد طبق تصویر زیر اطلاعات پروژه ای که قرار است توسعه داده شود را وارد می‌کنیم .

که وارد قسمت مدیریتی می‌شویم طبق تصویر زیر :

 در مرحله بعد با مراجعه به ویژوال استودیو پروژه خود را با ویژوال استودیو ایجاد می‌کنیم و پروژه خود را به Team Foundation Serve مایکروسافت متصل خواهیم کرد . با کلیک بر روی Team از منوی ویژوال استودیو Manage Connections را انتخاب کرده و طبق تصویر زیر اطلاعات در خواستی را وارد می‌کنیم و بر روی Connect کلیک می‌کنیم


در مرحله بعد بر روی Solution پروژه راست کلیک کرده و Add Solution to Source Control را انتخاب میکنیم و با مشاهده پنجره Add Solution to Source Control بر روی ok کلیک کرده و با مراجعه به Solution Explorer پروژه مشاهده می‌کنیم که علامت + سبز رنگ در کنار Item‌های پروژه مشاهد می‌شود و این نشان دهنده این می‌باشد که پروژه ما  هنوز به Team Foundation Server مایکروسافت   منتقل نشده است . و برای انتقال بر روی Solution  پروژه راست کلیلک کرده و ..Check In را انتخاب می‌کنیم و در قسمت Comment می‌توانیم توضیحاتی را اضافه کرده و دوباره بر روی Check کلیک کرده و Item‌های پروژه ما منتقل سرور مایکروسافت می‌شود . 

روش دوم : 

در این روش ما نیاز به Windows Server 2012 R2  و  نرم افزار 2015 Microsoft Team Foundation Server  داریم و مراحل را در این روش طبق مقاله زیر جلو می‌بریم که می‌توانید به مراجعه به لینک زیر به مقاله دسترسی داشته باشید . 

Benday TFS 2015 Install guide v1.0

Team Foundation Server 2015 (TFS2015) Installation Guide

  
نصب و پیکربندی Microsoft Team Foundation Server 2015
اشتراک‌ها
6.Visual Studio 2019 version 16.7 منتشر شد
حجم تقریبا آپدیت از نسخه قبلی (16.7.5) حدود 1.47G میشه.
6.Visual Studio 2019 version 16.7 منتشر شد
اشتراک‌ها
Visual Studio 2017 version 15.3.2 منتشر شد

These are the customer-reported issues addressed in this version:

Visual Studio crashes when you open a solution with a test project.
Visual Studio Freezes in Debug with Chrome.
Failure to install HelpViewer.
UI delay while typing R code.
C# 7.0 Regression in Tuples.
Xamarin - Dynamic Type Platform not supported exception.
Xamarin – Dynamic object is not supported.
Xamarin - Xamarin.iOS: ArgumentNullException for instruction parameter in Mono.Linker's MarkException() method.

Visual Studio 2017 version 15.3.2 منتشر شد
مطالب
آموزش زبان Rust - قسمت 6 - Fuctions
توابع یکی از اجزای اساسی برنامه نویسی Rust هستند. آنها به شما این امکان را می‌دهند که یک بلوک کد را کپسوله کنید که می‌تواند بارها و بارها با ورودی‌های مختلفی فراخوانی شود. در اینجا یک مثال از یک تابع در Rust آمده‌است:
fn main() {
    println!("The sum of 2 and 3 is {}", sum(2, 3));
}

fn sum(a: i32, b: i32) -> i32 {
    a + b
}
در این مثال، تابعی را به نام sum تعریف می‌کنیم که دو آرگومان i32 را می‌گیرد و مجموع آنها را برمی گرداند. سپس تابع sum را با آرگومان‌های 2 و 3 فراخوانی می‌کنیم و نتیجه را با استفاده از println در کنسول چاپ می‌کنیم.

Function Declaration

توابع در Rust با استفاده از کلمه‌ی کلیدی fn و به دنبال آن نام تابع، پارامترها و نوع بازگشت (در صورت وجود) اعلام می‌شوند. در اینجا دستور کلی برای اعلان یک تابع در Rust آمده‌است:
fn function_name(parameter1: type1, parameter2: type2) -> return_type {
    // بدنه تابع
    // استفاده از مقادیر یارگشتی در صورت لزوم
}
در مثال بالا، تابع sum دو پارامتر، هر دو از نوع i32 را می‌گیرد و مقدار i32 را برمی گرداند.
 
Function Parameters
توابع در Rust می‌توانند صفر یا چند پارامتر را داشته باشند. پارامترها در امضای تابع، داخل پرانتز قرار گرفته و با کاما از هم جدا می‌شوند. در اینجا یک مثال، از یک تابع، با دو پارامتر آورده شده‌است:
fn greet(name: &str, age: i32) {
    println!("Hello, {}! You are {} years old.", name, age);
}
در این مثال، تابع greet دو پارامتر دارد: a &str (اشاره به یک رشته) و i32 (یک عدد صحیح). در داخل بدنه تابع، از مقادیر پارامترها برای چاپ پیام تبریک استفاده می‌کنیم.

Function Return Values
توابع در Rust می‌توانند با استفاده از کلمه‌ی کلیدی return و سپس مقدار بازگشتی، مقداری را برگردانند. یک مثال:
fn square(x: i32) -> i32 {
    return x * x;
}
در این مثال، تابع square، آرگومان i32 را می‌گیرد و square آن آرگومان را برمی‌گرداند. برای برگرداندن نتیجه، از کلمه کلیدی بازگشت استفاده می‌کنیم.
با این حال، Rust یک سینتکس مختصر را نیز برای برگرداندن مقادیر، از توابع دارد که در آن می‌توانید کلمه‌ی کلیدی return را حذف کنید و به سادگی مقداری را که باید در انتهای بدنه‌ی تابع برگردانده شود، مشخص کنید. در اینجا همان مثال، با استفاده از سینتکس کوتاه آمده‌است:
fn square(x: i32) -> i32 {
    x * x
}
در این مثال، کلمه‌ی کلیدی return را حذف کرده‌ایم و به‌سادگی مقداری را که باید به عنوان آخرین خط بدنه تابع برگردانده شود، مشخص کرده‌ایم.

Functions with Multiple Return Values
Rust همچنین از توابعی با مقادیر بازگشتی چندگانه پشتیبانی می‌کند که به آنها 'tuples' نیز می‌گویند. یک مثال:
fn swap(a: i32, b: i32) -> (i32, i32) {
    (b, a)
}
این تابع دو پارامتر i32 را می‌گیرد و یک tuple  از همان نوع را برمی‌گرداند. tuple، شامل دو مقدار ورودی مبادله شده‌است.
برای استفاده از مقادیر بازگشتی یک تابع tuple، می‌توانید tuple  را destructure کنید یا از عملگر '.' برای دسترسی به عناصر آن استفاده کنید. در این مثال هر دو روش وجود دارند: 
let (b, a) = swap(1, 2);
println!("a is {} and b is {}", a, b);

let tuple = swap(1, 2);
println!("a is {} and b is {}", tuple.1, tuple.0);
روش اول تاپل را مستقیماً به متغیرهای a و b تجزیه می‌کند؛ در حالیکه روش دوم با استفاده از عملگر نقطه، به داده‌ها دسترسی پیدا میکند.
نظرات مطالب
React 16x - قسمت 4 - کامپوننت‌ها - بخش 1 - کار با عبارات JSX
جهت اطلاع : در آخرین ورژن  (v.17) دیگر نیازی به import وابستگی React نیست. 

 :For example
import React from 'react';

function App() {
  return <h1>Hello World</h1>;
}
will be replaced with 
function App() {
  return <h1>Hello World</h1>;
}



  
اشتراک‌ها
VSCode برای توسعه دهندگان سی‌شارپ

VSCode for the C# Developer - Tim Corey - NDC London 2023

VSCode is a nimble editor that can do just about anything. In this session, we will set up and configure VSCode for use in C# development. Then we will use it to build, debug, and deploy a small .NET Core web application to Azure.
Along the way, we will go over a list of the top C#-focused plugins for VSCode. Whether you are just getting started with VSCode or you are used to VSCode but want to start building C# projects, this session will get you up to speed fast. 

VSCode برای توسعه دهندگان سی‌شارپ