مهدی عزیزی

تفاوت Overloading و Overriding در سی شارپ

Overloading زمانی است که شما چند متد همنام در یک محدوده (scope) با امضاهای (signatures) متفاوت دارید .
همچنین Overloading چند ریختی زمان کامپایل (Compile Time Polymorphism) می باشد .

//Overloading
public class test
{
    public void getStuff(int id)
    {}
    public void getStuff(string name)
    {}
}

Overriding یک اصل یا قانون است که به شما اجازه می دهد تا قابلیت های متدها را در کلاس های مشتق شده تغییر دهید
همچنین Overriding چند ریختی زمان اجرا (Run Time Polymorphism) می باشد.

//Overriding
public class test
{
        public virtual getStuff(int id)
        {
            //Get stuff default location
        }
}

public class test2 : test
{
        public override getStuff(int id)
        {
            //base.getStuff(id);
            //or - Get stuff new location
        }
}
۰۴ اسفند ۹۳ ، ۰۰:۰۰ ۱ نظر موافقین ۰ مخالفین ۰
مهدی عزیزی

متدولوژی اسکرام (Scrum Methodology)

مقدمه: اسکرام(scrum) یک روش تکراری برای مدیریت پروژه های نرم افزاری است. در این روش سازمان دهی تیم توسعه و برقراری ارتباط مناسب با مشتری یا مشتریان امکان پذیر می گردد. هم چنین با مدیریت صحیح فرایند تولید و توسعه نرم افزار توسط این متدولوژی، امکان ارائه محصول با کیفیت در مدت زمان مشخص مقدور می گردد.

اسکرام چیست؟

اسکرام(scrum) یک روش گروهی برای تولید و توسعه نرم افزار است. این متدولوژی یک مدل تکراری(iterative) از متدولوژی Agile برای حل مسایل پیچیده است. با اسکرام این امکان وجود خواهد داشت که مسایل پیچیده به راحتی مدیریت گردد.

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

تاریخچه اسکرام

متدولوژی اسکرام در سال 1986 در کشور ژاپن توسط Hirotaka Takeuchi و Ikujiro Nonaka برای اولین بار اختراع شد. اسکرام در دهه 90 میلادی توسط Ken Schwober و Jeff Stherland توسعه داده شد و به عنوان یک متدولوژی رسمی جهت تولید محصولات نرم افزاری شناخته و به کار گرفته شد.

اسپرینت

هسته اصلی اسکرام را اسپرینت ها تشکیل می دهند. در متدولوژی های تکرار شونده(iterative) دوره های زمانی تکراری(iteration) وجود دارد که در این دوره ها به تدریج محصول کامل می گردد. بدین صورت که در تولید یک محصول، تعدادی تکرار در نظر گرفته می شود که در پایان دوره زمانی هر تکرار، یک محصول قابل ارائه وجود دارد. به این دوره های زمانی تکرار شونده در اسکرام اسپرینت(sprint) می گویند. در پایان هر اسپرینت، محصول کامل تر شده و در نهایت محصول نهایی تولید می گردد. هر اسپرینت دارای تعریفی است که در آن باید مشخص شده باشد که چه چیزی قرار است ساخته شود، نیازمندی ها، راهنمای ساخت و محصول خروجی نیز باید مشخص باشند.

مجموعه نیازمندی های عملیاتی و غیر عملیاتی(Functional and NonFunctional Requirements) پروژه، که مستند شده است را backlog گویند. مجموعه نیازمندی هایی که در هر اسپرینت باید تمام شوند sprint Backlog نامیده می شود. هر sprintcycle تا زمانی ادامه پیدا می کند که محصول آماده release باشد. بعد از release محصول ممکن است صاحب پروژه نیازمندی های جدیدی به پروژه اضافه نماید که به آن ها Product Backlog گویند.
مدت زمان هر اسپرینت بستگی به نوع پروژه دارد. این مدت زمان می تواند از یک هفته تا یک ماه متغیر باشد. هر اسپرینت باید دقیقا سر وقت به اتمام برسد و اگر به هر دلیلی در پایان اسپرینت محصول آماده نبود باید نیازمندی های sprint backlog به product backlog منتقل شوند.
در ابتدا و در هنگام شروع اسپرینت، جلسه ای با حضور تمام اعضای تیم تشکیل می شود و به همه افراد هدف نهایی اسپرینت و وظایف هریک از اعضای تیم شرح داده می شود.

وظایف مشخص شده در هر اسپرینت شامل سه جنبه است:

  • Transparency: تمامی جنبه های فرایند برای همه اعضای تیم(مشتری و تیم برنامه نویس) باید مشخص و واضح باشد.
  • Inception: اگر در هر مرحله، فرایند دچار انحراف شد، باید انحراف سریع تشخیص داده شود.
  • Adaption: انحراف های شناسایی شده، در کم ترین زمان ممکن باید تعدیل شوند.

 

در هر اسپرینت، جلسه ای به صورت روزانه با حضور اعضای تیم(تیم تولید و ذینفعان) انجام می شود تا پیشرفت های پروژه بررسی گردد. در این جلسات باید به سه پرسش زیر پاسخ داده شود:

  • چه پیشرفت هایی حاصل شده است؟
  • چه موفقیت هایی در اسپرینت بعدی حاصل می گردد؟
  • چه موانعی برسر راه ادامه کار وجود دارد؟


در انتهای هر اسپرینت جلسه ای برگزار می شود تا محصول نهایی به ذینفع یا ذینفعان نشان داده شود و نتیجه نهایی کار بررسی گردد.

نقش های اسکرام (scrum roles)

  • اسکرام مستر(scrum master) : رهبر اسکرام وظیفه دارد تا تمامی اعضای تیم را هدایت و راهنمایی نماید تا هیچ یک از اعضای تیم از چارچوب و قوانین اسکرام خارج نشوند. رهبر اسکرام نقش مدیر را ندارد بلکه تنها وظیفه رهبری تیم را بر عهده دارد تا با رفع مشکلات و موانع پیش رو(در صورتی که اعضای تیم قادر به رفع موانع نباشند.) ، اجرای اسکرام را بهبود بخشد.
  • نماینده صاحب پروژه و یا ذینفع(product owner) : صاحب پروژه با اعلام دقیق نیازمندی های خود به تیم تولید، با راهبر اسکرام و تیم تولید همکاری می نماید. صاحب پروژه باید به سوالات تیم پاسخ داده و همواره در دسترس باشد.
  • تیم تولید و توسعه نرم افزار(development team) : افراد این تیم در چارچوب قوانین اسکرام، به تولید آن چه که صاحب پروژه درخواست کرده است، می پردازند. تعداد اعضای تیم تولید نه باید آن قدر کم باشد که همکاری گروهی و کار تیمی بی معنا شود و نه آن قدر زیاد باشد که هماهنگی بین اعضای تیم تبدیل به امری دشوار و وقت گیر گردد. تعداد اعضای تیم تولید، بستگی به پروژه دارد اما معمولا 6 تا 9 نفر اعضای این تیم را تشکیل می دهند.

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

۰۴ دی ۹۳ ، ۲۱:۵۶ ۱ نظر موافقین ۰ مخالفین ۰
مهدی عزیزی

تفاوت URI، URL و URN

URI – URL – URN  سه شیوه آدرس دهی می باشند :

Uniform Resource Identifier) URI) یا شناسه منبع یکپارچه
یک رشته از کاراکتر هاست  که برای شناسایی یک نام و یا یک منبع بر روی اینترنت مورد استفاده قرار گرفته شده است.

URI یک منبع را یا بوسیله مکان یا بوسیله نام یا توسط هردو مشخص و شناسایی میکند. در واقع URI خود از دو بخش تشکیل شده: URN و .URL که URN مشخص کننده نام منبع و URL تعیین کننده روش دسترسی به منبع است.

در واقع URI رشته ای از کاراکترها است که برای شناسایی هویت و روش دسترسی به یک منبع از آن استفاده می شود.
Uniform Resource Locator) URL)  یک زیر مجموعه و بخشی از (URI) می باشد که می تواند چگونگی بازیابی هر منبعی را مشخص کند.
URN (Uniform Resource Name): URN یک مشخصه است که بصورت یکتا یک منبع را نام گذاری می کند و هیچ جزئیاتی در مورد چگونگی دسترسی به آن منبع به ما نمی دهد.
یه مثال ساده:
URN شبیه به نام یک فرد است، در حالی که یک URL مانند آدرس خیابان. URN تعریف هویت چیزی است، در حالی که URL یک محل را فراهم می کند.
مثال کامپیوتری و تحت وبی:
URL: http://www.ietf.org/rfc/rfc2396.txt
URL: telnet://192.0.2.16:80/
ISBN: 1-2345-34-7 یک URN است.
Files/main/page.HTML یک URI است چون یک منبع را مشخص می کند ولی یک URL نیست چون چگونگی بازیابی منبع را مشخص نمی کند.
http://www.it.com/Files/main/page.HTML یک URL است.

۲۶ آذر ۹۳ ، ۱۰:۱۲ ۰ نظر موافقین ۰ مخالفین ۰
مهدی عزیزی

امکانات جدید #C و Visual Basic در Visual Studio 2015

Microsoft  ورژن جدید visual studio  ، یعنی پیش نمایش visual studio 2015   را در نوامبر 2014  منتشر کرد.
نکته جالب این است که این اولین release  عمومی یک ورژن visual studio  است که به صورت  open source  منتشر شده، در نتیجه اولین (CTP (Common Technology Preview  به صورت عمومی در دسترس است ،      می توانیم آن را از سایت مایکروسافت download  کنیم.

به یاد داشته باشید که Roslyn  نسل بعدی کامپایلر های .NET  برای# C  و Visual Basic  است.
در کنفرانس ()Visual Studio Connect  بحث های جالبی وجود داشت. تغییرات جدیدی در C# ، Visual Basic  و #F  به وجود آمده است . تیم اصلی مایکروسافت تغییرات عمده ای را برای پیاده سازی مجدد زبان های #C و  Visual Basic  انجام داده اند.همان طور که می دانید یک stack  پیشرفته که دارای معماری خوب و تمیزی است ، به برنامه نویس این امکان را می دهد که سریع تر  کار کند و هم چنین امکان این را می دهد که ابزار هوشمند (Code Smart)  برای  application  ها را بسازد.از امروز به بعد می توانیم تجربه IDE  قدرتمندتر و هوشمندتری در  visual studio داشته باشیم.
در این مقاله همان طور که در کنفرانس گفته شده ، تاکید بر روی امکانات جدید زبان ها ، تجربه بهتر و هوشمندانه تر IDE  ، پیشرفت عملیات debug  وآنالیز ، تشخیص و تحلیل کد هاست.امکانات  جدید visual studio 2015  در زیر آورده شده است:
-    پیشرفت IDE
-    امکانات جدید c#
-    امکانات جدید در visual basic
-    پیشرفت کار debug
-    آنالیزکننده مشکلات و کد ها
پیشرفت IDE  مایکروسافت:
در visual studio 2015  ،  تمرکز #c  و visual basic  روی IDE  بیشتر شده است.امکانات کلیدی جدید آن عبارتند از:
-    Refresh  کردن  IDE اصلی
-     Code fix ها و refactoring
-    Inline rename
Refresh  کردن  IDE اصلی :
درکنفرانس vsconnect  در مورد IDE های c#   و Visual Basic صحبت شد.این IDE  ها هزاران امکانات جدیدی را که برنامه نویسان هرروز از آن استفاده می کنند را همانند  highlight  کردن syntax  ها و refactor  را پشتیبانی می کند.
بیایید با استفاده از یک مثال به IDE  جدید نگاهی بیندازیم:
Tooltip  های رنگی:
در visual studio 2015  ، tooltip   برای فراهم کردن بهتر مفهوم ، کد را به صورت رنگی و به صورت کامل نمایش می دهد.


Code fix  ها و refactoring

(refactoring به روش های اعمال تغییر (اصلاح یا افزودن قابلیت) در ساختار کدهای موجود می گویند، بصورتی که پس از اعمال تغییر کدهای جدید حاوی error نباشند (سینتکس و کامپایل) و همچنین functionality نرم افزار تغییر نکرده باشد!)


هنگامی که

ادامه مطلب...
۱۳ آذر ۹۳ ، ۱۷:۴۷ ۲ نظر موافقین ۰ مخالفین ۰
مهدی عزیزی

Interface ها در سی شارپ

وقتی می خواهیم interface را تعریف کنیم در واقع یک سری از قوانین را توضیح می دهیم.

یک class می تواند قوانینی را  که  توسط interface مشخص شده دنبال کند.

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

شما می توانید برای تعریف interface  مانند زیر عمل کنید:

public interface <interface name>
{
	    //Specify the Contract
}

بیایید فرض کنیم یک interface  از یک گوشی قدیمی مدل Nokia وجود دارد که

Interface آن به شکل زیر است:

public interface INokiaOld
{
	    void SendSMS();
	    void HoldCall();
}

کد بالا مشخص کرده که تمام کلاس هایی که interface،INokiaOld را پیاده سازی می کنند باید قابلیت های SendSMSو HoldCall را داشته باشند.

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

برای نمونه بعضی از تلفن ها می توانند برای برقراری تماس پانزده ثانیه و بعضی دیگر شصت ثانیه صبر کنند و پس از هر پنج ثانیه یک صدای beep  داشته باشند وسپس تماس قطع شود.

قوانین می گویند اگر

ادامه مطلب...
۱۷ آبان ۹۳ ، ۲۲:۰۸ ۱ نظر موافقین ۰ مخالفین ۰
مهدی عزیزی

کلمه کلیدی this

کلمه کلیدی this به نمونه فعلی کلاس رجوع می کند و همچنین به عنوان اصلاحگر اولین پارامتر یک متد الحاقی (Extension Method) کاربرد دارد.

نکته

این تاپیک فقط کاربرد کلیدواژه this با نمونه های کلاس را توضیح می دهد. در مورد متدهای الحاقی بطور خلاصه باید بگویم که : متدهای الحاقی به شما این امکان را می دهند که متد ها را به نوع های موجود "اضافه" کنیم ، بدون اینکه یک نسخه مشتق شده جدید از آن نوع بسازیم ، بدون نیاز به کامپایل مجدد و یا حتی ویرایش نوع اصلی. متدهای الحاقی ، نوع خاصی از متدهای ایستا هستند، اما بگونه ای فراخوانی می شوند که انگار متد نمونه آن نوع الحاقی می باشند. برای کد نوشته شده در #C هیچ تفاوت آشکاری بین فراخوانی یک متد الحاقی و متدهایی که واقعا" در داخل نوع اعلان شده اند وجود ندارد. مشهورترین متدهای الحاقی ، عملگرهای پرس و جوی استاندارد LINQ می باشند که قابلیت های پرس و جو را به نوع های IEnumerable و <IEnumerable<T موجود اضافه می کنند. برای استفاده از عملگرهای پرس و جوی استاندارد، اول آنها را با استفاده از رهنمون using System.Linq به داخل حوزه (scope) بیاورید. از جمله متدهای الحاقی LINQ می توان به GroupBy ، OrderBy و Average اشاره کرد که پس اضافه کردن رهنمون فوق الذکر به نوع شمارشی IEnumerable اضافه می شوند.

موارد زیر کاربردهای معمول کلمه کلیدی this است:

  • کنترل اعضایی که توسط نام های مشابه اعضای دیگر از دید مخفی شده اند، برای مثال:
    public Employee(string name, string alias)
    {
        // Use this to qualify the fields, name and alias:
        this.name = name;
        this.alias = alias;
    }
  • برای پاس دادن یک شیئ بصورت پارامتر به متدهای دیگر، برای نمونه:
    CalcTax(this);
  • برای اعلان شاخصگرها، برای مثال:
ادامه مطلب...
۲۸ مهر ۹۳ ، ۱۰:۵۵ ۰ نظر موافقین ۰ مخالفین ۰
مهدی عزیزی

نام‌گذاری در دات‌نت

نامگذاری (Naming) اشیا یک برنامه شاید در نگاه اول دارای اهمیت بالایی نباشه، اما تجربه نشون داده که در پروژه‌های بزرگ که با کمک چندین مجموعه به انجام میرسه نامگذاری صحیح و اصولی که از یکسری قواعد کلی و مناسب پیروی میکنه میتونه به پیشبرد اهداف و مدیریت راحتتر برنامه کمک بسیاری بکنه.
بیشتر موارد اشاره شده در این مطلب از کتاب جامع و مفید Framework Design Guidelines اقتباس شده که خوندن این کتاب مفید رو به خوانندگان توصیه میکنم.
برای کمک به نوشتن اصولی و راحتتر سورسهای برنامه‌ها در ویژوال استودیو نرم افزارهای متعددی وجود داره که با توجه به تجربه شخصی خودم نرم افزار Resharper  محصول شرکت Jetbrains یکی از بهترین هاست که در مورد خاص مورد بحث در این مطلب نیز بسیار خوب عمل میکنه.
برخی از موارد موجود در مطلب جاری نیز از قراردادهای پیشفرض موجود در نرم افزار Resharper نسخه 6.0 برگرفته شده است و قسمتی نیز از تجربه شخصی خودم و سایر دوستان و همکاران بوده است.
اصول و قراردادهای نام‌گذاری در دات‌نت
انواع نام‌گذاری
نام‌گذاری اشیا در حالت کلی را می‌توان به سه روش زیر انجام داد:
1. Pascal Casing: در این روش حرف اول هر کلمه در نام شی به صورت بزرگ نوشته می‌شود.
1
FirstName
2. camel Casing: حرف اول در اولین کلمه نام هر شی به صورت کوچک و حرف اول بقیه کلمات به صورت بزرگ نوشته می‌شود.
1
firstName
3. Hungarian: در این روش برای هر نوع شی موجود یک پیشوند درنظر گرفته می‌شود تا از روی نام شی بتوان به نوع آن پی برد. در ادامه و پس از این پیشوندها سایر کلمات بر اساس روش Pascal Casing نوشته می‌شوند.
1
2
strFirstName
lblFirstName
نکته: استفاده از این روش به جز در نام‌گذاری کنترل‌های UI منسوخ شده است.
 
قراردادهای کلی
ادامه مطلب...
۲۸ مهر ۹۳ ، ۰۹:۳۲ ۰ نظر موافقین ۰ مخالفین ۰
مهدی عزیزی

ASP.NET Web API

Web API چیست؟
Web API، نوع قالب جدیدی برای پروژه‌های مبتنی بر وب در NET. است که بر مبنای اصول و الگوهای موجود در ASP.NET MVC ساخته شده است و همراه با ASP.NET MVC 4 وجود دارد. Web API توسعه گران را قادر می‌سازد تا با استفاده از یک الگوی ساده که در Controllerها پیاده سازی می‌شود، وب سرویس‌های مبتنی بر پروتوکل HTTP را با کدها و تنظیمات کم ایجاد کنند. این سبک جدید برای ایجاد وب سرویس ها، می‌تواند در انواع پروژه‌های NET. مانند ASP.NET MVC، ASP.NET Web Forms، Windows Application و ... استفاده شود.
یک سوال کاملاً منطقی در اینجا به وجود می‌آید. چرا نیاز به بستری جدید برای ایجاد وب سرویس داریم؟ آیا در حال حاضر مایکروسافت بستری محبوب و فراگیر برای توسعه‌ی وب سرویس هایی که بتوانند با پروتوکل SOAP تعامل داشته باشند در اختیار ندارد؟ مگر وب سرویس‌های ASMX از زمان معرفی ASP.NET وجود نداشته اند؟ آیا تکنولوژی WCF مایکروسافت، بیشترین انعطاف پذیری و قدرت را برای تولید وب سرویس‌ها در اختیار قرار نمی‌دهد؟ وب سرویس‌ها جایگاه خود را یافته اند و توسعه گران با تکنولوژی‌های موجود به خوبی آنها را پیاده سازی و درک می‌کنند. چرا Web API؟

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

  • من معتقد هستم که راه بهتری برای ایجاد وب سرویس‌ها وجود دارد.
  • من معتقد هستم که روش‌های ساده‌تری برای ایجاد وب سرویس‌ها وجود دارد و WCF بیش از حد پیچیده است.
  • من معتقد هستم که تکنولوژی‌های پایه‌ی وب مانند اَفعال GET، POST، PUT و DELETE برای انجام اَعمال مختلف توسط وب سرویس‌ها کافی هستند.

اگر همچنان در حال خواندن این مطلب هستید، توضیحات خود را با شرح تفاوت میان Web API و تکنولوژی‌های دیگر هم حوزه‌ی آن ادامه می‌دهیم و خواهید دید که استفاده از Web API چقدر آسان است.

تفاوت Web API و WCF
وب سرویس‌های ASMX تا چندین سال

ادامه مطلب...
۰۳ مهر ۹۳ ، ۲۲:۵۱ ۱ نظر موافقین ۰ مخالفین ۰
مهدی عزیزی

تفاوت زبان برنامه نویسی #C و ++C

اولا با C# فقط برنامه های تحت .NET میشه نوشت (در واقع C# برای .NET درست شده) ، اما با C++ هم برنامه های تحت (NET managed) و هم برنامه های native میشه نوشت.

دوما هنوز برای کارهای سطح پایین (مثل Device Driver) و سنگین (مثل بازی های سه بعدی) C++ انتخاب اول و آخر محسوب میشه.

C# خیلی راحتتر ، تمیزتر و خوش ساخت تر از C++ طراحی شده و از نظر شی گرایی هم پشتیبانی بهتری داره نسبت به C . C# کاملا شی گراست و اصلا نمیتونید برنامۀ غیر شی گرا در اون بنویسید ، در صورتی که با C++ میتونین هم شی گرا و هم غیر شی گرا ، برنامه بنویسید.

از ویژگی های C# :

1- مدیریت خودکار حافظه توسط CLR

2- پشتیبانی از یک نوع String داخلی

3- پشتیبانی از foreach

4- پشتیبانی کامل از delegate و event و interface و Property و attribute ها

5 - XML Documentation

6 – checked / unchecked keywords

و ...

در C# برای انجام تمام کارها از کلاس های .NET استفاده میشه ، در ضمن در C# چیزی به نام فایلهای Header و #include و از این حرفا نداریم. در واقع C# خیلی زیباتر از C++ طراحی شده ، چون به هر حال در طراحی C# از زبانهایی مثل C++ و JAVA و Delphi درس گرفته شده و اشتباهات اون زبانها در C# تکرار
نشده ؛ به عنوان مثال در C++ به تعداد انگشتان دست ، نوع دادۀ String داریم. یا Multiple Inheritance که خیلی دردسر سازه ، یا مثلا در JAVA ، enum ها و Operator Overloading و Pointer و Property ها که همگی جزو ضروریات محسوب میشن ، وجود ندارن. البته کسانی که میخوان کار سنگین یا سطح پایین در .NET انجام بدن ، معمولا همه قسمتهایی رو که امکانش هست با C# می نویسن و بقیه رو با C++ ؛ و در C# از کلاسهای نوشته شده در C++ استفاده می کنن . (Wrapper Classes ) در کل C# ، سطح بالاتر(High Level ) از C++ است ؛ در C++ حتی میتونید مستقیما از کد اسمبلی استفاده کنید.

در ضمن C# اولین زبان Component Oriented در خانوادۀ C محسوب میشه.

خیلی تفاوتها و شباهتهای دیگری هم هست که در صورت پرداختن به اونا بحث خیلی تخصصی میشه ، فقط در یه جمله بگم : بزرگترین شباهت این دو زبان اینه که هر دو جزو خانوادۀ C هستن . و بزرگترین تفاوت اینکه : C# یک زبان type-safe هست (بر خلاف C++ ) و فقط باهاش میشه برنامه های تحت .NET نوشت.

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

۰۵ شهریور ۹۳ ، ۱۸:۲۱ ۲ نظر موافقین ۰ مخالفین ۰
مهدی عزیزی

DevComponents DotNetBar 11.7.0.0 ساخت برنامه حرفه ای در دات نت

DevComponents DotNetBar 11.7.0.0 شامل تمامی چیزهایی میباشد که شما برای ساخت یک برنامه ی حرفه ای در دات نت به آنها نیاز خواهید داشت، DotNetBar برای شما استایل و کنترل های با تم آفیس 2010 و آفیس 2007 و همچنین تقویم/برنامه ریزی زمانی(Scheduling) و پنجره های با خاصیت Dockable و TreeView پیشرفته و Grid و بسیاری از کنترل های دیگر را فراهم آورده است.

۰۴ مرداد ۹۳ ، ۰۱:۲۵ ۰ نظر موافقین ۰ مخالفین ۰
مهدی عزیزی