Friday, November 6, 2009

Tough discussions

Architecture is all about getting people on the same line, having stakeholders understand and agree on the best consensus. Simply put that's all there is about being an architect.

Of course, from time to time discussions can get tough, really tough! Its not just me (I hope), comes with the job.

In many cases, unfortunately not all, what really works for me, is when I take a step back, go back to common ground, return to what we both agree on and from there slowly, with full understanding of the other parties point of view, move forward. I will try, really thoroughly try, to understand his point of view and their pros and cons. Then, and only then, when you really both feel that you understand his point of view move to your's, open mindedly and try to compare the two scenario's and see why not what your differences are about.

Try it! Sounds easy, it's not!

I bet you guys are just having not the same (background) information or have a different meaning of the same word or jumping to conclusions to quickly.

In short: focus on what you have in common, first!

Have a look at my comedian 'George Carlin' about 'common things we share'.
Focus on what is the same not on the small things that are different, to start with!


Happy debating!

Thursday, October 15, 2009

Know Your Business Forces (Architecture, Modeling, Strategy)

I have seen it times and times again... the lack of respect or understanding of your current architecture.

The architecture of your business, information systems and it infrastructure is the result of the company's dynamics. Explicitly or implictly they are related!

Any architect, but particularly a consultant needs to quickly understand the dynamics.


For me, one of the easiest ways to understand the company dynamics is to understand Porter's five strategic forces:






May the (5) forces be with you!

Effective Communication (Business vs IT)

Lately, I have been really thinking about communication. I have this big presentation comming up and I was struggling: what is the best way to get one's message across?

Particularly appealing to both Business and IT is challenging.

Searching for insights and ideas I found the movie below.

Not only does he perfectly explain why communication is not just a matter of telling your message. He also demonstrates this while sharing message. He sure does gethis his message across!

The main answer: frame of reference!

Particularly architects when talking with business people and technicians need to be aware of the different Frames of Reference.

Enjoy and COMMUNicate :)


Monday, October 5, 2009

Business Rules Rule!!! (Modeling)

Do you recognize a Business Rule when you see one?


During the design-phase of your business process and it-solution it is important to recognize the Business Rules.

Wanna know why it is important?
  • Because detailing can be postponed so you can focus on the important stuff;
  • Because they are heavilly subject to change. You should always seperate what will stay the same from what will vary. The only way to cope and manage change; Both in your IT solutions and business documents.
  • They are subject to discussion; therefore identifying them allows you to focus on the important stuff, get your work done and make results.
  • Any formal technique makes the distinction (bpmn, uml. etc.)
So how do you recognize one?
  • either, a business rule makes a Classification;
  • or, a business rule does a Computation;
  • or, a business rule does a Comparison;
  • or, a business rule do Control; (think of if statements);
What is a Business Rule anyway?
  • Basically a business rule is something that lets you make a business decision.
To wrap things up:
  • Identify your business decisions and continue don't focus on rules to start with!
  • Separate your rules from your other main business process flows and code.
Happy Business Process Modeling!

Thursday, October 1, 2009

Master Data Management (SOA)

S.O.A. and Master Data Management are best friends!
How and why I will explain soon...







Apart from SOA you need to know and understand the typicle Master Data Management problems and solutions. Why? Because you will be faced with those typicle M.D.M. challenges in any IT and business project.

I recommend you read about Master Data Management at the Microsoft Website:
Happy Managing your Master Data!




Sunday, September 27, 2009

Business Process Redesign Principles (SOA)

I am already doing my third SOA project.


From this I can conclude that the nice thing - I actually have to say the only way - about SOA-project is the business oriented approach to be taken.


Then when you take a good look at the current business processes you *will* notice that the process needs to change either because:
  • the process is not inline (anymore) with the current business strategy;
  • with S.O.A. comes workfow and integrated systems that will definitely impact and change the business process for the better.

When improving business processes its usefull to have your principles for change ready.


Here is my current list of principles that I try to apply:
  • Redesign the process first, then automate it;
    Bring downstream information needs upstream;
    Capture information once at the source and share it widely;
    Ensure 100% quality at the beginning of the process;
  • Provide a single point of contact for customers and suppliers whenever possible
  • Consider every handoff as an opportunity for error. Have as few people as possible involved in the performance of a process;
  • Ensure a continuous flow of the "main sequence" (those activities that directly add value to the customer- nothing should slow the value-added steps)
  • Look for places to use or create a "generalist" instead of multiple specialists;
  • Push decision-making down to the lowest levels that make sense;
  • Use simulation, practice, or role play to test new process designs risk free

Happy Redesigning!

Porter's Valuechain And Primary Processes (Modeling, SOA)

When you are automating, in a way you fixing a business process into the organisation. Particularly with SOA, but of course it goes with every IT project, you need to solve the business process problems first. Nothing new there, it's an ancient old business principles that one should "...Redesign the process first, then automate it..."

But, when a process spans multiple departments, you need to transcend to a common inter-department process level to start redesigning the business processes.

For me, again particularly with a SOA project, this is Porter's Value chain. From a priority's perspective I tend to start with the Primary Operations to always be followed by describing the primary processes per primary activity and interlinking them.

"Wouldn't it be interesting to combine the primary activities with the main processes?" I was thinking for a while.

Though Today it was time for action! Although its only a draft (my precious Sunday is already over) the draft version fictitious below does make clear what I had in mind.

To summarize what this fictitious model tries adds apart from a true classical Porter's Value Chain:
  • its shows the main processes per primary activity;
  • its shows the main relationships;
  • its shows intuitively the activity's size (the bigger in the picture the bigger (budget?) in the company);
  • its shows the main responsibilities: for example sales manages the contracts as well!
  • it shows the main processes goals.

The model really is a mix and match of other models (for example Business Process Modeling Notation). However, I really feel this model meets its goal: high-level displaying primary activities and their relationships.

What do you think? Useful for (SOA) projects or not? (Click to enlarge)



What I was basically missing in Porter's model is how the activities relate and in what portion they add to the margin.

What I have basically done is merge the primary processes of porters Value Chain with the primary activities identified.

Happy Modeling!

Thursday, August 6, 2009

Team Foundation Server Requirements Management (tf30224 Exception)


For my current client, I want to use Team Foundation Server.

In my opinion, from a process and tooling perspective it is worth every penny.

While I was preparing the go-life of Team Foundation Server, to my surprise I was confronted with the following exception:

TF30171: The Microsoft.ProjectCreationWizard.Reporting plug-in used to create the new team project could not be initialized and returned the following error: TF30224: Failed to retrieve projects from the report server. Please check that the SQL Server Reporting Services Web and Windows services are running and you have sufficient privileges for creating a project.

Although the solution is really simple (isn't is allways when you look back?), the solution is not easy to find: all we need to do is reainstall the Visual Studio 2008 SP1 again. And Voila!





Sunday, July 12, 2009

Doen als een architect

Een echte architect praat niet over architectuur en zeker niet abstract.
Een echte architect doet architectuur.
De regelmatige lezer kende deze mening van mij al.

Doch als beginnende of aspirant architect kan het juist heel belangrijk zijn om bij de vrijdagmiddag borrel of op feestjes met de brallende architecten mee te kunnen doen.

Met onderstaand, briljant, filmpje ben je in vijf minuten klaar voor de test.

(Over een goede communicatie gesproken overigens)

Veel kijk plezier en succes vrijdagmiddag!



Career building for nerds: improve your posture

Don't judge each day by the harvest you reap, but by the seeds you plant.
Robert Louis Stevenson



Sure you know your technologies, but sooner or later making that next career step takes more then in depth technology skills. It sure is if you want to be a recognized (Enterprise) Architect.

For me, one way to make that next career step, to harvest even more is to take a step back and reflect on even the most basics of your career that you have never thought of before. Currently, for me this is refecting the way I breath, the way I talk and the way I walk (my posture).

Over the last years I have become convinced that how we say something is much more important than what we say. However, knowing this is just one thing. Actually changing how one brings his message across is something completely different.

After giving this a thorough thought and I have come to the following, actionable, conclusion:
  1. How our message is received has a lot to do with our posture (how we move, posture is not something static); Think about a presenter looking at the ground, looking like a nerd or looking like a true leader facing the crowd...
  2. How our message is received has a lot to do with our voice, and of course that has a lot to do with how we breath.
  3. How our message is received has a lot to do with the willingness of the other person. Typically a competitor is listening completely different to your story than a colleague would. The part that you can influence your audience is what I call 'Group Dynamics'.
Of course there is more, a lot more, to getting your message across. But for now, these three perspectives seem the most easy to improve. At least for me.

I will start with improving posture, for three reasons:
  • The last year I have learned that multiple friends of mine are really into yoga. Not recently but actually already for years and years. Yoga has a lot to do with posture (and breathing or course);
  • I know a few physiotherapist (mainly via my girlfriend who studied to be one);
  • I think my posture can and should be really improved;
The first question comes to my mind, why does one have or get a bad posture? For many people I know for a part it has to do with their ergonomics particularly how they sit (hence lay) behind their laptop. But there has to be more!

The movie below seems to gave me some new insights.

The next step: how to improve one's posture... I will keep you posted


Monday, July 6, 2009

Yourdon is back, alive and kicking! (Modelling)




If you have been studying Software Engineering in the 90's like me you cannot have missed Yourdon's Structured Analysis.

Although not too many people I know liked it, I have allways appricated it because it is one of the rear Structured Analysis methods I know perhaps exist. An often heard complaint is that is was too bloated, too much work, too impracticle etc. etc.

I have seen the bad examples, but its really how you apply the method! Don't blaim the method I would say.

Anyway, Yourdon is back with a new book 'Just Enough Analisys' its really great!

You can download it for free from here, although it has an impressive 650 pages it reads all to easy just like reading your favourite magazine! It really is a joy!

To try to soduce you to read, enjoy and learn, below a small piece of his book:

...

We can’t say very much about systems analysis until we have a clear idea of what a system is; that is the purpose of this chapter.

As we will see, there is an “official” dictionary definition of the term, which will seem rather abstract. But there are many common usages of the term that will be quite familiar to you, and there are many common types of systems that we come into contact with every day.

So what? It is important to be familiar with different kinds of systems for at least two reasons. First, even though your work as a systems analyst will probably focus on one kind of system — an automated, computerized information system — it will generally be a part of a larger system.

Thus, you may be working on a payroll system, which is part of a larger “human resources” system, which in turn is part of an overall business organization (which is, in itself, a system), which is, in turn, part of a larger economic system, and so forth. Or you may be working on a process control system that is part of a chemical refinery, or an operating system that is part of a vendor-supplied “package” of system software.

Thus, to make your system successful, you must understand the other systems with which it will interact.

....

Yourdon is Brilliant!

Sunday, June 7, 2009

Cern, Darwin and Creationism



Today, I had an interesting discussion about the Beliefs.

Apparent subjects passed: Darwin, Creationism and the Cern project. Subjects that for some reason go well together.


I am a big fan of Middas Dekker. Nobody seems to be able to make things clear and simple in a humorous way like he does. You can see him (part1, part2) in action on YouTube: "Creationist Ark Builder vs Atheist Biologist" (don't forget to enjoy FatBoy-Slim!)


Can't emagine you have not heard about the Cern project. If so, its an unbelievable complex and big project trying to simulate the construction of the earth mostly based on the theories of Einstein, as I understand. As it seems, one of the foundations of this experiement is that you can have matter created from light under perfect and extreme conditions.



There is a twelf part introduction to the Cern project, again, on YouTube. The style is typicle American but the answers given by the professor are really clear and subtle and concrete enough to enjoy. Brainfood! You can find the 'The CERN Experiments, Science & Fusion' series here.


Did you know, atleast that is what the professor teaches us, we don't now how gravity works? Enough information about gravity on WikiPedia but the point does make me curious.


Perhaps you will enjoy!

Saturday, June 6, 2009

VMWare: Increase Extend Harddisk Size

I am using VMWare for Virtualization.
VMWare just beats Microsoft's Virtual PC in so many ways...

When I started using Virtual Machines I limited the virtual size of my harddisks. Something I don't do any more: I just give every Virtual Machine a virtual 200 gigabyte maximum size so I never have to increate it.

Ofcourse, when you least need to you run out of space. In that case you can do two things:

  1. Use the command-line

  2. Use VMWare Converter (use google), my tool of choice (use simple install)!




Happy Virtualizing

I Have A Dream (UAZ - 469)


To me, live is about experiencing (I try to embrace both joy and sadness) and building (education, career, software, relationships, skills).

One of my dreams is to experience traveling the world with a Russian UAZ 469 Jeep, that is:
- First: Scandinavia;
- Second: Russia, Asia, Middle East;
- Thrid: Africa.



I have learned this Jeep in Mongolia. There this jeep immediately draw my attention as it first drove by. I asked to (proud) owner to show me engine, which to my surprise was so simple and understandable that I immediately fell in love ( I like elementary things). This must be a very affordable, reliable and maintainable I thought.

That's exactly what WikiPedia says about this car:


The UAZ-469 (and its modifications) has earned a reputation as a very reliable and capable 4x4. It has gained huge popularity among off-road enthusiasts within Russia, former Soviet republics as well as other countries.
One of the main reasons the 469 has enjoyed such popularity is its deliberately simple design, which allows for easy maintenance and repairs.
Furthermore, the UAZ's simplicity, easy maintenance and extremely inexpensive spare parts allow the car to last much longer than more expensive and complicated western 4x4s. Even the most complicated and costly repairs can be done by the owners themselves, and rarely cost more than a few hundred dollars.



Currently I am thinking about different things and scenarios:
  • Buy new in russia ($9000) and drive back n to Holland to keep in my Garage; Most easy but expensive and less fun! I knew that garage would come in usefull sometime (apart from storing my girlfriend stuff!)
  • Buy a used one in Russia and drive to Holland to keep i my Garage; To haggle in Russia and make sure I get good price and quality I need somebody who speeks Russia and who I can trust; Need to have knowledge about the car in advance;
  • Have the car register in a country outside Holland (since I will use it only abrought);
  • Have an excellent insurance;
  • I have seen a really cool complementary trailer I really want to use;
  • Perhaps there is a oldtimer-society somehere who specializes in these type of vehicles?
  • There is a new verion 'the hunter' which I have come across, but from the outside I don't like it as much as the original, yet;
  • Have my girlfriend design and paint a  happy look, don't want to get in trouble because it looks militairy and its more fun!
I have the tendency to live my dreams, so beware! :)




If you have any suggestions or experiences, let me know!

More information:

Open brief aan de SP

Beste Landelijk Partijbureau SP / Mevrouw / Mijnheer,

Helaas is het tegenwoordig net zo belangrijk - zo niet belangrijker - hoe een stem wordt uitgelegd als op welke partij pur-sang de stem wordt uitgebracht.

Om die reden, voor het eerst sinds ik stemgerechtigd ben, heb ik niet op de SP gestemd maar een andere partij en wel op D66 (pro Europa).

Het uitgangspunt, minder Brussel als doel, onderschrijf ik niet.

In deze tijd waarin bijna iedere student in het buitenland wil afstuderen en in deze tijd waarin bijna alle significante wetenschappelijke publicaties in het Engels is geschreven en in deze tijd waarin we ons vooral bezig houden met problemen die niet passen bij de mate van invloed van een land van ons formaat, daar misstaat het ontkennen van een steeds belangrijkere rol voor Europa, ben ik van mening.

Ik hoop op een ander geluid voor de volgende Europese verkiezing!

Voor de landelijke verkiezing kunt u natuurlijk weer op mij rekenen.

Met vriendelijke groet,


Marcel van Eijkel

Visual Studio Database Edition is improving! (DataDude)

As you might know, I have been using the Visual Studio Database Edition (formarly DataDude) for some time now.

But, as you might expect from a first-version-product, some things just didn't really work:
  • it was really had to regenerate the database from your code (this is what I do for integration tests where I want to have the same starting point, that is: empty, latest version, database filled with testdata according to the same logic each time; 
  • No easy way to distribute your database model as part of your setup-project;
  • You needed a local database instance for runtime-verification (can't move it somewhere else easily -without a proxy workaround-);
  • SQL Server 2008 was not supported;
  • There was no dependency viewer and refactoring was very limited;
  • Unit-testing of stored procedures was supported but had room for improvement;
But, with the new upcoming version things are again really aproved.

There is no final version yet, but the R2 (almost final) can be downloaded from the Microsoft website and be used to upgrade your current version. See: http://www.microsoft.com/downloads/details.aspx?FamilyID=bb3ad767-5f69-4db9-b1c9-8f55759846ed&displaylang=en

Here you will also find a list with all the features that have been improved or issues that have been solved.

By the way, I am not sure why, but I don't see the VS-Database Edition used very much. Most alternatives I have seen (including just working on your development or production-database directly) should really benefit from using this familiar product!


For your infomation, I have copied the most interesting part of the DataDude article:

Finally the moment is there, the final version of the Visual Studio Team System 2008 Database Edition GDR has been released to the web.

Although the name "GDR", which stands for "General Redistribution Release", implies otherwise, this really is a complete new release, based on a new architecture. We have taken the architectural changes from the Rosario project (Visual Studio Team System 2010) and rolled them forward in time. Rolling forward these changes help us align the GDR release with the upcoming Visual Studio Team System 2010 release and provide numerous new features and extensibility points in this release. If you would compare the GDR release with the "Visual Studio 2005 Team Edition for Database Professionals" or "Visual Studio Team System 2008 Database Edition" you will agree this is a completely new product!

The key architectural changes

  • Model based architecture - Everything underneath the covers is based on a true model representation of the SQL Server schema. This facilitates a true offline declarative database development system where the source code defines the shapes of the schema objects.
  • Models are implemented by Database Schema Providers, DSP's for short. - The introduction of a provider model enables multiple things at once. First of all the decoupling of release vehicles. For example when SQL Server will release a new version or adds new functionality in a service pack, like they did in SQL Server 2005 SP2 when adding "vardecimal" support, we can simply update an existing provider or provide a new one in case of a new SQL Server release. Overtime we will go to a model where the SQL Server providers will be an integral part of the SQL Server release. The provider model is also a key extensibility point, allowing 3rd parties to extend database project ecosystem and add support for other database platforms in Visual Studio Team System 2010.
  • Tool extensibility - In this release external tool writers have full access to the T-SQL parsers (for SQL Server 2000, 2005 and 2008), the SQL Script DOM and the schema model (when inside Visual Studio). This adds on top of the ability to write extend the tools inside the platform. You can extend T-SQL refactoring by writing your own refactoring types (operations) and refactoring targets; add T-SQL Static Code Analysis rules, data generators, data distributions and test conditions. Database Projects (.dbproj) now provide a truly extensible declarative database development platform.
  • Separation of BUILD and DEPLOY. - The separation of build & deploy makes it possible to deploy the output of your database project to many different targets and different points in time. Build now produces a single artifact file hat describes the schema inside your database, called a .DBSCHEMA file. This file is used by the deployment engine to deploy your schema.
  • Standalone Deployment Engine. - The inclusion of a standalone and redistributable deployment engine makes it possible to deploy the output of your database projects (.DBSCHEMA files) to a target database without the need of having Visual Studio Team System Database Edition installed. This enables key scenarios like the inclusion of database schema deployment as part of your application installation.

All these architectural changes enable many new usage scenarios and interesting new features. So lets walk through the list of new features and major changes.

Feature list

  • Project System
    • Full support for SQL Server 2000, SQL Server 2005 and SQL Server 2008 support.
      • All database objects are now modeled, therefore they are compared and part of deployment. The side-effect of this is that there are no more objects that need to be stored in pre- and post-deployment scripts.
    • Server vs. Database projects
      • This change allows you to model the different behavior of shared and server level objects inside SQL Server vs. user database level objects. 
    • Partial projects
      • Partial project allow you to share implementation between projects, with a single definition of the code
    • Composite projects
      • Composite projects extend database references, allowing you to add objects from other project to the name database schema namespace. So you can compose your database from other projects and/or DBSCHEMA file references
    • Database references using literals, in addition to SQLCMD token support
      • The addition of literal support facilitates that you do not have to change your code of 3-part names, when do do not require the flexibility of name independent deployment
    • Reference support for XML Schema Collections to include .XSD files
      • Enables single sourcing of XML Schema Collections from an .XSD file which itself can be used by other developers or tools.
    • Reference support of SQL-CLR projects and / or SQL-CLR assemblies
      • Enables the inclusion of a SQL-CLR project or a binary, to represent a SQL-CLR assembly. Like XSD references, the goal is single sourcing of artifacts inside the development environment
    • Import Schema and Import Script is now available through DTE
      • This allows the creation of macros or programmatic add-in to drive these common tasks.
    • No more "DesignDB"
      • The change to a fully model driven implementation makes the need for a local SQL Server database instance obsolete. Having a sandbox for your development environment is still am advised practice though, so you can test the changes independently and in an isolated environment.
  • Build
    • Build validates the consistency of the schema model and produces all the files that you need to deploy the database
  • Deploy
    • Deploy takes the output from the build stage and deploys this information based on the settings supplied
    • Deployment settings are now isolated in to the .SQLDEPLOYMENT file, which allows you to standardize and re-use the deployment settings
    • Most of the "Schema Compare" comparison options are now available as the deployment options, to increase the symmetry between the two
    • VSDBCMD.EXE, is a command line deployment tool, which enables the standalone deployment of Database Project
  • Schema Compare:
    • Compares any combination of live databases, Database Projects and .DBSCHEMA files
    • Session level option support, which can be persisted and re-used
    • Object type level filtering allow you to exclude object types from the comparison
    • You can now quickly navigate back and forward between difference via the toolbar and optionally configurable keyboard shortcuts
    • Substitution of SQLCMD variables, allows for the comparison of projects that rely on the use of SQLCMD variables
    • Schema Compare can now be executed through DTE
  • Data Compare
  • Refactoring:
    • New refactoring types: Expand Wildcards and Fully-qualify Names (in addition to Rename, Move Schema and 3/4 part name refactoring)
    • The patented "preservation of intend" functionality makes is possible that the Deployment Engine will deploy renames and move schema operations as actual renames and move schema operations, instead of a DROP / ADD operation.
    • Extensibility enables the creation of your own refactoring types (operations) and refactoring targets.
  • Database Unit Testing
    • Added support for SQL Server 2008
  • Data Generation
    • BulkCopy based inserts in addition to the existing INSERT data sync
    • Sequential Databound Generator is now included in the product
  • T-SQL Static Code Analysis
    • Execute analysis using MS Build and/or as part of the VS IDE build process
    • Including the ability to write you own T-SQL Static Code Analysis rules
  • Extensibility
    • Public full fidelity .NET based T-SQL parser for SQL Server 2000, 2005 and 2008.
    • Public .NET based SQL Script DOM, for programmatically generation of SQL code (equivalent to the Code DOM in .NET)
    • Access to the Schema Model from within Visual Studio, this enables for example ability to write code generators based on the schema model.
    • Feature extensibility:
      • T-SQL Static Code Analysis rules
      • Refactoring types, these are the refactoring operations
      • Refactoring targets, these are the sources that you want to update as part of a refactoring operation
      • Data Generators
      • Data Distributions
      • Test Conditions

Happy Database Developing!


Wednesday, May 27, 2009

Workflow 4.0 State Machine (StateMachine)

It was hard to find an example how to implement a state-machine workflow in Workflow Foundation version 4.0 (beta 1) but I finally found it.


First impresson: I don't like it at all !


They have to be kidding! This looks more like a hack to me !!!
Not the kind of code that I would like to show to my boss at the end of the day!


They seem to have 'hacked' it with a 'pick' activity (basically an if statement) that you can have handle a sequential workflow (so far so good) but you have to build the transitions yourself! This feels really really wrong! For me a reason not to use it because this is really unusable!


Look for yourself, I might be overlooking something....


You can find the sample which is part of the 'Windows Communication Foundation (WCF) and Windows Workflow Foundation (WF) Samples for .NET Framework 4.0 Beta 1' in the folder: "\WF\Scenario\StateMachineWithPick"


What do you think?

According to MSFT: "Roman is right that a brand new State Machine is not included in WF4. However, we also believe that with the new Flowchart modeling style that lets you model your processes with loops, that common scenarios where people had to resort to State Machine in WF3.x should now be covered with Flowchart. " (see: http://social.msdn.microsoft.com/Forums/en-US/wfprerelease/thread/d4ff73d8-ed3f-4615-b9ac-47094cbc3b9c)

I don't want a loop, its soo different!


Let me know what you think....

Saturday, May 16, 2009

WCF 4 Disappointments

Bad luck, for me!

Just learned that excactly the two things I was looking forward to the most, will not make it to the RTM of WCF version 4. 

I just can't believe it !!!

That is:
  • Local Channel: We won’t be able to deliver the high-performant in-AppDomain channel in time for .NET 4. The beginning of a local (also known as 'in-proc') channel shows up in the Beta 1, but it’s in its early stages and unfinished; given resources and timing, the local channel capability will be removed in .NET 4 and won’t be present in the RTM bits.
  • Durable Service Host Extensions: WorkflowServiceHost provides an extensibility mechanism called DurableServiceHostExtension that allows host application developers to receive notifications for state changes of the service instance and perform control operations specific to the service instance. This general extensibility mechanism will likely go away in .NET 4 RTM in exchange for a more scoped, but robust, functionality.

Don't we just all need Durable Service Hosts and Client?
Do we really have to do that plumbing all for ourselves?

Luckally, there is plenty of improvements to look forward to, however.




Tuesday, May 12, 2009

Application Facade


Today, I have been reading the 'Service Architecture Pocket Guide' again but more closely.

In this guide, a typical Enterprise Layering is given (page 34).

One layer, got my attention, it's the 'Application Facade' that is part of the 'Business Layer'.

To me, this does not feel right. Shouldn't this be 'Business Facade' instead?

According to the old-school-books a 'Facade' can be defined as 'an object that provides a simplified interface to a larger body of code.

It goes without saying that the Business Layer should not know anything about the Application layer (I read UI-Layer or Service Layer). So calling this part the 'Application Facade' in my opinion is counter intuitive. Perhaps plain wrong?

However, it seems to be the consensus to call this part an 'Application Facade'. It's not something only the Patterns and Practices use.

Martin Fowler has written about this 'Application Facade' extensively.

According to him (I quote): The application facade class is responsible for talking to the domain model and getting the information to the presentation class in exactly the form that thepresentation class requires. In this way the presentation class needs to know nothing about what is going on inthe model, it only handles the UI work.

But how in the world would your Business Layer know your Application Requirements?

I would implement an Application Facade as part of my Application and make a Business Facade part of my Business Layer.

What do you think? 'Application Facade' or 'Business Facade' ?

Happy layering!


Friday, May 8, 2009

Quote about understanding

Tell me and I will forget
Show me and I will remember
Involve me and I will understand

- Confucius -


I found this quote on the blog of the problem solver.
See: http://msmvps.com/blogs/theproblemsolver