Tuesday, October 21, 2008
Quote about recognizing a leader
21 oktober 2008, Marcel van Eijkel
=====
(translation)
Anyone, who has a goal being dependent on others to accomplish it, is a leader.
Monday, October 20, 2008
Null Column Values in Linq2SQL ( isNull, Linq )
Wrong:
From table in context.Table where (searchValue == table.Column)
Results in "from Table where Column=null"
Right:
From table in context.Table where (Object.Equals(searchValue, table.Column))
Results in "from Table where Column is null";
Happy Linqing!
PS: the reason I am using Linq2Sql and not Linq2Entities because of the current lack of disconnected entities support. I tried it but it was way too time consuming to use the conceptual layer as a business/object layer.
Saturday, October 18, 2008
Decorator Pattern using the Unity Framework
But, with the arrival of the new Unity (Inversion Of Control) Framework setting this up is less intuitive.
Below a config-based example (mainly for my own reference) copied from a codeplex discussion see:
http://www.codeplex.com/unity/Thread/View.aspx?ThreadId=24015
Happy decorating!
Thursday, October 9, 2008
WCF Windows Service (Debugging)
But, with the development of Windows Services comes the, generally accepted, burdon of deploying (compiling, installing, starting, attaching debugger, stopping, uninstalling) these services with every change we make, atleast if we do this by the book.
Not settling for that situation I counted my (too many) options and choose the following stratagy:
1) As goes without saying, allways make sure your service has hardly any "guts". Have all the logic in a seperate class that is seperately and indepentdently unittested.
2) Add a "program.cs" to your WindowsService-project, change its type to "Console Application" finally have Visual Studio start that project up when you start debugging your solution. (see source here: Run-windows-service-as-a-console-program.
Happy Servicing
Notes:
- Don't worry, by changing the type to "Console Application" you only tell Visual Studio to start (technically speaking "exec"-buildtask) the main-function of the program.cs you can still deploy your services without any changes to the sources/binaries.
- Try to group your Services in one Windows Services (technically speaking adding multiple appdomains to the process). If applicable this does save a significant amount of memory.
- Microsoft's upcoming OSLO concept might make this approach less needed;
- Add the following configuration block to your "app.config" to get usefull Console output:
<system.diagnostics>
<trace autoflush="false" indentsize="4">
<listeners>
<add name="configConsoleListener"
type="System.Diagnostics.ConsoleTraceListener">
</listeners>
</trace>
</system.diagnostics>
Monday, October 6, 2008
Quote about being reasonable
Friday, September 26, 2008
The world of business (Quote)
The world is a dangerous place, not because of those who do evil, but because of those who look on and do nothing.
Albert Einstein
Its unmistakable that that business is an eminent part of that same world.Tuesday, July 22, 2008
Quote about energy through patience
Tuesday, July 15, 2008
Plain Agility (Project Management)
Although it is written for Microsoft the author keeps the role of tooling general. I just love articles like that.
Easy to read, hard for anyone (other than purists) to disagree.
Its written by Kent Beck from Three Rivers Institute.
You can find the document here.
Happy Reading!
Sunday, July 6, 2008
Hollands own technology TV Station!
But I expect things to change the first of October! A date to put in your calendar. That date will be te start for Holland's Technology / Inovation / Internet TV-Station.
Check it out at: http://www.blueshots.tv/
Supported by Hollands Boris Veldhuis van Zanten!
Happ Watching...
Microsoft Arrowhead (DotNet)
Part of this service pack seems to be something called "ArrowHead". As we are used from Microsoft, this is still the codename of course.
As I understand this "ArrowHead"is about supporting occasional connected clients.
Let me know what your experiences when you have taken the time to play with it. There is not much information available to me yet, but have a look at wiki:
http://en.wikipedia.org/wiki/Microsoft_.NET#SP1_.28codename_.22Arrowhead.22.29
Happy Playing (with your arrow-head :)
Tuesday, July 1, 2008
Linq Examples (Cheat Sheet)
Happy Linking!
Monday, June 30, 2008
Extension Properties? (DotNet)
Its been allready a while since extension methods have been introduced. Hence, many of us hardly actively remember not having those methods available to us.
But I was wondering:
- Where are the extension properties?
- Do extension methods go against the Object Orentation principles?
What do you think?
Friday, June 27, 2008
Quote about success and failure
For me, true success is about failing, failing, failing and yet sticking to it. Making? No demanding success. Its oke to rest but not to quit....
Tuesday, June 24, 2008
Microsoft WCF Tools (Test, Configure, UI)
As you know for Microsoft the current strategic tool of choice for services is WCF. However, testing / configuring with WCF, among things can be tricky. Knowing what tool to use in what situation is essential. As it turns out still not everybody knows about the currently available tools from Microsoft, so just as a reminer below a list:
- ServiceModel Metadata Utility Tool (Svcutil.exe): Generates service model code from metadata documents and metadata documents from service model code;
- Find Private Key Tool (FindPrivateKey.exe): Retrieves the private key from a specified store.
- ServiceModel Registration Tool (ServiceModelReg.exe): Manages the registration and un-registration of ServiceModel on a single machine. COM+
- Service Model Configuration Tool (ComSvcConfig.exe): Configures COM+ interfaces to be exposed as Web services.
- Configuration Editor Tool (SvcConfigEditor.exe): Creates and modifies configuration settings for WCF services.
- Service Trace Viewer Tool (SvcTraceViewer.exe): Helps you view, group, and filter trace messages so that you can diagnose, repair, and verify issues with WCF services.
- WS-AtomicTransaction Configuration Utility (wsatConfig.exe): Configures basic WS-AtomicTransaction support settings using a command line tool.
- WS-AtomicTransaction Configuration MMC Snap-in: Configures basic WS-AtomicTransaction support settings using a MMC snap-in.
- WorkFlow Service Registration Tool (WFServicesReg.exe): Registers a Windows Workflow service.
- WCF Service Auto Host: Hosts WCF services contained in libraries (*.dll) files
- WCF Test Client: GUI tool that allows you to input parameters of arbitrary types, submit that input to the service, and view the response the service sends back.
There are also a few Debugger Visualizers for WCF available aswell:
http://codeplex.com/WCFVisualizer
Be aware though, Oslo is coming up about to change this big time!
Happy Serviceing!
Wednesday, June 18, 2008
The Business-IT-Gap has a face
Is it not? No, not at all!
In fact you just met the "Business-IT-Gap" in person. It might be the manager asking a developer for an application that should (obviously) be flexible and stable. Or it might be a sales person or consultant explaining a client that they really need to go for a SOA-solution for agility reasons. Either way you are actually physically facing a (e.g.: talking/listening to) person embodying the Business-IT-Gap.
Really? Explain!
The whole reason why the Business-IT-Gap exists is because managers have lacked to provide enough guidance about what kind of flexibility and interopability and the dagree of stability is that was needed (a responsibility now being hijacked by people calling themselves Architects).
Lacking this guidance resulted in systems lacking flexibility or the wrong kind of flexibility (thus maintainability) and interoperability. Moreover, because every developer has its own personal view on the type of flexibility needed, changes are that what is flexible in one application is fixed in another. Thus in fact lacking this guidance cannibalized the overall investments in flexibility. Believe me this is not theoretically speaking, this is what I see day in and out! I can't believe nobody else notices this...
So what should I do?
Of course, it's not only you. It's the whole branch! Developers should demand more guidance. Sales people and consultants should not propagate agility, interoperability and stability etc. "pur sang". They should explain that it is about Just Enough and about Just Right and that divers from situation to situation and company to company. You just can't and don't want to be totally agile either given a solution or given an total enterprise. It's about finding the right balance between what can be fixed and what should be flexible. Because flexibility comes with a big cost that can only be returned (roi) if it will be used sooner or later. Just think about architecting a house. Realizing all your dreams and whishes (read: requirements) in a totally agile structure would have you end up with something crazy like a hyper expensive stretchable balloon!
But now that you know, you can and should close the gap by asking the right questions and demanding a reasonable answer!
Happy closing the gap!
Monday, June 9, 2008
Compare Assemblies (ALM)
As far as I know there are three tools that can be used to compare assembly versions:
- Microsoft's LibCheck which might be incorporated into your build server to have a document generated with your release that lists all the differences; This application outputs a xml-file with the differences;
- For ad-hoc investigation you should you ndepend;
- For simplicity you might use the free opensource Framework Design Studio; Which can also be incorperated into your build server using the "fxdiff.exe" found in the install folder. This application gives you a visual SourceSafe-like comparison.
I recommend using nDepend today! If you are not using it allready.
Happy comparing!
P.S. If you can't find the download for the Framework Design Studio click here.
Tuesday, June 3, 2008
Welcome.doc (Project Management)
- What database do we use and where is it?
- What servers are do we use?
- What does the develop / test / production environment look like?
- Do we use SourceSafe?
- What version of Visual Studio do we use?
- Etc. etc
A typicle "Welcome.doc" document for me looks like this:
Brief introduction (1 page)
- Vision: it is mission ciritical and why?
- Basic description of the functionality;
- Logical position of the application;
- Main technologies used;
Meet the application (Chapter 1)
- Size and complexity;
- Basic architecture;
Meet the users (Chapter 2)
- Grapphical context diagram (users versus elementary use cases);
- Main usescases and a brief description;
Logical System Description (Chapter 3)
- Logical parts;
- Logical main process (value chain);
How we develop (Chapter 4)
- Tooling;
- Enviroment;
- Known shortages;
- Proces (preperation, execution, finilization);
How we test (Chapter 5)
- Tooling;
- Enviroment;
- Known shortages;
- Proces (preperation, execution, finilization);
How we release (Chapter 6)
- Tooling;
- Enviroment;
- Known shortages;
- Proces (preperation, execution, finilization);
Daily activities (Chapter 7)
Many projects come with daily activities. This might be to check a log file, build server or to check a dashboard.
First Aid for Production Problems (Chapter 8)
If you join the team its just a matter of time before somebody runs into your office to ask you for your help with something that is thought of a high priority production problem. This chapter describes the basic checks.
Plan to get up and running (Chapter 9)
This chapter describes what to do after reading the "welcome.doc" - document to get you up and running as fast as possible. This might be to make a few "fake" changes and go throught different applications layers, the test procedure and release procedure.
Settings and Locations (Chapter 10)
This chapter describes the main settings (for example a flag in a config file to set debug on or off) and the locations of the main parts like the dashboard, the intranet, certain folders on the network where tooling can be found.
Relevant documents and applications (Chapter 11)
Any other, more in depth, documentation about the current system or referenced applications should be referenced here.
Frequently Asked Questions (Chapter 12)
Frequently asked questions and their answers of course, about this document can be listed in this chapter.
Happy Welcoming!
Thursday, May 29, 2008
How to get the best? (Quote)
For me, this is how I have always tried to live my life, I guess as from my twenties...
Good luck persuing!
Monday, May 26, 2008
Microsoft Posters (Biztalk, Visual Studio, DotNet)
Go check them out and download them here.
Below, as a preview, a list of the most populair posters.
Security & Reliability Co-Partner Marketing Poster 1
This contains marketing material which can be used by Microsoft Partners in the Microsoft Security and Reliability campaign. This download contains Poster 1.
BizTalk Server 2006 Capabilities
Lists BizTalk Server 2006 capabilities
BizTalk Server 2006 Runtime Architecture
Illustration of the modules and components of BizTalk Server 2006.
PnP Overview Poster pdf
PnP Overview Poster pdf
Security & Reliability Co-Partner Marketing Poster 2
This contains marketing material which can be used by Microsoft Partners in the Microsoft Security and Reliability campaign. This download contains Poster 2.
Microsoft® Silverlight™ 1.1 Developer Reference Poster
Microsoft® Silverlight™ 1.1 Developer Reference Poster
Smart Client Poster pdf
Smart Client Poster pdf
BizTalk Server 2006 R2 Scale-Out Configurations
This poster illustrates typical scale-out configurations and options.
Visual C++ 2008 Keybinding Poster
List of keybidings for Visual C++ language within Visual Studio and Visual C++ Express 2008
BizTalk Server 2006 R2 Database Infrastructure Poster
This poster depicts BizTalk Server databases and associated components, jobs, services, UI, and events.
2007 Office System Document: Open XML Developer Map
Download this poster to learn more about Open XML File Formats.
Visual C++ 2005 Keyboard Shortcut Reference Poster
This poster contains the default keybindings for Visual C++ 2005, and is available as a PDF download in either color or grayscale for you to print.
BizTalk Server 2006 R2 Poster
This poster lists the BizTalk Server 2006 R2 capabilities.
BAM Poster for Microsoft BizTalk Server 2006 R2
The BAM poster for BizTalk Server 2006 R2 enables both new and experienced users to better understand the concepts, processes, and management of BAM.
TechNet Magazine Active Directory Component Jigsaw Poster
Active Directory Component Jigsaw poster, originally printed in the March-April 2006 issue of TechNet Magazine.
BizTalk Server 2006 R2 Runtime Architecture Poster
This poster provides a detailed illustration of the modules and components that make up the BizTalk Server 2006 R2 runtime architecture. It shows typical message flow and data flow that occurs between these components at run time.
Windows Server 2008 Component Posters
Windows Server 2008 Component Posters, originally printed in the July 2007 issue of TechNet Magazine.
NET Namespaces Poster
The .NET Framework 3.5 Common Namespaces and Types Poster
Visual Basic 2008 Keybinding Poster
Printable wall poster containing list of useful keyboard shortcuts for Visual Basic 2008 developers
2007 Office System: Developer Posters
Download these posters to learn more about the new features and enhancement to the 2007 Microsoft Office System.
Tuesday, May 20, 2008
Windows Updates Downloader (Windows)
With Windows Updates Downloader, Windows Updates have never been easier to download. With the simple interface that Windows Updates Downloader provides, you can quickly and efficiently download all of the Windows Updates for your version of Windows in your language. You can then either install the updates, slipstream them to an existing Windows source, use them for network installations or on computer who are not connected to the internet. You can even collect them to store them for achival purposes.
Source: http://wud.jcarle.com/
Happy Downloading!