01 - The Basics
02 - TreeViews and Value Converters
03 - View Model MVVM Basics
04 - Custom Window Chrome and Styles
05 - Creating Login Form Sign Up Screen
06 - Attached Properties
07 - Storyboard Animations
08 - Advanced View Models Real World
09 - User Controls Side Menu Content
10 - ItemsControl Chat List & Design Time Data
11 - Dependency Injection & Multiple Projects
12 - MVVM View Model Binding to Animations
13 - Complete Page Animation
14 - Create Chat Message Bubbles
15 - Adaptive Control Design with View Model Binding
16 - Chat Message Title Bar Menu
17 - Chat Message Input Box Control
18 - Styling Scrollbars Custom
19 - Creating Popup Menus
20 - Creating Vertical Popup Menu
21 - Custom Dialog System Message Box Popup
22 - Slide Up Settings Menu
23 - Settings Page UI
24 - Advanced Edit Text Control
25 - Advanced Cross-Control Syncing
اگر از شیرپوینت 2016 استفاده میکنید به آدرس زیر بروید:
C:\Program Files\Common Files\microsoft shared\Web ServerExtensions\16\TEMPLATE\CONTROLTEMPLATES
واگر از شیرپوینت 2013 استفاده میکنید به آدرس زیر بروید:
C:\Program Files\Common Files\microsoft shared\Web ServerExtensions\15\TEMPLATE\CONTROLTEMPLATES
و از آدرس مذکور به دنبال فایلی به نام welcome.ascx بگردید.
به منظور اضافه کردن آیتم " ورود با حساب کاربری دیگر " باید همین فایل را ویرایش کنیم. جهت ویرایش فایل میتوانید از یک ویرایشگر متن ساده ( Text Editor ) همانند Notepad++ یا ویژوال استودیو استفاده نمایید.
تنها کاری که باید انجام دهید اینست که کدهای زیر را به فایل مذکور اضافه نمایید:
<SharePoint:MenuItemTemplate runat="server" ID="ID_LoginAsDifferentUser" Text="<%$Resources:wss,personalactions_loginasdifferentuser%>" Description="<%$Resources:wss,personalactions_loginasdifferentuserdescription%>" MenuGroupId="100" Sequence="100" UseShortId="true" />
در فایل welcome.ascx باید به دنبال تگ "ID_RequestAcess" بگردید و کد بالا را قبل از آن اضافه نمایید. اما توجه بفرمایید که مکان دقیق اضافه کردن این قطعه کد، دقیقا با ترتیب آیتم منویی که تصمیم دارید در آن جایگاه قرار گیرد، رابطه مستقیم دارد؛ بدین معنا که اگر تمایل دارید ترتیب نمایش جایگاه این آیتم منو را عوض نمایید، براحتی میتوانید در جایگاه مناسب کد بالا را کپی نمایید:
بلافاصله پس از ذخیره کردن فایل welcome.ascx، با فشردن کلیدهای Ctrl+F5 میتوانید نتیجه تغییراتتان را مشاهده نمایید. در صورت لزوم میتوانید کش مرورگر را خالی نمایید.
[Flags] public enum Option { None = 0x00, Option1 = 0x01, Option2 = 0x02, Option3 = 0x04, Option4 = 0x08, Option5 = 0x10, Option6 = 0x20, Option7 = 0x40, Option8 = 0x80, All = 0xFF }
[Flags] public enum Option { None = 0b00000000, Option1 = 0b00000001, Option2 = 0b00000010, Option3 = 0b00000100, Option4 = 0b00001000, Option5 = 0b00010000, Option6 = 0b00100000, Option7 = 0b01000000, Option8 = 0b10000000, All = 0b11111111 }
[Flags] public enum Option { None = 0b0000_0000, Option1 = 0b0000_0001, Option2 = 0b0000_0010, Option3 = 0b0000_0100, Option4 = 0b0000_1000, Option5 = 0b0001_0000, Option6 = 0b0010_0000, Option7 = 0b0100_0000, Option8 = 0b1000_0000, All = 0b1111_1111 }
01. Introduction 02. Installing Karma 03. Karma with Webstorm 04. Testing Controllers 05. Testing Simple Services 06. Testing Services with Dependencies 07. Testing AJAX Services 08. Testing Filters 09. Testing Directives - Overview 10. Setting up Karma for Testing Directives 11. Testing Directives 12. End to End Testing - Overview 13. Setting up Karma for End to End Testing 14. End to End Testing - Part 1 15. End to End Testing - Part 2 16. Troubleshooting End to End Tests 17. Summary
برای مثال نوعهای double و float امکان ذخیره سازی دقیق عدد یک دهم را ندارند. عدد 1/10 به صورت ...0.000110011001100 ذخیره میشود (در حالت باینری) و مقایسه دقیق مقادیر ثابت 0.00011 یا 0.00011001100 با آن میسر نیست؛ چون دقت نهایی این اعداد متفاوت است.
در زبان #C، نوع double، مطابق استاندارد IEEE-754 تهیه شدهاست و تنها 15 رقم اعشار دقت دارد و ذخیره سازی اعداد اعشاری در آن، به یک گرد سازی نهایی ختم خواهد شد. بنابراین به دلیل وجود این rounding error طبیعی، امکان استفاده از عملگری مانند == جهت مقایسهی اعداد اعشاری همیشه پاسخ صحیحی را به همراه نخواهد داشت.
برای نمونه مثال زیر را بررسی کنید:
double d1 = 12.14; double d2 = 12.13; double d3 = d1 - d2; // Should be 0.01 bool check = (d3 == 0.01); // should be true
روشی که برای حل این مساله پیشنهاد شدهاست، تفریق دو عدد از هم و مقایسهی نتیجهی آن با epsilon است؛ بجای مقایسه با صفر:
public static bool ApproxEquals(double d1, double d2) { const double epsilon = 2.2204460492503131E-16; if (d1 == d2) return true; double tolerance = ((Math.Abs(d1) + Math.Abs(d2)) + 10.0) * epsilon; double difference = d1 - d2; return (-tolerance < difference && tolerance > difference); }
با این خروجی:
در این حالت میتوان نتیجه گرفت که d3 و 0.01 بسیار بسیار نزدیک به هم هستند؛ یا تقریبا مساوی.
01-Introduction 02-Controllers and Scope 03-Demo. Controllers 04-Demo. Displaying Repeating Information 05-Demo Handling Events 06-Built-in Directives 07-Event Directives 08-Other Directives - Part 1 09-Other Directives - Part 2 10-IE Restrictions 11-Expressions 12-Filters 13-Built-in Filters 14-Writing Custom Filters 15-Two Way Binding 16-Demo. Two Way Binding 17-Validation
0. Validation 1. Insert 2. Edit 3. Delete 4. Select
public abstract class PageStateMachine : Page { ... protected abstract ... Save(); protected abstract ... Select(); protected abstract ... Delete(); protected abstract ... Validation(); ...
public enum PageState { Save = 0, Select = 2, Delete = 8, Cancel = 16 }
public void Go(PageState pageState) { switch (pageState) { case PageState.Save: { var error = Validation(); Message = error.HasError ? error.Message : Save().Message; if (!error.HasError) { ClearControls(); RefreshList(); } break; } case PageState.Select: { Message = Select().Message; break; } break; case PageState.Delete: { Message = Delete().Message; ClearControls(); RefreshList(); break; } case PageState.Cancel: { Message = string.Empty; ClearControls(); break; } } }
زیرنویسهای فارسی قسمت دوم «Building Windows 8 Metro Apps in C# and XAML» را از اینجا و یا اینجا میتونید دریافت کنید.
لیست سرفصلهای قسمت دوم به شرح زیر است:
Layout 00:46:16
C# Metro applications have access to numerous XAML layout features.
This module describes those services, and shows how to use them to support Windows 8 features such as display orientation, and snap.
Introduction
Layout System
Size Properties
Alignment
Margin
Demo: Margin and Alignment
Padding
Panels
Demo: Canvas
Demo: Grid and Snap
Data-Oriented Panels
ScrollViewer
Metro Layout Conventions
Layout Change Events
Summary
در کل این قسمت هم آنچنان کاری به برنامه نویسی ندارد و به بررسی و معرفی امکانات طرحبندی XAML میپردازد؛ به علاوه یک سری قراردادهای خاص مترو و همچنین نحوهی کنار آمدن با حالت snapping ویژه ویندوز 8.
قسمت سوم مروری دارد بر کنترلهای XAML که حدودا یک هفته دیگر زیرنویسهای آن تمام خواهد شد.
لطفا اگر پس از مشاهده این سری آماده شده، اصلاحی را انجام دادید، اون رو برای اعمال در اینجا ارسال کنید. از این برنامه هم جهت ویرایش فایلها میتوان استفاده کرد.
کتابهای زیادی در مورد شیرپوینت نوشته شده، اما این یکی متفاوت است. در طی فصول مختلف این کتاب، نحوهی ایجاد یک سایت مدیریت پروژه به همراه کلیه فرمها، گردشهای کاری و گزارشات مرتبط به صورت قدم به قدم، با تصاویر و توضیحات لازم بیان شده است.
لیست فصول مختلف این کتاب به شرح زیر است :
Chapter 1: Introduction
Chapter 2: Collecting Requirements
Chapter 3: Processing Incoming E-mail
Chapter 4: Managing Requirements
Chapter 5: Supporting Discussions
Chapter 6: User Stories
Chapter 7: Project Backlog
Chapter 8: Iteration Backlog
Chapter 9: Burndown Charts
Chapter 10: Getting Organized
Chapter 11: Creating Test Cases
Chapter 12: Reporting Defects
Chapter 13: Testing Metrics
Chapter 14: Workflow Tasks
Chapter 15: State Machine Workflows
Chapter 16: Creating Custom Forms
برای نمونه هدف از فصل user stories آن رسیدن به فرمی شبیه به فرم زیر و به گردش انداختن آن بدون حتی یک سطر برنامه نویسی است:
در حاشیه!
کلا یکی از اهداف مهم شیرپوینت بیکار کردن برنامه نویسهای ASP.NET و سپردن کار آنها به business analyst ها است و مایکروسافت در این زمینه بسیار موفق عمل کرده است! (البته این را هم داخل پرانتز عرض کنم که برای راه اندازی و نگهداری شیرپوینت حتما نیاز به یک PHD از مایکروسافت خواهید داشت. اگر باور ندارید فقط یکبار چندماهی آزمایش کنید! به همین دلیل است که هنوز برنامه نویسهای ASP.NET منقرض نشدهاند!)
اگر علاقمند باشید که شیرپوینت مایکروسافت را نصب و راه اندازی کنید، مجموعه زیر به صورت قدم به قدم به همراه توضیحات و تصاویر کافی نحوه انجام اینکار را بر روی یک virtual pc توضیح داده است:
البته اگر برنامه نویس ASP.Net باشید بسیاری از موارد آن برای شما تکراری خواهد بود.
- قسمت 1 : نصب IIS و دات نت فریم ورک 2
- قسمت 2 : تنظیمات ایمیل پاپ 3
- قسمت 3: نصب و راه اندازی آوت لوک 2007
- قسمت 4: تنظیمات دات نت فریم ورک
- قسمت 5: نصب اس کیوال سرور 2005
- قسمت 6: تنظیمات اس کیوال سرور 2005
- قسمت 7: نصب سرویس پک اس کیوال سرور 2005
- قسمت 8: ایجاد اکانتهای لازم برای نصب MOSS
- قسمت 9: نصب شیر پوینت 2007
- قسمت 10: تنظیمات امنیتی اینترنت اکسپلورر
- قسمت 11: تنظیمات سرویسهای مربوطه
- قسمت 12: ایجاد یک Shared Services Provider
- قسمت 13: تنظیمات قسمت جستجو
- قسمت 14: تنظیمات ایمیل خروجی شیرپوینت
- قسمت 15: ایجاد یک پرتال
- قسمت 16: نصب SharePoint Designer 2007
- قسمت 17: نصب برنامههای آفیس 2007
- قسمت 18: نصب اسکریپتهای Warm-up بر روی VPC
- قسمت 19: بهینه سازی VPC برای اجرای شیرپوینت 2007
- قسمت 20: استفاده از گزینه Differencing یک VPC برای تهیه چندین ماشین مجازی بر اساس یک منبع موجود