Chapter 2

1 It’s a mystery that they didn’t choose Microsoft’s excellent Visual Studio Team Foundation Server for this purpose.

2 The CJKW developers show some naiveté with respect to coding practice. The repetitive use of literal strings is inadvisable. And, as they discovered eventually, bolting the statechart into the UI code isn’t the best strategy. However, the fragment serves to illustrate the example.

3 A “designer” is a graphical or other non-textual editor hosted in Visual Studio.

4 All of the authors of this book have had this experience, which we refer to as a “meta-moment” (in the hope that it is usually transistory).

5 The term “template ” is somewhat overloaded. A Visual Studio solution or project template creates a skeleton set of files, together with build information. The DSL creation wizard allows you to choose between several different language templates. An item template is an empty or nearly empty file from which a new file of that type can be created using the Add New Item command in Visual Studio. A text template generates code or other material from a DSL.

Chapter 4

1 Domain properties were explained in Chapter 3, the custom type descriptor is explained later in this chapter, and element merge directives are explained in the next chapter.

2 See the tip in the “Introduction” section for a reminder on how to create a test language from a language template.

3 This ensures that an element only appears once in the explorer and in a way that distinguishes between links that are also links of derived relationships from ones that are not.

Chapter 8

1 Camel-casing is the practice of forming a compound word by joining a set of individual words together with each member except the first having its initial letter capitalized, for example, “thisIsTheHouseThatJackBuilt.” In .NET coding, this casing style is typically used for method parameter names, local variables, and private member fields.

2 Nullable types are a facility provided in the C# 2.0 language that allows scalar value types to additionally hold the special value NULL as well as their natural set of values. For example, a Nullable <short> can contain the value NULL as well as -32768 to 32767.

3 An Application Domain is an isolated and unloadable environment in which an assembly can be executed. .NET remoting is a mechanism for invoking methods across AppDomain or machine boundaries.

Chapter 9

1 At the time of writing, http://msdn2.microsoft.com/en-us/library/aa369820.aspx.

2 The Visual Studio 2005 Extensibility Center can be found at http://msdn.microsoft.com/vstudio/extend/. You can sign in to register your product and obtain a PLK at http://affiliate.vsipmembers.com/affiliate/default.aspx.

3 Unless you orchestrate code generation from the menu item on the designer, as discussed in Chapter 8.

Chapter 10

1 Comparison between floating-point numbers is unreliable unless done with a function that allows for rounding errors, such as Math.Abs(a-b) <= 0.001 * (Math.Abs(a) + Math.Abs(b)).

Chapter 11

1 For more on feature trees, see K. Czarnecki, S. Helsen, U. Eisenecker, “Staged Configuration Using Feature Models,” Software Product Lines: Third International Conference, Boston, MA, 2004.

2 Desmond F. D’Souza and Alan Cameron Wills, Objects, Components, and Frameworks with UML: The Catalysis Approach, Addison-Wesley, 1998.

3 It is possible, but significant custom code is required.

4 http://msdn2.microsoft.com/en-us/teamsystem/aa718948.aspx

5 For generated code, this expectation applies to the proportion of the generating template that is covered, rather than the generated code. Since one template usually generates multiple variants of itself, the reported coverage of the generated code may be much smaller, and you will have to do some analysis to work out what coverage of the generating template that represents.

6 See http://msdn2.microsoft.com/en-us/teamsystem/aa718948.aspx.

7 www.microsoft.com/downloads/details.aspx?FamilyID=bfba74af-4f28-44cc-8de5-0c3c55d21863&displaylang=en. There is also a link from the DSL Tools home page.

8 Wiley Publishing Inc., 2004

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.220.136.165