19th DotNetMarche Workshop “Community Tour 2011 - CMS Edition”

In a few days the 19th DotNetMarche workshop will take place, this time we will have a sort of multi-track event and we will try to show you some of the features that the major .NET CMS Platforms have to offer: we will tracks on Orchard, Microsoft SharePoint, DotNetNuke and Open Web Studio.

All the tracks will be in Italian language, you know...DotNetMarche is a local user group after all Smile. We will maybe have support to stream one of the track (once again thanks to the guys at Ce.S.M.I. at the Università Politecnica delle Marche; Giuliano, you rock even with a twisted ankle!), so stay tuned on our twitter accounts and the homepage of the website for any announcement in that direction.

I think this will be a good occasion for all the developer that live in Marche or in the central zones of Italy to get a good overview of some CMS application frameworks, especially if you face them for the first time in your career.

For detailed information about the actual Agenda, the location and all that’s around the event head up to our .Net User Group’s home page: www.dotnetmarche.org

Two quick notes about my sessions:

Orchard - overview: I will show you how I approached this system at first, assuming you have no knowledge at all of what Orchard is and how it work, it will follow the same path I’ve gone through when first started to learn the framework. It will cover basic concepts and usage.

Orchard - customizing layouts: I’ll help Michele in his development sessions trying to explain the structure of an Orchard theme and how you can start to customize it. Again it will be an introductory session because skinning an Orchard website it’s a pro job, due to the highly flexible nature of the templating engine itself (and our time is limited); if we will receive good feedbacks we maybe can have some more advanced sessions in one of our next workshops.

See you there!

Related Content


WPF, Silverlight, WP7 and the Async CTP

In the past days I had a chance to give an eye to these future feature of the .NET framework and I have to say I really love it. It allows you to write code that have to run asynchronously or in sequence (continuations) in a very simple and intuitive way.

If you know the basic principles of asynchronous programming the learning curve is quite smooth and fast (it took half a day to me to read up some documentation and start coding my first experiments)

I will not go into the in-depth of the feature, because the official documentation is good and easy to read; at this link you can find all the references and the tutorials to start with: Visual Studio Asynchronous Programming.

The CTP can be used with any .NET platform: desktop framework, Silverlight or WP7; this is good so you can experiment with your favorite environment.

Asynchronous operations are methods and other function members that may have most of their execution take place after they return. In .NET the recommended pattern for asynchronous operations is for them to return a task which represents the ongoing operation and allows waiting for its eventual outcome.

Basically after you install the CTP you’ll have access to two new language keywords and some support classes:

  • async: marks a function as an asynchronous function, it must return void, Task, Task<T> types; inside an async function you can use await expression to wait on ongoing tasks, in other words you flow of execution for the current function stops until the Task you requested to wait for ends (the programming language is responsible for setting up and handling the continuations).
  • await: causes the flow of execution to stop for the current function until the Task (or Task<T>) for which it’s called end, then the execution proceed to the previous calling point.
  • Task: it represents an asynchronous operation and exposes all the needed information to check its current execution state or to await until the execution ends.
  • TaskEx: exposes some utility and helpers function that allows us to execute asynchronous code in different threads or await for multiple tasks termination.

As you’ll see in a while using these classes is easy, and the framework itself will take care of the dirty work of generating the state machine to handle your sequence of operation; however always keep in mind this: asynchronous programming doesn’t mean ‘background threads’ all the time.

Enough talking let’s see some code in action in my WP7 app ‘All About PrimordialCode’, I’ll start by showing you some traditional async code I had there, this was the starting RssClient class that was used to retrieve the rss feeds:

public class RssClient
{
	private readonly string _rssUrl;
	private readonly object _control;

WP7 - adding a ‘Fade to Black’ effect to a ListBox

I wanted to have a small and ‘nice’ application in which to experiment things related to networking and graphic effects in WP7, so I took out the ‘My WP7 Brand’ project from CodePlex and started to customize it, this is how ‘All About PrimordialCode’ is born.

Let’s start reminding you I’m not a designer, like many of you I’m a developer.

The first thing I want to show you is how I realized a ‘fade to black’ effect for a ListBox, requisites:

  • Items that are scrolling out of the ListBox visible area have to fade away gently, not with an abrupt cut.
  • The ListBox have to maintain its full and normal interactions as much as possible.
  • It has to work with dark and light themes.

Here are the final results:

FadingListBoxWhiteFadingListBoxDark

Figure 1 and 2: fading effect on a light and dark theme.

The straightforward way to obtain those result is to use and ‘OpacityMask’ like in the following code:

<ListBox Margin="0,0,-12,0">
	<ListBox.OpacityMask>
		<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
			<GradientStop Offset="0" Color="Transparent" />
			<GradientStop Offset="0.05" Color="Black" />
			<GradientStop Offset="0.95" Color="Black" />
			<GradientStop Offset="1" Color="Transparent" />
		</LinearGradientBrush>
	</ListBox.OpacityMask>
	<ListBox.ItemTemplate>
		<DataTemplate>
			...your incredible item template goes here...
		</DataTemplate>
	</ListBox.ItemTemplate>
</ListBox>

WP7 Business Cards application goes v. 1.1

In the next few hours my first WP7 application called ‘Business Cards’ should go live with its version 1.1.

‘Business Cards’ is a digital business cards and contact info classifier application: you can take snapshot, rate, add information and categorize your contacts.

You can have detailed information about this application in its dedicated support page in this very same blog (under the WP7 section in he main menu).

‘Business Cards’ offers a trial version which is fully featured, ads free and without any limitation nor expiration time, you are not forced to buy the application in any way: you can keep using the trial version if you want.

But sadly we have a problem in the marketplace (which I discovered late) that will prevent the Trial apps to be updated in a clean way: the only way to update a trial app is to uninstall and reinstall the application, which is not good because you will end up loose your data.

Luckily enough I had provided a data backup/restore mechanism in ‘Business Cards’ (which I will also use in my next products) so, before updating, remember to perform a full backup of your data (again you can have detailed information about the procedure in the support page mentioned above).

If you have any problem with this procedure and/or something do not work keep a copy of your data and send me an email (at: guardian@nablasoft.com), I’ll check the problem and will find a way to adapt the data to the new format.

I will (slowly) add support pages for all my other active projects and resources over time.

See you all next!

QuiBrowser.it powered by Dexter Blog Engine

I’ve not been so much active on the blog lately, mainly because most of my free time was devoted once again to the Dexter Blog Engine project.

My good friend and project leader Ugo Lattanzi was going through a complete rewriting of the blog engine (the guy is a damned coding machine!) and he asked for help cause we also had a deadline to finally release a build (which we ofc missed Open-mouthed smile, it’s just delayed don’t worry...it will come...sooner or later).

Anyway we managed to complete the porting the of the Microsoft’s QuiBrowser blog in time and we can proudly say that it is now powered by Dexter Blog Engine, it feels good when you see your work in action, so here it is a screenshot:

QuiBrowser

If you take a look at the source code and compare it to the previous version you will see it’s totally different, in our opinion this new version will be much faster than before (there’s still some areas in which we can improve, but we’ll work on it). Among the news this version brings on the fields we have:

  • built on ASP.NETMVC 3
  • a newly reworked skin that takes advantage of the features that HTML5 offers
  • support for Windows Azure around the corner
  • persistence layer realized with NHibernate + ConfORM (big thanks to Fabio Maulo for the help)
  • more little things I keep forgetting

In short if you are now curious about it, go take a look to the project and leave us some feedback.

I’m really looking forward to trash the actual Dexter build I’m using on this blog to switch to the brand new shiny one Open-mouthed smile

Related Content


18th DotNetMarche Workshop: C#4, Linq, Parallel Libraries and Micro Framework .NET

This post is mainly for all my Italian readers to remind them that our user group DotNetMarche is organizing its 18th workshop.

We will have Raffaele Rialdi (MVP Developer Security) and Gian Maria Ricci (MVP Visual Studio ALM) talking about:

  • A recap on some Linq features, Lamda expressions and Expression Trees
  • Advanced features of the C# 4.0 programming language
  • Parallel Libraries: take advantage of your multicore cpu.
  • Micro framework .NET (bonus session)

It will take place next week, on Tuesday the 15, for more information and to register to the event head up to: http://dotnetmarche.org/eventi/Default.aspx?IDevento=41

As usual after the event we’ll have our community dinner in which you can keep talking about the topics of the workshop or just have fun and enjoy some great food.

I will be there, and you?

Related Content