ably ably برای هدایت شدن به سایت جدید اینجا کلیک کنید

آموزش برنامه نویسی

آموزش برنامه نویسی وب، اندروید، ویندوز , اسکیوال و...
Tell: 0912 097 5516
| Email: Hello@EduOnline.ir

۱۸ مطلب با کلمه‌ی کلیدی «آموزش سی شارپ» ثبت شده است

split کردن عناصر با linq

بسم الله الرحمن الرحیم

آموزش برنامه نویسی

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

 

 string[] websites = {"Ably.ir,Google.com,Yahoo.com,Linkedin.com"};

 

این مشکل در لیست های json بسیار اتفاق می افتد که ما نیاز داریم عناصر را به صورت جداگانه بدست آوریم. برای این مشکل می توانید با یک دستور LiNQ ساده اطلاعات خود را بر اساس کاراکتر جداکننده به صورت عناصر جداگانه بدست آورید. برای اینکار کافی است از کوئری زیر استفاده کنید.

websites.SelectMany(n => n.Split(',')).ToList();

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

آموزش wmi (بخش دوم)

بسم الله الرحمن الرحیم 

آموزش برنامه نویسی

دوره آموزشی WMI (بخش دوم)

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

آموزش wmi

برای دسترسی به بانک اطلاعاتی  WMI روش های بسیار زیادی وجود دارد، دو روش را ابتدا بررسی خواهیم کرد و سپس بر اساس یکی از ساده ترین روش ها برنامه ای را در این خصوص طراحی و پیاده سازی خواهیم نمود.

WMI مجموعه از اطلاعاتی است که توسط (WBEM (Web-Based Enterprise Management  و  (CIM (Common Information Model به صورت استاندارد برای  (DMTF (Distributed Management Task Force توسعه داده شده است. در مورد هر یک از بخش های CIM و WBEM و DMTF می توانید اطلاعات بیشتر را از طریق MSDN مایکروسافت مطالعه کنید.

 

آموزش WBEM Test

WMI از نسخه 2000 Windows به بعد بر روی Windows موجود است. از همین رو شما می توانید توسط ابزاری با نام WBEM Test به اطلاعات این پایگاه داده دسترسی داشته باشید.

برای دسترسی به برنامه WBEM Test کافی است از طریق کلیدهای ترکیبی window + R ( منظور از Window کلید پنجره بر روی کیبورد می باشد) برنامه RUN را باز کنید و سپس دستور wbemtest را درون آن اجرا کنید.

 

 

 

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

برای شروع بر روی گزینه Connect کلیک کنید، و مطمئن شوید که namespace اصلی این کتابخانه، یعنی “root\cimv2” انتخاب شده است.

 

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

آموزش wmi

بسم الله الرحمن الرحیم

 

آموزش wmi

آموزش برنامه نویسی

دوره آموزشی WMI (بخش اول)

در صنایع، کارخانه ها و مجموعه های بزرگ یکی از مباحثی که همیشه مورد بررسی قرار می گیرد مبحث مانیتورینگ تجهیزات می باشد. این مبحث در همه ی حوزه های صنایع کوچک و بزرگ مورد توجه است.

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

آموزش پروتکل snmp

در این مورد معروف ترین پروتکل، پروتکل SNMP می باشد. همانطور که می دانید پروتکل مجموعه از قوانین و اطلاعاتی است که به شما اجازه می دهد بر اساس یک استاندارد خاص فعالیت های خود را انجام دهید. پروتکل SNMP مخفف عبارت Simple Network Management Protocol می باشد، در این پروتکل شما بر استفاده از یک Application اطلاعات سخت افزاری و نرم افزاری تجهیزات درون شبکه را جمع آوری و ذخیره می کنید.

 

معرفی QT

در مبحث جمع آوری اطلاعات و مانیتورینگ معمولا از زبان های سطح پایین مانند C , C++ استفاده می کنند، زیرا شما می توانید با توجه به دسترسی این زبان ها به اطلاعات پایه هر سیستم، اطلاعات مورد نیاز خود را دریافت کنید. با توجه به این مسئله که نرم افزارهای امروزی به صورت گرافیکی باید طراحی شوند، از فریم ورک هایی برای رفع این مشکل در زبان های سطح پایین استفاده می شوند. به طور مثال محبوبترین فریم ورکی که برای طراحی نرم افزارهای SNMP مورد استفاده قرار می گیرد، فریم ورک QT می باشد.

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

آموزش برنامه نویسی

بسم الله الرحمن الرحیم

آموزش خطایابی در visual studio

آموزش برنامه نویسی

لیست تمامی آموزش های این دوره

بخش دوم

یکی از بخش هایی که در طراحی نرم افزار زمان زیادی را به خود اختصاص می دهد بخش خطایابی و یا Debug کردن می باشد. معمولا در زمان خطایابی در بین حلقه های تکرار شما زمان زیادی را صرف بررسی تک تک مقادیر و عناصر درون حلقه می کنید تا حلقه ی تکرار به عنصر مورد نظر شما برسد.

مثال، کد ما به صورت زیر می باشد:

int i = 0;
while (i<50)
{
    button_Debug.Text = (i++).ToString();
}

 

در کد بالا ما انتظار داریم، متن Button ما در آخرین بار 50 باشد اما متاسفانه 49 است، طبیعتا اگر کد خود را به صورت زیر تغییر دهیم، این مشکل حل خواهد شد. اما تصور کنید علت این خطا را نمی دانیم معمولا در چنین شرایطی ما بر روی خط مورد نظر خود Break Point قرار می دهیم، ما نیز این کار را انجام می دهیم. سپس برنامه را اجرا می کنیم تا آن را تست کنیم.

 

آموزش برنامه نویسی

 

طبیعتا در هنگام اجرای برنامه باید 48 بار کلید F5 را برای continue شدن فرایند Debug بزنیم. تصور کنید این حلقه 1000 مرتبه قرار بود تکرار شود و شما در آخرین مرتبه ی تکرار نیاز داشتید کد خود را بررسی کنید.

مطمئنا همه ی ما در کد های واقعی با چنین شرایطی روبرو شده ایم و می شویم. راه حل چیست؟

 آموزش visual studio 2015

یکی از ویژگی های Visual Studio امکانات مربوط به Debug کردن برنامه ها و Break Point می باشد این امکانات Visual Studio در صورتی که به صورت صحیح مورد استفاده قرار گیرد، بسیار کمک کننده خواهد بود. در اینجا می خواهیم امکانات مربوط به Break Point را در Visual Studio به شما معرفی کنیم.

بر روی خطی که Break point ایجاد کرده اید راست کلیک کنید.

 

 آموزش برنامه نویسی

 

زیر منوهای Break Point را با هم بررسی خواهیم کرد.

مورد اول و دوم که مشخصا برای حذف و غیر فعال کردن Break point به کار می رود.

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

آموزش windows service

بسم الله الرحمن الرحیم

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

یکی از ساده ترین روش های ممکن برای انجام این کار قراردادن نرم افزار در بخش Start up می باشد. اما ممکن است شما بخواهید نرم افزار خود را به عنوان یک برنامه پس زمینه، بدون اینکه کاربر در اجرای آن دخیل باشد اجرا کنید و یا اینکه مانند بسیاری از Processهای ویندوز، پس از اجرای ویندوز برنامه شما اجرا شود. معمولا برای انجام این کار از روشی استفاده می کنند که بر اساس آن برنامه شما در بخش Services ویندوز اضافه می شود.

 

این روش طبیعتا روش حرفه ای تر نسبت به روش قراردادن نرم افزار در بخش Start up می باشد. معمولا برنامه هایی که نیاز دارند به صورت Lifetime و همیشگی در حال اجرا باشند به صورت یک Service به ویندوز اضافه می شوند. برای ساخت پروژه هایی که قرار است به عنوان Service در Windows تعریف شوند، می توانید از طریق Microsoft Visual Studio نوع Windows Service Application را انتخاب کنید.

آموزش ویندوز سرویس در سی شارپ

در این آموزش قصد داریم شما را با روش طراحی یک پروژه به صورتWindows Service Application  آشنا کنیم. برای شروع ویژوال استادیو خود را باز کنید و از قسمت #Visual C و گزینه Windows را انتخاب کنید. حال از قسمت میانی صفحه گزینه Windows Service را انتخاب کنید.

توجه داشته باشید این آموزش بر اساس Visual Studio 2013 می باشد و در نسخه 5 Visual Studio 201شما نمی توانید پروژه های از نوع Windows Service ایجاد کنید، در انتهای همین مقاله روش حل این مشکل را نیز آموزش داده ایم.

 

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

تبدیل enum به string و برعکس

بسم الله الرحمن الرحیم

تبدیل enum به string و برعکس

تبدیل enum به string

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

مثال زیر را در نظر بگیرید

 

public enum Car
{
Benz,
BMW,
Peykan,
Pride,
}
//just kidding :)

Car myCar = Car.BMW;
string stringMyCar = myCar.ToString();  // result "BMW"

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

بدست آوردن تمامی کلاس های یک namespace

بسم الله الرحمن الرحیم

با استفاده از کد زیر شما می توانید نام تمامی کلاس های موجود در یک namespace را بدست آورید

using System.Reflection;
private Type[] GetTypesInNamespace(Assembly assembly, string nameSpace)
{
    return assembly.GetTypes().Where(t => String.Equals(t.Namespace, nameSpace, StringComparison.Ordinal)).ToArray();
}

برای استفاده باید به صورت زیر عمل کنید

Type[] typelist = GetTypesInNamespace(Assembly.GetExecutingAssembly(), "MyNamespace");
for (int i = 0; i < typelist.Length; i++)
{
    Console.WriteLine(typelist[i].Name);
}

آموزش serialize کردن اشیا

بسم الله الرحمن الرحیم

 

ممکن است شما بخواهید یک شی از کلاس را در یک XML فایل ذخیره کنید، برای این کار می بایست شی خود را serialize کنید.

در این آموزش نحوه serialize را بررسی خواهیم کرد.

 

یک پروژه جدید از نوع windows Application  ایجاد کنید.

یک کلاس با نام MyClass به پروژه اضافه کنید و کد آن را به صورت زیر تغییر دهید:

public class MyClass

{

    // old school property

    private int _Age;  

    public int Age  

    {

        get { return _Age; }

        set { _Age = value; }

    }

 

    // new school property

    public bool Citizen { get; set; }

 

    // there's nothing wrong with using fields

    public string Name;  

}

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

serialize کردن به وسیله سی شارپ

بسم الله الرحمن الرحیم



در بسیاری از مواقع شما نیاز دارید یک شی را به صورت serialize ذخیره کنید، مثلا ذخیره کردن یک شی از کلاس user در کوکی و یا ذخیره کردن آن در ASP.NET Identity Claims و...
در این آموزش نحوه serialize را بررسی خواهیم کرد.

یک پروژه جدید از نوع Console Application  ایجاد کنید.
یک کلاس با نام clsPerson به پروژه اضافه کنید.
Property های زیر را به کلاس اضافه کنید

public   string FirstName;
public   string MI;
public   string LastName;

درون متد main کلاس Program.cs یک شی از کلاس clsPerson ایجاد کنید:

clsPerson p = new clsPerson();

Property های کلاس را مقدار دهی کنید

p.FirstName = "Esmaeil";
p.MI = "A";
p.LastName = "Sheidaei";

کلاس XmlSerializer برای ایجاد یک شی جدید نیاز دارد نوع شی ایی را که شما می خواهید به serialize تبدیل کنید بداند به همین دلیل ما در زمان ایجاد شی از کلاس XmlSerializer نوع p  را به آن اطلاع می دهیم که طبیعتا نوع شی ما در این جا clsPerson است.

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

خطا Cannot insert the value NULL into column

بسم الله الرحمن الرحیم

خطای زیر را مشاهده کنید:

Cannot insert the value NULL into column 'FirstLastName', table 'RequestSessions'; column does not allow nulls. INSERT fails.The statement has been terminated. 

در مدلی که دارید کار می کنید فیلدی وجود دارد که در دیتابیس نمی تواند null باشد برای رفع این مشکل باید در اکشن خود مدل را مقدار دهی کنید

  مثلا

Account.FirstLastName=”Esmaeil”;

آموزش Windows Forms Events Lifecycle

بسم الله الرحمن الرحیم


در ارتباط با Windows Form کتابها و مقالات زیادی وجود که به وسیله آن می توانید به سادگی راه و روش ایجاد یک برنامه را آموزش ببینید. در اینجا یک آموزش در خصوص ترتیب اجرای Event ها وجود دارد، اگر شما lifecycle فرم را بدانید بهتر می توانید اطلاع پیدا کنید که Event های خود را در کدام بخش بنویسید.
در مورد ASP.NET اطلاعات زیادی در خصوص ترتیب اجرا شدن Event ها وجود دارد اما در مورد Windows Form اطلاعات به سختی بدست خواهد آمد.

در ایجا لیست و ترتیب اجرای Event ها را برای شما قرار داده ام

•    Move: این رویداد زمانی اتفاق می افتد که فرم تغییر مکان دهد، اما دهنگام اجرای برنامه هرچند کاربر فرم را تغییر مکاتن نمی دهد ولی این رویداد اجرا می شود.
•    Load: این رویداد در اولین بار قبل از نمایش فرم اتفاق می افتد.
•    VisibleChanged: این رویداد با تغییر Visible اتفاق می افتد.
•    Activated: این رویداد  پس از Activated شدن توسط کد یا کاربر اتفاق می افتد.
•    Shown:این رویداد زمانی اتفاق می افتد که برای اولین بار فرم نمایش داده شده است.
•    Paint: این رویداد در زمانی که فرم ترسیم می شود اتفاق می افتد.
•    Deactivate: این رویداد در زمانی که فرم فوکس خود را از سدت یم دهد و یا فعال نیست اجرا می شود
•    Closing: این رویداد در زمانی که فرم در حال بسته شدن است اتفاق می افتد.
•    Closed: این رویداد در زمانی که فرم در شروع به بسته شدن می کند اتفاق می افتد.

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

متوقف کردن اجرای دستورات برای مدت زمان 5 ثانیه

بسم الله الرحمن الرحیم

در خصوص متوقف کردن و Sleep کردن برنامه چندین راه متفاوت وجود دارد.

با یک مثال صورت سوال را مشخص و سپس به سراغ پاسخ آن می رویم.

برنامه ای داریم که می خواهیم برای مدت زمان 5 ثانیه متوقف شود و مجددا به کار خود ادامه دهد؟

یکی از ابتدایی ترین راه ها ایجاد یک حلقه for طولانی است که به وسیله آن مدت زمانی را صرف اجرای این دستور کنید!

DateTime start = DateTime.Now;
for (int i = 1; i < 100000; i++)
{
    if ((DateTime.Now - start).TotalSeconds >= 5)
        break;
    Console.WriteLine("This is test no. "+ i+ "\n");
}

راه دوم، بررسی زمان جاری سیستم و ذخیره آن و در نهایت ایجاد یک حلقه تا زمانی است که مدت 5 ثانیه از زمان شروع کار گذشته باشد

    DateTime Tthen = DateTime.Now;
                do
                {
                    Application.DoEvents();
                } while (Tthen.AddSeconds(5) > DateTime.Now);     

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

T4MVC

بسم الله الرحمن الرحیم

 معرفی T4MVC

T4MVC می تواند بر روی نسخه های Visual Studio 2010, 2012  و  2013نصب شود وASP.NET MVC 4.0  و  5.0این Package را پشتیبانی می کنند، شاید بتوانید بر روی سایر نسخه ها از این Package استفاده کنید اما این Package فقط بر روی گزینه های گفته شده تست شده است.

 

نصب T4MVC

برای نصب این Package کافی است که دستور زیر را از طریق Package Manager Console اجرا کنید

Install-Package T4MVC

پس از اجرای این دستور دو فایل به پروژه شما اضافه می شود.

هدف T4MVC

این Package برای جلوگیری از نوشتن اسامی کنترلر ها و اکشن ها و در نهایت view ها به صورت Hard Code مورد استفاده قرار می گیرد.

برای مثال کدزیر را در نظر بگیرید:

<% Html.RenderPartial("DinnerForm"); %>

 

ما از عبارت های رشته ای برای فراخوانی این Partial استفاده کرده ایم، اگر فردا شما بخواهید این نام را تغییر دهید باید در بهترین و سریعترین روش ممکن با استفاده از Finde ویژوال استادیو تمامی نام های مربوطه را تغییر دهید.

اما چرا از ابتدا از روش دیگری استفاده نکنیم!

T4MVC در واقع نام تمامی View,Conreoller,Action ها را به صورت خودکار در خود ذخیره می کند و عملا یک Enumeration  برای شما به وجود می آورد تا در آینده در صورتی که نامی را برای یک View,Conreoller,Action عوض کردید، این نام در تمامی پروژه عوض شود.

مثال:

<% Html.RenderPartial("DinnerForm"); %>

از این به بعد ما نام ها را به صورت زیر خواهیم نوشت:

 

<% Html.RenderPartial(MVC.Dinners.Views.DinnerForm); %>

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

CodeSnippets

بسم الله الرحمن الرحیم

برای نوشتن سریعتر دستورات سی شارپ می توانید از Snippets Code استفاده کنید برای استفاده از این ویژگی کافی است کلید CTRL را به همراه K فشار دهید و سپس کلید S را نیز بزنید حال لیست دستوراتی را مشاهده می کنید که می توانید آن ها را انتخاب کنید در زیر این لیست قرار داده شده است.

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

نام دستور

توضیحات

if#

Creates a #if directive and a #endif directive.

region#

Creates a #region directive and a #endregion directive.

~

Creates a destructor for the containing class.

attribute

Creates a declaration for a class that derives from Attribute.

checked

Creates a checked block.

class

Creates a class declaration.

ctor

Creates a constructor for the containing class.

cw

Creates a call to WriteLine.

do

Creates a do while loop.

else

Creates an else block.

enum

Creates an enum declaration.

equals

Creates a method declaration that overrides the Equals method defined in the Object class.

exception

Creates a declaration for a class that derives from an exception (Exception by default).

for

Creates a for loop.

foreach

Creates a foreach loop.

forr

Creates a for loop that decrements the loop variable after each iteration.

if

Creates an if block.

indexer

Creates an indexer declaration.

interface

Creates an interface declaration.

invoke

Creates a block that safely invokes an event.

iterator

Creates an iterator.

iterindex

Creates a "named" iterator and indexer pair by using a nested class.

lock

Creates a lock block.

mbox

Creates a call to MessageBox.Show. You may have to add a reference to System.Windows.Forms.dll.

namespace

Creates a namespace declaration.

prop

Creates an auto-implemented property declaration.

propfull

Creates a property declaration with get and set accessors.

propg

Creates a read-only auto-implemented property with a private "set" accessor.

sim

Creates a static int Main method declaration.

struct

Creates a struct declaration.

svm

Creates a static void Main method declaration.

switch

Creates a switch block.

try

Creates a try-catch block.

tryf

Creates a try-finally block.

unchecked

Creates an unchecked block.

unsafe

Creates an unsafe block.

using

Creates a using directive.

while

Creates a while loop.

جلوگیری از باز شدن چندین نسخه از نرم افزار

بسم الله الرحمن الرحیم

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

برای اجرا کردن تنها یک نسخه از نرم افزار توسط کاربر می توان به صورت زیر عمل کنید:

فایل program.cs را باز کنید و در آن کد زیر را اضافه کنید

public static Process PriorProcess()
    // Returns a System.Diagnostics.Process pointing to
    // a pre-existing process with the same name as the
    // current one, if any; or null if the current process
    // is unique.
    {
        Process curr = Process.GetCurrentProcess();
        Process[] procs = Process.GetProcessesByName(curr.ProcessName);
        foreach (Process p in procs)
        {
            if ((p.Id != curr.Id) &&
                (p.MainModule.FileName == curr.MainModule.FileName))
                return p;
        }
        return null;
    }

حال متد Main را به صورت زیر عوض کنید:

[STAThread]
    static void Main()
    {
        if (PriorProcess() != null)
        {

            MessageBox.Show("Another instance of the app is already running.");
            return;
        }
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new Form());
    }

آموزش TagBuillder

بسم الله الرحمن الرحیم

آموزش asp.net mvc

یکی از روش های تولید تگ های HTML  اسنفاده از کلاس TagBuilder  می باشد. این کلاس خصوصیات های زیادی را ارائه می دهد که پرکاربردترین آن ها را به همراه یک مثال ارائه داده شده است.

یک کنترلر جدید با نام Sample ایجاد کنید و سپس کد زیر را به آن اضافه نمایید:

namespace ExternalHtml.Controllers

{
    public class SampleController : Controller

    {
         public MvcHtmlString CreateTagBuilder()

        {
              TagBuilder tagBuilderSpan = new TagBuilder("div");

            tagBuilderSpan.SetInnerText("کلمه عبور");

            TagBuilder tagBuilder = new TagBuilder("input");

            tagBuilder.AddCssClass("inputTypeClass");

            tagBuilder.Attributes.Add("type", "password");

            tagBuilder.GenerateId("input~TagBuilder");

            tagBuilder.IdAttributeDotReplacement = "input_TagBuilder";//Replace ~ char with _

            tagBuilder.MergeAttribute("enable", "false");//set enable with false for understand below tag

            tagBuilder.MergeAttribute("enable", "true", true);//true means exist tag replace and false denial tag

            tagBuilderSpan.InnerHtml += tagBuilder.ToString();

            return new MvcHtmlString(tagBuilderSpan.ToString());}

        //

        // GET: /Sample/

        public ActionResult Index()

        {
            ViewBag.TagBuilder= CreateTagBuilder();

           return View();
        }
    }
} 



 

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

آموزش User Agent

بسم الله الرحمن الرحیم

User Agent چیست

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

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

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

ساخت Transaction در سی شارپ

بسم الله الرحمن الرحیم

آموزش برنامه نویسی آسنگرون در سی شارپ

در مطالب گذشته نحوه اجرای Transaction را در اسکیوال بیان کردم، خوب بسیاری از مزایای این کار بیان شد حال همین موارد را می توانیم در سی شارپ پیاده سازی نماییم، بدون توضیحات اضافی مثالی را بررسی می کنیم:

ادامه مطلب...
up
ما را در گوگل محبوب کنید