یک محیط سفارشی شده; تمام چیزی که یک برنامه نویس می خواهد!

داشتن تمرکز برای افرادی که به اصطلاح Knowledge Worker هستند، مثل نویسندگان یا برنامه نویسان، بسیار مهم است. این تمرکز در محیط های شلوغ و پر استرس و محیطی که فرد در آن احساس راحتی نکند به دست نمی آید. یک برنامه نویس به عنوان فردی که از دانش و قدرت تفکرش برای انجام کارها استفاده می کند، برای انجام وظیفه خود به نحو مطلوب و با بازدهی بالا نیاز به یک محیط سفارشی (=Customize) شده دارد. منظورم از محیط سفارشی شده، محیطی است که فرد برنامه نویس در آن احساس راحتی کند، تمرکز کافی داشته باشد و بتواند در آن بر اساس سلیقه خودش تغییر ایجاد کند.

برنامه نویس در گوگل

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

برنامه نویسانی که برای شرکت ها کار می کنند شرایط متفاوت تری دارند. در اینجا این برنامه نویسان هستند که باید خودشان را با محیط شرکت وقف بدهند. البته این وقف دادن همیشه هم بد نیست. ممکن است برنامه نویس قبلاً از سورس کنترل استفاده نمی کرده و حالا در این شرکت مجبور باشد از این ابزار استفاده کند. این اصلاً بد نیست. اما این شرایط وقتی آزاردهنده می شود که برنامه نویس در محیط کاری شرکت احساس راحتی نکند. مخصوصاً در بدو ورود یک برنامه نویس تازه استخدام شده به یک شرکت، این موضوع خیلی اتفاق می افتد. البته در اکثر موارد این عادی است که حداقل یک هفته زمان لازم است تا فرد تازه وارد خودش را با شرایط جدید، محیط و افراد نا آشنا وقف دهد. نکته ای که وجود دارد این است که یک شرکت موفق باید کاری کند که زمان وقف پیدا کردن یک برنامه نویس تازه وارد (منظور تازه وارد شده به شرکت) با شرایط، محیط، افراد و ابزارهای آن شرکت کاهش یابد. این اول برای خود شرکت سود دارد و بعد برای آن فرد تازه وارد به شرکت! کاهش دادن این زمان هم به نظر من فقط با باز گذاشتن دست برنامه نویس برای سفارشی کردن محیط کارش بدست می آید.

شرکت موزیلا

اجازه دهید برنامه نویس میز کارش را خودش بچیند، کامپیوترش را سفارشی کند، نرم افزارهایی که لازم دارد نصب کند، نرم افزارهایی که نمی خواهد حذف کند و در کل محیط مجازی اش را بر اساس علاقه اش تنظیم کند. اگر کامپیوترش قدیمی است و جوابگوی کار برنامه نویس نیست آن را عوض کنید. حتماً در این مورد نظر او را هم بپرسید. میز، صندلی و مانیتور استاندارد تهیه کنید تا سلامت برنامه نویس به خطر نیفتد. در صورت امکان سعی کنید اتاق برنامه نویسان را از هم جدا کنید یا حداقل با پارتیشن بین آن ها فاصله بگذارید. این کار باعث می شود که تمرکز یک برنامه نویس روی کدهایی که می نویسد بیشتر شود. ممکن است در یک اتاق باز، پرسیدن سئوال یا درخواست کمک یک همکار تمام تمرکز برنامه نویس را به هم بزند که بدست آوردن همان تمرکز برای برنامه نویس زمان زیادی خواهد گرفت. حداقل کاری که می توانید بکنید این است که قانونی بگذارید که هنگام کدنویسی کسی صحبت نکند!

هرچند محیط پر استرس روی کیفیت کار هر کسی تاثیر منفی دارد اما این تاثیر در کار برنامه نویسان بسیار بیشتر است. سعی کنید محیطی دوستانه، مفرح و با امکانات مناسب در اختیار برنامه نویسان قرار دهید. به طور مثال یک وایت برد در بخش برنامه نویسی نصب کنید. نکته مهم دیگر مربوط به تغذیه مناسب برنامه نویسان است. صبحانه و نهار مناسب و در دسترس بودن نوشیدنی های مختلف مثل چای و قهوه بسیار مهم است. یک برنامه نویس گرسنه نمی تواند به درستی تمرکز کند. یک برنامه نویس بدون نوشیدن نمی تواند حتی یک خط کد بنویسد!

برنامه نویسان مایکروسافت

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

شرکت گوگل

پ.ن : برای نمونه شما یکی از کارکنان توییتر را فالو کنید، متوجه می شوید که این ها یا در حال آبجو خوردن هستن و یا در حال پارتی گرفتن! من نمیدونم اینا کی کار میکنن!

farasun.wordpress.com

Subcribe to Farasun feedمشترک فراسان شويد

راه های دسترسی به داده در دات نت فریم ورک!

در اکثر برنامه های کامپیوتری نیاز به ذخیره و بازیابی داده ها وجود دارد. داده هایی که بدون آن ها سیستم نرم افزاری ما معنایی ندارد. برنامه نویسان معمولاً راه های مختلفی برای این کار سراغ دارند. کسانی که با دات نت فریم ورک برنامه نویسی می کنند راه های مختلفی برای دسترسی به داده ها دارند. در این مطلب با تکنولوژی های مایکروسافت برای این کار آشنا خواهیم شد و سه ORM معروف دنیای دات نت را معرفی خواهیم کرد. مایکروسافت انتخاب های زیادی برای دسترسی به داده ها به برنامه نویسان دات نت می دهد که شما باید با بررسی آن ها و با توجه به نیازهای خودتان یکی از آن ها را انتخاب کنید.

ADO.NET

ADO.NET مجموعه ای از کامپوننت هاست که برنامه نویسان می توانند از آن ها برای برقراری ارتباط با دیتابیس های مختلف استفاده کنند. ADO.NET بخشی از کتابخانه کلاس های پایه دات نت فریم ورک است که توسط مایکروسافت توسعه داده می شود. برنامه نویسان به صورت گسترده از این تکنولوژی برای دسترسی و دستکاری داده های ذخیره شده در یک دیتابیس رابطه ای استفاده می کنند. ADO.NET می تواند با اکثر دیتابیس های موجود کار کند، هر چند به صورت پیش فرض در دات نت فریم ورک فقط فراهم کننده های SQL Server، OleDb و Odbc وجود دارد، افراد و شرکت های دیگر فراهم کننده های دیتابیس های دیگر را برای دات نت ایجاد کرده اند.

برای هر Provider کامپوننت هایی وجود دارند که برنامه نویس با استفاده از آن ها به مقصودش می رسد. به طور مثال برای استفاده از SQL Server در روش ADO.NET کامپوننت هایی مانند SQLConnection و SQLCommand وجود دارد که با استفاده از آن ها می توانید یک دستور SQL را روی داده های موجود در یک دیتابیس SQL Server اجرا کنید. با SQLConnection به دیتابیس موجود در SQL Server وصل می شویم و با استفاده از یک SQLCommand می توانیم یک عبارت T-SQL را که می تواند دستور INSERT, UPDATE, DELETE یا SELECT باشد یا حتی یک Stored Procedure یا عبارت DDL باشد را برای مقصود خاصی روی دیتابیس اجرا کنیم. چون ADO.NET در مورد سینتاکس دیتابیس چیزی نمی داند، دستورات را به صورت یک رشته ساده به SQLCommand می دهیم و این شیء نیز به صورت مستقیم به دیتابیس دستور می دهد.

string query = "SELECT * FROM tblCustomers";
SqlConnection con = new SqlConnection(cnnString);
SqlCommand command = new SqlCommand(query, con);
con.Open();
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
Response.Write(reader.GetInt32(0) +
reader.GetString(1));
}

نکته ای که باید در مورد ADO.NET بدانید این است که برای استفاده از هر سیستم دیتابیس رابطه ای، مجموعه کامپوننت های جدایی وجود دارد. در مثال بالا از آبجکت های مربوط به SQL Server استفاده کردیم. اگر بخواهید مثلاً از یک دیتابیس اوراکل در برنامه خود استفاده کنید، بایستی از کامپوننت های مربوط به اوراکل استفاده کنید. خوشبختانه تمام این کامپوننت ها بر پایه یک Interface ساخته شده اند، این یعنی شما می توانید با استفاده از کلاس DbProviderFactory برنامه ای بسیازید که با چند نوع دیتابیس مختلف کار کند.

Linq to SQL

مایکروسافت با دات نت فریم ورک 3.0 و 3.5 یک ORM به نام Linq to SQL را به عنوان بخشی از پروژه LINQ خود عرضه کرد. این شرکت مدت ها پیش از آن قول داده بود که یک ORM برای دات نت فریم ورک طراحی کند اما تا نسخه 3.0 دات نت فریم ورک خبری از آن پروژه نشد. Linq to SQL به شما اجازه می دهد که کوئری های LINQ را روی دیتابیس های SQL Server اجرا کنید. علاوه بر این از یک Mapping Framework بهره می برد که به برنامه نویسان اجازه Map کردن جدول های یک دیتابیس را به کلاس ها و بالعکس می دهد. این کار در ویژوال استادیو می تواند به صورت ویژوال یا کدنویسی انجام گیرد. به این صورت که برای هر جدول از دیتابیس یک کلاس تعریف می شود که هر ستون از یک جدول به عنوان یک Property درون آن کلاس تعریف می شود.

نمایی از ابزار طراحی ویژوال Linq to SQL

به مثال زیر توجه کنید :
public class Customer
{
[Column(Name="CustomerID",IsPrimaryKey = true)]
public long ID
{
get { return _ID;}
set { _ID = value;}
}
[Column(Name = "CustomerName")]
public string Name
{
get { return _name; }
set { _name = value; }
}
}

کلاس بالا به جدول tblCustomers که دارای دو ستون CustomerID و CustomerName است Map می شود. قبل از اینکه بخواهید از Linq to SQL استفاده کنید باید این کلاس ها را تعریف کنید. ویژوال استادیو 2008 دارای ابزاری است که به صورت ویژوال به شما امکان Map کردن جدول های یک دیتابیس SQL Server را به کلاس های دات نت می دهد. این ابزار می تواند به صورت اتوماتیک کلاس های مورد نیاز شما را از روی مدل دیتابیس بسازد، و حتی اجازه تغییرات دستی و ایجاد Viewهای مختلف از دیتابیس را به شما می دهد. عملیات Mapping با استفاده از DataContext (که یک رشته اتصال به سرور نیاز دارد) پیاده سازی می شود. سپس شما قادر خواهید بود کوئری های LINQ خود را روی دیتابیس موجود در سرور اجرا کنید، که البته این کوئری ها ابتدا به دستوارت T-SQL متناظر ترجمه و سپس روی دیتابیس مورد نظر اجرا می شوند.

Entity Framework

Entity Framework یک فریم ورک ORM برای دات نت فریم ورک است که نسخه یک آن به همراه دات نت فریم ورک 3.5 سرویس پک 1 عرضه شد اما مورد استقبال توسعه دهندگان قرار نگرفت. نسخه 2 این فریم ورک به صورت بتا به عنوان بخشی از ویژوال استادیو 2010 قابل دسترس است. ADO.NET Entity Framework نام اصلی این فریم ورک است و جزئی از تکنولوژی ADO.NET است.

ابزار طراحی Entity Framework در ویژوال استادیو

ابزار طراحی Entity Framework در ویژوال استادیو

Entity Framework مدل رابطه ای موجود در یک دیتابیس را به مدل مفهمومی تبدیل می کند و آن را به اپلیکیشن ما تحویل می دهد. در مدل رابطه ای عناصر ترکیبی از جداول هستند، به همراه کلید های اصلی و خارجی که جدول ها را به هم مرتبط می سازند. برعکس آن، انواع موجودیت ها مدل مفهومی داده را تعریف می کنند. انواع موجودیت  اجتماعی از چند فیلد است (هر فیلد به یک ستون از دیتابیس Map می شود) و می تواند شامل اطلاعات از چند جدول فیزیکی باشد. انواع موجودیت می توانند به هم مرتبط باشند، مستقل از ارتباطاتی که در مدل فیزیکی دارند. شمای منطقی و نگاشت (mapping) آن به شمای فیزیکی به عنوان یک Entity Data Model یا EDM نمایش داده می شوند که مشخصات EDM در یک فایل XML ذخیره می شود. Entity Framework از EDM برای انجام عملیات نگاشت و دادن قابلیت کار با موجودیت ها به اپلیکیشن استفاده می کند. Entity Framework اطلاعات مورد نیاز هر موجودیت را با Join کردن چندین جدول از مدل فیزیکی (دیتابیس) بدست می آورد. هنگامی که اطلاعات یک موجودیت آپدیت می شود، Entity Framework بررسی می کند که داده ها مربوط به کدام یک از جدول های موجود در دیتابیس هستند، سپس آن ها را با دستور SQL مناسب آپدیت می کند.

هر چند Entity Framework و Linq to SQL بسیار شبیه به هم به نظر می رسند، هر دو ابزارهایی برای طراحی گرافیکی و ویزاردی برای نگاشت یک دیتابیس به مدل شیء گرا دارند و هر دو می توانند از کوئری های LINQ برای مقصود خاصی استفاده کنند، اما با هم تفاوت هایی هم دارند. بیان تفاوت های این دو در این مطلب جایی ندارد.

NHibernate

نمی توان در مورد ORMها در دات نت صحبت کرد اما نام NHiernate را ذکر نکرد. NH یک فریم ورک ORM اوپن سورس برای دات نت فریم ورک است که از روی پروژه موفق Hibernate جاوا وارد دنیای دات نت شد. توضیحات بیشتر در مورد NHibernate توضیحات اضافی است، زیرا این فریم ورک هم وظیفه ORMهای دیگر را انجام می دهد. اکثر برنامه نویسانی که از NH برای نگاشت استفاده می کنند، ابتدا کلاس های خود را تعریف می کنند و سپس با استفاده از یک فایل XML آن ها را به جدول های دیتابیس Map می کنند. Linq to SQL و Entity Framework برخلاف NHibernate از روش Model-first یا مبتنی در دیتابیس استفاده می کنند، به این معنی که هر دو ORM تصور می کنند شما دیتابیسی در اختیار دارید که می خواهید آن به تعدادی آبجکت Map کنید.

در مورد Nhibernate بیش از این صحبت نمی کنم، آقای وحید نصیری در اینجا به صورت کامل در مورد این ORM محبوب نوشته است.

farasun.wordpress.com

انتخاب از میان روش های بالا به عهده خود شماست. در این مطلب کوتاه نمی توان به بررسی تمام زوایا و تفاوت های میان آن ها پرداخت. در مطالب آینده سعی میکنم در مورد نحوه استفاده از هر کدام یک مثال عملی بزنم (البته به جز NHibernate).

بررسی دات نت 4.0 – تغییرات CLR

قبلاً قول داده بودم در مورد تغییرات جدید در دات نت فریم ورک 4.0 مطلب بنویسم. میدونم در این وضعیت شاید کسی حوصله خوندن پست تخصصی را نداشته باشه و همه با تعجب و افسوس بسیار اخبار درگیری های بعد از 22 خرداد را دنبال می کنند، اما تصمیم به نوشتن گرفتم چون به من آرامش میده. تصمیم گرفتم تغییرات دات نت 4.0 را در چندین پست به صورت مکرر مورد بررسی قرار دهم. در این مطلب با تغییرات CLR در دات نت فریم ورک 4.0 بتا 1 آشنا خواهید شد. در مطالب بعدی با تغییرات زبان های برنامه نویسی دات نت 4.0، کلاس های پایه در آن و تغییرات ASP.NET آشنا خواهیم شد.

قسمت اول : تغییرات CLR

CLR در نسحه جدید پلت فرم برنامه نویسی مایکروسافت یعنی دات نت فریم ورک 4.0 دستخوش تغییرات و به روز رسانی های زیادی شده است که در این مطلب با مهمترین آن ها آشنا می شویم :

محاسبات موازی (Parallel Computing)

دات نت فریم ورک 4.0 بتا مدل جدیدی از برنامه نویسی برای نوشتن برنامه های چند خطی (Multi threaded) و غیرهمزمان (asynchronous) ارائه می کند که به صورت موثری کار توسعه دهندگان برنامه های کاربردی و کتابخانه های کد را ساده می کند. کلاس های جدید Parallel و Task در فضای نام System.Threading از این مدل برنامه نویسی پشتیبانی می کنند. PLINQ یا Parallel LINQ هم پیاده سازی موازی از LINQ to Objects در این نسخه از دات نت فریم ورک است.

کارایی بالاتر

به اضافه قابلیت بالا، برنامه ها در دات نت فریم ورک 4.0 بتا، با سرعت بالاتری اجرا می شوند و کارایی بالاتری در برنامه های چند خطی مشاهده خواهید کرد.

Lazy Initialiation

با استفاده از این قابلیت، حافظه برای یک شیء تا هنگامی که شیء به حافظه ای احتیاج ندارد، اختصاص نمی یابد. Lazy Initialiation می تواند کارایی برنامه شما را با کنترل روی حافظه های اختصاص داده شده به اشیاء بالا ببرد. شما می توانید این قابلیت را برای هر نوع داده ای با استفاده از System.Lazy(T) فعال کنید.

Dynamic Language Runtime

محیط زمان اجرای جدیدی است که سرویس هایی برای زبان های برنامه نویسی پویا به CLR اضافه می کند. DLR توسعه زبان های پویا برای اجرا روی دات نت فریم ورک و اضافه نمودن قابلیت های پویا به انواع زبان های استاتیک را آسان تر می کند. برای این منظور فضای نام System.Dynamic به دات نت فریم ورک 4.0 اضافه شده است. به علاوه کلاس هایی هم برای پشتیبانی از زیر بنای دات نت فریم ورک در فضای نام System.Runtime.CompilerServices ایجاد شده است.

In-Process-Side-By-Side Execution

این قابلیت جدید در دات نت فریم ورک به شما اجازه می دهد که چند نسخه مختلفه CLR را در حافظه بار کنید تا کامپوننت های قدیمی که از نسخه های قبلی CLR استفاده می کنند در کنار کامپوننت های جدید به کار خود ادامه بدهند. به زبان ساده می توانید برنامه ای بنویسید که هم از دات نت فریم ورک نسخه 2 استفاده کند و هم از نسخه 4 آن.

امنیت

دو تغییر بزرگ در زیر سیستم امنیتی دات نت فریم ورک 4.0 بوجود آمده، سیاست امنیتی Machine-wide از بین رفته است، هر چند سیستم اجازه نامه ها هنوز در جای خود قرار دارد، و شفافیت امنیتی گسترش یافته و به عنوان مکانیزم پیش فرض مورد استفاده قرار می گیرد. از بین رفتن سیاست Machine-wide به این معنی است که دات نت فریم ورک مسئولیت تامین امنیت یک کامپیوتر را بر عهده ندارد و فقط از کدهای امن نوشته شده حفاظت می کند. شفافایت امنیتی یا Security Transparency که برای اولین بار در دات نت فریم ورک 2.0 معرفی شد، مکانیزمی است که کدهای نوشته شده برای یک اپلیکیشن تحت دات نت فریم ورک را از کدهای زیربنایی آن تفکیک می کند.

قراردادهای کد

قراردادهای کد به شما اجازه می دهند اطلاعاتی را مشخص کنید که امضای متد ها و نوع ها به تنهایی آن ها را نمایش نمی دهند. فضای نام System.Diagnostics.Constracts کلاس هایی را برای برآورده کردن این هدف فراهم می کند. این قراردادها باعث بهبود کیفیت آزمایش نرم افزار و تولید مستندات می شوند.

Garbage Collection

در دات نت فرم ورک 4.0 وظیفه پاکسازی حافظه مانند نسخه های قبل بر عهده GC است، با این تفاوت که GC در این نسخه کارایی بالاتر و قابلیت های بهتری دارد. دات نت فرم ورک 4.0 عملیت پاکسازی حافظه از اشیای تاریخ گذشته را در پس زمینه انجام می دهد تا حجم حافظه مصرفی توسط برنامه های تحت دات نت فریم ورک 4.0 به کمترین حد ممکن برسد.

عیب یابی

حالا در دات نت 4.0 می توانید از رویدادهای EWT یا Event Tracing for Windows در جهت عیب یابی برنامه هایتان استفاده کنید تا کارایی را افزایش دهید. EWT مسئولیت جمع آوری گزارش در طول زندگی یک پروسه در ویندوز را بر عهده دارد. با استفاده از EWT می توانید گزارشاتی در مورد رویدادهای CLR مطالعه کنید و نرم افزارهایتان را عیب یابی کنید.

farasun.wordpress.com

برای دنبال کردن مطالب بعدی این وبلاگ، مشترک فید فراسان شوید

[Code to look] یکشنبه 20 اردیبهشت 88

من اعتقاد دارم که یکی از بهترین راه های یادگیری قابلیت های زبان های برنامه نویسی و فناوری های جدید برنامه نویسی، نگاه کردن به سورس کدهای آماده ای است که برای منظورهای مختلف نوشته شده اند. سایت هایی مثل گالری کد MSDN و سایت CodeProject شامل کدهای نمونه بسیار خوبی در مورد زبان های سی شارپ و ویژوال بیسیک و فناوری های جدید پلت فرم دات نت هستند. از این پس هر 10 روز یکبار در این وبلاگ شاهد پست هایی با عنوان «[Code to look]» خواهید بود که شامل لینک به تعدادی کد نمونه جالب و آموزشی از وب سایت های فوق خواهند بود. سعی میکنم نظم 10 روز یکبار این پست ها را حتماً رعایت کنم.

Employee Info Starter Kit

این پروژه قابلیت مدیریت اطلاعات کارمندان یک شرکت کوچک را دارد و به شما نشان می دهد که چگونه یک برنامه تجاری کوچک بنویسید. با نگاه کردن به کدهای این پروژه نکات زیادی از ASP.NET و SQL Server یا خواهید گرفت.

دریافت کنید

Asynchronous Sockets

این کد با استفاده از کتابخانه Nito.Async امکان فرستادن و دریافت پیغام، با استفاده از پروتکل TCP/IP دارد. این کد نمونه، نحوه ایجاد یک برنامه کلاینت/سرور که قادر به ارتباط با یکدیگر توسط برنامه نویسی سوکت هستند، را به شما نشان می دهد.

دریافت کنید

C# Samples for Visual Studio 2008

کدهای نمونه سی شارپ 2008 که شامل نمونه کدهایی است که امکانات جدید سی شارپ 2008 را به شما یاد می دهند.

دریافت کنید

Visual Basic 2008 Samples

کدهای نمونه ویژوال بیسیک 2008 که شما را با امکانات جدید این زبان محبوب با استفاده از مثال های متعدد، آشنا می کند.

دریافت کنید

Chess Board

بازی شطرنج ساده ای که با استفاده از سی شارپ 2005 نوشته شده و حتماً مطالب زیادی برای یاد دادن به شما دارد!

دریافت کنید

Glass Button using GDI+

نحوه ایجاد یک دکمه زیبا که به Glass Button معروف است را به شما در سی شارپ 2005 آموزش می دهد.

دریافت کنید

Show Your Data on Google Map using C# and JavaScript

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

دریافت کنید

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

چطور مشترک شويم؟

شرکت های نرم افزاری برای «ویندوز 7» آماده شوند!

همانطور که می دانید چند وقتی است شرکت مایکروسافت با نسخه جدید سیستم عامل ویندوزش یعنی ویندوز 7 سر و صداهای زیادی به پا کرده است. نسخه RC ویندوز 7 هم اکنون برای دانلود در وب سایت مایکروسافت در دسترس است. مایکروسافت قول تغییرات زیادی را در این ویندوز داده است و قصد دارد شکست ویستا را با ارائه ویندوز 7 جبران کند. از قرار معلوم ویندوز 7 نسبت به ویستا برتری هایی در سرعت، ظاهر، سازگاری بیشتر با سخت افزارها و امکانات دارد. تاسک بار در ویندوز 7 از نو طراحی شده و امکانات خوبی به کاربر برای مدیریت پنجره های باز می دهد. قابلیتی به نام Libraries کاربران را در یافتن فایل های خودش یاری می کند (لینک هایی به فایل ها را در یکجا در دسترس کاربر قرار می دهد). تکنولوژی های جدیدی مثلی Multi-touch که کاربران ویندوز 7 را قادر به استفاده از دستگاه های جدید لمس چندگانه می کند.

Windows 7 firom Microsoft

کاربران نهایی ممکن است از این ویندوز خیلی لذت ببرند و از آن استفاده کنند. شاید هم پس از چند روز استفاده از آن بیزار شوند و به جای آن سیستم عامل دیگری نصب کنند. در نظر کاربران نهایی سیستم عامل ویندوز 7 خیلی از مسایل پنهان می ماند. این تولیدکنندگان نرم افزاری هستند که باید خود را با ویندوز جدید مایکروسافت هماهنگ کنند.EN-w7-comp_rgb_L_3

یکی از مسایل مهمی که برای برنامه نویسان و شرکت های نرم افزاری که برای ویندوز نرم افزار تولید می کنند، در هنگام معرفی یک نسخه جدید از سیستم عامل ویندوز بوجود می آید، مسئله سازگاری یا Compatibility است. اگر یادتان باشد هنگام معرفی ویندوز ویستا توسط مایکروسافت برنامه نویسان و شرکت هایی که برای سیستم عامل ویندوز نرم افزار تولید می کردند، هراس زیادی از عدم سازگاری نرم افزارهایشان با ویستا داشتند. اما هنگامی که نسخه انهایی ویندوز ویستا عرضه شد، اتفاق خاصی نیفتاد و بسیاری از نرم افزارهایی که روی ویندوز اکس پی اجرا می شدند روی ویستا هم بدون هیچ مشکلی اجرا شدند و برخی از نرم افزارها هم با ایجاد یک تغییر کوچک توسط سازنده، قابل استفاده در ویستا بودند. البته مسئله ای که برخی نرم افزارهای کاربردی با آن مواجه شدند، قابلیت جدید ویستا به نام UAC بود که برای تامین امنیت کاربران در ویندوز ایجاد شد و مشکلاتی را برای برنامه هایی که احتیاج به دسترسی Administrator برای انجام برخی اعمال در ویندوز داشتند، بوجود آورد.

خبر خوب این است که اگر نرم افزاری هم اکنون روی ویندوز ویستا به خوبی اجرا می شود، به طور حتم می توان گفت بدون هیچ تغییری در نرم افزار مربوطه، روی ویندوز 7 نیز به خوبی اجرا خواهد شد. برای اینکه مطمئن شوید که نرم افزار شما بدون هیچ مشکلی روی ویندوز ویستا نسخه نهایی اجرا خواهد شد یا خیر قدم های زیر را دنبال کنید :

  • Windows Application Compatibility Toolkit (ACT) 5.5 و Application Verifier 4.0 را دانلود و نصب کنید. این برنامه ها به شما می گویند که نرم افزر شما با کدام امکانات نسخه جدید ویندوز مشکل خواهد داشت و شامل مستنداتی هستند که به شما در ساخت نرم افزاری که با نسخه جدید ویندوز کاملاً سازگار باشد، کمک می کنند.
  • کتاب Windows 7 Application Quality Cookbook را دانلود کنید و بخوانید. این کتاب در مورد سازگاری نرم افزارهای دیگر با ویندوز، امکانات جدید ویندوز 7 و ویندوز سرور 2008 و تغییرات در بخش های مهم ویندوز مطالب خوبی دارد.

به هر حال ویندوز 7 در سال 2009 بر اساس قولی که مایکروسافت داده است در سال 2009 به بازار خواهد آمد. پیش بینی می شود که استقبال کاربران از این ویندوز خیلی بیشتر از ویندوز ویستا خواهد بود. خیلی از کسانی که از ویندوز اکس پی استفاده می کنند و به ویندوز ویستا مهاجرت نکرده اند، حتمآً از ویندوز 7 استفاده خواهند کرد، زیرا دیگر ویندوز اکس پی جوابگوی آن ها نخواهد بود. می توانید با دریافت و نصب نسخه RC ویندوز 7 با امکانات جدید آن آشنا شوید و نرم افزارهای خود را روی آن امتحان کنید.

منبع قسمتی از مطلب : A Developer’s Guide to Preparing for Windows 7

مطالب مرتبط :

اگر تمايل به دنبال کردن مطالب اين وبلاگ داريد، مي توانيد مشترک فيد فراسان شويد.

چطور مشترک شويم؟

سیلورلایت 3.0 ارائه شد

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

18 مارس در MIX09 مایکروسافت نسخه ی بتای سیلورلایت 3.0 را معرفی کرد. در این کنفرانس که در لاس وگاس برگزار شد، علاوه بر نسخه جدید سیلورلایت، IIS 7، ASP.NET MVC Framework، IE 8، Blend 3، Visual Studio 2010 نیز مورد بررسی قرار گرفتند.  در این نوشته قصد داریم به معرفی ویژگی های جدید سیلورلایت نسخه 3.0 بتا بپردازیم.

اجرا خارج از مرورگر Out of Browser

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

بهبود های گرافیکی

سیستم گرافیکی سیلورلایت بهبودهای زیادی در این نسخه پیدا کرده است. پشتیبانی از افکت های قابل برنامه ریزی، perspective 3D، ایجاد فایل های Bitmap با استفاده از API های جدید سیلورلایت از این جمله اند. این بهبودهای گرافیکی، توسعه دهندگان را قادر میسازد تا مانور بیشتری روی تصاویر بدهند و افکت های تصویری مطلوب خود را تولید کنند.

کنترل های جدید

چندین کنترل جدید به SDK سیلورلایت اضافه شده اند و برخی از کنترل های موجود بهبود یافته اند. در این نسخه کنترل های جدید برای اعتبار سنجی داده های ورودی و هندل کردن خطاهای رابط کاربری معرفی شده اند. این کنترل ها به هنگام وارد کردن داده ها توسط کاربر به اعتبار سنجی آن و احتمالاً نشان دادن پیغام خطا می پردازند. برخی از کنترل های موجود در Silverlight Control Toolkit از جمله WrapPanel, DockPanel, ViewBox, AutoCompleteBox,Label در SDK نسخه 3.0 سیلورلایت ارائه شده اند. کنترل جدید SaveFileDialog هم به کاربران اجازه ذخیره فایل ها را روی هارد دیسک کامپیوترشان می دهد.

کنترل های پیشرفته تر مثل DataForm که امکان کار با داده ها (اضافه کردن، حذف و ویرایش) و حرکت میان آن ها را به شما می دهد. DataPager که امکان مرور صفحه به صفحه داده ها را به کاربر نهایی می دهد و Navigation Framework که برای حرکت میان صفحات یک اپلیکیشن سیلورلایت کاربرد دارد.

قابلیت های چند رسانه ای

چیزی که از قبل معلوم بود، پشتیبانی سیلورلایت 3.0 از فرمت های H264 و ACC است. پشتیبانی از RAW و امکان ایجاد Codecهای سفارشی توسط توسعه دهندگان از دیگر قابلیت های اضافه شده به سیستم مالتی مدیای سیلورلایت است.

بهبود کیفیت رندر متون Text Rendering

استفاده از افکت های انیمیشنی در متن ها و ایجاد متونی واضح تر برای کاربر در این نسخه از سیلورلایت بیشتر به چشم می آیند. با استفاده از API جاوا اسکریپت موجود در این نسخه، اپلیکیشن های سیلورلایت می توانند از فونت های محلی روی سیستم کاربر نیز علاوه بر فونت های روی سرور، استفاده کنند، که این باعث کاهش زمان بارگذاری اپلیکیشن می شود. در نسخه نهایی سیلورلایت قرار است از فناوری ClearType هم برای افزایش کیفیت متون استفاده شود.

بایند کردن عنصر به عنصر Element-to-Element Binding

این قابلیت به عناصر موجود روی رابط کاربری اجازه بایند شدن به مشخصات (Properties) یکدیگر را می دهد. مثلاً بدون کد نویسی می توانید مقدار یک Slider را به پراپرتی Text یک TextBox نسبت دهید. با این کار هر گاه مقدار Slider توسط کاربر تغییر کند، مقدار Text مربوط به TextBox به صورت خودکار آپدیت می شود.

Network Monitoring API

با استفاده از این API خواهید توانست اتصال به اینترنت را در یک اپلیکیشن سیلورلایت چک کنید. برخی مواقع لازم است که بدانید کاربر با اینترنت ارتباط دارد یا از آن Disconnect شده است.

Binary XML

برای ارتباط با سرویس های WCF، علاوه بر فرمت معمولی مبتنی بر متن XML، می توانید از فرمت فشرده Binary XML در سیلورلایت 3 استفاده کنید.

سرویس های .NET RIA

به همراه سیلورلایت 3 بتا، مایکروسافت فریم ورک .NET RIA Services را منتشر کرده است. این ابزار سعی می کند تا معماری n-tier را ساده تر کند و دو فناوری Silverligt و ASP.NET را به هم نزدیک تر نماید. .NET RIA Services الگویی برای نوشتن منطق برنامه در لایه میانی اپلیکیشن به شما ارائه می کند و دستیابی به داده ها را کنترل می کند. وظیفه هایی مثل اعتبار سنجی داده ها، تشخیص هویت و ارتباط میان سیلورلایت در کلاینت و ASP.NET در لایه میانی را بر عهده دارد.

واضح است که در این مطلب کوتاه نمی توان به بررسی تمام ویژگی های جدید سیلورلایت 3.0 پرداخت. مایکروسافت تمام تلاش خود را می کند تا آینده دنیای نرم افزار را در دست بگیرد و استانداردهای نرم افزارهای آینده را از همین حالا تعیین کند. مایکروسافت قدم های اولیه را خیلی وقت است به درستی برداشته است و در این راه با وجود رقبای بزرگی مثل گوگل، IBM و ادوبی تا به حال موفق بوده است. باید منتظر ماند و دید آیا تلاش مایکروسافت منجر به ظهور انقلابی در دنیای برنامه نویسی و نرم افزار خواهد شد یا خیر.

در مطالب بعدی در مورد ابزارهای عرضه شده برای توسعه اپلیکیشن های سیلورلایت 3.0 و در کل فناوری سیلورلایت بیشتر خواهید خواند. برای اینکه این مطالب را از دست ندهید، مشترک فراسان شوید.

شاید این مطالب هم برای شما خواندنی باشند :

اگر تمايل به دنبال کردن مطالب اين وبلاگ داريد، مي توانيد مشترک فيد فراسان شويد.

چطور مشترک شويم؟

انواع فایل ها و دایرکتوری ها در ASP.NET

وب سایت های مبتنی بر ASP.NET شامل فایل ها و دایرکتوری های خاصی هستند که هر برنامه نویسی باید با آن ها آشنایی داشته باشد. پسوند هر فایل در ASP.NET معرف نحوه عملکرد و اجزای داخلی آن است. همچنین ASP.NET دایرکتوری هایی با نام های مشخص برای منظور های مختلف در نظر گرفته است. در این مطلب قصد دارم علاقه مندان به یادگیری ASP.NET را با انواع فایل ها و دایرکتوری های یک وب اپلیکیشن در ASP.NET آشنا کنم. البته در این مطلب با تمام فایل ها و دایرکتوری های ASP.NET آشنا نخواهید شد. به مرور و در مطالب بعدی بیشتر در مورد ASP.NET خواهید خواند. پیشنهاد میکنم برای آشنایی با ASP.NET ابتدا این مطلب را مطالعه کنید.

انواع فایل ها در یک وب اپلیکیشن ASP.NET

فايل هاي aspx
صفحات وبي که رابط کاربري اپليکيشن شما را شکل مي دهند. در واقع جايگزين فايل هاي asp کلاسيک در دات نت فريم ورک هستند. کاربران براي ارتباط با برنامه شما به صورت مستقيم از اين فايل ها استفاده خواهند کرد.

فايل هاي ascx
اين ها فايل هاي User Control هستند. User Controlها شبيه به صفحات وب aspx هستند با اين تفاوت که کاربران نمي توانند به صورت مستقيم به اين نوع فايل ها دستيابي داشته باشند. User Controlها بايد در صفحات وب aspx قرار بگيرند تا کاربران بتوانند از آن ها استفاده کنند. User Controlها به شما اجازه مي دهند تا قسمتي از رابط کاربري را بسازيد و آن را چند بار در صفحات مختلف به کار ببريد. با اين کار ديگر احتياجي به تکرار يک مجموعه کد نخواهيد داشت.

فايل هاي asmx
وب سرويس هاي ASP.NET داراي اين پسوند هستند. وب سرويس ها مجموعه اي از متدها هستند که اين متدها مي توانند در سراسر اينترنت صدا زده شوند. وب سرويس ها متفاوت از صفحات وب کار می کنند، ولی از منابع، تنظیمات و حافظه ی همان اپلیکیشن وب استفاده می کنند.

فایل web.config
فایل تنظیمات اپلیکیشن های ASP.NET که به زبان نشانه گذاری XML هستند. این فایل شامل تنظیمات امنیتی، مدیریت حافظه، مدیریت حالت و بسیاری تنظیمات دیگر است. وقتی این فایل را تغییر دهید، در حقیقت رفتار وب اپلیکیشن را در برابر موقعیت های مختلف تغییر داده اید.

فایل Global.asx
متغیرها و رویدادهای سراسری یک وب اپلیکیشن ASP.NET در این فایل قرار می گیرند. متغیرهایی که در این فایل تعریف می شوند می توانند در سراسر برنامه و هر یک از صفحات وب اپلیکیشن شما دستیابی شوند. در این فایل می توانید رویدادهایی همچون Application_Start (وقتی اپلیکیشن شما شروع به کار می کند) را Handle کنید.

فایل های سورس cs, vb
این فایل ها شامل کدهای C# و Visual Basic هستند و به اصطلاح Code-behinde اپلیکیشن شما را تشکیل می دهند. این فایل ها به شما اجازه می دهند تا منطق یک صفحه وب را از رابط کاربری آن جدا کنید. Code-behind مدلی است که مایکروسافت آن را برای توسعه تحت وب به شما پیشنهاد می کند.

learn-about-aspnet-logo

انواع دایرکتوری در یک وب اپلیکیشن ASP.NET

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

دایرکتوری Bin
شامل تمام کامپوننت های کامپایل شده (DLLها) دات نت که وب اپلیکیشن شما از آن ها استفاده می کند. به طور مثال، اگر شما یک کامپوننت خاص برای دستیابی به دیتابیس توسعه داده اید، بایستی آن را در این دایرکتوری قرار دهید. سپس ASP.NET به صورت خودکار اسمبلی را شناسایی کرده و هر یک از صفحات وب موجود در وب اپلیکیشن شما قادر به استفاده از آن کامپوننت خواهند بود. استفاده از این مدل توزیع بسیار آسان تر از مدل قدیمی کامپوننت های COM است. کامپوننت های COM را باید قبل از استفاده رجیستر کرد و اغلب وقتی تغییر هم می کنند باید دوباره آن ها را رجیستر نمود.
دایرکتوری App_Data
داده های وب اپلیکیشن شامل فایل های دیتابیس و فایل های XML در این دایرکتوری قرار می گیرند. البته شما می توانید دیتابیس خود را در هرجایی جز این دایرکتوری هم قرار دهید.

دایرکتوری App_GlobalResources
منابع سراسری که قابل دسترسی در تمامی صفحات وب شما هستند، در این دایرکتوری قرار می گیرند. اغلب از این دایرکتوری برای اپلیکیشن های وبی که چندین زبان را پشتیبانی می کنند، استفاده می شود.

دایرکتوری App_LocalResources
دقیقاً شبیه به دایرکتوری App_GlobalResources عمل می کند با این تفاوت که منابع تنها برای یک صفحه مشخص قابل دسترسی اند.

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

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

farasun.wordpress.com

شاید این مطالب هم برای شما خواندنی باشند :

اگر تمايل به دنبال کردن مطالب اين وبلاگ داريد، مي توانيد مشترک فيد فراسان شويد.

چطور مشترک شويم؟