Archives
-
Versioning, probing and binding in .NET
It's written in a clear style, and provides practical and valuable information with code snippets on the following subjects : assemblies, metadata, fusion / fuslogvw, versioning (including versioning without a strong name), rebinding/redirection, shared assemblies, publisher policies, dynamic loading, etc.
-
JavaToolbox: new reference for Java tools and libraries
Because many of us have to deal with that other dominant platform, SharpToolbox gets a little "J" sister site for Christmas: JavaToolbox.com.
JavaToolbox is the place for Java tools, like SharpToolbox is the place for .NET tools.
Of course, this is work in progress, and a lot of tools are still to be added, but you can already talk about the site to your colleagues from the other side because I expect the site to grow quickly :-)
-
Choosing an object-relational mapping tool
My new article is available online in French: Choosing an object-relational mapping tool.
There is no English version yet, but maybe I'll take the time to translate it. If someone feels like helping...
Update: this article is now available in English as well.
-
PastePal, quickly copy-and-save images
PastePal is an excellent idea, and a much needed tool!
How many times did I see Word documents containg just an image because people don't know what to do with images in the clipboard...
Luckily, we don't need image editing software (such as the marvelous Paint) any longer to copy-and-save an image.
PastePal is a quick'n'dirty utility that saves images from the clipboard to a pre-arranged location in JPEG format, with a randomly generated filename (or one you specify), and can run a utility/script against the saved image afterwards.
-
Life and Death
For the first time, I removed products from the SharpToolbox. These tools are not exactly deleted, but flagged as discontinued so that they don't disappear completely, in case someone wonders what happened to them or needs the source code or something..
I just started, so only eight products switched status from available to discontinued. Most of them are in the Object-Relational Mapping category. I have still more sweeping work to do... In case you know of other products that are now discontinued, please let me know.
I think that after seeing an impressive wealth of products appear, natural selection is at work. So take care about the tools you choose!
-
Java to VB
Sometimes your really wonder what people are doing...
Here is a search query I found in my logs: convert java code to Vb code
-
At last a release date for Visual Studio 2005
At last a release date for Visual Studio 2005... They said "end of summer 2005", they chose the very last days:
September 13-16: Microsoft Professional Developers Conference
They still have to change the logo though. It says "PDC 03"...
Update: this seems to be confirmed.
Update:the official release date is "the week of November 7". -
How do you see data? table, entity or domain model?
Frans Bouma gives a clear presentation of three different ways to see data from an application developer's perspective. It helps to know where you are, and what the alternatives are.
I tend to use the entity approach (2), which is most of the time more SOA friendly.
The three approaches are:
-
Hall of shame champion: GotDotNet
I have a challenge for your memory : when was the last time you saw GotDotNet working?
-
Re-throwing exceptions with variants of throw
At least a clear explaination of the difference between "throw;" and "throw ex;". Thanks Oleg.
-
Big media and technologies melting pot
Did you notice how the different media and technologies are converging?
-
Nouveau site sur la BD : Clair de Bulle
A tous les amateurs de BD, un nouveau site sur la bande dessinées est né ce week-end : Clair de Bulle.
-
Copy Constructors vs ICloneable
Shawn A. Van Ness presents various approaches for cloning objects, problems with ICloneable, and of course solutions. The discussion mainly revolves around copy constructors vs the ICloneable interface.
-
Updated HTTP module for URL redirections
I updated my HTTP Module for redirections, adding support for ignoring case. See the ignoreCase attribute.
-
ASP.NET HTTP module for URL redirections
For my own web sites, I needed to perform multiple URL rewritings, both in order to get short URLs and to charm Google and friends. You can see this at work for the SharpToolbox for example.
I improved Fritz Onion's HTTP Module, which performs redirects based on entries in your web.config file. It is regular expression-based, and is an easy way to perform automatic redirection for one set of URLs to another in your site. -
Manipulating .NET assemblies
Guys from the Operating Systems and Middleware Group at HPI (University of Postdam) have collected links to APIs and libraries to manipulate PE files, access metadata and IL.
-
Command line parser library
Peter Hallam created a really useful parser for command line arguments, which has been recently updated.
It parses command lines like the following one for you: drinkmachine.exe /chilled /money:2 /drink:coke /drink:icedtea
It has a lot of options and can even automatically display the correct usage if needed.
I'd vote for its integration within the .NET Frawework.
Update: Stefan Demetz points out that there is a command line parser in Genghis too.
-
Will the next version of Visual Studio be "Visual Studio 2006"?
From theserverside.net:
Microsoft has decided to delay the release of SQL Server 2005 from the first half of 2005 until later in the summer of that year. A Community Technical Preview will be released as an interim beta with possibly more to come before the final beta and the product’s eventual release.
-
The counter reached 600 tools, libraries, and add-ins
SharpToolbox turns 600!
'nough said.
-
Firefox and Mozilla search plug-ins for Google Desktop Search
Now that Google Desktop Search is out (still beta), it's already time to improve the user experience ;-)
-
Is AdSense becoming less interesting?
For a while, the Google AdSense service was a good source of revenue if you have a web site. From what I see with the SharpToolbox web site, and as others seems to say on the web, AdSense is paying less and less. Do you notice this as well?
-
View exception information while debugging in Visual Studio
I had met that one once, but I had forgotten it existed... Really useful! But somewhat a hidden treasure.
-
Enterprise Library: future releases of the Application Blocks
I just discovered that Microsoft and Avanade are cooking new versions of the Application Blocks. They are to be packaged under the new Enterprise Library name.
-
Some browser stats
Some stats from the last eight months. These stats come from the SharpToolbox web site, so this is really just about techies' habits.
-
Symposium DNG 2004, c'est vendredi !
Un petit mot pour que vous rappeler que vous passez votre journée de vendredi prochain avec nous au Symposium DotNetGuru...
Avec Didier Girard, nous vous éclairerons sur l'Inversion de Contrôle et les Conteneurs Légers.
Revoir les détails du programme
-
.NET Framework and Visual Studio service packs
Ok, the new service packs for the .NET Framework are available (1.1 SP1 and 1.0 SP3), but where are the service packs for Visual Studio 2003 and 2002?
-
Enthusiasm and laziness
Thought for the holidays: Two things that drive us, software development addicts: enthusiasm and laziness....
-
How to turn off/disable the .NET JIT Debugging Dialog
A day may come when you want to turn off the Debug dialog that appears when a .NET program has an unhandled exception.
-
Need an ASP.NET hoster? - webhost4life review
Update: Given changes at webhost4life (new owner, new support, new control panel, new hosting environments) at the beginning of 2010, the review below is outdated. I now recommend Arvixe and OrcsWeb.
-
RoundedCorners and StyledPanel web controls
Scott Mitchell created a WebControl named RoundedCorners. Its goal is to simplify the creation of rounded boxes in your dynamic web pages.
Let's quote Scott: -
Reporting spam
How do you report spam? I use SpamCop, and you, what is your preferred response to spam?
-
Correct exception handling
If you look at this post by SantoshZ of the C# team, you'll see code like this:
-
Watch Anders Hejlsberg talk about C#
-
"The C# compiler won't let me do it" - answer
Drew knows his thing. He was the one who gave the right explaination for my quiz. I just copy it here:
DictionaryEntry is a structure and you're foreaching which means the instance is coming from IDictionaryEnumerator.Current therefore assigning to only the local copy. This would be a nasty problem if people forgot about the semantics of value types vs. ref. types, so the C# compiler prevents you from doing this.
However, I agree with Eric Newton that the message from the compiler should be clearer! The current one is very confusing.
Now, if you want something even more confusing, you can try the following code:
IDictionary dictionary = new Hashtable();
dictionary["dummy"] = "dumb";
IEnumerator enumerator = dictionary.GetEnumerator();
while (enumerator.MoveNext())
{
DictionaryEntry entry;
entry = (DictionaryEntry) enumerator.Current;
entry.Value = 0; // no compiler error, but "error" nonetheless
}
Console.WriteLine(dictionary["dummy"]);
This one compiles, but doesn't do what you'd expect at first. Guess what the output will be... So yes, the compiler message is useful (even if not easy to understand), but doesn't fire in all the cases...
-
"Comments on this post are closed"
I would like to apologize to readers: you'll notice that posting comments on most of the posts of this weblog is currently disabled. You'll see "Comments on this post are closed" instead. I'm sorry about this, and I can't change anything about it right now :-( This is a new site-wide (weblogs.asp.net) setting.
I hope we'll be able to reactivate the comments soon! I don't like that setting at all. I appreciate comments much, and I do not consider that previous posts as obsolete.
Scott, please do something! I you want this feature to be disabled too, please say it.
-
"The C# compiler won't let me do it"
In the spirit of language quizes, you can try to find why the following code does not compile:
-
Nested comment blocks in C#
In C#, we can use two kinds of delimiters to comment code: // and /*...*/
The first one applies to one line, the second can be applied to a set of lines or just a part of a line (block commenting). These two possibilities are useful, but I always missed the ability to nest comment blocks. -
Tools built for Mono
I added a new attribute to the SharpToolbox: [BuiltForMono].
-
Events, references, garbage collecting, memory leaks and weak delegates
I was playing with services and containers, as part of my implementation of Inversion of Control. All was fine until events came into play.
I needed to connect two services through events. Oh, all was working fine: there were no apparent troubles. But under the too calm surface sneaked a dreadful memory leak. Events don't play well with a loosely coupled environment by default. Better be warned. -
Let .NET 2.0 Go Live
Dear Microsoft, we really need a date for .NET 2.0's "Go Live" license (and consequentely the beta 2). We need to know right now whether we should start developing with .NET 2.0 or whether it's too soon because we won't be allowed to deploy in production before next year or so.
-
Objects and Services
Clemens Vasters' post "Rows and Columns + Elements and Attributes is all you need" initiated an interesting discussion about the place of objects in SOA.
-
Visual Studio 2005 and .NET 2.0 beta documentation
Keeping a link to the Visual Studio 2005 and .NET 2.0 beta documentation might be handy...
-
Inscriptions Symposium DotNetGuru
Les inscriptions sont ouvertes, et le nombre de places et limité. Qu'on se le dise...
-
Application, Page and Control events in ASP.NET v2.0
The lifecycle of Application, Page and Control in ASP.NET 2.0 is something you'll have to know and understand sooner or later. It is essential to put things where they belong, and this kind of information is not only for control writers. Jeff did a great work collecting it. If you want to learn about this lifecycle in ASP.NET 1.1 instead, you can visit this page.
-
Beta bits for the week-end
I now have two CD ISO files to play with. Three to go to have the complete set...
-
Firefox and Mozilla search plug-ins for SharpToolbox
I have created Mozilla-Search plug-ins for SharpToolbox.
-
Symposium DotNetGuru 2004
Réservez dès aujourd'hui votre journée du 8 octobre !
-
Demo TV
In case you need some entertainement for the week-end, you can watch great demos. All this online, without downloading EXEs or installation, just with Winamp.
-
Associating string values to items in code
In a comment to my previous post about advanced enums, Chris Martin provided code for a custom attribute as a solution.
-
C# feature request for Anders
Hello Anders,
-
Patcher: easy assembly patching
This is an idea I had some time ago. I think this picture speaks by itself:
-
ThinkTank - Patcher: easy assembly patching
The following picture tells most of the idea:
-
Tabbed MDI and Grid controls for Windows Forms
Here are some solutions I found for Tabbed MDI (à la Visual Studio .NET). If you don't know what I'm talking about, just click on the links, you'll immediately understand!
-
Mozilla Firefox 0.9
Mozilla Firefox 0.9 is out.
-
lock potential hazards
As a follow-up to my previous post about the Singleton design pattern potential hazard, I think it is useful to point out another potential hazard in multithreading scenarios.
-
Links about Domain-Specific Languages (DSL)
In case you need something to read this week-end (I'd like to find some time for that), here are some interesting weblogs, articles and web sites about Domain-Specific Languages (DSL).
-
Design Patterns potential hazards
As Object Oriented Programming fans, you all know Design Patterns and rely on them for your designs.
-
How many development tools for .NET?
Guess how many development tools for .NET, libraries and add-ins, I can list?
-
Most useful .NET FAQs and code samples
Every now and then I find myself looking for the same most valuable resources online, such as FAQs and code samples. Maybe it's time to list them all in one place:
-
The role of the Software Architect
My latest article is now available in English on DotNetGuru: "The role of the Software Architect"
-
Visual Studio 2005 Team System
In the next few days, we should probably look for this word: Burton.
What are we to expect? Hints have been around on the web... -
.NET 2.0 (beta) release schedule
We know that .NET 2.0 and Visual Studio 2005 (Whidbey) Beta 1 is announced for June, but which day precisely? It will probably be released at Teched Europe, which is held between June 29 and July 2.
-
Avoiding problems with relative and absolute URLs in ASP.NET
I'm back to ASP.NET development, and the first thing that hits me in the face is the limitations with URL handling in ASP.NET.
-
Microsoft Research Academic Days 2004 in France
A post in French for a change. This is about Microsoft Research Academic Days 2004 in France.
You can check whether such an event is organized close to you (past or present). -
Integrate assembly help with Visual Studio
We had NDoc to generate documentation for class libraries or components in formats such as .CHM. Difficulties appeared when you wanted to integrate that help with Visual Studio .NET's integrated help. Microsoft's Visual Studio .NET Help Integration Kit (VSHIK) didn't really help. At long last, Microsoft finally releases a new tool: the Help Integration Wizard (beta). This tool does a much better work. With it you can create .MSI files or merge modules for Windows Installer.
-
Release Day
This is Release Day. New projects and new versions are blooming as spring is slowly spreading its warmth:
-
One more MVP
Lots of talks lately about MVPs (Microsoft Most Valuable Professionals), mainly because of the MVP Summit. Well this is the occasion to announce that there is one more MVP since yesterday. Guess who got an MVP award for C# along with his easter eggs... :-)
-
Le rôle d'architecte logiciel
My new article is available in French: "the role of a software architect".
-
Windows remixed
Not to be missed on a Friday!
-
Three roads to the SOA implementation framework
I believe that everyone has his own perception of SOA and its advantages. ZapThink presents three approaches that can drive people towards SOA:
-
This looks like a joke, no?
April Fool's Day on April 2nd?
-
Source-control for home and contractors
A summary comparison of some code versioning products by William Batholomew.
Read also some other opinions. -
See you, see me
Inspecting System.Xml.dll reveals it references System..dll, inspecting System.dll reveals it references System.Xml.dll. As far as I know, it's not possible to create circular references. Is this a trick from Microsoft? If the two assemblies reference each other, why create two seperate ones?
-
Versioning Hell
There have been voices talking about the lack of updates to the .NET Framework and Visual Studio, especially since we learnt that the next versions won't be released before 2005. Microsoft did not release fixes while some well known problems exist. If you don't know the "Help | Check for Updates" command in Visual Studio, it's not worth looking for it, you won't find updates there. All we got was the .NET Framework 1.1 and Visual Studio 7.1.
-
What about some refactoring?
When you work with configuration files throughout the framework and the application blocks, you encounter assembly qualified names. Assembly qualified names (AQN) look like this: "MyNamespace.MyClass, MyAssembly". This is useful, because a string like this gives you everything you need to find a type. You can simply use Type.GetType() to access a type, based on its AQN.
-
Slowing down your horses
Now that the dates for Whidbey and Yukon have slipped again (Visual Studio 2004 is now Visual Studio 2005, and VS2005 is now VS2006 or VS2007!), maybe we'll see less madness about all the fabulous novelties in Whidbey, Yukon and Longhorn. Looks like we won't be deploying on Longhorn before 2009. That's 5 (FIVE) years from now. Unless you live in the future, maybe you'd better focus on the now more than on the cool
newupcoming features... -
Software for Rent
Do you think a rental model for software could exist?
-
The Data Loader Object design pattern: Lightweight Containers, Inversion of Control, Abstract Factory
Sami Jaber published a new article on DotNetGuru (in French,
but to be translated soon on the English DotNetGuru- Update: now available in English) about lightweight containers such as Pico, Spring, Avalon or HiveMind. As a complete gringo to J2EE, this notion of containers and Inversion of Control was completely new to me. -
Busy week-end
Looks like that will be a busy week-end :-)
-
Method invocation raceway
Eric Gunnerson published an article in which he tests the different ways of invoking a method.
-
Tips for running a beta test
Twelve tips for you if you plan a beta test of your public product. This is from Joel, via Marcie.
-
Find Symbol in VS
La commande du jour: I just discovered the Edit | Find and Replace | Find Symbol command in Visual Studio. Yep, new things every day.
-
Software Quotes
As a followup to my post yesterday with Martin Fowler's quote, you can check out SoftwareQuotes. Great site. If you know some quotes that aren't there, you're encouraged to contribute...
Thanks Hákon for the pointer and the site. -
Visual Studio easter eggs
Are these the new easter eggs?
-
Good programmers write code that humans can understand
Citation du jour:
-
Future of blogging
Robert Scoble is giving his vision of blogging's future as requested by Dave Winer.
-
Introducing SOA (bis)
My new article has now been published in English: Getting a little closer to SOA.
-
CodeSmith 2.5 released, now with IDE
A new version of the great free code generation tool is out:
CodeSmith 2.5 has been released and, along with it, there is now a CodeSmith Professional version which includes CodeSmith Studio. CodeSmith Studio is an IDE that makes creating your own custom templates a lot easier. -
Services vs. Components
Clemens Vasters gives good definitions for component and service. Two words not precisely defined in our development word.
-
Scoble and zombies
Three important news for this Friday:
-
Introducing SOA
My new article has been published: Approaching SOA smoothly (or pragmatism required).
It is currently available only in French, but translation is pending. In the meantime, you can use your favorite fish for translation.
I'll tell you more when the English version is available. -
Scott Guthrie explains the Whidbey release timing
If you are wondering about the release timing for the next release of .NET and Visual Studio, Chris Garty's weblog is the place to go.
-
Saving Microsoft streaming media files
In case you ever wanted to save a local copy of that streaming movie trailer or funny video a friend sent, there's a neat little program called SDP (Streaming Download Project) Receiver which allows you to do this. Best of all, it's freeware.
-
Coaching on the Microsoft Application Blocks
Masterline and I are proposing a coaching session about the Microsoft Application Blocks by way of the Brainsonic company. Of course, this is in France...
-
An Extensive Examination of Data Structures
Scott Mitchell has already delivered three parts of his six-part series on data structures:
-
Architects, developers and approaches to a problem
I like that one: "Architects are a lot slower in getting a solution, especially if the problem is simple!" from Michael Platt.
Probably we could add that "Architects are much likely to come up with complex and costly solutions, especially if the problem is simple!". -
DotNetGuru in english
The famous french web site DotNetGuru now has an english version. It contains some of the articles that where published on the french version.
-
400+ tools and some stats
11 months after I started listing .NET development tools and 9 months after the list moved to its own web site, the counter is now over 400 tools and libraries and add-ins!
-
How to be part of History
-
ILMerge has been updated
Read more about ILMerge 1.0.1494.24843
-
.NOT Reflector
Looks like .NET Reflector is no longer self-reflectible.
-
Coding unit tests is even harder than you think
Jamie Cansdale has put a nice application online he calls Code Blog. This application expects you to write an implementation based on a set of unit tests.
-
389
There have been a lot of additions and updates lately at the SharpToolbox. The counter is now at 389 tools and libraries. Many additions are still in the pipe. Maybe it's time you subscribe to the RSS feeds to know when new tools are added or old ones are updated...
-
Win32 to .NET API mapping
One for your bookmarks:
-
Web browser market: is the battle over for everyone?
I don't like seeing "web browser" and "market share" in the same sentence. This is typical. This is why there is no new release of Internet Explorer. Microsoft was there to take Netscape down, but there is no Microsoft when standards compliance and user friendliness are concerned.
-
Mike Woodring's .NET Sample Page
While searching for a particular code sample, I found back Mike Woodrings great .NET sample page. This web page contains many very technical code samples which are very useful one day or another.
-
A case where interface versioning works
In some situations, interface versioning is not a problem. I'll expose a scenario in order to show you a case where it works fine and it's simple.
We'll take an application with plug-ins as an example. -
A case where interface versioning works
In some situations, interface versioning is not a problem. I'll expose a scenario in order to show you a case where it works fine and it's simple.
-
Xen, X#, ROX, Relational-Objects-XML, Research, C#, Data
Paschal collected links and information about Xen (X# relative).
-
Power of blogs / CSV files
I'm still amazed by the power of weblogs when I see that this post (Manipulating CSV files) is number two or three on search engines when you search for CSV files. What do you know, maybe my small experience with CSV files can actually help someone out. Well, I just added two links to the post for more information about the Schema.ini file since this is where people are landing when they are in need for that kind of information.
-
Webloggers haven't got a mind
It's funny to notice that some are starting to realize that geeks are humans too... The strange part is that they seem to be disappointed about that.
-
One-two, one-two, sound check... (part 2/2)
The voice recordings are available in french for this presentation about the Asynchronous Invocation Application Block.
-
Microsoft: X#? X what?
Apparently Microsoft does not want you to hear and speak about X# anymore. Seems to confirm the "there is no X#" stance.
-
One-two, one-two, sound check...
The voice recordings are available in french for this presentation about the Aggregation Application Block.
-
Yeah, just got back an Internet connection!
2048 Kbps is cool :-)
-
ILMerge - merge assemblies into one (one to rule them all?)
Michael Barnett from Microsoft Research created a tool that can be used to merge assemblies.