рд▓рдЧрднрдЧред рдЯреНрд░рд╛рдВрд╕ред: рдЫрд╣ рд╕рд╛рд▓ рдХреЗ рдбрдмреНрд▓реНрдпреВрдкреАрдПрдл рдХрд╛ рдЕрдиреБрд╡рд╛рдж рд╣реИ
; рдХреНрдпрд╛ рдмрджрд▓рд╛ рд╣реИ? 3 рдЕрдЧрд╕реНрдд 2012 рдХреЛ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ред рдЕрдм WPF рдЫрд╣ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рд╕рд╛рдд рд╕рд╛рд▓ рдкреБрд░рд╛рдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрджрд▓рд╛ рд╣реИред
рдСрдХреНрдЯреЛрдкрд╕ рдбрд┐рдкреНрд▓реЙрдп рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ WPF рдореЗрдВ рдПрдХ рдирд┐рд╡реЗрд╢ рдмреИрдВрдХ рдореЗрдВ рд╡реНрдпрд╛рдкрд╛рд░рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЬреЛрдЦрд┐рдо рдореВрд▓реНрдпрд╛рдВрдХрди рдкреНрд░рдгрд╛рд▓реА рд▓рд┐рдЦрдиреЗ рдореЗрдВ рдПрдХ рд╕рд╛рд▓ рдмрд┐рддрд╛рдпрд╛ред рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдореИрдВрдиреЗ рдПрдХ рд╕рд▓рд╛рд╣рдХрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд┐рдпрд╛, рдЬреНрдпрд╛рджрд╛рддрд░ WPF рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд┐рдпрд╛ред рдкрд┐рдЫрд▓реЗ рдЫрд╣ рд╡рд░реНрд╖реЛрдВ рд╕реЗ рдореИрдВрдиреЗ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рдХреЛ рдЬреАрдпрд╛ рд╣реИ рдФрд░ рд╕рд╛рдВрд╕ рд▓реА рд╣реИ, рдФрд░ рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ рдореИрдВ WPF рдФрд░ XAML рдХреЗ рдЕрддреАрдд рдФрд░ рднрд╡рд┐рд╖реНрдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╡рд┐рдЪрд╛рд░ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред
рдЫрд╣ рд╕рд╛рд▓ рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ рдХреЛрдб рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░
WPF рдореЗрдВ
рд╕рддреНрдпрд╛рдкрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд▓реЗрдЦ рд▓рд┐рдЦрд╛ рдерд╛ред рдореИрдВрдиреЗ
рдЕрдкрдирд╛ рддреНрд░реБрдЯрд┐ рдкреНрд░рджрд╛рддрд╛ рднреА рд▓рд┐рдЦрд╛ рд╣реИ
, рдЬреЛ IDataErrorInfo рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ , рдХреНрдпреЛрдВрдХрд┐ - рдЖрдкрдиреЗ рдпрд╣ рдирд╣реАрдВ
рдорд╛рдирд╛ рд╣реИ! - WPF 3.0 рдиреЗ IDataErrorInfo рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдмрд╛рдж рдореЗрдВ, рдореИрдВрдиреЗ рдХрдИ рдУрдкрди рд╕реЛрд░реНрд╕ WPF рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдкрд░ рдХрд╛рдо рдХрд┐рдпрд╛ рдЬреИрд╕реЗ рдХрд┐
Bindable LINQ (
рд╢реБрд░реБрдЖрддреА Rx рдХреЗ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рд╕реЗ рдкрд╣рд▓реЗ рднреА WPF рдХреЗ рд▓рд┐рдП рд░рд┐рдПрдХреНрдЯрд┐рд╡ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ) рдФрд░
рдореИрдЧреЗрд▓рди (WPF a la ASP.NET рдХреЗ рд▓рд┐рдП MVC)ред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдореИрдВрдиреЗ рдПрдорд╡реАрд╡реАрдПрдо рдХреЛ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓рдиреЗ рдФрд░ рдХреЛрдб рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдВрдХ рдХреЛ рд╕рдорд░реНрдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рдХреНрд▓рдм рдореЗрдВ рдХреБрдЫ рд╕рдордп рдмрд┐рддрд╛рдпрд╛, рдЬрд┐рд╕реЗ рдбрдмреНрд▓реНрдпреВрдкреАрдПрдл рдЪреЗрд▓реЗ (рдбрдмреНрд▓реНрдпреВрдкреАрдПрдл рдПрдбрд╣реЗрд░реЗрдВрдЯреНрд╕) рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЬрдм рдореИрдВ WPF рдХреЛ рджреЗрдЦрддрд╛ рд╣реВрдВ, рддреЛ рдореИрдВ рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рдиреАрдВрд╡ рдХреЗ рд╕рд╛рде рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рджреЗрдЦрддрд╛ рд╣реВрдВ рдЬреЛ рдЦрд░рд╛рдм рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕реЗ рдЦрд░рд╛рдм рд╣реЛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕рд╕реЗ рднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд╡рд┐рддреНрддреАрдп рдирд┐рд╡реЗрд╢ рдХреА рдХрдореА рд╣реИред рдореБрдЭреЗ рдЦреБрд╢реА рд╣реИ рдХрд┐ рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рдЕрддреАрдд рдореЗрдВ рд╣реИред
2006 рдореЗрдВ рд╡рд╛рдкрд╕ рдХреИрд╕реЗ рдЖрдпрд╛, рдПрдХ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд╕рд░рд▓ рдЦрд┐рдбрд╝рдХреА рдХрд╛ рд▓реЗрдЖрдЙрдЯ рдРрд╕рд╛ рджрд┐рдЦрддрд╛ рдерд╛ (рдХреЛрдб рдЙрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬрд┐рд╕реЗ рдореИрдВ рддрдм рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рдерд╛):
<Window x:Class="PaulStovell.TrialBalance.UserInterface.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:tb="clr-namespace:PaulStovell.TrialBalance.UserInterface"
xmlns:tbp="clr-namespace:PaulStovell.TrialBalance.UserInterface.Providers"
xmlns:system="clr-namespace:System;assembly=mscorlib"
Title="TrialBalance"
WindowState="Maximized"
Width="1000"
Height="700"
Icon="{StaticResource Image_ApplicationIcon}"
Background="{StaticResource Brush_DefaultWindowBackground}"
x:Name="_this">
! x:Class! XML! , ?
, 2013- , WPF . :
<Window x:Class="PaulStovell.TrialBalance.UserInterface.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:tb="clr-namespace:PaulStovell.TrialBalance.UserInterface"
xmlns:tbp="clr-namespace:PaulStovell.TrialBalance.UserInterface.Providers"
xmlns:system="clr-namespace:System;assembly=mscorlib"
Title="TrialBalance"
WindowState="Maximized"
Width="1000"
Height="700"
Icon="{StaticResource Image_ApplicationIcon}"
Background="{StaticResource Brush_DefaultWindowBackground}"
x:Name="_this">
? . , , .
ASP.NET 2006- ( ):
<%@ Page Language="C#" MasterPageFile="~/TrialBalance.Master" AutoEventWireup="true" EnableViewState="false" CodeBehind="Builds.aspx.cs" Inherits="PaulStovell.TrialBalance.MainWebsite.Builds" Title="Downloads - TrialBalance" %>
<asp:Content ID="Content1" ContentPlaceHolderID="MainContentPlaceholder" runat="server">
<asp:PlaceHolder runat="server" Visible="false" ID="_downloadAreaPlaceholder">
<h1>Download</h1>
?
@model BuildsViewModel
@section Main {
<h1>Download</h1>
}
WPF, ASP.NET Web Forms View State. , ASP.NET ,
. Web Forms MVC, ASPX Razor тАФ ASP.NET .
, ASP.NET WPF:
- , (Razor). Razor, . XAML . , , ReSharper' ┬л ┬╗, .
- -. , WPF MVVM тАФ , WPF , WPF , - MVVM. Blend Behaviors . ASP.NET MVC.
- . ASP.NET MVC, . WPF тАФ .
- . ASP.NET MVC , , . , WPF , internal .
- -. ASP.NET jQuery JSON.NET, - . WPF, MVVM , , .
- -. ASP.NET MVC , ASP.NET - . WPF тАФ , , , WPF: (. .: VirtualizingStackPanel).
, . CSS? Less SASS. JavaScript? CoffeeScript Dart. ; , WPF 2006- .
ASP.NET WPF , , ASP.NET тАФ , . , , . , .
, , WPF . , , , , (
. .: WPF).
, , . , . , CSS ( WPF , , WPF, HTML; , ).
(bindings) (Just Works), , . INotifyPropertyChanged
. - (data contexts) тАФ , ContextMenu. ICommand : WPF routed commands, Blend тАФ command; ICommand , .
XAML
тАФ XAML. XAML , , . ! Blend, Visual Studio, XAML. 2013-, , Blend, XAML. Visual Studio 2012 .
XAML . , . HTML, XAML . , . , .
, XAML:
- , .
- , .
- .
- C# .
- Visibility .
- .
ASP.NET (Razor), WPF?
MVVM
, , WinForms, , MVVM тАФ , Silverlight Unleashed MVVM Light.
WPF, , , , , MVVM , - Code Project. WPF ViewModelBase, , - INotifyPropertyChanged. 20 , Button1_Click, тАФ , MVVM, , , - -, , MVVM .
MVVM , , WPF , WPF , , . .
, WPF, , , . ASP.NET (- Web Parts ASP.NET 2.0?)
: ASP.NET . - . , . WPF 2006- .
, . ASP.NET Ruby PHP тАФ , . Windows WPF.
WPF. , XAML тАФ , , . 2006-, , . , . , , WPF , ASP.NET.
, , WPF. , - тАж Qt, , C++ , C# . JSON, JavaScript', тАФ XAML Setter.Value?
WPF
? MVVM ? ViewModelBase? BoolToVisibilityConverter IsNotNullConverter?
, WPF . , . , , Microsoft WPF...