WTF is a personal information dashboard for your terminal, developed for those who spend most of their day in the command line.
WinRT چیست؟
مایکروسافت جهت سهولت تولید برنامههای جدید Metro-style ، لمسی (touch-centric) و tablets ویندوز 8 ، اقدام به بازنویسی مجدد Windows-API کرده و نام آنرا WinRT گذاشته است. بنابراین همانند آنچه که در مورد API ویندوز از روز اول پیدایش آن مرسوم بوده، این API جدید، از نوع native (نوشته شده با CPP) میباشد و با کمک دات نت فریم ورک تهیه نشده است. این API جدید مبتنی بر فناوری قدیمی COM است، بنابراین مطابق معمول توسط هر نوع برنامه و سیستمی در ویندوز قابل دسترسی است. تفاوتی نمیکند که CPP یا دلفی باشد یا دات نت. به صورت خلاصه ویندوز 8 دو طراحی جدید (WinRT) و قدیم (Win32 API) را با هم پشتیبانی میکند. اگر آنرا صحیحتر بخواهیم معرفی کنیم، WinRT درحقیقت محصور کنندهی (Wrapper) همان Win32 API سابق است (در پشت صحنه همان dll های سابق ویندوز را بارگذاری و استفاده میکند) جهت تطابق با نیازهای دهه اخیر و سالهای پیش رو.
سازگاری دات نت فریم ورک با WinRT چگونه است؟
اینبار WinRT برخلاف Win32 API (که در زمان ارائه آن اصلا دات نتی در کار نبود)، جهت سازگاری با دات نت طراحی شده است. این طراحی جدید ILDasm metadata را در اختیار برنامه نویسهای دات نت قرار میدهد و به این ترتیب IntelliSense و قابلیتهای Debugging ویژوال استودیو همانند کدهای مدیریت شدهی دات نت جهت برنامه نویسی مبتنی بر WinRT در اختیار برنامه نویسها خواهد بود (فرمت ارائه شده، ECMA 335 metadata format میباشد). همچنین اشیاء COM متعلق به WinRT به خوبی توسط GC (آشغال جمع کن) دات نت جهت مدیریت بهتر حافظه، تحت نظر میباشند.
بنابراین از دیدگاه یک برنامه نویس دات نت، کل WinRT به صورت managed assemblies مشاهده میشود، اینترفیسهای آن همان اینترفیسهای دات نتی خواهند بود و کلاسهای آن نیز به همین ترتیب. این مشکلی بود/هست که با Win32 API در دات نت وجود دارد و دسترسی به آن به این سادگی و یکپارچگی میسر نیست (هر چند تا الان کل اینترفیس آن جهت استفاده در دات نت نیز ترجمه شده است). در اینجا شما ارجاعاتی را به فایلهایی با پسوند winmd یا windows metadata، به پروژهی دات نتی خود اضافه میکنید و سپس CLR قادر خواهد بود تا کلیه اطلاعات لازم جهت کار با WinRT را از آنها استخراج کند (این فایلها در پوشه C:\Program Files (x86)\Windows Kits\8.0\Windows Metadata و C:\Windows\system32\winmetadat ویندوز 8 قابل مشاهده و دسترسی هستند).
تفاوتهای مهم امکانات نمایشی WinRT با Win32 API کدامند؟
تفاوت مهم WinRT با Win32 API از دیدگاه برنامه نویسها، امکان دسترسی بیشتر به آن از طریق زبانهای مختلف میباشد. WinRT همانند Win32 API توسط CPP ، دات نت و سایر روشهای مرسوم دیگر قابل دسترسی و توسعه است. اما اینبار WinRT برخلاف Win32 API ، از طریق HTML و جاوا اسکریپت هم قابل توسعه است. در این حالت کدهای شما توسط Chakra JavaScript engine که از اینترنت اکسپلورر 9 به بعد ارائه شده، اجرا خواهد شد. بنابراین «برفراز» WinRT دو لایه نمایشی (presentation layer) قابل طراحی و دسترسی است. XAML و زبانهای متداول برنامه نویسی موجود مانند سی شارپ و وی بی دات نت و غیره. همچنین HTML/CSS هم مجال ابراز وجود یافته است. البته XAML تنها لایه نمایشی کلیه زبانهای قدیمی موجود مانند سی شارپ، وی بی دات نت، CPP و غیره خواهد بود. به همین جهت Expression Blend جدید نیز از HTML 5 پشتیبانی میکند.
همچنین در WinRT ، قسمتهای GDI و Message loop متداول Win32 API حذف شده است و از DirectX استفاده میکند. برای نمونه کدهای XAML شما توسط DirectX رندر میشود. البته این مطلب جدیدی نیست و از زمان ارائه WPF شاهد این مساله بودهایم.
وضعیت توسعه پذیری WinRT چگونه است؟
علاوه بر اینها، برخلاف Win32 API ، اینبار WinRT قابل توسعه است و Extensions SDK برای آن ارائه شده است.
آیا WinRT شاهد تغییرات امنیتی خاصی هم بوده است؟
نکتهی مهمی که در طراحی WinRT به آن توجه شده است، امنیت میباشد. برنامههای WinRT شبیه به برنامههای سیلورلایت در یک Sandbox اجرا میشوند. به این معنا که جهت ذخیره سازی اطلاعات خود از یک isolated storage استفاده میکنند. برای کار با file system نیاز به تائید کاربر دارند و خلاصه دیگر به سادگی نمیتوان از مرزهای این نوع برنامهها رد شد و سیستم عاملی را root کرد. برای نمونه برنامه نویسهای دات نت دسترسی به فضای نام System.IO.FileStream را دیگر نخواهند داشت و تنها قسمتی از دات نت «برفراز» WinRT و مدل امنیتی جدید آن معنا پیدا میکند. همچنین برفراز این API جدید، تولید مثلا Device drivers هم دیگر معنا پیدا نمیکند. این محدودیتهای امنیتی برای برنامه نویسهای native هم وجود دارد و تفاوتی نمیکند. کلا برنامههای جدید Metro-style در یک قرنطینهی کامل امنیتی اجرا میشوند. برای مثال اگر برنامهای نیاز به دسترسی به یک WebCam را داشته باشد، همانند برنامههای سیلورلایت ابتدا باید کاربر تائید کرده و سپس برنامه مجوز امنیتی کار با مثلا یک WebCam را خواهد یافت. همچنین تمام برنامههای جدید Metro-style باید جهت ارائه در فروشگاه جدید ویندوز 8، دارای امضای دیجیتال معتبر نیز باشند.
آیا جهت توسعهی برنامههای چندریسمانی و غیرهمزمان تمهیدات خاصی در WinRT پیشبینی شده است؟
در طراحی جدید WinRT به اعمال asynchronous به شدت توجه شده است. هر عملی که بیش از 50 میلی ثانیه طول بکشد به صورت خودکار تبدیل به یک عمل asynchronous خواهد شد تا برنامهها مرتبا در حین اجرای اعمال زمانبر هنگ نکرده و ترد اصلی برنامه را بلاک نکنند. علاوه بر اینها WinRT از طریق IAsyncOperation interface خود، امکان استفاده از واژههای جدید کلیدی async/await سی شارپ 5 را نیز مهیا میسازد.
آیا WinRT آمده است تا جایگزینی برای دات نت و سیلورلایت و امثال آن باشد؟
خیر. WinRT نگارش دوم Win32 API است با هدف توسعه پذیری، استفاده از دایرکت ایکس و فناوریهای جدید که عموما از شتاب دهندههای سخت افزاری هم بهرهمند هستند بجای GDI سابق، استفاده سادهتر در زبانهای دیگر به کمک فایلهای استاندارد Windows Meta data آن میباشد. همچنین این API جدید دسترسی به امکانات ویندوز را هم توسط HTML و جاوا اسکریپت، علاوه بر امکانات مهیای سابق میسر ساخته است. هم اکنون نگارش 4 و نیم دات نت در ویندوز 8 ارائه شده است و توسط هر دو سیستم سابق و جدید قابل استفاده میباشد. البته باید در نظر داشت که جهت استفاده از WinRT به دلایل محدودیتهای امنیتی اعمال شده به آن و همچنین استفاده از XAML به تنها عنوان لایه نمایشی سیستمهای متداول غیر HTML ایی، دات نت فریم ورک به امکانات و کلاسهای کمتری نسبت به حالت متداول کار با آن، دسترسی دارد (جهت درک بهتر این محدودیتها میتوان به طراحی سیلورلایت مراجعه کرد). این را هم باید اضافه کرد که ویندوز 8 توانایی اجرای هر دو نوع برنامههای سبک جدید مترو و متداول دسکتاپ قدیمی را دارا است.
جهت آشنایی بیشتر با WinRT میتوان به مجموعهای از ویدیوهای مرتبط آن مراجعه کرد:
http://channel9.msdn.com/Events/BUILD/BUILD2011?t=windows%2Bruntime
اشتراکها
کتابخانه JSIL
JSIL is a compiler that transforms .NET applications and libraries
from their native executable format - CIL bytecode - into
standards-compliant, cross-browser JavaScript. You can take this
JavaScript and run it in a web browser or any other modern JavaScript
runtime. Unlike other cross-compiler tools targeting JavaScript, JSIL
produces readable, easy-to-debug JavaScript that resembles the code a
developer might write by hand, while still maintaining the behavior and
structure of the original .NET code. Demo
.NET Core placed high in a web-dominated ranking of development frameworks published by CodinGame, which provides a tech hiring platform.
Frameworks: React is 2021’s most sought-after framework
Node.js, React and .NETCore are currently the most popular frameworks amongst developers.
React is the most sought-after framework: 59% of tech recruiters are on the lookout for developers who know React.
مطالب
لینکهای هفته دوم دی
وبلاگها ، سایتها و مقالات ایرانی (داخل و خارج از ایران)
- شیوهنامه فارسیپسند گوگلخوان، نسخه ۰.۱.۱ (کار جالبی است. آشنایی با افزونه استایلیش)
ASP. Net
طراحی و توسعه وب
PHP
اسکیوال سرور
سی شارپ
SharePoint
عمومی دات نت
ویندوز
مسایل اجتماعی و انسانی برنامه نویسی
متفرقه
- آشنایی با لولههای یاهو و همچنین نمونهای دیگر
اشتراکها
کتاب Gulp Succinctly
Gulp is an easy-to learn, easy-to-use JavaScript task runner that has become an industry standard. This book offers an entry to Gulp for experienced developers. Author Kris van der Mast offers practical examples and clear descriptions, making Gulp Succinctly the perfect entry point for developers interested in Gulp.
اشتراکها
پرسودترین شرکتهای NET. ای سال 2019
اشتراکها