Sunday, June 15, 2008

DSL Editor Powertoy in VS2008

It’s pleasure to Sculpture team to announce that they succeeded in migrating DSL Editor Powertoy to VS2008,

So you can develop DSL projects with DSL Editor Powertoy in VS2008 as the same manner as VS2005
with full functionality (Guidance Package , Editor Configuration Diagram).

This release of DSL Editor Powertoy works identically as the previous one.


Note: It’s not an official release, but Sculpture Team believes that DSL Editor Powertoy is vital for all DSL Designers, so they try to provide a community version that supports VS2008.


We hope it will be useful for all DSL Editor Powertoy users.


Downloads:

DSL Editor Powertoy 2008 Binary Installer (1.37 MB)
DSL Editor Powertoy 2008 Source Code (6.08 MB)


For more information about migrating your DSL project to Visual Studio 2008 see the previous post (DSL from 2005 to 2008)

Monday, June 9, 2008

Second CTP version for Sculpture

A new version of sculpture published on codeplex.

In this version:
• Many bug fixes, along with a number of functional improvements.
• Support for Visual Studio 2008.
• Some improvements in the Power Point presentation (add a section that describes how to consume the generated code).
• Remove the topics related to Microsoft .NET Framework 3.0 from the version that work under VS2005, so it can be run under .NET Framework 2.0.

You can download it form here

Surviving with DSL Editor PowerToy in Visual Studio 2008

As I described in The last post (DSL from 2005 to 2008) that the last problem face us while migrating Sculpture to VS2008 was DSL Editor PowerToy, still does not supported in VS2008, I hope to see new version soon.

First I must declare our idea about Surviving with DSL Editor PowerToy in Visual Studio 2008
• We already build our DSL editors in the VS2005 version.
• We just want the framework to be running under Visual studio 2008.
• We don’t need the DSL Editor PowerToy guidance package or even the DSL Editor PowerToy Diagram.

The first point is about including the DSLEditors folder to your project, set the custom tool for all DSL Editor templates to none (the code is already generated in VS2005 we don’t need the templates).

The second point is about the references, When you add a DSL Editor PowerToy to your DSL project by its guidance package there are four new references added to the DSLPackage project, we have to convert the corresponding projects to these DLLs to VS2008 so it can be a replacement of the previous dlls, we download the source code of DSL Editor PowerToy and convert these four projects to VS2008, some reference problems fixed then we build the projects and get the new dlls, add references to these dlls in your DSLPackage project, it work fine.

The third and last point is about Commands, which converted from CTC to XML with extension VSCT in VS2008 as we discussed in the previous post. Fortunately the DSL Editor PowerToy Command.ctc file does not have a big change from project to another, so you can use the following one with minor changes.

You can download the DLLs and Commands XML file from here.

Conclusion:
If you have DSL project in VS2005 that include DSL Editor PowerToy, you can run it under VS2008 by the next steps:
1. Include the DSLEditor folder in your DSLPackage project.
2. Set the custom tool property for all the templates in this folder to none.
3. Download the new dlls and CustomCmd.vsct from here.
4. Add references to these dlls in your DSLPackage project.
5. Add the downloaded CustomCmd.vsct to Commands.vsct.
6. Run and enjoy with your Editors run on VS2008.

DSL from 2005 to 2008

Spending 2 days for migrating Sculpture from VS2005 to VS2008 is unexpected time, we expect that we will convert it by the Visual Studio 2008 wizards, and then press F5 to test the framework.

I shocked when I read the article that shipped with Visual Studio SDK 2008 tell us:
To migrate your project from VS2005 to VS2008 Create a new solution and copy your code files to it

Its ok we follow the guide and migrate the project, some problems face us while converting that take some time to fix it, I want to explain these problems here to avoid the readers from take the same time.


1. VS2008 don’t copy the DLLs to GAC during the debugging mode, that’s great new feature but let us confused a little to be familiar with this new manner, the problem that if you have a copy of the dsl.dll and dslpackage.dll in your GAC, the debugging mode will run from them neglecting any other version on your machine, so you update the code and build then run and nothing change, so you must keep in mind that never debug your DSL project while you have a version installed in the GAC.


2. Commands, which converted from CTC to XML with extension VSCT, consuming some time to be familiar with this new format, we try Perl script [ConvertCTCToVSCT.pl] but it does not work correctly, where we add the commands by including Header file to the CTC file, so we convert it manually, after some of work it seems nice and easy to work with.

As a short Description about the new format

• To make groups use:

Just change the Group id, and the Parent id to your needs

• To Make Buttons use:


• The final thing you must know Symbols, where each of the previous IDs (groups and buttons) must be set its value in the Symbols section as follow:
Change the “guidCmdSet” value to match the one in your GeneratedVSCT.vsct file.

3. The last problem face us while migrating to VS2008 was DSL Editor PowerToy, still does not supported in VS2008, I hope to see new version soon, I will discuss how we overcome this problem in a dedicated post to be available for all DSL Editor PowerToy lovers.

Friday, May 30, 2008

Model Your Life Series

I think that any isolated framework likes a person lives in distant island alone, so I plan to write a set of posts about Sculpture and other .NET Technologies.

How Sculpture as Model driven development can be used to model these technologies?

Through this series I will demonstrate my opinion about the integration points.

Planned topics:

  • Sculpture & Web Service Software Factory.
  • Sculpture & LINQ.
  • Sculpture & .NET Entity Framework.
  • Sculpture & UI.
  • Sculpture & Smart Client Software Factory.
  • Sculpture & Web Client Software Factory.
  • Sculpture & Mobile Client Software Factory.
  • Sculpture & Prism.


In the other hand I will post about alternatives code generators as:

  • Sculpture VS Repository Factory.
  • Sculpture VS Nettiers.

I hope that I have enough time to complete this series in the near future.

Sculpture 1.0 CTP has been shipped

Congratulation to all Sculpture’s team.

Sculpture 1.0 CTP has been shipped in www.codeplex.com/Sculpture

This is the first release of Sculpture CTP [29-5-2008], the stable or final 1.0 release will be available within one month.

Here in Dawliasoft we work in agile methods, so we decide to publish weekly CTPs versions till the final one, through these CTPs we will try to fix all known and recent issues.

We awfully need your opinion to put Sculpture in the right way.


Issues, feature requests, or new ideas are welcome.

Monday, May 19, 2008

Sculpture 1.0 CTP closer than you think

After months of work, in a few days we will announce that Sculpture 1.0 CTP shipped.
So let's take a closer look about what Sculpture produce and the capabilities of these produced components.



1. Business Entities

  • · Entity class is not simply as just (get & set) it provides with wide functionalities that can help the developers in their work.
  • · All entities implement INotifyPropertyChanged interface, so can be used in data binding.
  • · Allow multiple kinds of Collections (List, Collection, and ObservableCollection for WPF).
  • · Sculpture provides Validation application block Designer for configure validation attributes of the entity's properties with fantastic validation locator to copy validation attributes from one property to another.
  • · With Sculpture entity you have the ability to:
    • o Get the Entity State (Added, Changed, And Unchanged).
    • o Copy Entity data to another one.
    • o Compare two entities data.
    • o Get a list of the properties that changed since you get the entity from a data source.

2. Data Access Layer
  • · Sculpture generates full Data Access Layer with maximum customization.
  • · Sculpture supports custom data methods, so each entity has its standard methods (GetAll, GetById, Save …) and custom methods.
  • · With Sculpture Data Access Manager
    • o You can suspend any of the standard or custom methods.
    • o You can rename a standard method (so customer.GetAll() can be customer.GetMyCustomers())
    • o You can set comments for all kinds of methods.o You can copy custom methods from another entity.
  • · Sculpture Supports options for both stored procedures and inline query for data access, this option can be in the method level, so you can have GetAll method that works with inline query and Save method that call stored procedure.
  • · While using inline queries the save method updates the changed properties only, so it's more efficient than update the whole entity properties.
  • · Sculpture Supports saving single entity and collection of entities in one transaction; supports one to many relationships so you can save the customer and his contacts by one line of code.
  • · Sculpture Supports transactions so you can get the handle of the transaction.
  • · With InvalidEntityException class that generated by Sculpture, you can know which entity failed to save, and formatted information about the error.

3. Business Logic Layer
  • · Sculpture provides your applications with sky level view of your business logic components.
  • · Sculpture generates the skeleton of the business components and business methods.
  • · Sculpture generates the interface of the business component classes.
  • · Sculpture gives you the ability to copy the structure of the data access methods (standard and custom) to be business methods, so you can easily wrap the Data Access Layer with Business Components.

4. Stored Procedures script
  • · Sculpture provides a full script for CRUD stored procedures.
  • · Sculpture gives you the option to change any CRUD stored procedure name.
  • · Sculpture uses the stored procedure template of the Repository Factory, so it is mature enough.

5. Database Schema script
  • · Sculpture Provides a full script of the Database Schema, so all what you need is just to run it in an empty database.