10 tips on how to prevent business value risk
One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.
The content has been bookmarked!
There was an error bookmarking this content! Please retry.
Posted by Robert Bazinet on Aug 23, 2007
InfoQ recently had the opportunity to talk with Eric J. Smith, founder of CodeSmith Tools, LLC about PLINQO. Eric explained the motivation behind it:
Many developers, including ourselves, don't like black boxes. So our motivation in creating these templates was to remove that black box and to allow ourselves and other developers to be able to customize the output of the LINQ to SQL designers. We also wanted to extend the functionality of the generated classes to include business rules, authorization rules and other features.In the blog post announcing PLINQO as Professional LINQ to Objects, it states they are meant to replacement and extend the LINQ to SQL designers included in Visual Studio 2008. Since Microsoft has it's technology called LINQ to objects and LINQ to SQL, InfoQ asked if their templates are really a LINQ to SQL replacement or a LINQ to Objects replacement and why the the overlap in naming? Eric responded:
PLINQO is a replacement for LINQ to SQL and is not related to LINQ to Objects. We knew this was going to cause confusion, but we really wanted a fun name and we really liked the name PLINQO. PLINQO is a play on the Price is Right game, Plinko, which just happens to be the most fun game on Price is Right. :-)
On why a developer want to adopt your templates instead of simply keeping the ones provided by Microsoft:
The templates will work wit CodeSmith 4.0+ (see InfoQ coverage), and also within VS2008 with CodeSmith 4.1. In future releases, CodeSmith intends to add unit tests, UI generation and web services support. Paul Welter was the lead developer on the templates. Eric mentioned that the templates are in progress and any feedback would be appreciated. we would appreciate any feedback and ideas users have. Check out the CodePlex Project, and Quick Start.There are several advantages to using the PLINQO templates over the designers. Here is a list of the main reasons:
- The designer black box and allow for customization of the ouput while still retaining the ability to use the .dbml designer to make customizations inside of Visual Studio.
- To easily generate your entire .dbml file for a database and then the ability to regenerate that .dbml file as the schema changes while preserving any customizations you may have made such as entity, property and relationship names. With the designer, if you make a database change, you need to drop the entity and re-add it to get any new columns or data type changes, which would cause you to lose any customizations you may have made. Also, using the templates allows you to exclude unwanted tables, stored procedures and views using filter expressions and automatically strip / clean entity and property names of things like prefixes and suffixes that your database schema may be using (ie. tbl_Customer to Customer).
- A business rules engine that allows you to enforce things like property length rules, required field rules, regex data validation rules as well as several other built in rules including authorization rules. The SubmitChanges method on the data context object will automatically run the rules against any entities in your change set. If all rules are not met, a BrokenRulesException will be thrown that contains a list of the broken rules.
- A manager class is generated for each entity that encapsulates all actions taken on an entity. Known common actions like retrieving entities by primary key, indexes, and foreign keys are generated. Any custom actions can be added and will be preserved during regeneration. While LINQ makes it easy to sprinkle your data access logic throughout your entire application, we still believe its poor design to do so and that is why we have included the manager classes.
Using Drools? See what you're missing! Get the Power of Drools with the Assurance of Red Hat
Fair Trade Software Licensing - A Guide to Neo4j Licensing Options
18 agile and lean practices for effective software development governance
One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.
InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.
Alex Papadimoulis discusses ugly code, where it comes from, how to avoid it, and how to get rid of it.
John Davies examines Visa’s architecture and shows how enterprises have architected complex integrations incorporating Hadoop, memcached, Ruby on Rails, and others to deliver innovative solutions.
Sean Comerford unveils ESPN.com’s architecture, what components are used and why, and the current changes the website goes through.
Are there repeated patterns of failure on Enterprise Agile Enablement efforts? Sanjiv and Arlen discuss Seven Deadly Sins to avoid when adopting Agile in an enterprise.
Erik Dörnenburg answers: What is Enterprise and Evolutionary Architecture?, discussing 4 issues: Turning strategy into execution, Ensuring conformance, Where do the architects sit? Buying or building?
Sean Cribbs explains what Map-Reduce and Riak are, why and how to use Map-Reduce with Riak, and how to convert SQL queries into their Map-Reduce equivalents.
No comments
Watch Thread Reply