Quando ci si trova nella necessità di sviluppare applicazioni per Microsoft Windows Phone più complesse, l'approccio tradizionale mostra qualche limite: non c'è una separazione tra i vari strati dell'applicazione e il codice è più difficile da testare e da mantenere. Questo webinar vi mostrerà le basi del pattern Model-View-ViewModel (MVVM), che offre un approccio più strutturato, in grado di separare la parte di logica dall'interfaccia grafica. / When you need to develop complex applications for Microsoft Windows Phone, the traditional approach shows some limitations. This webinar will show you the basics of Model-View-ViewModel (MVVM), which offers a more structured approach.
XeDotNet meeting del 5 Marzo 2013
In questa sessione vedremo come Knockout.js permetta di scrivere codice JavaScript in modo pulito e organizzato, semplificando la scrittura del codice e la sua manutenzione. Come lo si utilizza KO? Quali vantaggi ci offre? Quali librerie ci vengono in aiuto? Quali sarebbe meglio evitare?
Quando ci si trova nella necessità di sviluppare applicazioni per Microsoft Windows Phone più complesse, l'approccio tradizionale mostra qualche limite: non c'è una separazione tra i vari strati dell'applicazione e il codice è più difficile da testare e da mantenere. Questo webinar vi mostrerà le basi del pattern Model-View-ViewModel (MVVM), che offre un approccio più strutturato, in grado di separare la parte di logica dall'interfaccia grafica. / When you need to develop complex applications for Microsoft Windows Phone, the traditional approach shows some limitations. This webinar will show you the basics of Model-View-ViewModel (MVVM), which offers a more structured approach.
XeDotNet meeting del 5 Marzo 2013
In questa sessione vedremo come Knockout.js permetta di scrivere codice JavaScript in modo pulito e organizzato, semplificando la scrittura del codice e la sua manutenzione. Come lo si utilizza KO? Quali vantaggi ci offre? Quali librerie ci vengono in aiuto? Quali sarebbe meglio evitare?
Nakov at Fuck Up Nights - July 2015 @ SofiaSvetlin Nakov
Svetlin Nakov developed a technical startup project to scan ID cards and extract data using OCR, but it failed for several reasons. The project aimed to scan an ID card, extract fields like name and ID number using image processing and Tesseract OCR, and auto-fill forms. However, Tesseract had poor accuracy and image processing proved complex. Additionally, the project struggled to find customers, lacked a business model, and had no marketing or sales strategy. As a result, the startup ultimately failed.
Следвай вдъхновението си! (фестивал "Свободата да бъдеш - април 2016")Svetlin Nakov
"Следвай вдъхновението си!" е необикновен поучителен разказ за търсенето на истинското вдъхновение, за пътя на личностното и духовното израстване, за следването на мечтите, за успеха и неговата цена, за провалите и поуките по пътя, за поетите неправилни посоки и болезнените корекции на съдбата, за несломимия дух и доверието във вътрешната мъдрост, за непрестанното развитие и издигане на следващо ниво, за една безразсъдно смела амбиция довела до революция в ИТ образованието, за намирането на истинската мисия в живота, за автентичното лидерство, за ценностите и убежденията и тяхната еволюция, за вселенските закони и принципа "стъпка по стъпка", за намирането наподходящите за теб учения, вярвания, инструменти и методи, които работят конкретно за теб и те издигат на следващо ниво, за интуитивната преценка на хората, за ученето и усъвършенстването през целия живот, за откриването и следването на истинското призвание в живота, което всеки носи в себе си.
Професиите в ИТ индустрията: програмист, QA, админ, дизайнер, ИТ консултант, бизнес анализатор, специалист по дигитален маркетинг и други и как да придобием тези професии?
Светлин Наков @ УНСС
31 март 2016 г.
Dependency Injection and Inversion Of ControlSimone Busoli
This is a short presentation I gave back in 2008 at the UgiAlt.Net conference in Milan about inversion of control and dependency injection principles. Examples use Castle project's Windsor container.
Как да станем софтуерни инженери и да стартираме ИТ бизнес?Svetlin Nakov
This document provides guidelines for becoming a software engineer or starting an IT business. It recommends defining your goals such as what technology or position to pursue. It also suggests finding resources like courses, tutorials, videos and books to learn skills. Additionally, it emphasizes the importance of practicing through real-world projects to gain experience. The document advises joining a developer community and participating in events. Finally, it notes that the best way to learn is by starting a job in the software industry.
Работа с Естествен Интелект – Личност – Време – 3 юли 2013 @ НЛП клубSvetlin Nakov
Семинар "Работа с Естествен Интелект – Личност – Време" – 3 юли 2013 @ НЛП клуб – http://nlpclub.devbg.org/2013/06/23/seminar-rabota-s-estestven-intelekt-lichnost-vreme-3-july-2013/
В провокативния стил на сократовата беседа и с богат илюстративен материал ще бъдат представени и дискутирани традиционни, но непопулярни концепции за индивидуалността (или липсата на такава) и персоните, 7-те основни схващания за Времето, 3-те житейски подхода за битовото му потребление и заключителна персонална схема за разпределение. В дискусионен стил ще се представят някои концепции за житейските стратегии и траектории, за мисловните структури, нагласи и капани, за похватите във втория етап на съблазняването и за влиянието на IT заниманията върху изброените теми.
Regular Expressions. Validation. Split. Matching, ...
------------------------------------------------------------
Test RegEx at:
http://www.regexr.com
------------------------------------------------------------
[0-9]+
------------------------------------------------------------
[A-Z][a-z]*
------------------------------------------------------------
\s+
------------------------------------------------------------
\S+
------------------------------------------------------------
\w+
------------------------------------------------------------
\W+
------------------------------------------------------------
\+\d{1,3}([ -]*[0-9]){6,}
+1-800-555-2468
+359 2 834-2334
+359888123456
(052) 343-434
------------------------------------------------------------
^\+\d{1,3}([ -]*[0-9]){6,}$
+359 2 123-456 is a match
+359 (888) 123-456 is a NOT match
------------------------------------------------------------
Simplified Email Extraction Pattern:
/[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,20}/gi
------------------------------------------------------------
var emailPattern =
/^[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,20}$/i;
console.log(emailPattern.test("test@abv.bg"));
console.log(emailPattern.test("a.hills@gtx.de"));
console.log(emailPattern.test("invalid@@mail"));
console.log(emailPattern.test("err test@abv.bg"));
------------------------------------------------------------
var towns = "Sofia, Varna,Pleven, Veliko Tarnovo; Paris – London––Viena\n\n Пловдив|Каспичан";
console.log(towns.split(/\W+/)); // incorrect
console.log(towns.split(/\s*[.,|;\n\t–]+\s*/));
------------------------------------------------------------
var text = "I was born at 14-Jun-1980. Today is 14-Mar-2015. Next year starts at 1-Jan-2016 and ends at 31-Dec-2016.";
var dateRegex = /\d{1,2}-\w{3}-\d{4}/gm;
console.log(text.match(dateRegex));
Cos'è la UI Composition e che problemi può risolvere
Perchè MVVM e WPF sono importanti per la UI Composition
Il concetto di 'region' e 'UI Injection'
Analisi del toolkit PRISM di Microsoft e cosa comporta realizzarsene uno in proprio.
Slide Tesi di laurea:
Separazione dei ruoli tra Designer e Developer nello sviluppo di applicazioni Desktop: uso di WPF e del pattern Model-View-ViewModel
Architectural Patterns and Software Architectures: Client-Server, Multi-Tier,...Svetlin Nakov
Few days ago I gave a talk about software architectures. My goal was to explain as easy as possible the main ideas behind the most popular software architectures like the client-server model, the 3-tier and multi-tier layered models, the idea behind SOA architecture and cloud computing, and few widely used architectural patterns like MVC (Model-View-Controller), MVP (Model-View-Presenter), PAC (Presentation Abstraction Control), MVVM (Model-View-ViewModel). In my talk I explain that MVC, MVP and MVVM are not necessary bound to any particular architectural model like client-server, 3-tier of SOA. MVC, MVP and MVVM are architectural principles applicable when we need to separate the presentation (UI), the data model and the presentation logic.
Additionally I made an overview of the popular architectural principals IoC (Inversion of Control) and DI (Dependency Injection) and give examples how to build your own Inversion of Control (IoC) container.
Design pattern architetturali Model View Controller, MVP e MVVMRiccardo Cardin
This presentation talks about model view controller, model view presenter and model view viewmodel patterns. These are architectural design patterns for implementing user interfaces. They divide a given software application into three interconnected parts, so as to separate internal representations of information from the ways that information is presented to or accepted from the user. Also, they promote separation of concerns. As examples, some frameworks are reported, such as:
- Spring MVC
- BackboneJS
- AngularJS
The presentation is took from the Software Engineering course I run in the bachelor-level informatics curriculum at the University of Padova.
This presentation talks about dependecy injection, an architectural design pattern that aims to help developer to resolve dependencies between objects. Starting by describing general problem of dependecy resolution, the presentation continues presenting Inversion of Control (IoC) pattern, constructor injection and setting injection. As examples, some frameworks and libraries are reported, such as:
- Google Guice
- Spring framework
- AngularJS
The presentation is took from the Software Engineering course I run in the bachelor-level informatics curriculum at the University of Padova.
A presentation on layered software architecture that goes through logical layering and physical layering, the difference between those two and a practical example.
Nakov at Fuck Up Nights - July 2015 @ SofiaSvetlin Nakov
Svetlin Nakov developed a technical startup project to scan ID cards and extract data using OCR, but it failed for several reasons. The project aimed to scan an ID card, extract fields like name and ID number using image processing and Tesseract OCR, and auto-fill forms. However, Tesseract had poor accuracy and image processing proved complex. Additionally, the project struggled to find customers, lacked a business model, and had no marketing or sales strategy. As a result, the startup ultimately failed.
Следвай вдъхновението си! (фестивал "Свободата да бъдеш - април 2016")Svetlin Nakov
"Следвай вдъхновението си!" е необикновен поучителен разказ за търсенето на истинското вдъхновение, за пътя на личностното и духовното израстване, за следването на мечтите, за успеха и неговата цена, за провалите и поуките по пътя, за поетите неправилни посоки и болезнените корекции на съдбата, за несломимия дух и доверието във вътрешната мъдрост, за непрестанното развитие и издигане на следващо ниво, за една безразсъдно смела амбиция довела до революция в ИТ образованието, за намирането на истинската мисия в живота, за автентичното лидерство, за ценностите и убежденията и тяхната еволюция, за вселенските закони и принципа "стъпка по стъпка", за намирането наподходящите за теб учения, вярвания, инструменти и методи, които работят конкретно за теб и те издигат на следващо ниво, за интуитивната преценка на хората, за ученето и усъвършенстването през целия живот, за откриването и следването на истинското призвание в живота, което всеки носи в себе си.
Професиите в ИТ индустрията: програмист, QA, админ, дизайнер, ИТ консултант, бизнес анализатор, специалист по дигитален маркетинг и други и как да придобием тези професии?
Светлин Наков @ УНСС
31 март 2016 г.
Dependency Injection and Inversion Of ControlSimone Busoli
This is a short presentation I gave back in 2008 at the UgiAlt.Net conference in Milan about inversion of control and dependency injection principles. Examples use Castle project's Windsor container.
Как да станем софтуерни инженери и да стартираме ИТ бизнес?Svetlin Nakov
This document provides guidelines for becoming a software engineer or starting an IT business. It recommends defining your goals such as what technology or position to pursue. It also suggests finding resources like courses, tutorials, videos and books to learn skills. Additionally, it emphasizes the importance of practicing through real-world projects to gain experience. The document advises joining a developer community and participating in events. Finally, it notes that the best way to learn is by starting a job in the software industry.
Работа с Естествен Интелект – Личност – Време – 3 юли 2013 @ НЛП клубSvetlin Nakov
Семинар "Работа с Естествен Интелект – Личност – Време" – 3 юли 2013 @ НЛП клуб – http://nlpclub.devbg.org/2013/06/23/seminar-rabota-s-estestven-intelekt-lichnost-vreme-3-july-2013/
В провокативния стил на сократовата беседа и с богат илюстративен материал ще бъдат представени и дискутирани традиционни, но непопулярни концепции за индивидуалността (или липсата на такава) и персоните, 7-те основни схващания за Времето, 3-те житейски подхода за битовото му потребление и заключителна персонална схема за разпределение. В дискусионен стил ще се представят някои концепции за житейските стратегии и траектории, за мисловните структури, нагласи и капани, за похватите във втория етап на съблазняването и за влиянието на IT заниманията върху изброените теми.
Regular Expressions. Validation. Split. Matching, ...
------------------------------------------------------------
Test RegEx at:
http://www.regexr.com
------------------------------------------------------------
[0-9]+
------------------------------------------------------------
[A-Z][a-z]*
------------------------------------------------------------
\s+
------------------------------------------------------------
\S+
------------------------------------------------------------
\w+
------------------------------------------------------------
\W+
------------------------------------------------------------
\+\d{1,3}([ -]*[0-9]){6,}
+1-800-555-2468
+359 2 834-2334
+359888123456
(052) 343-434
------------------------------------------------------------
^\+\d{1,3}([ -]*[0-9]){6,}$
+359 2 123-456 is a match
+359 (888) 123-456 is a NOT match
------------------------------------------------------------
Simplified Email Extraction Pattern:
/[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,20}/gi
------------------------------------------------------------
var emailPattern =
/^[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,20}$/i;
console.log(emailPattern.test("test@abv.bg"));
console.log(emailPattern.test("a.hills@gtx.de"));
console.log(emailPattern.test("invalid@@mail"));
console.log(emailPattern.test("err test@abv.bg"));
------------------------------------------------------------
var towns = "Sofia, Varna,Pleven, Veliko Tarnovo; Paris – London––Viena\n\n Пловдив|Каспичан";
console.log(towns.split(/\W+/)); // incorrect
console.log(towns.split(/\s*[.,|;\n\t–]+\s*/));
------------------------------------------------------------
var text = "I was born at 14-Jun-1980. Today is 14-Mar-2015. Next year starts at 1-Jan-2016 and ends at 31-Dec-2016.";
var dateRegex = /\d{1,2}-\w{3}-\d{4}/gm;
console.log(text.match(dateRegex));
Cos'è la UI Composition e che problemi può risolvere
Perchè MVVM e WPF sono importanti per la UI Composition
Il concetto di 'region' e 'UI Injection'
Analisi del toolkit PRISM di Microsoft e cosa comporta realizzarsene uno in proprio.
Slide Tesi di laurea:
Separazione dei ruoli tra Designer e Developer nello sviluppo di applicazioni Desktop: uso di WPF e del pattern Model-View-ViewModel
Architectural Patterns and Software Architectures: Client-Server, Multi-Tier,...Svetlin Nakov
Few days ago I gave a talk about software architectures. My goal was to explain as easy as possible the main ideas behind the most popular software architectures like the client-server model, the 3-tier and multi-tier layered models, the idea behind SOA architecture and cloud computing, and few widely used architectural patterns like MVC (Model-View-Controller), MVP (Model-View-Presenter), PAC (Presentation Abstraction Control), MVVM (Model-View-ViewModel). In my talk I explain that MVC, MVP and MVVM are not necessary bound to any particular architectural model like client-server, 3-tier of SOA. MVC, MVP and MVVM are architectural principles applicable when we need to separate the presentation (UI), the data model and the presentation logic.
Additionally I made an overview of the popular architectural principals IoC (Inversion of Control) and DI (Dependency Injection) and give examples how to build your own Inversion of Control (IoC) container.
Design pattern architetturali Model View Controller, MVP e MVVMRiccardo Cardin
This presentation talks about model view controller, model view presenter and model view viewmodel patterns. These are architectural design patterns for implementing user interfaces. They divide a given software application into three interconnected parts, so as to separate internal representations of information from the ways that information is presented to or accepted from the user. Also, they promote separation of concerns. As examples, some frameworks are reported, such as:
- Spring MVC
- BackboneJS
- AngularJS
The presentation is took from the Software Engineering course I run in the bachelor-level informatics curriculum at the University of Padova.
This presentation talks about dependecy injection, an architectural design pattern that aims to help developer to resolve dependencies between objects. Starting by describing general problem of dependecy resolution, the presentation continues presenting Inversion of Control (IoC) pattern, constructor injection and setting injection. As examples, some frameworks and libraries are reported, such as:
- Google Guice
- Spring framework
- AngularJS
The presentation is took from the Software Engineering course I run in the bachelor-level informatics curriculum at the University of Padova.
A presentation on layered software architecture that goes through logical layering and physical layering, the difference between those two and a practical example.
In questa presentazione verrà introdotto brevemente il concetto di RIA (Rich Internet Application), di Framework e fondendo i due concetti verranno presentati alcuni dei più conosciuti Framework per la realizzazione di RIA. Visualizza la presentazione.
Rich client application: MVC4 + MVVM = Knockout.jsGiorgio Di Nardo
La sempre maggiore diffusione di device diversificati (PC, Notebook, Tablet, Smartphone, ecc.) su piattaforme diverse, rilancia l'utilizzo delle Web Application come strumento per raggiungere il maggior numero di potenziali clienti con il minimo sforzo. Le capacità avanzate dei nuovi device e le ultime tecnologie ci consentono però di evolvere il concetto classico di applicazione Web in una declinazione più veloce, più responsiva, più accattivante: vediamo come.
Model View Controller - Semplificare Il Codice E Minimizzare I TempiMarco Parenzan
L’aumento della complessità delle applicazioni e la velocità di realizzazione richiesta al giorno d’oggi, hanno obbligato gli sviluppatori ad utilizzare metodologie formali per la scrittura di codice e il successivo testing dello stesso al fine di minimizzare i tempi di rilascio.
L’utilizzo dei pattern, ossia di convenzioni condivise dalla community dei programmatori, è una pratica sempre più diffusa e adottata anche per applicazioni Web.
L’ormai trentennale pattern Model-View-Controller (MVC) sta attualmente conoscendo una nuova giovinezza grazie al successo di framework nelle applicazioni Web che lo usano come riferimento.
Rails è il framework MVC più famoso e diffuso, implementato per la piattaforma Ruby, mentre ASP.NET MVC e MonoRail sono i due framework web MVC che stanno riscuotendo il maggiore successo per lo sviluppo su .NET e su Windows.
Conosceremo quindi la filosofia di riferimento e le specificità dei due framework tramite due implementazioni reali di una stessa applicazione e ne discuteremo vantaggi e svantaggi.
Realizzare applicazioni cross-platform con Xamarin e il pattern MVVMCodemotion
"Realizzare applicazioni cross-platform con Xamarin e il pattern MVVM" by Matteo Pagani.
Xamarin è una delle tecnologie più interessanti quando si parla di sviluppo cross-platform, in quanto permette di riutilizzare le proprie conoscenze di C# per realizzare applicazioni con le stesse feature e performance di un'applicazione nativa. Usare Xamarin, però, non significa solamente poter realizzare app Android e iOS in C#, ma anche e soprattutto non dover scrivere e mantenere codebase completamente diverse. In questa sessione vedremo come poter massimizzare il riutilizzo di codice tra le diverse versioni della nostra applicazioni, aiutandoci con il pattern MVVM.
Nel corso di questo webinar apprenderemo le basi necessarie per sviluppare un'applicazione Microsoft Windows Phone: quali tool di sviluppo utilizzare, cosa ci mette a disposizione l'SDK, come è strutturato un progetto.
Flutter: Google alla conquista del mobile multi piattaformaCommit University
Nell'ultimo decennio, lo sviluppo software è diventato trasversale anche e sopratutto nel campo mobile.
Le piattaforme ed i frameworks utili a tale scopo sono diversi, con i loro pro e contro.
Tra tutti spicca Flutter, un nuovo framework made by Google,
che riesce brillantemente ad unire la versatilità della programmazione ad alto livello, senza rinunciare alle performances che solo il codice nativo può raggiungere.
Il tutto "servito" per iOS ed Android.
Similar to Slide Prelaurea. Alessandro Andreosè (20)
2. Agevolare lo sviluppo di applicazioni desktop
◦ MVVM
◦ UI Composition
◦ Separazione ruoli
Designer
Developer
Separazione dei ruoli tra Designer e Developer
nello sviluppo di applicazioni Desktop: uso di WPF
e del pattern Model-View-ViewModel
4. Applicazione Desktop
Ambiente Client e Server Microsoft
◦ IIS 7.0
◦ Framework .NET 3.5 SP1
◦ SQL Server 2008
5. MVVM
◦ MVVM Light Toolkit
di Laurent Bugnion
◦ Cinch
di Sasha Barber
◦ Goldlight
di Peter O'Hanlon
◦ ...
MVVM e UI Composition
◦ Prism
del Team di Patterns and Practices di Microsoft
6. Tecnologia di «Presentazione»
Disponibile da Novembre 2006 (Fx 3.0)
Andrà a sostituire la tecnologia GDI/Winforms
◦ GDI(circa 1985 Windows 3.0)
DirectX
◦ Sfrutta l'hardware grafico
7. WF Direct
WF PDF WMP WPF
GDI+ 3D
Interfaccia
grafica
X X
Lettura documenti
a video X X
Stampa di
documenti X X
Immagini X X
Media X X
Grafica 2D X X
Grafica 3D X X
8. Expression Blend Visual Studio
XAML …
<Button Background=“Red”>
◦ Linguaggio di Markup
No
</Button>
…
◦ 1 elemento, 1 oggetto .NET
◦ Il nome del tag è il nome della classe
XAML
Designer Developer
Command
◦ Associare un comando ad un evento
◦ 1 evento, 1 comando
◦ Tanti eventi, 1 comando
Data Binding
◦ Collegare un dato direttamente all'interfaccia utente
◦ INotifyPropertyChanged
9. Separa interfaccia utente da implementazione
◦ DataBinding
◦ Command
◦ Minimizzare (annullare) codice nel code behind
Variante di MVC
◦ MVVM ideato nel ottobre 2005 da John Grossman
◦ Utilizzato in Microsoft per sviluppare Expression
Blend
Non c'è contatto tra view e model
◦ Il ViewModel è sempre in mezzo
Model – dominio applicativo
View – UI
ViewModel – Model of a View, astrazione della view
10. View
◦ UI
XAML
Poco (o nulla) Code Behind
ViewModel
◦ Model of a View
Astrazione della View
Specializzazione del Model
1 user story, 1 ViewModel
Model
◦ Dominio Applicativo
Person
11. Svilippo di un Toolkit per agevolare la
realizzazione di applicazioni desktop
◦ Basato su MVVM
DataBinding
Command
Broker
◦ Basato su UI Composition
Module
Region
Shell
17. Attore terzo
◦ In mezzo tra 2 attori
(VM1, VM2)
◦ Rispecchia il pattern
evento – sottoscrizione VM1 richiede View2
Il broker
crea VM2
Azioni
◦ Dispatch messaggio
◦ Sottoscrizione messaggio
◦ Cancellazione sottoscrizione VM2 visualizza View2
18. VM
◦ Diaccoppia View e Model
Command
◦ Disaccoppia Evento e Operazione da eseguire
◦ Testabilità dell'operazione
DataBinding
◦ Disaccoppia UI e Dati
Command + DataBinding
◦ ViewModel indipendente dalla View
Broker
◦ Disaccoppia ViewModel
19. Modulo SHELL
◦ Parte di applicazione
◦ Generalmente visuale REGION 1 REGION 2
Region Modulo 5
◦ Contiene moduli Modulo 4
Modulo 3
Modulo 6
visuali Modulo 2
Shell
Modulo 1
◦ Finestra principale Modulo 8
REGION 3
Modulo 9
Modulo 7
◦ 1 sola shell
◦ contiene 1 o più region
20. nella finestra principale (Shell)
◦ si preme un bottone
◦ si deve inserire nella shell una view (View1)
21. No UI Composition
logica inserimento modulo creazione modulo
Sì UI Composition
Shell RegionManager Container di IoC
REGION
View1 …
View1
View1
Show View1 …
logica inserimento modulo creazione modulo
22. Broker
◦ Punto di contatto tra MVVM e UI Composition
◦ Disaccoppia ViewModel
RegionManager
◦ Disaccoppia Shell da Modulo
◦ Module = View + ViewModel
IoC
◦ Disaccoppia creazione oggetti dal resto
dell'applicazione
23. Sviluppo di un Toolkit
◦ Agevolare la realizzazione di applicazioni desktop
WPF + MVVM
User Experience
UI Composition
Applicazione modulare
La modifica di un modulo non influsce sul resto
dell'applicazione
25. DB Server DC Web Server
Client
Client Client Client
26.
27. WPF è giovane (11/2006)
◦ Pochi controlli di terze parti
◦ Designer molto recente
Expression Blend 2 SP1 (08/2008)
MVVM è giovane (10/2005)
◦ Molte soluzioni diverse agli stessi problemi
WPF, MVVM e UI Composition
◦ I vantaggi sono superiori agli svantaggi
WPF vs WinForms
◦ User Experience
DataBinding, Template, Style, Attached Behaviors
Separazione dei ruoli Designer, Developer semplificata
◦ Microsoft non sviluppa più Windows Forms
28. Toolkit
◦ Nuove region
◦ Sistema di validazione e focus
◦ Undo & Redo
Applicazione (core già in produzione)
◦ Terminare il porting in produzione
◦ Bug Fixing
29. DB
◦ 30 tabelle
Software
◦ 18 progetti VisualStudio
◦ 500+ Unit Test
◦ 16.000+ righe di codice