PDA

مشاهده نسخه کامل : اخــــبــــار و مقــالات روز برنامـــــه نـــویســی و آی تی



MoBiN.R
26-06-09, 12:20
با سلام خدمت دوستان عزیز .... این تاپیک برای قرار گیری و جمع آوری یکجا اخبار برنامه نویسی و کمی هم آی تی ساخته شده است .. دوستان لطفا اخبار برنامه نویسی خودشونو میتونن در این تایپ قرار بدن

با تشکر

MoBiN.R
26-06-09, 12:22
آیا یاقوت ها هنوز روی ریل هستند؟


حقه های برنامه نویسی، به روش هایی گفته می شود که به کمک آنها بتوان کاری کرد که میزان خطاهایی که ممکن است در طول برنامه نویسی رخ دهند، به حد زیادی کاهش پیدا کند. برخی از این حقه ها به عنوان »برنامه نویسی تدافعی« شناخته می شوند. برنامه نویسی تدافعی جنبه های مختلفی دارد. از جنبه های امنیتی یک نرم افزار گرفته تا این که یک کد تمیز، سالم و بدون خطا باشد. پیش از این که چیزی را بخواهیم شروع کنیم، لطفا هیچ پیش فرضی در مورد کامپایلر نداشته باشید. کامپایلرها از ویژگی های مختلفی پشتیبانی می کنند که ممکن است در همه آنها ثابت نباشد. مثلا این تکه کد را نگاه کنید: array[i] = i++; نتیجه عبارت بالا چه خواهد شد؟ آیا اول عملیات جایگزینی انجام می شود و بعد یک واحد به i اضافه می شود یا برعکس این موضوع صادق خواهد بود؟ این مساله تا حدودی گنگ است، اما یک برنامه نویس خوب همواره از نوشتن کدهایی که ابهام دارد، خودداری می کند. هیچ وقت فراموش نکنید که نوشتن یک کد تمیز، خوانا و قابل ردیابی، بسیار بهتر از یک کد کوتاه، اما غیرقابل ردیابی است که نیاز به هوش بالایی دارد. 1– عبارت اگر برای مقایسه ثابت ها وقتی می خواهید مقدار ثابتی را با یک متغیر مقایسه کنید، به دو روش برمی خورید. نخستین حالت آن در این شرط مقایسه ای، چیزی شبیه به کد زیر خواهد بود: if (input_temp == const_val ) { //....some code goes here } و حالت دوم به صورت زیر: if (const_val == input_temp ) { ///....some code goes here } حالا به نظرتان کدام یک بهتر است؟ روش دوم کمی عجیب به نظر می رسد، اما بهتر است از آن استفاده شود! چرا؟ این حالت را در نظر بگیرید که به طور اشتباهی یک مساوی فراموش شود: if (input_temp = const_val) { حالا می توانید اشتباه کد بالا را درک کنید. در این حالت، همیشه جواب شرط، مقدار درست خواهد بود. این اشتباه وقتی که ثابت را اول بنویسیم برطرف خواهد شد، چرا که کامپایلر خطا می دهد. 2– تقدم عملگرها اگر بیشتر از یک عملیات وجود داشته باشد، حتما از پرانتز استفاده کنید. این کد را ببینید: ;2=1var ;10=2var ;4=3var ;3*var2+var1temp = var اگر منتظرید که عبارت بالا نتیجه 48 را بدهد به حقیقت فکر کنید که نتیجه 42 را خواهید گرفت. اشتباه از کجاست؟ اگر ندانید که عملگر ضرب نسبت به عملگر جمع اولویت بیشتری دارد، در این صورت ایرادی منطقی خواهید داشت که به سادگی قابل رفع نخواهد بود. برای سادگی کار می توان کد در دو خط را نوشت. البته پرانتزگذاری بهترین راه حل است. 3– بررسی کد بازگشتی توابع استاندارد صرف نظر کردن از کدهایی که توابع استاندارد کتابخانه ای پس می فرستند، تبدیل به امری عادی شده است. اما حواستان باشد که اگر بخواهید فرض بگیرید که این توابع همواره مقدار درست را بر می گردانند، از همین جا ضربه خواهید خورد. به عنوان مثال، تابع malloc برای تخصیص پویای حافظه استفاده می شود که شکل کلی آن به این صورت است: void *malloc(size_t size); malloc اشاره گری را به حافظه تازه تخصیص داده شده ای برمی گرداند که اندازه آن را با مقدار size به آن داده ایم. تکه کد زیر را در نظر بگیرید: * sizeof (int)); 100int *stk_ptr = malloc( if (null == stk_ptr) { // memory could not be allocated // take corrective action } اگر malloc به هر دلیلی نتوانست حافظه مناسب را تخصیص بدهد، در این صورت اگر بررسی ای صورت نگرفته باشد، برنامه تان به سادگی از کار می افتد و شما به هیچ عنوان نخواهید توانست آن را رهگیری کنید. 4– غلبه بر محدودیت آرایه وقتی یک آرایه ایجاد می کنید، شاید بزرگترین مشکل مان با آن، محدودیت اش باشد. کد زیر را در نظر بگیرید: ];10unsinged char input_buffer[ unsigned char i; ; i++) {10; i

Only the registered members can see the link (Only the registered members can see the link %D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87_%D9%86%D9%88% DB%8C%D8%B3%DB%8C.html#)
منبع :جام جم آنلاین (Only the registered members can see the link %D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87_%D9%86%D9%88% DB%8C%D8%B3%DB%8C.html#)

MoBiN.R
26-06-09, 12:23
محیط اسکریپت نویسی آندروید


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

Only the registered members can see the link (Only the registered members can see the link DA%A9%D8%B1%DB%8C%D9%BE%D8%AA_%D9%86%D9%88%DB%8C%D 8%B3%DB%8C_%D8%A2%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8 %AF.html#)
منبع :جام جم آنلاین (Only the registered members can see the link DA%A9%D8%B1%DB%8C%D9%BE%D8%AA_%D9%86%D9%88%DB%8C%D 8%B3%DB%8C_%D8%A2%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8 %AF.html#)

MoBiN.R
26-06-09, 12:23
حقه های برنامه نویسی


قه های برنامه نویسی، به روش هایی گفته می شود که به کمک آنها بتوان کاری کرد که میزان خطاهایی که ممکن است در طول برنامه نویسی رخ دهند، به حد زیادی کاهش پیدا کند. برخی از این حقه ها به عنوان »برنامه نویسی تدافعی« شناخته می شوند. برنامه نویسی تدافعی جنبه های مختلفی دارد. از جنبه های امنیتی یک نرم افزار گرفته تا این که یک کد تمیز، سالم و بدون خطا باشد. پیش از این که چیزی را بخواهیم شروع کنیم، لطفا هیچ پیش فرضی در مورد کامپایلر نداشته باشید. کامپایلرها از ویژگی های مختلفی پشتیبانی می کنند که ممکن است در همه آنها ثابت نباشد. مثلا این تکه کد را نگاه کنید: array[i] = i++; نتیجه عبارت بالا چه خواهد شد؟ آیا اول عملیات جایگزینی انجام می شود و بعد یک واحد به i اضافه می شود یا برعکس این موضوع صادق خواهد بود؟ این مساله تا حدودی گنگ است، اما یک برنامه نویس خوب همواره از نوشتن کدهایی که ابهام دارد، خودداری می کند. هیچ وقت فراموش نکنید که نوشتن یک کد تمیز، خوانا و قابل ردیابی، بسیار بهتر از یک کد کوتاه، اما غیرقابل ردیابی است که نیاز به هوش بالایی دارد. 1– عبارت اگر برای مقایسه ثابت ها وقتی می خواهید مقدار ثابتی را با یک متغیر مقایسه کنید، به دو روش برمی خورید. نخستین حالت آن در این شرط مقایسه ای، چیزی شبیه به کد زیر خواهد بود: if (input_temp == const_val ) { //....some code goes here } و حالت دوم به صورت زیر: if (const_val == input_temp ) { ///....some code goes here } حالا به نظرتان کدام یک بهتر است؟ روش دوم کمی عجیب به نظر می رسد، اما بهتر است از آن استفاده شود! چرا؟ این حالت را در نظر بگیرید که به طور اشتباهی یک مساوی فراموش شود: if (input_temp = const_val) { حالا می توانید اشتباه کد بالا را درک کنید. در این حالت، همیشه جواب شرط، مقدار درست خواهد بود. این اشتباه وقتی که ثابت را اول بنویسیم برطرف خواهد شد، چرا که کامپایلر خطا می دهد. 2– تقدم عملگرها اگر بیشتر از یک عملیات وجود داشته باشد، حتما از پرانتز استفاده کنید. این کد را ببینید: ;2=1var ;10=2var ;4=3var ;3*var2+var1temp = var اگر منتظرید که عبارت بالا نتیجه 48 را بدهد به حقیقت فکر کنید که نتیجه 42 را خواهید گرفت. اشتباه از کجاست؟ اگر ندانید که عملگر ضرب نسبت به عملگر جمع اولویت بیشتری دارد، در این صورت ایرادی منطقی خواهید داشت که به سادگی قابل رفع نخواهد بود. برای سادگی کار می توان کد در دو خط را نوشت. البته پرانتزگذاری بهترین راه حل است. 3– بررسی کد بازگشتی توابع استاندارد صرف نظر کردن از کدهایی که توابع استاندارد کتابخانه ای پس می فرستند، تبدیل به امری عادی شده است. اما حواستان باشد که اگر بخواهید فرض بگیرید که این توابع همواره مقدار درست را بر می گردانند، از همین جا ضربه خواهید خورد. به عنوان مثال، تابع malloc برای تخصیص پویای حافظه استفاده می شود که شکل کلی آن به این صورت است: void *malloc(size_t size); malloc اشاره گری را به حافظه تازه تخصیص داده شده ای برمی گرداند که اندازه آن را با مقدار size به آن داده ایم. تکه کد زیر را در نظر بگیرید: * sizeof (int)); 100int *stk_ptr = malloc( if (null == stk_ptr) { // memory could not be allocated // take corrective action } اگر malloc به هر دلیلی نتوانست حافظه مناسب را تخصیص بدهد، در این صورت اگر بررسی ای صورت نگرفته باشد، برنامه تان به سادگی از کار می افتد و شما به هیچ عنوان نخواهید توانست آن را رهگیری کنید. 4– غلبه بر محدودیت آرایه وقتی یک آرایه ایجاد می کنید، شاید بزرگترین مشکل مان با آن، محدودیت اش باشد. کد زیر را در نظر بگیرید: ];10unsinged char input_buffer[ unsigned char i; ; i++) {10; i

Only the registered members can see the link (Only the registered members can see the link %D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87_%D9%86%D9%88% DB%8C%D8%B3%DB%8C.html#)
منبع :جام جم آنلاین (Only the registered members can see the link %D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87_%D9%86%D9%88% DB%8C%D8%B3%DB%8C.html#)

MoBiN.R
26-06-09, 12:29
Visual Studio 2010

طبق پیش نمایش Visual Studio 2010 برای دریافت نظرات کاربران مایکروسافت، مطالب و امکانات زیر برای ++Visual C بیان شده است، که در کنار امکانات جدید زبان ++C، مشکلات معروف نسخه های قبلی را برطرف کرده است :



کد:
What's new in Visual C++ (CTP)

MSBuild Support for Visual C++

IntelliSense and Browsing Experience

- Improved Responsiveness and Scale

- Improved Accuracy and Robustness

C++0x Features

- Lambda Expressions

- Rvalue References

- static_assert

- auto Keyword

MFC Improvements

- Task Dialog Support

- Restart Manager Support

Deployment

- New deployment model for Visual C++ Libraries
(changed to not use Windows SxS configuration)



1- برخی پیاده سازی های C++0x که استاندارد جدید زبان ++C است.

2- سیستم هوشمند IntelliSense که برای ایندکس گذاری و پیدا کردن مسیر کتابخانه ها و تایپ اتوماتیک توابع و غیره است که همواره باعث کندی و به ظاهر هنگ کردن سیستم می شد که بر طرف شده است.

3- قابلیت های جدید MFC که بهتر هست از نمونه های walkthroughs در همان تاپیک این موارد را بررسی کنید.

4- Deployment یا همان روش های انتشار کتابخانه های ++VC بود که موجب نارضایتی همگان در نسخه های اخیر شده بود. به این شکل دیگر از Windows SxS استفاده نمی شود.
با این تغییر دیگر نیاز نیست برای سیستم هدف لزوما از برنامه های install استفاده کنیم و مانند سابق می توان dll ها را در کنار فایل اجرایی کپی برنیم و یا از حالت static استفاده کنیم (به قولی آن ها را در داخل فایل اجرایی قرار دهیم.)

5 - MSBuildکه امکانات سفارشی سازی جدید برای کامپایل می دهد و می توان تمامی دستورات Build با CL و امثال آن را برای برنامه خود به شکل دیداری مشاهده کرد یا ویرایش کرد.

ضمنا حتی می توان در محیط VC++2010 نوع پروژه را برای سایر نسخه ها تعریف کرد و پروژه را متناسب با آن کامپایل کرد. مثلا به جای VC10 با کتابخانه های VC9 کامپایل کرد.

لینک خبر (Only the registered members can see the link)

کاربرانی که مایلند امکانات جدید استاندارد ++C را با مثال های مشاهده کنند این لینک را مطالعه کنند:
Lambdas, auto, and static_assert: C++0x Features in VC10 (Only the registered members can see the link)
به عنوان مثال با توابع بی نام کد زیر مجاز می باشد !!

کد:
int main() {
[](){}();
[]{}();
}

MoBiN.R
26-06-09, 12:35
چرا ASP.Net را انتخاب کنیم؟

نسل جدید زبان‌های برنامه‌نویسی به این دلیل تولید می‌شود كه زبان‌های قدیمی‌تر دارای امكانات محدود بوده و یا قدرت استفاده از تكنولوژی‌های فعلی را بصورت مطلوب ندارند. ASP.Net نسل جدیدی از ASP بوده كه توسط شركت مایكروسافت عرضـه گردیده است. ASP.Net اولین سیستم جامع برای برنامه‌نویسی تحت وب (اینترنت) است كه از مراحل سطح پایین آن یعنی زبان ماشین تا بالاترین سطح آن كه برنامه‌نویسی ویژوال می‌باشد برای استفاده در اینترنت و شبكه های محلی طراحی شده‌است. بزرگترین مزیت آن در برابر سیستم‌های دیگر، امكانات اینترنت آن است. از ASP.Net می‌توان در طراحی و تولید سایت‌های وب اینترانت كوچك یك شركت و نیز سایت‌های وب تجاری خیلی بزرگ استفاده نمود. مهمترین نكته‌ای كه در طراحی این محصول درنظرگرفته‌شده‌است، استفاده‌ی آسان، كارآیی بالا و نیز قابلیت فوق‌العاده این نرم‌افزار است.

ASP.Net، یك زبان برنامه نویسی run time است. ساختار آن بر اساس Framework بوده كه تمام لایه‌های برنامه نویسی را در بالای سیستم عامل دربرگرفته‌است. این تمامی تكنولوژی های موجود از طرف مایكروسافت و سایر شركت ها را شامل می‌شود. در .Net تمام اعمال تخصیص حافظه و سازماندهی فایل به عهده‌ی .Net Framework است. همین باعث می‌شود تا بتوان برنامه‌ای را كه به سیستم عامل متكی نمی‌باشد ، نوشت. اما قلب Framework، CLR می‌باشد. مسؤول اجرای فایل‌ها، فراخوانی آنها به حافظه و كمپایل‌كردن آنها به زبان MSIL است. سپس كدهای IL در هنگام اجرا، توسط برنامه‌ی كمپایلر Just-in-time به زبان ماشین تبدیل می‌شود. این بدان معنی است كه در .Net دو مرحله برای كمپایل‌شدن وجود دارد. اولین مرحله وقتی است كه برنامه به IL كمپایل شود كه این كد كمپایل‌شده، وابسته به سیستم عامل نمی‌باشد. مرحله‌ی دوم زمان اجرا است كه كمپایلر Just-in-hime كد IL را برای اجرا به زبان ماشین ترجمه می‌كند.

ASP.Net دارای چندین ویژگی مهم در مدلهای توسعه یافته می‌باشد:
- بهبود عملكرد
ASP.Net یك تكنولوژی قدرتمند از مجموعه‌ی تكنولوژی‌های Server-side برای ایجاد صفحات وب پویا است . برخلاف پردازشگرهای مفسر ، ASP.Net بهبود در مقیدسازی ،كمپایل Just-in-time، بهینه‌سازی و سرویس Cache را در بهترین شرایط ارائه می‌دهد. می‌توان گفت ASP.Net بهترین عملكرد را قبل از نوشتن حتی یك خط برنامه ارائه‌خواهدداد.

- پشتیبانی از ابزار جهانی
ASP.Net جعبه ابزاری كامل، و محیط طراحی توسعه یافته‌ای دارد. به علت تغییر اساسی‌ای كه در برنامه داده‌شده‌است، برنامه اینترنتی قابلیت گرافیكی در حد برنامه‌های Win32GUI را دارا هست. ویرایش WYSIWYG، كنترل‌های بكش‌ورهاكن سرور و گسترش اتوماتیك، از ویژگی‌های این ابزار قدرتمند می‌باشند.

- قدرت و انعطاف‌پذیری
به واسطه‌ی استفاده از CLR، ASP.Net از قدرت و انعطاف‌پذیری خاصی در توسعه‌ی برنامه‌های كاربردی وب دارا است. كتابخانه‌ی كلاس .Net، پیام‌ها و راه‌حل‌های دستیابی داده، تواماً گواهی بر قدرت دستیابی وب می‌باشد. XML، ADO.Net وThreading (اشیایی برای برنامه نویسی هر Thread ) از جمله‌ی كلاس‌ها و اشیای مورد استفاده‌ی برنامه‌نویسان است. ASP.Net دارای زبانی مستقل است كه می‌توانید آنرا انتخاب و جزیی از زبان‌های برنامه‌ی كاربردی خود قراردهید.

- سادگی
ASP.Net كارها را ساده كرده و از یك فرم ساده و مجوزی، برای گسترش و پیكربندی سایت جهت ایجاد یك برنامه استفاده می‌كند. برای مثال، یك صفحه‌ی ASP.Net اجازه می‌دهد شما رابط كاربری بسازید كه برنامه‌ی كاربردی آن جدای از كنترل‌های دستی می‌باشد، در واقع Code-behind وجود دارد. بعلاوه براحتی با سرویس كدهای مدیریتی مانند ارجاع اتوماتیك و garbrage توسعه می‌یابد.

- مدیریت
ASP.Net بر پایه‌ی متن پیكربندی سلسله مراتبی كه در محیط سرور و برنامه‌های كاربردی وب ظاهرمی‌شود، كار می‌كند. بدلیل اینكه اطلاعات پیكربندی در متن ذخیره شده، تنظیمات جدید، بدون ابزار مدیریتی ظاهرمی‌شوند. این مدیریت، سبب گسترش برنامه‌ی‌كاربردی در ASP.Net می‌شود. برنامه كاربردی ASP.Net تحت سرور، به سادگی با كپی فایلهای لازم روی سرور توسعه می‌یابند. سرور نیاز به restart نداشته و تنها با جایگزینی كدهای كمپایل‌شده یا توسعه‌یافته گسترش می‌یابد.

- قدرت و توانایی
ASP.Net با تفكر سطح بالایی طراحی شده و دارای ویژگی بهبود عملكرد كار در محیط های چند پردازنده است. پردازش‌ها توسط ASP.Net مدیریت شده و نمایش‌داده‌می‌شوند. به عنوان مثال اگر گسیختگی پیش‌آید، یك پردازش می‌تواند در این مكان ایجاد شود تا به درخواست‌های برنامه كاربردی كمك نماید.

- مشتری‌مداری و قابلیت تمدید
بر اساس معماری ASP.Net اجازه‌ی توسعه Plug-inها را به شركت‌ها و اشخاص خواهد داد. در واقع این امكانی است كه به كاربران اجازه‌ی نوشتن، جایگزین كردن، و به كار بردن قطعات نوشته شده را در ASP.Net می‌دهد.

- امنیت
با استفاده از مجوزها در ویندوز وپیكربندی برنامه‌ی كاربردی، یقیناً برنامه كاربردی مطمئنی را می‌توان ارائه داد. ASP.Net قادر به ارائه امنیت در سطوح مختلف می‌باشد.

ASP.NET فراتر از یک نسخه تکمیل شده در مقایسه با نسخه قبلی خود یعنی ASP کلاسیک است. ASP.NET یک محیط کامل جهت پیاده سازی نرم افزارهای تحت وب است. با اینکه ASP.NET از لحاظ گرامر با ASP کلاسیک شباهت هائی را دارد ولی تکنولوژی فوق با ارایه یک مدل جدید برنامه نویسی بهمراه زیر ساخت های لازم امکان ایجاد نرم افزارهای تحت وب را با امنیت و استحکام بیشتر فراهم می آورد.

ASP.NET برخلاف ASP کلاسیک ترجمه می گردد. در محیط دات نت می توان با استفاده از هر یک از زبانهای برنامه نویسی حمایت شده نظیر: Visual Basic.Net/c#/Jscrip.Net اقدام به نوشتن برنامه ها نمود. برنامه های ASP.NET از تمامی توان و پتانسیل های ارایه شده توسط دات نت استفاده می نمایند.

در ASP.NET می توان از ویرایشگرها ی ویژوال و سایر ابزارهای برنامه نویسی نظیر ویژوال استودیو دات نت استفاده نمود. پیاده کنندگان نرم افزارهای تحت وب به کمک ASP.NET می توانند از دو تکنولوژی عمده فرم های وب (Web Forms) و سرویس های وب (Web service) برای ایجاد نرم افزار استفاده نمایند.


● فرم های وب (Web Forms)

با استفاده از تکنولوژی فوق می توان صفحات وب متکی بر فرمهای وب قدرتمندی را ایجاد نمود. در زمان ایجاد صفحاتی از این نوع می توان از کنترل های سرویس دهنده ASP.NETبرای ایجاد عناصر معمولی در طراحی رابط کاربر (UI) و برنامه نویسی آنها برای انجام عملیات خاص استفاده نمود. استفاده از کنترل های سرویس دهنده باعث سرعت در امر پیاده سازی فرم های وب خواهد داشت.


● سرویس های وب XML

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

سرویس های وب XML امکان مبادله داده بین سرویس گیرنده و سرویس دهنده و یا بین دو سرویس دهنده را بوجود می آورد. برای تبادل اطلاعات می توان از پروتکل های ارتباطی استانداری نظیر http و یا پیامهای XML استفاده نمود. نکته قابل توجه در رابطه با سرویس های فوق توانائی هر برنامه ( صرفنظر از زبان استفاده شده ) و تحت هر نوع سیستم عامل برای استفاده از سرویس های فوق است.

دو مدل فوق قادر به استفاده از تمامی مزایای تکنولوژی های ASP.NET خواهند بود. بدیهی است استفاده از پتانسیل های محیط دات نت نیز در این زمینه وجود دارد. در ادامه به برخی از این ویژگی های ASP.NET اشاره می گردد.

اگر دارای تجاربی در زمینه پیاده سازی نرم افزار های تحت وب بکمک تکنولوژی ASP باشید در اولین نگاه به ASP.NET حتما متوجه برخی شباهت های موجود خواهید شد. البته مدل اشیاء ASP.NET بصورت کاملا آشکار با ASP کلاسیک تفاوت داشته و می توان این ادعا را داشت که ASP.NET به مراتب ساختیافته تر و شی گراء تر شده است.

با توجه به مسئله فوق می بایست به این نکته نیز اشاره گردد که ASP.NET با ASP کلاسیک بطور کامل سازگار نبوده و تقریبا» تمامی صفحات ASP موجود مجبور خواهند بود شاهد برخی تغییرات باشند تا امکان اجرای آنان تحت ASP.NET فراهم گردد. یکی دیگر از تغییرات مهم در این زمینه وجود VisualBasic.NET است.

در صفحات ASP فعلی از VBscript استفاده شده است که بنوعی این زبان در دات نت مورد توجه قرار نگرفته و VisualBasic.NET جایگزین شده است. دستیابی به بانک های اطلاعاتی از طریق برنامه های ASP.NET بعنوان یک نیاز اساسی برای اغلب برنامه های تحت وب مورد توجه خاص قرار گرفته است.

در این راستا ASP.NET امکانات بیشتر و به مراتب راحت تر از لحاظ بکارگیری را پیش بینی کرده است و حتی امکان مدیریت بانک اطلاعاتی از طریق کدهای نوشته شده نیز وجود خواهد داشت.

ASP.NET با ارایه یک مدل ساده به پیاده کنندگان نرم افزارهای تحت وب این امکان را خواهد داد که منطق برنامه های خود را نوشته و آنها را در سطح Application اجراء نمایند. کدهای فوق را می توان در یک فایل متنی با نام Global.asax و یا در یک کلاس کمپایل شده که بعنوان یک اسمبلی بکار گرفته می شود استفاده نمود.

ASP.NET امکانات لازم برای دستیابی به و Application State و Session state را ارایه نموده است. برای پیاده کنندگان حرفه ای تر که قصد استفاده از API را دارند (ISAPI رابط برنامه نویسی است که در نسخه قبلی ASP از آن استفاده می گردید) رابط های جدیدتر و کامل تری را با نام و IOnly the registered members can see the link و IOnly the registered members can see the link را ارایه نموده است.

ASP.NET از امکانات و پتانسیل های موجود در دات نت و CLR بمنظور افزایش کارائی برنامه ها بخوبی استفاده می نماید. تمامی کدهای ASP.NET ترجمه می گردنند( تفسیر نمی گردند) در ASP.NET می توان ماژول هائی را که ارتباطی با برنامه ندارند حذف نمود ASP.NET . factorable از سرویس های پیشرفته Caching برای افزایش سرعت و کارائی برنامه ها بخوبی استفاده می نماید.

ASP.NET بهمراه یک شمارنده برای سنجش میزان کارائی عملکرد برنامه ها ارایه شده است. شمارنده فوق این امکان را فراهم می آورد که پیاده کنندگان و مدیران سیستم یک برنامه دات نت عملکرد شاخص های لازم برای افزایش کارائی برنامه ها را مشاهده بررسی و در صورت لزوم تجدید نظرهای لازم را اعمال نمایند.

اشکال زدائی برنامه های نوشته ASP.NET به کمک دیباگر به راحتی انجام خواهد گرفت. در این حالت می توان با افزودن چندین خط دیباگ در یک صفحه وب نقطه بروز اشکال را بسرعت و بسادگی تشخیص و در نهایت برطرف نمود. ASP.NET در این راستا کلاس جدیدی با نام TraceContext را ارایه نموده که پیاده کنندگان در زمان نوشتن برنامه قادر به درج دستورات خاص دیباگ در برنامه برای ردیابی خطاهای احتمالی خواهند بود.

دستورات فوق صرفا» در زمانی که امکان Tracing فعال شده باشد (برای یک صفحه وب و برای تمام برنامه) اجراء خواهند شد. دات نت و ASP.NET دارای امکانات لازم برای و Authorizaing و Authentication مناسب برای برنامه های تحت وب می باشند. امکانات فوق را می توان بسادگی اضافه و یا با سایر مدل های موجود و مورد نظر جایگزین نمود.

مقادیر مربوط به تنظیمات و پیکربندی برنامه های ASP.NET در فایل های XML ذخیره می گردنند با توجه به ماهیت فایل هائی از این نوع خواندن و نوشتن درون آنها بسادگی انجام خواهد یافت. هر برنامه می تواند دارای یک پیکربندی مجزاء بوده که در ادامه حیات برنامه و با توجه به نیازهای مطرح شده اعمال تغییرات بسادگی انجام خواهد گرفت. برنامه های ASP.NET همانند سایر برنامه های تحت وب از مجموعه ای فایل با نوع های متفاوت و دایرکتوری تشکیل می گردند. این فایل ها می توانند صفحات ASP.NET کنترل های کاربر (User Controls) فایل های سرویس های وب و فایل های تنظیمات و پیکربندی و اسمبلی باشند.

MoBiN.R
26-06-09, 12:36
دات نت فریم ورک framework چیست؟

وقتی شما برنامه ایی را نصب می کنید علاوه بر فایلهای اصلی برنامه که در program files نصب می شوند تعدادی فایل هم در شاخه ویندوز نصب می شود . این فایلها همان درایو های مورد نیاز ویندوز برای اجرای برنامه شما هستند که توسط برنامه نویس برنامه نوشته نمی شوند بلکه آنها قبلا تعریف شده اند و برنامه نویس از قابلیت های آنها در در برنامه خود استفاده می کند.
پس برای اینکه برنامه شما کار کند باید آن فایلها به ویندوز شما اضافه شوند . فریم ورک framework مجموعه ای از فایلهای مورد نیاز سیستم عامل (شامل فایلهای dll و رجیستری و واسطه های استاندارد ارتباط برنامه ها با یکدیگر ) است که برای اجرای برنامه های نوشته شده تحت دات نت ضروری می باشد ( توجه : برای برنامه های تحت جاوا نیز نیاز به نصب java virtual machine ) دارید. چون دات نت می خواهد از فلسفه سادگی "keepit simple " پشتیبانی کند به همین دلیل اساس کار نصب بر نامه ها : installation only-copy می باشد. یعنی دیگر نیاز ی به پکیچ کردن بر نامه ها تو سط برنامه نویس و نصب توسط کاربر نیست . بلکه تمامی فایل های کتابخانه ای مورد نیاز را فریم ورک تأمین میکند و برنامه ها با روش فقط کپی در ویندوز کار میکند .
clr به بر نامه نویسان چه کمکی می کند ؟ برنامه نویسان زبان vb دیگر محدود به محیط سیستمی ویندوز نیستند و می توانند بر نامه سازان زبان ++C/C برنامه خود را روی سیستم های دیگر که فریم ورک دارند نیز ببینند و همچنین بخاطر قابلیت های چند زبانه بودن محیط دات نت بر نامه نویسان c و vb براحتی کد های نوشته شده توسط دیگری را درک کنند.

™Ali
26-06-09, 12:42
با اجازه دوستان درباره زبان جدید مایکروسافت #F واستون مطلب می ذارم (من بهش میگم برادر #C :1. (38):)

چند روز پیش Visual Studio 2010 Beta 1 رلیز شد که برای اولین بار #F رو هم به عنوان یک زبان first class در خودش داشت. تا قبل از این آخرین نسخۀ این زبان 1.9.6.2 بود که به عنوان F# CTP September 2008 شناخته می شد و این نسخه که همراه VS 2010 beta 1 عرضه شده ، 1.9.6.16 هست که F# CTP May 2009 نام داره (که بعضی ها بهش beta 1 هم میگن)

اگه از VS 2010 beta 1 استفاده می کنید که خب نیازی به دانلود جداگانه ندارید ، اما در صورتی که همچنان مایلید از نسخۀ پایدار ویژوال استودیو (2008) استفاده کنید (مثل من) می تونید نسخۀ مربوطه رو از اینجا دانلود (Only the registered members can see the link)کنید.
مزیت های نسخۀ عرضه شده با VS 2010 beta 1 اینه که از.NET 4.0 استفاده می کنه (برای Tuple ، Lazy و ... یا مثلا استفاده از Parallel FX )
لیست کامل تغییرات + اعلام رلیز رو از وبلاگ نویسندۀ این زبان بخونید:



Only the registered members can see the link (Only the registered members can see the link)


Only the registered members can see the link (Only the registered members can see the link)





با تشکر علی :1. (21):

™Ali
26-06-09, 12:45
جدیدترین پدیده .Net - زبان برنامه نویسی F# (مقاله)

این مقاله حاصل ترجمه ای از کتاب F# نوشته دون سیم هست :give_rose:

مقدمه ویکیپدیا

F# یک زبان برنامه نیسی چند مدله است ک در چهارچوب .Net فعالیت میکند و شامل برنامه نویسی تابعی و برنامه نویسی شی گرای دستوری میباشد. F# شاخه ای از ML بوده و بسیار با OCAML سازگار است.F# در ابتدا توسط دون سیم در مرکز تحقیقات مایکروسافت ابداع شد اما در حال حاضر توسط گروه تسعه دهنده ماکروسافت ادامه داده میشود و به عنوان یک زبان کاملا پشتیبانی شده در محیطهای .Net و Virtual Studio ارائه میگردد.

مقدمه مقاله

این بخش مقدماتی میتواند به بسیاری از سوالات شما درباره F# و برنامه نویسی تابعی(Functional) پاسخ دهد.

برنامه نویسی تابعی چیست ؟

برنامه نویسی تابعی از میان سه مدل برنامه نویسی عمده قدیمیترین آنهاست. اولین زبان برنامه نویسی تابعی APL بود که در سال 1955 تقریبا یک سال قبل از فورترن ابداع شد. دومین برنامه Lisp بود که در سال 58 (یعنی یک سال قبل از کوبول) ارائه شد. هر دو این زبانها (کوبول و فورترن) زبانهای دستوری هستند و موفقیت آنها در حوزه های تجارت و علوم باعث شد که مدل برنامه نویسی دستوری مدلی غالب برای مدت 30 سال باشد.با به بازار آمدن مدل شی گرا در دهه 70 و پیشرفت تدریجی زبانهای برنامه نویسی شی گرا ، پس از آن این نوع برنامه نویسی تا امروز محبوب ترین مدل میباشد. با توجه به توسعه پایدار و همیشگی زبانهای تابعی مانند OCAML , Haskel و... که برای برنامه نویسی دنیای حقیقی بیشترین کاربرد را دارند. بعد از 1950 همچنان زبان برنامه نویسی تابعی یک زبان آکادمیک و در سطح دانشگاهها محسوب میشد و موقعیت تجاری نداشت. اولین موفقیت تجاری زبانهای دستوری باعث شد تا برای چند دهه این زبانها به عنوان زبان غالب باقی بمانند ، زبانهای شی گرا تنها زمانی که نیاز برای حل مسایل و مشکلات پیشرفته تر کامپیوتری احساس شد به شهرت رسیدند.امروزه وجود برنامه نویسی تابعی برای حل مشکلاتی پیچیده تر اثبات شده و میتوان با آن برنامه های سده تر را نیز به وجود آورد. برنامه نویسی تابعی خالص تمام برنامه ها را به صورت مجموعه ای از توابع که میتوانند آرگومانهایی را دیافت و مقادیری را برگردانند نگاه میکند و بر خلاف مدلهای شی گرا و دستوری اثرات جانبی ندارد و به جای حلقه تکرار از حلقه های بازگشتی استفاده میکند.

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

طبیعت بی دستور بودن و استفاده از توابع بازگشتی زبانهای دیگر را برای برخی از فهالیتهای عادی مناسبتر جلوه میدهد با این حال یکی از مهمترین خصوصیات F# این است که میتواند از مدلهای دیگر برنامه نویسی نیز استفاده کند و حتی برای حل مشکلات خاص آنها را به بهترین شکل با هم ترکیب کند.

™Ali
26-06-09, 12:46
چرا برنامه نویسی تابعی مهم است ؟

وقتی افرا به برنامه نویسی تابعی فکر میکنند آنها بی دستور بودن را بعنوان ضعف در نظر میگیرند و فایده های آن را در نظر نمیگیرند. فرد ممکن است بگوید که با توجه به این که زبانهای دستوری 90% زبانهای بازار را تشکیل میدهد و به دلیل اینکه برنامه نویسی تابعی به این صورت نیست و همچنین با توجه به اینکه تعاریفی در ابتدای برنامه نویسی تابعی به صورت معمول نمیاید پس این نوع از برنامه کاملا کوتاه تر میباشد. افراد با توجه به این گفته ها جذب این نوع زبان بازگشتی بدون دستور که دنیای کاملا متفاوتی دارد نمیشوند. جان هیوز در مقاله کلاسه خود به نام "چرا زبانهاب برنامه نویسی تابعی مهم هستند" میگوید :
"زبانهای برنامه نویسی تابعی شبیه کشیشان قرون وسطی میباشند
آنها لذت زندگی را از خود میگیرند تا به صورت خوب و پرهیزکار
جلوه کنند"
برای فهمیدن برتری های این نوع زبان باید بینید که اجازه استفاده از چه چیزهایی را خواهید داشت. برای مثال برنامه نویسی تابعی به شما اجازه برخورد با تبع را به صورت جداگانه داده و مقادیر توابع را به توابع دیگر ارجاع میدهد.در نگاه اول ممکن است این قابلیت مهم جلوه نکند اما روش برخورد این زبانها با این مسئله بسیار قابل توجه است و تفاوت بین داده و توابعی را که خیلی مسایل وابسته به آنها میباشند را از میان بر میدارد.
برنامه نویسی تابعی کوتاه تر و دسته بندی شده تر از سایر انواع است همچنین اندازه این برنامه ها و قابلیت خوانایی آنها حتی از زبانهای شی گرا نیز بیشتر است.
علاوه بر برخورد با تابع از طریق مقادیر آنها زبانهای تابعی ویژگیهای دیگری دارند که از ریاضیات گرفته شده و علی الخصوص در زبانهای دستوری مشاهده نمیشوند. برای مثال معمولا زبانهای برنامه نویسی تابعی توابع کولیر را ارائه میکنند که در هنگاه ارسال آرگومانها به توابع اگر تمام آرگومانها ارسال نشوند تابع برای دریافت دیگر مولف ها منتظر میماند. همچنین برای زبانهای برنامه نویسی تابعی این امکان وجود دارد که از انواع سیستمها در سطوح مختلف(قدرت یا وزن) استفاده کند یعنی سیستمهایی که در آنها قدرت نوع بر وزن آن برتری دارد که این مسئله باعث بهبود عملکرد تصحیح برنامه بدون تلاش زیاد میگردد.علاوه بر این یک تابع ممکن است چندین مقدار را برگرداند که صدازنی توابع به راحتی انجام میگیرید.

F# چیست ؟

زبان برنامه نویسی تابعی بهترین روش حل مسایل کامپیوتریست اما زبان برنامه نویسی تابعی خالص برای برنامه نویسی همه منظوره مناسب نمیباشد بنابراین به تدریج زبانهای برنامه نویسی تابعی در کنار زبانهای شی گرا و دستوری باقی مانده و استفاده عمومی نیافتند. مچنین در این مدل ویژگیهای افزوده شده را به راحتی میتوان در هر برنامه ای نوشت و به راحتی به آن افزود. F# یک زبان طبیعی به وجود آمده بر این مبناست بعلاوه بسیار بیشتر از یک زبان برنامه نویسی تابعی میباشد. برخی از زبانهای برنامه نویسی تابعی معروف بطور کلی (OCAML , Haskel , Lisp) با دستورات زمان اجرای سفارشی کار میکند و این مسئله باعث نبود روش برنامه نویسی چند فعالیته میشود.
F# یک زبان همه منظوره برای محیط .Net است که برای حالت اجرا بصورت همه منظوره به کار میرود و به راحتیهر سه مدل برنامه نویسی را شامل میشود. برای حل مسایل مختلف در موثرترین روش میتوانید محیط خاص آنرا در برنامه انتخاب کنید. شما میتوانیداز برنامه نویسی توصیفی استفاده کنید و یا توابع را به راحتی با هم ترکیب کنید و یا روشهای شی گرا و دستوری را در همان برنامه استفاده کنید و از قابلیتهای مختلف هر کدام در برنامه سود ببرید. مثل دیگر برنامه های تابعی F# نوع قوی دارد اما از نوع استنتاجی هم سود میبرد بنابراین برنامه نویسان نیاز ندارند زمان زیادی برای توضیح انواع توابع هدر دهند مگر اینکه در موارد خاص ابهاماتی دربرنامه پیش بیاید که لزوم داشته باشد به وضوح بیان شود.علاوه بر این F# بصورت کاملی با چهارچوب .Net و کتابخانه کلاس اصلی آن یعنی BCL ترکیب شده و به راحتی میتوان از آن در F# استفاده کرد و این مسئله مانند C# و VB میباشد و حتی در مواردی استفاده از BCL در F# از دیگر زبانهای تحت .Net راحت تر است.

F# مدل خود را از روی OCAML انتخاب کد که زبان برنامه نویسی تابعی شی گرای موفقی بود سپس با گسترش قابلیتها خوب این برنامه آنها را از نظر فنی و فلسفه کار داخل غالب .Net گنجاند. این زبان کاملا از غالب .Net پشتیبانی کرده و به کاربران این امکان را میدهد که هر چیزی که در محیط .Net ارائه شده است با F# استفاده کنند. کامپایلر F# میتواند تمام پیاده سازیهای زیر ساختار زبانهای معمول را بپذیرد و از روشهای معمول .Net بدون تغییر کد استفاده کند. همچنین میتواند برای کد نویسی IL به صورت برچسب دار استفاده شود.

F# محدود به محیط ویندوز نبوده و میتوان آنرا در لینوکس ، مکینتاش و... استفاده کرد که بخشی از کتاب مورد ترجمه به نحوه عملکرد روی لینوکس میپردازد.کامپایلر F# را میتوان داخل محیط Virtual Studio افزود و با عیب یاب آن به چک کردن دستورات به صورت اتوماتیک پرداخت. همچنین این کامپالر راهنمایی هایی برای استفاده از تمامی توابع عرضه میکند که در نوع خود بینظیر است و برنامه نویسان اشاره میکنند که این مسئله بسیار برای شبیه کردن برنامه به زندگی واقعی موثر است.
F# توسط دکتر دون سیم ابداع شد. در حال حاضرمحصولیست وابسته به تیمی کوچک اما کاملا پیشرفته واقع در مرکز تحقیقات مایکروسافت - کمبریج - لندن - انگلستان با این حال F# در حد یک زبان آکادمیک یا تحقیقاتی نیست و برای خیلی از برنامه های دنیای واقعی (که تعداد آنها به شدت در حال افزایش است) به کار میرود. با توجه به اینکه زبان تابعی دیگری به ندرت در محیط .Net اجرا میشوند F# بعنوان استاندارد این نوع زبانها در آمده است. زبانهای برنامه نویسی تابعی در این میان از F# تبعیت میکنند زیرا این زبان کیفیت پیاده سازی و اشتراک با .Net و Virtual Studio را بسیار بهتر در خود دارد. هیچ برنامه برنامه نویسی .Net دیگری از لحاظ کارکرد ، استفاده و انعطاف پذیری به پای F# نمیرسد.

™Ali
26-06-09, 12:48
درباره نویسنده و نوشتن کتاب F#

در سال 2003 دنبال راهی برای پردازش IL که زبان میانی مورد نیاز برای کامپایل تمام زبانهای .Net میشد میگشتم. در آن زمان .Net تقریبا جدید بود و گزینه های زیادی برای این عمل وجود نداشت. من به سرعت دریافتم که بهترین گزینه در آن زمان یا حتی امروزه API به نام ABSIL است که به زبانی ه نام F# نوشته شده بود و من تصمیم گرفتم از این زبان برای نوشتن برنامه ای برای دسته بندی ABSIL استفاده کنم. بنابراین من از این طریق میتوانستم اطلاعات مورد نیاز را از DLL ها به شکل مورد استفاده تراز C# استفاده کنم. اما چیز جالبی در زمان نوشتن این دسته بندی اتفاق افتاد. با وجو اینکه در آن زمانها برنامه نویسی به زبان F# به دلیل نبودن کامپایلر مناسب مشکل بود فهمیدم که از برنامه نویسی به این زبان آنقدر لذت میبرم که وقتی نوشتن برنامه ام را تام کردم نمیخواستم به C# برگردم. یعنی در حقیقت عاشق این زبان شده بودم. زمانی که من به عنوان مشاور کار میکردم نیاز به چک کردن مدام تکنولوژی های جدید و API های آنها داشتم بنابرین تمام تجربیاتم را با F# انجام میدادم. درهمان زمان افرادی در باره راه جدیدی برای ارتباط با وب بحث میکردند و لغت جدیدی که وارد زبان انگلیسی شده بود Blog بود. من تصمیم گرفتم که یک وبلاگ داشته باشم چون هرکسی که در مقوله فن آوری درگیر بود یکی از آنها را داشت بنابراین من وبلاگ خودم را راه اندازی کردم که امروزه هم هنوز فعال است. آنگاه یک دایره المعارف درباره F# به وبلاگم افزودم که در حال حاضربسیار محبوب است و از شیوه wiki در آن استفاده کرده ام. کار من لزوما با مسافرت های زیادی همراه بود بذا زمان زیادی را در اطاقهای هتل یا ترنها یا هواپیماها داشتم. در این زمانها میتوانستم به راحتی به مسایلی مانند F# بپردازم. من به مبادله ایمیلهایی با دون سیم(ابداعگر F#) پرداختم و سپس به تدریج با هم ملاقاتهایی داشتیم. ابتدا به جایی برای صرف نوشیدنی رفتیم و اولین بخش ساختار DNA را با هم وجود آوردیم یعنی در حقیقت کار خود را با یکدیگر آغاز کردیم. آیا سالها بعد افرادی درباره باری(Bar) که اولین بار سیم و پیکرینگ(نویسندگان کتاب) با هم ملاقات کردند چیزی خواهند گفت ؟شاید نه! در هر حال تمام این مسائل مرا به نقطه ای هدایت کرد که من میتوانم آنرادریافت اطلاعات جدید زبان F# و برنامه نویسی تابعی بدانم. در این زمان فردی به نام جیم هادلستون یک لیست پستی F# به راه انداخت و پرسید که آیا کسی میتواند کتابی درباره این زبان بنویسد یا نه ؟. و من نتوانستم جلوی خودم را بگیرم و این کار به نظرم موقعیت شغلی خوبی آمد بنابراین با کمکها و تشویقهای دون سیم نوشتن این کتاب را آغاز کردم. قسمتی از این کتاب در پاریس نوشته شد و برخی از آنها در بروکسل ولی بیشتر آن زمانی نوشته شد که بین این دو شهر رفت و آمد میکردم.


چه کسانی از F# استفاده میکنند ؟

F# در شرکت مایکروسافت به وفور مورد استفاده است هم در MSR و هم در کل شرکت. رالف هربریش که یکی از مدیران دوگانه گروه بازی های مایکروافت و متخصص آموزش ماشینیست به استفاده فزاینده از F# اشاره میکند :
"اولین برنامه کاربردی برای فرستادن 110 گیگابایت از طریق 11.000 فایل
متنی در بیش از 300 دایرکتوری و وارد کردن آنها در بانک داده ای بود. کل
برنامه 90 خط بود که شامل توضیحات نیز میشد و در کمتر از 18 ساعت
توانست اطلاعات مربوطه را در محیط SQL بگنجاند یعنی 10.000 خط
برنامه متنی در هر ثانیه مورد پردازش قرار گرفت. همچنین توجه کنید که من
کد را بهینه نکردم بلکه برنامه را بصورت کاملا عادی نوشتم. این جواب بسیار
قابل توجه بود زیرا من انتظار داشتم نوشتن و اجرای برنامه حداقل یک هفته
کار ببرد. دومین برنامه ، برنامه پردازش میلیونها Feedback مشتریان بود،
ما روابط مدلی زیادی را توسعه دادیم ومن آنها را داخل برنامه F# تایپ کردم
همچنین داده های مربوط به پایگاه داده ای SQL را داخل آن فراخوانی کردم و
نتایج را در فایل داده ای MatLab ذخیره کردم. مقدار این برنامه در F# صد
خط بود که توضیحات را نیز شامل میشد. باز هم با اجرای این برنامه من تحت
تاثیر قرار گرفتم زیرا پردازش میلیونها مورد دادها 10 دقیقه و در یک کامپیوتر
عادی زمان برد.این برنامه را با C#از فعالیتهای قبلی ام داشتم که حدود 1000
خط طول داشت واصلا سریعتر ازاین برنامه نبود.کل کار از توسعه مدل روابط
با اجرا و دیدن نتایج دو روز زمان برد."

استفده از F# تنها در مایکروسافت رایج نیست و در خارج از آن نیز کاربردهایی دارد و یه سرعت در حال افزایش است. جود او کلی ، برنامه نویس شرکت Derivative One که یک شرکت تولید نرم افزارهای شبیه ساز مالی میباشد در جواب به این سوال که چرا این شرکت از F# در محصولاتش استفاده میکند ؟ میگوید :

"ما مدلهای مالی خود را در C# و F# مورد مقایسه قرار دادیم و مشاهده کردیم
که عملکرد یکسان است اما از F# بیشتر خوشمان آمد زیرا روش خلاصه تری
دارد. یکی از مشکلات ما با F# نبود اطلاعات در مورد این زبان بود وبه نظر
ما کتابی که هم اکنون توسط دون سیم برای آموزش F# ارائه شده میتواند کمک
خوبی در این مورد باشد."

تنها کتاب موجود

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

با تشکر علی :1. (21):

MoBiN.R
28-06-09, 18:01
مدل کدينگ فرم های وب

يک صفحه فرم وب دارای دو بخش ويژوال ( تگ های HTML ،کنترل های سرويس دهنده و متن های ايستا ) و صفحه مربوط به منظق برنامه نويسی است . هر يک از بخش های فوق در يک فايل جداگانه ذخيره خواهند شد . عناصر ويژوال در فايلی با انشعاب aspx . و کدها در فايل مجزائی با انشعاب ( aspx.vb , aspx.cs )



ASP.NET Page class


با اينکه يک صفحه فرم وب دارای دو فايل مجزاء می باشد ولی آنها بعنوان يک يونيت واحد در زمان اجرای يک برنامه ايفای وظيفه خواهند کرد. کد مربوط در فايل ها پس از ترجمه بصورت .dll درخواهند آمد. فايل .aspx نيز با يک روش متفاوت ترجمه خواهد شد . اولين بار که مرورگر درخواست يک فايل .aspx را می نمايد ، بصورت خودکار يک .NET class file ايجاد و آن را بصورت dll دوم ترجمه خواهد کرد . در صورتيکه صفحه دارای کنترل های سرويس دهنده باشد ، کلاس ايجاد شده بعنوان يک Container برای کنترل ايفای وظيفه خواهد کرد. نمونه هائی از کنترل ها در زمان اجراء ايجاد و خروجی مورد نظر را برای ارسال به سرويس گيرنده آماده می کنند.


برای افرادی که قبلا" با مدل ASP کلاسيک کار کرده اند ، مدل فوق يک رويکرد جديد است . در مدل ASP يک فايل HTML با کدهای نوشته شده توسط يکی از زبانهای اسکريپت نظير :Jscrip,JavaScript,VbScript تلفيق شده و در يک فايل واحد قرار می گيرنند. Parser مربوط به ASP فايل را خوانده و پس از تفسير، کدهای مربوطه را بمنظور ايجاد خروجی اجراء خواهد کرد. در ادامه ASP خروجی توليد شده توسط کدهای اسکريپت را با خروجی های Html ترکيب و در نهايت حاصل برای مرورگر سرويس گيرنده ارسال خواهد شد.



در مدل ASP.NET ، تمام صفحات فرم های وب بعنوان برنامه های اجرائی در نظر گرفته می شوند. اين برنامه ها قادر به ايجاد خروجی های مربوطه و ارسال آنان برای مرورگر سرويس دهنده خواهند بود. در مدل فوق مجموعه ای از مراحل پردازشی نظير : مقداردهی اوليه ، پردازش ، حذف انجام خواهد شد. عمليات پردازشی فوق ، دقيقا" مشابه با عملکرد ساير برنامه های اجرائی با دو تفاوت است :



▪Page Class ، تمامی مراحل فوق را در هر زمان که صفحه صدا زده می شود ،انجام خواهد داد. در اين حالت صفحه مقداردهی اوليه ،پردازش و در نهايت از بين خواهد رفت .
▪ Page Class ،دارای يک مرحله منحصر بفرد با نام رندرينگ است که در زمان اتمام چرخه حيات يک صفحه عملی خواهد شد.

اقتباس از Page Class
زمانيکه سيستم برای يک صفحه فرم وب ، صفحه و فايل های کلاس آن را ايجاد می کند برای آن کدی توليد می گردد که دارای خواص به ارث رسيده از Page class اوليه (Base) است . مثلا" اگر فرم جديدی با نام Webpage1 ايجاد گردد ، کلاس جديدی با نام Webpage1 از System.Web.UI.Page مشتق و بوجود می آيد. صفحه .aspx خواص خود را از کلاس webpage1 به ارث خواهد برد ارتباط بين Page Class و کلاس های مشتق شده و فايل .aspx در شکل زير نمايش داده شده است .




Only the registered members can see the link


ASP.NET اين امکان را فراهم می کند که بخش های ويژوال و کد مربوط به يک فرم در يک فايل مشترک قرار گيرند. عملکرد اين نوع فايل ها با موارديکه دو بخش در دو فايل قرار می گيرنند ،بسيار مشابه است .

Saeed-Milan
23-07-09, 00:44
سي‌شارپ براي همه
مايكروسافت طي اقدامي، مجوزگيري براي برنامه‌هاي C# و زيرساخت زبان عمومي (CLI) خود را آزادتر كرد و بدين ترتيب، فناوري‌هاي منبع‌باز مي‌توانند بدون ترس از مباحث مجوزدهي، نسبت به توليد نرم‌افزارهاي مبتني بر اين زبان برنامه‌نويسي اقدام كنند.

بر اساس مطلبي كه در بلاگ مايكروسافت آمده است، مايكروسافت اطمينان مي‌دهد كه هيچ بحث مالكيتي را با كساني كه نسخه‌هايي از برنامه‌هاي# C را مي‌سازند، مي‌فروشند، براي فروش مي‌گذارند و يا وارد مي‌كنند، مطرح نخواهد كرد. پيتر گالي، مدير روابط عمومي منبع‌باز مايكروسافت دوشنبه گذشته با اعلام اين مطلب، اين حركت مايكروسافت را با مجوزهايي چون GPL و LGPL همخوان دانست.

بر اساس گفته گالي، هر كسي مي‌تواند اين فناوري‌ها را در برنامه خود به‌كار بگيرد و نيازي به عقد قرارداد يا پرداخت پول به مايكروسافت نيست. اين چتر حمايتي مايكروسافت، برنامه‌نويسان، توزيع‌كنندگان و كاربران اين تكنيك‌ها را در بر مي‌گيرد. همچنين بر اساس اين حركت حمايتي، مجوز تكثير نرم‌افزار هيچ اهميتي نخواهد داشت.

در پاسخ به اين اقدام حمايتي مايكروسافت، ميگوئل دي ايكازا، كه پروژه منبع‌باز مونو را هدايت مي كند. در پست بلاگي اعلام كرده است كه مونو اين اقدام مايكروسافت را نيز تكرار خواهد كرد.

منبع (Only the registered members can see the link)