بایگانی

Archive for آوریل 2010

نحوه نامگذاری پارتیشن ها در لینوکس – شماره های sda یا hda

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

یکی از تمرین هایی که استاد (استاد ثارالله استادزاده) داده بود این بود که چگونه میتوان فهمید شماره هایی که به دنبال sda میاد برای کدام پارتیشن است.جواب:

در حالت کلی هاردهای SATA(SCSI) با ‘s’ و هاردهای IDE با ‘h’ مشخص میشوند.یعنی اگر یک هارد SCSI داشته باشیم صورت کلی نمایش به صورت زیر خواهد بود:

/dev/sd[a-z][a-z][1-15]

تا اینجا ‘sd’ مشخص شد اما هاردها به ترتیب شماره با a, b, …, z مشخص میشوند.یعنی هارد اول با ‘a’، هارد دوم با ‘b’ و ….اما شماره های بعد از آن بدین صورت است که شماره های 1 تا 4 (sda1 .. sda4) برای پارتیشن های Primary  و Extended و شماره های 5 (sda5 …) برای پارتیشن های Logical رزرو شده اند.البته چیزی که در لینوکس باید فراموش کرد این است که چیزی تحت عنوان پارتیشن نداریم و همه تحت دایرکتوری های /dev , /mnt و … مشخص میشوند.پارتیشن ها نیز بدین صورت در لینوکس  mount میشوند.

اما چگونه بفهمیم کدام شماره برای کدارم پارتیشن است: اگر شما دستور زیر را در terminal اجرا کنید لیستی از پارتیشن ها که از کدام سیکل تا کدام سیکل، حجم آنها و … و همچنین هاردهای شناخته شده(اگر flash disk نیز باشد به عنوان یک هارد شناخته میشود) برای شما نمایان خواهد شد.

fdisk –l

اما بازهم این جواب من رو راضی نکرد.ممکن است خیلی ها نتوانند این اطلاعات را تفکیک کنند و ندانند کدام شماره برای کدام پارتیشن است.من به ویندوز روی آوردم و از اونجا ترتیب پارتیشن ها رو پیدا کردم.شما میتوانید با استفاده از اجرای دستور diskpart این کار را انجام دهید.در cmd این دستور را اجرا کنید.با استفاده از دستور select disk 0 هارد active را انتخاب کنید و پس از آن با استفاده از دستور detail disk میتوانید اطلاعات لازم به خودتون رو مشاهده کنید.

ترتیب اجرای دستورات:

  • Run -> cmd
  • Diskpart
  • Select disk 0
  • Detail disk

نتیجه:

در این صورت شماره پارتیشن ها برای شما مشخص خواهد شد.

موفق باشید/

کدنویسی Fluent در Net.

آوریل 16, 2010 ۱ دیدگاه

در این مقاله قصد دارم به معرفی تکنیکی بپردازم که به منظور خواناتر کردن کدنویسی به کار گرفته می شود.بهترین تعداد آرگومانهای یک تابع صفر(niladic) است.بعد از آن یک(monadic) و بعد از آن دو(dyadic).تعداد سه آرگومان(triadic) تا جائیکه ممکن است نباید استفاده شود.اما بیش از سه آرگومان(polyadic) نیاز به اصلاح دارد و تحت هر شرایطی نباید استفاده شود.

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

مفهوم Fluent در مهندسی نرم افزار به این دلیل ابداع شد که بتوان واسط کاربری را تهیه کرد که از لحاظ خوانایی بیشترین کیفیت را داشته باشد(Fluent Interface).چیزی که در .Net 3.0 به بعد به وفور به خصوص در LINQ دیده می شود.

فرض کنید کلاسی دارید که اطلاعات شخصی یک نفر را به طور کامل به شما میدهد(مثال رو زیاد پیچیده نمی کنم).به طور معمول از این طریق استفاده می شود(البته بدون تعریف Property)

    1 public class Person

    2 {

    3     string fName;

    4     string lName;

    5     string nName;

    6 

    7     public Person(string firstName,

    8         string nickName, string lastName)

    9     {

   10         this.fName = firstName;

   11         this.nName = nickName;

   12         this.lName = lastName;

   13     }

   14 

   15     public string FullName()

   16     {

   17         StringBuilder sb = new StringBuilder();

   18         sb.Append((fName == string.Empty) ? "" : fName);

   19         sb.Append((lName == string.Empty) ? "" : lName);

   20         sb.Append((nName == string.Empty)

   21             ? "" : " (" + nName + ")");

   22 

   23         return sb.ToString();

   24     }

   25 }

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

    1 Person p = new Person("Sajjad", "sajjadlove", "Aghapour");

    2 MessageBox.Show(p.FullName());

شاید به خودتان بگوئید که ظاهرا مشکلی در این نحوه کدنویسی وجود ندارد، اما اگر پارامترهای شما بیش از سه باشد به راحتی در ایجاد object دچار سردرگمی خواهید شد.راه حل چیست؟به مثال زیر دقت کنید:

اگر کلاس Person را به صورت زیر پیاده سازی کنیم:

    1 public class PersonBuilder

    2 {

    3     string fName;

    4     string lName;

    5     string nName;

    6 

    7     public PersonBuilder WithFirstName(string firstName)

    8     {

    9         this.fName = firstName;

   10         return this;

   11     }

   12 

   13     public PersonBuilder WithLastName(string lastName)

   14     {

   15         this.lName = lastName;

   16         return this;

   17     }

   18 

   19     public PersonBuilder WithNickName(string nickName)

   20     {

   21         this.nName = nickName;

   22         return this;

   23     }

   24 

   25     public string FullName()

   26     {

   27         StringBuilder sb = new StringBuilder();

   28         sb.Append((fName == string.Empty) ? "" : fName);

   29         sb.Append((lName == string.Empty) ? "" : lName);

   30         sb.Append((nName == string.Empty)

   31             ? "" : " (" + nName + ")");

   32 

   33         return sb.ToString();

   34     }

   35 }

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

    1 PersonBuilder pb = new PersonBuilder();

    2 string name = pb.WithFirstName("Sajjad")

    3     .WithNickName("sajjadlove")

    4     .WithLastName("Aghapour")

    5     .FullName();

    6 

    7 MessageBox.Show(name);

تا به حال به این نحوه پیاده سازی در LINQ زیاد برخورده اید زیرا این نحوه پیاده سازی در ایجاد Query و اجرای آنها بسیار مناسب و کاربردی است.

دسته‌ها:C#.Net برچسب‌ها: , , ,

Visual studio 2010

سلام دوستان
چند وقتی نبودم و چند وقتی هم نخواهم بود.گفتم لااقل تا دیر نشده این مطلب رو بگذارم….
همون طور که همه شما هم شاید شنیده باشید دو روز پیش نسخه نهایی VS2010 که خیلی ها منتظر ظهور اون بودند معرفی و به بازار عرضه شد.اگر به سایت مایروسافت مراجعه کنید رنگ ارغوانی رو مشاهده خواهید کرد(به قول ما ایرانی ها رنگ ساله واسه مایکروسافت).

برای دانلود VS2010 میتونید به لینک زیر برید:
http://www.microsoft.com/visualstudio/en-us/download

برای دانلود نسخه Express اون که نسخه ای رایگان از این نسخه می باشد میتونید به لینک زیر:

http://www.microsoft.com/express/downloads

اینطوری که من شنیدم قیمت اون چیزی حدود 12000 دلار هستش که فکر کنم اگه از همین الان روزی 1000 تومان بذاریم کنار 32 سال دیگه بتونیم یه نسخه Original ازش بخریم D:

قبل از نهایی شدن این نسخه شاید مطالب زیادی رو در اینترنت میدیدم.ولی از کار با اونها و گذاشتن مطالب تو وبلاگم خودداری میکردم.ولی از این به بعد مطالبی که جالب باشند رو خواهم گذاشت(البته بعد از switch کردن به Net 4.0. )

موفق باشید/

دسته‌ها:Visual Studio برچسب‌ها: , , ,