DCSIMG
Best Practices - IHateSpaghetti {code}

IHateSpaghetti {code}

VSX, DSL and Beyond by Eyal Lantzman

Syndication

Coding / Architecture

Extensibility /DSL

Projects

Articles

Browse by Tags

All Tags » Best Practices (RSS)
Toolbox items in DSL tools
In this post: 1) General overview of the way the toolbox items work in DSL tools for VS2010 2) Toolbox related Changes from VS2008 to VS2010 3) Customization of static toolbox items - how to grouped model elements into single toolbox item   In VS 2010 we change the way we manage toolbox items from being set explicitly during package initialization to being partially set(*) before the package has been created and initialized. The toolbox items that are set this way called static toolbox item...

Posted by Eyal | with no comments

StyleCop update 4.3.1.3
Some of the features: Ability to use <include> tags within Xml header documentation to pull docs from external files. Get accessor in property required to appear before set accessor .generated.cs files ignored by default   Bugfixes: 18: Partial methods not handled correctly 31: Documentation rules should understand <include> element 56: Require get accessor before set accessor 63: When documenting a generic class, only allows <see cref="MyClass"/> and not <see...

Posted by Eyal | with no comments

Implementing MVVM in WPF & Silverlight
If you are interested in using MVVM (Model View ViewModel) design pattern for your applications you should definitely take a look at the screencasts made available on Josh's site . Implementing Model-View-ViewModel in WPF Implementing Model-View-ViewModel in Silverlight Implementing MVVM & Exploring UX Design Patterns

Posted by Eyal | 1 comment(s)

Blog Carnival #11
This week in the blog carnival modeling, T4, C# 4.0, framework desing, SOA, performance and ASP.NET related links. Modeling and UML DSL Tools and Oslo by Stuart Kent UML Syntax and Semantics by Steve Cook T4 Using extension methods in T4 templates by Gareth Jones C# 4.0 C# 4.0 - Named and Optional Parameters - Behind the Scenes by Matthew Podwysocki Framework design PDC 2008 Talk: Framework Design Guidelines Framework Design Guidelines Videos ASP.NET/ASP.NET MVC /WPF /SIlverlight ScottGu has post...

Posted by Eyal | with no comments

Dispose and Finalize usage and snippet
When dealing with unmanaged resources (or in more general – when finalize is required) you need to use a certain pattern in order to get it right. According to MSDN (brought here for convinience): When to use finalize: · Implement Finalize only on objects that require finalization. There are performance costs associated with Finalize methods. · If you require a Finalize method, consider implementing IDisposable to allow users of your class to avoid the cost of invoking the Finalize method. · Do not...

Posted by Eyal | 14 comment(s)

InfoQ: A Formal Performance Tuning Methodology: Wait-Based Tuning
Although the author writes about java applications the concepts are the same for .NET and supported to some extent by Visual Studio Test Edition Here's the summery: "Performance tuning was once more “art” than “science”, but after a combination of abstract analysis and trial-and-error, wait-based tuning has proven to make the exercise far more scientific and far more effective. Wait-based tuning begins by performing a wait-point analysis of an application’s architecture in order to identify...

Posted by Eyal | 1 comment(s)

Blog Carnival #5
After a couple of weeks of crappy Internet connections I finally managed to connect via my cell phone (still crappy though). Visual Studio Extensibility Localized VS Shell (w/ SP1) Download Links T4 Editor - Clarius' T4 Editor ships V1.0 DSL DSL Questions and answers by Martin Fowler ASP.NET jQuery and Microsoft Algorithms Back To Basics: Algorithms and Going Back To Virtual School Functional programming The Weekly Source Code 34 - The Rise of F# Object Oriented F# - Extension Everything Side...

Posted by Eyal | 1 comment(s)

Blog Carnival #1
I've decided to collect interesting posts on various topics and when reach critical mass publish them in a single post. Visual Studio Extensibility and DSL Tools How do I know when a model element is being added by a user demand How do I know if the solution is still building How do I get the Visual Studio command line switches How do I obtain a project GUID How do I get a Project from a IVsHierarchy and viceversa How do I cancel a model element property value editing operation Refactoring Udi...

Posted by Eyal | with no comments

Another one from InfoQ - Lessons Learned from Architecture Reviews
"In this presentation, Rebecca Wirfs-Brock presents some practical lessons she has learned from doing architectural reviews. Many times projects are not delivered in time, or have quality problems or have an incomplete set of features due to architectural flaws. The reviews are meant to highlight existing risks and strengths of the architecture, and to reveal issues initially neglected" - 57+ min. The link for all the architects out there...

Posted by Eyal | with no comments

AOP - Aspect-oriented programming
AOP in supposed to aid programmers in the separation of concerns, specifically cross-cutting concerns . The base class behavior is modified by aspect class that applies advice (additional behavior) at various join points (points in the base class) based on query or quantification called pointcut . To be more specific it allows a simple class ( POCO ) to have additional behavior that can be added declarative (not in the base class but in some external definition - from software engineering perspectives...

Posted by Eyal | 3 comment(s)

ESB on IServiceOriented
IServiceOriented has posted an implementation for ESB - Publish/Subscribe. I have couple of comments about the implementation. 1. I would split the ServiceBusRuntime into several partial classes each of them will be responsible for a group of logical commands, ie: ServiceBusRuntimeListner , ServiceBusRuntimePublishSubscribe , ServiceBusRuntimeService etc. This way you get maintainability and psychological (and FS) separation of the core system providing better readability and understanding of the...

Posted by Eyal | 3 comment(s)

MSMQ – how to detect various problems and handle them
I read Udi's article in MSDN magazine and wanted to add more information regarding one of the issues addressed, in addition I promised to write ways to handle problematic messages in MSMQ. So here you go: code project (with sample included).

Posted by Eyal | with no comments

Model driven best practices were published @ InfoQ
There's new post @ InfoQ regarding best practices in model-driven software development. Summary of the topics: 1) Separate the generated and manual code from each other - in my opinion the separation should only physical and you can you partial classes to achieve physical separation with concrete linkage to the non-generated code of yours. 2) Don't check-in generated code – in my opinion it's not always true (see my comments on that) 3) Integrate the generator into the build process 4...

Posted by Eyal | with no comments

Insights to development, deployment and management in large scale application
OK, as promised in my previous post I'm going to write above some of the insights I had while working in large scale project (man power, equipment you name it). I'll start from development In this project a lot of the code is automatically generated (about 70%-90%). As such there is a special team that creates these templates by development teams needs. I think it's a good idea because creating templates requires special type of developers and when you have a dedicated team for this job...

Posted by Eyal | 2 comment(s)