اشتراک‌ها
10 ویژگی Net Core. که باید بدانید

.Net Core is a lightweight and cross-platform version of the DotNet framework and the awesome thing is Developers required the same expertise to work with Asp.Net Core as .Net Framework. 

10 ویژگی Net Core. که باید بدانید
نظرات مطالب
امن سازی برنامه‌های ASP.NET Core توسط IdentityServer 4x - قسمت اول - نیاز به تامین کننده‌ی هویت مرکزی
بنابراین OpenID Connect پروتکلی است که در عمل استفاده می‌شود و توسعه دهنده و جایگزین کننده‌ی پروتکل OAuth 2.0 می‌باشد. هرچند ممکن است در بسیاری از منابع صرفا به OAuth 2.0 بپردازند، اما در پشت صحنه با همان OpenID Connect کار می‌کنند. 
یعنی کار Authorization رو پروتکل OpenID Connect انجام میده؟ پس OAuth 2.0 چه میشه؟
اشتراک‌ها
آموزش JavaScript Front-End Web App
Learn how to build a front-end web application in plain JavaScript with minimal effort. Do not use any (third-party) framework or library, such as jQuery or Angular, which create black-box dependencies and overhead, and prevent you from learning how to do it yourself.
آموزش JavaScript Front-End Web App
اشتراک‌ها
مجموعه‌ای از NET Core Static Analyzers.

Awesome collection of .NET Core Static Analyzers using the .NET Compiler Platform (Roslyn). A sample project along with Cake Script for Continuous integration is also included in this repository with some of Analyzers added through Nugget. 

مجموعه‌ای از NET Core Static Analyzers.
اشتراک‌ها
انتشار ویژوال استدیو ۲۰۲۲ نگارش 17.5

For .NET and cloud developers, we’ve focused on improving the inner-loop dev experience. New .http/.rest files make it easier to test and iterate on your APIs directly in Visual Studio, while improved Dev Tunnels help streamline the configuration and management of your webhooks. We’ve also made it easier than ever to deploy your ASP.NET apps to containers.

Game developers can now view properties from base classes modified in an Unreal Blueprint asset without leaving the IDE. Visual Studio has improved the cross-platform development experience with a new remote file explorer, Linux Console output to the Integrated Terminal window, dev container improvements, and more.

Beyond individuals, Visual Studio also has new features to better support dev teams at scale, with exportable configuration files and a persistent update toggle helping ensure everyone on your team is working from the latest version of the tool.

This blog covers several of the top new features in Visual Studio 17.5—to see some in action, watch the Visual Studio 17.5 release video. As always lot of these features come straight from your feedback and suggestions. Your feedback is critical to help us make Visual Studio the best tool it can be! 

انتشار ویژوال استدیو ۲۰۲۲ نگارش 17.5
مطالب
اجزاء معماری سیستم عامل اندروید (قسمت دوم رمزنگاری اندروید) :: بخش ششم
ذخیره داده‌ها در اندروید
اندروید برنامه‌های کاربردی را در زمینه‌ی (context) امنیت جداگانه‌ای اجرا و برای اجرای آنها زمینه‌های خاصی را در سیستم عامل تعیین تکلیف می‌کند و این برای ما کاملا شفاف است که در این سیستم عامل بزرگ و گسترده چه تدابیری ارائه شده است. این بدان معنا است که هر برنامه با UID و GID خود اجرا خواهد شد. برای مثال زمانیکه در یک برنامه اطلاعاتی را می‌نویسید، برنامه‌های دیگر قادر نخواهند بود آن داده‌ها را بخوانند.
اگر می‌خواهید اطلاعاتی را بین برنامه‌ها به اشتراک بگذارید، پس باید به صراحت این اشتراک گذاری را با استفاده از یک تامین‌کننده محتوا به اشتراک بگذارید تا امنیت قابل توجهی بین آنها ایجاد شود. اندروید به شما اجازه می‌دهد تا داده‌ها را با استفاده از پنج گزینه مختلف ذخیره کنید. این شما هستید که باید تصمیم بگیرید که چگونه داده‌های خاص خود را براساس الزامات پروژه ذخیره کنید. به تصویر زیر دقت کنید:
در این تصویر اطلاعات کاملی از مکانیزم ذخیره سازی داده‌ها در پلتفرم اندروید مشاهده می‌کنید.


ما می‌توانیم داده‌های خود را در یک بانک از نوع SQLite در نظر بگیریم. پایگاه‌داده به این دلیل، ما را از تصمیم غیرضروری برای اجرای ساختار بی نظم داده‌ها بی‌نیاز می‌کند. بیایید به یک مثال از نحوه ذخیره و بازیابی داده‌ها با استفاده از یکی از این مکانیزم‌ها نگاه کنیم.

Shared Preferences یا اولویت‌های اشتراکی

اولویت‌های مشترک عمدتا برای ذخیره‌سازی تنظیمات برنامه‌ها مفید هستند و تا زمانی که راه‌اندازی مجدد توسط دستگاه انجام شود، معتبر خواهد بود. بیایید بگوییم که باید اطلاعات مربوط به یک سرور ایمیل را ذخیره کنیم که برنامه ما برای بازیابی داده‌ها به آن نیاز دارد.

ما باید نام میزبان ایمیل (hostname) , درگاه (port) و کارگزاری که از SSL استفاده می‌کند را ذخیره کنیم. کلاس زیر این کار را برای ما انجام میدهد به قطعه کد زیر توجه نمایید:

package net.zenconsult.android;
import java.util.Hashtable;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.preference.PreferenceManager;
public class StoreData {
 public static boolean storeData(Hashtable data, Context ctx) {
  SharedPreferences prefs = PreferenceManager
   .getDefaultSharedPreferences(ctx);
  String hostname = (String) data.get("hostname");
  int port = (Integer) data.get("port");
  boolean useSSL = (Boolean) data.get("ssl");
  Editor ed = prefs.edit();
  ed.putString("hostname", hostname);
  ed.putInt("port", port);
  ed.putBoolean("ssl", useSSL);
  return ed.commit();
 }
}
و بازیابی داده‌ها از طریق کلاس زیر میسر می‌شود
package net.zenconsult.android;
import java.util.Hashtable;
import android.content.Context;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
public class RetrieveData {
 public static Hashtable get(Context ctx) {
  String hostname = "hostname";
  String port = "port";
  String ssl = "ssl";
  Hashtable data = new Hashtable();
  SharedPreferences prefs = PreferenceManager
   .getDefaultSharedPreferences(ctx);
  data.put(hostname, prefs.getString(hostname, null));
  data.put(port, prefs.getInt(port, 0));
  data.put(ssl, prefs.getBoolean(ssl, true));
  return data;
 }
}
کلاس main برای ذخیره داده‌ها بدین صورت نوشته خواهد شد
package net.zenconsult.android;
import java.util.Hashtable;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.util.Log;
import android.widget.EditText;
public class StorageExample1Activity extends Activity {
 /** Called when the activity is first created. */
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  Context cntxt = getApplicationContext();
  Hashtable data = new Hashtable();
  data.put("hostname", "smtp.gmail.com");
  data.put("port", 587);
  data.put("ssl", true);
  if (StoreData.storeData(data, cntxt))
   Log.i("SE", "Successfully wrote data");
  else
   Log.e("SE", "Failed to write data to Shared Prefs");
  EditText ed = (EditText) findViewById(R.id.editText1);
  ed.setText(RetrieveData.get(cntxt).toString());
 }
}
با توجه به مثال فوق، خروجی ما در انتها به صورت زیر خواهد بود که تصویر زیر توضیحات بالا را پوشش می‌دهد.


اشتراک‌ها
سری ویدیوهای NET Conf 2023.

.NET Conf 2023
.NET Conf 2023 is the largest .NET event hosted online! Co-organized by the .NET community and Microsoft and backed by the support of the .NET Foundation and ecosystem partners, it's your ticket to learning and finding inspiration for your upcoming software projects. Dive into the world of web, mobile, cloud, desktop, gaming, IoT, AI, and beyond, all powered by .NET. Whether you're just starting your coding journey or you're a seasoned pro, these sessions are tailored for everyone. Be prepared for presentations covering the exciting new features of .NET 8, C# 12, Azure, Visual Studio, and so much more. Tune in to learn about the fastest release of .NET yet!
 

سری ویدیوهای NET Conf 2023.
نظرات مطالب
امکان استفاده از کتابخانه‌های native در Blazor WASM 6x
مقاله فوق‌العاده ای بود، ممنون از شما
نقش Emscripten این وسط خیلی پر رنگ هست، چون نه تنها کد C و... رو کامپایل به Web Assembly می‌کنه، بلکه در ادامه هم مثلا اگه قراره فایل db مربوط به sqlite جایی ذخیره بشه، برای مثال تعیین می‌کنه که تو قسمت blob storage موجود در indexed db قرار بگیره، چون فرض مثال مرورگر که نمی‌تونه فایل db رو ذخیره کنه تو درایو C برای مثال! در واقع کد مربوطه رو سازگار با دنیای Browser کامپایل می‌کنه