صفحه 2 از 2 اولاول 12
نمایش نتایج 41 تا 59 از 59

نام تاپیک: معایب دات نت

  1. #41
    کاربر تازه وارد
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    کرمانشاه
    پست
    51
    با سلام
    ازضعف های دات نت و ارتباطش با برنامه نویسی شیء گرا میتوان به Special Class ها اشاره کرد.این نوع کلاس ها (مثلا کلاس Array) رو علیرغم چیزی که نشون میدن نمیتوان در کاربردهای معمولی ازشون استفاده کرد.مثلا در ژنریک ها.به عنوان مثال اگر بخایم یه متد ژنریک رو بنویسیم که بتونه تمام عناصر آرایه های یک بعدی (به جز آرایه های دندانه دار) رو
    بدون در نظر گرفتن نوعشون چاپ کنه اگر این متد رو برای پذیرش تمام انواع آرایه های یک بعدی اینطور
    public void IterateAll<T>(T myArray) where T:System.Array

    بنویسیم اون موقس که کامپایلر میگه نمی تونی از این کلاس استفاده کنی چون این کلاس
    Special Class میباشد.
    البته خوشبختانه جایگذین اون کلاس وجود داره یعنی بجای System.Array بنویسیم ILsit
    اما دیگه از متدهای مخصوص خود کلاس System.Array خبری نیست
    از طرفی تعریف این کلاس از سوی دات نت اینجوری بیان میشه
    Provides methods for creating, manipulating, searching, and sorting arrays, thereby serving as the base class for all arrays in the common language runtime
    اینکه بررسی این کلاس در CLR هستش به این خاطره که ما انواع مختلفی از آرایه ها رو ایجاد میکنیم و این بررسی در CLR طبیعیه.اما مگر ژنریک ها هم در زمان کامپایل بررسی نمیشن
    و کاملا دینامیک نیستن پس تعامل اونا با تمام کلاس های موجود در دات نت باید طبیعی و امری محتمل به نظر بیاد.ژنریک ها نه باSpecial Class بلکه باید با تمام کلاس های دات نت طبیعی کار کنن.ژنریک ها اوج قدرت برنامه نویسی شیء گرای خالصن پس تمام عناصر یک زبان باید در خدمتشون باشن نه اونا رو محدود کنن.کلا وجود عنصری بنام Special Class
    در دات نت وتعاملاشون با ژنریک ها خلاف OOP می باشد و ضعفی در OOP ی دات نت محسوب میشن.

  2. #42
    نقل قول نوشته شده توسط ar.shirazi مشاهده تاپیک
    بله ، حق با شماست .
    کاربر هم خیلی راحت به بنده میگوید من میروم از یک شرکت دیگه نرم افزار را خریداری میکنم. خیلی راحت !
    بنده میتوانم یک نرم افزار حسابداری با دلفی بنویسم که روی پنتویم 2 هم اجرا شود و دهها مشتری راضی داشته باشم که با همان سیستم قدیمی میتوانند کار کنند
    یا اینکه با دات نت 2005 و sql server 2005 بنویسم که یک گیگ رم بخواهد و بگویم بروید 500 هزار تومان خرج کنید تا نرم افزار من اجرا شود .
    فریمورک.
    سلام
    فکر می کنم نگاهی به شرکت های بزرگ، چه در خارج و چه حتی در ایران (مثل همکاران ، رایورز، داده پردازان دوران و ... ) این نکته را مشخص می کند که شرکت های موفق ، هیچ وقت نرم افزار خود را برای سازگاری با سخت افزار های ضعیف ننوشته اند و همواره بازار سخت افزار و نرم افزار در جهت تقویت هم حرکت کرده اند. امروز قیمت 512 مگا بایت رم در حدود 40,000 تومان است و اگر مشتری به خاطر افزایش رم سیستم هایش حاضر به خرید نرم افزار از شما نباشد مطمئن باشید این مشتری چند ماه دیگر حاضر به پرداخت هزینه پشتیبانی هم نیست و سال اینده حاضر به پرداخت هزینه به روز رسانی نرم افزار هم نخواهد بود. بنابراین اگر با دید دراز مدت نگاه کنید شاید اصولا خرید نرم افزار توسط چنین مشتریانی حتی به صرفه نیز نباشد. کما اینکه هر روز شاهد ورشکستگی شرکتهای نرم افزاری هستیم که پله پله با خواسته های مشتری قیمت خدمات خود را پایین آورده اند. فکر می کنم اگر مشتری حاضر به آماده کردن بستر سخت افزاری لازم نباشد واقعا" بهتر است که از شرکت دیگری نرم افزار بخرد.

  3. #43
    نقل قول نوشته شده توسط deuce مشاهده تاپیک
    سلام
    فکر می کنم نگاهی به شرکت های بزرگ، چه در خارج و چه حتی در ایران (مثل همکاران ، رایورز، داده پردازان دوران و ... ) این نکته را مشخص می کند که شرکت های موفق ، هیچ وقت نرم افزار خود را برای سازگاری با سخت افزار های ضعیف ننوشته اند و همواره بازار سخت افزار و نرم افزار در جهت تقویت هم حرکت کرده اند. امروز قیمت 512 مگا بایت رم در حدود 40,000 تومان است و اگر مشتری به خاطر افزایش رم سیستم هایش حاضر به خرید نرم افزار از شما نباشد مطمئن باشید این مشتری چند ماه دیگر حاضر به پرداخت هزینه پشتیبانی هم نیست و سال اینده حاضر به پرداخت هزینه به روز رسانی نرم افزار هم نخواهد بود. بنابراین اگر با دید دراز مدت نگاه کنید شاید اصولا خرید نرم افزار توسط چنین مشتریانی حتی به صرفه نیز نباشد. کما اینکه هر روز شاهد ورشکستگی شرکتهای نرم افزاری هستیم که پله پله با خواسته های مشتری قیمت خدمات خود را پایین آورده اند. فکر می کنم اگر مشتری حاضر به آماده کردن بستر سخت افزاری لازم نباشد واقعا" بهتر است که از شرکت دیگری نرم افزار بخرد.
    فرمایش شما در مورد قیمت درست ، ولی این نکته را داشته باشید

    شما مدیر عامل شرکتی هستید که 50 کامپیوتر پنتیوم 4 با 256 مگابایت رم دارد. و 30 کامپیوتر پنتیوم 3 با 128 مگابایت رم

    میخواهید نرم افزاری بخرید

    آیا نرم افزاری میخرید که با همین سیستم ها هم به خوبی کار میکند یا اینکه سراغ نرم افزاری میروید که مجبور باشید 10 میلیون تومان ابتدا هزینه سخت افزاری بدهید ؟؟؟؟

    بنده عرضم این است که نمیتوان انکار کرد کمتر اشغال کردن منابع سیستم مثل رم و سی پی یو و .... یک نکته بسیار مثبت است و متاسفانه دات نت در مقایسه یا دیگر تکنولوژی ها این عامل مثبت را ندارد .


    اساسا ، آیا میتوان به دات نت اعتماد کرد و یک سی دی مالتی مدیا با آن ساخت ؟؟؟

    آیا به همان راحتی که شما برای موبایل و pocket pc با جاوا برنامه مینویسید ، میتوانید با دات نت هم بنویسید و از نصب شدن آن و اجرای آن روی همه گوشی ها مطمئن باشید ؟؟

  4. #44
    ضمنا فراموش نکنیم بسیاری از بانکها هنوز با سیستمهای وارد شده توسط ناصرالدین شاه قاجار کار میکنند . در بسیاری از ادارات هم هنوز پنتیوم 2 یک سیستم خوب محسوب میشود

  5. #45
    نقل قول نوشته شده توسط ar.shirazi مشاهده تاپیک
    فرمایش شما در مورد قیمت درست ، ولی این نکته را داشته باشید
    شما مدیر عامل شرکتی هستید که 50 کامپیوتر پنتیوم 4 با 256 مگابایت رم دارد. و 30 کامپیوتر پنتیوم 3 با 128 مگابایت رم میخواهید نرم افزاری بخرید
    آیا نرم افزاری میخرید که با همین سیستم ها هم به خوبی کار میکند یا اینکه سراغ نرم افزاری میروید که مجبور باشید 10 میلیون تومان ابتدا هزینه سخت افزاری بدهید ؟؟؟؟
    با سلام
    اگر مدیر عاملی باشم با 80 کامپیوتر متوسط و ضعیف، یک نرم افزار مبتنی بر وب و یک سرور قوی تهیه می کنم و اگر استفاده از وب ممکن نباشد از ترمینال سرور استفاده می کنم و باز هم سعی می کنم از نرم افزار به روز استفاده کنم.
    نقل قول نوشته شده توسط ar.shirazi مشاهده تاپیک
    کمتر اشغال کردن منابع سیستم مثل رم و سی پی یو و .... یک نکته بسیار مثبت است و متاسفانه دات نت در مقایسه یا دیگر تکنولوژی ها این عامل مثبت را ندارد .
    فکر می کنم تنها منبع سیستم که بیشتر مصرف می شود RAM می باشد و که آن هم با آمدن ویستا ، دیگر غیر قابل اجتناب خواهد بود.
    (در خانواده Server ها از زمان Windows 2003، .دات نت همراه سیستم عامل نصب و بارگزاری می شود)
    نقل قول نوشته شده توسط ar.shirazi مشاهده تاپیک
    اساسا ، آیا میتوان به دات نت اعتماد کرد و یک سی دی مالتی مدیا با آن ساخت ؟؟؟
    آیا به همان راحتی که شما برای موبایل و pocket pc با جاوا برنامه مینویسید ، میتوانید با دات نت هم بنویسید و از نصب شدن آن و اجرای آن روی همه گوشی ها مطمئن باشید ؟؟
    جاوا ده سال قبل از دات نت ارائه شده و طبیعتا" در برخی زمینه های خاص از آن پخته تر است ولی اگر به سرعت پیشرفت دات نت از سال 2001 تا به حال دقت کنید، می بینید که با این سرعت تکمیل، ظرف چند سال آینده در زمینه های خاص هم قابل مقایسه با جاوا خواهد بود.
    به عنوان مثال در سال 2004 اگر در مورد pocket pc می پرسیدید جوابم خیر بود ولی امروز می توانم به شما نرم افزار فارسی روی Pocket PC نشان بدهم که روی همه ی PPC های مجهز به ویندوزهای موبایل 5 و بالاتر بدون مشکل کار می کند.

  6. #46
    با سلام خدمت شما
    با سلام
    اگر مدیر عاملی باشم با 80 کامپیوتر متوسط و ضعیف، یک نرم افزار مبتنی بر وب و یک سرور قوی تهیه می کنم و اگر استفاده از وب ممکن نباشد از ترمینال سرور استفاده می کنم و باز هم سعی می کنم از نرم افزار به روز استفاده کنم.

    آیا نرم افزارهای تحت وب و کلا وب اپلیکیشن ها همان راحتی ویندوز اپلیکیشن ها را دارند ؟ چه در زمان توسعه و چه برای طراحی واسط کاربری ؟ آیا میتوانید از آن همه کامپوننت و کنترلهای ویندوزی به ان زیبایی استفاده کنید ؟

    اصولا به برنامه حسابداری تحت وب معتقدید ؟ آیا همان سرعت را خواهد داشت که تحت ویندوز دارد ؟

    حداقل در دات نت که یک لحظه پست بک اشتباه شدن یا اشکال در IIS که امری است معمول ، چه مشکلاتی برای برنامه شما ایجاد میکند را که میدانید .

    فکر می کنم تنها منبع سیستم که بیشتر مصرف می شود RAM می باشد و که آن هم با آمدن ویستا ، دیگر غیر قابل اجتناب خواهد بود.
    خیر ، سی پی یو هم بیشتر اشغال میشود . سرعت هم بدلیل استفاده از JIT کمتر میشود

    (در خانواده Server ها از زمان Windows 2003، .دات نت همراه سیستم عامل نصب و بارگزاری می شود)
    بازهم خیر ، چون ورژن 1.1 با ویندوز 2003 ارائه شده است و نه ورژن 2 و 3 و ...

    به عنوان مثال در سال 2004 اگر در مورد pocket pc می پرسیدید جوابم خیر بود ولی امروز می توانم به شما نرم افزار فارسی روی Pocket PC نشان بدهم که روی همه ی PPC های مجهز به ویندوزهای موبایل 5 و بالاتر بدون مشکل کار می کند.
    در جاوا دیگر نیازی ندارید که حتما ویندوز روی موبایلتان باشد . همین که باید ویندوز باشد تا برنامه من کار کند ، باید فریمورک باشد تا برنامه من کار کند ، و برنامه من هم حافظه بسیار بیشتری مصرف میکند خود عیبهای وحشتناکی است.

    موفق باشید دوست عزیز

  7. #47
    کاربر دائمی آواتار manager
    تاریخ عضویت
    شهریور 1384
    محل زندگی
    Z
    سن
    38
    پست
    771

    Exclamation

    نقل قول نوشته شده توسط Sajjad1364 مشاهده تاپیک
    ...
    از طرفی تعریف این کلاس از سوی دات نت اینجوری بیان میشه
    Provides methods for creating, manipulating, searching, and sorting arrays, thereby serving as the base class for all arrays in the common language runtime
    اینکه بررسی این کلاس در CLR هستش به این خاطره که ما انواع مختلفی از آرایه ها رو ایجاد میکنیم و این بررسی در CLR طبیعیه.اما مگر ژنریک ها هم در زمان کامپایل بررسی نمیشن
    و کاملا دینامیک نیستن پس تعامل اونا با تمام کلاس های موجود در دات نت باید طبیعی و امری محتمل به نظر بیاد.ژنریک ها نه باSpecial Class بلکه باید با تمام کلاس های دات نت طبیعی کار کنن
    می شه بیشتر توضیح بدید، منظورتون رو متوجه نمی شم !
    .ژنریک ها اوج قدرت برنامه نویسی شیء گرای خالصن پس تمام عناصر یک زبان باید در خدمتشون باشن نه اونا رو محدود کنن.کلا وجود عنصری بنام Special Class
    در دات نت وتعاملاشون با ژنریک ها خلاف OOP می باشد و ضعفی در OOP ی دات نت محسوب میشن.
    یعنی .Netframework 1.X زیاد شیئ گرا نبوده ؟ اتفاقا من فکر می کنم Genericها جزء اصول OOP نیستند. اگر امکان داره بیشتر توضیح بدید !

  8. #48
    کاربر تازه وارد
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    کرمانشاه
    پست
    51

    Special Class ها و ژنریک ها

    با عرض پوزش از اینکه دیر خدمت رسیدم.من سربازی بودم و نتونستم سر بزنم.
    خوب توضیح قسمت اول:
    انواع مختلفی از آرایه ها موجود اند (یکب بعدی,دو بعدی,دندانه دار,ترکیبی از این انواع و...).در کنار شیء بودن آرایه هاو همچنین ارث بری دینامیکشان ازشیء System.Array باعث میشود
    از اجزایی باشند که در زمان اجرا و در CLR بررسی شوند.آندسته از اشیایی که در CLR بررسی میشوند ,اشیاء پیچیده وکاملا دینامیکی هستند.این گونه اشیاء یا اینکه دارای وضعیت نا معلومی درزمان کامپایل هستند(Delegate ها)و یادارای وضعیت پیچیده ای هستند(آرایه ها) و یا هر دو وضعیت را با هم دارا هستند (ژنریک ها).در استفاده از ژنریک ها محدودیتی وجود دارد بنام Special Class.این محدودیت تعامل ژنریک ها را با اشیاء دیگر محدود می کند,و از ترکیب بعضی از اشیاء (که معمولا در CLR بررسی میشوند ودارای وضعیت دینامیک هستند.)با ژنریک ها که معمولا ترکیبی از سه نوع وضعیت بالا را بوجود میآورند,جلوگیری میکنند.مثلا اگر شی ای از کلاس Array را با ژنریکی بکار ببریم وضعیت بسیار پیچیده ای در زمان اجرا بوجود میآید و کامپایل و ایجاد تعامل بدلیل وجود عناصر دینامیک خیلی سخت میباشد.آندسته از اشیاء که دارای یکی از سه وضعیت بالا هستن نمیتوانند در تعامل با ژنریک ها باشند.در نتیجه عجز و عدم توانایی CLR در برخورد با این وضعیت های خاص Special Class بهانه ای میشود که بعضی از اشیاء در تعامل با ژنریک ها از میدان بدر شوند و این نقص را در شیء گرایی دات نت بوجود می آورند.شیئ Object هم این وضعیت را داراست یعنی در لیست Special Classها میباشد .خودت دلیلشو پیدا کن

    خدمت شما عرض کنم که Net Framework 1.x بدلیل عدم وجود ژنریک ها شیء گرا نبود و
    شیء گرایی Net Framework 2.x هم بدلیل وجود Special Class ها زیر سوال میرود.
    اما چرا ژنریک ها عناصر شیء گرایی بودند :
    همانطور که شما هم می دانید ژنریک ها تمام قوانین برنامه نویسی شیء گرای
    Net Framework 1.x را رعایت میکنند وخصوصیات بسیار خوبی دارند که کارایی , انواع بهتر و مطمئن تری را بوجود میآورند.اما اینها فواید ژنریک ها هستن و تاثیر آنها بر برنامه نویسی شئ گرا اینطور بیان میشود:
    فرض کنیم با استفاده از شئ Stack میخواهیم تعدادی عدد را Push کنیم ,سپس یکی از آنها را برداریم کد این مثال اینگونه میباشد:

    Stack s = new Stack();
    s.Push(10);
    s.Push(20);
    int a = (int)s.Pop();

    همانطور که می بینیم با اینکه به شئ پشته فقط اعدادی را در محدوده int فرستاده ایم ,اما برای برداشتن یک عدد باید تبدیل نوع صریح انجام بدهیم.
    در برنامه نویسی شئ گرا این تبدیل نوع دو نوع خطا محسوب میشود:
    1)کاربر در کار شئ غیر مستقیم دخالت و نوع بازگشتی را دستکاری کرده
    2)کاربر مجبورست خود داده صحیح را بوسیله تبدیل نوع استخراج کند .هر چند که کاربر داده های درست را به شئ پشته فرستاده ولی نوع داده Object تحویل میگیرد.
    Encapsulation یا کپسوله سازی دارای سه اصل میباشد.یکی از این اصول اختفای کد نام دارد
    اختفای کد نیز دارای اصول زیر است
    1)محافظت از شئ در مقابل کاربر:یعنی کاربر در کار شئ دخالت نکند و یا آنرا توسط صفات درونی شئ در وضعیت اشتباه قرار ندهد.
    2)محافظت از کاربر در مقابل شئ:یعنی شئ با دریافت داده های درست کاربر را با جزییات درونی خود درگیر نکند و داده های درستی را برگرداند.
    اگر به خطوط قرمز و آبی نگاه کنیم متوجه میشویم که خطوط قرمز اصول اختفای کد را نادیده گرفته است.اما اگر همین کد را با کمک ژنریک ها بنویسیم این دو اصل نیز رعایت میشوند.

    Stack<int> s = new Stack<int>();
    s.Push(10);
    s.Push(12);
    int a = s.Pop();

    در تمامی تبدیل نوع های صریح که از سوی کاربر انجام میشود (بجز مواردیکه کاربر از این کار هدف خاصی دارد) نقض آشکار برنامه نویسی شئ گرا صورت می گیرد.
    در نتیجه اگر ژنریک ها نباشند در نهایت آندو اصل نادیده گرفته میشوند و با نادیده گرفتن آن اصول دیگر کپسوله سازی معنایی ندارد.عدم وجود کپسوله سازی در هر زبانی آن زبان را خود بخود غیر شئ گرا میکند.
    با این تعاریف باید این نکته را هم در نظر داشت که ژنریک ها در زمینه کپسوله سازی با برنامه نویسی شئ گرا ترکیب میشود ,اما در کنار وراثت و چند شکلی قرار می گیرد و با آنها ترکیب نمی شود .یعنی ژنریک ها در وراثت و چند شکلی فوایدی دارند اما در کپسوله سازی بمنزله پایه هایی عمل میکنند که وجود آنها در هر زبان شیء گرایی اجباریست.
    واین یعنی اینکه برنامه نویسی شئ گرا بدون ماهیت وجودی ژنریک ها اعتباری ندارد,کما اینکه نبود ژنریک ها در وراثت و چند شکلی برای آنها مشکل ساز نمیباشد بلکه قدرت را در این عناصر فزونی می بخشد.نهایتا زبانی شئ گرای خالص محسوب میشود که در درون خود از ژنریک ها سود ببرد.

  9. #49
    کاربر دائمی
    تاریخ عضویت
    اسفند 1385
    محل زندگی
    تهران
    پست
    259
    به نظر من یکی از بزرگ ترین مشکلات دات نت عدم توانایی اون در پشتیبانی از برنامه ها و کتابخانه های قدیمی (legacy) نوشته شده است.
    مثلا چند درصد برنامه نویس ها می توانند به راحتی برنامه ای که با VB6.0 نوشته شده رو به روز کنند؟ و یا از کتابخانه های قدیمی (مثلا DLL های قدیمی که عملیات خاصی رو انجام میدن) استفاده کنند؟

    یکی دیگه از مشکلات هم عدم توانایی بعضی از زبان های دات نت برای ارتباط سطح پایین با سخت افزاره (کی ادعا می کنه که می تونه با C#‎ درایور سخت افزاری بنویسه؟ :) )

    البته در این جا نباید زبان C++‎.NET رو که پل ارتباطی بین دات نت و کد ماشین است رو فراموش کرد. بنابراین برنامه نویسانی که مشکل سرعت دارند می تونند قسمت حساس برنامه شون رو با زبان C و یا C++‎ و یا حتی اسمبلی بنویسند، سپس با استفاده از زبان C++‎.NET یک کتابخانه دات نتی درست کنند که اون قسمت حساس رو بپوشونه، بعد با C#‎ از کتابخانه جدید دات نتی استفاده کنند. یعنی در واقع قسمت حساس برنامه دیگه در محیط دات نت اجرا نمی شه و طبیعتا چنین برنامه ای مستقل از سیستم عامل هم نخواهد بود. پس اگه واقعا سرعت بسیار زیاد رو احتیاج داری و از طرفی گلاب بودن دات نت رو هم نمی تونی از دست بدی، برو C++‎.NET یاد بگیر. راستش C++‎.NET خیلی هم سخت نیست و فقط یک کم syntax اون اضافه تر از C++‎ معمولی است.

    در واقع خود مایکرو سافت هم اصلا همین کار رو کرده. یعنی شما باورتون می شه که دات نت فریم ورک با این همه عظمتش و با بیش از 2000 کلاس که هر کلاس هم کلی متد داره، فقط 20 مگابایت باشه؟ نه! دات نت فریم ورک فقط یک پوشش خیلی خوشگل و تر و تمیز روی هزاران API موجود در ویندوز است (که چند گیگا بایت حجم داره) و به خاطر همینه که سرعتش این همه خوبه. چون اکثر API های ویندوز رو با زبان هایی مثل C و C++‎ و حتی اسمبلی نوشتند. در واقع وقتی شما مثلا یک پنجره رو نمایش می‌دید، در نهایت دارید یک API ویندوزی رو صدا می‌زنید و کلاس های فریم ورک دارند از اون API ها استفاده می‌کنند.

    اما به نظر من هدف مایکروسافت از دات نت فریم ورک این بوده که بعد از چندین سالی که از تولید ویندوز می‌گذره، امکانات مورد نیاز برای برنامه نویس‌ها رو خیلی خوب دسته بندی کنه و نام‌ها و کلاس های موجود در ویندوز رو به شکل قابل فهم تر و منطقی تر در اختیار برنامه نویس ها قرار بده، تا برنامه نویس ها بدون درگیر شدن با مسایل ریز و غیر مفید، روی منطق برنامه شون تمرکز کنند تا هزینه تولید نرم افزار روی سیستم عامل ویندوز اون قدر پایین بیاد که کسی حاضر به استفاده از سیستم عامل دیگه‌ای برای تولید نرم افزار نشه. (شما در نظر بگیرید اگه بخواهید یک برنامه ادیتور ساده با دات نت بسازید چقدر وقت می‌گیره، حالا همون رو با حتی با کتابخانه مثلا سطح بالای MFC مقایسه کنید.) به نظر من قبلا هدف اصلی دات نت فریم ورک (پایین بودن هزینه تولید نرم افزار در ویندوز) رو VB6.0 انجام می داد.

    بنابراین تا زمانی که شما نخواهید تو دات نت کار عجیب و غریبی انجام بدید و هر کاری که قرار باشه انجام بدید رو با استفاده از کتابخانه های استاندارد دات نت انجام بدید، بعید می دونم مشکل سرعت و یا حافظه پیدا کنید و تازه برنامه ها تون از لحاظ سرعت خیلی هم با برنامه هایی که مثلا با MFC نوشته شده اند فرق نخواهد داشت چون برنامه شما فقط یک پوشش اضافه تر داره، اما اگه قرار باشه تو دات نت مثلا خودتان بیایید از صفر صفر یک کنترلی مثل TextBox درست کنید، مطمنا دات نت کم می‌یاره. یک مثال دیگه‌اش درست کردن بازی های با گرافیک بالا توسط دات نت است. (البته به تازگی دات نت اومده روی DIRECTX که خیلی خفنه و برنامه نویسی‌اش کار حضرت فیله یک پوشش گلابی به نام XNA گذاشته تا حتی مهندسین کشاورزی هم بتونند یک بازی گرافیکی توپ درست کنند و به ریش اون C++‎ کارهایی که خودشون رو می‌کشتند تا بازی با کیفیت قابل قبول درست کنند، بخندند.)

    نتیجه اخلاقی اینکه: برخی از ایرادهایی که به دات نت وارد می‌کنند اصلا جز هدف های دات نت نبوده (ماکروسافت هم ادعا نداره برید با دات نت درایور سخت افزاری بنویسید) هدف این بوده که برنامه نویس حتی با دانش اندک بتونه کارهاش را راه بیاندازه و به هدفس برسه. مثلا برای برنامه نویس دونستن الگوریتم QuickSort مهم نیست، مهم اینه که تو دات نت می‌نویسی: myArray.Sort().

    یک نتیجه اخلاقی دیگه: اگه برنامه نویس شدی چون می‌خوایی پول دربیاری که هیچی. دات نت انتخاب خوبیه چون مثل گلاب برنامه می‌نویسی و تا دلت بخواد کد آماده وجود داره. (پول در آوردن اصلا هم بد نیست!) ولی اگه ادعات می‌شه که چون مثلا زبون C#‎ و VB.NET و ASP.NET بلدی پس از کامپیوتر سر در می‌آری، بایدبگم که کاملا اشتباه است. این ها همه ابزارند (یا به عبارت بهتر فن‌آوری هستند)، علم کامپیوتر همون دروس طراحی الگوریتم‌ها و سیستم عامل و ساختمان داده و ... است.

    دانش رایانه با فن‌آوری (Technology) مرتبط با رایانه خیلی متفاوت است.

    به خاطر همین هم است یک استاد کامپیوتر حتی با اینکه دکتری داره ولی چون با تکنولوژی جلو نرفته حتی ممکنه نتونه ویندوز نصب کنه با اینکه دانش کامپیوتر رو داره!

    از کجا به کجا رسیدیم :)

  10. #50
    این که برنامه نوشته شده با داتنت خیلی از حافظه رو می گیرن چی عیب نیست؟

  11. #51
    کاربر دائمی آواتار PC2st
    تاریخ عضویت
    آذر 1385
    محل زندگی
    کرمانشاه
    سن
    38
    پست
    1,491
    نقل قول نوشته شده توسط amir_saniyan
    دات نت فریم ورک فقط یک پوشش خیلی خوشگل و تر و تمیز روی هزاران API موجود در ویندوز است (که چند گیگا بایت حجم داره) و به خاطر همینه که سرعتش این همه خوبه. چون اکثر API های ویندوز رو با زبان هایی مثل C و C++‎ و حتی اسمبلی نوشتند. در واقع وقتی شما مثلا یک پنجره رو نمایش می‌دید، در نهایت دارید یک API ویندوزی رو صدا می‌زنید و کلاس های فریم ورک دارند از اون API ها استفاده می‌کنند.

    این گونه نیست :-) دات نت فریم ورک حاوی یک CLR یا Runtime است (که با سی++ نوشته شده)
    و در واقع برای اجرای برنامه های مبتنی بر دات از CLR استفاده میشود نه API های ویندوز!

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

  12. #52
    کاربر دائمی آواتار Rocker
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    تهران
    پست
    262
    سلام دوستان:
    راستش من چند وقتیه دارم در مورد دات نت تحقیق می کنم تا به این تکنولوژی مهاجرت کنم خوب در این زمینه مطالب زیادی رو خوندم.

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

  13. #53
    نقل قول نوشته شده توسط PC2st.ir مشاهده تاپیک
    این گونه نیست :-)
    از اون "گیگا بایت"ش که فاکتور بگیریم ، دقیقا همان گونه است که نوشته .
    UNIX is simple. It just takes a genius to understand its simplicity
    -- Dennis Ritchie

  14. #54
    کاربر دائمی آواتار hector2000
    تاریخ عضویت
    خرداد 1386
    محل زندگی
    پرشین ساینس
    پست
    227
    ایا واقعا دات نت علم روز است؟
    ایا در خارج از ایران هم شرکتهای برنامه نویسی برای نوشتن برنامه هایی نظیر کاربردی،بازی،محاسبه ای و.. سراغ مجموعه دات نت می روند و یا اینکه فقط این اوضاع در ایران صادقه؟
    متشکرم

  15. #55
    نقل قول نوشته شده توسط Inprise مشاهده تاپیک
    از اون "گیگا بایت"ش که فاکتور بگیریم ، دقیقا همان گونه است که نوشته .

    یعنی شما به سریعتر بودن برنامه های وابسته به دات نت فریم ورک نسبت به Native code معتقد هستین؟

  16. #56
    کاربر دائمی آواتار __H2__
    تاریخ عضویت
    اسفند 1385
    محل زندگی
    یک جایی بین Framework و نارمک!
    پست
    1,059
    سلام
    نقل قول نوشته شده توسط Sajjad1364 مشاهده تاپیک
    با سلام
    ازضعف های دات نت و ارتباطش با برنامه نویسی شیء گرا میتوان به Special Class ها اشاره کرد.این نوع کلاس ها (مثلا کلاس Array) رو علیرغم چیزی که نشون میدن نمیتوان در کاربردهای معمولی ازشون استفاده کرد.مثلا در ژنریک ها.به عنوان مثال اگر بخایم یه متد ژنریک رو بنویسیم که بتونه تمام عناصر آرایه های یک بعدی (به جز آرایه های دندانه دار) رو
    بدون در نظر گرفتن نوعشون چاپ کنه.


    Private Sub Main()
    Dim array() As Integer = {1, 2, 3, 4}
    Print(Of Integer)(array)
    Print(array)
    End Sub
    Private Sub Print(Of T)(ByVal array() As T)
    '...
    End Sub

    Private Sub Print(ByVal array As System.Array)
    '...
    End Sub

  17. #57
    نقل قول نوشته شده توسط M A R S H A L مشاهده تاپیک
    یعنی شما به سریعتر بودن برنامه های وابسته به دات نت فریم ورک نسبت به Native code معتقد هستین؟
    نه . منظورم قسمت اول مطلبش و API و Wrapper و ...بود فقط .
    UNIX is simple. It just takes a genius to understand its simplicity
    -- Dennis Ritchie

  18. #58
    کاربر تازه وارد آواتار amin joon
    تاریخ عضویت
    تیر 1383
    محل زندگی
    Shiraz-Iran
    پست
    93
    با سلام
    به نظر من زمانی میشه به نتیجه رسید که مزایا و معایب این تکنولوژی را با هم مقایسه کنیم.
    1- سرعت کم در اجرای برنامه <----------------> تنها در بار اول اجرای برنامه، سرعت آن پایین است و در دفعات بعد اینگونه نیست. علاوه بر این پایین بودن سرعت جتی در بار اول اجرا آنچنان محسوس نیست.
    2- بالا بودن حافظه مصرفی(ram) <-------------------> ذزسته . در واقع برنامه های دات نت به دلیل وجود .net framework بیشتر از حافظه استفاده میکنند.ولی نیاز به حافظه بزرگ آنقدر هم لازم نیست. یعنی اگر شما یه برنامه با یکی از زبانهایwin32 بنویسید که نیاز به 128مگ حافظه داشته باشه. اگر همان برنامه رو داخل .net پیاده کنید مطمئنا به 256مگ حافظه نیاز نخواهد داشت. و به احتمال زیاد با همان 128مگ به راحتی جواب میده.
    3- ذکمپایل شدن کدها <---------------> در حال حاظر به همین صوذت هست یعنی میشه اونها رو دکمپایل کرد. ولی در آینده چیزی معلوم نیست. با توجه به سابقه ی microsoft در پشتیبانی و رفع نواقص محصولاتش ، ممکن هست این ایراد به زودی رفع شود.
    4- نیاز به وجود دات نت <-------------------> این موضوع در برنامه هایی مثل حسابداری و دیگر برنامه های کاربردی بیمعنی خست چون به راحتی میشه اون رو همراه با نصب بخشهای مختلف برنامه به راحتی نصب کرد. این موضوع تنها در نوشتن برنامه های کوچک مثلا برنامه برای اتوران سی دی یا موارد مشابه این معنی پیدا میکنه.
    5- نوشتن راه انداز و کار با سخت افزار<------------------> من در این رابطه قبلا کاری انجام ندادم ولی به طور قطع در بین انبوه کلاسهای .net framework کلاسهای زیادی جهت کار با سخت افزار وجود داره . . . (چند بار برای شما پیش اومده که درایور بنویسید؟ اگه زیاد نیاز دارید باید برید سراغ ++C)
    به نظر من در کنار این عیوب باید به مزایای بزرگ دات نت نیز توجه کرد. شما با بلد بودن یک زبان برنامه نویسی مثل C#‎ خیلی کارها میتونید انجام بدید.مثلا : نوشتن کد سمت سرور در صفحات وب، نوشتن Win Application که البته در آینده ممکنه رو لینوکس هم قابل اجرا باشه، استفاده از کلاسهای قدرت مند دات نت،سرعت در برنامه نویسی ، نوشتن وب سرویس ، برنامه نویسی موبایل که احتمالش میره در آینده خیلی از مبایلها دات نت رو در خودشان پیاده سازی کنند و خیلی مزایای دیگه . . .
    شما تو هیچ محیط و زبانی، غیر از زبانهای .net و البته java نمیتونید این همه توانایی رو یکجا داشته باشید. و این یه مزیت بزرگ برای دات نت کارها به حساب میاد.

    در خاذج از کشور این تکنولوژی به طور گسترده داره مورد استفاده قرار میگیره. دلیلم هم تعداد کاربران C#‎ و بقیه زبانهای دات نت هست که چند ده برابر دیگر زبانها هست(میتوانید به امارهای سایتهایی مثل codeproject مراجعه کنید )
    در ضمن این رو هم فراموش نکنید که ماکروسافت هیچ وقت همه چیزش رو یکجا رو نمیکنه.

    به نظر من .net یک تکنولوژی بزرگ هست که نباید از اون عقب موند. هر چند در حال حاظر جوابگوی 100% نیازهای ما نباشه.


    به امید ایرانی بهتر . . .

  19. #59
    کاربر دائمی آواتار Xcalivorse
    تاریخ عضویت
    اردیبهشت 1386
    محل زندگی
    Kernel32.dll
    پست
    411
    اگر مشکل سرعتش حل می شد دیگه هیچ عیبی نداشت

صفحه 2 از 2 اولاول 12

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

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