Programming Links, 09.06.2008

by andrei 6. September 2008 22:38
DDD
http://elegantcode.com/2008/08/26/decoupled-domain-models/
http://www.tobinharris.com/2008/8/29/ddd-and-huge-collections-eeugh
http://elegantcode.com/2008/08/29/whats-wrong-with-a-data-driven-approach/

Architecture & Layering
http://www.udidahan.com/integrated-simplicity/
http://blogs.msdn.com/jmeier/archive/2008/09/06/layers-and-tiers.aspx
http://www.dobbscodetalk.com/index.php?option=com_myblog&show=-97-Things---Architect-Axioms.html&Itemid=29

NHibernate
http://devlicio.us/blogs/billy_mccafferty/archive/2007/12/04/custom-collections-with-nhibernate-part-i-the-basics.aspx
http://devlicio.us/blogs/billy_mccafferty/archive/2007/12/06/custom-collections-with-nhibernate-part-ii-ilist-amp-lt-basic-amp-gt.aspx
http://devlicio.us/blogs/billy_mccafferty/archive/2007/12/07/custom-collections-with-nhibernate-part-iii-refactored.aspx
http://devlicio.us/blogs/billy_mccafferty/archive/2008/09/03/custom-collections-with-nhibernate-part-iv-extensions.aspx
http://www.infoq.com/news/2008/09/New-NHibernate-Community-Site
http://www.lostechies.com/blogs/jimmy_bogard/archive/2008/08/26/parameter-lists-in-nhibernate.aspx
http://www.lostechies.com/blogs/jimmy_bogard/archive/2008/08/26/strategies-and-discriminators-in-nhibernate.aspx
http://elegantcode.com/2008/08/29/nhforgeorg-for-nhibernate/

Model driven development
http://www.codeproject.com/KB/cs/Sculpture-Part1.aspx

Tools
http://www.codeproject.com/KB/applications/babel.aspx
http://mhinze.com/obligatory-utility-roundup-post/
http://www.bspcn.com/2008/09/02/9-amazing-firefox-add-ons-that-will-save-your-time/
http://refact.blogspot.com/2008/09/assembly-diff.html
http://refact.blogspot.com/2008/08/narrange.html
http://www.intuitive.sk/fflib/post/fflib-net-released.aspx
http://www.wintellect.com/CS/blogs/jrobbins/archive/2008/08/31/netmassdownloader-1-5-has-complete-support-for-vs-2008-sp1.aspx
http://www.nikhilk.net/Ajax-FxCop.aspx

WPF & Silverlight
http://karlshifflett.wordpress.com/2008/08/31/xaml-power-toys/
http://coolthingoftheday.blogspot.com/2008/08/silverlight-spy-see-what-that.html
http://www.codeproject.com/KB/WPF/AttachedBehaviors.aspx

ASP .Net MVC
http://weblogs.asp.net/stephenwalther/archive/2008/09/05/asp-net-mvc-application-building-forums-1-create-the-perfect-application.aspx
http://weblogs.asp.net/stephenwalther/archive/2008/09/05/asp-net-mvc-application-building-forums-2-create-the-first-unit-test.aspx
http://weblogs.asp.net/stephenwalther/archive/2008/09/05/asp-net-mvc-application-building-forums-3-post-messages.aspx

C#
http://www.codeproject.com/KB/cs/GenericExtensionMethods.aspx
http://www.atrevido.net/blog/2008/08/28/Why+Are+There+Still+Delegates.aspx
http://bartdesmet.net/blogs/bart/archive/2008/08/30/c-3-0-query-expression-translation-cheat-sheet.aspx
http://ayende.com/Blog/archive/2008/09/02/Inline-Anonymous-Visitors.aspx
http://blogs.x2line.com/al/archive/2008/09/03/3548.aspx
http://www.infoq.com/news/2008/09/Closures-API
http://blog.andreloker.de/post/2008/09/05/Getting-rid-of-strings-(3)-take-your-app-settings-to-the-next-level.aspx

MEF
http://weblogs.asp.net/fredriknormen/archive/2008/08/27/played-around-with-microsoft-extensibility-framework-mef.aspx

Visual Studio
http://msmvps.com/blogs/peterritchie/archive/2008/09/02/becoming-a-visual-studio-jedi.aspx

.Net
http://www.codeproject.com/KB/aspnet/WelcomeToTheNew.aspx

jQuery
http://www.jankoatwarpspeed.com/post/2008/09/03/Easy-way-to-improve-your-image-gallery-using-jQuery.aspx

OOP & Design patterns
http://dotnetslackers.com/articles/designpatterns/Design-Patterns-Part-3.aspx
http://www.atrevido.net/blog/2008/08/29/No+Really+The+Eventbased+Asynchronous+Pattern+IS+Bad.aspx

ASP .Net
http://www.pluralsight.com/community/blogs/keith/archive/2008/09/03/a-tip-on-using-asp-net-validation-controls.aspx
http://www.dotnetcurry.com/ShowArticle.aspx?ID=121
http://simpable.com/code/nvelocity-control/
http://stevesmithblog.com/blog/render-control-as-string/
http://www.dotnetcurry.com/ShowArticle.aspx?ID=112

Linq
http://odetocode.com/Blogs/scott/archive/2008/09/01/12252.aspx

JSON
http://west-wind.com/weblog/posts/471835.aspx

Lazy loading
http://www.codeproject.com/KB/cs/LazyLoadCache.aspx

 

 

Enjoy programming!

 

Programming links 08.30.2008

by andrei 30. August 2008 22:34

DDD
http://www.udidahan.com/2008/08/25/domain-events-take-2/
http://www.rosscode.com/blog/index.php?title=entities_and_repositories_discussion&more=1&c=1&tb=1&pb=1
http://www.lostechies.com/blogs/sean_chambers/archive/2008/08/24/refactoring-towards-deeper-insight.aspx
http://www.tobinharris.com/2008/8/22/ddd-repositories-in-the-wild
http://www.lostechies.com/blogs/jimmy_bogard/archive/2008/08/21/services-in-domain-driven-design.aspx

Web development
http://www.jankoatwarpspeed.com/post/2008/08/28/Amazing-web-development-articles-of-Summer-2008.aspx
http://johnpapa.net/all/great-fiddler-tip-for-localhost-testing/
http://ajaxian.com/archives/razor-profiler-check-out-your-ajax-code

Visual Studio

http://geekswithblogs.net/sdorman/archive/2008/08/28/visual-studio-optimizations.aspx
http://www.codeproject.com/KB/aspnet/Website2WebAppIn2008.aspx

Dependency Injection
http://www.codeinsanity.com/2008/08/building-generic-ioc-wrapper.html
http://codebetter.com/blogs/jeremy.miller/archive/2008/08/20/smartinstance-in-structuremap-2-5.aspx

.Net Fwk
http://blogs.msdn.com/rscc/archive/2008/08/28/net-framework-3-5-sp1-sources-are-available.aspx
http://dotnet.dzone.com/announcements/coredotnet
http://www.hanselman.com/smallestdotnet/
http://www.hanselman.com/blog/SmallestDotNetOnTheSizeOfTheNETFramework.aspx

Linq
http://community.bartdesmet.net/blogs/bart/archive/2008/08/28/to-bind-or-not-to-bind-dynamic-expression-trees-part-3.aspx
http://blog.wekeroad.com/blog/working-with-linq-s-expression-trees-visually/
http://blogs.msdn.com/mikeormond/archive/2008/08/21/linq-to-json.aspx
http://community.bartdesmet.net/blogs/bart/archive/2008/08/19/probably-the-most-powerful-linq-operator-selectmany.aspx

jQuery
http://www.lostechies.com/blogs/chad_myers/archive/2008/08/28/getting-started-with-jquery-qunit-for-client-side-javascript-testing.aspx
http://ajaxian.com/archives/queryselectorall-is-coming-fast
http://blogs.ipona.com/james/archive/2008/02/15/JQuery-IntelliSense-in-Visual-Studio-2008.aspx

ASP .Net
http://weblogs.asp.net/craigshoemaker/archive/2008/08/28/asp-net-caching-and-performance.aspx

TDD, BDD, Unit Testing
http://haacked.com/archive/2008/08/24/introducing-subspec.aspx
http://www.codesqueeze.com/how-to-invest-in-your-user-stories/

WPF
http://www.wpfstyles.com/
http://blogs.msdn.com/johngossman/ - reference blog
http://weblogs.asp.net/bsimser/archive/2008/08/21/wpf-for-business-applications-ready-for-the-average-user.aspx

NHibernate
http://blogs.hibernatingrhinos.com/nhibernate/archive/2008/08/13/a-fluent-interface-to-nhibernate---part-2---value.aspx
http://www.tobinharris.com/2008/8/19/fluent-nhibernate-series-on-nhibernate-faq
http://knol.google.com/k/fabio-maulo/-/1nr4enxv3dpeq/21#view

Code QA
http://narrange.sourceforge.net/

Web design
http://www.jankoatwarpspeed.com/post/2008/08/28/Amazing-web-design-articles-of-Summer-2008.aspx

Source Control
http://www.infoq.com/news/2008/08/ankhsvn-2

Database
http://www.infoq.com/news/2008/08/sqlindexing

Resharper
http://www.thejoyofcode.com/Explore_Stack_Trace_in_Resharper.aspx

OOP & Design Patterns
http://dotnetslackers.com/articles/designpatterns/Design-Patterns-Part-1.aspx
http://dotnetslackers.com/articles/designpatterns/Design-Patterns-Part-2.aspx
http://rtipton.wordpress.com/2008/08/27/great-design-pattern-resources/

Enterprise Architecture & Patterns
http://www.lostechies.com/blogs/chad_myers/archive/2008/08/29/thoughts-on-mvp-and-webforms.aspx
http://www.thefreakparade.com/2008/08/anatomy-of-a-lob-or-mind-mapping-a-modern-net-app/

C#
http://geekswithblogs.net/ftom/archive/2008/08/27/why-it-is-time-to-retire-the-old-cast-operator.aspx
http://blogs.msdn.com/kirillosenkov/archive/2008/08/19/how-i-started-to-really-understand-generics.aspx

User interface design & UX
http://maggieplusplus.com/2008/08/21/Recommended+Podcasts+On+UX+Design.aspx
http://blogoscoped.com/archive/2008-08-25-n60.html

 

 

Enjoy programming!

 

Programming links, 08.24.2008

by andrei 24. August 2008 22:33

DDD
http://www.codeinsanity.com/2008/08/repository-pattern.html - introductory article to repository and specification
http://www.codeinsanity.com/2008/08/implementing-repository-and.html - continuation to the previous article, with Linq added to obtain reusable specifications; with the BaseRepository class, this could turn into a small framework
http://www.codeproject.com/KB/aspnet/validation_engine.aspx - a solution for validating domain objects through attributes

OOP & Design patterns
http://codebetter.com/blogs/jeremy.miller/archive/2008/08/18/the-null-pattern-is-a-good-thing.aspx - "Instead of using a null reference to convey absence of an object (for instance, a non-existent customer), one uses an object which implements the expected interface, but whose method body is empty."
http://blog.cumps.be/design-patterns-proxy-pattern/ - the GoF design patterns, with code in C#

Interesting ideas for creating DTOs, the comments contain good information.
http://weblogs.asp.net/fredriknormen/archive/2008/08/19/map-objects-to-one-object.aspx
http://weblogs.asp.net/fredriknormen/archive/2008/08/16/what-do-think-about-using-a-presentation-model-for-presenting-your-domain-model.aspx
http://weblogs.asp.net/fredriknormen/archive/2008/08/18/how-to-map-a-domain-model-to-a-presentation-model-can-this-be-something.aspx
The classical solution with an assembler or mapper is still be the best, no doubt.

These articles go from inheritance to design patterns with pros, cons and how to apply the ideas in C#:
http://www.managed-world.com/2008/06/15/AvoidingInheritanceDependenciesUsingGenericsAndLambdas.aspx
http://blogs.vertigo.com/personal/chris/Blog/archive/2008/08/21/avoiding-inheritance-response.aspx - "If Foo inherits Bar, a Foo is a Bar and I expect it to behave as such."
http://en.wikipedia.org/wiki/Command_pattern
http://en.wikipedia.org/wiki/Template_Method

Javascript & jQuery
http://weblogs.asp.net/kencox/archive/2008/08/14/enabling-javascript-intellisense-in-external-libraries.aspx
http://ajaxian.com/archives/getting-a-javascript-stracktrace-in-any-browser
2 more steps in making Javascript easy to work with
http://encosia.com/2008/08/20/easily-build-powerful-client-side-ajax-paging-using-jquery/
and with jQuery, you really have no more excuses to rely on drag-n-drop frameworks.

Organise & Productivity
http://chandlerproject.org/ - "Chandler is an open source Note-to-Self Organizer. It features calendaring, task and note management and consists of a desktop application, web application and a free sharing and back-up service called Chandler Hub."

Agile Project Management
http://architects.dzone.com/news/evolving-architectures-archite - "A retrospective is a meeting where the team takes a look and inspect the past, in order to adapt and improve the future.", this article talks about how an architecture can evolve in the right direction through periodical retrospectives

Dependency Injection
http://codebetter.com/blogs/jeremy.miller/archive/2008/08/16/it-s-time-for-ioc-container-detente.aspx
http://devlicio.us/blogs/derik_whittaker/archive/2008/08/13/contextual-binding-with-structuremap-2-5.aspx - explains how you can tell StructureMap which instance to give you based on the context, which is a very nice feature

Resharper
http://resharper.blogspot.com/2008/06/resharper-combos-refactoring-to.html - "Execute Replace constructor with factory method refactoring against component constructor [...] Use Extract Interface refactoring from the component implementation [...] Utilize Use base type where possible refactoring, select extracted interface.[...] Find Usages of component and verify you don't have any references to the class except instantiation inside ComponentFactory". Resharper is really amazing

Linq
http://www.codeproject.com/KB/linq/LINQDynamicPredicate.aspx - the predicate builder is part of the LINQKit, and offers an elegant solution to the problem of generating dynamic Linq queries at runtime.

Development Tools
http://www.dev102.com/2008/08/13/three-free-tools-any-web-developer-must-use/ - SQL Profiler is my favourite, but all 3 tools have their own place in the development process

Web development
http://code.zhandwa.com/2008/08/11/7-things-to-remember-while-building-a-web-application-part-i/ - just to spark your interest, here is one of the items in the list: "Never code for Firefox".

User interface design & user experience
http://glyphobet.net/blog/essay/269 - excellent list of interface design guidelines

C#
http://community.bartdesmet.net/blogs/bart/archive/2008/08/09/c-3-0-feature-focus-link-collection.aspx - introduction to the new features in C# 3.0
http://www.codeproject.com/KB/cs/Strong.aspx - solution for avoiding magic strings when using reflection

Code Quality & Analysis
http://www.codeplex.com/CloneDetectiveVS - "a Visual Studio integration that allows you to analyze C# projects for source code that is duplicated"; nice
http://www.codeplex.com/sequenceviz

ASP .Net MVC
http://code.google.com/p/sharp-architecture/downloads/list

NHibernate
http://ayende.com/Blog/archive/2008/08/23/NHibernate-2.0-Final-is-out.aspx

BDD
http://www.codesqueeze.com/the-easy-way-to-writing-good-user-stories/ - clear and simple; user stories are an excellent method to write specifications

 

 

Enjoy programming!

 

Programming links, 07.26.2008

by andrei 26. July 2008 22:30

Here are a few .Net programming and software development links:

Profession
http://www.hanselman.com/blog/July2008TechnicalReadingList.aspx - just a reminder from good programmers that programming is not only about writing code; keep reading books, keep reading blogs, keep reading other people's code, make sure you complement practice with theory all the time; otherwise you might miss some of the best stuff

Architecture
http://ayende.com/Blog/archive/2008/07/25/Default-Architecture-Layers.aspx - a good layering solution which can be used in most software applications; the idea of controllers describing use cases instead of interface requirements is a nice and subtle one
http://ayende.com/Blog/archive/2008/07/26/The-importance-of-context.aspx - contains some useful pointers on how to implement a context, a concept which can be used in many functionalities / applications; as Ayende explains, an explicit context can be created for each punctual situation, but the most elegant solution is an implicit context (which means that the application framework automatically instantiates and provides this service based on the current state, authentication credentials, etc)

NHibernate
http://ayende.com/Blog/archive/2008/07/24/How-to-review-NHibernate-application.aspx - list of NHibernate best practices, I wish I would have read something like this when we started our first NHibernate application; here are a few good ones:

  • Be aware for what is the access pattern of your code, and take measures to reduce the amount of calls to the database.
  • If you need to call sessionFactory.OpenSession(), stop and rethink what you are doing.
  • Use transactions, always.
  • NHibernate is OR/M - That is, it bridge between a database and the domain model. There is no good reason to forget that the database is there, and not use it.
  • There is no way NHibernate can be fast if you make it call the DB in a loop, where N is any significant number.

http://www.hanselman.com/blog/LearnHowToUseNHibernateWithTheSummerOfNHibernateScreencastSeries.aspx - absolutely cool, again a resource I wish we had long ago: http://www.summerofnhibernate.com/. It can make NHibernate much more easy to start with.

DDD
http://deepfriedbytes.com/podcast/episode-7-talking-domain-driven-design-with-david-laribee-ndash-part-2/ - if you like technical podcasts, this (together with part 1) seems like an excellent discussion on DDD

BDD, TDD, Unit testing
http://www.lostechies.com/blogs/jimmy_bogard/archive/2008/07/24/arrange-act-assert-and-bdd-specifications.aspx - RhinoMocks 3.5 might be a good solution for BDD: the final example for the When_placing_a_large_order specification looks efficient and simple. In case you did not know, this is the common template for BDD scenarios (taken from this BDD starting point):

Given some initial context (the givens),
When an event occurs,
then ensure some outcomes.

http://haacked.com/archive/2008/07/22/unit-test-boundaries.aspx - a simple and clear explanation of a frequent obstacle you might encounter in your code when you want to write unit tests, and how to avoid it; as usual, decoupling and interfaces are the key to coding nirvana

OOP
http://lowrymedia.com/blogs/technical/interfaces-vs--concrete-classes/ - whenever you can, you should create dependencies on interfaces instead of concrete classes
http://udidahan.weblogs.us/2008/07/23/presentation-intentions-and-interfaces-online/ - there are many interesting ideas in this PDF presentation:

  • again everything starts with good books, this time on patterns and DDD;
  • the main idea of the presentation, which goes hand in hand with the previous link (always choosing interface dependencies): make roles explicit; thinking of it, it really makes sense
  • custom validation before persistence: this is the most important type of validation, which should never be missing from an application's domain layer
  • an important issue related to the lazy loading mechanism that ORMs use (which can create big problems if used incorrectly), and an elegant solution: different fetching strategies

Source Control
http://visualstudiohacks.com/screencasts/addins/slickedit-versioning-toolbox-screencast/ - another solution for integrating SVN versioning into Visual Studio, which also offers a few interesting ways to visualize and manipulate repository information right from the IDE; other solutions are http://ankhsvn.open.collab.net/, http://www.visualsvn.com/, and of course http://tortoisesvn.tigris.org/ (which is not integrated in Visual Studio)

 

 

Enjoy programming!

 

Programming blogs list

by andrei 16. July 2008 22:22

 

 

Enjoy programming!

 

Programming Links, 07.11.2008

by andrei 11. July 2008 22:27

 

 

Enjoy programming!

 

Programming Links, 07.05.2008

by andrei 5. July 2008 22:24

 

 

Enjoy programming!

 

Powered by BlogEngine.NET 1.4.5.0