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.

Wednesday, April 16, 2008

An Early Glimpse of Sculpture

Welcome to my blog, and welcome to sculpture, here you will find a technical posts about Software Engineering in general and about Sculpture, I will always post our progress in Sculpture, and other related points.
I hope you find my blog useful, and welcome again.
So Sculpture Sculpture ..., what is Sculpture??




Sculpture is a .NET open source Model-Driven Development code generation framework ideal for creating and managing .NET Enterprise Applications.

Model-Driven Development represents the next logical step forward in software development methods and practices. It aims to facilitate the automatic construction of a software solution from a high-level domain-specific specification. This approach seeks to promote productivity, maintainability, expressiveness, and to aid in the management of complexity by supporting higher levels of abstraction and the systematic reuse of domain-specific assets.(From: Visual Studio 2005: Model-Driven Development of .NET Enterprise Applications), Sculpture(Model you Life) is a new implementation in this track, which you can use for modeling the business entities and the structure of business logic, Based on this model, a code generation framework transports the model to the implementation of the Entities, Data access layer, Business logic layer skeleton, Database stored procedures, and Database Schema for the application.

So with Sculpture you can:

  • • Design your entities and relationships by drag and drop these elements into the diagram surface.
  • • Configure your model and entities with bunch of rich UI forms and utilities that facilitate the configuration process.
  • • Generate C# efficient code and scripts based on Microsoft best practice, no need to modify the generated code because you already customize it in the model.
  • • If you already have Database, Sculpture give you the ability for translate it to model.

Sculpture Main Features:
  • Sculpture raises the level of abstraction so the solution separated from the implementation technology.
  • Sculpture give you permanent preview to your domain model, can easily updated in any application life cycle phase, and immediately see the reflections of these changes.
  • Sculpture is not depending on (Data Model + Templates) only, (Metadata) that configured in the model is essential part in the generated code, so your code is so closed to how you configure the model.
  • Sculpture is Domain-Specific Modeling so can be extended to enable full code generation.
  • Sculpture has reverse engineering engine that parses the database and translates it to model, so you can start your project from Database, additionally any updates in the database schema can easily reflect on the model without losing any metadata.
  • Sculpture supports Multi-Models in one application, so if your domain model is big, you can split it into more than one model (Modules), and suspends generation of duplicated entities.
  • Sculpture believes that the software is accumulative, so we does not reinvent the wheel, the generated code follows Microsoft best practice, where Sculpture uses Data Access Application Block (in the data access layer) and Validation Application Block (in entities properties attributes) from Enterprise Library, and we will work hardly to put your application on the top of the cutting edge technologies.
  • Sculpture depends on Templates so you can customize it to get maximum profit.
  • Sculpture has its validation engine where the model can be validated, that will decrease the cost of fetching errors.
  • Sculpture developed by Domain-Specific Language (DSL), so
    • • It is integrated with visual studio.
    • • No need for any external tool.
    • • Very easy to use and understand the whole development cycle.
    • • Familiar by all .net developers.
  • Sculpture developed by professional team belongs to Dawliasoft, there is will be a full support in the discussion and issue tracker, and a premium support will be available in the near future.
  • Sculpture provides a powerful Help that integrated with visual studio, which can be used as quick start, and to get the overall structure of the framework, more documents will be available with the next versions.