2008 Dec 31
1 of 66 | How to create and run Compact Framework unit tests with VS2008 and TestDriven.NET - Unlike VS2005, where you didn't have a unit testing framework for the .NET Compact Framework (and that's the reason why we had to create one for the Mobile Client Software Factory), VS2008 (Team System Test or Suite editions) comes with the same test framework you probably use for desktop applications. Rather than trying to emulate another great post on how to get the first test running on the emulator or device, just go ahead and read Device Unit Testing using Visual Studio 2008 Team System. One thing I'll add is that if you get the following exception on first run: The test adapter ('Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestAdapter, Microsoft.VisualStudio.QualityTools.Ti......
2008 Dec 12
2 of 66 | XmlSerializerFactory caching issues and leaks - You'd think that after the serious leaks people was hitting with the XmlSerializer, the "new" (in .NET 2.0!!! but which many seem to forget about, just like AVOID doing new XmlTextReader in a PDC *keynote*) XmlSerializerFactory would do away with those. Well, bad news: you need to be AS careful as you are with the XmlSerializer in order to avoid those leaks (which are BY DESIGN, BTW). Turns out that apparently the same designer made the same "by design" decisions with the XmlSerializerFactory. For those not using the factory yet: it was basically meant to be the cache of XmlSerializer types that you had to do manually in the past). If provides a factory method with all the same overloads t......
2008 Nov 19
3 of 66 | Mocking and stubbing easier than ever with Moq 2.6 - I've just released a new version of Moq which contains a few bug fixes but two extremely useful features: recursive mocks and mocked default values. Recursive mocks Quite often you have a root mock object from which other mocks should "hang" through property accesses, such as HttpContextBase.Response: you want the response object returned to also be a mock. Setting such hierarchies before this release was quite verbose:var context = new Mock<HttpContextBase>();
var response = new Mock<HttpResponseBase>();
context.Expect(c => c.Response).Returns(response.Object);
response.Expect(r => r.ContentType).Returns("application/xml");
In this new release, it's possible to jus......
2008 Nov 14
4 of 66 | XmlSerializerFactory caching issues and leaks - You'd think that after the serious leaks people was hitting with the XmlSerializer, the "new" (in .NET 2.0!!! but which many seem to forget about, just like AVOID doing new XmlTextReader in a PDC *keynote*) XmlSerializerFactory would do away with those. Well, bad news: you need to be AS careful as you are with the XmlSerializer in order to avoid those leaks (which are BY DESIGN, BTW). Turns out that apparently the same designer made the same "by design" decisions with the XmlSerializerFactory. For those not using the factory yet: it was basically meant to be the cache of XmlSerializer types that you had to do manually in the past). If provides a factory method with all the same overloads t......
2008 Oct 13
5 of 66 | Mocking and stubbing easier than ever with Moq 2.6 - I've just released a new version of Moq which contains a few bug fixes but two extremely useful features: recursive mocks and mocked default values. Recursive mocks Quite often you have a root mock object from which other mocks should "hang" through property accesses, such as HttpContextBase.Response: you want the response object returned to also be a mock. Setting such hierarchies before this release was quite verbose:var context = new Mock<HttpContextBase>();
var response = new Mock<HttpResponseBase>();
context.Expect(c => c.Response).Returns(response.Object);
response.Expect(r => r.ContentType).Returns("application/xml");
In this new release, it's possible to jus......
2008 Aug 06
6 of 66 | Mesh synchronization of KML files through FeedSync -
We've been working for the past few days on a mesh4x adapter that can synchronize a potentially big KML file at a very granular level (styles, placemarks, folders, etc.) so that you can collaboratively edit these large files without having to resolve spurious "conflicts".
From Ed's blog post:
This could be synchronized peer-to-peer (a KML on your disk to a KML on a USB drive or someone else's box) as well as via a 'cloud' web service. Note this is changing the data inside the KML, it is not just 'file sharing'. The adapter knows about KML and keeps track of versions of fine-grained elements (pushpins, placemarks, polygons) inside the same file. It is an example of how a dat......
2008 Jun 09
7 of 66 | A practical example on how to mock static classes without TypeMock -
WCF is the second biggest framework after ASP.NET that sooner or later forces you to use a static "context" property to do anything beyond the trivial stuff. ASP.NET has the HttpContext.Current, whereas WCF has the WebOperationContext.Current for example.
My friend Pablo Cibraro proves how you can quite easily make your implementations that depend on such static contexts testable without resorting to black-magic voodoo TypeMock kind of stuff. Any .NET developer can trivially introduce an indirection to make their classes testable, even if they depend on static classes.
So, don't buy a product just because you're lazy and want to avoid creating a few wrapper classes and interfaces......
8 of 66 | HP MediaSmart Server does NOT support 64 bit clients - Seriously, WWWWW TTTTT FFFFFF ?!?!?!?! From http://h10025.www1.hp.com/ewfrf/wc/document?docname=c01212412&lc=en&cc=us&dlc=en&product=3548164&lang=en: NOTE: The HP MediaSmart Server does not support client computers running 64-bit operating systems. And I already got mine, and now it's a piece of useless (though nice-looking) crap. Can't get the client connector to install. DAMN IT!!! Update: there's a way to set it up, and it's working fine so far. phiuuu!!!...
9 of 66 | Live Mesh Everywhere: open source and cross-platform -
You have probably read or listened all the (maybe a bit vague) information about the Mesh Operating Environment (MOE): a platform that will allow multiple applications and devices to participate in the Live Mesh.
Let's get to the more technical details now, and leave the end-user marketing to someone else ;).
At the core of Live Mesh is FeedSync, a public spec by Microsoft, evolved from the "old" days of SSE. It didn't get its deserved attention IMO back in the day, even though you could put together the pieces from Ray's announcement and later adoption by other products and figure out Live Mesh was coming sooner or later. Ed Jezierski got me interested in it WAY back,......
10 of 66 | Live Mesh FeedSync: an overview of the protocol under the hood -
I already mentioned why I think Live Mesh is cool and that I think the most important part of it, FeedSync, is being largely ignored by reviewers. Fortunately, there's an extensive interview with the team that goes quite deep in FeedSync and how it works. Go watch it, it's good info.
At the most basic level, FeedSync is a mechanism to associate versioning "headers" to arbitrary objects (items), and an algorithm to merge and detect conflicts based on that header information. Replace "header" with "extension element" and "arbitrary object" with "RSS/Atom Item" and you have the XML feed version of it:
<
item
xmlns:sx
='http://feedsync.org/2007/feedsync'> &......
2008 May 29
11 of 66 | Mesh synchronization of KML files through FeedSync -
We've been working for the past few days on a mesh4x adapter that can synchronize a potentially big KML file at a very granular level (styles, placemarks, folders, etc.) so that you can collaboratively edit these large files without having to resolve spurious "conflicts".
From Ed's blog post:
This could be synchronized peer-to-peer (a KML on your disk to a KML on a USB drive or someone else's box) as well as via a 'cloud' web service. Note this is changing the data inside the KML, it is not just 'file sharing'. The adapter knows about KML and keeps track of versions of fine-grained elements (pushpins, placemarks, polygons) inside the same file. It is an example of how a dat......
2008 May 19
12 of 66 | A practical example on how to mock static classes without TypeMock -
WCF is the second biggest framework after ASP.NET that sooner or later forces you to use a static "context" property to do anything beyond the trivial stuff. ASP.NET has the HttpContext.Current, whereas WCF has the WebOperationContext.Current for example.
My friend Pablo Cibraro proves how you can quite easily make your implementations that depend on such static contexts testable without resorting to black-magic voodoo TypeMock kind of stuff. Any .NET developer can trivially introduce an indirection to make their classes testable, even if they depend on static classes.
So, don't buy a product just because you're lazy and want to avoid creating a few wrapper classes and interfaces......
2008 Apr 30
13 of 66 | Live Mesh FeedSync: an overview of the protocol under the hood -
I already mentioned why I think Live Mesh is cool and that I think the most important part of it, FeedSync, is being largely ignored by reviewers. Fortunately, there's an extensive interview with the team that goes quite deep in FeedSync and how it works. Go watch it, it's good info.
At the most basic level, FeedSync is a mechanism to associate versioning "headers" to arbitrary objects (items), and an algorithm to merge and detect conflicts based on that header information. Replace "header" with "extension element" and "arbitrary object" with "RSS/Atom Item" and you have the XML feed version of it:
<
item
xmlns:sx
='http://feedsync.org/2007/feedsync'> &......
2008 Apr 24
14 of 66 | Live Mesh Everywhere: open source and cross-platform - You have probably read or listened all the (maybe a bit vague) information about the Mesh Operating Environment (MOE): a platform that will allow multiple applications and devices to participate in the Live Mesh. Let's get to the more technical details now, and leave the end-user marketing to someone else ;). At the core of Live Mesh is FeedSync, a public spec by Microsoft, evolved from the "old" days of SSE. It didn't get its deserved attention IMO back in the day, even though you could put together the pieces from Ray's announcement and later adoption by other products and figure out Live Mesh was coming sooner or later. Ed Jezierski got me interested in it WAY back, and as a result, I......
2008 Mar 14
15 of 66 | HP MediaSmart Server does NOT support 64 bit clients - Seriously, WWWWW TTTTT FFFFFF ?!?!?!?! From http://h10025.www1.hp.com/ewfrf/wc/document?docname=c01212412&lc=en&cc=us&dlc=en&product=3548164&lang=en: NOTE: The HP MediaSmart Server does not support client computers running 64-bit operating systems. And I already got mine, and now it's a piece of useless (though nice-looking) crap. Can't get the client connector to install. DAMN IT!!! Update: there's a way to set it up, and it's working fine so far. phiuuu!!!
...
2008 Mar 13
16 of 66 | HP MediaSmart Server does NOT support 64-bit clients??? - Seriously, WWWWW TTTTT FFFFFF ?!?!?!?! From http://h10025.www1.hp.com/ewfrf/wc/document?docname=c01212412&lc=en&cc=us&dlc=en&product=3548164&lang=en: NOTE: The HP MediaSmart Server does not support client computers running 64-bit operating systems. And I already got mine, and now it's a piece of useless (though nice-looking) crap. Can't get the client connector to install. DAMN IT!!!
...
2008 Mar 01
17 of 66 | Integrating SMS-based data entry with geographical visualization: a TED demo - For the past couple weeks, we've been very busy putting together a prototype that was running at an InSTEDD booth in the prestigious TED conference. Of anecdotal interest is the fact that it's the first time in TED's history that such a demo is run remotely from South America (Buenos Aires, Argentina, in this case :)).
The purpose was to show how deep-field data collection can be performed using ubiquitous and generally cheap (in some places even free!) text messages from cell phones (a.k.a. SMS), and how that data can be surfaced quite easily in geographically meaningful representations (i.e. Google Earth, Google Maps and Microsoft Virtual Earth) to support decision making in scenarios......
2008 Feb 12
18 of 66 | Beware of typeparamref XML documentation tag - Most projects use "Warnings as Errors" project-level setting together with the "XML documentation file" so that you can spot early on which areas of your public APIs are not documented or have broken links etc. in it. I've come to rely on it, especially in the face of refactoring, which even in VS2008 still doesn't refactor code documentation references. If the refactoring engine can't fix documentation references for me, I want to get compilation errors at least. Turns out that unlike the paramref and typeparam tags, typeparamref is not validated and will NOT issue warnings when it's out of sync with your codebase (i.e. you renamed a type parameter from a function or type). The following ......
2008 Jan 21
19 of 66 | Beware of typeparamref XML documentation tag - Most projects use "Warnings as Errors" project-level setting together with the "XML documentation file" so that you can spot early on which areas of your public APIs are not documented or have broken links etc. in it. I've come to rely on it, especially in the face of refactoring, which even in VS2008 still doesn't refactor code documentation references. If the refactoring engine can't fix documentation references for me, I want to get compilation errors at least. Turns out that unlike the paramref and typeparam tags, typeparamref is not validated and will NOT issue warnings when it's out of sync with your codebase (i.e. you renamed a type parameter from a function or type). The following ......
2007 Dec 17
20 of 66 | Forget about writing Atom or RSS XML handling code ever again - A *very* welcome addition to .NET 3.5, which just went RTM for MSDN subscribers and trial for the rest before general availability early next year: System.ServiceModel.Syndication. This namespace, which lives in the System.ServiceModel.Web.dll assembly which provides the WCF Syndication functionality, contains useful classes for working with feeds and items. I won't go over the Architecture of Syndication, How the WCF Syndication Object Model Maps to Atom and RSS, How to: Create a Basic RSS Feed, How to: Create a Basic RSS Feed, How to: Expose a Feed as both Atom and RSS or the basics of Syndication Extensibility. All those links provide enough to get you started. The typical usage is: Cre......
21 of 66 | Windows Live Writer RTM: a missed opportunity on extensibility - The Window Live suite final version was finally released. I've been following quite closely its evolution since Beta2, and have done a quite complicated (although not from the point of view of the end user) plugin which goes quite deep into WLW libraries (deeper than I dare to confess, if you know what I mean ;)). What works: Plugins are easy to author for simple cases: adding "body" content via a plugin is very easy. Pretty much anybody can cook a plugin in a matter of minute.s Good deploy options: can deploy plugins to WLW\Plugins folder or to your own folder anywhere on disk. This is good if your company plans to provide many plugins, and you want to avoid polluting the "main" plugins ......
2007 Nov 22
22 of 66 | Forget about writing Atom or RSS XML handling code ever again - A *very* welcome addition to .NET 3.5, which just went RTM for MSDN subscribers and trial for the rest before general availability early next year: System.ServiceModel.Syndication. This namespace, which lives in the System.ServiceModel.Web.dll assembly which provides the WCF Syndication functionality, contains useful classes for working with feeds and items. I won't go over the Architecture of Syndication, How the WCF Syndication Object Model Maps to Atom and RSS, How to: Create a Basic RSS Feed, How to: Create a Basic RSS Feed, How to: Expose a Feed as both Atom and RSS or the basics of Syndication Extensibility. All those links provide enough to get you started. The typical usage is: Cre......
2007 Nov 16
23 of 66 | Windows Live Writer RTM: a missed opportunity on extensibility - The Window Live suite final version was finally released. I've been following quite closely its evolution since Beta2, and have done a quite complicated (although not from the point of view of the end user) plugin which goes quite deep into WLW libraries (deeper than I dare to confess, if you know what I mean ;)). What works: Plugins are easy to author for simple cases: adding "body" content via a plugin is very easy. Pretty much anybody can cook a plugin in a matter of minute.s Good deploy options: can deploy plugins to WLW\Plugins folder or to your own folder anywhere on disk. This is good if your company plans to provide many plugins, and you want to avoid polluting the "main" plugins ......
2007 Jul 19
24 of 66 | QNames in attribute values considered useful - Quite some time ago (around XML raise as a universal data format), the W3C seemed to be in doubt of the value of QNames (prefix + local name) in attribute values. One very clean evidence of this inconsistency around the best practice on QNames on attribute values is the W3C XML Schema specification, which was pretty happy with QNames in attributes:<?xml version="1.0" encoding="utf-8"?><xs:schema targetNamespace="my-schema" xmlns="my-schema" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element nam......
2007 Jul 03
25 of 66 | Extending VS just got a TON easier - If you're extending Visual Studio using the VSSDK, you probably know that it's no trivial task. If you were thinking about doing some VS extensibility stuff but it all seemed a daunting task, look no further. Both the experienced as well as the novice VS extensibility developers will find the VSIPFactory a worthwhile addition on their toolbox. What's even more valuable, it comes with complete source code!Just head over to the homepage, it's filled with features and screenshots that should be enough to get you more than excited :)Pablo (the project owner) is a hardcore developer who has been doing VS extensibility for years. He's the man behind the Web Service Software Factory and some featu......
26 of 66 | Linq to XSD: strong-typed XML data models! - I'm very pleased to see the direction the XML team took with the new Linq to XSD preview. Basically, it's xsd.exe, but generating classes on top of Linq to XML (or XLinq, XElement and friends). This is pretty cool, because it gives you all the power and productivity of a strong-typed object model, while still allowing for the freedom of manipulating the underlying untyped XML.
The crucial point there is that the typed model is pretty much an adapter on top of untyped XML, therefore both will always be in sync. The semantics for the insertion and appending of content data to the underlying untyped model is sound and I'm sure it will be even better by the time it ships.
You can now tr......
27 of 66 | Open source implementation of Simple Sharing Extensions (SSE) is available now! - SSE is an XML micro-format and corresponding sync algorithm that can be embedded in RSS or Atom feeds to allow for two-way synchronization among peers. More important: the algorithm allows for mesh-style synchronization between nodes, with no concept of a "master" copy. This can be game-changing for data-exchange and app-level data interop. But only the future will tell. SSE was initially announced by Ray Ozzie (Microsoft's CTO). Ed Jeziersky brought this technology to my attention (thanks Ed!), and I soon got pretty excited given its potential. It had been quite a success in Strong Angel III too. You can learn more about SSE by watching the MSDN TV video and ......
2007 Feb 09
28 of 66 | Linq to XSD: strong-typed XML data models! - I'm very pleased to see the direction the XML team took with the new Linq to XSD preview. Basically, it's xsd.exe, but generating classes on top of Linq to XML (or XLinq, XElement and friends). This is pretty cool, because it gives you all the power and productivity of a strong-typed object model, while still allowing for the freedom of manipulating the underlying untyped XML. The crucial point there is that the typed model is pretty much an adapter on top of untyped XML, therefore both will always be in sync. The semantics for the insertion and appending of content data to the underlying untyped model is sound and I'm sure it will be even better by the time it ships. You can no......
2006 Nov 03
29 of 66 | PowerShell needs an XML namespace before it's too late - PowerShell exposes some pretty cool features via XML files, such as custom formatting and type extensions.The
only problem I see right now is that those XML files have no namespace
whatesoever. That may sound useless to you, but it's the very reason
why you don't get ANY intellisense/validation support for those files
from withing Visual Studio.Vote for the suggestion before it's too late (if it's not already :((()
Share this post: Email it! | bookmark it! | digg it! | reddit!...
2006 Jun 09
30 of 66 | VS2005 XML Editor rocks! Navigating type definitions from instance documents! - Note: this entry has moved.
Today, I was working on some GAX software factory stuff. I just couldn't remember if a particular element I had at hand in an instance document supported xs:anyAttribute or not in the corresponding schema. So I though "how handy it would be if I could press F12 (Go to Definition) and be taken to the schema for it". I tried it:
Imagine my surprise when I saw:
Quite unexpected for me, I was presented with the XSD for the document with the relevant element definition focused under the cursor! Now, the element happens to he a ref to the definition which is somewhere else. So I thought "how handy it would be if I could press F12 and be taken to the ......
31 of 66 | VS2005 XML Editor rocks! Navigating type definitions from instance documents! - Today, I was working on some GAXsoftware factory stuff. I just couldn't remember if a particular element I had at hand in an instance document supported xs:anyAttribute or not in the corresponding schema. So I though "how handy it would be if I could press F12 (Go to Definition) and be taken to the schema for it". I tried it:
Imagine my surprise when I saw:
Quite unexpected for me, I was presented with the XSD for the document with the relevant element definition focused under the cursor! Now, the element happens to he a ref to the definition which is somewhere else. So I thought "how handy it would be if I could press F12 and be taken to the definition of ......
2006 May 25
32 of 66 | AJAX may be the biggest waste of time for the Web - Note: this entry has moved.
AJAX is OLD. It's been around for a decade. It's based on the techniques that exist almost since the web exploded: HTML, Javascript. Both have served the Web well. Both are bound to die.
Seriously: do you really want to develop rich apps using loads of javascript, XML and HTML manipulations? Isn't that more or less what you have been doing for the past decade? And a decade in internet time is a LOT of time!
I don't think the future of the web lives in HTML and forms and javascript. The future of the web should be fully inmersive 3D worlds where you can hang around, look at things, interact with other people/buyers, etc. Imagine what Amazon would be with s......
2006 May 09
33 of 66 | p&p for smart devices: solving the multiple resolution/orientation problem - Note: this entry has moved. The reality of mobile development (specially if you're creating a product) is not so different to that of web development: the clients that will be using the application may not be under your control, and they may support different sets of features and capabilities. In the ASP.NET world, this was solved by the set of mobile-enabled controls, that basically rendered different markup depending on the device. Even in ASP.NET v2.0, this solution (the so-called control adapters architecture) is still in its infancy and not fully completed in its integration with the "standard" controls. In the mobile development world, the problem is not even in its infancy. Up to kn......
2006 Mar 10
34 of 66 | How to load a DSL domain model instance file programmatically - Note: this entry has moved. Say you have a custom DSL file in a solution. Say you want to process the model on that file using GAT or an AddIn or even your custom application code at runtime. You need to deserialize that XML (yes, it’s all XML in the end) into an instance of your domain model (root). You will need two pieces of information: the .NET type of the domain model (that is, the parent of your domain model root concept) and its the corresponding designer. The following code does the trick, allowing you to deserialize a model and return the first instance of the given domain model type (i.e. the model root):public static TRootConcept GetModelRoot<TRootConcept>(string mo......
2006 Mar 09
35 of 66 | How to load a DSL domain model instance file programmatically - Note: this entry has moved. Say you have a custom DSL file in a solution. Say you want to process the model on that file using GAT or an AddIn or even your custom application code at runtime. You need to deserialize that XML (yes, it’s all XML in the end) into an instance of your domain model (root). You will need two pieces of information: the .NET type of the domain model (that is, the parent of your domain model root concept) and its the corresponding designer. The following code does the trick, allowing you to deserialize a model and return the first instance of the given domain model type (i.e. the model root):public static TRootConcept GetModelRoot<TRootConcept>(string mo......
2006 Mar 02
36 of 66 | How to add a VS assembly reference without hardcoding its path - Note: this entry has moved.Sometimes, you want to add a reference to an assembly provided by VS (that is, something inside the %ProgramFiles%\Microsoft VisualStudio 8.0 folder) that doesn't show up in the Add Reference dialog (there are lots of very interesting stuff you can use that fall under these category, such as Microsoft.Data.ConnectionUI which I used in the GAX TechEd HoL and allows you to create an "Add Data Connection" clone complete with support for .NET providers, connection string builders, test connection, etc.). The trick is to browse for the reference as usual using the Add Reference dialog, save the project and open it in notepad (or your favorite XML editor). Look for your......
37 of 66 | How to add a VS assembly reference without hardcoding its path - Note: this entry has moved. Sometimes, you want to add a reference to an assembly provided by VS (that is, something inside the %ProgramFiles%\Microsoft VisualStudio 8.0 folder) that doesn't show up in the Add Reference dialog (there are lots of very interesting stuff you can use that fall under these category, such as Microsoft.Data.ConnectionUI which I used in the GAX TechEd HoL and allows you to create an "Add Data Connection" clone complete with support for .NET providers, connection string builders, test connection, etc.). The trick is to browse for the reference as usual using the Add Reference dialog, save the project and open it in notepad (or your favorite XML editor). Look for yo......
2006 Jan 13
38 of 66 | XLinq: is XML embedded in a host language a good idea or a terrible one? - Note: this entry has moved. During the MVP Summit, and through various articles and blog posts, Microsoft has been trying to get community feedback on the proposed feature of integrating XML as a first-class concept into a core language (such as VB.NET). It seems so natural, right? After all, they are not the first ones to propose such a thing. You're dealing with lots XML in your application, what else could you ask than to be able to do something like the following?:Dim CountriesWithCapital As XElement = _ <Countries> <%= Select <Country Name=(Country.Name) &nbs......
39 of 66 | XLinq: is XML embedded in a host language a good idea or a terrible one? - Note: this entry has moved. During the MVP Summit, and through various articles and blog posts, Microsoft has been trying to get community feedback on the proposed feature of integrating XML as a first-class concept into a core language (such as VB.NET). It seems so natural, right? After all, they are not the first ones to propose such a thing. You're dealing with lots XML in your application, what else could you ask than to be able to do something like the following?:Dim CountriesWithCapital As XElement = _ <Countries> <%= Select <Country Name=(Country.Name) &nbs......
2006 Jan 07
40 of 66 | How to get services from the VS DTE (using System.IServiceProvider) - Note: this entry has moved. VS is heavily based on a component model and container hierarchy of services (yes, that`s most probably where System.ComponentModel came from...). Even though there`s no comprehensive documentation of all services available and from which contexts, every now and then I find the need to ask for services, but all I`ve got at hand is either a EnvDTE.ProjectItem or Project, or just the DTE. So, how do you use the familiar System.IServiceProvider to ask for services The trick is to get the latest VS SDK, add a reference to Microsoft.VisualStudio.OLE.Interop.dll and Microsoft.VisualStudio.Shell.dll and use the following simple code:EnvDTE.Project project; // this is wh......
41 of 66 | How to reuse Windows Workflow Foundation (WF) cool type browser editor in your components - Note: this entry has moved. Windows Workflow Foundation (WF) comes with a very cool UITypeEditor that allows selection of a type in the current project or any of its references: Its type is System.Workflow.ComponentModel.Design.TypeBrowserEditor defined in the System.Workflow.ComponentModel.dll assembly. However, if you try to use it "attach" it directly to one of your components properties, you will get an error saying "The service `System.Workflow.ComponentModel.Compiler.ITypeProvider` must be installed for this operation to suceeed. Ensure that this service is available.": Being a general fan of the ComponentModel, I knew what was this about, and started working on providing the WF type ......
42 of 66 | How to reuse Windows Workflow Foundation (WF) cool type browser editor in your components - Note: this entry has moved. Windows Workflow Foundation (WF) comes with a very cool UITypeEditor that allows selection of a type in the current project or any of its references: Its type is System.Workflow.ComponentModel.Design.TypeBrowserEditor defined in the System.Workflow.ComponentModel.dll assembly. However, if you try to "attach" it directly to one of your components properties, you will get an error saying "The service 'System.Workflow.ComponentModel.Compiler.ITypeProvider' must be installed for this operation to suceeed. Ensure that this service is available.": Being a general fan of the ComponentModel, I knew what was this about, and started working on providing the WF ty......
43 of 66 | How to reuse Windows Workflow Foundation (WWF) cool type browser editor in your components - Note: this entry has moved. WWF comes with a very cool UITypeEditor that allows selection of a type in the current project or any of its references: Its type is System.Workflow.ComponentModel.Design.TypeBrowserEditor defined in the System.Workflow.ComponentModel.dll assembly. However, if you try to use it "attach" it directly to one of your components properties, you will get an error saying "The service `System.Workflow.ComponentModel.Compiler.ITypeProvider` must be installed for this operation to suceeed. Ensure that this service is available.": Being a general fan of the ComponentModel, I knew what was this about, and started working on providing the WWF type browser editor with the serv......
44 of 66 | XInclude breaks VS 2005 XML editor intellisense - Note: this entry has moved. A while back I`ve reported as a bug that VS XML editor breaks if you use XInclude elements in the document. You may ask: "who cares .NET does not support XInclude anyway!". It just so happens that the recently released version of the Guidance Automation Extensions (GAX) include the Mvp.Xml library, which adds support for XInclude in your guidance package configuration file. So, in order to benefit from the better manageability and modularity of you guidance package configuration, you have to pay the price of losing intellisense :(... As a workaround, you can keep a dummy XML file around in the solution that you use for authoring the recipe with full intellisense,......
2005 Dec 19
45 of 66 | Download full DVD set from PDC05 - Of course you already knew that the PDC05 sessions are available online, right (although not for much longer, I heard). But you just don`t have the time to browse the list to find the interesting ones