CodePlexProject Hosting for Open Source Software
I am happy to announce that we have posted an updated version of Sandcastle to Codeplex. I know this was a very long wait for everyone.
This release brings Sandcastle to parity with the code that was used to generate the Visual Studio 2010 and .NET Framework 4 documentation. It contains over 100 bug fixes and changes that were made over the last 2 years and adds full support for building API documentation for .NET 4 projects.
We also contracted with ComponentOne to add support for producing the Microsoft Help Viewer 1.0 (MSHC) output target. Sandcastle can now produce Xhtml files that can be cabbed up and consumed by the new Microsoft Help System, which was released with Visual Studio 2010.
For our next release, we plan on adding support for the output of topics with the MSDN Lightweight look and feel. For the VS 2010 docs that we shipped, this new styling was added in post-production by MSDN, which is why it isn't already part of the Sandcastle presentation layers.
We released the source code for Sandcastle a year ago (http://sandcastle.codeplex.com/SourceControl/ListDownloadableCommits.aspx) supporting Visual Studio 2010 Beta 1 documentation. After this release we were extremely busy in releasing the new Help Viewer for VS 2010 Beta2, CTP and RTM. In addition we launched "lightweight" view as default for MSDN library.
Thanks for all the community support, feedback and patience during the past 11 months.
I am currently working with my colleague, Darren Parker (pictured here!) to manage Sandcastle releases in codeplex. Moving forward Darren will manage Sandcastle releases to Codeplex and communication with the community through this blog. I will be assisting Darren with the blogs and releases.
Darren is currently working on a new release of Sandcastle with the following enhancements:
· Sandcastle will generate cabs (MSHC files) as output for integration with the new Microsoft Help Viewer that shipped with VS2010.
· Bug fixes and functionality updates to accurately document VS 2010 and .NET 4.
Sandcastle Longer term:
Per Darren’s post here, we are already working on a new content build system and have plans to also release this as Sandcastle vNext. Darren will provide more details about this in a later post.
Sandcastle Team at TechED 2010:
Darren, myself and David Wright (architect for Sandcastle) will be at TechEd 2010 in New Orleans (June 7 through10). If any of you are interested in meeting up with us that week, let me know. We won't have a booth, but would love to meet some of you for drinks, dinner etc. and at the same time talk about the current state and future of Sandcastle.
Per my previous blog post http://blogs.msdn.com/sandcastle/archive/2009/01/15/sandcastle-update.aspx, I have released the source code for the latest version of Sandcastle at http://sandcastle.codeplex.com/SourceControl/ListDownloadableCommits.aspx. This release was used to ship Visual Studio 2010 Beta 1 documentation (http://msdn.microsoft.com/en-us/library/dd831853(VS.100).aspx)
I am in the process of generating the msi and will be providing additional details on the release shortly. Please expect another blog with details by early next week. Cheers.
I am very pleased to announce the availability of CCI. Herman Venter from Microsoft Research released CCI at http://ccimetadata.codeplex.com/ . CCI is a set of components (libraries) that provide some of the functionality that compilers and related programming tools tend to have in common. The metadata components provide functionality for reading, writing and manipulating Microsoft Common Language Runtime (CLR) assemblies and debug files. The functionality provided by these components subsumes the functionality provided by System.Reflection and System.Reflection.Emit.
In Sandcastle we use CCI for assembly reflection. MRefBuilder (actually, CCI) searches the current directory for dependency assemblies, as well as any directories specified by the /dep option. CCI is also used by FxCop. CCI does not attempt to open a dependency assembly until some information from that assembly is needed. We use CCI because technically, CCI never “loads” any assembly; it just parses the data in the assembly file. That is why CCI can reflect over a foreign mscorlib while System.Reflection cannot.For more information, visit the http://ccimetadata.codeplex.com/website. There you will find detailed specifications, documentation, and myriad of other informaion. You can also get the latest release and source code at http://ccimetadata.codeplex.com/.
I am very pleased to announce the availability of Meta Numerics project. My colleague and Sandcastle architect David Wright released Meta Numerics at http://metanumerics.codeplex.com/. The Meta.Numerics library brings scientific computing to the .NET platform. It offers an object-oriented API for matrix algebra, advanced functions of real and complex numbers, and statistics.For more information, visit the http://www.meta-numerics.net website. There you will find detailed specifications, documentation, and myriad web calculators illustrating the capabilities of the Meta.Numerics library. You can get the latest release and source code at http://metanumerics.codeplex.com/.
I am very pleased to be a part of the Seventeenth Annual WritersUA Conference for Software User Assistance. At this conference I am presenting a session on Sandcastle and my colleague April will be presenting Help3. I have provided screen shots on Help3 below. The next release of Sandcastle will support Help 3 attributes. I will publish my slides from this conference later this week.
Help 3 Viewer for Visual Studio 2010 is shaping up well. We did demos at PDC and at the MVP summit. I will blog details on Help 3 attributes shortly. Latest screen shots from Help3 vewer are posted below:
Let me know if you plan on being at this conference. I would love to meet with you. Cheers.
Please see my post at http://blogs.msdn.com/innovation/archive/2009/03/26/launching-low-bandwidth-loband-beta-for-long-haul.aspx.
I was very pleased to be a part of 2009 Global MVP summit this year. We hosted three help industry MVPs last week. Eight Help sessions over two days by various speakers were well received. We received great feedback during these sessions. Rob Chandler has posted few pictures from this summit here - http://www.helpmvp.com/Home/photos/2009-summit and is connecting us through a Help3 Facebook group here - http://www.facebook.com/group.php?gid=70197449895.
Help 3 Viewer for Visual Studio 2010 is shaping up well. We did demos at PDC and at the MVP summit. I will blog details on Help 3 attributes shortly.
Sandcastle:I will release a version of Sandcastle supporting Help 3 attributes after we ship Beta 1 of Visual Studio 2010. Changes!I have a new role within Microsoft and it's challening/exciting! I will be leading the program management efforts at MSDN/TechNETPublishing System (MTPS). In addition to Sandcastle efforts I will be driving innovation into MSDN/TechNET/Expression Library. I plan on starting weekly blogs about my new area at http://blogs.msdn.com/innovation/. Hope you all can join me at the Innovation blog.
I will release a version of Sandcastle supporting Help 3 attributes after we ship Beta 1 of Visual Studio 2010.
Changes!I have a new role within Microsoft and it's challening/exciting! I will be leading the program management efforts at MSDN/TechNETPublishing System (MTPS). In addition to Sandcastle efforts I will be driving innovation into MSDN/TechNET/Expression Library. I plan on starting weekly blogs about my new area at http://blogs.msdn.com/innovation/. Hope you all can join me at the Innovation blog.
I have a new role within Microsoft and it's challening/exciting! I will be leading the program management efforts at MSDN/TechNETPublishing System (MTPS). In addition to Sandcastle efforts I will be driving innovation into MSDN/TechNET/Expression Library. I plan on starting weekly blogs about my new area at http://blogs.msdn.com/innovation/. Hope you all can join me at the Innovation blog.
Per my earlier blog, I posted the source code for Sandcastle at http://www.codeplex.com/Sandcastle/SourceControl/ListDownloadableCommits.aspx. This will enable you to browse the source code or access it using the methods described here .
The source code posted is the same version published previously in a ZIP format. With the latest release fixed the following issues reported in the Zip format:
· I did not provide a SLN file for the projects. You could create your own, but it would be more convenient to provide one in the source distribution.
· In the SLN file created from the previous source distribution, users encountered the following when trying to build this way:
o Each project has TFS source control information which is not valid for people outside my team. This will be stripped for the source distribution.
o Most projects specify a strong name key file which doesn't exist in the package. The project files should disable signing, or a dummy key.snk should be provided.
o The MoreComponents project doesn't build; has errors such as "'Microsoft.Ddue.Tools.BuildComponent' does not contain a constructor that takes '1' arguments". It seems that this is a non-essential project and maybe should not be included at all.
o The MrefBuilderStatic project doesn't build; has errors such as "The type or namespace name 'RootFilter' could not be found (are you missing a using directive or an assembly reference?)". I will remove this project.
o BuildAssemblerConsole references the CommandLine project at an incorrect path.
o The BuildAssembler and BuildAssemblerConsole projects appear to be duplicates and BuildAssemblerConsole doesn't build.
· After unloading the problematic projects, users able to get everything built. Unfortunately, there are 115 warnings in the build. These should really be fixed as a best practice.
· There are lots of Code Analysis (FxCop) warnings. We should set a good example by eliminating such warnings from the code we ship.
· There are many files that pertain to the NT build system and should be excluded from the source distribution (makefile, makefile.inc, placefile, etc.).
Hope this helps. Cheers.
Thank you for using Sandcastle and providing with valuable feedback. It is always good to get emails from this community about Sandcastle. Today Microsoft MVP Michael Cummings, principal consultant @ http://www.magenic.com/, contacted me about a thread on the MVP newsgroups that rumors the Sandcastle project has been abandoned. I would like to provide an update on where we are with Sandcastle project. We are currently working on updating Sandcastle to ship content for VS 2010 Help3 viewer.
After posting Sandcastle source at http://www.codeplex.com/sandcastle my team worked on shipping MSDN Library for VS2008 SP1. We made lot of improvements to MSDN library setup time by componentizing the .NET Framework content. I will post a separate blog about this fun project. Here are some interesting stats from this project:
VS 2008 MSDN Library
· Topics: 838,708
· VS and Frameworks Only Topics: 215,695
· Install time 29 minutes – 19 minutes for HxMerge. (Note: this is the time it takes to do a full install of all MSDN library content, not just VS and Frameworks docs)
VS 2008 SP1 MSDN Library
· Topics: 872,199
· VS and Framework Only Topics: 336,050
· Install time 13 minutess – 5 minutes for HxMerge (Note: this is the time it takes to do a full install of all MSDN library content, not just VS and Frameworks docs).
The Overall setup time for VS 2008 SP1 improved by 55% over Vs 2008 and the HxMerge time improved by 74%. The machine used for the above testing was a Dell/Optiplex 2.4Ghz, 1GB RAM with 80GB HD.
Sandcastle update in the next 2 weeks:
Few months ago I published the source code for Sandcastle in a ZIP format at http://www.codeplex.com/sandcastle . By the end of this month, I plan on updating the source code in the TFS server of codeplex to fix the following:
Sandcastle update after VS 2010 Beta1:
After we ship VS 2010 Beta 1, I will post an updated version of sandcastle that we will be using for shipping VS 2010 Beta 1 MSDN library. This will include the following features and several bug fixes:
1. Version we will be using to ship .NET Framework 4.0
2. Support for F# syntax
3. XSD documenter
4. Attributes supporting Microsoft Help 3 viewer.
Happy New Year. Cheers.
We are proud to announce that the Beta release of the Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1! The Windows SDK provides documentation, samples, header files, libraries, and tools designed to help you develop Windows applications using native (Win32®) and/or managed (.NET Framework) technologies. The SDK is a large product spanning both Windows and Developer Division and depends on the collaborative efforts of many people across Microsoft.
· The Windows SDK is available for customers to install as an ISO
This SDK release supports Windows 7 Beta, Windows Server 2008 R2 Beta, Windows Server 2008, .NET Framework 3.5 Service Pack 1, and Windows Vista SP1 and is compatible with Visual Studio 2008 SP1; including Visual Studio Express Editions.
The following is a small sampling of what’s in this Beta SDK.
o New Windows 7 Developer Guide and Quality cookbook
o 28% of the docset updated in Beta (191 files)
· Samples - Nearly 250 samples added and refreshed during Beta
· Headers/libraries – Over 100 new headers and libraries added to the SDK
· Tools – 7 new tools added to SDK during Beta
· The Windows 7 SDK headers, libs, and tools that can integrate with VS2008 when both the SDK and VS2008 are installed
· Visual Studio 2008 SP1 C++ command line compiler toolset and matching CRT
Stayed tuned to the Windows SDK blog as well as the Windows SDK MSDN Developer Center over the coming weeks for more information about the Windows SDK. As always, please look over the Release Notes for a description of known issues before you install the SDK.
I will be posting an update about Sandcastle and the next release shortly. Cheers.
I am very pleased to announce that we have added Russian to the list of localized Visual Studio releases.This is a particularly exciting release as it illustrates what a great partnership Microsoft has built up with the local developer community and academia in Russia. It is remarkable that this all started as a community localization project, first highlighted by the private Express LangPack Beta release that went out to our MVPs and a partner university in Russia at the end of last year. This is a showcase for how a community driven project led into a full grown product release.
MSDN online library start page for Russian is available here: http://msdn.microsoft.com/ru-ru/library/default.aspx.
Here are some of the download center links:
Visual Studio Team Suite Trial (90 days) - http://www.microsoft.com/downloads/details.aspx?FamilyId=D95598D7-AA6E-4F24-82E3-81570C5384CB&displaylang=ru
Visual Studio Team Foundation Server Trial (90 days) - http://www.microsoft.com/downloads/details.aspx?FamilyId=B0155166-B0A3-436E-AC95-37D7E39A440C&displaylang=ru
Visual Studio Professional Trial (90 days) - http://www.microsoft.com/downloads/details.aspx?FamilyId=83C3A1EC-ED72-4A79-8961-25635DB0192B&displaylang=ru
VSTS 2008 Test Load Agent Trial (90-Day Trial) - http://www.microsoft.com/downloads/details.aspx?FamilyId=572E1E71-AE6B-4F92-960D-544CABE62162&displaylang=ru
MSDN Library for Visual Studio 2008 - http://www.microsoft.com/downloads/details.aspx?FamilyId=6FF3BC60-32C8-4C22-8591-A20BF8DFF1A2&displaylang=ru
NETFX 3.5 - http://www.microsoft.com/downloads/details.aspx?FamilyId=333325FD-AE52-4E35-B531-508D977D32A6&displaylang=ru
NETFX 3.5 Language Pack - http://www.microsoft.com/downloads/details.aspx?FamilyId=C78987B9-97F4-455F-BEE7-F6BFA4AD774E&displaylang=ru
I am very pleased to announce the availability of the Sandcastle project with source code at http://www.codeplex.com/Sandcastle. The source code can be downloaded from the Releases tab at http://www.codeplex.com/Sandcastle/Release/ProjectReleases.aspx?ReleaseId=13873 and also from the Source code tab at http://www.codeplex.com/Sandcastle/SourceControl/ListDownloadableCommits.aspx.
Last month I blogged about the removal of Sandcastle project from Codeplex at http://blogs.msdn.com/sandcastle/archive/2008/06/06/sandcastle-project-removed-from-codeplex.aspx. and asked for your feedback. It is very clear from the emails I recieved from all of you and from various blogs that publishing the source code is the right thing to do for the Sandcastle customers. I thank you for this thread http://www.codeplex.com/Sandcastle/Thread/View.aspx?ThreadId=29085 and for all the great community efforts and support around Sandcastle and it's adoption rates.
I also would like to thank Sam Ramji, Scott Stein and Sara Ford from Microsoft for being strong advocates of the open source community.
Thank you again for all for your patience. Please feel free to contact me (email@example.com) directly regarding any questions. Cheers.
API filters in Sandcastle is a very useful feature and allows namespaces, types, and members to be removed or shown in the reflection XML file, and ultimately in the compiled docs. They can be set up so that only certain topics are dropped, or so that a parent type has all children hidden with only specific ones shown. The API filter configuration can be found in ProductionTools\MRefBuilder.config file and is contained within an apiFilter element.
If no apiFilter element exists the default is to expose everything. This is the same as having an empty apiFilter element that is exposed such as
Setting expose to false will hide everything, which is useful if you wish to expose only certain namespaces, types, or methods.
Filters inherit from their parent filter, with the exception of nested types which look to their parent type(s) before the namespace filter.
In the example below, only ThirdNamespace will be exposed. All other namespaces will be left out. Also, all types in ThirdNamespace and methods within those types will be shown. Types and methods in other namespaces will be left out.
<namespace name="ThirdNamespace" expose="true"></namespace>
This filter shows everything except for ThirdNamespace and it types and members.
<namespace name="ThirdNamespace" expose="false"></namespace>
If a filter is exposed within a non-exposed filter it will still be shown. The example below results in only the single method being exposed along with its declaring types. No other children of the declaring types are exposed. Without the filter for MyMethod, or with the filter set to false, everything will be hidden.
<namespace name="MyNamespace" expose="false">
<type name="MyClass" expose="false">
<member name="MyMethod" expose="true" />
A filter to show all types within MyClass, but leave out MyMethod and MyMethod2 would look like this
<type name="MyClass" expose="true">
<member name="MyMethod" expose="false" />
<member name="MyMethod2" expose="false" />
Nested types inherit from their parent type. If a type is nested within other nested types it will go through the parent types until it finds a filter.
In the examples below are filters for a class with contains a class called MyNestedNestedClass which is nested within MyNestedClass. MyNestedClass is nested with a class called MyClass.
MyNamespace - MyClass - MyNestedClass -MyNestedNestedClass
This filter will hide everything except for MyNestedClass and its types. Since we set MyNestedNestedClass to be hidden it will not show up. MyClass is also hidden since MyNamespace is not exposed.
<type name="MyNestedClass" expose="true"></type>
<type name="MyNestedNestedClass" expose="false"></type>
Here MyNestedNestedClass will also be shown since its declaring type (MyNestedClass) is shown.
<type name="MyNestedClass" expose="true"></type>
Exposing members within nested types works the same as with regular types. Using this filter only MyNestedMethod will be shown, leaving MyNestedNestedClass hidden, and all other members within MyNestedClass.
<type name="MyNestedClass" expose="false">
<member name="MyNestedMethod" expose="true" />
The following example filters out three namespaces, and 11 types within the System namespace.
<namespace name="System" expose="true">
<type name="BrowsableAttribute" expose="false" />
<type name="DefaultMemberAttribute" expose="false" />
<type name="IntPtr" expose="false" />
<type name="MulticastDelegate" expose="false" />
<type name="NonScriptableAttribute" expose="false" />
<type name="ParamArrayAttribute" expose="false" />
<type name="RuntimeFieldHandle" expose="false" />
<type name="RuntimeTypeHandle" expose="false" />
<type name="UIntPtr" expose="false" />
<type name="Void" expose="false" />
<namespace name="System.ComponentModel" expose="false" />
<namespace name="System.Runtime.CompilerServices" expose="false" />
<namespace name="System.Runtime.InteropServices" expose="false" />
I got several emails, after my previous post at http://blogs.msdn.com/sandcastle/archive/2008/06/06/sandcastle-project-removed-from-codeplex.aspx, asking for an alternative download location of Sandcastle V 2.4.10520 until we close in on our decision about the future release location of Sandcastle. Thank you for all your feedback on our options and for providing mirror sites for downloading Sandcastle.
I have posted the recent release of Sandcastle temporarily at http://www.microsoft.com/downloads/details.aspx?FamilyID=E82EA71D-DA89-42EE-A715-696E3A4873B2&displaylang=en so that the community can download the binaries until we close in on our options presented at http://blogs.msdn.com/sandcastle/archive/2008/06/06/sandcastle-project-removed-from-codeplex.aspx.
Again I am grateful for all the great community efforts, support around Sandcastle and the adoption rates. I ask your patience while I make every effort to address the options presented. I will get back and blog about our decision.
Thanks for your understanding. Cheers.
We have removed Sandcastle project from Codeplex after carefully evaluating the feedback from this thread http://www.codeplex.com/Sandcastle/Thread/View.aspx?ThreadId=29085 (currently unavailable).
There are few options such as the following:
Publish the source code for Sandcastle and revive this project in Codeplex
Migrate sandcastle to MSDN Code gallery at http://code.msdn.microsoft.com
I am going to evaluate these and other options carefully but rest assured the Sandcastle downloads will be available soon for the customers.
I am greatful for all the great community efforts, support around Sandcastle and the adoption rates. I ask your patience while I make every effort to address the options presented. I will get back and blog about our decision.
Thanks for your understanding. Please feel free to contact me (firstname.lastname@example.org) directly regarding any questions. Cheers.
I blogged here http://blogs.msdn.com/sandcastle/archive/2008/01/22/introducing-namespace-diagnostics-and-viewer-for-hxs.aspx about Namespace#, the Diagnostics and Viewer for HxS written by Paul O'Rear, ex-Microsoft Help MVP, is my colleague at Microsoft. You can read about Paul’s work at http://www.helpfulsolutions.com/.
Today we release NameSpace# at http://code.msdn.microsoft.com/NamespaceSharp.
Please note that the current release works only in Windows 2003 Server. An updated version for other Windows OS will be posted soon.Microsoft Namespace# 2.0Microsoft Namespace# 2.0 is a general purpose tool for exploring and experimenting with the Microsoft Help 2.x help system used in such products as Microsoft Visual Studio, Microsoft Developer Network (MSDN) Library, Microsoft Office, and a number of software development kits (SDKs). BackgroundMicrosoft Visual Studio uses a proprietary Help system known as Microsoft Help 2.x; codenamed "Havana". The Microsoft Visual Studio SDK ships a number of components for extending Visual Studio, including its help system. [For more information regarding Visual Studio Extensibility and the Microsoft Help 2.x help system please install the Visual Studio SDK.]Among the components installed with the Visual Studio SDK are a help compiler and a few miscellaneous tools for diagnostic and help content registration purposes. One of these tools is Namespace.exe. Similar to how the concept of namespaces are used in source code for producing application software, the Microsoft Help 2.x subsystem uses the idea of a namespace to define an abstract collection or aggregation of help content.Namespace.exe enables you to perform some rudimentary diagnostics and tasks that are involved with MS Help 2.x help collections and their registration. Namespace.exe was originally developed by the Help 2.x compiler and runtime team at Microsoft. It is useful for a variety of diagnostic information including the following:
Two primary areas to look at are the Namespace and Help View tabs in the UI - these toggle between a diagnostic view of the help system to a more help viewer type mode. The Help view mode is based on the collection you currently have selected in the Namespace mode. There are many features buried in this tool - primary tip is to right click on the tree nodes in the Namespace view to see a number of tasks that you can perform. See screen shot below.
Hope you will like this tool and it's features. Cheers.
I talked about various community projects supporting Sandcastle in this blog http://blogs.msdn.com/sandcastle/archive/2007/06/21/sandcastle-customer-projects.aspx. I am very pleased to announce the release of Sandcastle Styles to this community project list. Dave Sexton of DocProject for Sandcastle wrote me the following:
I don’t know if anyone else notified you about this yet, but Sandcastle Styles is now live.
Thanks Dave for notifying me. As I understand the goal of this project is to improve Sandcastle releases by providing a rolled-up solution to various presentation style issues in a manner that is highly visible to the Sandcastle community and also involves community feedback.
What's Available in this release?
Sandcastle May 2008 Patch - This is a patch for the Sandcastle presentation style files that fixes most of the known bugs. It also includes enhancements to existing features.
Documenting Web Projects 126.96.36.199 - This contains information on producing XML comments for web application and website projects. For website projects, custom code providers are included that make it much easier to obtain the XML comments files needed to create a help file using Sandcastle
Sandcastle MAML Guide 188.8.131.52 - This is intended to be a reference that you can use to find out all that you need to know about Microsoft Assistance Markup Language (MAML) as used with Sandcastle to produce help files containing conceptual content.
Work is under way to produce a set of example code and MAML files that you can use to see the effects of the various XML comments and MAML elements and learn how they can be used. In the future, custom presentation styles and language packs may also be made available.
This is a great community team effort by Dave, Eric and Paul and I thank you guys for brining this effort together. Cheers.
Last edited Dec 7, 2006 at 10:16 PM by codeplexadmin, version 1
Ads by Developer Media
XML Schema Documenter
Visual Studio Spell Checker