برای تازه کارها و اونا که می خوان اطلاعاتی در مورد دات نت داشته باشند ، این موضوع را ایجاد کردم تا هر کی از دات نت هر چی می دونه بگذاره و اگه برای کسی سوالی پیش اومد بنویسه تا در مورد اون بحث بشه!
Printable View
برای تازه کارها و اونا که می خوان اطلاعاتی در مورد دات نت داشته باشند ، این موضوع را ایجاد کردم تا هر کی از دات نت هر چی می دونه بگذاره و اگه برای کسی سوالی پیش اومد بنویسه تا در مورد اون بحث بشه!
دات نت یک فرم ورک است. یک فریم ورک ترکیبی از ابزارها برای واقعیت بخشیدن به یک منظور خاص است.
دات نت فریم ورک در ابتدا بعنوان یک راه ساده تر برای توسعه COM، Win32 API و امثال آن طراحی شده بود، اما بعدا تکامل یافت و علاوه بر تامین امکانات برای برنامه نویسی آسان تر تکنولوژی های مبتنی بر ویندوز، امکاناتی را نیز برای برنامه نویسی آسان تحت وب ارائه داد. بر خلاف تصور کسانی که با دات نت نا آشنا هستند دات نت چیزی مانند Win32 API نیست، بلکه مبتنی بر آن است.
اگر سوالی دارید بنویسید.
منم با اجازه اساتید چند تا نکنه بگم:
1- دات نت یک زبان برنامه نویسی نیست.
2- دات نت یک فریم ورک است که برای طراحی و توسعه نرم افزار پدید آمده است.
3- نرم افزار هایی که می توان با دات نت نوشت محدودیتی ندارد.
4- دات نت چند زبانه است یعنی می توان در یک برنامه که مثلا" با vb.Net (یکی از ربان هایی که دات نت پشتیبانی می کند) نوشته شده است می توان از یک کد نوشته شده به زبان مثلا" C# یا هر زبان دیگری که دات نت پشتیبانی می کند استفاده نمود.
5- برنامه های نوشته شده در تکنولوژی دات نت قابلیت حمل دارند یعنی به سیستم عامل و یا ماشین وابسته نیستند.
6- دات نت برنامه نویسی کاربردی را واقعا" ساده نموده است.
7- خیلی موارد دیگر که این ها مهمترین بودند.
net FrameWork چه چیزهایی را نصب می نه که در برنامه های تحت دات نت از اونها استفاده می شه؟
یک سری DLL و Service
من تا حالا تحت دات نت برنامه ننوشتم اما در مثالهای دلفی 2006 یک برنامه ی چت که در نسخه های قبلی نیز وجود اشت دیدم.در این برنامه از هیچ شیئ ویژوالی استفاده نشده بود؛آیا اصولا این ربطی به دات نت داره یا ...
متن زیر رو یادم نمی یاد از کدوم سایت گرفتم.
کاملا درسته . چون ماشین ترجمه گر دات نت با وین 32 نوشته شده و کد ها رو در نهایت به همان وین 32 می بره . سرعت کمش هم (که بعضی افراد می گن) به خاطر وجود همین لایه است .نقل قول:
بر خلاف تصور کسانی که با دات نت نا آشنا هستند دات نت چیزی مانند Win32 API نیست، بلکه مبتنی بر آن است.
آیا مزیت اصلی دات نت بر وین 32 همین آسان بودن برنامه نویسی تحت وب است ؟نقل قول:
امکاناتی را نیز برای برنامه نویسی آسان تحت وب ارائه داد
اصولا برنامه های نوشته شده در دات نت غیر از وابسته نبودن به ماشین چه مشخصه ویژه ای دارند ؟
اصلا باید این را گفت که چیزی به نام مستقل بودن از محیط به اون معنا وجود ندارد .نقل قول:
اصولا برنامه های نوشته شده در دات نت غیر از وابسته نبودن به ماشین چه مشخصه ویژه ای دارند ؟
حتی جاوا مستقل از محیط نیست . ممستقل از محیط بودن منظور این است که ماشین را برای چند سیستم عامل نوشته اند و کد ها در آخر در لینوکس به یه چیزی و در ویندوز به وین 32 تبدیل می شوند .
مثلا فرض کنید من بیام یه سیستم عامل بنویسم . آیا در این صورت برنامه های جاوا روی اون اجرا می شن ؟؟؟
در کل می توان گفت همه چیز در ویندوز به وین 32 انتها پیدا می کنه . دات نت لایه هایی برای برنامه نویسی رو قرار می ده .که در بعضی جاها مفید و بعضی جاها مضر است .
دات نت فریم ورک ضمن داشتن محاسن خود عیوب بزرگی هم دارد
از جمله :
برای اجرای یک برنامه مثلا 100 کیلو بایتی نیاز به نصب دات نت فریم ورک 20 مگابایتی دارید.
سورس کلاسهای دات نت موجود نیست ( بطور مثال mfc در ویژوال سی سورس کدها را داشت)
سرعت اجرا بدلیل آمدن CLR در لایه واسط کم شده
و نهایتا سوال اینکه چند برنامه نویس سراغ دارید که در یک پروژه از چند زبان استفاده کرده باشد؟!
با نظر آقای پیشوایی موافقم. برنامه نویسهای حرفه ای به هیچ وجه از دات نت به عنوان محیط برنامه نویسی خودشون استفاده نمیکنند.
سرعت لود شدن برنامه هنگام اجرا مورد کم اهمیتی نیست که بدلیل Intermediate Language بودن برنامه های تولید شده با این تکنولوژی سرعت لود شدنش خیلی کمه، حالا اگه حجم برنامه تولید شده بیشتر باشه که بدتر.
کلاسها و NameSpace های دات نت فقط کد نویسی رو راحت تر کرده و در کل هیچ مزیتی نداره.
(خودمونیم آخه دلفی خودمون چه مشکلی داره آخه؟ یا بنده خدا ویژوال سی 6)
بعضی از دوستان اصلا به عنوان تاپیک دقت نمیکنند عنوان تاپیک کاملا مشخصه که یکی از دوستان پرسیده دات نت چیست؟ نپرسیده که خوبه یا بده؟ در ضمن فکر کنم اون دوستمون که این سوال رو پرسیده توی چند پست اول به جوابش رسیده .متاسفانه بحثها به صورت سلیقه ایی به انحراف کشیده میشه.
با سلام می خواستم بپرسم که
1.اصولا منظورتون از فریم ورک چیه ....(توضیح متخصصانه میخوام نه درک شخصی ...)
2.آیا راهی هست که بشه فقط توابع کتابخانه ای رو که تویه برنامه احتیاج هست به فایل exe فرستاد ...؟؟
سلام
من همه مطالب بالا رو خواندم و میدونم هم که وقتی یک برنامه NET. کامپایل میشه اول به زبان MSIL ترجمه میشه و بعد از اون با JIT به زبان ماشین، ولی دوست دارم که بدونم کامپایلر NET چطوری هست که میتونه تمام زبانها را کامپایل کنه؟ یعنی ویژگیهای یک کامپایلر VBو یا C# و یا ++C را دارد؟ این غیر ممکن خواهد بود.
آیا میتونید منو راهنمایی کنید که در مورد کامپایلر NET. یک منبع خوب پید کنم؟
مرسی
یعنی منظورتون این هست که (کامپایلر) یا تبدیل کننده NET. تمام ویژگیهای کامپایلرهایی مثل VB و #C و ++C و غیره را داره؟
اجازه بدین سوالم رو طوره دیگه ای مطرح کنم.
چه ویژگیی net. برای کامپایل کردن یک کد VB اضافه تر نسبت به یک کامپایلر VB دارد؟
دقیقا متوجه منظورتون نشدم.
همونطور که گفتم کامپایلر NET. مجموعه ای از کامپایلرها است که بر اساس زبانی که شما برنامه خودتون رو نوشته اید کدها رو با اون کامپایلر (مثلا وقتی با #C برنامه نوشته اید با کامپایلر زبان #C) کدهای نوشته شده به MSIL تبدیل می شوند.
مرسی . متوجه شدم. فقط اگر یک منبع خوبی در این رابطه دیدید و به من معرفی کنید ممنون میشم.
دوستان عزیز، من از VC#.NET استفاده میکنم. متاسفانه این مشکل رو دارم:
برای اجرای یک برنامه مثلا 100 کیلو بایتی نیاز به نصب دات نت فریم ورک 20 مگابایتی دارید.
میشه توی Visual Studio تنظیماتی چیزی رو دستکاری کرد تاNET. رو Cancel کردD:
منظورم اینه که با همون نرم افزار برنامه هامو بنویسم ولی نیازی به NET Framework. نداشته باشه؟
ممنون میشم اگه جوابمو سریعتر بفرمایید، آخه خیلی نیاز دارم به جواب این سوال.
باز هم ممنون
در این مورد به مراتب توی سایت صحبت شده و انواع روشها هم بررسی شدن، جستجو کنیدنقل قول:
برای اجرای یک برنامه مثلا 100 کیلو بایتی نیاز به نصب دات نت فریم ورک 20 مگابایتی دارید.
میشه توی Visual Studio تنظیماتی چیزی رو دستکاری کرد تاNET. رو Cancel کردD:
منظورم اینه که با همون نرم افزار برنامه هامو بنویسم ولی نیازی به NET Framework. نداشته باشه؟
ممنون میشم اگه جوابمو سریعتر بفرمایید، آخه خیلی نیاز دارم به جواب این سوال.
باز هم ممنون
می تونید از کتاب Jeffrey Richter به نام Applied .NET Framework استفاده کنید. کتاب Customizing Common Language Runtime هم از MS Press می تونه خیلی توی معماری .NET و درک بهتر اون بهتون کمک کنه.
موفق باشید.
با سی شارپ شما حتما به فریمورک نیاز دارید عملا هیچ راهی دیگری نیست
البته با ویژوال سی ++ میتوانید پروژه های ویندوز 32 بیتی بنویسید
به مراتب در مورد حذف فریم ورک و نحوه انجام اون توی سایت صحبت شده، و این کار کاملا هم امکان پذیرهنقل قول:
با سی شارپ شما حتما به فریمورک نیاز دارید عملا هیچ راهی دیگری نیست
به اینجا یک نگاهی بندازید.
و به مراتب هم نتیجه گیری شده که یا امکان پذیر نیست یا اگر هم هست به صورت کاملا محدود و با دردسر های زیادی همراه .
این نتیجه گیری خود شما بوده است :
نقل قول:
من فکر کردم با توضیحاتی که دادم دیگه مشخص شده که اصلا باید فریم ورک رو حذف کنیم یا نه. اما باز هم برای نتیجه گیری میگم.
بهترین راه برای این کار اینه که به کاربر بگیم باید فریم ورک رو روی سیستم خودش نصب شده داشته باشه تا بتونه به سادگی از تمام برنامه های نوشته شده در .NET استفاده کنه.
استفاده از ابزارهایی که فریم ورک رو حذف می کنن مثل همین نرم افزاری که معرفی شد و یا انجام این کار به صورت دستی بهتره تا حد ممکن انجام نشه، چون تنها سودی که داره اینه که حجم برنامه رو کاهش میده، اما بدی هایی هم داره که به زودی در مورد اونها هم توضیح میدم.
دوستان عزیز خیلی خیلی ازتون ممنونم. و خیلی هم خوشحالم که زود به جوابم رسیدم:
ar.shirazi نوشته است:
بهترین راه برای این کار اینه که به کاربر بگیم باید فریم ورک رو روی سیستم خودش نصب شده داشته باشه تا بتونه به سادگی از تمام برنامه های نوشته شده در .NET استفاده کنه.
ببینم عزیزان من یه چیزی برام نامفهومه:
تمام کسانی که میخوان فریم ورک رو حذف کنن مثل اینکه به یه سری چیزها توجه نمیکنن.
ببینید عزیزان اگه قرار باشه کاربری از یه نرم افزار که با دات نت تهیه شده استفاده کنه باید سیستم مناسبی هم برای راه اندازی اش تهیه کنه،دیگه اون عصر فلاپی دیسک های 200 کیلو بایتی هم گذشت.حالا برای شما چیش مشکل سازه که برای نصب برنامه های دات نت نیاز به 20 مگابایت فریم ورک هست ؟ خوب مگه چی میشه ؟
سیستم فضای کافی داره،سخت افار مناسب هم مهیا هست و 100% هم برای اجرای هرچه بهتر و درست برنامه شما بهش نیاز هست.حالا چرا میخواین حذفش کنین ؟
یعنی مثلا شما اگه بخواین سی دی یکی از نرم افزار هاتون رو به فروش برسونید یا به کاربری بدین،خیلی براتون فرق میکنه و مهمه که فریم ورک 20 مگاباتی هم کنارش باشه یا نه ؟
در مورد اینکه چجوری میشه فریم ورک رو حذف کرد و فقط از کتابخانه های لازم استفاده کرد هم بحث شده و نتیجه تجربی خود بنده خیر هست. این کار یا شدنی نیست و یا خیلی مشکل و باگ ایجاد میکنه.
ببینید ، به هر حال فریمورک یک محدودیت است . هرچقدر هم دات نت فریمورک کم حجم باشد و ...
برای کارهای مثل سی دی های آموزشی و ... که autorun و ... میخواهند مناسب نیست.
اصولا حذف فریمورک کاری است غیر اصولی .
دوستان برام سواله که :
کلمه ado.net مخفف چه کلمه ای است ؟
net. چی ؟
با سپاس
Microsoft .NET is an umbrella term that applies to a wide collection of products and technologies from Microsoft. Most have in common a dependence on the Microsoft .NET Framework, a component of the Windows operating system.
for more information click here.
زبانهای برنامه نویسی در دات نت برای اینکه به Code Machine تبدیل شوند تا توسط CPU مورد استفاده قرار بگیرند ابتدا به Low Level Language تبدیل شده که به آن IL (Intermediat Languge) میگویند.سپس نوسط محیطی تحت عنوان Net Frame Work که بمانند یک سیستم عامل کوچک وظیفه مدیریت پروژه و کدها را بر عهده دارد به Code Machine که در اصطلاح تخصصی به آن Native میگویند تبدیل شده تا در حافظه RAM قرار گرفته و توسط CPU مورد استفاده قرار گیرند . لازم به توضیح است که این مکانیزم تبدیل Net Language به Machine Code ابتدا در زبان برنامه نویسی Java مورد استفاده قرار میگرفت با این تفاوت که به جای Net Frame Work از یک سیستم عامل کوچک به نام Virtual Machine استفاده می شده است.
با عذر خواهی از اظهار نظر این حقیر در وجود اساتید بزرگوار.
در تکمیل (و نیز تکرار) گفته ها در این زمینه، باید بگم این کار توسط CLR که قسمتی از .NET Framework رو تشکیل می ده انجام میشه. قسمتهای دیگه در این امر دخیل نیستن. اگر بخواهیم قضیه رو موشکافانه بررسی کنیم، وظیفه مذکور از وظایف JIT یا Just In-Time Compiler هست که در مورد نحوه عملکرد اون به تفصیل در سایت من و یا دیگر دوستان صحبت کردیم.نقل قول:
سپس نوسط محیطی تحت عنوان Net Frame Work که بمانند یک سیستم عامل کوچک وظیفه مدیریت پروژه و کدها را بر عهده دارد به Code Machine که در اصطلاح تخصصی به آن Native میگویند تبدیل شده تا در حافظه RAM قرار گرفته و توسط CPU مورد استفاده قرار گیرند
موفق باشید
سلام من یک سوال دارم.آیا راهی نیست که لازم نباشهNET Framework 2.0 رابرروی سیستمی که می خواهیم برنامه را برروی آن اجرا کنیم نصب کنیم.وهمچنین اگر راهی نیست چطور یک بسته بسازم که بتونه بر روی سیستمی دیگه هم NET Framework 2.0 و هم برنامه من رو نصب کنه؟ بی نهایت ممنون
در جواب اولی باید بگم نه و در جواب دومی : اگر برای برنامه هاتون توسط خود VS.Net ستاپ درست کنید این کار انجام میشه.