ورود

نسخه کامل مشاهده نسخه کامل : حداقل مهارت های یک برنامه نویس دات نت!



MicrosoftH
08-04-2011, 10:02
مطلب جالب به نظر اومد گفتم بزارم دوستان استفاده ای بکنن منبع:ittop.ir
1: دید شیء گرا داشته باشد و با قوانین Objected Oriented Programming به خوبی آشنا باشد. دات نت به صورت پیش فرض برنامه نویس را درگیر مباحث شیء گرایی می کند. به همین دلیل اگر کسی با شیء گرایی آشنایی نداشته باشد نمی تواند برنامه های خوبی بنویسد یا در دات نت پیشرفت کند. یک برنامه نویس دات نت باید بتواند برنامه خود را توسط کلاس ها و با استفاده از مفاهیم کپسوله سازی، ارث بری، چندریختی و اینترفیس ها بنویسد تا توسعه و تغییر آن در دراز مدت ساده و کم هزینه باشد. بر همین اساس او باید :

* با namespace و scope کلاس ها آشنایی داشته باشد
* تفاوت یک کلاس Partial و یک کلاس معمولی را بداند
* مفهوم کلاس های abstract را درک کند و توانایی نوشتن interface را داشته باشد
* بتواند با استفاده از کلمات کلیدی private، public، protected، internal و internal protected دسترسی به کلاس ها را کنترل کند
* فرق کلاس و متد استاتیک و غیر استاتیک را بداند
* با مفاهیم overload و override در تعریف متدها آشنایی داشته باشد

2 : با ویژگی های یکی از زبان های برنامه نویسی دات نت به خوبی آشنا باشد. دانستن ویژگی های یک زبان برنامه نویسی هم در تسریع کدنویسی و هم در استاندارد کد نوشتن به یک برنامه نویس کمک زیادی می کند. بر همین اساس او باید :

* با تمام data typeهای یک زبان آشنا باشد و به موقع از آن ها استفاده کند
* بتواند مفاهیم شیء گرایی را با استفاده از ویژگی های زبان پیاده سازی کند
* با مفاهیم Boxing و Unboxing و Type Casting آشنا باشد
* با روش های مستند سازی کد در آن زبان آشنا باشد



3 : با معماری دات نت فریم ورک آشنایی داشته باشد. یک برنامه نویس دات نت هر چقدر هم که خوب کد بنویسد، اگر نداند برنامه اش چطور و توسط چه عامل هایی اجرا و کنترل می شود یک جای کارش می لنگد! باید بداند دات نت فریم ورک شامل یک کتابخانه کلاس های پایه است که خود آن شامل رابط کاربری، کلاس های دسترسی به داده و اتصال به دیتابیس، الگوریتم های کدگذاری، ارتباطات شبکه و وب اپلیکیشن است که استفاده به جا از این کلاس ها، سرعت توسعه یک پروژه را افزایش می دهند. باید بداند برنامه های نوشته شده با دات نت در یک محیط زمان اجرا به نام CLR یا Common Language Runtime اجرا و مدیرت می شوند. باید بداند CLR وظیفه مدیریت حافظه و هندل کردن استثنا ها را نیز بر عهده دارد. بر همین اساس او باید :

* مفهوم اسمبلی (Assembly) در دات نت را بداند
* با ساختار فایل های اجرایی دات نت آشنا باشد
* با کلاس های پایه دات نت آشنایی لازم را داشته باشد
* با Garbage Collector و نحوه مدیریت حافظه در دات نت آشنا باشد
* با قابلیت Reflection در دات نت آشنایی داشته باشد
* بداند GAC چیست و چه کاری انجام می دهد

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

* با پنجره های مختلف ویژوال استادیو و مفاهیم آن ها آشنایی کامل داشته باشد
* بتواند یک پروژه موجود را کامپایل و اجرا کند
* بتواند فایل های جدیدی را به پروژه اضافه کند
* بتواند از Toolbox ویژوال استادیو کنترل های مورد نیاز خود را پیدا کند و کنترل های جدیدی را به آن اضافه کند
* بتواند با ادیتور کد ویژوال استادیو کار کند و کدهای مورد نظر خود را پیدا کند
* بتواند یک برنامه را با استفاده از ابزارهای ویژوال استادیو Debug کند (منوی Debug)
* تفاوت میان اجرا در حالت Debug و اجرا در حالت Release را بداند
* تفاوت ساختار پروژه های Windows Application، Console Application، Class Library، ASP.NET Web Application و ASP.NET Web Service Application را بداند
* تفاوت Solution و Project را بداند و بتواند چند پروژه را در یک Solution مدیرت کند

توسعه دهندگان برنامه های مبتنی بر دیتابیس باید :

* بر روی مفاهیم و نحوه پیاده سازی دیتابیس و رابطه های میان جدول های اطلاعاتی و زبان SQL تسلط داشته باشد
* با معماری ADO.NET و کلاس های پایه آن آشنا باشد
* بداند ORM چیست و چه مشکلاتی را حل می کند
* حداقل با یکی از ORMهای دات نت مثل LINQ to SQL، NHibernate یا Entity Framework آشنا باشد
* با DataSet و نحوه استفاده ازکنترل های مربوط به دیتابیس مثل DataGrid آشنا باشد
* با ساختار فایل های XML آشنایی داشته باشد و بتواند یک فایل XML را پردازش کند

توسعه دهندگان برنامه های مبتنی بر وب (ASP.NET) باید :

* تفاوت های عمومی یک برنامه دسکتاپ و یک برنامه تحت وب را بداند
* بداند PostBack چیست و چه کاربردهایی دارد
* بداند متدهای استاندارد POST و GET در ASP.NET چگونه پیاده سازی شده اند
* با ViewState آشنایی داشته باشد، وظیفه آن را بداند و بداند چه مواقعی کاربرد دارند
* با ساختار فایل web.config آشنایی لازم را داشته باشد
* تفاوت میان کنترل های تحت سرور و کنترل های HTML و تحت کلاینت را بداند
* با زبان جاوا اسکریپت آشنایی لازم را داشته باشد
* Lifetime یک برنامه ASP.NET را درک کند
* با کوکی ها آشنا باشد و بتواند از آن ها استفاده کند
* بتواند با استفاده از Session یک سیستم لاگین طراحی کند
* بتواند تفاوت یک وب سرویس و یک وب اپلیکیشن را توضیح دهد

این مطلب فقط نظر من در مورد حداقل دانسته های یک برنامه نویس دات نت است. شما ممکن است نظر دیگری داشته باشید و یا بخواهید آیتم هایی را به این لیست اضافه کنید. خوشحال می شوم نظر شما را هم بدانم. من تمام سعی خودم رو کردم تا مطلبم با مطلب Scott Hanselman فرق کند، این مطلب را من از نظر خودم نوشتم و هدفم با هدف آقای Hanselman کاملاً متفاوت است.

MosaferJade
08-04-2011, 13:47
مطلب بسیار جالبی بود
کسی پیدا میشه اینا رو آموزش بده ؟
خیلی لطف کردید

MicrosoftH
08-04-2011, 14:00
خودم در نظر دارم تو همین P30World شروع به کار کنیم ولی متاسفانه کنکور دست بر دار نیست باید و از یک طرف دانشگاهم دیگه چون ترم آخرم پروژه و .......... خلاصه گیر هستم ولی دارم کم کم مقاله می نویسم ببینم چی میشه

MosaferJade
08-04-2011, 14:05
امیدوارم مشکلت حل بشه و بتونی مشکل ما را هم حل کنی
مرسی

MicrosoftH
09-04-2011, 09:47
انشاءالله برگردم P30world مقالاتی رو نوشتم میزارم

aliaghaaaaa
09-04-2011, 11:25
سلام دوست عزیز.
برا چه مقطعی می خوای کنکور بدی؟
امیدوارم موفق باشی.
راستی حالا که پیغام های خصوصی رو غیر فعال کردی، لا اقل off های آی دی رو یه چک بکنی ضرر نداره:31:.

L u K e !
09-04-2011, 12:10
من .net دیگه چی داره که اینا حداقلش باشه
Wpf رو فکر کنم جا انتداختین به نظر من جالب ترین محبث در .net ه

Guts
09-04-2011, 21:08
من .net دیگه چی داره که اینا حداقلش باشه
Wpf رو فکر کنم جا انتداختین به نظر من جالب ترین محبث در .net ه
دقیقاً مطالبی که دوستمون گفتن Foundation هست و مفاهیم پایه ای که هر برنامه نویس Net. باید بلد باشه، وگرنه مفاهیم و تکنولوژی‌ها خیلی زیاد و گسترده هستن.

ompc
12-04-2011, 18:07
سلام



* تفاوت یک کلاس Partial و یک کلاس معمولی را بداند


شما کلاس ها را ایجاد می کنید با نام های مختلف.
اگه یه کلاسی اونقدر بزرگ باشه که شما به تنهایی نتونین اونو بسازین باید بین خودتون و بقیه قسمت کنید
مسلما هرکسی می تونه برای کلاس خودش یه نام منحصر به فرد بذاره
کلاس های Partial یا کلاس های بخش بخش شده در اینجا کمک زیادی به برنامه نویس می کنه به اینصورت که شما می تونین هر چندتا کلاس که خواستین با نامهای یکسان داشته باشید به این صورت که کلمه کلیدی Partial را قبل از کلمه class گذاشته و ...

public partial class class1
{
// تعریف همزمان دو کلاس در یک مکان با نام های مشابه به وسیله کلمه کلیدی partial

}
public partial class class1
{
// تعریف همزمان دو کلاس در یک مکان با نام های مشابه به وسیله کلمه کلیدی partial

}

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

امیدوارم حق مطلب رو ادا کرده باشم.


بدرود

ompc
13-04-2011, 22:11
* مفهوم کلاس های abstract را درک کند و توانایی نوشتن interface را داشته باشد


شما کلاس های معمولی رو می سازین و پیاده سازی می کنین دقیقا مثل مورد پایین
ساخت کلاس :
public class testclass
{
//متد ها و خاصیت ها
}
پیاده سازی:

testclass tst_class = new testclass();

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

Public abstract class classname {
Public virtual void Add (){
مجموعه دستورات
}
}
و حالا برای مشتق گیری:

Public class moshtagh_class : classname {
Public override void Add(){
Base.Add();
}
}
توجه به اینکه کلاس abstract را پیاده سازی نکردیم بلکه مشتق گرفتیم

MicrosoftH
15-04-2011, 09:27
كارشناسي باشه ارشد باشه هرچي باشه كنكوره زياد مهم نيست

ompc
15-04-2011, 11:32
كارشناسي باشه ارشد باشه هرچي باشه كنكوره زياد مهم نيست


سلام

پس یه لطفی بکن یکم تایپتو سریع کن و پی دی افتو بده دست ملت(ما که خیلی منتظریم)

مردم بسکه این صفحه رو باز کردم و هیچی به هیچی

MicrosoftH
15-05-2011, 08:22
چشم دوست عزیز متاسفانه این کنکور من رو کشته

Mr Mohabat
16-05-2011, 17:45
ما همچنان منتظریم ...
شاید این جمعه بیاید شاید ... :31:

MicrosoftH
17-05-2011, 08:30
namespace یه راهی برای سازماندهی کردن کلاس ها یا همون جدا سازی منطقی کلاس مثلا Using
فضانام يک طرح نامگذاری منطقی برای گروه بندی کلاس های مرتبط است اين طرح مانع از آن می شود تا کلاس هايی که برای متدها و خصوصيات از يک شناسه يکسان استفاده می کنند تداخل داشته باشند.
System.Data.SqlClient
اگراین رو به داخل پروژه import کنید می تونید از دستورات sqlconnection و ... استفاده کنید پس تمامی کدهای مربوط به SQL رو دراین فضای نامی میتونید استفاده کنید فرض کنید کتاب های دارید که طبقه بندی شده است وقتی کتاب برنامه نویسی میخواید به بخش کامپیوتر مراجعه میکنید به همین راحتی بفرض مثال
System.Data: امکان دسترسی به کلاس ها و رابطهايی را فراهم می کند که معماری ADO.NET را برای دسترسی به داده های عمومی تشکيل می دهند.

System.Drawing: دربرگيرنده کلاس ها و رابطهايی است که عملکرد گرافيکی اوليه را تامين می کنند. فضانام System.Drawing نيز از طريق فضانام System.Drawing.Drawing2D و System.Drawing.Imaging عملکرد پيشرفته تری فراهم می کند.

System.Web: کلاس ها و رابطهايی تامين می کند که ارتباط مرورگر/سرويس دهنده را امکان پذير می کنند. اين فضانام دربرگيرنده کلاس [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] (فراهم کننده اطلاعات وسيعی درباره درخواست HTTP جاری)، کلاس [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] (فراهم آورنده امکان دسترسی به فرآيندها و يوتيليتی های سمت سرويس

دهنده) است.

System.Web.SessionState: فراهم کننده کلاس ها و متدهايی برای مديريت وضعيت جلسات کاری می باشد.

System.Web.UI: فراهم کننده کلاس ها و رابطهايی برای رابط واسط کاربر برنامه کاربردی ASP.NET است که موجب می شوند برنامه کاربردی با سطوح مختلف صفحه، ارتباط برقرار کند. کلاس اصلی اين فضانام، کلاس Page می باشد که دربرگيرنده همه خصوصيتها، متدها، و سازنده های صفحه است. اشياء اصلی Active Server Page زير خصوصيتهايی در کلاس Page هستند: Application ،Response ،Request ،Server و Session.

System.Web.UI.HTMLControls: کلاس هايی برای عناصر HTML استاندارد، شامل فرم ها، کنترل های ورودی، آنکور، جداول، قسمتهای متنی، و غيره فراهم می کند. اين کنترلها همانند تگهای عادی HTML هستند با اين تفاوت که داری دو صفت runat="server" و id="controlname" می باشند.

System.Web.UI.HTMLControls: برای کنترلهای سرويس دهنده ای که شبيه کنترلهای HTML هستند ولی انعطاف پذيری بيشتر و عملکرد پيچيده تری دارند کلاس هايی را تامين می کند.

برخی فضانام های مهم و پرکاربرد ديگر به شرح زير می باشند.

System.IO: دربرگيرنده رابطها و کلاس هايی است که امکان خواندن و نوشتن همگام و غيرهمگام فايل ها و جريانهای داده را فراهم می کنند.

System.Data.OleDb: امکان دسترسی به کلاس ها و رابطهای مخصوص دسترسی به يک منبع داده از طريق ADO را فراهم می کند.

System.Data.SqlClient: امکان دسترسی به کلاس ها و رابطهای مخصوص دسترسی به داده های خاص Microsoft SQL Server از طريق ADO را فراهم می کند.

System.Web.Security: امکان دسترسی به کلاسها و رابطهای مخصوص امنيت برنامه کاربردی ASP.NET را فراهم می کند. دستيابی به رمزنگاری، مجوزها، و تنظيمات خط مشی برنامه کاربردی در اين فضانام قرار می گيرند.

System.XML: امکان دسترسی به کلاسها و رابطهای مخصوص پردازش اسناد XML را فراهم می کند.

فضانام Microsoft
علاوه بر فضانام System که در چارچوب NET. يافت می شود، مايکروسافت چند فضانام اضافه کرده است که برای زبان برنامه سازی ای که می خواهيد از آن در برنامه کاربردی خود استفاده کنيد عملکرد لازم را تامين می کنند. ممکن است شما بصورت مستقيم با اين فضانام کاری نداشته باشيد.

Microsoft.VisualBasic: اين فضانام محتوی CLR يا زمان اجرای Visual Basic.NET است. از اين زمان اجرا با زبان Visual Basic.NET استفاده می شود. اين فضانام همچنين دربرگيرنده کلاس هايی است که از کامپايل و توليد کد با استفاده از زبان ويژوال بيسيک پشتيبانی می کنند.

Microsoft.CSharp: اين فضای نام دربرگيرنده کلاس هايی است که از کامپايل و توليد کد با استفاده از زبان #C پشتيبانی می کنند.

Microsoft.JScript: اين فضای نام دربرگيرنده کلاس هايی است که از کامپايل و توليد کد با استفاده از زبان JScript پشتيبانی می کنند.

Microsoft.Win32: کلاسها و رابطهای مورد نياز برای کار با کليدها و hiveهای رجيستری را تامين می کند.

MicrosoftH
17-05-2011, 08:46
بتواند با استفاده از کلمات کلیدی private، public، protected، internal و internal protected دسترسی به کلاس ها را کنترل
کند

لغت کلیدی public ,private بیانگر نحوه امکان دسترسی به یک متغیر میباشد وقتی که نوعی متغیر Public باشد بدان معنی است که این متغیر در هرجایی از برنامه قابل دسترسی است ولی اگر از نوع private باشد بدان معنی است که متغیرمذکور فقط در کلاس خود قابل دسترسی میباشد
***نکته.بهتر است که متغیر های خصوصی در یک لیست و متغیرهای عمومی در لیست دیگر باشد
***نکته.تمامی متغیرهای یک کلاس را بصورت خصوصی تعریف کنید و توسط توابع عمومی سعی در دسترسی به مقادیر آنها و تغییر مقادیر آنها داشته باشید با این عمل داده های یک شیء در وضعیت پایدار تری قرار خواهند گرفت.
***نکته.اگر در خارج از کلاس نیاز به دسترسی به متغیر نیست آنرا بصورت خصوصی تعریف کنید
اعضای محافظت شده (Protected): اعضای خصوصی توسط اعضای کلاس پایه قابل دسترسی هستند متغیرهای محافظت شده،سطح واسطی میان متغیرهای عمومی و متغیرهای خصوصی ست یک متغیر محافظت شده فقط توسط کلاس پایه یا کلاس مشتق شده از کلاس پایه قابل دسترسی میباشد
نوع دیگر متغیرها داخلی(Internal) میباشداعضای internal یک کلاس پایه فقط توسط اشیایی قابل استفاده میباشند که از همان گروه باشند
البته دوستان شرمنده چون واقعا این ترم دستم بد جوری بنده سعی میکنم مثال هایی رو هم بیارم و توضیح بدم