2. Framework
Behavior and test-driven development (QUnit): tests are
part of the delivered application
Entirely designed with WPF and RIA Services experience
in the mind
First-class Microsoft TypeScript support!
Total Entity Framework Experience on client-side, too
Single Page Application HTML5 template with Durandal,
Knockout, Angular etc.
fast and powerful user interface implementation,
styling, MVVM testing and many other goodies …
3. Framework
Client-side data entities generated through T4 templates directly from full
Entity Framework models
EF, client side TypeScript full-class support: inheritance, abstraction,
complex types
Client-side Object Change Tracking!!!
Object identity and entity graph serialization from and to Web-API layers,
thanks to custom .NET <-> Typescript serializer
Client JS/TS side full support for one-to-many, many-to-one, many-to-
many relations
Client-side offline scenarios with full data persistence, and change
support
Partial classes support, via serialization surrogates
4. Metodology Framework
Requisite and behavior driven formalization
Actually simple word document
TODO: tightly integration between word based analysis document and
visual studio solution can be achieved
Analysis integration (CR) will be tracked down to work item and real
implementation
Behaviors became test driven requirements
Actually Test driven development with Qunit
Analyzer formalizes in word document al test requirements
TODO: add-ins will automatically integrate with real source code
Rigorous behavior / test driven development enforcement
TODO: new advanced behavior driven development frameworks are
under research
5. Metodology Framework
Test & behavior driven development
• 1) behaviors definition
– Role: analyst
• 2) test implementation
– Role: developer
• 3) MVVM implementation
– Role: developer
• 3) total behaviors and requisites test coverage over MVVM
– Role: developer
• 4) HTML / View implementation
– Role: developer +| UX designer
• 5) UAT
– Customer / stake holder
6. Framework
Data Layer
• First class Repository pattern and Unit of Work implementation
– Contracts for repository pattern automatically generated
– Resolution and wire-up of concrete implementations through Unity dependenc
– Different data strategies can be mixed together for achieving best performance
• Nhibernate support will be added (’15)
• Entity Framework 7.x ASAP
• DDD model first approach
– Full EDMX: server and client side entity generation
– Code First support (‘15):
• Manually coded entities: server and client side entity generation. Maybe for client only co
(interfaces) will be generated for AngularJS support
– Domain specific languages (or meta languages) are under investigation
– Full Change Tracking support
9. Framework
Service layer
• Legacy WCF service layer
– WS-* protocols
– Self hosted, IIS Application Server
• Web Api Service layer
– REST, JSON, SAML based security
– JSON graphs fully supported, even for javascript clients
• Uniform data transfer
– DDD entities and value types serialized and transported from and to
javascript clients
– Code Architects first class entity serializer for JSON .Net <-> javascript
typed entities
• Much more performant than native json stringify & parse methods
• Serializes deep graphs also from javascript
• Remapping of namespace/modules and typed entities for partial class emulation
through inheritance
10. Framework
Service layer
• Native Web Components support
• Implementation
– Object oriented implementation
– Manifest based setup and integration
<div class="testPageContent">
<shell-label params="value: 'Current date:', htmlClass:'pull-left'"></shell-label>
<shell-dateinput params="value: currentDate, htmlClass:'pull-left'"></shell-dateinput>
<br />
<shell-buttonicon params="text:'Prev', $onClick: function()
{ $root.gotoPrevPage() }, htmlClass:'pull-left'"></shell-buttonicon>
<shell-buttonicon params="text:'Today', $onClick: function()
{ $root.gotoTodayPage() }, htmlClass:'pull-left'"></shell-buttonicon>
11. Framework
UI layer
• Full browser and device specific HTML5
support
• Real time Multi-lingual support
• Every user interface “use case” is simply a
template!
– thanks to UI component “indirection”, you can
switch with same code and views to different
device by just changing the template library
12. Framework
UX layer
• Rigorous template implementation pattern
• Domain and security validation integrated with MVVM -> VIEW
binding through powerful policies
• User interface has own object model, just like XAML
– Serialization and deserialization of user interface fragments made
possible thanks by a powerful Code Architects custom TypeScript
Javascript reflection and serializer implementation, part of the
foundation classes
• In browser - runtime user interface designer reads and writes JAML
(JSON Application Markup Language)
• Validation and other features supported through repository
techniques or aggregated dynamic viewmodels
13. Framework
Validation
• DDD entities and value types
– Repository driven
• XML / JSON documents
– Schema driven through annotations
• MVVM imperative statements
– Regular entities:
– XML/JSON documents:
• Multi lingual support
public Lastname: KnockoutObservable<string> = ko.observable('Rossi').extend({ r
equired: { message: 'Cognome obbl.' } });
self.bindTo({ path: 'Extensions/Documento/Richiedente/DatiAnagrafici/CF', namespace: '', type: 'string' }
)
.extend({required: { message: 'C.O.' }, pattern: { params: this.Patterns.FiscalCode, message: 'Fornire un
codice fiscale valido'}});
14. Framework
Application Lifecycle mangament
• Analysis
• Behavior and test driven development
• Versioning
– NUGET Packaging
• Methodology
– Development of new application
• SCRUM (over 1 year experience in CA on many different teams and
projects)
– Integration with legacy application
• KANBAN
15. SUE AGILE
Facebook - SUE AGILE
Linkedin – SUE AGILE
www.sue-agile.codearchitects.com
http://sueagile.cloudapp.net/
16. Ing. Sabino Labarile
Code Architects s.r.l.
Via Jazzitiello 15 C/D Santeramo in Colle (Bari)
www.codearchitects.com