PDA

مشاهده نسخه کامل : سوالاتی درباره NetFramework



Speed Racer
19-12-19, 09:08
درود



1- برای ویندوز 10 باید .Netframewok 3.5 نصب بشه اما روی ویندوز 7 مثل اینکه از قسمت Programs and Features و Turn Windows features باید تیک نصبش رو بزنیم. (شاید هم اشتباه می کنم) توی بعضی از ویندوز های 7 نسخه 3.5 داره و توی بعضی 3.5.1 نسخه 3.5.1 از نسخه 3.5 پشتیبانی می کنه یا نسخه 3.5 باید جداگانه نصب بشه.

2- اگه من .Netframework 4.8 نصب کنم از تمامی نسخه های 1.1 تا 4 هم پشتیبانی می کنه یا اینکه برای پشتیبانی از 1.1 تا 4 فقط باید نسخه 4 رو نصب کنم. در این صورت یک مشکلی هست که خیلی ها نسخه 3.5 هم نصب می کنن که نمی دونم اگه نسخه 4 از 3.5 هم پشتیبانی می کنه چرا باید نسخه 3.5 نصب بشه. اگه نسخه 4.8 از نسخه 4 پشتیبانی نمی کنه تا چه نسخه ای رو پشتیبانی می کنه

3- یک جایی خوندم اگه می خوای نرم افزار بنویسی از نسخه .NETFramework 4 استفاده کنیم بهتره چون همه سیستم ها پشتیبانی می کنن حالا اگه با نسخه 4.8 یا 4.7.2 بنویسیم تا چه سیستم عامل هایی رو پشتیبانی می کنه و کلا نسخه 4.8 چه چیزهای اضافه ای داره که مثلا نسخه 3.5 و 4 ندارن. چون من از کدهای داخلی >NETFramework آگاهی ندارم

4- ویندوز ها از 7 تا 10 با C++ نوشته شدن یا لااقل بیشتر قسمت هاشون. موقعی که ویندوز نصب می کنیم این برنامه نصب نمی شه ولی ویندوز کار می کنه برخلاف برنامه های سی شارپ که باید NETFramework نصب باشه

visual c++ redistributable


واقعا کار این visual c++ redistributable چیه و اگه ما از نسخه 2005 تا 2019 همه رو نصب کنیم تاثیری داره توی بهبود عملکرد ویندوز. چطور C++ می تونه مستقل از visual c++ redistributable باشه حداقل برای خود ویندوز اینطوریه اما سی شارپ نمی تونه مستقل از NETFramework باشه که طبیعیه


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

با تشکر از وقتی که میذاری

ravegoat
19-12-19, 12:42
سلام،



1- برای ویندوز 10 باید .Netframewok 3.5 نصب بشه اما روی ویندوز 7 مثل اینکه از قسمت Programs and Features و Turn Windows features باید تیک نصبش رو بزنیم. (شاید هم اشتباه می کنم) توی بعضی از ویندوز های 7 نسخه 3.5 داره و توی بعضی 3.5.1 نسخه 3.5.1 از نسخه 3.5 پشتیبانی می کنه یا نسخه 3.5 باید جداگانه نصب بشه.

این که هر سیستم عاملی چه نسخه ای پیش فرض نصب شده و چه نسخه هایی قابل نصبه، از این لینک قابل برداشته:
.NET Framework system requirements | Microsoft Docs (Only the registered members can see the link)
مطابق این لینک (Only the registered members can see the link)، نباید مشکلی برای پشتیبانی 3.5.1 از 3.5 وجود داشته باشه ولی خودم تا حالا تست نکردم.



2- اگه من .Netframework 4.8 نصب کنم از تمامی نسخه های 1.1 تا 4 هم پشتیبانی می کنه یا اینکه برای پشتیبانی از 1.1 تا 4 فقط باید نسخه 4 رو نصب کنم. در این صورت یک مشکلی هست که خیلی ها نسخه 3.5 هم نصب می کنن که نمی دونم اگه نسخه 4 از 3.5 هم پشتیبانی می کنه چرا باید نسخه 3.5 نصب بشه. اگه نسخه 4.8 از نسخه 4 پشتیبانی نمی کنه تا چه نسخه ای رو پشتیبانی می کنه

در مورد .NET Framework این طوری نیست که بشه گفت فلان نسخه از فلان نسخه های قدیمی تر پشتیبانی می کنه یا نمی کنه. کلا در هر فریم ورکی یه سری ویژگی هستش که در نسخه های جدید تر شاید پشتیبانی نشه. لیست کاملش اینجا موجوده:
What's Obsolete in the .NET Framework class library | Microsoft Docs (Only the registered members can see the link)
در کل این بستگی داره شما توی اون فریم ورک از چه کد هایی استفاده کردی.

نسخه ی 4 و بالا تر تغییر بنیادی دارن که برای مهاجرت از نسخه های قدیمی (مثل 3.5) به جدید تر (4.0 و بالا تر) این مشکلات می تونه رخ بده:
.NET Framework 4 migration issues | Microsoft Docs (Only the registered members can see the link)
که یه لیست طولانیه و باید ببینید که کدوم یکی شامل حال برنامه ی شما میشه. و این هم روش رفع این مشکلات:
How to: Configure an app to support .NET Framework 4 or later versions | Microsoft Docs (Only the registered members can see the link)

برای مهاجرت از نسخه های 4.0 و بالا تر هم این ابزار (Only the registered members can see the link) هستش که بهت کمک می کنه.



3- یک جایی خوندم اگه می خوای نرم افزار بنویسی از نسخه .NETFramework 4 استفاده کنیم بهتره چون همه سیستم ها پشتیبانی می کنن حالا اگه با نسخه 4.8 یا 4.7.2 بنویسیم تا چه سیستم عامل هایی رو پشتیبانی می کنه و کلا نسخه 4.8 چه چیزهای اضافه ای داره که مثلا نسخه 3.5 و 4 ندارن. چون من از کدهای داخلی >NETFramework آگاهی ندارم

آرشان جان اگر پیوندی ازش موجوده لطفا این جا بذار چون به نظرم منطقی نیست. در نسخه ی 4.5.2 بازم تغییرات اساسی وجود داشته به طوری که دیگه حتی مایکروسافت از 4.0، 4.5 و 4.5.1 پشتیبانی نمی کنه (منبع (Only the registered members can see the link)). پس بهتره کلا از این سه نسخه استفاده نشه. بذار خیالت رو راحت کنم: الان فقط مایکروسافت از 3.5، 3.5 SP1 و نسخه های 4.5.2 و بالا تر پشتیبانی می کنه و پیشنهاد نمی کنم از سایر نسخه ها استفاده کنی.

این امکانات به فریم ورک ها در طول زمان اضافه شده (البته اگه علافه مندی بخون):
Only the registered members can see the link



4- ویندوز ها از 7 تا 10 با C++ نوشته شدن یا لااقل بیشتر قسمت هاشون. موقعی که ویندوز نصب می کنیم این برنامه نصب نمی شه ولی ویندوز کار می کنه برخلاف برنامه های سی شارپ که باید NETFramework نصب باشه

visual c++ redistributable

درسته که Visual C++ Redistributable شاید در برخی از نسخه های ویندوز نصب نشده باشه ولی این به این معنی نیست که وجود نداره! کلا کد های سی پلاس پلاسی به این بسته نیازمندند از جمله خود ویندوز. فقط برای امنیت، ویندوز این بسته رو در قالب یه فایل به نام msvcrt.dll در System32 نگه داری می کنه و ازش محافظت می کنه. چون اگه توی بخش Add/Remove Program این بسته وجود داشت، با حذف اون دیگه ویندوز قادر به کار کردن نبود. واسه همین مایکروسافت این رویکرد رو پیش گرفت.



واقعا کار این visual c++ redistributable چیه و اگه ما از نسخه 2005 تا 2019 همه رو نصب کنیم تاثیری داره توی بهبود عملکرد ویندوز. چطور C++ می تونه مستقل از visual c++ redistributable باشه حداقل برای خود ویندوز اینطوریه اما سی شارپ نمی تونه مستقل از NETFramework باشه که طبیعیه

نه تاثیری نداره، اگر کدی مطابق C++ 14 نوشته شده، فقط با C++ Runtime 14 کار می کنه. مطابق عرض بنده در بخش قبل، C++ هم از اون دیدگاه مثل C# مستقل نیست و پیش نیاز هایی داره؛ گرچه فرق این استقلال زمین تا آسمونه! ولی میشه یه کد سی خالص نوشت که مستقل از یه بسته که سهله، مستقل از سخت افزار هم عمل کنه.

پ.ن.: متوجه منظورت شدم. از این بعد سعی می کنم برای هر پیوند یه توضیح شفاف هم بذارم. موفق باشی :11():

Speed Racer
20-12-19, 09:42
آرشان جان اگر پیوندی ازش موجوده لطفا این جا بذار چون به نظرم منطقی نیست. در نسخه ی 4.5.2 بازم تغییرات اساسی وجود داشته به طوری که دیگه حتی مایکروسافت از 4.0، 4.5 و 4.5.1 پشتیبانی نمی کنه (منبع (Only the registered members can see the link otnet%2Fsupport-ending-for-the-net-framework-4-4-5-and-4-5-1%2F)). پس بهتره کلا از این سه نسخه استفاده نشه. بذار خیالت رو راحت کنم: الان فقط مایکروسافت از 3.5، 3.5 SP1 و نسخه های 4.5.2 و بالا تر پشتیبانی می کنه و پیشنهاد نمی کنم از سایر نسخه ها استفاده کنی.
درود

پس اگه من بخوام نرم افزاری بسازم که از ویندوز 7 سرویس پک 1 (بدون هیچگونه آپدیت کردن ویندوز) پشتیبانی کنه بالاترین NETFramework که می تونم استفاده کنم کدوم نسخه است که هم ویزگی های NETFramework جدید رو داشته باشم و هم مشکل ساپورت ویندوز ها پیش نیاد.

فکر کنم ویندوز XP سرویس پک 1 و 2 و 3 داره برای اینکه اون ویندوز هم ساپورت بشه بالاترین NETFramework که می تونم استفاده کنم چیه

ravegoat
20-12-19, 10:49
مطابق این پیوند (Only the registered members can see the link)، روی ویندوز 7 سرویس پک 1 هیچ نسخه ای پیش فرضی از دات نت فریم ورک نصب نشده ولی این سیستم عامل تا نسخه ی 4.8 رو پشتیبانی می کنه. روی ویندوز XP هم هیچ نسخه ای پیش فرضی از دات نت فریم ورک نصب نشده و این ویندوز حداکثر تا نسخه ی 4 رو پشتیانی می کنه.