<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://weblogs.asp.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>وبلاگ اسکات  گوسری به زبان فارسی</title><link>http://weblogs.asp.net/scottgufarsi/default.aspx</link><description>ScottGu's Blog In Farsi</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Debug Build: 20510.895)</generator><item><title>لینک های یازدهم آوریل: ASP.NET,ASP.NET AJAX,ASP.NET MVC, Visual Studio,Silver Light</title><link>http://weblogs.asp.net/scottgufarsi/archive/2008/04/15/a.aspx</link><pubDate>Tue, 15 Apr 2008 09:35:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6101315</guid><dc:creator>armin.ol</dc:creator><slash:comments>7</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/scottgufarsi/rsscomments.aspx?PostID=6101315</wfw:commentRss><comments>http://weblogs.asp.net/scottgufarsi/archive/2008/04/15/a.aspx#comments</comments><description>&lt;P dir=rtl mce_keep="true"&gt;&lt;STRONG&gt;ASP.NET:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL dir=rtl&gt;
&lt;LI&gt;
&lt;DIV&gt;&lt;A href="http://scottonwriting.net/sowblog/posts/13196.aspx" target=_blank mce_href="http://scottonwriting.net/sowblog/posts/13196.aspx"&gt;آموزش های امنیت بیشتر در ASP.NET&lt;/A&gt;:&amp;nbsp;سه آموزش آخر و&amp;nbsp;عالی اسکات میشل در مورد امنیت&amp;nbsp;ASP.NET&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV&gt;سه آموزش آخر او موضوعات انتخاب حساب های کاربران-بازیابی و تغییر رمز عبورها و باز کردن قفل و تایید حساب ها ی کاربران را تحت&amp;nbsp;پوشش قرار می دهد.&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV&gt;&lt;A href="http://mattberseth.com/blog/2008/04/building_a_vs2008_styled_grid.html" mce_href="http://mattberseth.com/blog/2008/04/building_a_vs2008_styled_grid.html"&gt;ساخت یک&amp;nbsp;,Grid طرحدار برای Visual Studio 2008 با کنترل های&amp;nbsp;ListView و&amp;nbsp;DataPager:&lt;/A&gt;&amp;nbsp;مت برثث یک مقاله ی عالی انجام داده که در آن&amp;nbsp;در مورد تکنیک هایی سخن گفته که شما می توانید آنها را در کنترل های جدید ListView در ASP.NET 3.5 استفاده کنید تا یک Grid User Interface طرحدار زیبا بسازید, در حالیکه تعداد کنترل های&amp;nbsp;HTML و&amp;nbsp;CSS&amp;nbsp;که استفاده کردید حفظ می شود. همچنین برای پیگیری بیشتر این پست را هم بخوانید که درباره ی&amp;nbsp;انجام داددن همین کار با استفاده از کنترل های Grid View صحبت می کند.&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV&gt;&lt;A href="http://www.emmaalvarez.com/2008/04/most-useful-50-css-tips-and-tools-for.html" mce_href="http://www.emmaalvarez.com/2008/04/most-useful-50-css-tips-and-tools-for.html"&gt;۵۰ ترفند مفید برای CSS&lt;/A&gt;:&amp;nbsp;یک صفحه ی مفید که یک لیست خوب را از ترفند های گوناگون CSS و ابزار مفید را در اختیار شما می گذارد.&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://mattberseth.com/blog/2008/04/using_a_datapager_with_the_gri.html"&gt;استفاده از یک DataPager با&amp;nbsp;کنترل GridView-به کار بردن IP محتوی آیتم زماندار&lt;/A&gt;: مت برثث یک مقاله ی عالی در این مورد ارائه داده که نشان می دهد چگونه از رابط&amp;nbsp;IP Ageable Item Container&amp;nbsp; برای به کار بردن صفحه سازی با حمایت کنترل جدید DataPager در ASP.NET 3.5 استفاده کنیم.&lt;/LI&gt;&lt;/UL&gt;
&lt;P dir=rtl&gt;&lt;STRONG&gt;ASP.NET AJAX:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL dir=rtl&gt;
&lt;LI&gt;
&lt;DIV&gt;&lt;A href="http://dotnetslackers.com/articles/ajax/AccessibleUpdatePanel.aspx"&gt;UpdatePanel&amp;nbsp;قابل دسترسی&lt;/A&gt;: برتراند لی رویی, از تیم ASP.NET یک مقاله ی عالی ارائه داده که در&amp;nbsp;آن توضیح داده که چگونه ASP.NET AJAX's UpdatePanel را برای خوانندگان از روی تصویر قابل دسترسی کنیم.&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV&gt;&lt;A href="http://aspadvice.com/blogs/garbin/archive/2008/04/02/ASP.NET-AJAX-meets-Virtual-Earth-series-on-DotNetSlackers.aspx"&gt;ASP.NET همراه&amp;nbsp;Virtual Earth&lt;/A&gt;: الکساندرو گالو,&amp;nbsp;نویسنده ی کتاب &amp;nbsp;&lt;A href="http://www.amazon.com/gp/product/1933988142/104-9219624-7383145?ie=UTF8&amp;amp;tag=scoblo04-20&amp;amp;linkCode=xm2&amp;amp;camp=1789&amp;amp;creativeASIN=1933988142"&gt;ASP.NET AJAX in Action&lt;/A&gt;, یک سری مقالات جالب ارائه داده که در آنها درباره ی استفاده ی ASP.NET AJAX&amp;nbsp;همراه Virual Earthبرای اجرای نقشه ها ( استفاده از نقشه ی&amp;nbsp;مکان های مختلف&amp;nbsp;در وبسایت) در وبسایت صحبت می کند.&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV&gt;&lt;A href="http://weblogs.asp.net/omarzabir/archive/2008/04/06/fast-page-loading-by-moving-asp-net-ajax-scripts-after-visible-content.aspx"&gt;بار گذاری سریع تر صفحات وب با استفاده از اسکریپت های ASP.NET Ajax در پس محتویات ظاهری وب&lt;/A&gt;: عمر الزبیر (موسس دوم وبسایت &lt;A href="http://www.pageflakes.com/"&gt;www.PageFlakes.com&lt;/A&gt;&amp;nbsp;) یک مقاله ی عالی&amp;nbsp;ارائه داده که در آن یک تکنیک&amp;nbsp;جالب را برای&amp;nbsp;بهبود بخشیدن&amp;nbsp;سرعت دریافت در&amp;nbsp;مرحله بارگذاری یک صفحه ی ASP.NET AJAX معرفی می کند. من همچنین پیشنهاد میکنم که برای یادگیری تکنیک های بیشتر و نظرات دیگر او, کتاب او یعنی&amp;nbsp;&amp;nbsp;Building a Web 2.0 Portal&amp;nbsp;with ASP.NET 3.5&amp;nbsp; را مطالعه کنید.&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV&gt;&lt;A href="http://mattberseth.com/blog/2008/04/3_tips_for_working_with_the_aj.html"&gt;۳ترفند برای کار کردن با کنترل TabContainer در&amp;nbsp;ASP.NET AJAX&lt;/A&gt;: مت برثث کار&amp;nbsp;مقالات عالی خود&amp;nbsp;&amp;nbsp;را با مقاله ای با موضوع ترفندهایی برای کار با&amp;nbsp;TabContainer در&amp;nbsp;ASP.NET AJAX Control Tollkit ادامه می هد.&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV&gt;&lt;A href="http://blogs.msdn.com/mikeormond/archive/2008/03/28/building-asp-net-ajax-controls-index-post.aspx"&gt;ساخت اجزائ (کامپوننت)&amp;nbsp;ASP.NET AJAX&lt;/A&gt;: مایک اورمند مقاله ای ۸ قسمتی نوشته که&amp;nbsp;درباره ی ساخت کامپوننت های&amp;nbsp;(اجزاء)&amp;nbsp;ASP.NET AJAX قابل استفاده که بروی هم کلاینت و هم سرور کار می کند صحبت می کند.&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P dir=rtl&gt;&lt;STRONG&gt;ASP.NET MVC:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL dir=rtl&gt;
&lt;LI&gt;
&lt;DIV&gt;&lt;A href="http://www.myvbprof.com/2007_Version/MVC_Intro_Tutorial.aspx"&gt;یک معرفی به ASP.NET MVC&amp;nbsp;با استفاده از VB.NET&lt;/A&gt;:&amp;nbsp;بیل برویس از &lt;A href="http://www.myvbprof.com/"&gt;www.MyVBprof.com&lt;/A&gt; یک مجموعه عالی را از ویدیو های روی وب&amp;nbsp;را درباره ی&amp;nbsp;شروع&amp;nbsp;&amp;nbsp;ASP.NET MVC&amp;nbsp;با استفاده&amp;nbsp;Visual Basic&amp;nbsp;جمع آوری کرده. و همچنین&amp;nbsp;حتماْ به ویدیو های او درباره ی &lt;A href="http://www.myvbprof.com/2007_Version/VB9_XML.aspx"&gt;LINQ&amp;nbsp;به XML با استفاده از VB &lt;/A&gt;&amp;nbsp;و LINQ&lt;A href="http://www.myvbprof.com/2007_Version/LINQ_to_SQL.aspx"&gt; به SQL با استفاده VB&lt;/A&gt;.&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV&gt;&lt;A href="http://www.squaredroot.com/post/2008/04/MVC-Membership-Starter-Kit.aspx"&gt;ASP.NET MVC: ابزار شروع عضویت&lt;/A&gt;: تروی گوید یک ابزار شروع عالی برای&amp;nbsp;ساخت سیستم عضویت در ASP.NET MVC ساخته که صفحات ثبت نام و ورود را برای کاربران در وبسایت شما&amp;nbsp;فراهم می سازد. و همچنین&amp;nbsp; یک سیستم مدیریت که به مدیر این امکان را می دهد حساب های کاربران را مدیریت کند. از &lt;A href="http://www.codeplex.com/MvcMembership"&gt;اینجا&lt;/A&gt; دانلود کنید.&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV&gt;&lt;A href="http://www.squaredroot.com/post/2008/04/MVC-Error-Handler-Filter.aspx"&gt;ASP.NET MVC:&amp;nbsp;فیلتر عملیات برای مهار خطا ها&lt;/A&gt;: تروی گوید یک پست جالب دیگر ارائه داده که در&amp;nbsp;آن چند فیلتر عملیات خوب&amp;nbsp;در ASP.NET MVC&amp;nbsp;برای&amp;nbsp;مهار خطاهای Runtime&amp;nbsp;تهیه نموده.&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV&gt;&lt;A href="http://biasecurities.com/blog/2008/how-to-enable-pretty-urls-with-asp-net-mvc-and-iis6/"&gt;چگونه بسیاری از URL ها را با&amp;nbsp;ASP.NET MVC و&amp;nbsp;IIS 6 فعال کنیم&lt;/A&gt;:&amp;nbsp;جیمز&amp;nbsp;گرتس یک مقاله ی مفید&amp;nbsp; برای توضیح چگونگی فعال کردن URL های بدون&amp;nbsp;پسوند با ASP.NET MVC در&amp;nbsp;IIS6 ارائه داده. (نکته: نیازی نیست تنظیمات مخصوصی را&amp;nbsp;در &amp;nbsp;ASP.NET&amp;nbsp;MVC&amp;nbsp;بروی&amp;nbsp;&lt;FONT color=#000000&gt;IIS7 انجام دهید تا حمایت از URL های بدون پسوند را فعال کنید).&lt;/FONT&gt;&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P dir=rtl&gt;&lt;FONT color=#000000&gt;&lt;STRONG&gt;Visual Studio:&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;UL dir=rtl&gt;
&lt;LI&gt;
&lt;DIV&gt;&lt;A href="http://www.visualstudiogallery.com/ExtensionDetails.aspx?ExtensionId=df3f0c30-3d37-4e06-9ef8-3bff3508be31"&gt;فرمان های قوی برای Visual Studio 2008&lt;/A&gt;:&amp;nbsp;یک مجموعه رایگان از فایل های اضافی مفید برای ویژوال استودیو&amp;nbsp; ۲۰۰۸ که یک سری ویژگی جدید را به&amp;nbsp;محیط&amp;nbsp;کار&amp;nbsp; شما اضافه می کند.&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV&gt;&lt;A href="http://blogs.msdn.com/kirillosenkov/archive/2008/04/03/coding-productivity-macros-shortcuts-and-snippets.aspx"&gt;بهره وری از کد نویسی: میان برها و ریزه کاری&amp;nbsp; ها&lt;/A&gt;: کریل اوسنکو یک پست جالب&amp;nbsp;دارد که نشان می دهد که چگونه با استفاده از ریزه کاری های Visual Studio در وقت صرفه جویی کنیم.&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P dir=rtl&gt;&lt;FONT color=#000000&gt;&lt;STRONG&gt;Silver Light:&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;UL dir=rtl&gt;
&lt;LI&gt;
&lt;DIV&gt;&lt;A href="http://geekswithblogs.net/WynApseTechnicalMusings/Default.aspx"&gt;سری لینکهای فوق العاده&amp;nbsp;سیلور لایت از دیو کمپل&lt;/A&gt;: دیو کمپل یک پست مرتب از یک سری لینک های جدید سیلور لایت&amp;nbsp; و مقالات و محتویات ارائه داده. من پیشنهاد می کنم اگر می خواهید با &amp;nbsp;پست های عالی او در باره ی مقالات سیلور لایت&amp;nbsp;هم گام باشید در&amp;nbsp;بلاگ او ثبت نام کنید.&amp;nbsp;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV&gt;&lt;A href="http://blogs.msdn.com/jasonz/archive/2008/04/04/silverlight-2-map-datagrid-demo-part-2.aspx"&gt;آموزش سیلور&amp;nbsp;لایت ۲ نقشه/رشته اطلاعات&lt;/A&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV&gt;&amp;nbsp;&lt;A href="http://blogs.msdn.com/swiss_dpe_team/archive/2008/04/04/crud-operations-with-optimistic-locking-using-silverlight-2-beta1-wcf-and-linq-to-sql-inserts-updates-and-deletes.aspx"&gt;عملیات CRUD با&amp;nbsp;Silver Light 2,WCF و &amp;nbsp;LINQ به SQL&lt;/A&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV&gt;&lt;A href="http://blogs.msdn.com/sburke/archive/2008/03/22/tutorial-writing-a-templated-silverlight-2-control.aspx"&gt;نوشتن یک کنترل قالب شده ی Silver Light 2&lt;/A&gt;&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P dir=rtl&gt;امیدوارم مطالب مفید بوده باشه&lt;/P&gt;
&lt;P dir=rtl&gt;-اسکات&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6101315" width="1" height="1"&gt;</description></item><item><title>ترفند:ساخت کنترل کننده های کاربر با استفاده از سیلور لایت و فرم های ارائه دهنده ی ویندوز </title><link>http://weblogs.asp.net/scottgufarsi/archive/2008/04/11/6084296.aspx</link><pubDate>Thu, 10 Apr 2008 21:22:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6084296</guid><dc:creator>armin.ol</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/scottgufarsi/rsscomments.aspx?PostID=6084296</wfw:commentRss><comments>http://weblogs.asp.net/scottgufarsi/archive/2008/04/11/6084296.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;&lt;A href="http://weblogs.asp.net/blogs/scottgufarsi/AUC.png"&gt;&lt;IMG src="http://weblogs.asp.net/blogs/scottgufarsi/AUC.png" border=0&gt;&lt;/A&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; یکی از اهداف بنیادی سیلور لایت &amp;nbsp;و فرم های ارائه دهنده ی ویندوز(&amp;nbsp;&lt;A href="http://weblogs.asp.net/blogs/scottgufarsi/WPF.png"&gt;&lt;IMG src="http://weblogs.asp.net/blogs/scottgufarsi/WPF.png" border=0&gt;&lt;/A&gt; ) این است که این توانایی را به&amp;nbsp;برنامه نویس&amp;nbsp;بدهد تا بتواند به آسانی عملیات رابط&amp;nbsp;کاربر&amp;nbsp;را&amp;nbsp;در محفظه&amp;nbsp;ای به&amp;nbsp;کنترل های قابل استفاده برای بارها و بارها تبدیل کند.&lt;/P&gt;
&lt;P mce_keep="true"&gt;شما می توانید کنترل های رابط&amp;nbsp;جدیدی را با استفاده از یکی از کلاس های کنترل &amp;nbsp;موجود ایجاد کنید.&amp;nbsp;(با استفاده&amp;nbsp;از هر یک از کلاس های کنترل مثل&amp;nbsp;کلاس های کنترل&amp;nbsp;پایه یا از یک کنترل دیگر مثل تکست باکس ها و دکمه ها و غیره). به طور&amp;nbsp;متناوب شما می توانید کنترل های قابل استفاده برای کاربر را ایجاد کنید - چیزی که کار را برای استفاده از یک فایل&amp;nbsp;زبان توسعه پذیر متفاوت برنامه &amp;nbsp;برای ساخت رابط کاربر یک&amp;nbsp;کنترل آسان می سازد (و چیزی که کارها را بسیار آسان می سازد).&lt;/P&gt;
&lt;P mce_keep="true"&gt;در &lt;A class="" href="http://weblogs.asp.net/scottgu/pages/silverlight-tutorial-part-6-using-user-controls-to-implement-master-detail-scenarios.aspx" target=_blank mce_href="http://weblogs.asp.net/scottgu/pages/silverlight-tutorial-part-6-using-user-controls-to-implement-master-detail-scenarios.aspx"&gt;قسمت ششم&lt;/A&gt;&amp;nbsp;از سری آموزش های&amp;nbsp;من در این &lt;A class="" href="http://www.digg.com/" target=_blank mce_href="http://www.digg.com"&gt;وبسایت&lt;/A&gt;، نشان دادم که چگونه با استفاده از ویژوال استودیو 2008&amp;nbsp;و با استفاده از "ایجاد آیتم جدید"&amp;nbsp;و تعریف کردن&amp;nbsp;رابط&amp;nbsp;کاربر در آن یک کنترل جدید برای کاربر ایجاد کنیم.این شیوه&amp;nbsp;بسیار عالی کار می کند در زمانی که شما می خواهید یک رابط کاربر را با قرار دادن محفظه ای به کنترل برای کاربر تبدیل کنید.همچنین شما می توانید این تکنیک را با استفاده از&lt;A href="http://weblogs.asp.net/blogs/scottgufarsi/Ex-Ble.png"&gt;&lt;IMG src="http://weblogs.asp.net/blogs/scottgufarsi/Ex-Ble.png" border=0&gt;&lt;/A&gt;&amp;nbsp;&amp;nbsp;نیز اجرا کنید.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;STRONG&gt;&lt;U&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:استفاده از یک رابط کاربر موجود و تبدبل آن به عنوان یک کنترل برای کاربر&lt;/U&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;بعضی اوقات شما همیشه نمی دانید که می خواهید یک&amp;nbsp;عملیات رابط کاربر را در محفظه ای به عنوان یک کنترل قابل استفاده برای کاربر تبدیل&amp;nbsp;کنید،تا زمانی که شما واقعاً شروع به تعریف کردن آن بروی یک صفحه&amp;nbsp;یا کنترل بکنید.&lt;/P&gt;
&lt;P mce_keep="true"&gt;برای مثال، ما می خواهیم روی یک فرم کارکنیم،فرمی که به کاربر این توانایی را بدهد تا او بتواند&amp;nbsp;اطلاعات ار&lt;A href="http://weblogs.asp.net/blogs/scottgufarsi/Untitled-1.jpg"&gt;&lt;/A&gt;سال (مانند آدرس)&amp;nbsp;و صورتحساب را در آن وارد کند.ما احتمالاً کار را با ایجاد رابط کاربر و محفظه هایی برای&amp;nbsp;اطلاعات آدرس شروع می کنیم.برای انجام این&amp;nbsp;کار ما می توانیم یک&amp;nbsp;&lt;A href="http://weblogs.asp.net/blogs/scottgufarsi/Border.png"&gt;&lt;IMG src="http://weblogs.asp.net/blogs/scottgufarsi/Border.png" border=0&gt;&lt;/A&gt;&amp;nbsp;&amp;nbsp;به صفحه اضافه کنیم،و صفحه را طرح بندی می کنیم (با 2 ستون و 4 ردیف)، و بعد لیبل ها و تکست باکس ها را در آن قرار می دهیم: مثل شکل زیر&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;IMG title="Step 1" style="WIDTH: 786px; HEIGHT: 422px" height=422 alt="Step 1" src="http://www.scottgu.com/blogposts/extractusercontrol/step1.png" width=786 mce_src="http://www.scottgu.com/blogposts/extractusercontrol/step1.png"&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;بعد از اینکه کاملاً با دقت این کارها انجام دادیم، احتمالاً می فهمیم که "هی-ما داریم دقیقاً از یک رابط کاربر استفاده می کنیم برای اطلاعات صورتحساب،خوب شاید ما باید&amp;nbsp;یک کنترل&amp;nbsp;کاربر&amp;nbsp;قابل استفاده برای آدرس ایجاد&amp;nbsp;کنیم،پس&amp;nbsp;در این حالت ما می توانیم از تکرار دوری کنیم". ما می توانیم از شیوه ی&amp;nbsp;"ایجاد یک آیتم جدید" در قالب پروژه&amp;nbsp;استفاده کنیم تا یک کنترل&amp;nbsp;خالی&amp;nbsp;جدید برای کاربر ایجاد کنیم و بعد محتویات بالای رابط کاربر را در آن&amp;nbsp;کپی/پیست می کنیم.&lt;/P&gt;
&lt;P mce_keep="true"&gt;با این حال یک ترفند سریع تر برای این کار در این برنامه این است که ما کنترل هایی را که می خواهیم به عنوان کنترل&amp;nbsp;کاربر استفاده کنیم را انتخاب کنیم و روی آنها "&lt;STRONG&gt;کلیک راست&lt;/STRONG&gt;" کنیم&amp;nbsp;و گزینه ی&amp;nbsp;"&lt;STRONG&gt;ایجاد کنترل"&lt;/STRONG&gt; را انتخاب کنیم: مثل شکل&amp;nbsp;زیر&amp;nbsp;&lt;/P&gt;&lt;A href="http://weblogs.asp.net/blogs/scottgufarsi/step3-f.png"&gt;&lt;/A&gt;
&lt;P mce_keep="true"&gt;&lt;IMG src="http://weblogs.asp.net/blogs/scottgufarsi/step3-f.png" mce_src="http://weblogs.asp.net/blogs/scottgufarsi/step3-f.png"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;زمانی که ما گزینه ی "ایجاد کنترل" را انتخاب کردیم برنامه پیامی را به نشان می دهد و از ما درخواست نامی برای ساخت کنترل جدید می کند: مثل شکل زیر&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;IMG src="http://www.scottgu.com/blogposts/extractusercontrol/step4.png" mce_src="http://www.scottgu.com/blogposts/extractusercontrol/step4.png"&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;ما نام آن را &lt;A href="http://weblogs.asp.net/blogs/scottgufarsi/Auc-.png"&gt;&lt;IMG src="http://weblogs.asp.net/blogs/scottgufarsi/Auc-.png" border=0&gt;&lt;/A&gt;&amp;nbsp;&amp;nbsp;می گذاریم و روی دکمه &lt;IMG src="http://weblogs.asp.net/blogs/scottgufarsi/ok.png" border=0&gt;&amp;nbsp;کلیک می کنیم &amp;nbsp;با این کار برنامه یک کنترل کاربر جدبد که دربردارنده یمحتویاتی است که ما انتخاب کردیم ایجاد می کند: مثل شکل زیر&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;IMG src="http://www.scottgu.com/blogposts/extractusercontrol/step5.png" mce_src="http://www.scottgu.com/blogposts/extractusercontrol/step5.png"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P mce_keep="true"&gt;زمانی که ما بازسازی انجام می دهیم و به صفحه ی اصلی باز می گردیم، مشاهده می کنیم که رابط کاربر با همان&amp;nbsp;ظاهر قبل است، با این تفاوت که آدرس&amp;nbsp;رابط کاربر&amp;nbsp; در محفظه ی&amp;nbsp;&lt;A href="http://weblogs.asp.net/blogs/scottgufarsi/AUC.png"&gt;&lt;IMG src="http://weblogs.asp.net/blogs/scottgufarsi/AUC.png" border=0&gt;&lt;/A&gt;&amp;nbsp;&amp;nbsp;قرار دارد: مثل شکل زیر&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;IMG src="http://www.scottgu.com/blogposts/extractusercontrol/step6.png" mce_src="http://www.scottgu.com/blogposts/extractusercontrol/step6.png"&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;ما می توانیم این اولین&amp;nbsp;&lt;A href="http://weblogs.asp.net/blogs/scottgufarsi/AUC.png"&gt;&lt;IMG src="http://weblogs.asp.net/blogs/scottgufarsi/AUC.png" border=0&gt;&lt;/A&gt;&amp;nbsp;&amp;nbsp;را&amp;nbsp;&lt;A href="http://weblogs.asp.net/blogs/scottgufarsi/ship%20adres.png"&gt;&lt;IMG src="http://weblogs.asp.net/blogs/scottgufarsi/ship%20adres.png" border=0&gt;&lt;/A&gt;&amp;nbsp;&amp;nbsp;بنامیم و بعد یک مورد دیگر&amp;nbsp;کنترل کاربر به صفحه اضافه کنیم تا اطلاعات صورتحساب را ثبت کند.&amp;nbsp;ما نام این دومین&amp;nbsp;کنترل کاربر را&amp;nbsp;&lt;A href="http://weblogs.asp.net/blogs/scottgufarsi/billadd.png"&gt;&lt;IMG src="http://weblogs.asp.net/blogs/scottgufarsi/billadd.png" border=0&gt;&lt;/A&gt;&amp;nbsp; می نامیم: مثل شکل زیر&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;IMG src="http://www.scottgu.com/blogposts/extractusercontrol/step7.png" mce_src="http://www.scottgu.com/blogposts/extractusercontrol/step7.png"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;و حالا اگر ما بخواهیم که ظاهر آدرس هایمان را عوض کنیم، ما می توانیم این کار را در جایی دیگر انجام دهیم و آن را برای&amp;nbsp;هر دو کنترل (اطلاعات ارسال و اطلاعات صورتحساب)&amp;nbsp;ثبت کنبم.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :&lt;A href="http://weblogs.asp.net/blogs/scottgufarsi/AUC.png"&gt;&lt;IMG src="http://weblogs.asp.net/blogs/scottgufarsi/AUC.png" border=0&gt;&lt;/A&gt;&amp;nbsp;اتصال آدرس&amp;nbsp;اطلاعات به&lt;/STRONG&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;حالا ما چند کنترل برای کاربر داریم که آدرس رابط کاربر ما در محفظه ای قرار داده، حالا شروع به ساختن آدرس دیتا مدل کلاس می کنیم که با آن می توانیم آنها را موظف به کار کردن در مقابل هم بکنیم. ما کلاس را به صورت زیر تعریف می کنیم (آموختن &lt;A class="" href="http://weblogs.asp.net/scottgu/archive/2007/03/08/new-c-orcas-language-features-automatic-properties-object-initializers-and-collection-initializers.aspx" target=_blank mce_href="http://weblogs.asp.net/scottgu/archive/2007/03/08/new-c-orcas-language-features-automatic-properties-object-initializers-and-collection-initializers.aspx"&gt;خصوصیات خودکار&lt;/A&gt; جدید زبان)&amp;nbsp;: شکل زیر&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&amp;nbsp;&lt;IMG src="http://www.scottgu.com/blogposts/extractusercontrol/step8.png"&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;درون فایل کدهای پشت پرده ی فایل&amp;nbsp;&amp;nbsp; ما می توانیم دو نمونه از موضوع آدرس را معرفی کنیم - یکی برای آدرس ارسال و دیگری برای آدرس صورتحساب&amp;nbsp;(برای اهداف این الگو ما آنها را در اطلاعات مصنوعی یا ساختگی اسکان می دهیم). ما بعد به طور برنامه ریزی شده موضوعات آدرس را به&amp;nbsp;آدرس کنترل کاربر اتصال می دهیم.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P mce_keep="true"&gt;ما این کار را با تنظیم خاصیت&amp;nbsp;"مفاد اطلاعات" &amp;nbsp;&lt;IMG src="http://weblogs.asp.net/blogs/scottgufarsi/data-context.png" border=0&gt; روی هر کنترل کاربر&amp;nbsp;اختصاص داده شده به مدل اطلاعات آدرس&amp;nbsp;ارسال یا صورتحساب انجام می دهیم: مثل شکل زیر&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;IMG src="http://www.scottgu.com/blogposts/extractusercontrol/step9.png"&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;آخرین قدم ما این است که به طور واضح توضیحات &lt;A href="http://weblogs.asp.net/blogs/scottgufarsi/binding.png"&gt;&lt;IMG src="http://weblogs.asp.net/blogs/scottgufarsi/binding.png" border=0&gt;&lt;/A&gt;&amp;nbsp;را درون فایل &lt;A href="http://weblogs.asp.net/blogs/scottgufarsi/Auc-xaml.png"&gt;&lt;IMG src="http://weblogs.asp.net/blogs/scottgufarsi/Auc-xaml.png" border=0&gt;&lt;/A&gt; اضافه کنیم، که یک&amp;nbsp;رابطه دو طرفه&amp;nbsp;اتصال اطلاعات را بین خصوصیات &lt;A href="http://weblogs.asp.net/blogs/scottgufarsi/text.png"&gt;&lt;IMG src="http://weblogs.asp.net/blogs/scottgufarsi/text.png" border=0&gt;&lt;/A&gt;&amp;nbsp;که مربوط به کنترل های تکست باکس درون کنترل کاربر و خصوصیات موضوع&amp;nbsp;مدل اطلاعات آدرس که ما به کنترل کاربر&amp;nbsp;ضمیمه کردیم&amp;nbsp;نصب خواهد&amp;nbsp;کرد: شکل زیر&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;IMG src="http://www.scottgu.com/blogposts/extractusercontrol/step12.png"&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;وقتی که کلید&amp;nbsp;&lt;A href="http://weblogs.asp.net/blogs/scottgufarsi/f5.png"&gt;&lt;IMG src="http://weblogs.asp.net/blogs/scottgufarsi/f5.png" border=0&gt;&lt;/A&gt;&amp;nbsp;را فشار می دهیم تا برنامه را اجرا کنیم ما حالا به صورت خودکار عملیات اتصال اطلاعات بین&amp;nbsp;موضوعات مدل اطلاعات آدرس&amp;nbsp;و&amp;nbsp;آدرس کنترل کاربر را خواهیم داشت: شکل زیر&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;IMG src="http://www.scottgu.com/blogposts/extractusercontrol/step11.png"&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;بدلیل اینکه ما نوع متغییر&amp;nbsp;&lt;IMG src="http://weblogs.asp.net/blogs/scottgufarsi/binding.png" border=0&gt;&amp;nbsp;را به صورت &lt;A href="http://weblogs.asp.net/blogs/scottgufarsi/twoway.png"&gt;&lt;IMG src="http://weblogs.asp.net/blogs/scottgufarsi/twoway.png" border=0&gt;&lt;/A&gt;&amp;nbsp;نصب کردبم، تغییراتی که کاربر در تکست باکس ها ایجاد می کند به طور اتوماتیک به موضوعات&amp;nbsp;مدل اطلاعات آدرس بر می گردد. (این کار نیاز به وجود کدی&amp;nbsp; ندارد تاانجلم شود). برای مثال، ما می توانیم آدرس ارسال را تغییر دهیم و به جای آدرس قبلی آدرس جدیدی را جایگزین کنیم،مثلاً آدرس ارسال را به دیزنی لند تغییر دهیم: شکل زیر&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;IMG src="http://www.scottgu.com/blogposts/extractusercontrol/step14.png"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;اگر ما یک بریک پونت روی رویداد &lt;A href="http://weblogs.asp.net/blogs/scottgufarsi/click.png"&gt;&lt;IMG src="http://weblogs.asp.net/blogs/scottgufarsi/click.png" border=0&gt;&lt;/A&gt;&amp;nbsp;دکمه ی&amp;nbsp;&lt;A href="http://weblogs.asp.net/blogs/scottgufarsi/save.png"&gt;&lt;IMG src="http://weblogs.asp.net/blogs/scottgufarsi/save.png" border=0&gt;&lt;/A&gt;&amp;nbsp;قرار دهیم و بعد روی دکمه کلیک کنیم، ما می توانیم ببینیم که چگونه تغییرات تکست باکس بالا به طور خودکار در&amp;nbsp;مدل اطلاعات موضوعی&amp;nbsp;&lt;IMG src="http://weblogs.asp.net/blogs/scottgufarsi/_shippingadd.png" border=0&gt;&amp;nbsp;ما منعکس می شود: شکل زیر&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;IMG src="http://www.scottgu.com/blogposts/extractusercontrol/step15.png"&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;بعد ما میتوانیم رویداد &lt;IMG src="http://weblogs.asp.net/blogs/scottgufarsi/savebtn.png" border=0&gt;&amp;nbsp;را اجرا کنیم تا هر طوری که می خواهیم روی مدل اطلاعات موضوعی ارسال یا صورتحساب اصرار بورزیم - بدون اینکه حتی چیزی را در کنترل های رابط کاربر روی صفحه دست کاری یا اصلاح کنیم.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&amp;nbsp;این جدا سازی تمیزی که&amp;nbsp;&lt;A href="http://weblogs.asp.net/blogs/scottgufarsi/WPF.png"&gt;&lt;IMG src="http://weblogs.asp.net/blogs/scottgufarsi/WPF.png" border=0&gt;&lt;/A&gt;&amp;nbsp;و سیلور لایت&amp;nbsp;بین مدل کار&amp;nbsp;و چهره ی ظاهری کار انجام می دهد، کار را برای تغییر رابط کاربر کنترل کاربر آدرس در آینده &amp;nbsp;بدون به روز رسانی حتی یک کد در صفحه اسان می سازد. این&amp;nbsp;همچنین این را ممکن می سازد که&amp;nbsp; اسانتر عملیات واحد تست انجام شود. برای آشنایی بیشتر با واحد تست کردن سیلور لایت به &lt;A class="" href="http://weblogs.asp.net/scottgu/archive/2008/04/02/unit-testing-with-silverlight.aspx" target=_blank mce_href="http://weblogs.asp.net/scottgu/archive/2008/04/02/unit-testing-with-silverlight.aspx"&gt;این پست&lt;/A&gt; مراجها کنید.&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;امیدوارم که این مطلب مفید واقع بشود&lt;/P&gt;
&lt;P mce_keep="true"&gt;اسکات&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6084296" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/scottgufarsi/archive/tags/.Net/default.aspx">.Net</category><category domain="http://weblogs.asp.net/scottgufarsi/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://weblogs.asp.net/scottgufarsi/archive/tags/Tips+And+Tricks/default.aspx">Tips And Tricks</category><category domain="http://weblogs.asp.net/scottgufarsi/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://weblogs.asp.net/scottgufarsi/archive/tags/WPF/default.aspx">WPF</category></item></channel></rss>