Templates Improve Application Development



Similar documents
This course provides students with the knowledge and skills to develop ASP.NET MVC 4 web applications.

Developing ASP.NET MVC 4 Web Applications Course 20486A; 5 Days, Instructor-led

Developing ASP.NET MVC 4 Web Applications MOC 20486

Developing ASP.NET MVC 4 Web Applications

Expanded contents. Section 1. Chapter 2. The essence off ASP.NET web programming. An introduction to ASP.NET web programming

ConvincingMail.com Marketing Solution Manual. Contents

ASP.NET Using C# (VS2012)

Transition your MCPD Web Developer Skills to MCPD ASP.NET Developer 3.5 (VB)

E-Commerce: Designing And Creating An Online Store

Business Application Development Platform

SAV2013: The Great SharePoint 2013 App Venture

ultimo theme Update Guide Copyright Infortis All rights reserved

70-487: Developing Windows Azure and Web Services

The Great Office 365 Adventure

MS Enterprise Library 5.0 (Logging Application Block)


To install Multifront you need to have familiarity with Internet Information Services (IIS), Microsoft.NET Framework and SQL Server 2008.

J j enterpririse. Oracle Application Express 3. Develop Native Oracle database-centric web applications quickly and easily with Oracle APEX

Configuring and Testing Caching and Other Performance Options in Microsoft SharePoint Technologies

Kentico Site Delivery Checklist v1.1

Analytics Configuration Reference

SelectSurvey.NET Developers Manual

ultimo theme Update Guide Copyright Infortis All rights reserved

Terms and Definitions for CMS Administrators, Architects, and Developers

Developer Tutorial Version 1. 0 February 2015

GOA365: The Great Office 365 Adventure

Sitecore Dashboard User Guide

10 Game-changing Features in Visual Studio 2013 for the ASP.NET Developer

Top Navigation menu - Tabs. User Guide 1. &

ASP.NET MVC. in Action JEFFREY PALERMO JIMMY BOGARD BEN SCHEIRMAN MANNING. (74 w. long.) WITH MVCCONTRIB, N HIBERNATE, AND MORE.

Elgg 1.8 Social Networking

Programming Fundamentals of Web Applications Course 10958A; 5 Days

This Record of activity confirms that Jonathan Scrase has completed the following courses within the Microsoft Virtual Academy:

Dynamic Web Programming BUILDING WEB APPLICATIONS USING ASP.NET, AJAX AND JAVASCRIPT

Visual COBOL ASP.NET Shopping Cart Demonstration

Getting Started with the Ed-Fi ODS and Ed-Fi ODS API

Drupal CMS for marketing sites

Getting Started with Elastic DB Database Tools with Azure SQL

General principles and architecture of Adlib and Adlib API. Petra Otten Manager Customer Support

DotNet Web Developer Training Program

multiple placeholders bound to one definition, 158 page approval not match author/editor rights, 157 problems with, 156 troubleshooting,

Extending Microsoft Dynamics CRM 4.0

Microsoft Project Server Integration with SharePoint 2010


This three-day instructor-led course provides students with the tools to extend Microsoft Dynamics CRM 4.0.

INTRODUCTION: SQL SERVER ACCESS / LOGIN ACCOUNT INFO:

Chapter 5 Configuring the Remote Access Web Portal

Using the SQL TAS v4

UPK Content Development Rel 11.1

Gateway Apps - Security Summary SECURITY SUMMARY

Developing and Implementing Web Applications with Microsoft Visual C#.NET and Microsoft Visual Studio.NET

SAP BO 4.1 COURSE CONTENT

In this topic we will cover the security functionality provided with SAP Business One.

Kentico 8 Certified Developer Exam Preparation Guide. Kentico 8 Certified Developer Exam Preparation Guide

Day 1 - Technology Introduction & Digital Asset Management

ultimo theme Update Guide Copyright Infortis All rights reserved

How To Use Titanium Studio

AUDIT REPORT EXAMPLE

CLOUD COMPUTING & WINDOWS AZURE

Sophos UTM Web Application Firewall for Microsoft Exchange connectivity

ASP.NET Overview. Ken Casada Developer Evangelist Developer & Platform Evangelism Microsoft Switzerland

skype ID: store.belvg US phone number:

Implementing and Maintaining Microsoft SQL Server 2008 Integration Services

3. Broken Account and Session Management. 4. Cross-Site Scripting (XSS) Flaws. Web browsers execute code sent from websites. Account Management

Two new DB2 Web Query options expand Microsoft integration As printed in the September 2009 edition of the IBM Systems Magazine

SAHARA DIGITAL8 RESPONSIVE MAGENTO THEME

Page Editor Recommended Practices for Developers

Microsoft Corporation. Project Server 2010 Installation Guide

ArcGIS Server Security Threats & Best Practices David Cordes Michael Young

Developing Solutions for Microsoft Dynamics AX in a Shared AOS Development Environment

UPK Content Development Rel 12.1

Migrating helpdesk to a new server

ADS2013: App Development with SharePoint 2013

Microsoft SQL Server Review

Certified Secure Web Application Secure Development Checklist

Chapter 6 Virtual Private Networking Using SSL Connections

Mastering Tomcat Development

Dell KACE K1000 System Management Appliance Version 5.4. Service Desk Administrator Guide

Portals and Hosted Files

Please contact Cyber and Technology Training at for registration and pricing information.

SharePoint 2010 Performance and Capacity Planning Best Practices

X-POS GUIDE. v3.4 INSTALLATION SmartOSC and X-POS

Fortis Theme Update Guide

INTRO TO THEMING IN MAGENTO

EXAM TS: Microsoft SharePoint Server 2010, Configuring. Buy Full Product.

Check list for web developers

How to Copy A SQL Database SQL Server Express (Making a History Company)

MS 10978A Introduction to Azure for Developers

EPiServer Operator's Guide

How to Connect to CDL SQL Server Database via Internet

<Insert Picture Here> Oracle Web Cache 11g Overview

Beginning Oracle. Application Express 4. Doug Gault. Timothy St. Hilaire. Karen Cannell. Martin D'Souza. Patrick Cimolini

FORTIS. User Guide. Fully responsive flexible Magento theme by Infortis. Copyright Infortis. All rights reserved

Microsoft Exam MB2-702 Microsoft Dynamics CRM 2013 Deployment Version: 6.1 [ Total Questions: 90 ]

Developing and Implementing Windows-Based Applications With Microsoft Visual C#.NET and Microsoft Visual Studio.NET

Transcription:

Templates Improve Application Development INL s use of Microsoft Model-View-Controller (MVC) with custom templates has improved application development productivity May 2, 2016, Dan Sleight [insert optional photo(s) here]

Background.NET Custom Application Development Team M&O, Divestment and New Development Projects Coding Standards had aged Written during early days of Web Forms development Largely ignored as they had become irrelevant Just beginning to use MVC Developers trying to force Web Forms methods into MVC Telerik (Kendo) Struggling without Server Side Events Weak front-end skills Others trying to take big bites Some not wanting to admit they are lost

Personal Experience Hired in late March 2015 as Staff-Aug Deep MVC background First Projects Divestment of an application that was rarely used because of the poor user experience Divestment of an internal classified ad app Public facing applications that had been previously started using MVC Divestment of IP Disclosure system Beginning of every project seemed to be doing the same tasks Started getting the app to a generic stopping point and saving for the next project Started developing shared tooling

Bootstrap/Bootswatch.com Based Top Menu Uses themes from http://www.bootswatch.com Very clean, strict bootstrap markup SASS (.scss)

Left-Hand Menu Based Uses small theme (css) files Uses Bootstrap markup Adds classes to handle the breadcrumbs and titles

Under the Hood C# Using features from C# 6 Encouraging learning new features in the language, staying current LinqToSql Less overhead than EF SQL Server ELMAH Clean custom error pages in the web.config transforms HTML 5 CSS 3 (Media Queries, etc) jquery Bootstrap FontAwesome SASS (.scss) Requires Mads Kristensen s Web Compiler extension in Visual Studio 2015 Web Essentials for 2013

Project Generation from the Template The templates exist in a solution where they can be adjusted and debugged WinForms app in the solution to generate the project Generation Parameters Path Connection Strings (Acceptance, Production, etc) Root Namespace {namespace}.data {namespace}.business {namespace}.mvc Template/Color Scheme Option to generate tables, stub the current user as admin Requires little work to get running after generation

What is done already? Web.config transforms Database Connection Strings Custom Error Pages Elmah logging to Database Windows Authentication User Management Role Manager Output Caching Session State Cookie Renamed Server Headers Obfuscated Compression Mime Types Nuget Packages (must be restored) View Engines stripped down Anti Forgery Token cookie name changed, requires SSL Routes reconfigured with ignores, Helper paths mapped Menu object for managing menus and permissions Developer controller with sample code, styles guide Helpers referenced

What about the Helpers BsHelper Contains a number of helpers to help with a bootstrap based project HtmlHelpers that add bootstrap specific classes to elements HtmlHelpers that stub up front-end libraries such as DatePicker.js, DataTables.net, Chosen, etc Contains controller for returning dependent js and css files used in the HtmlHelpers SNumber Helper Facilitates access to extended User information stored in a read-only database Dependent on BsHelper Primary Html Helper for searching and selecting employees

Establishing Boundaries and Guidelines The template establishes a clear three layer system, keeping the layers in different projects: {namespace}.data {namespace}.business {namespace}.mvc We encourage THICK objects and THIN controllers Models should be used for binding from the form, not the object directly to avoid overposting vulnerabilities Objects should self-hydrate (lazy load) child objects and bind look-up objects from a single DB call when possible Database column names should directly map to the object properties Objects should have static methods for getters, binding should not happen outside of the object*

Scaf Scaf is a scaffolder based on the database tables Since our database follows naming conventions, we can use the database DDL to generate scaffolding for our objects Scaf allows us to do custom formatting to quickly stub up html forms, etc

So, what are you saying? Technical Debt is one of the biggest concerns for our team, and finding ways to reduce that technical debt helps us stay relevant We re a.net team, and MVC is our platform for new development, so establishing a common starting point beyond the default solutions is important to us Being flexible is the advantage we have over configure systems. Our templates create guidelines, but don t lock out the flexibility we need to be innovative and meet needs Developers should know: If you write it once, consider putting it in a method If you write it twice, it should be in a method If you write it three times, you should consider changing jobs Teams should find ways to apply this principle outside the scope of a single project through templating and tooling.

Contact Info Dan Sleight Idaho National Laboratory daniel.sleight@inl.gov