گفتگو هایی در باب سی شارپ

saalek110

Well-Known Member
بنام خدا
من یک تاپیک لازم داشتم تا مطالب نامنظم را گرد بیاورم.
حالا می تواند تکه کوچکی آموزش باشد
یا نظری شخصی راجع به سی شارپ



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


من در نهایت امانت فقط نقل کننده ام.
درستی یا نادرستی مطالب را کاری ندارم.


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


==========================
تاپیک های مربوط:
یادگیری سی شارپ
منابع خوبی برای یادگیری سی شارپ. معرفی سایتها و وبلاگها و کتابها.

دات نتf1
معرفی تکنولوژی دات نت و نقل بحثهای در این مورد.
 
آخرین ویرایش:

saalek110

Well-Known Member
http://mojgan110.wordpress.com/2006/12/14/consolecolor/
از سایت بالا:
-----------------------------------------------------------------------------
كدنويس هاي گاوچران


ميخوام سي شارپ يادبگيرم. ولي خب هنوز در كوچه هاي كلاس Console هستم ! چندتا چيز بامزه توي Console ديدم كه توي MSDN نوشته بود اينها در دات نت 2 اضافه شده اند. مثلا حالا ميتونيد رنگ قلم و رنگ پس زمينه را هم در Console Appz عوض كنيد ، حتي متد Clear كه صفحه را پاك كنه هم اضافه شده ! ( اي خاك بر سرش ! يعني توي دات نت هاي قبلي ، همچين چيزي نداشته اند ! قربون پاسكال و دلفي كه از روز اول ، ClrScr را داشت ! ) .
مثلا اينجوري : Console.ForegroundColor= ConsoleColor.Magenta
كه خب ConsoleColor هم تابلوئه كه Enumaration هستش !
——————————————————————-

يه ابزاري ديدم كه خطاهاي برنامه را تحليل ميكرد و اينا. اسمش FxCop بود و توي GotDotNet ميتونيد پيداش كنيد . يه برنامه ي پنچ شيش خطي نوشته بودم كه همش فقط Console.WriteLine بود و صيه حلقه Foreach كه مقدار Environment.GetLogicalDrives را چاپ ميكرد . همين !! FxCop به همين هم چهار تا تذكر و تويه برنامه نويسي داد !!!!
مثلا گفت كه اگه تابع Main ات آرگومان داره ، پس چرا استفاده نكردي ؟ چرا CLSCompliantAttribute را True‌نكرده اي ؟ چرا برنامه را با يك Strong Name Key ، امضا sign ! نكرده اي ؟ چرا permission request نداري ! ( هان ؟ چيه ؟ ميخندي ؟! حالا نه اينكه خودت همه ي اين چيزها را رعايت ميكني !! آره ارواح عمه ات ! ( كلي گفتم ! منظورم شخص خاصي نيست))

FxCop حتما با خودش گفته كه ” اي پدر روحاني ! اينها كد نويس هستند يا گاوچران ؟!”

البته لازم نيست كه FxCop را دانلود كنيد ! چون ماكروسافت مهربان ، آنرا كش رفته و در Visual Studio قرارش داده ! حداقل توي ماله من كه Team Suite هست كه هست !

--------------------------------
چه عجب که یه نفر هم پیدا شد به سی-شارپ بدوبیراه نگفت!
به اشکالهای Fxcop هم گیر نده، بالاخره اونهم که معصوم نیست، یه چیزی میگه واسه خودش.
در ضمن دات-نت طراحی نشده که باهاش برنامه های dos-style تولید کنند، اون چیزایی هم که تو داری میگی رو هم احتمالا محض خالی نبودن عریضه توی دات-نت 2 گذاشتن، وگرنه من یکی که تا حالا ازشون استفاده نکردم.
-------------------------------
به قول نفر قبلی ، چه عجب که یکی پیدا شد از سی شارپ ایراد نگیره !!
به نظرم سی شارپ بهترین Consistency رو بین زبونهای دیگه داره . سی شارپ یک دریاست با یک ساحل و کناردریا باحال (هرچند که این چیزا از مایکروسافت بعیده !! ) ، حالا هرچی بیشتر غرق بشی داخلش ، اصلا دلت نمی خواد بیرون بیای. چنان بلایی سرت می یاره که کلا آبزی میشی.
اون ویژگی های Fxcop رو هم مایکروسافت از Resharper بدبخت کش رفته !
یک چیز فوق العاده عجیب توی این دات نت ( که این یکی کلا از مایکروسافت خیلی خیلی بعیده !! ) اینه که تمامی امکاناتی رو که مایکروسافت برای ساخت دات نت استفاده کرده ، همه رو در اختیار برنامه نویس ها هم قرار میده ! یعنی تمام اون امکاناتی که برنامه نویس های داخل مایکروسافت دارن شما هم توی دات نت خواهی داشت !!
جالبتر هم این که توی این دنیا همه چیز Object شده ، از کلیه سخت افزارها بگیر تا حتی خود ویندوز ، هر کدوم از نرم افزارها ، Thread ها، Process ها و …
----------------------
 

saalek110

Well-Known Member
سیستم عامل جدید مایکروسافت

Microsoft's Other OS

تیم تحقیقات مایکروسافت با نوشتن 300،000 خط کد جدید یک میکرو کرنل با اسم رمز Singularity را طراحی کرده است که حیرت آورترین خصوصیت آن نبود اشتراک با ویندوز است.


این سیستم عامل کاملا توسط زبان برنامه نویسی سی شارپ و زبان مشتق آن که تیم تحقیقات مایکروسافت اسمش را Sing # گذاشته است نوشته شده است. در حالی که این کرنل وابسته به زبان سی شارپ است ولی با تکیه بر محیط جدیدی که قابلیت کامپایل و اجرا را در یک زمان دارد هیچ استفاده ای از CLR نمی کند و جالب تر اینکه در محیط Managed Code نوشته شده است.

یکی از افراد ارشد تیم گفت : ما یک کرنل واقعی طراحی کردیم، حالا می توانیم اجزای مورد نیاز را بر روی آن سوار کنیم.

این تیم یک سند 44 صفحه ای در مورد این سیستم عامل را در این آدرس قرار داده است

منبع و توضیحات بیشتر : Microsoft Watch

بعبارتی دیگر مایکروسافت و زیرآبی برای ویندوز !

از:
http://naatamam.blogfa.com/8408.aspx
 

saalek110

Well-Known Member
http://www.nofa.ir/NewsBody-ID104.aspx
----------------------------------------------------
برنامه چند لایه چیست؟

http://hamed.blogfa.com
ntier.jpg

برنامه چند لایه چیست؟

در معماری چند لایه تمام برنامه به چندین بخش تقسیم می شود. این بخش ها می توانند فیزیکی یا منطقی باشند. هر بخش کار خاصی را انجام می دهد مثلا نمایش اینترفیس کاربر یا دسترسی به داده ها. برنامه می تواند به هر تعداد لایه داشته باشد ولی به هر حال بیشتر برنامه ها سه لایه مجزا دارند که عبارتند از :
1- Presentation Layer
2- Business Logic Layer
3- Data Access Layer

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

در بیشتر موارد داده هایی که توسط کاربر وارد می شوند نیاز به اعتبارسنجی یا پردازش اضافی دارند. این مسوولیت لایه Business Logic است.

در نهایت داده های برنامه شما نیاز به ذخیره و بازیابی از طریق یک انبار داده دارند ( مثلا سیستم مدیریت دیتابیس های رابطه ای یا RDBMS و یا XML , .. ) این وظیفه توسط لایه دسترسی به داده انجام می شود.

به طور خلاصه، فرآیند مورد نظر ما این گونه کار می کند:

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

مزیت های برنامه های چند لایه

- برنامه ها به چند بخش منطقی جدا از هم تقسیم می شوند و اتصال میان UI ( رابط کاربری ) ، پردازش ها و بانک اطلاعاتی کم می شود.
- تغییر در بانک اطلاعاتی یا روال های دسترسی به داده ها تاثیری در لایه نمایش یا برنامه کلاینت نخواهد گذاشت.
- برنامه کلاینت با عبارات SQL آمیخته نخواهد شد.
- نام جداول و ستون ها به طور موثری از برنامه کلاینت حذف می شوند.
- برنامه کلاینت نمی فهمد که داده ها از کجا آمده اند ( چیزی که به آن location transparency گفته می شود )
- تغییر یا گسترش برنامه بسیار ساده تر خواهد شد، بدون نیاز به تغییر یا کامپایل مجدد برنامه کلاینت.

نکته منفی در معماری چند لایه این است که شما باید تعداد زیادی بخش ها و کلاس های از هم جدا در نرم افزار بسازید. اما به هر حال مزایای این روش بیشتر و برتر از معایب آن است.

انتخاب های لایه Presentation

دو انتخاب اصلی برای ساخت یک لایه نمایش در دات نت وجود دارد. آنها فرم های ویندوزی یا فرم های وبی ASP.NET هستند.

با استفاده از ویندوز فرم ها شما می توانید برنامه های دسکتاپ فرم محور ( form base ) معمول را بسازید. برنامه های ویندوز فرمی می توانند المان های رابط کاربری بسیار غنی به کاربر پیشنهاد کنند.آن ها کم و بیش شبیه به فرم های ویژوال بیسیک هستند.

جذاب ترین گزینه برای توسعه لایه نمایش استفاده از وب فرم های ASP.NET است. کنترل هایی مثل دیتاگرید، دیتالیست و تقویم ( Calendar ) یک رابط کاربری قدرتمند را با مقدار کمی کد فراهم می کنند.

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

انتخاب های لایه Business Logic

لایه Business logic از چندین بخش که کارهایی نظیر اعتبار سنجی کار، گردش کار یا کارهای مشابه را انجام می دهند تشکیل شده است.

کامپوننت های دات نت این لایه را شکل می دهند. شما می توانید با interop از کامپوننت های COM استفاده کنید ولی این کار کارآیی را پایین خواهد آورد.

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

کامپوننت هایی که شما توسعه می دهید به ماندن روی ماشین های مشابه نیازی ندارند. با استفاده از .NET Remoting شما می توانید آن ها را روی چندین ماشین توزیع کنید.

انتخاب های لایه Data Access

این لایه با دستکاری داده ها مثل اضافه ، حذف و به روز رسانی آن ها سر و کار دارد. داده هایی که به آن ها اشاره کردیم می توانند در RDBMS یا XML قرار داشته باشند. شما باید لایه دسترسی به داده را چنان طراحی کنید که دیگر لایه ها نیازی به دانستن وضعیت انبار داده ها نداشته باشند.

ADO.NET فناوری دسترسی به داده تحت دات نت است. اگر چه ADO.NET از طریق کلاس های DataReader اجازه دسترسی به داده های در هنگام اتصال را می دهد ولی بیشترین تمرکز روی دسترسی به داده ها در زمان متصل نبودن است. دیتاست نقش کلیدی را در این مورد بازی می کند. در بعضی موارد شما می توانید ADO را هم برای دسترسی به داده ها استفاده کنید ولی استفاده از آن باید دلیل معتبری داشته باشد. از ADO استفاده نکنید فقط به خاطر اینکه RecordSet ها را دوست دارید !

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

همچنین وب سرویس ها هم می توانند لایه دسترسی به داده را شکل دهند. این مخصوصا زمانی درست است که دیتابیس شما فراهم کننده ( provider ) داده ندارد. در این گونه موارد شما می توانید مقداری کد برای اتصال به داده ها و پر کردن دیتاست ها و بازگرداندن نتایج درون دیتاست به درخواست کننده داده بنویسید.

علاوه بر ADO.NET شما می توانید از امکانات سیستم مدیریت دیتابیس خود مثل توابع و یا روال های ذخیره شده ( Stored Procedures ) استفاده کنید.

ارسال داده از یک لایه به لایه دیگر

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

saalek110

Well-Known Member
http://dllhell.persianblog.com/
-----------------------------------------
.NET چیست؟
شاید تا به حال بارها نام .net frame work را شنیده باشید وشاید تا به حال این نکته را شنیده باشید که قدرت دات نت در فریم ورک آن است.اگر به درستی با فریم ورک دات نت آشنا نباشید حتما با شنیدن این جمله تعجب میکنید.و این سوال برای شما به وجود می آید که فریم ورک .net چیست؟
هنگامی که در سال 1999 فریم ورک دات نت معرفی شد موجی از شادی را برای
بسیاری از افراد که به نوعی با مفهوم آی تی سرو کار داشتند بوجود آورد.
در واقع فریم ورک دات نت برای هر دسته از افراد معنی خاصی داشت!.
برای یک برنامه نویس به معنی محیطی است برای بوجود اوردن برنامه های بسیار قوی
تحت وب و شبکه بود
برای یک مدیر آی تی فریم ورک به معنی انتشار سریعتر یک برنامه و امنیت بیشتر برنامه و در عین حال اداره ساده یک پروسه ی برنامه نویسی است.
براي اينكه بهتر با مفهوم و كارايي دات نت آشنا شوبد بايد بفهميم كه مشكلات در گذشته چه بود و دات نت چگونه آن را بهبود ميبخشد پس بنا براين در ابتدا و مدل هاي برنامه نویسی گذشته را بررسی کنیم
تا پیش از دات نت بسیاری از برنامه ها برای ویندوز نوشته میشد. ابزارهای خوبی برای این کار وجود داشت از قبیل دلفی ویژوال بیسیک و جاوا وبسیاری از ابزارهای قوی دیگر.
ولی همیشه این آرزو وجود داشت" کاش میشد که میشد از توانایی تمام زبانها با هم استفاده کرد"
اگر این اتفاق میافتاد بسیار عالی میشد چرا که شما میتوانستید از زبان قوی ++Cدر کنار زبان آسان و سطح بالایی مانند زبان ویژوال بیسیک استفاده کردو با استفاده از کلاسهای قوی که با سی نوشته میشد قدرت برنامه خود را افزونی بخشید.
اما این آرزو هیچ گاه از زبان هیچ برنامه نویسی شنیده نشد!! چون برنامه نویسها میدانستند این کار تقریبا نشدنی است!چون این زبانها هرکدام برای خود Runtime متفاوتی داشتند و هر کدام محیطی جدا داشتند وکامپایلر آنها نیز متفاوت بود
اما صبر كنيد این آرزو قبل از بوجود آمدن فریم ورک دات نت تا حدودي برآورده شد با تکنولوژی
DNA(Distributed internet application)a
تکنولوژی DNA چگونه است؟
اصول تکنولوژی دی ان ای بر اثاثCOM بود بوسیله سرویسهای COM سرورهای ویندوز2000 میشد از توانایی کلاسهایی با زبانهای مختلف در ماشینهای مختلف استفاده کرد کام برنامه نویسی شبکه ای را بسیار آسان تر و قوی تر کرده بود وامنیت را قدرت بخشیده بود توانایی های زیادی را به برنامه نویس داده بود مثلا شما میتوانستید بوسیله ASP ها به متد ها Event و propertyهای نهفته در کام ماشین سرور دسترسی داشته باشید .
کام پس از مدتی بسیار مورد اقبال قرار گرفت زیرا 1 برنامه نویس ویژوال بیسیک میتوانست
به راحتی به کلاسهای نوشته شده توسط دیگر زبانهای برنامه نویسی دسترسی داشته باشد پس از مدتی با آمدن ویندوز 2000 وکام پلاس کامپوننت ها با ویندوز بوسیله رجیستری متصل شدند و مشکلات از اینجا شروع شد!!
اگر شما میخواستید برنامه ای بنویسید که میخاست از جایی خارج از محیط مطمئن دیده شود
بایستی یوزر اینتر فیس و کد جدیدی برای این برنامه مینوشتید و دسترسی میدادید به برنامه تا به Componentهاي شما دسترسی داشته باشند
این یعنی با پای خود خود را در دردسر انداختن و این یعنی متدهای شما کاملا قابل دسترس قرار میگرفت و دیگر برنامه ها میتوانستند متد های شما را به راحتی Cal و از آن استفاده کنند. این چیزی نبود که برای یک مدیر آی تی قابل تحمل باشد!
اگر شما میخاستید Componentخود را ارتقاع دهید دچار مشکل بسیار بدی میشدید ! يا بهتره بگيم كه در جهنم Dll ها گرفتار ميشديد!
Dll Hell چيست؟
فرض كنيد شما ميخواهيد كامپوننت خود را به روز كنيد خب چه ميكنيد؟ بله جواب ساده است شما كامپوننت خود را تقيير ميدهيد ودوباره كامپايل ميكنيد و بعد فايل را جايگزين فايل سابق ميكنيد. ولي برنامه شما بدون هيچ دليل خاصي كار نميكند!!چرا؟
شايد تا به حال شما نيز با Dll hell برخورد داشته باشید اگر از كام استفاده كرده باشيد بدون ترديد با مشكل بالا برخورد كرده ايد شايد بدون اینکه بدانید Dll hellدقیقا چیست . در حقیقت Dll hell یکی از مشکلات بزرگ کام به شمار می آید این مشکل ناشی از وابستگی شدیدDLL ها به رجيستري بود براي درك بهتر بياييد ببينيم رجيستري چه ميكند! هر Dll پس از كامپايل براي نصب در رجيستري يك عدد يونيك (عددي 128 بيتي كه به هيچ وجه در هيچ جاي دنيا مشابه آن پيدا نميشود)در يافت ميكند و پس از اين برنامه ها اين Dllها را با اين عدد ميشناسند .
مشكل مشخص شد!يعني كامپوننت شما بعد از هر بار كامپايل عدد يونيك جديدي ميگيرد و برنامه هاي شما به دنبال ورژن قبلي(عدد قبلي) ميگردند! بنا براين در صورت هر تقييري در ورژن Dllبرنامه شما كار نخواهد كرد .
چاره چيست؟
1: نوشتن برنامه به صورت 2 Tier
2:استفاده از .net
حالا بررسي ميكنيم كه چگونه دات نت بر اين مشكلات فائق آمد براي اين كار بايد با اجزاي frame work دات نت آشنا شويم!
دات نت از چه بخشهايي تشكيل شده است؟
دات نت به طور کلی به 2بخش تقسیم شده است

1:.net class library
2:CRL
زبان مشترک زمانم اجرا
در حقیقت CLR را میتوان قلب دات نت نامید CLR مسئول اجرا کردن کدها,تخصيص حافظه ايجاد امنيت براي كدها و ... در محیط دات نت است زبان مشترک زمان اجرا را به عنوان مثال میتوان با ران تایم ویژوال بیسیک 6 مقایسه کرد با این تفاوت که سی ال آر برای کلیه زبانهای دات نت نقش ران تایم را بر عهده دارد نه فقط زبان ویژوال بیسیک را لیست زیر مجموعه کارهایی که سی ال آر برای اجرای کد انجام میدهد نشان میدهد:
• Automatic memory management
• Cross-language debugging
• Cross-language exception handling
• Full support for component versioning
• Access to legacy COM components
• XCOPY deployment
• Robust security model
شما میتونید بر روی سی ال آر برای کلیه امکانات بالا حساب کنید
شکل زیر نحوه قرار گرفتن سی ال آر را در فریم ورک دات نت توضیح میدهد
نکته:کدهای نوشته شده با زبانهای دات نت به عنوان منیجد کد شناخته میشود یکی از توانایی های سی ال آر توانایی اجرای زبانهای دیگر غیر دات نت ( آن منیجد) است

سی ال آرامکانات زیادی را برای برنامه فراهم میاورد از قبیل امنیت اجرای کد ورژنینگ
تخصیص حافظه و بسیاری از امکانات دیگر اما به این نکته توجه داشته باشید هنگامی که
کدهای وی بی 6 اجرا میشد این کدها مستقیما به زبان ماشین تبدیل میشد اما در دات نت کدها به گونه ای دیگر کامپایل میشوند یا در حقیقت اصلا به کد ماشین مستقیما تبدیل نمیشوند هنگامی که شما 1 برنامه را در دات نت کامپایل میکنید به هیچ وجه این کدها به زبان ماشین تبدیل نمیشوند بلکه هنگامی که شما کد خود را کامپایل میکنید کدهای شما
در درون یک اسمبلی به یک کد میانی به نام آی ال تبدیل میشود زبان آی ال شامل کلیه مواردی است که برنامه شما دارد از قبیل متدها رویدادها کلاسها و موارد امنیتی و شامل متادیتا (که مشخص میکند کدام کلاسهای برنامه میتواند مورد استفاده سایر برنامه ها قرار بگیرد در ویژوال بیسیک به این مورد تاپ لایبری گفته میشد)و سایر موارد است.
نکته فرمت فایل آی ال PI است و این فرمت فرمت ویژه اجرای پروسسور است.
هنگامی که یک یوزر یا هر شیع دیگری برنامه شما را اجرا کرد پروسه Just in time بر روي IL اتفاق ميفتد
اتفاق میفتد و موتور جی آی تی برنامه شما کامپایل میکند در این مرحله زبان آی ال شما به زبان ماشین ویژه ای تبدیل میشود.
نکته در اینجاست که آی ال شما پس از اولین اجرا جی ای تی میشود و پس از این دیگر کامپایلی روی نمیدهد و برنامه بر روی همان کد جی آی تی شده اجرا میشود
فهمیدن پروسه کامپایل در .net بسیار مهم است بخاطر اینکه این بخش برجسته ترین نکته در دات نت وقدرت دات نت دراین فرایند است اما شاید 1 سوال پیش بیاید چگونه است
آیا چند زبانه بودن برنامه مشکلی برای کامپایل برنامه ایجاد نمیکند؟ چون هر زبان بوسیله
کامپایلر خاص خود برنامه را کامپایل میکند و هر زبان آی ال خاص خود را میسازد
جواب ساده است سی ال اس قبل از جی آی تی کردن برنامه آن را بررسی میکند این وظیفه بخشهایی از CRL است که آنها را CLS و CTS مینامند
سی ال اس چیست؟
سی ال اس استانداردی است که برای اینکه کامپوننتهای زبان شما بتواند با زبانهای دیگر ارتباط داشته باشد باید آن را رعایت کنید به عنوان مثال اگر شما در تیم برنامه نویسی چند زبانه ای فعالیت می کنید باید این استاندارد را رعایت کنید که برنامه نویسان دیگر زبانها بتوانند به طور کامل از کامپوننتهای شما استفاده کنند
 

saalek110

Well-Known Member
http://sirbabakmehdi.persianblog.com/
-------------------------------------------------
با توسعه مجموعه دات نت و ويژوال استوديو دات نت تحول بزرگي در عرصه برنامه نويسي ( فعلا ) ويندوز پديد آمده است . آنچه كه اين روزها بر سر زبانهاست تنها بخشي از توانائي هائيست كه دات نت در اختيار گسترش دهندگان نرم افزار قرار ميدهد . ( برنامه نويسان ويژوال بيسيك كه قبلا از نعمت توانائي طراحي برنامه هاي سرويس - چند ريسماني و مد كنسول محروم بودند اين حقيقت را بهتر از ديگران درك ميكنند !!! )

زبان برنامه نويسي در عالم دات نت تنها يك معنا دارد و آن چيزي نيست جز : Syntax ! كلاسهاي واحد و محيط توسعه قدرتمند و قابل گسترش دات نت يكي از بزرگترين تحولاتيست كه در عالم نرم افزار تا كنون رخ داده است . اين تغيير تاثيرات شگرفي بر ويژوال سي برجاي گذارده كه معدودي از آنها ذيلا معرفي ميشود .

هر چند برنامه نويسان ويژوال سي همچنان ميتوانند از MFC و حتي ATL براي توسعه نرم افزار استفاده كنند ( كه اين خود بزرگترين امتياز براي اين محيط محسوب ميشود . برنامه نويسان ويژوال سي مثل برنامه نويسان وي بي لازم نيست لباس جديد و رسمي بپوشند (!) و خود را برنامه نويس معرفي كنند !!! ) اما با باز كردن پروژه هاي قديمي خود در محيط ويژوال استوديو دات نت و دادن پاسخ مثبت به يك سوال و به تبع آن توليد يك فايل sln . توسط محيط توسعه ميتوانند از امكانات جديد و فدرتمند دات نت استفاده كنند و لزومي به تغيير هيچكدام از جزئيات برنامه نيست !

ديگر اثري از ClassWizard نميبينيد ! مايكروسافت با تقليدي (!) هوشمندانه از محيطهاي توسعه شركت اينپرايز اكنون به توسعه دهندگانش اين امكان را ميدهد كه در قالبي سهل و البته عاقلانه تر به گسترش نرم افزار هاي مبتني بر رخداد ( event-Driven ) بپردازند .

در صورتيكه تمايل داريد همچنان از قابليتهاي ميانبر كيبورد نسخه هاي قديمي ويژوال سي و محيط تسوعه نرم آن به جاي محيط جديد استفاده كنيد كافيست از منوي Help گزينه Show Start Page را انتخاب كرده و با دستكاري كردن My Profile در انتهاي صفحه خود را به عنوان Visual C++ Developer معرفي كنيد و بس !!

بزرگترين تغيير از دست رفتن محيط يكدست توسعه رابط كاربري است !!! ( بهتر است بگوئيم غم انگيز ترين تغيير !!! ) . برنامه نويسان ويژوال سي ديگر مثل گذشته هاي دور و دوست داشتني (!) امكان توليد برنامه هاي GUI را با آن قالب سابق ندارند . هر چند مايكروسافت براي اين برخورد خود تفاصيل زيادي آورده است ( ر.ك ام اس دي ان ) اما با تقليدي ديگر ( و هوشمندانه تر از مورد قبل ! ) سيستم ثبت اطلاعات موقعيتي GUI را از اينپرايز قرض گرفته و توسعه دهنده برنامه مبتني بر ويژوال سي ميتواند مولفه هاي ظاهري برنامه خود را در محيطهاي سي شارپ يا وي بي طراحي كرده و مشخصات ضبط شده آن را براي پياده سازي به محيط ويژوال سي وارد كند .

در پايان - هر چند بي ربط - چند سطري هم در مورد تفاوتهاي ويژوال سي و سي شارپ بخوانيد :

الف )سي شارپ ( برادر كوچكتر دلفي !!! ) براي تفكيك subnamespace از Namespace ايضا تفكيك Class از Namespace و همچنين دسترسي به متدها و اعضاي يك كلاس از نقطه ( Dot ) استفاده ميكند در حاليكه ويژوال سي همچنان از :: و <- مثل گذشته استفاده مينمايد .

ب) سي شارپ ( برادر كوچكتر دلفي !!! ) بعد از استفاده از New يك نمونه از شي توليد شده را بر ميگرداند در حاليكه ويژوال سي تنها يك اشاره گر به موقعيت شي را برخواهد گرداند .

ج)براي نوشتن برنامه هاي #C نيازي به ورود دستي منبع توابع به پروژه را نداريد و ميتوانيد از طريق منو هاي موجود اين كار را انجام دهيد در حاليكه در محيط ويژوال سي مجبوريد از Using# استفاده كرده و آدرس منبع ( مثلا System.dll ) را وارد كنيد . ( نگران نباشيد !!! اينبار مايكروسافت مشتريانش را شگفت زده كرده است !!! از طريق راهنماي برخط محيط ميتوانيد بفهميد كه كدام كلاس در كدام اسمبلي و محدوده وجود دارد و در كدام فايل ! )

د) Null در سي شارپ با حروف تمام كوچك و در ويژوال سي با حروف تمام بزرگ نوشته ميشود !

ه) سي شارپ pre-processor ندارد !

و) سي شارپ :

كد:

this.button1.Click += new System.EventHandler(this.button1_Click);

( تعجب نكنيد ! اين اصلا دلفي نيست ! اين سي شارپ است ... Hello world !!!! )

ويژوال سي :

كد:

button1->Click += new System::EventHandler(this, &Form1::button1_Click);


اميد است اين سطوري اطلاعات مفيد ( هر چند اندك ) درباره محيط جديد توسعه نرم افزار مايكروسافت به شما داده باشد ( ... و اي كاش مايكروسافت در حركتي جوانمردانه (!) نام محصول جديد خود يعني سي شارپ را * مايكروسافت دلفي * ميگذاشت !!! )
¤ نوشته شده در ساعت 7:6 توسط بابک عقیلی
 

saalek110

Well-Known Member
http://htbh.persianblog.com/
-----------------------------------
سالک: این وبلاگ موضوعش هک است.
-----------------------------------------------

س: آيا ويژوال بيسيک و سی‌شارپ زبانهای برنامه‌نويسی خوبی برای شروع یادگيری هستند؟

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

مشکلات خاصی در رابطه با ويژوال بيسيک و سی‌شارپ وجود دارد. مهم‌ترينشان اين است که کد توليد شده توسط آنها حمل‌پذير نيست (قابل اجرا در سيستم عامل ديگری نيست). گرچه نمونه‌های اوليه‌ای از نرم‌افزارهای منبع‌باز توسط آنها نوشته شده است، اما استانداردهای ECMA به جز دسته‌ی کوچکی از خصوصيات رابط کابری آنها از بقيه پشتيبانی نمی‌کند. تحت ويندوز اکثر پشتيبانی کتابخانه‌ای داده‌ها به يک شرکت خاص (مايکروسافت) تعلق دارد.
 

saalek110

Well-Known Member
http://mehrdad-system.50webs.com/maghale.htm
=========================================



در این مقال می خوام در مورد هم کدوم از این زبانا صحبت کنم .

اول بریم سراغ دلفی : دلفی یکی از زبان های شیرین و قدرتمند دنیا است .

حسن خیلی خوب اون Syntax اسان و راحت و کاربر پسندشه .

اما به دلایلی سیستمی نیست . سرعتش از اونای دیگه مانند سی کمتر . پس برای

کارهای سیستمی نمیشه ازش استفاده کرد .

کامپاننت ها و تیپ های فراوانی در سایت های فراوان می تونه به شما در برنامه

نویسی با دلفی یاری کنه .

اما خب دلفی برای دات نت دیگه بد شده به نظر من از مسیرش منحرف شده .

در ضمن دلفی دارای IDE های کند و پر اشکاله .

خب حالا بریم سراغ سی شارپ : زبان نو و جدیدیه . Syntax اش مخلوط چند زبان

دیگست و خیلی جالبه . سرعتش هم به خاطر دات نت بودنش کمه . بهترین زبان

طراحی شده برای دات نت سی شارپ است . محیط های توسعه قوی ای هم داره

که همون VS.NET 2005 است .

حالا نوبت جاوا است : زبان فوق العاده ای است . یکی اینکه سرعتش بالاست .

میشه باهاش سیستمی کار کرد . اصلا وابسته به سیستم نیست یعنی در هر

سیستم عامل و محیطی قابل اجراست . Syntax اش هم خوبه . برای توسعش

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

از همه بهتر قدرتمند ترین IDE ها برای جاوا نوشته شده است . که قدرتمند ترین

آنها JBuilder و Eclipse است .

و اما ++C : زبان کلاسیک و قدیمی است . Syntax بسیار مشکل و عذاب آور اما

بسیار پرسرعت یعنی از نظر سرعت هیچ زبانی به پاش نمیرسه . سیستمی کامل.

رابطه نتگاتنگ با سیستم و اسمبلی . مناسبترین گزینه برای نوشتن درایورها و

سیستم های عامل و برنامه نویسی ها .
-=======================================-


درس اول : کمی در مورد شرکت بورلند و مایکروسافت و محصولاتشان



شرکت Borland و Microsoft دو شرکت بزرگ و قدرتمند جهان در ضمینه Develop و توسعه زبان های برنامه نویسی هستند.

برخی از محصولات Development این دو شرکت مشترک هستند مانند :

C# و C#builder

C++ و C++builder

و حتی Macro Assembler



شرکت بورلند جلوی تمام نرم افزارهایش به جز Delphi (نرم افزار های develop) کلمه builder را قرار می دهد .



محصولات :

محصولات شرکت بورلند (البته جدید) :

Delphi

C++builder

البته این محصول دیگه به فراموشی سپرده شدC++builderX

C#builder

JBuilder

اینم دیگه توسعه داده نمیشهJbuilderX

Kylix (دلفی و C++ برای linux) این محصول هم دیگه دوران تموم شد و



مهمترین محصول شرکت بورلند Delphi است.

بورلند Delphi و C# را در نسخه دلفی 2005 با نام Borland Developer Studio 3.0 قرار داده.



محصولات شرکت مایکروسافت (البته جدید) :

C++

C#

Visual Basic

J#

Foxpro(که داره از رده خارج می شه)

مهمترین محصول شرکت مایکروسافت Visual Basic بود اما ظاهرا الان C# است.
 
آخرین ویرایش:

saalek110

Well-Known Member
http://cloob.com/browse.php?id=233746
یا
http://209.85.129.104/search?q=cach...hp?id=233746+سی+شارپ+سالک&hl=en&ct=clnk&cd=10
--------------------------------------------------


سلام به بچه هاي گل و دوستان خوبم

میخام کمی هم در مورد سی شارپ بگم


دات نت فریم ورک چیست؟


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

Framework مجموعه ای از فایل های مورد نیاز سیستم عامل (شامل فایل های DLL و رجیستری و واسطه های استاندارد ارتباط برنامه ها بایکدیگر) است که برای اجرای برنامه های نوشته شده تحت دات نت ضروری میباشد (توجه:برای اجرای برنامه های تحت جاوا نیز نیاز به نصب JAVA virtual machine دارید).

چون دات نت میخواهد از فلسفه سادگی "keep it simple" پشتیبانی کند بهمین دلیل، اساس کار نصب برنامه ها copy-only installation میباشد . یعنی دیگر نیازی به پکیج کردن برنامه ها توسط برنامه نویس و نصب توسط کاربر نیست . بلکه تمامی فایل های کتابخانه ای مورد نیاز را فریم ورک تامین میکند و برنامه ها با روش فقط کپی در ویندوز کار میکنند.

CLR چه کمکی به برنامه نویسان میکند ؟

برنامه نویسان زبان VB دیگر محدود به محیط سیستمی ویندوز نیستند و میتوانند مانند برنامه سازان زبان C/C++ برنامه خود را روی سیستم های دیگری که فریم ورک دارند نیز ببینند . و همچنین بخاطر قابلیت های چند زبانه بودن محیط دات نت برنامه نویسان C و VB براحتی کد های نوشته شده توسط دیگری را درک میکنند.
 
آخرین ویرایش:

saalek110

Well-Known Member
http://www.centralclubs.com/viewtopic.php?t=686
---------------------------------------------------------------

از dev.ir

XML چيست ؟

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

من یک فایل در آدرس "C:\Data1.XML" دارم با محتوای زیر:
کد:
< ?xml version="1.0" ?> 
< Person> 
AraSoft< /Name > 
18< /Age> 
Male< /Sex>

حال لازمه که این اطلاعات که شامل اسم ، سن ، جنسیت من هست در برنامه استفاده کنیم.پس ابتدا Namespace مورد نظر " System.Xml " رو به برنامه اضافه کرده و Imports System.Xml ... استاد میکنید.
و در قسمت مورد نظر کد مربوط رو مینویسیم:
کد:
Dim Reader as XMLNodeReader 
Dim DC as New XMLDocument 
Dim NickName, Sex as String 
Dim Age as Long 

DC.load ("C:\Data1.Xml") 
Reader = New XMLNodeReader (DC) 
Do until Reader.EOF 
Reader.Read 
Select Case Reader.LocalName 
Case "Name" 
If Reader.IsStartElement then 
Reader.MoveToElement 
If Not Reader.Value.Trim = Nothing then 
MSGbox (Reader.Value) 
End IF 
End If 
Case "Age" 
If Reader.IsStartElement then 
Reader.MoveToElement 
If Not Reader.Value.Trim = Nothing then 
MSGbox (Reader.Value) 
End IF 
End If 
Case "Sex" 
If Reader.IsStartElement then 
Reader.MoveToElement 
If Not Reader.Value.Trim = Nothing then 
MSGbox (Reader.Value) 
End IF 
End If 
End Select 
Loop

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

آشنايي با XML قسمت دوم


اکثر افرادی که قصد یادگیری XML رو دارند، نمی تونند XML رو خوب بفهمند. شما سعی کنید XML رو یک سیستم ذخیره اطلاعات بدونید.بعدا با یادگیری قسمتهای بعدی XML با کاربردهای XML آشنا میشید و راحتتر میتونید به صورت حرفه ای از اون استفاده کنید.البته این یادآوری کنم که من فقط قصد آشنا سازی شما با XML رو دارم نه آموزش کامل XML.
XML برای خود یک دستوره نگارشی و املایی دارد. شما در حین یادگیری عبارتهای XML با اون آشنا میشید.
تگها:
شما با عبارتهای HTML یا همان TAG ها آشنا هستید < تگ> در XML از همان تگها استفاده میشود ولی نکته مهم اینجاست که XML به شدت به حروف کوچک و بزرگ حساسیت داره پس اگر شما تگ ابتدای خودتون رو به دین صورت نوشتید < TaG> باید تگ پاییانی هم بدین صورت بنویسید < /TaG>.

اعلان شروع فایل XML:
فایل XML با یک اعلان شروع میشه که باید در اولین خط باشه (کاملا اختیاری):

حتما به بزرگی و کوچکی حروف دقت کنید. تگ اعلان XML به صورت < ؟ و بعد کلمه XML و بعد از اون نوع version که تا کنون آخرین اون "1.0" بوده قرار میگیره و سپس تگ پایانی اون ؟ >.
نوشتن تگها:
تگها در حقیقت همان رکوردها هستند که فیلدهای متغییری میتوانند داشته باشند(البته اگر با Database آشنا باشید). شما اطلاعات خودتون رو با استفاده از تگها ذخیره میکنید مثلا برای ذخیره اسمتون: AraSoft< /Name >
برای ذخیره اطلاعات شما به دو تگ نیاز دارید یکی آغازی و دیگری پایانی این دو در حقیقت تشکیل یک تگ صحیح را میدهند. یک تگ آغازی به صورت اول > و بعد اسم مورد نظر و سپس < نوشته میشود. تگ پایانی تنها یک تفاوت کوچک دارد که آن در آولین بخش تگ است. تگ پایانی به صورت یک علامت / هم وجود دارد:



Begin: < Name >
End: < /Name >


برای نوشتن تگها باید به این توجه کنید که اسم تگ شروع (< Name>) و اسم تگ پایانی (< /Name>) نباید از نظر کوچکی و بزرگی فرق کند. و نکته مهم اینکه شما باید XML خود رو با یک تگ اصلی بپوشانید و بقیه تگها رو داخل اون قرار دهید مثل:




< ? Xml version="1.0" ?>
< Root>
< /Child1 >
< /Child2>

< / Root>


تداخل تگها:
اگر شما تگی رو شروع کردید و میخواهید تگی رو داخل اون قرار دهید شروع و پایان تگ باید در داخل تگ اصلی باشد مانند زیر:



درست:
< ? Xml version="1.0" ?>
< root>
< child1/>

:غلط
< ? Xml version="1.0" ? >
< root >
< child1 >

< /child1 > ß-----Error


تگ پوچ:
شاید در مرور Xml های که من نوشتم یه این تگ < Child1 /> رسیده و تعجب کنید که چرا من قانون نوشتن تگها رو نقض کردم و لی در حقیقت این خود یک دستور نگارشی است مبنی بر اینکه اگر تگی هیچ مقداری رو در بر نمیگیرد بهتر است به صورت < Name/> نوشته شود "شبیه به HTML" تا به راحتی برسی XML افزوده شود.
افزوردن ویژگی به تگ:
تگ ها قدرت داشتن ویژگی رو دارند (Attribute).




1.Home< /SectionOfSite>
2.Home< /SectionOfSite>


شما میتوانید برای مقدار هر تگ یک خاصیت یا ویژگی تعیین کنید. مثلا من در شماره 1 گفتم قسمت سایت=خانه و با زبان فارسی و در شماره 2 گفتم که قسمت سایت=خانه و به زبان انگلیسی.

------------------------------------------
آشنايي با XML قسمت سوم

یک حالت ساده از خواننده های فایلهای XML در .Net همین XMLTextReader است.
این راننده (Driver) فقط رو به جلو حرکت میکند وهرچی در سر راهش باشد در حافظه اش ذخیره میکند.و مهمترین قسمت اینکه از DTD و XMLSchema نیز پشتیبانی نمیکند.و این برای شروع کار ما که با این دو نوع آشنا نیستیم بسیار مناسب است.



Imports System.Xml

Dim Reader as XmlTextReader
Reader = New XmlTextReader("Data\Setting.Xml")'فایل مورد نظر
Do Until Reader.EOF'در صورت به اتمام رسیدن فایل حلقه متوقف میشود
Reader.Read()'خواندن تگ بعدی
MsgBox(">---")
MsgBox("Depth: " & Reader.Depth)
'مقدار فرو رفتگی یک تگ داخل تگهای بالای خودش
MsgBox("LocalName: " & Reader.LocalName)
'خواندن اسم تگ localName is Book
MsgBox("Attribute: " & Reader.ReadAttributeValue)
'مقدار خاصیت قرار داده شده
MsgBox("Value: " & Reader.Value)
'محتوای داخلی تگ
MsgBox("---<")
Loop


همینطور که میبینید بسیار ساده میشه از این Object استفاده کرد. شمامیتونید به راحتی فایل XML خود رو باز کرده و اون رو به ترتیب بخونید.

*همانطور که میبینید در قسمت خواصیت تگ اگر تگ خواصیتی رو نداشته باشه مقدار
برگشتی False میباشد.
*در قسمت Depth ؛ اگر تگی در داخل روت اصلی باشد مقدار 1 رو بر مگردونه و اگریک تگ در داخل این تگ باشه پس مقدار 2 رو بر میگردونه و اگر خود روت باشه
مسلماً مقدار صفر 0 را بر میگردونه.
*شما میتوانید با استفاده از LocalName یک فیلتر قرار دهید که هر LocalName که مقداری در بر نگیرد نمایش ندهد.

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

---------------------------------------------------

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

XMLNodeReader
همین طور که از اسمش معلومه برای برسی XML بر اساس گره ها (Node) طراحی شده. این Reader از DTD و XML Schema پشتیبانی نمیکند ولی تعریف های داخل DTD رو میشناسه.

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



Imports System.Xml

Dim Reader As XMLNodeReader
Dim DOC As New XmlDocument
DOC.Load("\Data\Setting.Xml")
Reader = New XMLNodeReader(DOC)
Do Until Reader.EOF
Reader.Read()
MsgBox("---")
MsgBox("Depth: " & Reader.Depth)
MsgBox("LocalName: " & Reader.LocalName)
MsgBox("Attribute: " & Reader.ReadAttributeValue)
MsgBox("Value: " & Reader.Value)
MsgBox("---")
Loop


همینطور که میبینید این Reader هم بسیار شبیه Reader قبلی است. ولی در Open کردن فایل کمی تفاوت دارد. مهمترین قسمت این قسمت طریقه بازشدن فایل بوسیله XMLNodeReader است چون بقیه قسمتهای NodeReader و TextReader فرق چندانی با هم ندارد. ولی یک Object اضافه بر سازمان در این قسمت برای باز کردن فایل استفاده کردم. این Object بسیار قدرتمند است و در آینده حتما بر روی اون بحث خواهم کرد. من به شما سفارش میکنم اگر از XML به صورت ابتدایی استفاده میکنید از همین Reader استفاده کنید چون بسیار سریع تر و دقیقتر ( نه از نظر من حتی از نظر Microsoft) از TextReader است. من برای مطرح کردن بقیه مسایل در XML باید به آموزش کوتاهی درباره DTD بپردازم پس تا یادداشت بعد.
 

saalek110

Well-Known Member
http://www.centralclubs.com/viewtopic.php?t=12341
------------------------------------------------------------------

عنوان: XML در دات نت

xml ، يکي از مهمترين دستاوردهاي بشريت در عرصه نرم افزارطي ساليان اخير است که بدون شک بيشترين تاثير را در ارتباط با طراحي و پياده سازي برنامه هاي کامپيوتري خصوصا" در اينترنت، بدنبال داشته و خواهد داشت . XML ، يکي از استانداردهاي ارائه شده توسط کنسرسيوم وب است که زمينه استفاده از آن براي تمامي توليدکنندگان نرم افزار، فراهم شده است . XML ، بهمراه خود مجموعه اي از تکنولوژي هاي ديگر را ايجاد نموده است، بطوريکه امروزه از آن بعنوان يک خانواده بزرگ ياد مي گردد (XSLT , XSD ,DOM , XPath ,...) . بديهي است توجه به استانداردهاي فوق براي توليدکنندگان نرم افزار بسيار حايز اهميت بوده و در اين راستا ،شرکت هاي عظيم نرم افزاري بدنبال ارائه بستر مناسب براي طراحي و پياده سازي نرم افزار بر اساس واقعيت هاي موجود، خصوصا" پديده شگرف اينترنت مي باشند . ماکروسافت، بعنوان يکي از شرکت هاي عظيم نرم افزاري ،پروژه دات نت را مطرح و در نهايت آن را در اختيار علاقه مندان قرار داده است . XML ، در دات نت داراي نقشي بسيار مهم و محوري بوده و لازم است با جايگاه آن بصورت اصولي آشنا شويم . در اين مقاله، به بررسي جايگاه XML در دات نت پرداخته مي گردد .

مقدمه
XML ، يک تکنولوژي استاندارد ايده آل براي برنامه هائي است که بر روي بستر اينترنت اجراء مي گردند. ماکروسافت در پروژه دات نت ،از استادنداردهاي کنسرسيوم وب پيروي و نسخه هاي اختصاصي خود را طراحي و پياده سازي نموده است. بدين ترتيب (با توجه به تبعيت ماکروسافت از استانداردهاي کنسرسيوم وب)، مي توان اين اطمينان را بدست آورد که نرم افزارهاي توليد شده در دات نت ، قابليت ارتباط با ساير برنامه هاي توليد شده مبتني بر استانداردهاي کنسرسيوم وب را بخوبي دارا مي باشند . در محيط اينترنت، داده ها مي توانند از منابع متفاوت و به اشکال گوناگون دريافت گردند . سرويس هاي وب XML و ساير برنامه هائي که با استفاده از دات نت پياده سازي مي گردند ، مسائل و مشکلات مربوط به انجام عمليات بر روي داده هائي با فرمت هاي متفاوت و از منابع گوناگون ، را برطرف مي نمايد.

سرويس هاي وب XML
ساختار و بدنه دات نت، محيطي مناسب براي ايجاد سرويس هاي وب XML است . کاربران قادر به فراخواني سرويس ها بکمک پروتکل هاي استاندارد شده اي نظير : SOAP ، UDDI و XML مي باشند. سرويس هاي وب XML ، با استفاده از کلاس ها و Namespace هائي که توسط کنسرسيوم وب استاندارد شده اند، ايجاد مي گردند. سرويس هاي وب XML ، روشي مطلوب بمنظور اشتراک ، سازماندهي و انجام عمليات متفاوت در رابطه با داده ها مي باشند .

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

چالش هاي موجود در زمينه بکارگيري برنامه ها در اينترنت
گسترش فعاليت هاي تجاري بر روي اينترنت باعث حضور شرکت هاي متعدد بهمراه سيستم هاي گوناگون، در کنار يکديگر شده است . با اينکه ايده انجام فعاليت هاي تجاري بر روي اينترنت نسبتا" جديد است ولي اغلب شرکت ها و سازمان ها ، زمان و هزينه زيادي را صرف اين نوع فعاليت ها و تعامل اطلاعاتي مربوطه ، مي نمايند . ارتباط داده ها با سيستم هاي موجود ، يکي از بزرگترين مسائل برنامه نويسان است( خصوصا" در موارديکه داده ها از مراکز و شعب متفاوت يک شرکت دريافت و مي بايست به سيستم هاي اصلي تغذيه گردند ) .

يکپارچگي بين برنامه هاي مختلف
دستيابي به داده ها ي مشترک بين شرکت هاي متعدد ، توسط برنامه هاي متفاوت موجود بر روي سيستم هاي عامل گوناگون ، به يک ضرورت مهم تبديل شده است . بمنظور مبادله اطلاعات بين برنامه هاي متقاضي ، مي بايست در مرحله اول داده ها، ساختيافته بوده تا زمينه استفاده از آنان فراهم گردد.برخي از داده ها در سيستم هاي هاي سلسه مراتبي، شامل سندهاي XML ، برخي ديگر در بانک هاي اطلاعاتي رابطه اي، نظير SQL Server و برخي ديگر، بصورت غيرساختيافته و در فايل هائي تخت (Flat) ذخيره شده اند .

ترجمه بين فرمت هاي داده متفاوت
يکي از بزرگترين مشکلات موجود در بکارگيري فراگير و يکپارچه برنامه هاي کامپيوتري خصوصا" بر روي بستر اينترنت ، استفاده از داده ها با فرمت هاي متفاوت، توسط اين نوع از برنامه ها است . اين مشکلات شامل موارد زير است :

فرمت هاي متفاوت XML . فايل هاي XML مي توانند از گرامرهاي متفاوتي استفاده نمايند . مثلا" گرامري، صرفا" از المان ها استفاده نموده و در گرامري ديگر ، از المان ها بهمراه خصلت هاي مربوطه استفاده مي گردد . شرکت ها و موسسات تجاري براي غلبه بر اين نوع مشکل تبديل داده ،مي توانند از تمپليت هاي استاندارد شده استفاده نمايند.

توليد XML از داده هائي با فرمت ديگر . داده ها ي موجود در هر سازمان با فرمت هاي متفاوتي نظير: EDIFACT ,ANSI ,X12 , XML , فايل هاي CSV)Comma Separated value) ، فايل هاي Tab -Separated و موارد ديگر، ذخيره شده اند. در اين راستا ، مي توان ساختاري استاندارد براي داده ها ايجاد تا زمينه استفاده از آنان براي ساير برنامه ها فراهم گردد .

معتبر سازي ساختار داده ها . يکي از مزاياي مهم استفاده از XML در برنامه ها ، ارائه روشي مطلوب بمنظور اشتراک اطلاعات است . با توجه به دريافت داده ها از منابع متفاوت، مي بايست از روشي بمنظور اطمينان از صحت و اعتبار داده ها استفاده گردد .بدين منظور و جهت غلبه بر مشکل فوق، مي توان از ابزارهاي معتبر سازي نظير Schema که در بين تمام برنامه ها و نوع داده ها استاندارد است، استفاده گردد.

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

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

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

پردازش ( عمليات ) بر روي داده ها
بمنظور انجام عمليات بر روي داده ها، مي بايست يک ساختار، بافتار(Context) لازم را ارائه نمايد . پس از انجام عمليات بر روي داده ها ، مي بايست از ساختاري بمنظور نمايش نتايج استفاده گردد.در اين رابطه موارد زير مورد توجه خواهد بود :

تبديل داده از XML به فرمت ديگر .در صورتيکه المان ها و خصلت هاي برنامه اي که با آن کار مي شود متفاوت از ساختار XML مربوط به داده هائي باشد که از آن بعنوان منبع تامين اطلاعات ، استفاده مي گردد، مي بايست از روشي براي تبديل داده از يک گرامر XML به شکل ديگر، استفاده گردد. در صورتيکه با يک برنامه وب کار مي شود، مي بايست داده هاي ساختيافته در اسناد XML به اسناد Html بمنظور نمايش بر روي وب سايت ، تبديل گردند.

تغيير ساختار يک سند . در برخي موارد لازم است به يک سند XML المان و يا خصلتي ، اضافه و يا حذف گردد . بدين ترتيب در ساختار سند موجود تغييراتي بوجود مي آيد.

استانداردهاي کنسرسيوم وب در دات نت
امکان استفاده از XML در محيط ها و برنامه هاي متعددي وجود دارد . تحقق خواسته فوق، بکمک استانداردهائي است که توسط کنسرسيوم وب ايجاد شده است. XML در دات نت، استانداردهاي ارائه شده توسط کنسرسيوم وب را حمايت تا زمينه ارتباط متقابل بين برنامه هاي استاندارد شده ، فراهم گردد

منبع http://www.srco.ir
 

saalek110

Well-Known Member
از :
http://forum.majidonline.com/showthread.php?t=56563
------------------------------------------------------------------------

به نظر شما واسه برنامه نویسی Aplication سی پلاس پلاس بهتره یا سی شارپ ؟

UNIQUE:
سلام
برای Application نویسی #C بهتر از ++C است .
++C بیشتر برای کارهای سیستمی مثلا" کار با سخت افزارها کاربرد داره .
اگرم بخوای بدونی برای چه کاربردی کدام زبان برنامه نویسی بهتره یه Search تو انجمن بکن فکر کنم قبلا" راجع بهش صحبت شده.
موفق باشید


سلام
++C زبان برنامه نویسی که تقریبا" تمام ویژگیهای برنامه نویسی جدید مثل شی گرایی رو داراست و معمولا" برای نوشتن دایورها و برنامه نویسی های حجیم استفاده میشه (تو ایران زیاد این زبان کاربردی نداره یکی از دلالیش هم فکر میکنم این باشه که ما شرکتهای این قدر بزرگ یا نداریم یا خیلی کم داریم که بخوان تو این زمینه ها کار کنن )
اینکه بخواید زبان برنامه نویسی رو انتخاب کنید بستگی به نوع کاری که میخواهید انجام بدید داره .
#C نسبت به ++C انعطاف پذیرتره و فکر میکنم برای Application نویسی(صحبتی که شما اول کردید) بهتره .
موفق باشید

نقل از :
http://forum.majidonline.com/showthread.php?t=8288
---------------------------------------------------------------------
saman_sweden :
سي شاپ ادامه همون ويژوال سي پلاس پلاس است
وب نت ادامه همون ويژوال بيسيك است
سي پلاس پلاس و در ادامه آن سي شاپ يه برنامه خيلي پيشرفته و قوي است و كلا براي پروژه هاي سنگين بكار ميره
ويژوال بيسيك و در ادامه آن وب نت براي برنامه هاي روزمره و سريع و كلا براي استفاده از فايلهاي تريد پارت خيلي خوبه و كار گرافيكيش نسبت سي پلاس پلاس و در ادامه آن سي شاپ ساده و در عين حال خيلي بهتر است
در ضمن براي برنامه نويسي بهتره هر دو را ياد بگيريد براي اينكه در بيشتر جاها مكمل همديگر هستند
آنچه مهم است برنامه ويژوال استوديو نت امكان تبديل شده به همديكر را دارد گه بايد از توي خود مايگروسافت برنامه كمكي را در اين مورد نصب كنيد
درضمن موقع نصب شما به هردو برنامه دسترسي داريد بهتره كه هردم را نصب كنيد
اگر برنامه را كامل نصب كننيد حدود 3 گيگا فضا لازم داره
در ضمن من ازدلفي سرشته آنچناني ندارم يه مبتدي بيش نيستم بهتره در اين مورد از استاد عزيز دوستمان آقا بابك بپرسيد
ولي كلا اينو بگم بورلند و مليكروسافت در برنامه هاي خودشان هر كدام الگوريتم خاص خود را دارند
و در پايان اضافه كنم اگر به برنامه سي پلاس پلاس بورلند دسترسي داريد روي اون كار كنيد تمام اين برنامه ها را بجيب ميگذاره حيلي برنامه كاملي است و بهتر از ويژوال استوديو نت است ولي قيمتش وحشتناك بالاست شركتها مي تونند بخرند براي فرد صرف نداره حدود 15 هزار دلار است البته كامل و كامل است
 
آخرین ویرایش:

saalek110

Well-Known Member
از:
http://www.parsiforums.com/vb/showthread.php?t=3305
----------------------------------------------------------------------
آشنایی با #c
مايكروسافت در مصاف با جاوا، بدنبال ارائه يك زبان كامل بود كه سايه جاوا را در ميادين برنامه نويسی كم رنگ تر نمايد. شايد بهمين دليل باشد كه #C را ايجاد كرد. شباهت های بين دو زبان بسيار چشمگير است. مايكروسافت در رابطه با ميزان استفاده و گسترش زبان فوق بسيار خوشبين بوده و اميدوار است بسرعت زبان فوق گستردگی و مقبوليتی به مراتب بيشتر از جاوا را نزد پياده كنندگان نرم افزار پيدا كند.
با توجه به نقش محوری اين زبان، از آن بعنوان مادر زبانهای برنامه نويسی در دات نت نام برده می شود. مورد فوق به تنهائی، می تواند دليل قانع كننده ای برای يادگيری اين زبان باشد، ولی دلايل متعدد ديگری نيز وجود دارد كه در ادامه به برخی از آنها اشاره می گردد.

مطرح شدن بعنوان يك استاندارد صنعتی
انجمن توليدكنندگان كامپيوتر اروپا (ECMA) زبان #C را در سوم اكتبر سال 2001 بعنوان يك استاندارد پذيرفته (ECMA-334) و بدنبال آن تلاش های وسيعی برای كسب گواهی ISO نيز انجام شده است. زبان فوق در ابتدا توسط شركت مايكروسافت و بعنوان بخشی از دات نت پياده سازی و بلافاصله پس از آن توسط شركت های اينتل، هيوليت پاكارد و مايكروسافت مشتركا، جهت استاندارسازی پيشنهاد گرديد.
زبان #C بگونه ای طراحی شده است كه نه تنها وابستگی به يك Platform خاص را ندارد، بلكه در اغلب موارد وابستگی RunTime نيز ندارد. كامپايلر #C می تواند بر روی هر نوع معماری سخت افزاری طراحی و اجرا گردد. در برخی از نسخه های اوليه كامپايلر زبان فوق كه توسط برخی از شركت های جانبی ارائه شده است، كدهای #C را به بايت كدهای جاوا كمپايل می كنند. يكی از چنين كامپايلرهائی را می توان در سايت Halcyonsoft.com مشاهده نمود. بنابراين كدهای #C براحتی قابليت حمل بر روی محيط های متفاوت را دارا خواهند بود.
مشخصات تعريف شده زبان #C با ساير استاندارهای تعريف شده ECMA نظير (ECMA-335) CLI (Common Language Infrastructure) بخوبی مطابقت می نمايند. CLI قلب و روح دات نت و CLR(Common Language Runtime) است. اولين نسخه از كامپايلر زبان #C كه از CLI استفاده می كند، NET Framwork. مايكروسافت است.
با توجه به موارد گفته شده، مشخص می گردد كه اين زبان بسرعت بسمت استاندارد شدن حركت و با تاييد استانداردهای مربوطه از طرف انجمن های معتبر بين المللی و حمايت فراگير شركت های معتبر كامپيوتری در دنيا مسير خود را بسمت جهانی شدن بخوبی طی می نمايد.

#C چيست ؟
طراحان زبان #C با تاكيد و الگوبرداری مناسب از مزايای زبانهائی نظير ++C، C و جاوا و ناديده گرفتن برخی از امكانات تامل برانگيز و كم استفاده شده در هر يك از زبانهای فوق، يك زبان برنامه نويسی مدرن شی گراء را طراحی كرده اند. در مواردی، برخی از ويژگی های استفاده نشده و درست درك نشده در هر يك از زبانهای گفته شده، حذف و يا با اعمال كنترل های لازم بر روی آنها، زمينه ايجاد يك زبان آسان و ايمن برای اغلب پياده كنندگان نرم افزار بوجود آمده است. مثلا C و ++C می توانند مستقيما با استفاده از اشاره گرها عمليات دلخواه خود را در حافظه انجام دهند. وجود توانائی فوق برای نوشتن برنامه های كامپيوتری با كارائی بالا ضرورت اساسی دارد. اما در صورتيكه عملياتی اينچنين بدرستی كنترل و هدايت نگردند، خود می تواند باعث بروز مسائل (Bugs) بيشماری گردد.
طراحان زبان #C، با درك اهميت موضوع فوق، اين ويژگی را كماكان در آن گنجانده ولی بمنظور ممانعت از استفاده نادرست و ايجاد اطمينان های لازم مسئله حفاظت نيز مورد توجه قرار گرفته است. جهت استفاده از ويژگی فوق، برنامه نويسان می بايست با صراحت و به روشنی خواسته خود را از طريق استفاده از Keyword های مربوطهاعلان نمايند( فراخوانی يك توانائی و استفاده از آن).
#C بعنوان يك زبان شی گراء عالی است. اين زبان First-Class را برای مفهوم Property (Data Member) بهمراه ساير خصائص عمومی برنامه نويسی شی گراء حمايت می كند. در C و ++C و جاوا يك متد get/set اغلب برای دستيابی به ويژگی های هر Property استفاده می گردد. CLI همچنان تعريف Property را به متدهای get/ser ترجمه كرده تا بدين طريق بتواند دارای حداكثر ارتباط متقابل با ساير زبانهای برنامه نويسی باشد. #C بصورت فطری Events ، Declared Value، Reference Type ، Operator Overloading را نيز حمايت می كند.

كد مديريت يافته
با استفاده از نسخه پياده سازی شده #C توسط مايكروسافت، می توان همواره كد مديريت يافته ای را توليد كرد. يك برنامه #C پس از كامپايل، بصورت برنامه ای در خواهد آمد كه شامل دستورالعمل های تلفيق شده ( CIL (Common Intermediate Language است (درست بر خلاف دستورالعمل های مختص يك ماشين خاص). CIL (گاها با نام MSIL(Microsoft Intermediate Language) با به اختصار IL نيز ناميده می شود ) ، در مفهوم مشابه بايت كدهای جاوا بوده و شامل مجموعه ای از دستورالعمل های سطح پايين قابل فهم توسط تكنولوژی مبتنی بر CLI نظير CLR مايكروسافت خواهد بود. اين برنامه ها بدين دليل كد مديريت يافته، ناميده می شوند كه CLR مسئوليت تبديل اين دستورالعمل ها به كدهای قابل اجرا برروی ماشين و ارائه اغلب سرويس های اساسی برای كدينگ نظير : Garbage Collection، مديريت Heap و عمر مفيد يك Object و يا Type Verification را فراهم می كند.

روش يادگيری #C
يادگيری اين زبان برای افراديكه دارای سابقه آشنائی با يكی از زبانهای برنامه نويسی ++C، C و يا جاوا باشند كار مشكلی نخواهد بود، حتی افراديكه دارای آشنائی اوليه با جاوااسكريپت و يا ديگر زبانهای برنامه نويسی نظير ويژوال بيسك می باشند، امكان پذير و راحت خواهد بود. برخی از برنامه نويسان حرفه ای بر اين باور هستند كه #C نسبت به VB.NET با اقبال بيشتر و سريعتری مواجه خواهد شد، چراكه #C نسبت به ويژوال بيسك خلاصه تر است. حتی برنامه های بزرگ و پيچيده ای كه توسط #C نوشته می گردند خواناتر، كوتاه و زيبا خواهند بود. برخی از ويژگی های ارائه شده در #C نظير Unsigned Integer، Operator OverLoading و امنيت بيشتر Type ها، در VB.NET وجود نداشته و اين امر می تواند دليلی بر فراگيرتر شدن #C نسبت به VB.NET نزد برنامه نويسان با تجربه باشد.
برای يادگيری هر يك از زبانهای حمايت شده در دات نت، می بايست از BCL (Basic Class Library) مربوط به NET Framework. شروع كرد. #C خود صرفا دارای ۷۷ کلمه کليدی يا Keyword بوده كه برای اكثر برنامه نويسان غريب نخواهند بود. در مقابل BCL، دارای ۴۵۰۰ كلاس و تعداد بيشماری متد و Property است كه برنامه نويسان #C، می توانند از آنها برای انجام عمليات دلخواه خود استفاده نمايند. شايد يكی از مسائل قابل توجه جهت يادگيری اين زبان برای برخی از برنامه نويسان حرفه ای عدم وجود برخی از ويژگی ها و امكاناتی باشد كه در گذشته و از طريق ساير زبانهای استفاده شده، بخدمت گرفته می شدند. مثلا عدم وجود امكاناتی جهت توارث چندگانه (MI) سلسله مراتبی يك شئ.

خلاصه
بدون شك فراگيری و تسلط بر زبان #C بمنزله كسب يك پتانسيل با ارزش بوده كه ثمرات آن برای برنامه نويسان در حال و آينده ای نه چندان دور بيشتر هويدا خواهد شد. استاندارد بودن و وجود كتابخانه ای مملو از كلاس اين اطمينان را بوجود خواهد آورد كه با فراگيری زبان فوق و كسب، مهارت های لازم، به يك توانائی فرا محيطی جديد دست پيدا خواهيم كرد كه امكان استفاده از آن بر روی محيط های متفاوت وجود خواهد داشت. ويژگی ها و قابليت های بيشمار اين زبان از جمله دلايل قانع كننده ديگری است كه فراگيری آن را توجيه پذير و منطقی می كند.

======================================
از:
http://www.parsiforums.com/vb/showthread.php?t=3306
-----------------------------------------------------------------------
شئ گرایی در #c
شئ گرايی (OOP) در #C بر چند پايه استوار است که به قرار زيرند:


Inheritance
Encapsulation
Polymorphism
Abstraction
Interface

اكنون به توضيح مختصر هر يک می پردازيم.


Inheritance (ارث بری)

پدر و فرزندی را در نظر بگيريد. هر پدری مشخصات فردی به خصوصی دارد. فرزند وی می تواند همه خصوصيات او را به ارث برد و خصوصيتهای ديگری نيز داشته باشد که پدرش ندارد. اين يعنی ارث بری! برای مثال پدر وقتی عصبانی می شود، داد و فرياد می كند. پسر هم اين خصوصيت را به ارث می برد با اين تفاوت كه وقتی عصبانی می شود، علاوه بر داد زدن، چند عدد بشقاب هم می شكند. در برنامه نويسی شئ گرا از مفهوم ارث بری استفاده های زيادی می شود. برای تفهيم راحت تر مسئله فرض کنيد کلاسی به نام وسيله نقليه داريم. از آنجا که هر وسيله نقليه ای حرکت می کند، رنگ دارد، سرعت دارد، ترمز می گيرد و... می توانيم همه اين متدها و فيلدها( کدام متدها و فيلدها!؟) را در کلاس وسيله نقليه تعريف کنيم. حال يک وهله از اين کلاس را در نظر بگيريد (مثلا دوچرخه!). يک دوچرخه يک وسيله نقليه است که همه خصوصيات عمومی يک وسيله نقليه را دارد و البته خصوصياتی دارد که مختص خودش هستند و در انواع ديگر يافت نمی شوند. به اين منظور اين دوچرخه می تواند ويژگيها و متدهای مشترک را از کلاس وسيله نقليه به ارث ببرد و در عين حال ويژگيهای منحصر به خود را نيز داشته باشد. قابليت استفاده دوباره از کد (Reusability) يکی از مزيات اصلی ارث بری است.


Encapsulation

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

فرض کنيد سوار ماشينی هستيد که به سرعت در حرکت است! در مسيری که می رويد ماشين پدر نامزدتان از روبرو به شما نزديک می شود و سعی می کنيد سريع ترمز بگيريد تا برخورد نكنيد. اگر قرار باشد که بدانيد بعد از فشار دادن پدال ترمز چه عملياتی انجام می شود تا ترمز گرفته شود، ديگر بايد از ازدواج قطع اميد کنيد. ولی اگر تنها بدانيد که با فشار دادن پدال، ترمز گرفته می شود شما خوشبخت خواهيد شد. در واقع ما در اينجا کار ترمز گرفتن ماشين را به صورت يک کپسول آماده در نظر می گيريم. هدف Encapsulation اين است که ما را از پرداختن به ريز موضوعات رها کند و اشياء را به صورت يک جعبه سياهی بدانيم که به ازای يک ورودی خاص خروجی خاصی می دهند. اگر می خواهيم کدهای ما نيز اين مورد را رعايت کنند بايد سعی کنيم نگاه کپسولی به اشياء و عملکرد آنها داشته باشيم. در #C برای کپسوله کردن از Access Modifierهای protected ،private و public استفاده می شود.


Polymorphism

فرض كنيد پدر شما کار خاصی را به طريق خاصی انجام می دهد. مثلا برای پختن غذا (حقيقتی است تلخ!) اول ظرفهای ديشب را شسته و بعد گاز را روشن می کند و بعد غذا می پزد! شما که خصوصيات پدر و کارهای او را به ارث می بريد برای مثال برای پختن غذا ابتدا گاز را روشن می کنيد، بعد کبريت می کشيد، غذا را می پزيد و بعد ظرفهای ديشب را می شوييد! (توصيه می کنم نگذاريد ظرفهايتان نشسته بمانند!) برادر شما ممكن است همين كار را به طريق ديگری انجام دهد. پختن غذا کاری است که شما از پدر خود به ارث می بريد!!! ولی آن را به طريق ديگری انجام می دهيد. يعنی يک کار ثابت توسط فرزندان مختلف يک پدر به طرق مختلفی انجام می شود. اين دقيقا همان چيزی است که به آن چند شکلی يا Polymorphism می گويند.


Abstraction

تجريد يا مجرد سازی! به كلاسی مجرد گفته می شود كه پياده سازی متدها در آن انجام نمی شود! بر خلاف انسانها كه مجرد تعريف ديگری برايشان دارد! حال سئوالی پيش می آيد كه اگر کلاسی داشته باشيم که نخواهيم پياده سازی متدها را در آن انجام بديم، از آن كلاس چه استفاده ای می کنيم؟ برای پاسخ به اين سئوال شرايط زير را در نظر بگيريد:

فرض می کنيم که شما رييس يک شرکت بزرگ برنامه نويسی هستيد و می خواهيد پروژه بزرگی را انجام دهيد. برای اجرای پروژه از برنامه نويسان مختلفی استفاده می کنيد که ممکن است همه آنها هموطن نباشند! مثلا هندی، ايرانی يا آلمانی باشند! اگر قرار باشد هر برنامه نويسی در نامگذاری متدها و کلاسهايش آزاد باشد، در كد نويسی هرج و مرج به وجود می آيد. شما به عنوان مدير پروژه، کلاسی تعريف می کنيد که در آن تمام متدها با ورودی و خروجی هايشان مشخص باشند. ولی اين متدها را پياده سازی نمی کنيد و کار پياده سازی را به برنامه نويسان می دهيد و از آنها می خواهيد که همه کلاسهايی را که می نويسند از اين کلاس شما به ارث ببرند و متدها را به طور دلخواه پياده سازی کنند. اين باعث می شود که شما با داشتن يک کلاس، ورودی و خروجی های مد نظر خود را داشته باشيد و ديگر نگران برنامه نويسان نباشيد. کلاسی که شما تعريف می کنيد يک کلاس مجرد ناميده می شود.

برای تعريف يک کلاس مجرد از کلمه کليدی abstract استفاده می کنيم. فيلدهايی که می خواهيم در کلاسهای مشتق شده از اين کلاس پياده سازی شوند حتما بايد با abstract تعريف شوند. يک کلاس مجرد می تواند فيلدها و متدهای نامجرد داشته باشد. اگر متد نامجردی در يک کلاس مجرد تعريف کرديد، حتما بايد آن را پياده سازی کنيد و نمی توانيد پياده سازی آن را به کلاسهای مشتق شده بسپاريد.


Interface

اينترفيس در برنامه نويسی همانند همان کلاس است تنها با اين تفاوت که هيچکدام از اعضای آن پياده سازی نمی شوند. در واقع يک اينترفيس گروهی از متدها، خصوصيات، رويدادها و Indexer ها هستند که در کنار هم جمع شده اند. اينترفيس ها را نمی توان Instantiate (وهله سازی) کرد (يعنی نمی توان وهله ای از يک اينترفيس ايجاد کرد!). تنها چيزی که يک اينترفيس دارا می باشد امضای (signature) تمامی اعضای آن می باشد. به اين معنی که ورودی و خروجی متدها، نوع Property ها و... در آن تعريف می شوند ولی چيزی پياده سازی نمی شود. اينترفيس ها سازنده و فيلد ندارند (امری است بديهی! چرا؟). يک اينترفيس نمی تواند Operator Overload داشته باشد و دليل آن اين است که در صورت وجود اين ويژگی، احتمال بروز مشکلاتی از قبيل ناسازگاری با ديگر زبانهای NET. مانند VB.NET که از اين قابليت پشتيبانی نمی کند وجود داشت. نحوه تعريف اينترفيس بسيار شبيه تعريف کلاس است تنها با اين تفاوت که در اينترفيس پياده سازی وجود ندارد.

حالا اين اينترفيس در كجا به كار می آيد؟ اگر با ++C کار کرده باشيد ( در آن صورت کارتان خيلی درست می باشد!!!) با واژه ارث بری چند گانه آشنا هستيد. ولی احتمالا شنيديد که جاوا و #C از ارث بری چندگانه پشتيبانی نمی کنند. (يعنی يک کلاس از چند کلاس ديگر به ارث ببرد). گاهی لازم داريم از چند کلاس به ارث ببريم. راه حلش اين است که از اينترفيس ها استفاده کنيم. ولی بدانيد که اگر از اينترفيسی به ارث برديد بايد تمام متدهای آن را پياده سازی کنيد. يک کلاس می تواند از n تا اينترفيس و تنها يک کلاس به ارث ببرد.
 
آخرین ویرایش:

saalek110

Well-Known Member
منبع : http://www.csharppro.blogfa.com/8510.aspx
---------------------------------------------------------------
گشتی در #C و تفاوت آن با زبانهای دیگر

#C از نوع داده عمومی که در دانت فریم ورک وجود استفاده می کند. این انواع در فضای نامی System قرار دارند. که شامل object، string، int و .... نوع داده string یک کلاس sealed یا مهر موم شده می باشد و قابل ارث بری نمی باشد. ولی انواع دیگر مانند int و .... توسط struct پیاده سازی شده اند. در #C بر خلاف C تفاوت عمده ای بین کلاس ها و ساختار ها وجود دارد گرچه این اختلافات ظاهری نمی باشند. یک کلاس در حافظه کپه heap نگه داری می شود ولی یک ساختار در حافظه stack قرار دارد و طول عمر یک ساختار به محدوده ای که در آن تعریف می شود بستگی دارد ولی در مورد کلاس ها این طور نیست زیرا حافظه heap توسط GC (Garbage Collector) یا زباله روب ها اداره می شود.

تمامی کلاس ها در # Cاز کلاس Object ارث می برند و ساختارها قابل ارث بری نیستند، ولی ساختار ها همانند کلاس ها می توانند یک Interface را پیاده سازی کنند. تمامی ساختار ها در #Cدارای یک Constructor (سازنده)پیش فرض می باشند و نمی توانند دارای یک سازنده بدون پارامتر باشند ولی می توان Constructor آنها را Overload کرد. چون ساختار ها در C# قابل ارث بری نمی باشند نمی توان درون یک ساختار از Identifier های virtual و protected استفاده نمود. در کل می توان تا اینجا چنین نیجه گرفت که کلاس ها نوع مرجع می باشند و در کپه نگهداری می شوند ولی ساختار نوع داده می باشند و در پشته نگهداری می شوند طول عمر ساختار ها به قلمرویی که که در آن تعریف شده اند محدود می شود ولی حافظه کپه توسط زباله روب ها اداره می شود. و در ضمن ساختار ها دارای destructors یا متد تخریب کننده نمی باشند.

همانند کلاس ها ساختار ها قادر به Overloading عملگر ها و متد ها می باشند. در زیر یک ساختار ساده ولی در عین حال کامل را به عنوان مثال می آورم امید وارم که برای شما نیز جالب و خوشایند باشد.
ادامه مطلب را در اینجا بخوانید.
 
آخرین ویرایش:

saalek110

Well-Known Member
نقل از :
http://www.mau.ac.ir:5000/vb/showthread.php?p=169
--------------------------------------------------------------------
باسلام به دوستان عزیز


بررسی C#.Net

در این بخش مروری کلی بر زبان سی شارپ میشود و در بخش های بعدی قسمتهای اصلی سی شارپ از دید طراحی و پیاده سازی مورد بررسی قرار میگیرد ( در صورت تمایل شما... )

C# از دو زبان C++ و Java متولد شده است! حاوي بسياري از جنبه هاي C++ مي باشد اما ويژگي هاي شيء گرايي خودش را از جاوا به ارث برده است.


به طور کلی میتوان گفت سی شارپ از نظر شباهت به جاوا 70% -10% به سی ++ - 5% به ویژال بیسیک و15% نیز ویزگی ها و امکانات مختص به خود C# می باشد.


C# اگرچه از C++ گرفته شده است اما يك زبان "خالص" شيء گرا (Object oriented) مي باشد. هر دو زبان ياد شده جزو زبانهاي هيبريد محسوب مي شوند اما طراحان

C# اين مورد را به اندازه ي C++ مهم تلقي نكرده اند. يك زبان هيبريد اجازه ي برنامه نويسي با شيوه هاي مختلف را ميسر مي كند. دليل اينكه C++ هيبريد است ، اين است كه

قرار بوده تا با زبان C سازگار باشد و همين امر سبب گرديده تا بعضي از جنبه هاي C++ بسيار پيچيده شوند.

زبان سي شارپ فرض اش بر اين است كه برنامه نویس مي خواهد تنها برنامه نويسي شيء گرا انجام دهد و همانند C++ مخلوطي از برنامه نويسي رويه ايي (Procedural) و

شيء گرا را نمي خواهد به پايان برساند. بنابراين برنامه نویس بايد طرز فكر خودش را با دنياي شيء گرايي تطبيق دهد. در سي شارپ هر چيزي شيء است حتي يك برنامه ي سي شارپ.

مواردی که در جاوا نیز می باشد : (همانند جاوا)

Object-orientation (single inheritance) • Interfaces •Exceptions • Threads • Namespaces (like Packages) • Strong typing •

GarbageCollection•Reflection•Dynamic loading of code•...



مواردی که در سی ++ نیز می باشد : (همانند سی ++)

•(Operator) Overloading • Pointer arithmetic in unsafe code • Some syntactic details



مواردی که در مقایسه با جاوا واقعا جدید می باشند:

•Reference and output parameters•Objects on the stack (structs)•Rectangular arrays•Enumerations

•Unified type system•goto•Versioning



نکات جالبی که باعث شیرینی قواعد نوشتاری syntax در سی شارپ شده عبارتند از :

•Component-based programming-Properties-Events

•Delegates • Indexers • Operator overloading • foreach statements •Boxing/unboxing • Attributes•...
 

saalek110

Well-Known Member
از:
http://i.1asphost.com/kamran11958/content.asp?IDC=282
-----------------------------------------------------------------------
سلام !

خوب اين هم از قولي كه داده بودم آموزش طلايي سي شارپ در سي روز كه قسمت اول اون رو كه مقدمه اي كامل در باره تاريخچه سي شارپ ودر مورد خود سي شارپ است براي شما مي فرستم

در ضمن اين مقاله به ذكر مطا لبي چون
تاريخچه سي شارپ
قدرت هاي سي شارپ
تاريخچه دات نت
مقايسه سي شارپ

را در بر مي گيرد در ضمن لطف كنيد و قانون كپي رايت رو رعايت كنيد و هرجا خواستيد اين رو ذكر كنيد نام سايت هم زير آن بگذاريد

در ضمن نظر هم فراموش نشود



دوباره سلام و تشكر از اين كه رو ادامهه مطلب كليك كردين اين هم آموزش :

سال ها پيش وقتي جا وا حرف اول برنامه نويسي اكتيويس و شي گرا را ميزد وقتي دلفي دم از بهترين قدرت اتصال به بانك اطلا عا تي رو مي زد وقتي سي ++ حرف پر قدرت ترين زبان رو مي زد و ويژوال بيسيك حرف آسان ترين و پر كاربرد ترين زبان رو ميزد ما كرو سافت به اين فكر افتاد تا زبان جديدي بوجود بيا ورد كه همه اين قابليت ها را يك جا داشته با شد يعني :

دلفي ( بانك ها ي اطلا عا تي )+ ويژوال بيسيك ساده و پر كار برد + سي پلاز پلاز قدرت مند+ اكتيويس و شي گرايي جا وا = ؟

جواب معما خيلي پيچيده بو ولي ماكروسافت اين پروژّ را شروع كرد و يك زبان كم شهرت به نام سي شارپ ( C#) را بوجود آورد اول كمي اين پروژه دست كم گرفته شد تا زما ني كه قصد بو جود آوردن نوعي قدرت را بعد از موتور كام (COM) را كرد او فناوري دات نت را بوجود اين فنا وري (كه در يه مقاله ديگه مفصلا در باره اش برا تون توضيح خواهم داد ) تمام بسته هاي نرم افزاري خود را به نوعي با اين فنا وري آپ ديت كرد از ويندوز دات نت تا خود ويژوال استاديو اين فناوري دات نت دست پرورده همين زبان گمنام (سي شارپ ) بود از اين جا به بعد سي شارپ وارد كار ها شد بهتر بگم كه نقش سي شارپ در فناوري دات نت مثل نقش سي ++ است در يونيكس خب حا لا وارد خود سي شارپ مي شويم

آقا اين سي شارپ قدرتي دارد كه حتي دلفي با اون اهن و تلب ش نداره !!!!!!!

مي گوييد نه نگاه كنيد برتري هاي سي شارپ رو
اتصال به بانك هاي اطلا عاتي هم خيل پيشر فته شده البته من اطلاا عات بسيار دقيق ندارم ولي مي دونم تما م كار هاي مربوط به بانك هاي اطلا عاتي از وارد كردن و دليت كردن و لود شدن هيچ زماني طول نمي كشد ( البته اگه رم و سي پي يو رو درگير نكنين!!!!)
قدرت دات نت براي يك سيستم عامل خاص نيست چون ماكرو سافت طي نظرييه اي قرار شده كه دات نت رو براي تمامي سيتم عامل ها كند كه البته الان دات نت فريم ورك ( مو تور دات نت و كتاب خانه هاي آن ) براي لينوكس نيز بوجود آمده
برنامه نويسي وب اون كه اي اس پي دات نت هست قدرتي دارد كه حتي قابل مقايسه با پي اچ پي هم نيست
سيي شارپ خودش مي تواند يه كا مپونت توپ و تمام و كمل بسازد ( كه وي بي اين قدرت را ندارد )
غالب هاي كاري دات نت اون از نظر قدرت غير قابل مقا يسه با API ها هستند ( پس در نتيجه هك باون ساده تره )
هيچ كس تا به حال نتوانسته منكر امنيت كاري اي زبان قدرت من بشه پس در نتيجه كمتر يا اصلا برنامه ها تون رو كرك كنن

حا لا فكر كنم به معما به با لا بتوان اين راه حل رو بروم



دلفي ( بانك ها ي اطلا عا تي)+ ويژوال بيسيك ساده و پر كار برد + سي پلازپلازقدرت مند+ اكتيويس و شي گرايي جا وا = سي شارپ دات نت

خب خيلي زياد شد حا لا شما با اين مقدمه مي تونين خودتون زبان برنامه نويسي خودتون رو انتخاب كنيد

با تشكر

وحيد

بكار بردن اين مقاله در هر جايي بايد با نام نويسنده و اين سايت باشد

http://www.takclick.compilers.com

[email protected]
 

saalek110

Well-Known Member
نقل از :
http://www.centralclubs.com/viewtopic.php?t=17718
-----------------------------------------------------------------
یکی از دغدغه‌های اصلي برنامه‌نویسان امروزي، انتخاب زبان برنامه‌نویسی توانمند و در عین حال ساده و شیوا است. همين امر انگيزه‌اي شد تا برای راهنمایی علاقه‌مندان به برنامه‌نویسي و افرادي كه می‌خواهند گام در این راه بگذارند و یا آن‌هايي كه قصد ارتقاي سطح دانش برنامه‌نویسی خود و روي‌آوري به دات‌نت (.NET) را دارند، مقاله‌ای در خصوص مقایسه‌ي دو زبان C# (سي‌شارپ) و VB.NET (ويژوال‌ بيسيك دات‌نت)، به رشته‌ي تحریر در آوریم.

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

1. امتیازات منحصر به فرد هر دو زبان

2. تفاوت در کلمات کلیدی

3. تفاوت در انواع داده‌ای

4. تفاوت در عملگرها

5. تفاوت در نحوه‌ي برنامه‌نویسی



امتیازات منحصر به فرد هر دو زبان

مزایایي كه در جدول زير آورده شده است، يا فقط منحصر به زبان ذكر شده است و یا به‌طور ضعيف‌تري در زبان ديگري وجود دارد:




تفاوت در کلمات کلیدی :



تفاوت در انواع داده ای:



تفاوت در عملگرها:



تفاوت در نحوه‌ي برنامه‌نویسی:


امکانات جدید هر دو زبان در نسخه‌ي 2005:


سخن پاياني

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

saalek110

Well-Known Member
منبع:
http://www.raykaict.com/default.asp...details.aspx&category=0&st=90&nopip=30&is=282
========================================
مطالب جالبی در مورد تکنولوژی دات نت

بلاگ نویس های مایکروسافت و سخنی درباره جاوا:

دن فرناندز ( Dan Fernandez ) مدیر تولید ویژوال سی شارپ در تیم دات نت مایکروسافت است . وبلاگ آقای فرناندز از آن جاهایی است که علاقمندان به سی شارپ همیشه از خواندنش لذت می برند ، او بیشتر درباره اخبار و تازه های سی شارپ می نویسه. یادداشتی در این وبلاگ هست که خواندنش خالی از لطف نیست ، بخش کوتاهی از آن را میخوانیم:

آیا شما همچنان فکر می کنید که دات نت هنوز not yet است ؟

( توضیح اینکه توسعه دهندگان جاوا و شرکای سان و آی بی ام بر فناوری دات نت اسم های مختلفی گذاشته اند ، از جمله not yet , Dot not یا dot nut )
"اخیرا Forrester Research نتایج نظرسنجی را منتشر کرده که در آن از 878 تصمیم گیرنده فناوری در آمریکای شمالی در مورد محیط توسعه ای مورد استفاده شان در سال 2004 سوال شده : دات نت یا J2EE ؟

پاسخ اینکه : 56 درصد پاسخ دهندگان دات نت را محیط توسعه ای اولیه و پایه خود معرفی کرده اند در برابر 44 درصدی که J2EE را برگزیده اند این در حالی است که این نسبت در سرویس های تجاری 64 درصد برای دات نت و 36 درصد برای J2EE است و در بخش عمومی هم دات نت سهمی معادل 66 درصد دارد."

البته لازم بذکر است در مورد Enterprise ها نمی شود به همین سادگی نظر داد ، پیروزی یک پلتفرم که برای کارهای بزرگ ساخته شده رو مشتری های بزرگ تعیین می کنند.

پیوندهای مفید :
بلاگ های توسعه دهندگان فنی مایکروسافت :


Dan Fernandez ، Brad Abrams ، Eric Gunnerson
Chris Brumme ، Duncan Mackenzie ، Don Box ، Suzanne Cook
گزارش Forrester ( فرمت PDF )
.NET and J2EE interoperability guide


منبع: http://ilife.weblogs.us

پروژه های سایرین در مورد دات نت:

پروژه های mono و یا dotgnu توسط مایكرسافت ایجاد نشده اند و تنها تلاشی مستقل هستند برای پیاده سازی نسخه ای شبیه دانت نت فریم ورك در لینوكس ، گفتنی است پروژه اوپن سورس مونو توسط شرکت ناول (Novell) ایجاد شده و در حال حاضر نسخه اول آن برای پلاتفرمهای Linux, Windows, OSX, BSD موجود است، در ضمن قرار است ناول بصورت پیش فرض مونو را در نسخه جدید لینوکس Suse خود قرار دهد.


http://www.mono-project.com/Main_Page
http://www.dotgnu.org



دات نت به جاوا:
یك ایده جالب و یك محصول خوب. بطور خلاصه یك برنامه كه امكان میدهد با VB.NET و یا #C و در محیط ویژال استودیو دات نت برنامه نویسی كنید و حتی در آن از كلاسهای جاوا نیز استفاده كنید و در نهایت یك Application بر پایه J2EE تحویل بگیرید. ایده خیلی جالبی است و حداقل به برنامه نویسان دات نت این حس را میدهد كه هر وقت خواستند میتوانند برنامه ای براساس جاوا و J2EE بسازند.

توضیحات در باره برنامه

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

آدرس پروژه ای که مایکروسافت فقط برای نشان دادن قابلیت در مقابل جاوا نوشته:


http://www.gotdotnet.com/team/compare/petshop.aspx


منبع : sds-solutions.com

گروه طراحی وب سایت
 
آخرین ویرایش:

saalek110

Well-Known Member
منبع:
http://www.sapco.ir/departments/it/news/mono/mono.htm
====================================
پروژه مونو
پروژه مونو ابتکاریست اوپن سورس از تعدادی برنامه نویس با حمایت شرکت Novell برای خلق محیطی شبیه Microsoft .NET روی سیستمهای لینوکس.


استقبال فراوان برنامه نویسان از زبان سی شارپ در چند سال اخیر بخصوص در خلق برنامه ها برای وب و همچنین هجم بالای تبلیغات میکروسافت برای گنجاندن محصولات خود جزو لوازم اولیه روزانه هر برنامه نویسی، شرکتهای دیگر را به تب و تاب انداخت تا یک کپی دقیقن شبیه NET را برای کامپیوترهای لینوکس فراهم کنند. مونو محیطی را برای کامپیوترهای لینوکس ایجاد میکند که class library های ADO.NET و ASP.NET قابل تفهیم و اجرا شوند و برنامه نویسان توانایی compile برنامه های نت خود را (که در حالت طبیعی فقط روی ویندوز قابل اجراست) در لینوکس هم بیابند. همچنین مونو library هایی منحصر به خود هم دارد که قابلیتهای NET را چند برابر میکند. کاربران ویندوز و مکینتاش نیز میتوانند نسخه ای از مونو را نصب کنند.
 

hani_zi

New Member
سلام به همه
من می خوام یه برنامه با سی شارپ بنویسم که بتونه ارقام بالای میلیارد رو بگیره و به فارسی بنویسیه یعنی شکل حروفی اعداد رو بنویسه اگه کسی ایده ای داره خوشحال می شم راهنمایی کنه ممنون
 

جدیدترین ارسال ها

بالا