Archives
-
Sandcastle alpha available, NDoc discontinued
Microsoft has released an alpha version of its technical reference documentation tool: Sandcastle.
Sandcastle is presented as a "documentation compiler for managed class libraries". The alpha is available for download. -
Why LINQ will succeed
In the official Linq forum, Joe Albahari presents the reasons why he thinks Linq will succeed:
I agree. Great summary.- LINQ syntax beats SQL syntax. SQL is flawed in that queries become exponentially difficult to write as their complexity grows. LINQ scales much better in this regard. Once you get used to it, it's hard to go back.
- Database queries are easily composable. You can conditionally add an ORDER BY or WHERE predicate without discovering at run-time that a certain string combination generates a syntax error.
- More bugs are picked up at compile-time.
- Parameterization is automatic and type-safe.
- LINQ queries can directly populate an object hierarchy.
- LINQ to SQL provides a model for provider independence that might really work.
- LINQ significantly cuts plumbing code and clutter. Without sweeping stuff under the carpet, like Workflow or Datasets. This is a credit to the design team.
- C# hasn't suffered in the process (in fact, it's gained).
Cross-posted from http://linqinaction.net -
New dates for Visual Studio 2003 and 2005 Service Packs
I've just noticed that the Visual Studio "Servicing" web page has been updated with new release dates for the Visual Studio 2003 and 2005 service packs:
-
Sandcastle, Microsoft's replacement for NDoc
Microsoft listened to our requests. It has announced its upcoming tool for generating MSDN-like documentation from your .NET code. The codename is Sandcastle and the tool is presented as a "Documentation Compiler". It should work the same way NDoc does, except it will support .NET 2.
The first release has been delayed and is now planned for August, as part of the next CTP release of the Visual Studio SDK. -
Library of free data models
The Library of Free Data Models provides "kick-start" database models for free. It can be useful to build examples or quickly start new database schemas.
-
Another series of Linq introductory posts
If you want to learn more about Linq, Bill Wagner has a great series over at his blog. Here is a link to the latest post, which includes links to all the other parts. Enjoy!
Cross-posted from http://linqinaction.net -
Strongly-typed reflection redux
As a followup to my last post, you can read Daniel Cazzulino's post in which he presents a solution for strongly-typed reflection that complements ayende's approach. Of course this implementation has limitations of its own, the major one being that it's based on lambda expressions and expression trees, two features that won't see the light of day before the next version of C# (sometime in 2007?).
-
Static method reflection
.NET reflection features are powerful and this is really what makes it a powerful platform. We don't use reflection everyday, but when we do it's really useful.
Don't you hate it though when you have to write code like this?:
MethodInfo method = typeof(MyClass).GetMethod("MyMethod");
The problem with this code is that we use a string to identify the method, which means that we don't get compile-time validation.
Ayende has an interesting approach to this problem. He gives you a solution that allows writing the following code instead:
MethodInfo method = GetMethod<int, string>(MyClass.MyMethod);
In this case, everything is strongly-typed and checked by the compiler.
Of course, nothing is perfect and this solution suffers from a number of limitations, but it's an interesting approach anyway. The limitations:- it works only with static methods,
- the methods need to be accessible (public or in your code's reach),
- we can't use a similar approach for properties.
Update: Daniel Cazzulino has another option that is more complete.