پیش نمایش NET Core 3. و اوپن سورس شدن برنامه های دسکتاپ!

پنج روز پیش (۴ دسامبر) مایکروسافت اولین پیش نمایش عمومی نسخه سوم .Net core را در دسترس توسعه دهندگان قرار داد. برای بررسی بیشتر با کسینوس همراه باشید.
رویکرد انقلابی! شاید بهترین کلمه ای باشد که برای این روزهای مایکروسافت میتوان گفت! اما واقعا اصل ماجرا چیست؟

NET Core.
باید به عقب تر برگردیم! حدود ۴ سال پیش و یا به عبارتی ۱۴ نوامبر ۲۰۱۴ میلادی، مایکروسافت بزرگترین تصمیم خود را برای پیوستن به دنیای نرم افزار های آزاد میگیرد و با عرضه ی NET Core. در این تاریخ، حضور خود را اعلام میکند!
مهم نیست شرکت شما چقدر بزرگ باشد و یا حتی ارزش مالی آن چقدر باشد! در هر صورت شما باید به دنیای نرم افزار های آزاد احترام بگذارید! این یک حقیقت است که درستی آن را میتوان از ردموندی ها جویا شد!
دات نت Core در واقع تلاش مایکروسافت برای ارائه یک پلتفرم چند سکویی (ویندوز – لینوکس – مک) میباشد که بعد از انتشار چندین نسخه، حالا به نسخه ی ۲.۲ LTS به عنوان نسخه ی پایدار رسیده است . اشاره ی این نکته شاید خالی از لطف نباشد که LTS به معنای long time support یا پشتیبانی نرم افزاری طولانی مدت میباشد و از این نظر در حال حاظر بهترین نسخه جهت نوشتن محصولات قابل ارائه میباشد.
بهتر است به معرفی رویکرد ها و قابلیت های جدید در دات نت ۳ بپردازیم و سایر حواشی را به پست های آتی اختصاص دهیم.
خبر های خوش
آیا تا به حال با NET Core. کد زده اید؟اگر جواب بله است که هیچ اما اگر خیر است باید بگویم شما تا امروز میتوانستید برنامه های کنسولی، کتابخانه، و ASP core را در دات نت Core پیاده سازی کنید. اما خبر خوش این است که به لطف نسخه ی سوم از دات نت Core، از این پس ویندوز دسکتاپ نیز به جمع NET Core. پیوسته و برای اثبات این موضوع، کد نرم افزار paint توسط متخصصان مایکروسافت بدون تغیر در کد ها روی دات نت Core بیلد و اجرا شده است!
نکته ی بعدی اینکه WPF, Windows Forms, و WinUI نیز به جمع نرم افزار های اوپن سورس پیوستند! اگر فکر میکنید توانایی اضافه کردن قابلیت های جدید را دارید، خب این شما و این هم مخازن!
نحوه کار
مانند تمامی نسخه های NET Core.، ساخت اپ های جدید نیز به سادگی قبل است، و تنها با دستور زیر متوانید تمپلیت برنامه ی WPF ویا WinForm خود را بسازید.
dotnet new wpf
dotnet new winforms
از نظر ساختار فایل پروژه نیز شاهد تغیر زیادی نسبت به اپ کنسولی نیستیم و تنها مشخص کردن Microsoft.NET.Sdk.WindowsDesktop بجای Microsoft.NET.Sdk در قسمت SDK پروژه کافیست.
مثال فایل پروزه کنسول
<Project Sdk=”Microsoft.NET.Sdk”>
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.0</TargetFramework>
</PropertyGroup>
</Project>
و حالا WPF
<Project Sdk=”Microsoft.NET.Sdk.WindowsDesktop”>
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>netcoreapp3.0</TargetFramework>
<UseWPF>true</UseWPF>
</PropertyGroup>
</Project>
اتفاق جالب و قابل ذکر دیگر، اجرایی شدن فایل های یبلد شده است. اما این به چه معناست!
اگر تا کنون توسط NET Core. برنامه ای را بیلد کرده باشید حتما دیده اید که فایل ساخته شده از نوع dll است و باید توسط دستور dotnet اجرا شود.
اما از امروز هر برنامه ای بسته به سیستم عامل در حال اجرا به برنامه اجرایی همان سیستم عامل تبدیل میشود! مثال زیر بهترین نمونه است:
ویندوز
C:\Users\rlander\myconsole>dotnet build
C:\Users\rlander\myconsole>cd bin\Debug\netcoreapp3.0
C:\Users\rlander\myconsole\bin\Debug\netcoreapp3.0>dir /b
myconsole.deps.json
myconsole.dll
myconsole.exe
myconsole.pdb
myconsole.runtimeconfig.dev.json
myconsole.runtimeconfig.json
C:\Users\rlander\myconsole\bin\Debug\netcoreapp3.0>myconsole.exe
Hello World!
C:\Users\rlander\myconsole\bin\Debug\netcoreapp3.0>dotnet myconsole.dll
Hello World!
لینوکس
root@cc08212a1da6:/myconsole# dotnet build
root@cc08212a1da6:/myconsole# cd bin/Debug/netcoreapp3.0/
root@cc08212a1da6:/myconsole/bin/Debug/netcoreapp3.0# ls
myconsole myconsole.dll myconsole.runtimeconfig.dev.json
myconsole.deps.json myconsole.pdb myconsole.runtimeconfig.json
root@cc08212a1da6:/myconsole/bin/Debug/netcoreapp3.0# ./myconsole
Hello World!
root@cc08212a1da6:/myconsole/bin/Debug/netcoreapp3.0# dotnet myconsole.dll
Hello World!
خبر خوب دیگر اینکه حالا NET Core. تمامی وابستگی ها را داخل پوشه ی output کپی میکند و شما دیگر برای منتشر کردن برنامه ی خود تنها نیاز به کپی کردن این پوشه دارید!
C:\Users\rlander\myconsole>dotnet add package Newtonsoft.json
C:\Users\rlander\myconsole>dotnet build
C:\Users\rlander\myconsole>dir /b bin\Debug\netcoreapp3.0\*.dll
myconsole.dll
Newtonsoft.Json.dll
سخن پایانی
موارد ذکر شده در بالا تمامی تغیرات نبوده و میتوان از
- JSONReader بهبود یافته
- کتابخانه های بهبود یافته
- پیاده سازی پیشفرض اعضا interface
- بهبود های BCL
- اضافه شدن الگوریتم های رمزگذاری
- ایمپورت و اکسپورت کردن کلید های رمزگذاری
- پشتیبانی از TLS 1.3 و OpenSSL 1.1.1 در لینوکس
- API های GPIO, PWM, SPI و I2C
- پشتیبانی از پورت سریال در لینوکس
- پشتیانی از arm64
- Tiered Compilation
- Assembly Metadata Reading with MetadataLoadContext
نیز نام برد که به علت طولانی نشدن نوشته و تکیه به نکات مهم نسخه سوم NET Core.، میتوان از آن ها چشم پوشی کرد!
درباره نویسنده
1 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
سلام من میخوام یک نمونه کد .net core توی هاست ویندوزیم به عنوان آزمایش اجرا کنم امکانش هست راهنماییم کنین