AgileRock.com

agile development, asp.net,C#, JSON

Dallas TechFest 2009 Review

clock June 22, 2009 12:06 by author tim

Overall the conference was just OK.  For the cost (even if you got suckered into the $75 fee) I don't have alot of room to complain but here is a short review of my experience: 

The Good

 1.  "Some" Good presenters.  I specifically liked Caleb Jenkins presentation on DI.  Here are a few items I wrote down during his presentation:

  • Spark Energy Drink
  • Unity "CodePlex"
  • DevelopingUX.com

The Bad 

1.  Lack of vendors/sponsors.  I think there were maybe 3. I like free stuff.

2.  ...Um seemed a little chaotic during registration.

3.  Stick on badges? Combined with no free lunches...most nametags were ripped or missing after going out for lunch.

4.  The silverlight track was a little weak.  It would have been nice to have more advanced topics instead of assuming everybody was new to silverlight.

The Ugly

1.  Teasing us with free coffee and breakfast was just wrong (the bankruptcy conference had it).  I know coffee was offered after the first session but c'mon.

2.  Parking was bad.

 

Currently rated 3.5 by 2 people

  • Currently 3.5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Mapping types using ConvertAll ASP.Net 2.0

clock March 24, 2009 11:41 by author tim

A quick way to convert a generic list of one type to another (more for documentation)

List<Merchant> merchant = new List<Merchant>(); 
List<MerchantDTO> mdtos = merchant.ConvertAll<MerchantDTO>(new Converter<Merchant, MerchantDTO>( 
 
     delegate(Merchant m){      
      
      MerchantDTO mdto = new MerchantDTO();
      mdto.ID = m.ID;
      mdto.Name = m.Name; return mdto; 
  
 
      } 
 
)); 

Currently rated 5.0 by 1 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


GenericConverter

clock June 3, 2008 13:27 by author tim

 

using System.Collections.Generic;
using System; 

public class GenericConverter
{ 
     public static T Parse<T>(string sourceValue) where T : IConvertible
     { 

          if (String.IsNullOrEmpty(sourceValue)) return default(T); 
        
         return (T)Convert.ChangeType(sourceValue, typeof(T)); 
     } 

     public static T Parse<T>(string sourceValue, IFormatProvider provider) where T : IConvertible
     { 

          return (T)Convert.ChangeType(sourceValue, typeof(T), provider); 
     } 

} 

Currently rated 5.0 by 1 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Application Development Infrastructure

clock June 3, 2008 13:16 by author tim

this was pulled from a good article outlining the application development infrastructure.  I often reference this to remind me what each software development environment is responsible for.

.......

Application development, deployment, and hosting in a large IT organization often involve separate development teams working in parallel on numerous applications for deployment to a shared hosting environment. This kind of dynamic environment demands an orderly process for promotion of application elements from the initial development stages to a highly stable and tightly managed production environment.

The ways in which an application is exercised at the various stages of its life cycle and deployment schedule require several different parallel instantiations of the application. These instantiations or environments go by many names in different organizations, but the following names are commonly used:

The development environment is where unit level development is done. Therefore, software and data structures tend to be volatile in this environment. It is here that the developer is at liberty to modify the application module under development and its test environment to suit unit level development needs. In this environment, developers typically work solely on development workstations where they often have full administrative rights. The development environment is a “sandbox” environment where developers are free to use various application infrastructure elements without the constraints, for instance, of the security that will exist in other environments. This allows developers to focus on building application logic and learning how best to use the various application infrastructure elements available without limitations imposed by the environment.

The integration environment is where application units (software modules, data schemas, and data content) are first assembled and then tested as an integrated suite. This environment is also volatile but is much less so than the development environment. The objective here is to force coherence among the independently developed modules or schemas. This is typically an environment where developers do not have all the permissions that they had in the development environment. As a result, this is often the first time that issues such as installation, configuration, and security requirements for the eventual target infrastructure are addressed.

The test environment is where a “release candidate” grade version of the application is run through testing exercises. It is as tightly controlled as the production environment and also substantially less volatile than integration. The objective here is to assume relative stability of the integrated application and test its stability, correctness, and performance. This environment is usually off limits to developers. Deployment and updates to applications in this environment are controlled by the test team and are often done by a member of the build or infrastructure teams.

The staging environment is where an application resides after it has been fully tested in the test environment. It provides a convenient location from which to deploy to the final production environment. Because the staging environment is often used to perform final tests and checks on application functionality, it should resemble the production environment as closely as possible. For example, the staging environment should not only have the same operating systems and applications installed as the production computers, but it should also have a similar network topology (which the testing environment might not have). Usually, the staging network environment mimics the production environment in all respects except that it is a scaled down version (for example, it may have fewer cluster members or fewer processors than your production servers).

The production environment is where the application is actually used by the organization; it is the least volatile and most tightly controlled

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Four Dimensions of Development Speed

clock June 3, 2008 12:56 by author tim

Straight from the Microsoft "Rapid Application Development" book..

 

Four Dimensions of Development Speed 
  1. People
  2. Process
  3. Product
  4. Technology
 

                          People

            Process     +     Product

                      Technology

  1.      People

Impacts software productivity and quality

The most effective practices leverage human potential not technology

 

Areas that effect peopleware:

o   individual ability

o   individual motivation

o   overall team ability

o   overall team motivation

 

Staffing for team projects: Five principals

o   Job Talent

o   Job matching

o   Career progression

o   Team balance

o   Misfit elimination

o   Other: design ability, language experience, machine and environment experience, and applications area experience

Team Organization

o   Match project size

o   Match product attributes

o   Match schedule goals

 

Motivation

o   Is your strongest ally on RAD Projects

 2.      Process

Management methodologies and technical methodologies

o   neglect to process will cause developers to work inefficiently and at cross purposes when there isn’t a need

 

Rework avoidance

o   avoid doing things twice (get accurate requirements)

 

Quality assurance

o   assure that product has acceptable level of quality

o   detect errors at the stage when they are least time consuming to fix

 

Development fundamentals

o   source control

o   requirements management

o   design

o   construction

o   configuration management

 

Risk management

o   merge schedule related tasks

 

Resource targeting

o   effectively focused

o   contribute to overall productivity

o   Best practices: productive offices, time box development, accurate scheduling and voluntary overtime

 

Lifecycle planning

o   lifecycle models make it easier to identify and organize the many activities of a software project.

 

Customer orientation

o   put yourself on same same side as customer

o   best practices that help with this: staged releases, evolutionary delivery, evolutionary prototyping, throw away prototyping, and principle negotiation.

 3.      Product

Reduce product feature set: reduction in project scheduling

Product size and characteristics offer opportunities to cut development time

 4.      Technology

 

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


AS 3.0 Flash Remoting ASP.Net

clock June 3, 2008 12:31 by author tim

 I am the only one still using flash remoting (for ASP.Net).  But in case somebody is interested in ancient technology this is my attempt to work around Adobe's plot to do away with accessing Asp.Net through remoting in Flash CS3.  Adobe has only evil hate for the Microsoft Developer. 

As for a Solution ....This is what I found so far.....

 2 hrs later

*Nothing*

4 hrs later

I'm sure this documented some where.  But I ran across a blog explaining the diff. between netconnection in 2.0 and 3.0 then after looking at the packets and realizing that the serialied data looked odd.  I ran across macromedia's...err adobe's resolution... .......Just minor tweaks and this... objectEncoding=ObjectEncoding.AMF0

var nc:NetConnection = new NetConnection();
var url:String = "http://localhost/gateway.aspx";
                                  
nc.objectEncoding=ObjectEncoding.AMF0;          
var onResult:Function = function(data:Object) {trace("onResult : " + data);};
var onStatus:Function = function(info:Object)
 {
       trace("info"); 
 };
var obj:Responder = new Responder(onResult, onStatus);
nc.connect(url);
nc.call("FlashRemote.getBusinessObject", obj,”myparams”);
                   

 

"I wish I could tell you we’d have the .NET version soon, but for now, this solution should work for you." -  quote from a then macromedia product manager

 

 

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Search

Calendar

<<  March 2010  >>
SuMoTuWeThFrSa
28123456
78910111213
14151617181920
21222324252627
28293031123
45678910

Archive

Tags

Categories


Blogroll

Disclaimer

The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

© Copyright 2010

Sign in