High level Changes

  • Major Changes:
    • Better VS Integration
    • Greatly improved performance of the VS add-in for larger contract assemblies
    • Better default naming conventions for views and adatpers
    • Support for structs in Contracts
  • Minor Breaking Changes:
    • Generated files are now placed in a "Generated Files" sub folder in the main project and with a ".g.cs" extension rather than ".generated.cs". You will need to delete the existing generated source files to compile.
    • NamespaceAttribute is no longer valid on assemblies
    • The namespaces for generated code has changed slightly, see Namespaces Should Follow Contract Namespace, NOT AssemblyName

Naming related changes

  • New heuristic for choosing namespaces used in generated code
    • If NamespaceAttribute specifies a namespace for the contract in the current segment (views, host view, add-in view, host side adapter, or add-in side adpater) then we will use that namespace
    • If the namespace for the contract ends in ".Contracts" the ".Contracts" will be removed and the remaining name will be used, as-is, in the view assemblies. A ".HostSideAdapters" or ".AddInSideAdapters" will be added to the name used in the view in this case.
    • If there is no namespace attribute and the namespace for the type does not end in .Contracts it will choose a namspace based on the assembly name of the contract.
  • Namespace attribute can no longer be applied to assemblies
  • Namespace attribute can now be applied to all types (IContracts, Enum contracts, Struct contracts)
  • Generated files now have a ".g.cs" extension rather than ".generated.cs"

VS Integration

  • Dramtically improved performance for contract assemblies that result in many generated source files
  • Fit and finish
    • Updates to the UI of various dialogs
    • Automatically collapse "References" tabs in generated projects
    • Automatically collapse the the generated source code folders for adapters
    • Status indicator for progress of generation
    • Better error messages across the board
  • Better support for custom code in generated projects
    • All generated code is moved into "Generated Files" sub-folders in projects
    • Only replace code that is located in the "Generated Files" sub-folders
    • Detect when developers have modified a generated file and prevent the tool from overriding these choices
    • Detect when generated projects exist, but are not part of solution, and warn developer rather than overriding them

Code Generation

  • Added support for struct contracts defined in contract assemblies
  • Support for passing arrays of struct and enum contracts
  • Better error checking in contract assembly
  • Different code generator options
    • Change of bracing style
    • No longer skip lines between members


Quick Samples:

Last edited Feb 8, 2008 at 11:15 PM by JesseKaplan, version 6

Comments

No comments yet.