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("[email protected]"));
console.log(emailPattern.test("[email protected]"));
console.log(emailPattern.test("invalid@@mail"));
console.log(emailPattern.test("err [email protected]"));
------------------------------------------------------------
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.
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?
AreaMVC: un'architettura software basata sulla semplicitàGiulio Destri
Come usare il pattern MVC per creare una architettura semplice e flessibile con cui ottenere software manutenibile e facilmente adattabile a nuove esigenze. Usabile in .NET e Java.
Професиите в ИТ индустрията: програмист, 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("[email protected]"));
console.log(emailPattern.test("[email protected]"));
console.log(emailPattern.test("invalid@@mail"));
console.log(emailPattern.test("err [email protected]"));
------------------------------------------------------------
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.
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?
AreaMVC: un'architettura software basata sulla semplicitàGiulio Destri
Come usare il pattern MVC per creare una architettura semplice e flessibile con cui ottenere software manutenibile e facilmente adattabile a nuove esigenze. Usabile in .NET e Java.
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.
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.
The document discusses the Model-View-ViewModel (MVVM) architectural pattern. MVVM consists of separating an application into three components: the Model (data access), the View (user interface), and the ViewModel (mediator between Model and View). The ViewModel processes data from the Model to present it to the View and passes user input from the View to the Model. This separation allows changes to one component without affecting the others, improving maintainability and testability. The document also discusses using MVVM with C# for the Model, TypeScript for ViewModels, and HTML5 for Views, connected with KnockoutJS for data binding.
This document describes a framework for developing agile web applications. It includes support for test-driven development, Entity Framework, TypeScript, and single page applications. The framework provides client-side data entities generated from server-side models, change tracking, and offline data persistence. It also includes security policies, repository patterns, and support for requirements analysis, behavior-driven development, and Scrum/Kanban methodologies.
This document outlines the objectives and architecture of SUE AGILE, a scalable and sustainable distributed architecture for developing cloud and on-premises line of business applications. The main objectives are to enable RAD development with Visual Studio and Typescript, write once deploy to many browsers/devices, and provide a client experience similar to WPF with MVVM and TDD. The architecture is based on enterprise service bus integration, message-oriented middleware, and location-transparent service containers with security, validation, and optional BPM/workflow integration.
e-suap - client technologies- english versionSabino Labarile
The document discusses technologies for developing single-page applications (SPAs). It describes frameworks like Durandal and KnockoutJS that use patterns like MVVM and support features such as routing and real-time communication. It also covers languages and libraries that support SPAs including HTML5, CSS3, TypeScript, Underscore, Async, Bootstrap, Less, and the QUnit testing framework. Developing SPAs is more complex than traditional websites due to moving more logic to the client and refining technologies.
The project aims to create an integrated digital platform for managing SUAP (Single Authorization Procedure) in compliance with current legislation. The platform will allow citizens, companies, and professionals to complete administrative procedures online in a more efficient and transparent manner. It will be used by the back office and users to open, close, or modify business activities. The work was commissioned by the SUAP office of the Murgia area to provide SUAP services completely online.
e-SUAP - Ochestration building block (english)Sabino Labarile
An orchestration is the executable implementation of a business process in BizTalk that allows modeling the process visually. Orchestrations interact with external systems using send and receive ports. They are created in Visual Studio and executed by the BizTalk orchestration engine which manages the lifecycle. Administrative processes in BizTalk can automate government procedures by designing the process in BPMN, implementing it with an orchestration in Visual Studio, and interfacing with other systems through a service bus. Orchestration instances can be monitored using the BizTalk console and debugger tools.
e-SUAP - Security - Windows azure access control list (english version)Sabino Labarile
ACS is an Azure service that provides easy authentication for web applications without requiring developers to build authentication logic. It supports popular identity providers like Microsoft, Google, and Facebook, and integrates with Active Directory. ACS uses claims-based identity to get user information and uses a rule engine to transform claims between identity providers and applications.
The document discusses how a Living Lab framework uses Entity Framework to model data and generate code. It allows modeling data through Visual Studio's entity framework tools. From this model, it can generate SQL for the database, server-side entities, and DTOs for distributed data. On the server-side, it generates a DBContext class, repository interfaces and classes using generics for each entity, and entity classes implementing change tracking and properties. It shows how to register the repositories with a unity container and retrieve and save data through the generated repositories.
e-suap - general software architecture (English)Sabino Labarile
The project aims to satisfy the needs of the local Sportello Unico delle Attività Produttive (SUAP) through an integrated digital management platform for back office users and citizens/companies. The platform will allow online management of SUAP procedures in compliance with legislation. It will provide an efficient and transparent online service for citizens while allowing direct access for citizens/companies to control administrative procedures. The architecture is browser-based using technologies like HTML5, Typescript, Durandal and Knockout. It is designed for high availability, scalability, security and rapid application development.
e-SUAP - General software architecture (English)Sabino Labarile
The document describes a software architecture that is designed to be scalable, have low bandwidth usage, and support test-driven development. Key aspects include:
- The architecture is layered with isolated domains, modules, and layers to promote separation of concerns.
- The frontend uses a single-page application approach with client-side data and change tracking for offline usage.
- An enterprise service bus connects domains and supports publish/subscribe integration.
- The architecture supports model-first development, code generation, and runtime design of user interfaces.
e-Suap Inista 2014 (International Symposium on INnovation in Intelligent SysT...Sabino Labarile
The document discusses an e-SUAP project with the goal of satisfying the needs of a local Sportello Unico delle Attività Produttive (SUAP) office through a digital management platform for both back office users and citizens/companies. The main objectives are to develop a browser-based, cross-device application with high availability, scalability, security, and rapid application development capabilities. The proposed architecture is a hexagonal architecture with the HTML5 shell interfacing with RESTful controllers, repositories, external systems, and business process engines.
e-Suap Inista 2014 (International Symposium on INnovation in Intelligent SysT...Sabino Labarile
SUE AGILE MVVM (Italian)
1. 3.c.6 Pattern MVVM
Per fornire alla piattaforma SUE-Agile una adeguata struttura ed organanizzazione di componenti si è scelto
di utilizzare il pattern architetturale “Model View View-Model”.
Esso consiste nella separazione degli aspetti dell’applicazione in tre componenti:
• Model
• View
• ViewModel
Come si deduce facilmente dalla figura precedente il Model rappresenta il punto di accesso ai dati. Trattasi di
una o più classi che leggono dati dal DB, oppure da un servizio Web di qualsivoglia natura.
La View rappresenta la vista dell’applicazione, l’interfaccia grafica, mentre il ViewModel è il punto di incontro
tra la View e il Model: i dati ricevuti da quest’ultimo sono elaborati per essere presentati e passati alla View e
viceversa.
Il ViewModel (VM) può essere immaginato come un’astrazione della view, ma nello stesso tempo è anche una
specializzazione del model che la view utilizza per il data binding. Il VM è particolarmente utile quando il Model
è complesso, o è già esistente e non si può modificare, oppure quando i tipi di dato del model non sono
facilmente collegabili alla view.
Quando l’utente interagisce con la View, instantaneamente la variazione di stato è comunicata al ViewModel
(grazie al Data-Binding) e come risposta al cambio di stato o all’attivazione di un metodo il ViewModel “agisce”
tramite il Model e aggiorna il proprio stato. Il nuovo stato del ViewModel si riflette poi sulla View.
E’ fondamentale il fatto che il ViewModel mantenga nel proprio stato non solo le informazioni recuperate
attraverso il Model, ma anche lo stato attuale della visualizzazione: ciò gli consente di essere del tutto
disaccoppiato dalla View.
Un modo per visualizzare il concetto è pensare alle applicazioni che fanno uso di tale pattern come composte
da un albero di ViewModel, ciascuno responsabile di una particolare "zona" dell'interfaccia utente, che realizzi
nel suo insieme una sorta di macchina a stati: ogni volta che l'utente sollecita l'applicazione, e quindi
2. indirettamente la "macchina", quest'ultima reagisce, cambiando il proprio stato ed eseguendo sotto il proprio
controllo le operazioni di dominio business.
In questa visione, la View si riduce ad un "vetro" attraverso il quale l'utente osserva il funzionamento della
"macchina".
Ciò consente di ottenere facilmente la separazione del comportamento dell'applicazione dal suo "Look &
Feel"; questo è estremamente vantaggioso in scenari di sviluppo (ultimamente sempre più diffusi) in cui gli
aspetti di User Experience sono curati da figure con precise competenze, diverse da quelle necessarie per lo
sviluppo e la codifica.
Per facilitare questa separazione, il ViewModel deve essere progettato in termini il più possibile astratti; anche
per questo motivo è preferibile evitare dipendenze dirette alla View stessa, oppure verso componenti specifici
della tecnologia di UI. E' piuttosto comune per le applicazioni moderne fare uso della cosiddetta UI
composition, ovvero della capacità di comporre l'interfaccia utente mediante la creazione dinamica di diversi
parti più piccole, spesso coordinate, collocate all'interno di opportune zone di una "impalcatura" principale,
detta shell. Un classico esempio (probabilmente tra i più complessi) di questa tecnica è la UI di Visual Studio,
composta da una numerosa serie di pannelli, toolbar e finestre di documento, completamente personalizzabile
dall'utente ed estendibile con nuovi componenti forniti mediante plugin.
Oltre all'aspetto puramente "visuale", tuttavia, la UI Composition richiede la presenza di qualche tipo di
infrastruttura che regoli e diriga il ciclo di vita (creazione, inizializzazione, attivazione, disattivazione, rilascio)
delle varie porzioni di schermo.
Il pattern MVVM non prescrive una linea precisa per questi aspetti; le diverse implementazioni, comunque,
sono suddivise in due gruppi principali:
View-First: il processo di composizione è guidato e sollecitato dalla View; quest'ultima, cioè, stabilisce
quali parti debbano essere composte e in quale zona della shell siano visualizzate. Questa
impostazione richiede che i ViewModel associati a ciascuna parte della View siano istanziati e collegati
in fase successiva;
Model-First: la composizione è gestita istanziando prima di tutto il ViewModel e collegando
successivamente la View corrispondente. In questa impostazione, che ritengo più naturale ed in linea
con la filosofia del MVVM, la composizione avviene prima di tutto a livello del ViewModel, mediante la
creazione (anche dinamica) di un "albero" delle varie parti; alla View è lasciato il compito di
rappresentare questo albero e le sue variazioni utilizzando gli usuali meccanismi di binding e
templating.
Come anticipato nei paragrafi precedenti Il SUE-Agile è stato sviluppato all’interno di un ambiente di tipo
.NET.Si è quindi fatto uso del linguaggio C# nella parte che si interfaccia con il livello dei dati, mentre per la
codifica del View-Model si è deciso di utilizzare lo script-language “Typescript”, le cui principali caratteristiche
sono meglio delineate in un altro paragrafo del documento. Per la View sono state invece sfruttate le
potenzialità e le novità introdotte dal linguaggio di mark-up HTML5. Importante per il collegamento tra questi
ultimi due componenti è stata senza dubbio la libreria KnockoutJs che ha permesso di implementare in
maniera semplice ed ottimale i meccanismi di data-binding.
3. Uno dei maggiori vantaggi derivanti dall’adozione di tale pattern è senza dubbio la possibilità di modificare
singole parti del codice senza influire sulle altre, garantendo quindi una manutenibilità del migliore dello stesso
e semplificando notevolmente la fase di test.