Object Oriented Development and Practices In SharePoint Mostly.

Slides:



Advertisements
Similar presentations
Data Model driven applications using CASE Data Models as the nucleus of software development in a Computer Aided Software Engineering environment.
Advertisements

Introduction to Databases
Computer Monitoring System for EE Faculty By Yaroslav Ross And Denis Zakrevsky Supervisor: Viktor Kulikov.
2 Object-Oriented Analysis and Design with the Unified Process Objectives  Explain how statecharts can be used to describe system behaviors  Use statecharts.
Object Oriented System Development with VB .NET
Module: Definition ● A logical collection of related program entities ● Not necessarily a physical concept, e.g., file, function, class, package ● Often.
File Systems and Databases
Kashif Jalal CA-240 (072) Web Development Using ASP.NET CA – 240 Kashif Jalal Welcome to week – 2 of…
Object-Oriented Enterprise Application Development J2EE Blueprints.
Software Factory Assembling Applications with Models, Patterns, Frameworks and Tools Anna Liu Senior Architect Advisor Microsoft Australia.
© 2005, Cornell University. Rapid Application Development using the Kuali Architecture (Struts, Spring and OJB) A Case Study Bryan Hutchinson
Satzinger, Jackson, and Burd Object-Orieneted Analysis & Design
Systems Analysis and Design in a Changing World, 6th Edition
Software Issues Derived from Dr. Fawcett’s Slides Phil Pratt-Szeliga Fall 2009.
INTRODUCTION TO JAVA PROGRAMMING Chapter 1. What is Computer Programming?
Discover, Master, InfluenceSlide 1 SQL Server Compact Edition and the Entity Framework Rob Sanders Readify.
N-Tier Architecture.
Database Systems: Design, Implementation, and Management Ninth Edition
1 INTRO TO BUSINESS COMPONENTS FOR JAVA (BC4J) Matt Fierst Computer Resource Team OracleWorld Session
1 Design and Integration: Part 1 Nuggets about Design vs Project Management.
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
Systems Analysis and Design in a Changing World, Fifth Edition
Week 1 Lecture MSCD 600 Database Architecture Samuel ConnSamuel Conn, Asst. Professor Suggestions for using the Lecture Slides.
Design Patterns.
Entity Framework Code First End to End
Chapter 9: Coupling & Cohesion Omar Meqdadi SE 273 Lecture 9 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
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.
SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 11 : Frameworks SWE 316: Software Design and Architecture  To understand.
Todd Snyder Development Team Lead Infragistics Experience Design Group.
Ceg860 (Prasad)L6MR1 Modularity Extendibility Reusability.
COLD FUSION Deepak Sethi. What is it…. Cold fusion is a complete web application server mainly used for developing e-business applications. It allows.
Object-Oriented Programming and the Progress ABL Tomáš Kučera Principal Solution Engineer / EMEA Power Team.
Introduction To System Analysis and Design
CSC 395 – Software Engineering Lecture 12: Reusability –or– Programming was Bjarne Again.
CSC 211 Introduction to Design Patterns. Intro to the course Syllabus About the textbook – Read the introduction and Chapter 1 Good attendance is the.
Microsoft SharePoint Server 2010 for the Microsoft ASP.NET Developer Yaroslav Pentsarskyy
CS200 Algorithms and Data StructuresColorado State University Part 4. Advanced Java Topics Instructor: Sangmi Pallickara
Microsoft Dynamics NAV 2009 and Architecture Overview Name Title Microsoft Corporation.
Oct * Brad Tutterow. VS 2008.NET 3.5LINQ Entity Framework  The ADO.NET Entity Framework is part of Microsoft’s next generation of.NET technologies.
1 Design and Integration: Part 2. 2 Plus Delta Feedback Reading and lecture repeat Ambiguous questions on quizzes Attendance quizzes Boring white lecture.
Quick overview of ASP.NET Ajax Ajax deep-dive Cover some key real-world problems Discuss solutions, patterns, opportunities Lots of demos And more of.
Software testing techniques Software testing techniques Software Testability Presentation on the seminar Kaunas University of Technology.
CS 350 – Software Design Expanding Our Horizons – Chapter 8 The traditional view of objects is that they are data with methods. Sometimes objects could.
Copyright 2007 SpringSource. Copying, publishing or distributing without express written permission is prohibited. Testing Spring Applications Unit Testing.
Getting Started with.NET Getting Started with.NET/Lesson 1/Slide 1 of 31 Objectives In this lesson, you will learn to: *Identify the components of the.NET.
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2000 Session 4 Lecture # 3 - September 28, 2004.
Chapter 18 Object Database Management Systems. Outline Motivation for object database management Object-oriented principles Architectures for object database.
Text TCS INTERNAL Oracle PL/SQL – Introduction. TCS INTERNAL PL SQL Introduction PLSQL means Procedural Language extension of SQL. PLSQL is a database.
Author: DoanNX Time: 45’.  OOP concepts  OOP in Java.
Chapter 9: Coupling & Cohesion Omar Meqdadi SE 273 Lecture 9 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Chapter 10 Software quality. This chapter discusses n Some important properties we want our system to have, specifically correctness and maintainability.
Chapter 7 Lecture 1 Design and Implementation. Design and implementation Software design and implementation is the stage in the software engineering process.
CSC 243 – Java Programming, Spring, 2014 Week 4, Interfaces, Derived Classes, and Abstract Classes.
11 Systems Analysis and Design in a Changing World, Fifth Edition.
Presented by FACADE PATTERN
Object-Oriented Design
N-Tier Architecture.
Inheritance and Polymorphism
Software Support Framework
ADO.NET Entity Framework
Objects First with Java A Practical Introduction using BlueJ
Transforming SharePoint Farm Solutions to the Add-in Model
File Systems and Databases
Why Object-oriented Programming?
SSDT and Database Project Basics
Objects First with Java A Practical Introduction using BlueJ
Developing and testing enterprise Java applications
Objects First with Java A Practical Introduction using BlueJ
Presentation transcript:

Object Oriented Development and Practices In SharePoint Mostly

» Charles Chen (Me) » Blog thingy: ».NET, SharePoint, Office, Web » Slide deck and related posts (with code!) » Background ».NET since version 1 (Java and ASP before that) » SharePoint development since 2007 beta 2 » Then: product development on SharePoint/Office platform » Now: solution development on SharePoint/Office platform » Paragon Solutions (My Employer) » Introduction

» “No Silver Bullet” – Fred Brooks » Ideas for Building SharePoint Solutions for: » Approachability – Easy for new developers to ramp up » Agility – Easy to extend and build new features » Consistency – Highly conformant code and patterns (DRY) » Maintainability – Easy to maintain and fix » Tips for Leveraging the Platform (.NET and SharePoint) » Lots of code! Concrete examples. » Start Thinking About Frameworks and Teams » Developers take the path of least resistance (make it easy to write good code). » Make your entire team productive Key Takeaways (In a Few Bullet Points)

» Text-book Definition: » Objects and classes – a tight coupling or association of data structures with the methods or functions that act on the data » Encapsulation – protect components of a class from external entities (hide complexity) » Inheritance – ability for a class to extend or override functionality in another class » Interfaces – ability to defer implementation with a contract » Polymorphism – ability to replace an object with a sub- object » Winner? – Next what is an “anemic domain model”? So What Is Object Oriented Code?

» What is It? » An “anti-pattern” (Martin Fowler) » Logic cannot be implemented in a truly object-oriented way unless wrappers are used, which hide the anemic data structure. » Facilitates code duplication among transactional scripts and similar use cases, reduces code reuse. » Necessitates a service layer when sharing domain logic across differing consumers of an object model. » Makes a model less expressive and harder to understand. (Less visibility.) » So You Have an Anemic Domain Model, Now What? (link)link Anemic Domain Models

1 Approachability “A habit cannot be tossed out the window; it must be coaxed down the stairs a step at a time.” – Mark Twain

» Old Habits Die Hard » SharePoint development is foreign to ASP.NET developers » …But ASP.NET developers are easy to come by » Watch out for bad SharePoint development practices » Approach: Make it easy for them to stay in their domain » Minimize Challenges » Structure solution to isolate SharePoint from ASP.NET code » Take the challenge out of packaging and deployment » Obfuscation of complex moving parts (more later…) » Code Walkthrough Approachability

2 Agility “The speed of a runaway horse counts for nothing.” – Jean Cocteau

» What Is It? » Ability to implement new functionality, quickly » Ability to make changes to existing functionality, quickly » Ability to adjust rapidly to changing requirements, quickly » How is Agility Attained? » Reduce duplication in code » Reduce duplicate effort » Reduce manual steps » Object-oriented semantics – Domain Model (more later…) » Just Being Quick is not Good Enough » Code needs to stay “clean” to promote future agility Agility

3 Consistency “Intuition will tell the thinking mind where to look next.” – Jonas Salk

» Conceptual Integrity » “Conceptual integrity is the most important consideration in system design.” – Fred Brooks » How to build on the framework and use existing artifacts should be intuitive » Increase approachability by emphasizing consistency in programming model » How to Achieve? » We saw some of it already – automation » Avoid Anemic Domain Models » Leverage patterns when applicable » Abstract common behaviors (DRY) Consistency

» What is It? Fowler: » “Mixing SQL in application logic can cause several problems. Many developers aren't comfortable with SQL, and many who are comfortable may not write it well. Database administrators need to be able to find SQL easily so they can figure out how to tune and evolve the database.” » “A Table Data Gateway holds all the SQL for accessing a single table or view: selects, inserts, updates, and deletes. Other code calls its methods for all interaction with the database.” » Code Samples – “List Data Gateways” Patterns – Table Data Gateway

4 Maintainability “Another flaw in the human character is that everybody wants to build and nobody wants to do maintenance.” – Kurt Vonnegut Jr.

» The Ugly Truth: » SharePoint code is fraught with string references » CAML strings » Library, content type, and field names » Hard to find and fix everything » Runtime errors as opposed to compile time errors » Redeploying packages is time consuming » Hard to trace errors (log4net to the rescue!) » A Path Forward » Query framework for 2007 and 2010 » SPMetal (if it suits your tastes) in 2010 » Let’s look at code… Maintainability

? Questions? Feedback? More demos? Charles Chen | |