صفحه 2 از 3 اولاول 123 آخرآخر
نمایش نتایج 41 تا 80 از 108

نام تاپیک: استفاده از برنامه های .net بدون framework

  1. #41
    خوب پس فعلا ما تمرکز رو روی دات نت 2 بذاریم ؛ من میگم وجود چه فایلهایی برای اجرای یک برنامه که در دات نت نوشته شده لازمه ؛ غیر از DLLهایی که به رفرنس اضافه شدن و با اونا کاری نداریم اون DLL های عمومی رو کسی لیستش رو داره ؟
    بخشید آقای زواری من این پست رو متوجه نشده بودم.
    توی .NET هیچ DLL ای وجود نداره که نشه بدون اوون برنامه نوشت (البته این در مورد DLL هایی که برای اجرای برنامه لازمه مثل MSCorEE.dll و یا فایلهای مربوط به CLR و یا ... صادق نیست).
    مهمترین DLL ای که برنامه به اوون احتایج داره فایل mscorlib.dll است که نیم اسپیس System و چند تا نیم اسپیس دیگه توی اوون هستند. اگه همه ی دستورات using رو از بالای برنامه پاک کنید باز هم این فایل موقع کامپایل به برنامه اضافه می شه. برای اینکه این فایل اضافه نشه باید موقع کامپایل از سوییچ nostdlib استفاده کنید.


    Run anywhere: Native x86 executable generation allows your .NET application to run anywhere, with or without the Framework. (Windows 9x and NT4 targets not supported
    بهتره تا جایی که ممکنه از فریم ورک استفاده کنیم، مگه اینکه دیگه واقعا ضروری باشه، چون به این ترتیب کدی که ایجاد می کنیم همون کد unmanaged میشه و کلا CLR رو کنار زدیم.
    آخرین ویرایش به وسیله omid_Ahmadi : جمعه 11 فروردین 1385 در 20:13 عصر

  2. #42
    کاربر دائمی آواتار MMAASS
    تاریخ عضویت
    بهمن 1384
    محل زندگی
    یه گوشه دنیا
    پست
    231
    دستتون درد نکنه آقای احمدی
    خیلی قشتگ توضیح دادین
    البته من نمی دونم که واقعا این طوریه یا نه
    من یه چیز دیگه می خوام بپرسم که شاید یه کمی دور از موضوع تاپیک باشه و اونم اینه:
    من دوست دارم یه مقدار net. و framework اون رو رو زیر ساختی یاد بگیرم مثل این چیزایی که توضیح دادین اگه آدرس یا کتابی (چه الکترونیکی چه غیر از اون) سراغ دارین لطف کنین به من هم بگین
    پیشاپیش ازتون تشکر می کنم.

  3. #43
    کتاب در این مورد زیاده، مثل Customizing Common Language Runtime With C#‎ یا Inside IL Assambler یا کلی کتاب دیگه که فقط فریم ورک .NET رو توضیح دادن.
    این دو تا کتاب که گفتم واسه MS Press بود.

    ولی اگه بخوام فقط یه کتاب رو پیشنهاد بکنم، کتاب Applied .NET Framework Programming از Jeffry Richter رو میگم . اوون هم واسه Witellect ه که یکی از اعضای MS Press محسوب میشه. بهترین کتابی بود که تا حالا خوندم.
    نسخه ی مربوط به .NET 2 اوون هم اومده که من هنوز نتونستم e-book یا حتی خود کتابشو پیدا کنم و بخرم (البته فکر کنم که به زودی خود کتابشو بگیرم). اسمه کتابه دومش C#‎ Via CLR است. البته اوون رو به اسم Applied .NET Framework 2 هم میشناسن.

  4. #44
    کاربر دائمی آواتار MMAASS
    تاریخ عضویت
    بهمن 1384
    محل زندگی
    یه گوشه دنیا
    پست
    231
    بابت معرفی کتابها ممنون
    لینک سراغ ندارین؟ البته مقاله باشه با عرض پوزش هم چیزی غیر از مایکروسافت و msdn

  5. #45
    کاربر دائمی آواتار mamadgmail
    تاریخ عضویت
    دی 1384
    محل زندگی
    نصف جهان
    پست
    213
    سلام
    از این حرفایی که زده شد من راجب دات نت یک نتیجه ای گرفتم.
    من قبلن فکر می کردم که زمانی که برنامه رو کامپایل می کنیم مستقیما به کد زبان ماشین تبدیل نمی شه و تبدیل MIL می شه و زمانی که اجرا می شه توسط CLR به کد زبان ماشین تبدیل می شه. من درست نتیجه گرفتم؟؟
    اگه من درست نتیجه گرفتم پس این موضوع یکی از قابلیت های مهم دات نت هستش به خاطر اینکه روی سیستمی که فایل می خواد اجرا بشه کد زبان ماشین تولید می شه و در واقع مشکل
    وابستگی به سخت افزار حل می شه؟؟

  6. #46
    من قبلن فکر می کردم که زمانی که برنامه رو کامپایل می کنیم مستقیما به کد زبان ماشین تبدیل نمی شه و تبدیل MIL می شه و زمانی که اجرا می شه توسط CLR به کد زبان ماشین تبدیل می شه. من درست نتیجه گرفتم؟؟
    زمانی که شما یه برنامه رو کامپایل می کنی به کد IL تبدیل میشه. بعد فایل اوون رو می بری توی یه کامپیوتر دیگه اجرا می کنی. فرض کنه برنامه ی تو دو تا فرم داره. وقتی کاربر برنامه رو اجرا می کنه اول فرم یک نشون اده می شه. پس CLR می یاد JIT رو اجرا می کنه و JIT هم می یاد فقط کد مربوط به فرم یک رو به native تبدیل می کنه. کد فرم دو زمانی به کد native تبدیل میشه که کاربر روی buttonای یا هر کنترل دیگه ای کلیک کنه و بخواد به فرم دو بره.
    این طوری می تونم بگم که هر کلاس در .NET فقط وقتی به کد native تبدیل میشه که لازم باشه.
    در ضمن وقتی که برنامه ی شما به کد native تبدیل شد، این کد توی RAM ذخیره میشه، پس با تموم شدن برنامه این کد هم پاک میشه و وقتی کاربر دو باره برنامه رو اجرا کرد، یک باره دیگه تمام اوون مراحل تکرار میشن. در مورد تاثیر این کار توی سرعت اجرای برنامه ها هم که میشه مفصل صحبت کرد.

    اگه من درست نتیجه گرفتم پس این موضوع یکی از قابلیت های مهم دات نت هستش به خاطر اینکه روی سیستمی که فایل می خواد اجرا بشه کد زبان ماشین تولید می شه و در واقع مشکل
    وابستگی به سخت افزار حل می شه؟؟
    رفع مشکل وابستگی به سخت افزار دلیل انجام این کار نبوده. اینکه کدها اول به یه زبان سطح میانی مثل IL کامپایل میشن بعد به کد native تبدیل میشن دلیل دیگه ای داشته که یکی از نتایج اوون هم رفع وابستگی به سخت افزاره. در ضمن این مورد یه قابلیت مهم محسوب نمیشه، چون در بعضی مواقع این کار نه تنها براتون فایده نداره بلکه ضرر هم داره. مثلا در برنامه هایی که به سرعت بالای اجرای دستورات احتیاج داری، معمولا پیشنهاد می کنن که از کد managed استفاده نکنی و فایلت رو به کد unmanaged تبدیل کنی.
    آخرین ویرایش به وسیله omid_Ahmadi : شنبه 12 فروردین 1385 در 07:27 صبح

  7. #47
    بابت معرفی کتابها ممنون
    لینک سراغ ندارین؟ البته مقاله باشه با عرض پوزش هم چیزی غیر از مایکروسافت و msdn
    لینک اینترنتی برای اینها سراغ ندارم، اما اگه تو emule یه سرچ بکنی همشونو پیدا می کنی. اگر هم بخوای میتونم eD2k Link مربوط به این فایلها رو بهت بدم تا بتونی با emule یا edonkey دانلودشون کنی

  8. #48
    کاربر دائمی
    تاریخ عضویت
    بهمن 1382
    محل زندگی
    فعلا ایران - فعلا تهران
    پست
    2,628
    آقای احمدی ممنون از راهنمایتون ؛
    در ضمن دوستان در مورد XenoCode فعلا هیچ جا منتشر نشده ؛ فعلا باید منتطر بمونیم
    آخرین ویرایش به وسیله بابک زواری : شنبه 12 فروردین 1385 در 18:33 عصر

  9. #49

    Question

    آقای احمدی من این قسمتو متوجه نشدم
    زمانی که شما یه برنامه رو کامپایل می کنی به کد IL تبدیل میشه. بعد فایل اوون رو می بری توی یه کامپیوتر دیگه اجرا می کنی
    CLR می یاد JIT رو اجرا می کنه و JIT هم می یاد فقط کد مربوط به فرم یک رو به native تبدیل می کنه
    CLR از کجا میفهمه سیستم اول و دوم کدومه؟
    آن لحظه که تنها اعتبار کسی که مساله ای را مطرح کرده است، شما را در اشتباه بودن ایده هایتان قانع کرد،
    آن لحظه،
    لحظه وداع شما با دنیای خلاقیت و پیشرفت خواهد بود. . .

    برنولی

  10. #50
    آقای احمدی ممنون از راهنمایتون
    خواهش می کنم استاد، امیدوارم مفید بوده باشه.

    CLR از کجا میفهمه سیستم اول و دوم کدومه؟
    نمی دونم منظورتون از سیستم اول و دوم کدومه! ببینید مورد اینکه کدها به IL تبدیل مبشن و بعد موقع اجرا توی سیستم مقصد به کد نیتیو کانورت می شن که مشخصه! اگر مشکلی در این مورد دارید بفرمایید.

    اما در مورد خود این کانورت شدن هم باید بگم که این طور نیست که اگر فرضا یه برنامه 10 تا فرم داره، یا بهتر بگم اگر فرضا یه برنامه 10 تا کلاس داره، به محض اینکه کاربر روی فایل برنامه کلیک کرد؛ همه ی کلاسها با هم کامپایل بشن بعد برنامه اجرا بشه.

    فرض کنید وقتی کاربر روی فایل برنامه کلیک میکنه اول متد Main که در کلاس A هست باید اجرا بشه، بنابراین اول JIT میاد کلاس A رو به صورت کامل کامپایل می کنه و در رم قرار میده. بعد زمانی که در هر متدی از کلاس A کلاس B رو استفاده کنه، JIT میاد کلاس B رو کانورت میکنه و به همین ترتیب. یعنی فقط وقتی یه کلاس بخواد استفاده بشه به کد نیتیو تبدیل میشه.

  11. #51
    آقای احمدی در اینجا منظور فقط DLLها نیست بحث انتقال CLR هم هست در اونصورت چی ؟
    میشه CLR رو هم آورد ؟
    در ضمن میشه آدرس فایل Ngen.exe رو هم بفرمائید ؟ با VS نصب میشه یا باید جداگانه اونو گرفت ؟

  12. #52
    در ضمن آقای احمدی توضیحاتتون بسیار عالی بود ؛ اگر یکم مطالب بیشتر در اینباره بذارید خیلی ممنون میشیم.

  13. #53
    سلام دوستان من دارم کم کم به این نتیجه میرسم که .net داره کار دستمون میده و دارم 100 رحمت میفرستم به php خودمون
    در حالت کلی همه شما میدونید که به غیر از کامپیوتر برنامه نویسان .net در هیچ کامپیوتری framework نیست یعنی تقریبا 90 %
    و کمتر کسی خوشش میاد که یک برنامه 50 یا 60 مگابایتی را نصب کنه تا یک برنامه یک مگابایتی بالا بیاد یعنی واقعا دور از اقله
    و حالا یک سوال پس این install shield چطوری میتونست framework را در برنامه جای بده ( البته خودم تا حالا موفق به امتحان کردنش نشدم)

  14. #54
    php چه ربطی به دات نت داره؟! (بجز مورد asp.net یعنی همه قدرت دات نت رو asp میدونی؟)
    دور از عقل نیست ولی بنظرم برنامه دات نت خیلی قوی و کاربر پسند هست (بشرطی که برنامه نویس درست کارکنه) و زبانهای کمی میتونند جلوی ویژوالهای مایکروسافت مقاومت کنند (البته برلند یکی از قدرتهاست)
    install shiled هیچوقت فریم ورک رو داخل برنامه شما جای نمیده. بلکه تو پروژه اینستالرش قسمت نصب فریم ورک رو هم میزاره که با برنامه تون اجرا میشه و نصب میشه!
    (شرمنده بی ربط بود ;) )

  15. #55
    کاربر دائمی آواتار mamadgmail
    تاریخ عضویت
    دی 1384
    محل زندگی
    نصف جهان
    پست
    213
    پس با این اوصافی که گفتن نرم افزارXenoCode مستقیما کد زبان ماشین رو تولید می کنه؟؟ این درسته؟؟ خوب پس بحث dll ها یک جورایی منتفی هستش چون حتما نیاز به CLR هست؟
    حالا چطور می شه MIL رو به کد ربان ماشین تبدیل کرد؟ فکر کنم باید دنبال جواب این سوال بگردیم؟(البته من که نه استادای اینجا)

  16. #56
    آقای once4ever من در مورد کل برنامه نویسی صحبت کردم هیچ زبان برنامه نویسی چه تحت وب چه app به سادگی و قدرت و راحتی php نیست من از این لحاظ گفتم

    در مورد برنامه های .net هم این بزگترین ضعف .net هستش
    میدونم محیط .net خوبه قدرتش زیاده از هر لحاظ خیلی خوبه ولی این قضیه framework خیلی افتضاه
    البته اینا حرف چرند چون ما مجبوریم با .net کار کنیم
    در ضمن آیا خود میکروسافت واسه این مسئله کاری انجام نداده

  17. #57
    با سلام
    ببخشید سوالی برای من پیش اومد :
    مایکروسافت خودش چیکار می کنه ؟
    برنامه هایی که مایکروسافت میده بیرون چرا به دات نت فریم ورک نیازی نداره ؟
    مایکروسافت به چه زبانی برنامه هاش رو می نویسه ؟ اونکه اینهمه روی دات نت سرمایه گذاری کرده چرا خودش تو برنامه هاش از دات نت فریم ورک استفاده نمی کنه یا شایدم استفاده می کنه ولی چون سورسش دست خودشه پس می تونه کاری کنه که نیازی به نصب دات نت فریم ورک نباشه .
    ممنون .

  18. #58
    کاربر دائمی آواتار ali_kolahdoozan
    تاریخ عضویت
    بهمن 1384
    محل زندگی
    اون سر دنیا
    پست
    1,631
    اصلا وقتی آدم یه برنامه خوب می نویسه من که هر وقت نوشتم . یعنی برنامه ای که ملت بهش احتیاج دارن . می گم کیست رو بیار براش نصب می کنم . راحت . اگه برنامه خوب باشه و ملت بهش احساس نیاز کنند این کار رو می کنند در ضمن install shild نسخه 1.5 رو نصب می کنه واسه 2 فکری کردین برای net . 2005

  19. #59
    (میدونم از موضوع اصلی دور میشم ولی یه چیزای بدنیست گفته بشه )
    من خیلی وقت پیش با ویژوال سی کارمیکردم که یک win32 application ایجاد میکرد. اکثر سیستمهای (بزرگ) مایکروسافت با این ویژوال طراحی میشه. اگه کارکرده باشید میبینید که آسون نیست و مثلا برای مدیریت یک button ساده باید خیلی کدبنویسید ولی یک زبان قدرتمند هست وبرنامه ساخته شده با اون تو هرویندوزی کارمیکنه بدون نیاز به چیزدیگه ای.
    وقتی مایکروسافت اولین نسخه C#‎.net رو همزمان باvs.net مطرح کرد نمیخواست قدرت مارو زیاد کنه بلکه برعکس با ایجاد محیطی آسان و برنامه نویسی ساده موفق شدوابستگی کاربران رو به خودش بیشترکنه و نکته دیگه اش - که یادم هست اون زمان خیلی مقاله ها با این موضوع دیدم - این بود که سطح فکر برنامه نویسها به سمت سطح عملکرد vb و C#‎ بره و به این طریق رغیب کمتری برای خودش داشته باشه. چرا هیچکس به فکرساختن چیزی شبیه office مایکروسافت نیست(به قیمت فروش این بسته توجه کنید)؟ این مجموعه با vC++‎ مدیریت شده و زبانهایی که بالا گفتم به سختی میتونند همچین چیزی بسازند. مایکروسافت همیشه به فکرایجادوابستگی هست و دات نت فریم ورک خوب تونسته اینکارو انجام بده گرچه همیشه منطقی وجودداشته که اونو توجیه کنه.
    (یکم هم باربط حرف بزنم) چرا دنبال راهی هستید که برنامه تون دیگه به فریم ورک احتیاج نداشته باشه؟ اینکه یک مزیت بشمار میاد و تنها سختیش نصب فریم ورک هست که اونم با اینستالرها میتونید انجام بدید! این اشتباه هست کاری که مایکروسافت زورزده انجام بده شما بخواهید باهمون تکنولوژی برگردونید.
    شرمنده

  20. #60
    آقای احمدی در اینجا منظور فقط DLLها نیست بحث انتقال CLR هم هست در اونصورت چی ؟
    میشه CLR رو هم آورد ؟
    من که خدوتون عرض کردم CLR برای چی استفاده میشه و حتی چطور فراخوانی میشه. اول که برنامه می خواد اجرا بشه خط حاوی JMP _CorExeMain با فراخوانی متد _CorExeMain (ویا معادل اون _CorDllMain) باعث میشه که CLR اجرا بشه. بنابراین با حذف این خط دیگه CLR اجرا نخواهد شد. پس می تونید خودتون می تونید قسمت اجرای CLR رو از یه فایل حذف کنید. البته به این ترتیب باید کاری کنید که فایل نیازی به CLR نداشته باشه.

    در ضمن میشه آدرس فایل Ngen.exe رو هم بفرمائید ؟ با VS نصب میشه یا باید جداگانه اونو گرفت ؟
    با .NET Framework عرضه شده. یعنی اگر الان روی سیستم شما .NET نصبه، پس این فایل رو هم دارید. برای دسترسی به اوون هم می تونید از Visual Studio Command Prompt استفاده کنید. برای آدرسش هم توی فولدری که ویژوال استودیو نصب شده اسم این فایل رو سرچ کنید.

    اگر یکم مطالب بیشتر در اینباره بذارید خیلی ممنون میشیم.
    سعی می کنم که در اولین فرصت چند مقاله ای رو قبلا در این سایت در رابطه با معماری .NET و مدیریت حافظه در اون، گذاشته بودم رو به صورت PDF اینجا Upload کنم، تا اگر دوست داشتید بتونید استفاده کنید.

    در حالت کلی همه شما میدونید که به غیر از کامپیوتر برنامه نویسان .net در هیچ کامپیوتری framework نیست یعنی تقریبا 90 %
    و کمتر کسی خوشش میاد که یک برنامه 50 یا 60 مگابایتی را نصب کنه تا یک برنامه یک مگابایتی بالا بیاد یعنی واقعا دور از اقله
    و حالا یک سوال پس این install shield چطوری میتونست framework را در برنامه جای بده
    کی گفته که فقط توی کامپیوتر ماها .NET Framework نصبه؟ .NET Framework به صورت پیش فرض با ویندوز XP SP2 نصب میشه. در ضمن احتمال زیادی داری که یکی از برنامه ها قبلا اوون رو نصب کرده باشه.
    شما این فکر رو نمی کنید که میشه با نصب یه برنامه ی 30 یا 40 مگابایتی، هر برنامه ای که با .NET نوشته میشه رو به راحتی XCOPY به یه سیستم دیگه منتقل کرد. با استفاده از این روش مزایایی برای افرادی که از برنامه استفاده می کنن به وجود می یاد که واقعا غیر قابل چشم پوشیه! مثالا اینکه به راحتی با حذف فولدر برنامه می تونن برنامه رو با کل اطلاعات اوون از سیستم حذف کنن، بدون اینکه فایلی از اوون توی سیستم باقی بمونه.

    پس با این اوصافی که گفتن نرم افزارXenoCode مستقیما کد زبان ماشین رو تولید می کنه؟؟ این درسته؟؟ خوب پس بحث dll ها یک جورایی منتفی هستش چون حتما نیاز به CLR هست؟
    بله، کاری که این نرم افزار میکنه اینه که کد برنامه و کد فایلهای DLL ای که به وسیله ی اون برنامه مورد استفاده قرار گرفته رو به کد نیتیو تبدیل میکنه به این ترتیب نیاز به JIT و GC از بین میره. منظورتون رو از اینکه دیگه DLL ها منتفی هستند رو متوجه نشدم.

    حالا چطور می شه MIL رو به کد ربان ماشین تبدیل کرد؟ فکر کنم باید دنبال جواب این سوال بگردیم؟(البته من که نه استادای اینجا)
    گفتم که، برای این کار می تونید از ngen استفاده کنید. این برنامه مسئول تولید کد نیتیو از کدهای IL هست.

    آقای once4ever من در مورد کل برنامه نویسی صحبت کردم هیچ زبان برنامه نویسی چه تحت وب چه app به سادگی و قدرت و راحتی php نیست من از این لحاظ گفتم
    بهتره مسیر بحث رو عوض نکنیم. ممنون

    در مورد برنامه های .net هم این بزگترین ضعف .net هستش
    میدونم محیط .net خوبه قدرتش زیاده از هر لحاظ خیلی خوبه ولی این قضیه framework خیلی افتضاه
    من نمی دونم چرا شما فکر می کنید که این یه افتضاحه؟ شما اصلا در مورد مزایایی که این سیستم داره چیزی می دونید؟ مزایای این روش چند برابر معایب اونه. البته عیب اون این طور که شما میگید اینکه باید به کاربر بگیم یه فایل 30 یا 40 مگابایتی رو نصب کن تا از این به بعد بتونی تمام برنامه هایی رو که با .NET نوشته می شن رو فقط با دریافت فایل exe ی اوون بتونی استفاده کنی.

    مایکروسافت خودش چیکار می کنه ؟
    برنامه هایی که مایکروسافت میده بیرون چرا به دات نت فریم ورک نیازی نداره ؟
    مایکروسافت به چه زبانی برنامه هاش رو می نویسه ؟ اونکه اینهمه روی دات نت سرمایه گذاری کرده چرا خودش تو برنامه هاش از دات نت فریم ورک استفاده نمی کنه یا شایدم استفاده می کنه ولی چون سورسش دست خودشه پس می تونه کاری کنه که نیازی به نصب دات نت فریم ورک نباشه .
    برنامه هایی که مایکروسافت داده مثل Office یا VS یا ... معمولا قدیمیتر از .NET هستن و فکر کنم اونقدر بزرگ باشن که نشه به راحتی پلت فرم اونها رو تغییر داد. فکر کنم دلیل این مورد، همین باشه. ولی شما به سایتهاش نگاه کنید، تقریبا همه به .NET منتقل شدن.
    آخرین ویرایش به وسیله omid_Ahmadi : دوشنبه 14 فروردین 1385 در 09:27 صبح

  21. #61
    سلام
    آقای احمدی من این ngen.exe رو در مسیر نصب vs8 پیدا نکردم.

  22. #62
    در ضمن حالا اگه ما با این ngen کدهامون رو به native تبدیل کنیم، ای یعنی چه؟ یعنی آیا وابستگی برنامه به CLR قطع میشه؟ آیا Framework نمیخوایم؟ البته می دونم قاعدتا جواب هر دو منفیه ولی نمیدونم پس این ngen چی کاره است!!!

  23. #63
    من این ngen.exe رو در مسیر نصب vs8 پیدا نکردم.
    لازم نیست این فایل رو پیدا کنید. توی فولدر Tools در فولدر Visual Studio 2005 تو منوی Start یه Visual Studio Command Prompt هست که توی اوون می تونید از دستور ngen برای تولید کد نیتیو استفاده کنید.

    در ضمن حالا اگه ما با این ngen کدهامون رو به native تبدیل کنیم، ای یعنی چه؟
    این یعنی اینکه کد فایل شما چه فایل DLL و چه فایل EXE به جای اینکه محتوی کد IL باشه، حاوی کد Native خواهد بود و دیگه لازم نیست CLR برای اینکه برنامه ی شما رو اجرا کنه از JIT استفاده کنه.
    این وابستگی فایل شما رو به CLR قطع میکنه اما باز هم به فریم ورک نیاز دارید. چون فریم ورک دو قسمت داره، یکیش CLR هست که به این ترتیب دیگه به اون نیازی نخواهید داشت، اما دومیش Class Library هست که با Native کردن برنامه باز هم به کلاسهای توی اون احتیاج خواهید داشت. حالا اگه این فایلها خودشون حاوی کد IL باشن، پس اینا برای اجرا به CLR نیاز دارن و در نتیجه برنامه ی شما به CLR احتیاج خواهد داشت.

    البته می دونم قاعدتا جواب هر دو منفیه ولی نمیدونم پس این ngen چی کاره است!!!
    دلیل استفاده از ngen این نیست که نیاز به CLR رو رفع کنه. همون اول هم گفتم، فقط جایی باید قسمتهای مختلف CLR مثل JIT، GC و ... رو از کار بندازیم که بخواهیم به حداکثر سرعت اجرای برنامه دست پیدا کنیم. هر چه قدر هم که این ابزارها سریع و هوشمند کار کنن ولی باز هم مقداری از سرعت برنامه رو کم می کنن (البته این تو برنامه های خاصی خودش رو نشون می ده و اغلب به نظر نمیآد).
    حال اگر برنامه ی شما یه کلاسی داشت که خواشتید اون کلاس با حداکثر سرعت برنامه کار کنه می تونید اون را با استفاده از ngen به کد نیتیو تبدیل کنید تا موقع اجرای متدهای این کلاس CLR بره کنار.
    یکی دیگه از دلایل استفاده از ngen اینکه قسمتهایی رو که کدشون برامون خیلی مهمه و نمی خواهیم تحت هیچ شرایطی از دست بره رو با استفاده از این ابزار به زبان ماشین تبدیل کنیم. چون می دونید که امنیت کد IL از زبان ماشین خیلی کمتره.

  24. #64
    سلام
    1- اطلاعاتتون تو این زمینه ها خیلی کامله، ممنون
    2- آیا با توجه به فرمایشات شما دیگه با استفاده از ngen نیازی به برنامه هایی مثل XenoCode برای کد کردن اطلاعات نیست؟
    3- اصلا چرا اساسا وقتی سرعت کدهای Native بالاتره، خود دات نت موقع کامپایل کد IL ایجاد میکنه؟
    4- استفاده از ngen چه جوریه؟ البته ببخشید که بدون اینکه یه ذره باهاش ور برم پرسیدم، گفتم شاید بد نباشه بازم از اطلاعات شسته رفته شما استفاده کنم :-)

  25. #65
    آیا با توجه به فرمایشات شما دیگه با استفاده از ngen نیازی به برنامه هایی مثل XenoCode برای کد کردن اطلاعات نیست؟
    من با نرم افزار XenoCode کار نکردم. اما این طور که از در مورد عملکرد این نرم افزار توی این تاپیک شنیدم، مراحلی که گفتم رو طی میکنه تا بتونه برنامه ی شما رو بدون .NET اجرا کنه.

    اصلا چرا اساسا وقتی سرعت کدهای Native بالاتره، خود دات نت موقع کامپایل کد IL ایجاد میکنه؟
    بحث در این مورد خیلی مفصله. سعی می مکنم که به زودی یه مقاله در این مورد توی سایت آپلود کنم.

    استفاده از ngen چه جوریه؟
    از دستور ngen با سوییچ ? استفاده کنید، راهنماییتون می کنه.

  26. #66
    سلام
    1- بازم ممنون
    2- منظور من از استفاده از XenoCode فقط حذف فریم ورک نبود. بیشتر منظورم از لحاظ امنیتی و کد کردن اطلاعات بود چون همه میدونیم در حال حاضر کدهای کامپایل شده دات نت به راحتی برگشت پذیرند و این از لحاظ امنیتی یعنی صفر. حالا برنامه هایی از قبیل XenoCode (علاوه بر حذف فریم ورک) کدها را هم غیر قابل بازگشت میکنند. میخواستم این را بدونم که آیا با Native کردن کدها، اطلاعات مثل زمان خدابیامرز VB6 از لحاظ برگشت پذیری تقریبا غیر ممکن میشن (البته غیر از تبدیل شدن به زبانهای سطح پایین مثل اسمبلی)
    3- منتظر مقالتون می مونم. چون واقعا دلم میخواد بدونم چرا میکروسافت وقتی VS6 رو به VS.Net تبدیل کرد، اینقدر امنیت رو پایین آورد؟ حالا هم که شما میفرمایید از لحاظ سرعت هم که کدهای IL پایینتر از کدهای Native است. پس اصولا به چه دردی میخورن؟!!
    4- در مورد دستور ngen هم البته ممنونم. ولی دیگه این سوئیچ را که بلدیم :- ( منظورم این بود که چیزهایی از این دست را بفرمایید که مثلا: آیا باید فایلهای کامپایل شده همگی تبدیل شوند یا فقط فایلهای Exe,Dll؟ آیا باید پیش از کامپایل استفاده کرد یا پس از کامپال؟ اگر به قول شما بخواهیم فقط بعضی از کلاسها را Native شده کامپایل کنیم چه؟ و تو این مایه سوالات...
    5- بازم ممنون

  27. #67
    کاربر دائمی آواتار ali_kolahdoozan
    تاریخ عضویت
    بهمن 1384
    محل زندگی
    اون سر دنیا
    پست
    1,631
    بالاخره چی شد ؟ چی کار باید کرد ؟

  28. #68
    سلام
    منم موافقم که:
    نقل قول نوشته شده توسط ali_kolahdoozan
    بالاخره چی شد ؟ چی کار باید کرد ؟

  29. #69
    من فکر کردم با توضیحاتی که دادم دیگه مشخص شده که اصلا باید فریم ورک رو حذف کنیم یا نه. اما باز هم برای نتیجه گیری میگم.
    بهترین راه برای این کار اینه که به کاربر بگیم باید فریم ورک رو روی سیستم خودش نصب شده داشته باشه تا بتونه به سادگی از تمام برنامه های نوشته شده در .NET استفاده کنه.
    استفاده از ابزارهایی که فریم ورک رو حذف می کنن مثل همین نرم افزاری که معرفی شد و یا انجام این کار به صورت دستی بهتره تا حد ممکن انجام نشه، چون تنها سودی که داره اینه که حجم برنامه رو کاهش میده، اما بدی هایی هم داره که به زودی در مورد اونها هم توضیح میدم.

  30. #70
    کاربر دائمی آواتار ali_kolahdoozan
    تاریخ عضویت
    بهمن 1384
    محل زندگی
    اون سر دنیا
    پست
    1,631
    این خیلی خوبه . چون یه مشگل که نیست . از لحظه شروع نصب من باید مراحل زیر رو طی می کردم حالا برنامه نصب من 3 خط شد :
    1- کاربر محترم net. frame work 2 را نصب کنید
    2- کاربر محترم sql desktop engine رو هم حتما نصب کنید
    3- برنامه خودتون رو هم که نوشتم کپی کنید روی هارد

    این طوری خیلی خوبه در آخر هم می نویسم با عرض پوزش اینها همه تقصیر شرکت ماکروسافت است و به من ربطی نداره . آهان یادم رفت اول برنامه هم می نویسم . لطفا فقط افراد متخصص این برنامه رو نصب کنن . اینطوری خیلی خوب شد .

  31. #71
    دوست من، من این توضیحات و در آخر نتیجه گیری رو برای افرادی گفتم که دلایل منطقی رو قبول می کنن. شما می تونید هر جور که دوست دارید برنامه تون رو بنویسید و هر جور هم که دوست دارین اوون رو توزیع کنید.

  32. #72
    کاربر دائمی آواتار ali_kolahdoozan
    تاریخ عضویت
    بهمن 1384
    محل زندگی
    اون سر دنیا
    پست
    1,631
    نه منظورم شما نبودید . دست شما هم درد نکنه . منظورم گرفتاری ناشی از net . و 000 بود اینکه تقصیر شما یا دیگران نیست . منظورم مسائلی است که net. برای کاربراش پیش آورده . واقعا همینوطره که نوشتم خیلی از شرکتها یک نفر رو گرفتن اینطرف اونطرف میره برنامه هاشون رو نصب می کنه براشون

  33. #73
    من فکر کردم با توضیحاتی که دادم دیگه مشخص شده که اصلا باید فریم ورک رو حذف کنیم یا نه. اما باز هم برای نتیجه گیری میگم.
    بهترین راه برای این کار اینه که به کاربر بگیم باید فریم ورک رو روی سیستم خودش نصب شده داشته باشه تا بتونه به سادگی از تمام برنامه های نوشته شده در .NET استفاده کنه.
    استفاده از ابزارهایی که فریم ورک رو حذف می کنن مثل همین نرم افزاری که معرفی شد و یا انجام این کار به صورت دستی بهتره تا حد ممکن انجام نشه، چون تنها سودی که داره اینه که حجم برنامه رو کاهش میده، اما بدی هایی هم داره که به زودی در مورد اونها هم توضیح میدم.
    موافقم.
    ببینید راهی برای فرار از دات نت هم هست. شما چرا نمیرید با vb یا vC++‎ پروژه هاتون بنویسید؟!! ... هیچوقت تمام راحتیهایی که شما دوست دارید یکجا جمع نمیشوند.:لبخندساده

  34. #74
    کاربر دائمی آواتار ali_kolahdoozan
    تاریخ عضویت
    بهمن 1384
    محل زندگی
    اون سر دنیا
    پست
    1,631
    این هم پیشنهاد جالبی است . اصلا صورت مسئله را پاک کنیم

  35. #75
    اصلا جالب نیست که صورت مساله رو پاک کنید
    فکر یافتن راه بهتر باشید هر چند راه حل های حاضر بد نیستن

  36. #76
    کاربر دائمی آواتار habedijoo
    تاریخ عضویت
    اردیبهشت 1384
    محل زندگی
    تهران
    پست
    538
    دوستان این سوال فقط یک جواب داره .

    بدون نصب دات نت فریم ورک برنامه هایی که با نسخه های دات نت نوشته میشوند اجرا نمیشود .

    من نمیدانم چرا وقتی جواب یک سوالی منفی باشه به نظر میرسه که صورت مسئله پاک شده

    من این سوال رو در فوروم خارجی مطرح کردم و اینو رو در جوابم نوشتن . ( البته بقیه جوابها هم چنین چیزی بود )

    It doesn't matter how many classes in the Framework your app uses. .NET apps are compiled to MSIL, not machine code. The MSIL must be compiled on-demand by the .NET JIT compiler. This compiler is part of the .NET Framework. No Framework means no compilation and no compilation means no execution.

  37. #77
    سلام
    آقای احمدی لطفا یه نگاهی به پست 67 بیندازید و یه نیمچه توضیحی در مورد سوالات بدید
    ممنون

    برای اینکه لازم نباشه یه صفحه عقب برید اینم مطلبش:
    نقل قول نوشته شده توسط niloufar
    سلام
    1- بازم ممنون
    2- منظور من از استفاده از XenoCode فقط حذف فریم ورک نبود. بیشتر منظورم از لحاظ امنیتی و کد کردن اطلاعات بود چون همه میدونیم در حال حاضر کدهای کامپایل شده دات نت به راحتی برگشت پذیرند و این از لحاظ امنیتی یعنی صفر. حالا برنامه هایی از قبیل XenoCode (علاوه بر حذف فریم ورک) کدها را هم غیر قابل بازگشت میکنند. میخواستم این را بدونم که آیا با Native کردن کدها، اطلاعات مثل زمان خدابیامرز VB6 از لحاظ برگشت پذیری تقریبا غیر ممکن میشن (البته غیر از تبدیل شدن به زبانهای سطح پایین مثل اسمبلی)
    3- منتظر مقالتون می مونم. چون واقعا دلم میخواد بدونم چرا میکروسافت وقتی VS6 رو به VS.Net تبدیل کرد، اینقدر امنیت رو پایین آورد؟ حالا هم که شما میفرمایید از لحاظ سرعت هم که کدهای IL پایینتر از کدهای Native است. پس اصولا به چه دردی میخورن؟!!
    4- در مورد دستور ngen هم البته ممنونم. ولی دیگه این سوئیچ را که بلدیم :- ( منظورم این بود که چیزهایی از این دست را بفرمایید که مثلا: آیا باید فایلهای کامپایل شده همگی تبدیل شوند یا فقط فایلهای Exe,Dll؟ آیا باید پیش از کامپایل استفاده کرد یا پس از کامپال؟ اگر به قول شما بخواهیم فقط بعضی از کلاسها را Native شده کامپایل کنیم چه؟ و تو این مایه سوالات...
    5- بازم ممنون
    آخرین ویرایش به وسیله niloufar : یک شنبه 20 فروردین 1385 در 16:55 عصر

  38. #78
    به نظر من اوون پاسخی که توی اوون فوروم خارجی گفته شده میشه بهش گفت پاک کردن صورت مسئله، نه این چند صفحه صحبتی که در اینجا نوشته شده و مسئله رو کاملا بررسی کرده. در هر صورت بهتره که دیگه بحث اضافی در این مورد نکنیم.

    خانم نیلوفر، مقاله ای که گفته بودم رو در تاپیک زیر آپلود کردم. شما و دوستان دیگه اگه خواستن می تونن از اوون استفاده کنن.
    اگر هم سوالی در زمینه ی مطالب داخل اون بود و یا قسمتیش نامفهوم بود در ادامه ی همون تاپیک بنویسید.

    http://www.barnamenevis.org/sh...827#post213827

  39. #79
    کاربر دائمی آواتار pooyanm
    تاریخ عضویت
    فروردین 1385
    محل زندگی
    Esfahan - Iran
    پست
    567
    سلام بحث واقعا جالبی بود ولی من هنوز به یک راه حل قطعی برای نوشتن با دات نت و اجرای مستقل از اون نرسیدم مشکل من به این شکله که:

    من برای معرفی منابع یک برنامه Cross-Platform به ویندوز و لینوکس دو برنامه کوچک جداگانه نوشتم برای ویندوز با دلفی که مشکل .net هم نداره حالا من این برنامه کوچک را به C#‎ 2005 تبدیل کردم فقط برای اینکه توسعه در این ساختار و Syntax شی گرا را به vb, Delphi, VC ترجیح می دم چون شباهت زیادی به Syntax جاوا داره. در نتیجه من فقط به خاطر ساختار نگارشی C#‎ می خوام اونا جایگزین دلفی کنم. تاکید می کنم به کتابخانه ها و امکانات چندانی از C#‎ نیاز ندارم فقط می خوام برنامه ام یک exe برای معرفی منابع داشته
    باشه که سورس اون با ساختار زبان C#‎ باشه.

    حالا چه روشی برای اجرای بدون وابستگی به .netfx مناسب من هست.

    در ضمن آیا C#‎ Builder می تونه بدون نیاز به .net framework این Syntax را در اختیار من بذاره.

  40. #80
    در مورد C#‎ Builder اطلاعی ندارم، اما فکر نمی کنم چنین قابلیتی داشته باشه، برای اجرای برنامه بدون .NET Framework اگر به این نتیجه رسیدید که حتما باید این کار رو انجام بدید، می تونید از eXno Code استفاده کنید (اگر اسمش رو درست نوشته باشم).

صفحه 2 از 3 اولاول 123 آخرآخر

تاپیک های مشابه

  1. Net Compact Framework Net Framework
    نوشته شده توسط manitack در بخش C#‎‎
    پاسخ: 1
    آخرین پست: دوشنبه 12 آذر 1386, 06:34 صبح
  2. طرح دیدگاه ها در خصوص Net FrameWork.
    نوشته شده توسط sm در بخش VB.NET
    پاسخ: 3
    آخرین پست: جمعه 14 اردیبهشت 1386, 19:43 عصر
  3. اجرای بدون framework
    نوشته شده توسط BitMap در بخش C#‎‎
    پاسخ: 3
    آخرین پست: جمعه 18 فروردین 1385, 17:29 عصر
  4. Framework 1.1 and 2.0
    نوشته شده توسط SYSMAN در بخش VB.NET
    پاسخ: 1
    آخرین پست: یک شنبه 23 بهمن 1384, 18:37 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •