DotNet | دات نت
1.12K subscribers
663 photos
229 videos
484 files
705 links
تو این روزا بهتره که همیشه علم خودمون رو بالا ببریم و بتونیم با سریع ترین راه ممکن خودمونو بروز نگه داریم.
- سعی کنیم از کمترین امکانات بیشترین بهره رو ببریم
منتظرت هستیم😉
دنیا رو جای بهتری برای یادگیری کنیم 🌹
#course #book


🆔 @dotnetcode
Download Telegram
♨️اپل فیس آی‌دی را به دنیای مک می‌آورد
چندین سالی می‌شود که اپل فیس آی‌دی را جایگزین تاچ آی‌دی در آیفون‌های خود کرده و آپید پرو نیز به این فناوری مجهز شده است. حالا ظاهرا باید منتظر ورود آن به دنیای مک باشیم.
در حال حاضر مک بوک خود را می‌توانید توسط پسورد یا تاچ آی‌دی آنلاک کنید، اما اخیرا 9to5Mac به کدی در نسخه بتای سیستم عامل مک او اس Big Sur دست پیدا کرده که نشان می‌دهد فیس آی‌دی احتمالا در آینده وارد کامپیوترهای اپل می‌شود.
به نظر می‌رسد کد موجود در این سیستم عامل به اسم رمز اپل برای دوربین TrueDepth اشاره دارد. این دوربین باعث می‌شود کاربران به فیس آی‌دی در محصولاتی مانند گوشی‌های سری آیفون ۱۱ و آیپد پرو دست پیدا کند، البته مک‌های کنونی و همچنین نسل جدید آیفون SE از چنین قابلیتی محروم هستند. در این کد عبارت‌های «FaceDetect» و «BioCapture» نیز به چشم می‌خورند که از تشخیص چهره بیومتریک خبر می‌دهد.
در صورتی که فناوری تشخیص چهره به دنیای مک‌ راه پیدا کند، می‌توان با استفاده از آن قفل دستگاه را باز کرد و نرم افزارهای واقعیت افزوده از چهره کاربر یک نقشه تهیه می‌کنند. فیس آی‌دی در مک بوک‌ها می‌تواند کاربرد زیادی داشته باشد، مخصوصا اگر از نسخه جدید سافاری استفاده کنید.
https://dgto.ir/1rya
از یک فستفود در فاصله ی 10 کیلومتری پیتزا سفارش میدهید. اگر پیتزا از قبل آماده ارسال باشد و پیک هم با سرعت 100 کیلومتر بر ساعت حرکت کند حداقل 6 دقیقه طول میکشد تا پیتزا به دست شما برسد و 12 دقیقه طول میکشد تا فستفود از تحویل باخبر شود.

تاخیر یا Latency : مدت زمانی که طول میکشد داده از نقطه ی A به B برسد Latency گفته میشود. از آنجا که فاصله همیشه وجود دارد تاخیر اجتناب ناپذیز است.

پهنای باند یا Bandwidth: پیک هربار فقط می تواند 5 پیتزا با خود حمل کند. اگر شما 20 پیتزا سفارش دهید باید 4 بار رفت و آمد کند.

در سال 1996 آقای Stuart Cheshire مقاله ای منتشر کرد با عنوان "Its latency stupid" و در آن مشکل شبکه های اینترنتی را Latency دانست و نه پهنای باند. همیشه میشود پهنای باند را افزایش داده اما نمی توان تاخیر زمانی بین دو نقطه را از بین برد.حتی اگر داده با سرعت نور حرکت کند همیشه تاخیر وجود دارد.

مشکل Latency چالش اصلی سرویس های Real-time مانند بازیهای آنلاین است. برای کاهش آن میتوان از سروری که در موقعیت فیزیکی نزدیک تری دارد استفاده کرد.
قابلیت Nearby Share گوگل از مرداد در دسترس کاربران اندروید قرار می‌گیرد
قابلیت Nearby Share گوگل مشابه ایر دراپ در آی او اس، به کاربران اجازه به اشتراک گذاری فایل‌ها میان دو گوشی اندرویدی را می‌دهد و حالا تاریخ عرضه احتمالی آن مشخص شده است.
به نظر می‌رسد که گوگل در مراحل پایانی تست و بررسی قابلیت به اشتراک گذاری Nearby Share قرار دارد و فاصله چندانی با انتشار نسخه نهایی آن نداریم. منابع خبری مطلع از این ویژگی، ارتباطی با مقامات رسمی گوگل ندارند اما صحبت‌ها پیرامون این قابلیت به تازگی افزایش یافته و حالا ما بازه‌ی زمانی احتمالی که قرار است این ویژگی جدید در اختیار کاربران اندروید قرار بگیرد را می‌دانیم.
طبق این گزارش قرار است از شروع ماه آگوست یعنی از اواسط مرداد ماه، کاربرانی که دارای گوشی های اندروید ۶ و بالاتر هستند، قادر به استفاده از آن باشند و اضافه شدن پشتیبانی از این ویژگی از طریق یک آپدیت انجام می‌گیرد. پیش از این نیز در مراحل تست نسخه بتا‌ی قابلیت Nearby Share گوگل، حداقل ورژن سیستم عامل برای پشتیبانی از این قابلیت به همین شکل اعلام شده بود و این احتمال حقیقی بودن گزارش را بالاتر می‌برد.
مراحل تست نسخه بتا هنوز هم ادامه دارد و مدل‌هایی که از آن پشتیبانی می‌کنند، با دریافت یک نسخه بتا از سرویس‌های گوگل پلی می‌توانند آن را دریافت کنند. برخلاف دیگر ویژگی‌های سطح پایین اندروید که بخشی از خود سیستم عامل به شمار می‌روند، قابلیت Nearby Share گوگل بخشی از فریم ورک محسوب می‌شود و به همین دلیل منطقی خواهد بود که تمام کاربران اندروید ۶ و نسخه‌های بعدی این سیستم عامل به راحتی از طریق یک پکیج بروزرسانی درون فروشگاه گوگل پلی، بتوانند آن را دریافت کنند.
https://www.gsmarena.com/google_nearby_share_could_be_coming_to_most_android_users_starting_august-news-44338.php
هکرها اطلاعات ۷.۵ میلیون کاربر اپ بانکی دیجیتال «Dave» را در یک فروم عمومی منتشر کردند، اقدامی که باعث شده سازنده این برنامه، نقص امنیتی آن را تایید کند.
به گزارش ZDNet، این نقص امنیتی در حقیقت به شبکه شریک تجاری سابق آن، «Waydev» که یک پلتفرم تحلیلی مورد استفاده توسط تیم‌های مهندسی است، مربوط می‌شود. سخنگوی Dave اعلام کرده:
«به علت رخنه امنیتی در Waydev، یکی از تامین‌کنندگان خدمات شخص ثالث سابق Dave، هکرها به برخی اطلاعات کاربران به صورت غیرمجاز دسترسی پیدا کردند.»
به گفته این کمپانی، هم اکنون هکرها به شبکه دسترسی ندارند و به کاربران قربانی نیز اطلاع داده شده است. پسوردهای اپلیکیشن Dave پس از اینکه در معرض خطر قرار گرفتند، ریست شدند:
«هنگامی که متوجه چنین موضوعی شدیم، به سرعت تحقیق درباره آن را آغاز کردیم و هم اکنون این پرونده با هماهنگی مقامات قانونی شامل FBI در جریان است. هکرها توانسته‌اند به برخی پسوردها دست پیدا کنند و بدنبال فروش اطلاعات مشتریان هستند.»
هم اکنون اطلاعات کاربران اپ بانکی Dave به صورت رایگان در دسترس قرار دارند و می‌توان آن‌ها را دانلود کرد، البته باید ابتدا عضو این فروم شد. این دیتا شامل اطلاعاتی مانند نام واقعی، شماره تلفن، ایمیل، تاریخ تولد و آدرس خانه می‌شود و در برخی آن‌ها اطلاعات پرداخت و شماره تامین اجتماعی نیز به چشم می‌خورند که البته رمزگذاری شده‌اند.
https://www.zdnet.com/article/tech-unicorn-dave-admits-to-security-breach-impacting-7-5-million-users/
حرفه ای ترین سلوشن Logging در NETCore. با استفاده از Serilog و ElasticSearch و Kibana
#PerformanceTuning
کتابخانه های مختلفی برای لاگ کردن خطا ها در دات نت وجود داره، از جمله Elmah، NLog, Log4net و ...
کتابخانه Elmah بهترین انتخاب برای پروژه های کوچک و متوسطه، کار باهاش راحته و پنل ساده ای هم داره، ولی توی پروژه های بزرگ که تعداد لاگ ها خیلی زیاد میشه، دیگه Elmah جوابگو نیست، هم به خاطر سرعت کمش نسبت به بقیه کتابخانه ها و هم به خاطر پنل ضعیف اش که حتی یه سرچ هم نداره
در این شرایط راه های مختلفی هست مثل استفاده از سرویس های نگهداری لاگ Cloud-based مثل setrny.io , elmah.io و ...
راه حل بعدی استفاده از برنامه های مدیریت لاگ مثل Seq هستند که بر خلاف مورد قبلی، یک سرویس خارجی نیست و روی سرور خودتون لاگ ها رو نگهداری میکنه و داشبورد قدرتمندی برای سرچ و کوئری گرفتن در اختیارتون میذاره (ولی پولیه)

🔰 راه حل حرفه ای تر و البته رایگان، استفاده از Serilog و ElasticSearch و Kibana هست

🔸دیتابیس
ElasticSearch در واقع یک دیتابیس NoSql و یک Search Engine (موتور جستجو) سورس باز و فوق سریع (بر پایه Lucene) هست که قابلیت جستجو و کوئری زدن زدن (به صورت full text search) با سرعت و قدرت بالا رو داره از اون برای نگهداری لاگ ها استفاده خواهیم کرد

🔹پنل Kibana هم یه پلاگین داشبور سورس باز و قدرتمند با امکانات زیاد برای نمایش اطلاعات دیتابیس Elastic هست و از اون برای نمایش خطا ها و جستجو کردن و نمودار گرفتن استفاده می کنیم

🔸 کتابخانه Serilog هم میشه گفت بهترین کتابخانه Logging هست. نسبت به NLog جدید تره و طراحی مدرن تری داره و میزان رشد محبوبیتش هم بیشتره؛ پس میشه گفت از NLog هم بهتره (البته خیلی اختلاف ندارند)
این کتابخونه قابلیت های زیادی داره که به لطف پلاگین های زیادی که برای Serilog وجود داره (اصطلاحا بهش میگن Sinks) براش فراهم شده و از لحاظ پرفرمنسی هم از NLog سریع تره.

🔹 تنها نکته مهم، استفاده از روش Structred Logging نسبت به حالت معمولی است. شاید فکر کنید دو دستور زیر هیچ تفاوتی نمیکنه!
logger.Debug("UserName is : Ali");
logger.Debug("UserName is : {username}", "Ali");

ولی عملکرد این دو یکسان نبوده و خط دوم که به صورت Structred هست اطلاعات را به صورت جداگانه ضبط و ثبت میکنه درنتیجه در کنار متن خطا، یک فیلد به نام username با مقدار Ali نیز ذخیره میکنه که کار جستجو و کوئری زدن رو راحت تر میکنه

مقالات آموزش این سلوشن :
https://bit.ly/2EAjpTh
https://bit.ly/2EBUYFc
https://bit.ly/2X7g1Xn
https://bit.ly/2Exvs3C
مخزن نمونه کد :
https://github.com/thecarlo/elastic-kibana-netcore-serilog

_____________
❇️ معرفی برترین کتابخانه های Task Scheduling (انجام کار های پس زمینه) در دات نت

برای این کار راه های مختلفی هست

1️⃣ کلاس Generic Host و BackgrounService :
در ساده ترین حالت توسط قابلیت های تو کار خود ASP Core میتونین اینکارو انجام بدین
https://www.dotnettips.info/post/2997
https://docs.microsoft.com/en-us/aspnet/core/fundamentals/host/hosted-services?view=aspnetcore-2.2

2️⃣ کتابخانه Coravel :
مزیت این کتابخانه اینه که DI رو به صورت داخلی ساپورت میکنه (بر خلاف FluentScheduler) [گزینه مورد علاقه خودم - ساده و سبک ولی مدرن]
https://github.com/jamesmh/coravel
https://docs.coravel.net

3️⃣ کتابخانه FluentScheduler
https://github.com/fluentscheduler/FluentScheduler

4️⃣ کتابخانه Hangfire :
بهترین گزینه برای پروژه های بزرگ (خیلی حرفه ای و full-feature هست)
یک پنل داشبوری برای نمایش لیست کار های زمان بندی شده به همراه وضعیتشون بهتون میده که میتونین تسک ها رو غیر فعال کنین یا گزارش ازشون بگیرین و...
https://www.hangfire.io/
https://github.com/HangfireIO/Hangfire

5️⃣ کتابخانه DNTScheduler.Core :
نویسنده این کتابخانه وحید نصیری عزیز هستش
https://github.com/VahidN/DNTScheduler.Core
https://www.dotnettips.info/post/1736

6️⃣کتابخانه Quartz.Net :
این کتابخانه port شده از معادل جاواییش هست و code quality خوبی نداره و طراحیش هم مدرن نیست (کلا پیشنهاد نمیکنم تا گزینه های بهتری هست)
https://www.quartz-scheduler.net/
https://github.com/quartznet/quartznet

همه این کتابخانه ها از Cron پشتیبانی میکنن
در واقع Cron یه سینتکس دستوری واسه زمان بندی کار ها هست که قوائد خاص خودش رو داره (اسامی CronTab و CronJob هم از همین خانوادس)
مثلا برای اینکه یه تسک هر ۱۵ دقیقه یک بار انجام بشه، دستور Cron اش میشه
*/15 * * * *

توی سایت زیر که یک محیط تعاملی برای نوشتن دستور Cron هست میتونین با قوائد و مثال هاش بیشتر آشنا بشین
_____________
This media is not supported in your browser
VIEW IN TELEGRAM
🛑 آموزش دریافت 12PB فیلتر شکن 1.1.1.1 روی حجم WARP 🛑

لایسنس مورد نیاز :
2cP09J1j-Q491IO8o-z1W398kO
🔰 یک نکته پرفرمنسی درباره Logging

🔸استفاده از تامین کننده Console برای Logging در حین ارائه نهایی (Production) به شدت باعث کند شدن و کاهش کارآیی برنامه خواهد شد. بهتر است این تامین کننده را صرفا در محیط Development تنظیم کنید (مانند تصویر)

🔹اگر از WebHost.CreateDefaultBuilder استفاده می‌کنید، به صورت پیش‌فرض سه تامین کننده Console و Debug و EventSource ثبت خواهند شد پس لازم است ابتدا آن ها را توسط متد ClearProviders حذف کنید
#PerformanceTuning
_________
۱۲ نکته در مورد Debugging در ویژوال استودیو:

در این پست فرض بر این است که خواننده اصول اولیه دیباگ کردن با ویژوال استودیو را می داند.

در صورتی که تسلط کامل بر روی این ۱۲ نکته داشته باشید، می توانید با کیفیت بالایی کد های خود را دیباگ کنید.

مواردی که در این پست به آن پرداخته شده است:

1) Run to Cursor : Ctrl+F10

2) Run through here with a mouse click

3) Set next statement to here : holding the key Ctrl

4) Data breakpoint: Break when value changes

5) Conditional breakpoint

6) Trace breakpoint

7) Track Objects that Are Out-Of-Scope : Make Object ID

8) View values returned by functions :
Debug > Windows > Autos

9) Reattach To Process: Shift+Alt+P

10) No-Side-Effect evaluation in Immediate Window and in the Watch Window

11) Show Threads in Source

12) Debug source code decompiled from IL code

جزئیات کامل را می‌توانید در لینک زیر مطالعه کنید:

https://blog.ndepend.com/12-visual-studio-debugging-productivity-tips/

_
⚫️ مایکروسافت به دنبال تصاحب TikTok

به نظر می رسد سال 2020 سال اتفاقات شگفت انگیزی باشد. طبق آخرین شایعات منتشر شده پس از دستور ترامپ ریاست جمهوری ایالات متحده، به نظر می رسد مایکروسافت به دنبال تصاحب TikTok از طریق کمیته سرمایه گذاری امریکا باشد.

طبق گزارش بلومبرگ، برنامه چینی محبوب TikTok بر روی تلفن های همراه میلیون ها امریکایی نصب شده ، موجب نگرانی های امنیتی در دولت ایالات متحده شده است. منابع تایید شده ای می گویند مایکروسافت در حال مذاکره برای خرید تیک تاک است.
این Mock یا Mocking چیه؟!!
#سوال_درخواستی

🔸 در واقع Mock کردن (Mocking) یک تکنیک تست نویسی است که در آن قسمتی از کد را با یک پیاده سازی دلخواه جایگزین میکنیم و از آن برای شبیه سازی یک عملیات واقعی استفاده میشه.

🔹 معمولا ماک کردن زمانی استفاده میشه که یک متد یا کلاس، وابستگی یا وابستگی هایی داره که توی تستمون تداخل ایجاد میکنه.

🔸 مثلا فرض کنید یک سرویسی رو میخواین تست کنین که داخلش از سرویس SmsSender استفاده شده (یعنی به سرویس SmsSender وابستگی داره)، درنتیجه هربار که اون تست رو انجام میدید یه SMS هم ارسال میکنه که خب لازم نیست
در این صورت میایم و سرویس SmsSender رو ماک میکنیم که دیگه Sms ارسال نکنه ولی true رو برگردونه (به این معنی که درست کار کرده)

🔹 این باعث میشه ما بتونیم عملکرد (functionality) همون متد رو تست کنیم به جای اینکه تست مون را درگیر و وابسته به عوامل ثالث (مثل ارسال SMS) کنیم

🔰حالا چه وقتایی معمولا ماک استفاده میشه؟

1️⃣ وابستگی ما در دسترس نباشه
مثلا سرویس شما قراره یه اطلاعاتی رو از وب سرویس بخونه، خب اگه اینترنت قط باشه، تا بالاترن سطح سرویس هامون که به این وابسته بوده fail میشه، پس میایم ماک اش میکنیم و میگیم با فرض اینکه وب سرویس در دسترسه و داره درست اطلاعات رو بر میگردونه، حالا برو ببینم خودت چند مرده حلاجی؟!

2️⃣ وابستگی ما کند باشه
مثلا یه تست برای انجام شدنش نیاز به یه کوئری به دیتابیس داره که 60 ثانیه زمان میبره، پس میایم و ادامه ماجرا ...

3️⃣ وابستگی ما باید توی تست رفتارش عوض بشه
مثل همین مثال سرویس SmsSender

4️⃣ و چندین سناریو دیگه ...

🔰 بهترین کتابخانه های Mocking در دات نت این ها هستند
1️⃣ Moq
2️⃣ NSubstitute
3️⃣ FakeItEasy

🔰حالا یه سوالی که پیش میاد اینه که این کتابخانه های Mocking چطوری کار میکنن؟!
اساس کار این ابزار ها به 2 صورت هست

1️⃣ بر اساس interface :
که عملا توی runtime، یک کلاس الکی درست میکنن که از interface شما ارث بری کرده و بهتون اجازه میده که پیاده سازی متد هاش رو تغییر بدین

2️⃣ بر اساس virtual :
در این روش متد هایی که میخواین قابل mock شدن باشن باید virtual تعریف بشن، در این صورت میاد و توی runtime یک کلاس ایجاد میکنه که از کلاس مورد نظر شما ارث بری کرده ولی متد های virtual اش رو override (بازنویسی) کرده و بهتون اجازه میده که پیاده سازی متد هاش رو تغییر بدین

_________
❇️ آموزش استفاده از Container در NET Core. (زبان اصلی زیر نویس دار)

از پایین ویدئو گزینه [Subtitle/captions] میتوانید زیرنویس آن را فعال کنید

[00:44] - What are some of advantages of containers?
[01:14] - How do containers compare to other hosting options?
[04:14] - Demo of Visual Studio tooling for containers
[07:06] - Deploying your container to Azure

Useful Links
Azure Container Service (AKS)
Azure Container Registry
.NET Core Docker container images
ASP.NET Core Docker container images
Create a Free Account (Azure)
_____________
#اطلاعیه_SciSharp

دوستان عزیز همانطور که میدانید زبان سطح بالای Python که دارای فریمورک های زیادی است و بیشتر این فریمورک ها مربوط به ( هوش مصنوعی و زیر مجموعه های آن مانند یادگیری ماشین - بینایی ماشین - و... ) است.


حالا یه تیمی از که طریق مایکروسافت وظیفه دارند تمامی این فریمورک هارو Port کنند در سی شارپ با حداقل ۹۹ درصد شباهت در کد ها و تابع ها و ....


این اکوسیستم SciSharp Stack نام دارد.
که تا الان چند فریمورک قوی مانند Tensorflow و Keras و NumPy و Catalyst NLP رو تا الان Portکردند، و هر اپدیتی که از طرف این فرویمورک های اصلی بشود، این پکیج های nuget هم آپدیت میشوند.

درخواست این تیم این است که اطلاع داده بشه به همه که همچین چیزی وجود داره.

کتابخانه ها و فریمورک های دیگر هم در دست ساخت هستش مثل PyTorch و Pandas و Matplotlib و....

https://scisharp.github.io/SciSharp/


خوبیش اینه که ۹۹ درصد کدها شبیه هم هستند و برای مثال با دیدن یک آموزش Tensorflow در پایتون میتونید تو سی شارپ هم با Tensorflow کار کنید.( البته صد در صد به جبر خطی و ... نیاز دارید برای کارهای حرفه ای ).
👍2
مقایسه پرفرمنس gRPC و REST

طبق این بنچمارک میتونین ببینین که توی درخواست های سبک ( مثل یه GET ساده با دیتای کم حجم) gRPC و REST تفاوتی خاصی با هم ندارن

ولی توی درخواست های سنگین (که حجم دیتای انتقالی زیاد باشه) :

🔸توی حالت GET (دریافت اطلاعات) gRPC بیش از 7 برابر سریع تر از REST عمل میکنه

🔹وتوی حالت POST (ارسال اطلاعات) gRPC بیش از 11 برابر سریع تر از REST عمل میکنه

🔸دلیل اصلی این سرعت بسیار بالا اینه که gRPC از Protocol Buffers برای سریالایز و فشرده سازی اطلاعات استفاده میکنه و نیز به صورت پیشفرض از HTTP/2 و استفاده میکنه که اون هم یه مکانیزم فشرده سازی داره

🔹برای کار با gRPC در حالت عادی باید از CLI مخصوص اون "protoc" برای کامپایل و تولید کلاس های سرویس از روی فایل های "proto." استفاده کنید. ولی با Visual Studio میتونین همین کار رو کامپایلر built-in اش راحت تر انجام بدین

🔸جمع بندی اینکه gRPC میتونه گزینه بسیار خوبی برای ارتباطات بیین Micro-service ها باشه

لینک مقاله و ریپازیتوری گیتهاب این بنچمارک
Evaluating Performance of REST vs. gRPC
Github Repository
________________
❇️ اگه میخواین مفهوم Hash و Salt رو درک کنین
فیلم زیر از جادی خیلی باحال توضیحش میده

🔰 نقل قول از جادی :
"به نظر من، هش‌ها از قشنگی‌های دنیای کامپیوتر و برنامه نویسی. فانکشن‌هایی که می‌تونن اطلاعات رو به ترکیبی از بیت های دیگه با طول ثابت تبدیل کنن و نتیجه شون هم همیشه برای ورودی ثابت، ثابته. این ایده درخشان منتیج به نتایج خیلی جالبی هم شده. مثلا فرض کنین می خواین بدونین آیا فایلی که دانلود کردین سالمه یا نه. یا می خواین کلی دیتا رو جایی بریزین و سریع پیداشون کنین. یا از اون جالبتر، می خواین به یکی پشت تلفن بگین «یه عدد در نظر بگیر» و بعد عدد رو حدس بزنین و مطمئن باشین که تقلبی نمی تونه اتفاق بیافته یا حتی رمزارز بسازین. همه اینجاها، هش کار گشا است فهمیدنش برای یک برنامه نویس خوب واجبه. "

1️⃣ https://www.aparat.com/v/1YjmV/
2️⃣ https://www.aparat.com/v/PmYpu/
3️⃣ https://www.aparat.com/v/Yg02q/

___________
سلام دوستان
یه دوره بینظیر توی یودمی با موضوع طراحی وب که فریمورک محبوب جنگو رو هم پوشش داده امروز رایگانه
به اکانتتون اضافه کنین تا همیشه دسترسی داشته باشین
https://www.udemy.com/course/python-and-django-full-stack-web-development-for-beginners/?couponCode=27441EC3EACCB06FA8D5
This media is not supported in your browser
VIEW IN TELEGRAM
🔵تیزر معرفی سرفیس دئو

سرفیس دئو به طور رسمی معرفی شد!

مایکروسافت از تمامی آنچه که ما در مورد این دستگاه شگفت‌انگیز بایستی بدانیم رونمایی کرده است.

مایکروسافت تصمیم به عرضه این دستگاه با پردازنده کوالکام اسنپدراگون ۸۵۵، ۶ گیگابایت رم، ۱۲۸/۲۵۶ گیگابایت حافظه داخلی و برچسب قیمتی ۱۴۰۰ دلار گرفته است.

زمان عرضه در نظر گرفته شده، ۱۰ سپتامبر است اما پیش از آن علاقه‌منندان قادر به پیش‌خرید از طریق مایکروسافت استور با قیمت ۱۴۰۰ دلار برای نسخه ۱۲۸ گیگابایتی و ۱۵۰۰ دلار برای نسخه ۲۵۶ گیگابایتی خواهند بود. همچنین کاربران قادر به پیش‌خرید از طریق AT & T و Best Buy خواهند بود.
Media is too big
VIEW IN TELEGRAM
هنر تفکر ، اما با هم! صحبت در مورد مفهوم "الماس دوگانه" و اینکه چگونه می تواند به تفکر موثر در کنار هم کمک کند.