Joe Walling - PowerPoint PPT Presentation

1 / 27
About This Presentation
Title:

Joe Walling

Description:

Fill out the note card with your answer. ... Infrastructure (plumbing) vs. domain specific. YAGNI. Open source software. Purchase components ... – PowerPoint PPT presentation

Number of Views:58
Avg rating:3.0/5.0
Slides: 28
Provided by: joewa
Category:
Tags: joe | plumber | the | walling

less

Transcript and Presenter's Notes

Title: Joe Walling


1
Effective Software Development
  • Joe Walling
  • Computer Software Innovations
  • Refreshments Sponsored by MDI

2
As a software developer, what ONE thing are you
being paid to do by your company or client?
  • Note that I am not looking for one thing that you
    do, but THE ONE thing that all the others are
    there to support.
  • Fill out the note card with your answer.

3
As a software developer, what ONE thing are you
being paid to do by your company or client?
  • Make the company moneyor more specifically,
    impact the companys bottom line in a positive
    manner.

4
What Happens if You Dont?
  • The company realizes how you are impacting the
    bottom line and

5
What Happens if You Dont?
  • The company realizes how you are impacting the
    bottom line and
  • The company is not competitive and loses money
    and has layoffs or outsources and

6
What Happens if You Dont?
  • The company realizes how you are impacting the
    bottom line and
  • The company is not competitive and loses money
    and has layoffs or outsources and
  • Company goes out of business

7
How You Can Impact the Bottom Line
  • Create software that
  • Helps the company make more money
  • Saves the company money
  • Allows the company to provide better customer
    service which will in turn result in more sales
    and income for the company
  • Create software more quickly
  • Create more robust software in the same amount of
    time
  • Reduce support costs of software

8
What You Can Do
  • Write only the code that makes sense for you to
    write
  • Infrastructure (plumbing) vs. domain specific
  • YAGNI
  • Open source software
  • Purchase components

9
What You Can Do
  • Write only code that makes sense to write
  • Reuse code
  • Centralized code snippets
  • Project and item templates

10
What You Can Do
  • Write only code that makes sense to write
  • Reuse code
  • Use tools that reduce your work
  • Object oriented data persistence
  • Control layout
  • Control data binding
  • Defining a consistent look and feel for
    application

11
What You Can Do
  • Write only code that makes sense to write
  • Reuse code
  • Use tools that reduce your work
  • Use a framework for your infrastructure
  • SCSF
  • Automated recipes
  • Guidance
  • Generated code
  • Reference apps
  • Your own possibly pieced together from oss and
    purchased
  • Mere Mortals
  • Strataframe

12
Internally Developed Framework
  • Pros
  • Source code

13
Grow Your Own
  • Pros
  • Simple
  • You understand it
  • You have the source code
  • Cons
  • Untested
  • Unmaintainable
  • Undocumented
  • Inflexible
  • Not scalable
  • What if something happens to you?

14
CABSCSF
  • Pros
  • Widely accepted architecture that came from MS
    PP
  • Extensible
  • Testable includes Dependency Inversion
    Container
  • Open source
  • Developer community
  • There arent many alternatives
  • Cons
  • Too complex
  • Hard to debug

15
Lets Develop Something
  • Simple smart client application
  • Runs as a single user application
  • Database is SQL Server 2005
  • Must have the VS2005 look
  • Splash screen
  • About Box
  • Provide basic scheduling functionality
  • Provide the capability to search for contacts and
    display the results in a grid
  • Below the grid provide a means to edit all
    contact information. This detail info should be
    bound to the same data as is displayed in the
    selected row of the grid.

16
Demo
  • Use project templates to create the framework of
    the application

17
Demo
  • Use project templates to create the framework of
    the application
  • Develop the database

18
Demo
  • Use project templates to create the framework of
    the application
  • Develop the database
  • Use Ideablade to generate the business objects

19
Demo
  • Use project templates to create the framework of
    the application
  • Develop the database
  • Use Ideablade to generate the business objects
  • Use Devexpress for the consistent look and feel

20
Demo
  • Use project templates to create the framework of
    the application
  • Develop the database
  • Use Ideablade to generate the business objects
  • Use Devexpress for the consistent look and feel
  • Use Devexpress for the Scheduling form

21
Demo
  • Use project templates to create the framework of
    the application
  • Develop the database
  • Use Ideablade to generate the business objects
  • Use Devexpress for the consistent look and feel
  • Use Devexpress for the Scheduling form
  • Use IdeaBlade to easily layout controls and bind
    them

22
Spec Change
  • Need to be able to work disconnected
  • They want the application to be blue
  • Provide a means for validating the data and
    showing invalid data.

23
Demo
  • How to change the skin so all forms now take on
    the blue flat style

24
Demo
  • How to change the skin so all forms now take on
    the blue flat style
  • Add the code for working disconnected

25
Demo
  • How to change the skin so all forms now take on
    the blue flat style
  • Add the code for working disconnected
  • Add some validation code and show how errors can
    be displayed

26
Tips
  • Its not about how much code you write or how
    cool the software you wrote isit is all about
    the almighty dollar.
  • Spend time educating yourself on these new
    technologies and trends. There is a lot more to
    .NET development than the .NET framework
  • Step outside your comfort zone and learn more
    about architecture, patterns, and test driven
    development.

27
References
  • Ideablade - http//www.ideablade.com/Cabana/cabana
    .html
  • Microsoft Patterns and Practices -
    http//msdn2.microsoft.com/en-us/practices/default
    .aspx
  • Guidance Automation Toolkit - http//msdn2.microso
    ft.com/en-us/practices/aa718948.aspx
  • Jeremy Miller - http//codebetter.com/blogs/jeremy
    .miller/default.aspx
  • DeveXpress - http//www.devexpress.com/Products/NE
    T/
Write a Comment
User Comments (0)
About PowerShow.com