Soprex framework on .NET in action

Slides:



Advertisements
Similar presentations
DIGIDOC A web based tool to Manage Documents. System Overview DigiDoc is a web-based customizable, integrated solution for Business Process Management.
Advertisements

SharePoint Forms All you ever wanted to know about forms but were afraid to ask.
Microsoft SharePoint 2013 SharePoint 2013 as a Developer Platform
Jeremy Boyd Director – Mindscape MSDN Regional Director
Microsoft Office SharePoint Server Business Intelligence Tom Rizzo Director, Microsoft Office SharePoint Server
“This presentation is for informational purposes only and may not be incorporated into a contract or agreement.”
Creating Business Workflow Using SharePoint Designer 2007 Presented by Tarek Ghazali IT Technical Specialist Microsoft SQL Server MVP Microsoft SQL Server.
DYNAMICS CRM AS AN xRM DEVELOPMENT PLATFORM Jim Novak Solution Architect Celedon Partners, LLC
Introduction to the Enterprise Library. Sounds familiar? Writing a component to encapsulate data access Building a component that allows you to log errors.
Copyright © 2006, SAS Institute Inc. All rights reserved. Enterprise Guide 4.2 : A Primer SHRUG : Spring 2010 Presented by: Josée Ranger-Lacroix SAS Institute.
Database Design for DNN Developers Sebastian Leupold.
What is Architecture  Architecture is a subjective thing, a shared understanding of a system’s design by the expert developers on a project  In the.
COLD FUSION Deepak Sethi. What is it…. Cold fusion is a complete web application server mainly used for developing e-business applications. It allows.
DBSQL 14-1 Copyright © Genetic Computer School 2009 Chapter 14 Microsoft SQL Server.
Columnstore Indexes in SQL Server 2012 Conor Cunningham Principal Architect, Microsoft SQL Server Representing Microsoft Development.
Searching Business Data with MOSS 2007 Enterprise Search Presenter: Corey Roth Enterprise Consultant Stonebridge Blog:
Copyright © 2006 TietoEnator Corporation Using Community Tools To Improve Team Work Magnus Einarsson.
Database Design and Management CPTG /23/2015Chapter 12 of 38 Functions of a Database Store data Store data School: student records, class schedules,
10/25/20151 Single Sign-On Web Service Supervisors: Viktor Kulikov Alexander Sherman Liana Lipstov Pavel Bilenko.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
Da li su kvalitetna SharePoint rješenja samo mit? Adis Jugo, PlanB. GmbH
Copyright 2007, Information Builders. Slide 1 iWay Web Services and WebFOCUS Consumption Michael Florkowski Information Builders.
ASP.net Course From Intermediate to Advance level By Arsalan Ahmed 3 Months Course Cell :
Getting Started with Datazen Microsoft’s New Mobile Dashboard Platform.
Milan Vukoje State of the art logging October 23 rd 2013.
Mastering Master Data Services Presented By: Jeff Prom BI Data Architect Bridgepoint Education MCTS - Business Intelligence, Admin, Developer.
Lesson # 9 HP UCMDB 8.0 Essentials
James Blankenship September , 2016
James Blankenship March , 2017
Data Persistence In A Web Hosted World
CMS High Level Trigger Configuration Management
6/2/2018 3:37 PM © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
GWE Core Grid Wizard Enterprise (
Open Source distributed document DB for an enterprise
Chris Menegay Sr. Consultant TECHSYS Business Solutions
What’s New in SQL Server 2016 Master Data Services
Solving the Hard Problems
SMS MARKETING.
Did your feature got in, out or planned?
Enterprise Library Overview
IBM Data Server Gateway for OData
Searching Business Data with MOSS 2007 Enterprise Search
Accessing Spatial Information from MaineDOT
CO6025 Advanced Programming
The Power Of Generic Infrastructure
Serverless CQRS in Azure!
Searching Business Data with MOSS 2007 Enterprise Search
Wsdl.
Populating a Data Warehouse
Governance Assistant for Office365
Populating a Data Warehouse
Microsoft Build /15/2018 6:28 AM © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY,
Section 14.1 Section 14.2 Identify the technical needs of a Web server
Populating a Data Warehouse
Lecture 1: Multi-tier Architecture Overview
Collaborative Business Solutions
Tech Ed North America /1/ :36 AM Required Slide
SmartMaster 2016 Controller
DAT381 Team Development with SQL Server 2005
Serpil TOK, Zeki BAYRAM. Eastern MediterraneanUniversity Famagusta
From the professor's word processor to the student's mobile reading experience November 14, 2018.
Dynamicweb PIM General introduction Innovia 2018.
Execute your Processes
Developing and testing enterprise Java applications
.NET Framework Data Providers
WCF Data Services and Silverlight
SharePoint 2007 Developer Overview Collaboration BI Features
Andreas Rosen QKom GmbH
Mark Quirk Head of Technology Developer & Platform Group
IS 135 Business Programming
Presentation transcript:

Soprex framework on .NET in action Milan Vukoje www.Vukoje.NET milan.vukoje@soprex.com August 8, 2011

Themes What is SCA? Why we built it? Architecture overview Discussion Domain objects Data Access Layer Business Layer Presentation layer Discussion

Typical business app BL External sys CRUD OLAP sync OLTP sync

Why SCA for Management? Rapid Application Development Stability & Predictability Quality - error probability reduction High app performance Usable GUI Solving problem once User management Access Rights Translation Configuration …

Why SCA for Developers? Simple & Uniform solutions Configuration over custom code Simple test cases High code reuse Executable best practices Focus on BR

DEMO 1

Architecture overview Is “simply” easy to build? How to implement a sure thing? SOA? GUI PL BL CRUD DAL First law of distributed object design: - Don't distribute your objects! Martin Fowler DB

Doman Objects (DO) The choice? The winner - POCO + DataTable Parameters (no DO) XML POCO DataTable Typed DataTable Linq to SQL Entity Framework The winner - POCO + DataTable GUI PL DO BL DAL DB

DO features [1] Simple API State Change Tracking Change control New Modified Unchanged Change Tracking Original values Change notification Change control Always Local only New Only GUI PL DO BL DAL DB

DO features [2] Validation Serializable Clone/Copy/Sync Optimized Required Max length Max/ Min value … Serializable Clone/Copy/Sync Optimized Generated from DB Integrated meta model Memory DO querying GUI PL DO BL DAL DB

Data Access Layer (DAL) Key focus is performance! Isolates DB Dependency DAAB Queries vs. Stored procedures Support for MS SQL and SQLite No T-SQL in API No abstract queries GUI PL BL DAL DB All non-trivial abstractions, to some degree, are leaky. Joel Spolsky

DAL features [1] CRUD Filtering Filter composition Paging Paged searching (Default) Ordering Simple JOINs GUI PL BL DAL DB

DAL features [2] Batch saving & Importing Partitioned data loading Unique rule validation Unique key generation GUI PL BL DAL DB

Meta means murder Denormalized meta-model IsLocal CreatedOn CreatedBy UpdatedOn UpdatedBy Status IsLocked table columns have translatable description DBUtil – tool handling redundancy Soft Delete pros and cons GUI PL BL DAL DB

Business Layer (BL) Implements BR Validates Data DB agnostic Concurrency control Pessimistic Optimistic Child DO (lazy) loading Anemic DO vs. Rich DO GUI PL BL DAL DB

Services AppTranslation AppProperties AppUserRights BL BL BL DAL DAL DB

DEMO 2

Presentation Layer (PL) Applies BR to GUI Editability Data size Converts GUI actions to BL actions Coordinates data loading paging/sorting filter composition Controls access rights Controls actions availability PL PL PL Presenter Service BL Service Service

PL features Implements Presentation Logic Form customization Position Size Filter Gris Settings Translates messages Optimistic & Pessimistic concurrency Optimized Partial grid data loading Child data lazy loading GUI PL BL DAL DB

PL advantages Unit testable Keeps BR in BL Keeps PL out of GUI GUI agnostic Easy to have alternative GUI GUI PL BL DAL DB

GUI BIND DO LOAD PL PO Data BIND

GUI Binding – declarative sync Minimum amount of logic Built using designer (not generated) GUI PL BL DAL DB

Data Import Async Fast Extensible Reports BL errors Respects user settings Reports format errors DB Convert Import DataTable Data editable by User

Profiling Trace Event Logger Production debugging Performance monitoring High performance Event Logger Reliable support notification Collects reproduction data User input System state

More SCA features Export Printing Mailing AppCache Offline app sync Excel, CSV, Text, XML, HTML Printing Word/PDF Mailing AppCache Offline app sync Record Attachments

Summary Frameworks are nice… …but they cost money! Keep it simple, Stupid! (KISS) Don't repeat yourself! (DRY) Long live MVP! Don’t chaise technology

Resources Patterns of Enterprise Application Architecture Application Architecture Guide 2.0 Framework Design Guidelines

Questions Arguing with an Engineer is a lot like wrestling in the mud with a pig: After a few hours, you realize the pig likes it.

Thank you for your attention. Milan Vukoje www.Vukoje.NET milan.vukoje@soprex.com

Openness and Interoperability @Microsoft Microsoft and Open Source gateway for deeper exploration of open source engagements http://www.microsoft.com/openness Port25 blogs from the platform community and the OSS Lab teams http://Port25.technet.com Codeplex resources for developers and consumers of open source projects http://www.codeplex.com Interoperability Bridges technical collaborative works http://www.interoperabilitybridges.com Open Up cross-Industry Interoperability and Standards activities http://www.microsoft.com/interop/openup Shared Source portal for programmatically sharing code http://www.microsoft.com/sharedsource OData open source starter kit for Internet publishing of Government datasets using the Open Data http://ogdisdk.cloudapp.net Open Spec protocols, file formats, standards, technical specifications http://www.microsoft.com/openspecifications BizSpark Program for Start-Up companies from both commercial and open source backgrounds http://www.microsoft.com/bizspark How can I receive up-to-date Openness announcements from Microsoft? In addition to the websites above, you can receive regular updates to Microsoft’s openness, interoperability and standards efforts via the following channels: http://blogs.technet.com/b/openness/ http://blogs.msdn.com/b/interoperability/ http://twitter.com/OpenAtMicrosoft http://port25.technet.com http://channel9.msdn.com/Blogs/Interoperability

Please rate this lecture and WIN HTC MOZART! Help us choose the best Sinergija lecturer! Telekom Srbija and Microsoft will award you – at the conference end, we’ll give one HTC Mozart WP7 phone to someone from the audience – randomly. Go to www.mssinergija.net, log in and cast your votes. You can rate only lectures that you were present at, just once. More lectures you rate, more chances you have. Please use computers at the front of this room, or rate lecture from your phone or home computer, at Sinergija portal. This prize contest will end at Thursday, October 20th at 9 PM. Winner will be announced at the official Sinergija web portal, www.mssinergija.net is a friend of Sinergija 2011 Conference and Imagine Cup student competition in Serbia.