Italian Agile Day 2009!

•21 Ottobre 2009 • Lascia un Commento

Agile Day

Agile Day

Venerdi’ 20 Novembre 2009 si terrà a Bologna il sesto Italian Agile Day. Si tratta di una conferenza gratuita di un giorno dedicata alle metodologie Agili per lo sviluppo e la gestione dei progetti software rivolta agli sviluppatori, project leaders, IT managers, tester, architetti e coach che hanno esperienze da condividere o che iniziano solo ora ad interessarsi a queste tematiche. La giornata ha come obiettivo la conoscenza pratica, le esperienze sul campo e un attivo coinvolgimento di tutti i partecipanti. L’accesso è libero previa registrazione, i posti sono limitati. L’evento, per la quarta volta consecutiva, si auto-finanzierà.

Metti una domenica per caso…

•13 Ottobre 2009 • Lascia un Commento

Domenica mattina di un bellissimo ottobre, partiamo per andare a vedere una sagra in un paesino,Bellegra, vicino Olevano Romano.Ottima scelta ci diciamo tra noi visto che il programma prevede delle gustose prelibatezze http://www.eventiesagre.it/Eventi_Sagre/11313_Sagra+delle+Tacchie+ai+Funghi+Porcini.html .. a poterle assaggiare. Già, visto che per arrivare al luogo dove era previsto l’evento ci sono volute due ore tra andata e ritorno, a piedi e in salita, tra ricci di castagne e autisti di macchine esauste…all’arrivo nel luogo bramato, fila inesauribile di persone che attendevano di poter pagare i loro 10 euro per poter assaggiare le suddette…a noi è sembrata una inutile crudeltà: molto meglio cercare una soluzione alternativa, catalogare l’esperienza negativa e andare per monti alla ricerca dell’amato pasto.

Risultato, dopo aver girovagato per un pò approdiamo in questo delizioso ristorantino ad Olevano Romano :

http://www.soramariaearcangelo.com/

Dove abbiamo mangiato queste squisitissime prelibatezze:

Primi piatti

Maltagliati all’uovo con ragù di coniglio di fattoria, funghi porcini e ricotta al fumo di ginepro di anversa degli Abruzzi.

Fettuccine al mattarello, ricotta di bufala mantecata allo zafferano di Affile, pancetta croccante di Guarino e nastri di porro fritti.

Secondi

Bocconcini di agnello di Carpineto alla cacciatora e carciofo alla romana.

Vino : un onesto Cesanese di Olevano Romano di cui purtroppo non ricordo la cantina.

Tutto ottimo direi, anche il dolcetto abbinato al caffè ;-)

Link for IPhone development

•29 Settembre 2009 • Lascia un Commento

Serie di interessanti link per iniziare a sviluppare su IPhone.

http://www.mobileorchard.com/iphone-sqlite-tutorials-and-libraries/

http://labs.maya.im/en/the-power-of-c-on-iphone/

http://monotouch.net/

http://arstechnica.com/open-source/news/2009/01/open-source-mono-framework-brings-c-to-iphone-and-wii.ars

IIS7 gratuito?Cassini è morto?

•29 Settembre 2009 • Lascia un Commento

Sembrerebbe di sì Spark è alive.

http://www.microsoft.com/web/downloads/platform.aspx

Protetto: Rdf Builder

•28 Settembre 2009 • Inserire la propria password per visualizzare i commenti

Questo post è protetto da password. Per leggerlo inserire la password qui sotto:


Il nucleo positivo

•16 Settembre 2009 • Lascia un Commento

Da un post di Luka:

nucleo

proprio stamattina ho avuto una discussione sul tema con uno dei componenti del team

migrare a windows7 con windows easy transfer

•14 Settembre 2009 • Lascia un Commento

Un articolo di Alle su Ugi, itile per migrare i SO (vedi il mio Vista).

E’ ufficiale, ieri ho migrato il mio notebook “di lavoro”, a Windows 7 64 bit, dovendo migrare da un sistema 32 a uno 64 ho dovuto piallare (formattare) e per l’occasione ho sostiutito il disco originale, un po’ lento e soprattuto con 2 anni di carriera, con un disco “green” della Fujitzu che, con 8 Mb di cache, non fa pesare più di tanto i suoi miseri 5400 giri al minuto.

Per prima cosa ho proceduto al Backup incrociato sue dischi diversi con due tool diversi, (in totale 4 backup) poi ho provveduto con il cd di Windows 7 a 32 bit sulla vecchia macchina ad esportare tutte le impostazioni dei vari profili con Windows Easy Transfer che ha generato un file di 16 GB, procedura che ho ripetuto su un secondo disco esterno.

In seguito ho sostituito il vecchio disco fisso del notebook con il nuovo disco ed ho provveduto ad installare Windows 7 x64. Dopo il primo setup che mi ha installato correttamente i drivers di rete, windows update ha completato l’opera installando tutti i driver mancanti del mio ASUS F3Sc. Mi manca un po’ l’utilty grafica per accendere WiFi e Bluetooth, ma lo switch hardware fa comunque il suo mestiere.

Dopo aver installato i vari software e tool di sviluppo, procedura che ha richiesto pochissimi riavvii, che comunque su Windows Seven sono veloccissimi, ho provveduto a creare gli utenti con Windows Easy Transfer. L’unica cosa che mi ha chiesto è di associare i vecchi utenti ai nuovi e non trovandoli mi ha proposto di crearne con username e password. L’utilty ha correttamente migrato:

  • Tutti i files;
  • Impostazioni di Outlook, compresi account e password;
  • Impostazioni di Internet Explorer;
  • Impostazioni di Windows Live Writer;

L’unica cosa che ho dovuto fare è impostare l’account MSN in messenger!

Windows Easy Transfer nella versione di Windows 7 è i grado di selezionare quali impostazioni si vogliono migrare e quali no ed è in grado di suggerire un elenco di applicazioni che devono essere installate sul nuovo PC prima della migrazione, per non perdere le funzionalità del vecchio pc.

Nella prossima puntata: Come configurare una chiavetta UMTS/HDSPA anche se il provider non fornisce drivers a 64 bit :D

ASP.NET MVC V2 Preview 1 Released

•20 Agosto 2009 • Lascia un Commento

ASP.NET MVC V2 Preview 1 Released

The ASP.NET team just released the first public preview of ASP.NET MVC Version 2.  You can download it here.

Today’s preview works with .NET 3.5 SP1 and VS 2008, and can be installed side-by-side on the same machine as ASP.NET MVC 1.0 (meaning they don’t conflict and your existing ASP.NET MVC 1.0 projects will not be impacted if you install it).  If you have both ASP.NET MVC 1.0 and ASP.NET MVC 2.0 installed you’ll see two ASP.NET MVC project templates within Visual Studio 2008’s “New Project” dialog:

The release notes that come with the ASP.NET MVC 2 Preview release detail how to upgrade existing ASP.NET MVC 1.0 projects to use V2 if you’d like to migrate them forward to take advantage of the new features.

New Features

ASP.NET MVC V2 will include a bunch of new capabilities and features (some of these have already been called out on the ASP.NET MVC roadmap page).  Today’s “Preview 1” release contains a first look at some of the new features.  Many more features will show up in future preview builds.  The Preview 1 bits are still relatively early – the team is releasing today’s build to start receiving and incorporating feedback.

Below are some quick details about some of the new Preview 1 capabilities:

Areas Support

ASP.NET MVC 2 includes support for a new feature called “areas” that allow you to more easily partition and group functionality across an MVC application.

Areas provide a means of grouping controllers and views to allow building subsections of a large application in relative isolation to other sections. Each area can be implemented as a separate ASP.NET MVC project which can then be referenced by the main application. This helps manage the complexity when building a large application and facilitates multiple teams working together on a single application together.

Below is a screen-shot that shows a single solution that has three projects.  One of the projects is named “CompanySite” and includes the core site content, layout and controllers and views. There are then two separate “Area” projects – “Blogs” and “Forums”.  These projects implement the functionality that exists under the /Blogs and /Forums URL sections of the site – and encapsulate all of the routing rules, controllers and views implementing these sections:

The Preview 1 release includes the first part of the areas feature implementation.  It doesn’t include any tool support yet (right now you need to manually add a build task to create an area project and set it up).  Future preview releases will include tooling support, and expand and refine the feature-set further.

DataAnnotation Validation Support

ASP.NET MVC 2 now includes built-in support for the DataAnnotation validation support that first shipped with .NET 3.5 SP1 – and which is used with ASP.NET Dynamic Data and .NET RIA Services.  DataAnnotations provides an easy way to declaratively add validation rules to Model and ViewModel classes within an application, and have automatic binding and UI helper validation support within ASP.NET MVC.

To see this feature in action, we can create a new “Customer” ViewModel class like below that has five properties on it (implemented using the C# automatic property feature).

We can then decorate the properties with appropriate validation rules using the DataAnnotation attributes implemented within the System.ComponentModel.DataAnnotations namespace.  The code below uses 4 different built-in validation rules – [Required], [StringLength], [Range], and [RegularExpression].  The namespace also includes a base class (ValidationAttribute) that you can subclass to create your own custom validation attributes.

We can then create a CustomersController class that has two Create action methods on it.  The first Create action method handles HTTP GET requests to the “/Customers/Create” URL, and renders a view template based on an empty Customer object.  The second Create action method handles HTTP POST requests to the same URL (and takes a Customer object as a method parameter).  It checks if there are any model binding errors to the input submitted, and if there are errors it redisplays the view template using the already entered data.  If there are no errors it displays a success view to the user:

Finally, we can right-click within either of the Create action methods above, choose the “Add View” context menu command, and automatically “scaffold” a “create” view template that is based on the Customer object.  When we do this the generated scaffolded view template will contain the below HTML <form> for our Customer:

And now when we request the “/Customers/Create” URL in our browser we’ll get an initial empty form like below:

If we enter invalid input and perform a post to the server, the ASP.NET MVC 2 model binder will detect that there are DataAnnotations attributes on our Customer class, and automatically validate the posted form input using them.  If there are errors our controller action method redisplays the form – which will cause the appropriate validation error messages to be rendered to the user like below.  Note how the validation property error message strings we specified using the DataAnnotation attributes are displayed to the user by the Html.Validation helper methods.  No extra code is required to enable this.

The above form will redisplay with error messages each time the user enters invalid input and attempts to perform a form post.

In a future ASP.NET MVC 2 preview we are planning to ship the jQuery Validation plugin as part of the default project template, and add support for the automatic client-side JavaScript enforcement of DataAnnotation validation rules as well.  This will enable developers to easily add validation rules in one place on either a Model or ViewModel object, and have them be enforced both client and server-side everywhere it is used within the application.

If you do not wish to annotate your model or viewmodel classes directly, you can alternatively create a “buddy class” that accompanies your model class and encapsulates the DataAnnotaton rules separately.  This capability is also useful for scenarios where VS is code-generating/updating the properties on a class directly and you cannot easily add attributes to the generated code (for example: classes generated by the LINQ to SQL or LINQ to Entities designers).

In addition to providing built-in support for DataAnnotations, the DefaultModelBinder class in ASP.NET MVC V2 now has new virtual methods that can be overridden to easily integrate other validation frameworks as well (for example: Castle Validator, EntLib Validation, etc).  The validation UI helper methods in ASP.NET MVC are designed to support any type of validation framework (they have no direct knowledge of DataAnnotations).

Strongly Typed UI Helpers

ASP.NET MVC V2 includes new HTML UI helpers that enable you to use strong-typed lambda expressions when referencing the view template’s model object.  This enables better compile-time checking of views (so that bugs can be found at build-time as opposed to runtime), and also enables better code intellisense support within view templates.

You can see an example of the better intellisense in action below – notice how I am getting a full listing of the customer model object’s properties when using the new Html.EditorFor() helper method:

Preview 1 has built-in support for new Html.EditorFor(), Html.LabelFor(), and Html.DisplayFor() helpers.  An updated MVC futures assembly that we are shipping this week adds additional Html.TextBoxFor(), Html.TextAreaFor(), Html.DropDownListFor(), Html.HiddenFor(), and Html.ValidationMessageFor() helper methods as well (overtime these will move into the core ASP.NET MVC 2 assembly too).

Below you can see an updated version of the “create” view template for our customer creation scenario.  Notice how instead of using string expressions to reference the customer object we are instead using strongly-typed lambda expressions with the UI helpers.  We can get full intellisense and compile-time checking with all of them:

The Html.LabelFor() helper method above generates <label for=”Name”>Name:</label> HTML markup.

The Html.EditorFor() helper method can be used for any datatype value.  By default it is smart and will output an appropriate HTML <input/> element based on the type to be edited.  For example, it will generate <input type=”text”/> elements for the first four properties above (which are strings and integers).  It will generate a <input type=”checkbox”/> element for the final “IsActive” property – which is of type boolean.

In addition to supporting simple data-types, the Html.EditorFor() helper method also allows you to pass more complex objects with multiple properties to it.  By default it will loop over the public properties of the object and generate a <label>, <input/> element, and any appropriate validation message for each property it finds.  For example, we could re-write the above view to have just a single Html.EditorFor() call for the Customer object to conceptually output the same markup as above:

The strongly typed helpers allow you to optionally decorate the properties of the Customer ViewModel class with [DisplayName] attributes to control the label string that is output for each property used (for example: instead of having a label text of “IsActive” we could apply a [DisplayName(“Is Active Customer:”)] attribute).

You can also add [ScaffoldColumn(false)] attributes to indicate that a particular property shouldn’t be rendered at all in scenarios like above where complex objects are passed to Html.EditorFor().

UI Helper Templating Support

The Html.EditorFor() and Html.DisplayFor() helper methods have built-in support for rendering both standard data-types as well as complex objects with multiple properties.  As noted above, they also support basic customization of rendering by applying attributes like [DisplayName] and [ScaffoldColumn] to the ViewModel.

Often developers want to be able to customize the output from UI helpers even further, though, and have total control over what is generated.  The Html.EditorFor() and Html.DisplayFor() helper methods support this via a templating mechanism that allows you to define external templates that can override and completely control the output rendered.  Better yet, you can customize the content rendered on a per-datatype/class basis.

With Preview 1 you can now optionally add an “EditorTemplates” and/or “DisplayTemplates” folder underneath either a \Views\[controllername] directory (if you want to customize the rendering for views used by a specific controller) or underneath the \Views\Shared folder (if you want to customize the rendering for all views and controllers in an application).

You can then add partial template files to these folders to customize the output rendering performed on an individual datatype and/or class basis.  For example, below I have added an EditorTemplates folder underneath the \Views\Shared folder – and added three custom template files to it:

The “Customer.ascx” template above indicates that I want to customize the output anytime Html.EditorFor() is passed a Customer object (for example: I could customize the exact ordering/layout of the Customer properties).  The “DateTime.ascx” template above indicates that I want to customize the output anytime Html.EditorFor() is passed a DateTime property (for example: I might want to use a JavaScript datepicker instead of a plain textbox).  I could optionally add an “Object.ascx” template to the folder if I wanted to override the default rendering of all objects.

In addition to customizing rendering on a per-type basis, you can also add “named templates” to the folder.  A common scenario might be a “CountryDropDown” template that handles a string datatype – but instead of providing a standard textbox instead renders a <select> dropdownlist of country values that a user can pick from.  Below is what this editor template might look like:

We can explicitly indicate that we want to use the above template by passing its name as an argument when we invoke the Html.EditorFor() helper method.  For example, below in addition to specifying a lambda expression for our Country property, we are also specifying the name of the editor template to use when rendering it:

Alternatively, you can specify “UIHint” attributes on your ViewModel properties and types.  This allows you to indicate the default editor or display template to use in a single place, and have it be used in all views across your application (without having to explicitly pass it as an argument to Html.EditorFor).

Below is an example of how to indicate using a UIHint attribute that the Customer.Country property (which is of type string) should by default use the CountryDropDown template when being rendered:

Once we set the above attribute on our ViewModel we no longer need to specify a template name explicitly when we use that property with Html.EditorFor().  And now when we hit refresh on our /Customers/Create URL our Country property will be rendered as a dropdown instead of a standard textbox:

Other Cool Features

ASP.NET MVC 2 Preview 1 includes a number of other small, but really nice, feature additions.  A few of my favorites include:

New [HttpPost] Attribute

It is pretty common with ASP.NET MVC to split up the handling of a URL across two action methods – one that handles GET requests and one that handles POST requests.

With ASP.NET MVC 1 you used an [AcceptVerbs(HttpVerbs.Post)] attribute to indicate the “Post” version of an action method:

This still works with ASP.NET MVC 2. Alternatively, though, you can also now take advantage of a terser [HttpPost] attribute that does the same thing:

Default Parameter Values

Handling optional parameters is a pretty common web scenario.  With ASP.NET MVC 1 you could handle optional parameters either by registering a custom routing rule and specifying a default value with it, or by marking an action method parameter as nullable and then adding code within your action method to handle whether it was null (and if so provide a default value).

ASP.NET MVC 2 Preview 1 now supports decorating action method parameters with the DefaultValueAttribute from the System.ComponentModel namespace.  This allows you to specify a parameter value that ASP.NET MVC should pass in if it is not present as part of the request.  For example, below is an example of how we could handle both the /Products/Browse/Beverages and /Products/Browse/Beverages?page=2 URLs – and have the “page” parameter value be “1” if it isn’t provided as part of the querystring:

VB today allows you to specify default parameter values directly within the VB language (avoiding the need to explicitly specify the DefaultValue attribute like above).  C# in VS2010 will also support default values with optional parameters – which will enable you to rewrite the above code simply as:

This should make handling default/optional scenarios really easy and clean.

Binding Binary Data

ASP.NET MVC Preview 1 adds support for binding base64-encoded string values to properties of type byte[] and System.Data.Linq.Binary.  There are now two overloaded versions of Html.Hidden() that can take these data-types.  These can be useful for scenarios where you want to enable concurrency control within your application and want to roundtrip timestamp values of database rows within your forms.

Summary

Click here to download a .zip file that contains a ASP.NET MVC 2 project that implements the sample code I demonstrated in the above walkthrough.

Today’s build of ASP.NET MVC 2 is just a first preview.  More features will be coming in future previews, and the team expects to get a lot of feedback on ways to improve and enhance the release.

The goal with doing these regular previews is to help make sure that this feedback process is open and that anyone who wants to participate can easily get involved.  Please post any feedback, suggestions or problems you have to the ASP.NET MVC Forum on www.asp.net.  You can also learn more about the release from Phil Haack’s MVC2 post, and from the Channel9 video Phil did with Scott Hanselman about the Preview 1 release.

Hope this helps,

Scott

P.S. I have been using Twitter more recently to-do quick posts and share links.  You can follow me on Twitter at: http://www.twitter.com/scottgu (@scottgu is my twitter name)

// //
//
// //
//

T4: Text Template Transformation Toolkit

•2 Luglio 2009 • Lascia un Commento

T4: Text Template Transformation Toolkit

Text Template Transformation Toolkit (T4) is a template-based code generation engine. It is included with Visual Studio 2008 and available as a download for Visual Studio 2005 in DSL and GAT toolkits. You can use T4 templates to generate Visual Basic, C#, T-SQL, XML or any other text files.

Syntax

T4 templates have ASP.NET-like syntax and consist of processing directives, text blocks and code blocks.

<#@ template language=C##>
Hello
<# Write(”World!”) #>

Processing directives provide template compilation and processing options. In the example above, <#@ template #> directive specifies that code blocks of this template are written in C#.

Text blocks are copied to the output “as is”. In the example above, Hello is a text block.

Code blocks contain Visual Basic or C# code that can manipulate text blocks or generate template output directly. In the example above, the code block calls Write method which writes “World!” to the output file. Code blocks can use any available .NET APIs. For example, a template can use SMO to generate CRUD stored procedures for a table in a SQL Server database.

How it works

T4 engine performs two steps to generate output from a template.

T4 Template Transformation Process

During the first step, T4 engine “compiles” the template: it parses the processing instructions, text and code blocks, generates a concrete TextTransformation class, and compiles it into a .NET assembly. During the second step, T4 engine creates an instance of the GeneratedTextTransformation class, calls its TransformText method and saves the string it returns to the output file.

Tutorial

This series of articles introduces code generation with C# and Text Templates in Visual Studio; explains how to create reusable templates and combine them in complex code generators.

Tools

Here are the tools you will be using when working with T4 text templates.

Visual Studio Custom Tool

T4 engine is integrated as a custom tool into Visual Studio 2008. When you add a text file with .tt extension to your project, Visual Studio assigns TextTemplatingFileGenerator as a custom tool and automatically generates output file from the template. This is similar to how Visual Studio generates strongly-typed datasets from .xsd files.

Command Line Utility

T4 also includes a command line utility, TextTransform.exe, which you can use to process templates outside of Visual Studio (similar to xsd.exe for strongly-typed datasets).

Editor

Text editing and debugging support for T4 templates is currently rather limited. I use T4 Editor from Tangible Engineering, which extends Visual Studio to provide IntelliSense and syntax highlighting for .tt files. Another option is the T4 Editor from Clarius Consulting, however functionality of its free edition is more limited.

Debugger

Debugging requires placing calls to Debugger.Break method in code blocks to set breakpoints. Check out this post by Gareth Jones for more details. Hopefully, future versions of Visual Studio will provide a better debugging experience for T4 templates.

Visual Studio Templates

Unfortunately, Visual Studio itself does not provide a specific item for T4 templates in the Add New Project Item dialog. This makes it difficult for developers to discover this code generation tool even exists. You can download T4 Toolbox from CodePlex, which adds several items to the Code Generation folder of the Add New Project Item dialog.

Details

Here are some articles that will help you understand how template transformation works by showing how specific blocks and processing directives are “compiled”. Examples in these articles include the original template text, compiled template code and output file it produces.

The following articles cover advanced topics of code generation with T4.

Videos

Examples

You can find some T4 examples on MSDN. You will notice that it has very limited information about use of T4 outside of DSL and Guidance packages. Here are some examples of standalone templates you can start using without having to build your own Software Factory.

Alternatives

As a code generation tool, T4’s purpose is similar to that of CodeDom (Code Document Object Model). CodeDom provides an API you can use to generate code in any .NET language from the same program. CodeDom API is low-level, complex, and has a steep learning curve. It is typically used for code generation in frameworks that need to to support multiple .NET languages. For example, T4 engine itself uses CodeDom; you have to use CodeDom to extend T4 with custom directives. Compared to CodeDom, T4 is easier to learn and use. However, T4 templates are language-specific. In other words, if you want to generate the same code code in C# and Visual Basic, you will need to create 2 separate T4 templates. Unlike CodeDom, T4 can generate any text files (XML, HTML, etc) and not just .cs or .vb files. This makes T4 a better fit for code generation in application development then CodeDom.

T4 engine is similar to CodeSmith, which has been around a lot longer, provides an excellent set of ready-to-use templates, better template editing and debugging experience for a reasonable price. Unlike CodeSmith, which was was designed to be a template-based code generation tool, T4 engine was designed as a supporting tool for Software Factories. T4 does not offer any reusable templates out of the box and provides rather limited documentation focused on use of T4 templates in DSL and Guidance packages. However, with inclusion in Visual Studio 2008, I think we will see more and more teams adopting T4 engine as a free alternative to CodeSmith.

T4 engine is also similar to NVelocity, an open-source template transformation engine. NVelocity was ported from Java and intends to stay as close to Jakarta Velocity as possible. This makes its template syntax different from ASP.NET and I would think that more people will prefer T4. I don’t know if a significant number of NVelocity templates are available at this time.

T4 Editor plus UML-Style modeling tools for Visual Studio 2008/2010

•2 Luglio 2009 • Lascia un Commento

T4 Editor plus UML-Style modeling tools
for Visual Studio 2008/2010

With tangible T4 Editor you can author your own Code Generator via Text-Templates (TT-Files) with Intelli-Sense & Syntax-Highlighting. T4 is a Microsoft Language for writing Code Generators which is similar to ASP.NET and is used by the Microsoft internally to build software and new features for .NET 4.0. The T4 Code Generation Engine is already built into Visual Studio – so the only thing that was missing was a great T4 Editor and some free UML-style modeling tools – so we shipped it.
Now it is up to you to accelerate your projects and start saving your company money by adopting T4 today and generate the code you need directly from diagrams, database schemas or xml files.


(Screenshot of features available in FREE EDITION)

In addition, with the free build-in tangible modeling tools you can directly create Software Diagrams like Use Case Diagrams, Component Diagrams, State Charts, Class Diagrams, Activity Diagrams and Persistent Object Models from within Visual Studio. (see below)

T4 Editor Features – T4 Code Generation simplified

The T4 Editor for Syntax Highlighting and Intelli-Sense allows you to author your own code generators in Visual Studio that read from diagrams, xml or any other data source.

  • T4 Syntax Highlighting for C#, VB.NET, Java, PHP, SQL, MSIL, Python, Batch Files, PASCAL, PowerShell, IL, JSCRIPT, VBSCRIPT, CSS in output text code and T4 Code Sections in C# or VB.NET

  • T4 Intelli-Sense, Intelli-Prompt and Statement Completition for T4 Code Sections. Intelli-Sense will look at all assemblies and namespaces indicated by the import and include pragma. *Limited support for namespaces in the FREE EDITION.

  • Syntax Error Reporting in ErrorList and via Text-Highlighting for errors inside the T4 text template

  • Template Gallery – Access & Share T4 Templates in our Gallery or in your Workgroup

  • Support for #Include Directive, this makes types visible to importing template’s Intelli-Sense

  • Support T4 Toolbox which includes XSD Directive, Multiple output files and more.

  • Drag and Drop XML Files and Diagrams onto T4 Editor get T4 Code to generate from them.


A Tour around T4 Editor

Double-click video for fullscreen.

Supported diagram types

With tangible modeling tools you can directly create Use Case Diagrams, Component Diagrams, State Charts, Class Diagrams, Activity Diagrams and Persistent Object Models. Which can also be used for code-generation by a T4 Template.


FREE EDITION Download

FREE EDITION DOWNLOAD is here.

Ongoing feedback-driven development

tangible modeling tools plus T4 Editor is an initiative we take to better support the .NET Community with precise modeling tools and code generation. It uses the same components we have built into our high-end code generator tangible architect. We are in the process of collecting your feature requests. Please provide us your feedback at info@tangible.de.

FAQs

Q: Will tangible modeling tools also be free in future? A: Yes, we stick to offering a FREE SKU. But we also offer enhanced SKUs with additional functionality.

Q: Which version of Visual Studio is supported? A:There are three Builds. For VS2005 we support Diagrams only. For VS 2008 we also included tangible’s new T4 Editor. Here is the tangible T4 Editor for Visual Studio 2010 (T4 Editor only as Beta1 includes MS Modelling Tools)