NET Expert.

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

NET Expert.

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

ارسال ایمیل توسط PowerShell

کد زیر را ابتدا ویرایش کرده و نام کاربری و رمز عبور خود را در آن وارد نمایید.(در اینجا از سیستم Gmail برای ارسال ایمیل استفاده شده است که البته با تنظیمات SMTP شما قادر به استفاده از هر Mail Server دلخواه خواهید بود.)
- متن ایمیل خود را در بخش $body قرار دهید.
- در نهایت متن خود را کپی کرده و با کلیک راست بر روی PowerShell متن کپی شده در انجا قرار میگیرد.
- حالا کلید Enter را فشار دهید.


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


$EmailFrom = "test@gmail.com"

 

$EmailTo = "test@gmail.com"

 

$Subject = "The subject of your email"

 

$Body = "What do you want your email to say"

 

$SMTPServer = "smtp.gmail.com"

 

$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 587)

 

$SMTPClient.EnableSsl = $true

 

$SMTPClient.Credentials = New-Object System.Net.NetworkCredential("test", "123456");

 

$SMTPClient.Send($EmailFrom, $EmailTo, $Subject, $Body)

معماری های MVC, MVVM, MVP, MOVE

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

با در نظر گرفتن این روش‌ها تا جای ممکن ریسک طراحی پایین آمده و از طرفی در آینده درک ساختار و … راحت‌تر است. البته در نظر بگیرید که بر روی این معماری ها ساعت‌ها توسط مهندسان نرم‌افزار فکر شده و در نتیجه performance بهتری خواهند داشت.

طبیعتاً یک پروژه scalable نیاز زیادی به طراحی دارد. وگرنه در اواسط پروژه نقاط ضعف طراحی چنان دیده می‌شود که چند بار اجرا پروژه را فرسایشی می‌کند و در نهایت به مقصد رسیده نمی شود.

از طرفی ساخت یک Scalabel application نیاز مند مجموعه‌ای از decouple هاست تا ساختار تکه شده‌ای داشته باشید.

با استفاده از طراحی های مناسب کد شما بیشتر re-usable خواهد بود و از طرفی به علت decouple شدن و تکه‌تکه بود قسمت‌های مختلف امکان test شدن و mock کردن دارند. با به مشکل خوردن یک قسمت بقیه قسمت‌ها کار خود را به خوبی انجام می دهند. در زمان طراحی هم کار به صورت کپسوله شده به دیگران داده می شود.


ادامه مطلب ...

Extension Methods

Extension methods شما را قادر می‌سازند تا به type‌های موجود بدون اینکه کلاس جدیدی ایجاد کنید که از آن‌ها به ارث رفته باشند، متد‌های جدیدی اضافه نمائید و بیشترین استفاده آن‌ها در  System.Collections.IEnumerable است.

به طور مثال این امکان وجود ندارد که بتوان بر روی  IEnumerable‌ها از دستور Foreach استفاده کرد.

برای نمونه من برای اینکه foreach داشته باشم، آن‌را به لیست تبدیل می‌کردم و سپس از امکان foreach  بهره‌مند می‌شدم که شاید کار درستی نباشد. 

اما با Extension Method افزودن متد foreach به IEnumerable به نحو زیر میسر است:

public static void ForEach<T>(this IEnumerable<T> collection, 
Action<T> action)
{
   foreach (var item in collection)
{
    action(item);
}
}


• لیست کاملی از Extension Method های ایجاد شده در دات نت فریم ورک