Sense/Net 6.0 Devblog
The development blog of Sense/Net 6.0
Back to Sense/Net

Download Sense/Net 6.0 Beta5

February 20, 2010 01:20 by Peter Zentai

Its here!

Release highlights

  • Content Lists (previously Listers) have been improved internally, and augmented with an intuitive user interface.
  • Workspaces are now ready for real-life deployment and everyday work.
  • We finally implemented indexing and search via Lucene.NET, boosting overall speed by several magnitudes.
  • A new permission management system has been added, boosting overall speed and providing full support for ACLs.
  • We have re-thinked the Content Type hierarchy, and in the process, removed several long-running bugs from the system.
  • We put much work into making Windows authentication function properly out-of-the-box.
  • We have integrated Microsoft ASP.NET MVC support into the product.
  • New, declarative UI hints have been added to CTDs, helping eschew cumbersome custom Content Views.
  • The newsletter module has been factored out of the main product, and will be released as an add-on in improved form in the near future.
  • Uncountable bugs have been fixed since the last release.

Custom view for the custom fields

January 4, 2010 14:24 by Miklós Tóth

Peter already wrote a few words about managing the custom fields of a Content List. The idea is that the collection of the custom fields can be presented as a list itself. This is possible because the topmost layer (e.g. a ListView) only needs a collection of Contents to work. The background of this - using Content fields with the standard Eval method and the way of presenting the custom fields as a list of Contents - will be a subject of another post (dynamic, in-memory content type creation, anybody?), right now I'm focusing on the presentation.

The solution is to create a custom view for the given ContentList. This view will show a list of the custom fields of the ContentList.

Creating a custom view

A custom view for a ContentList is a simple ASP.NET user control that contains the markup for the chosen data bound control. You can place this control (let's call it MyCustomView.ascx) to the Views folder of any ContentList, and you'll see it in the Views menu on the upper right corner. You can test the view by selecting it from the menu.

We placed two things into this user control:

  • ListGrid: this is a common ASP.NET ListView with a few shiny scripts added
  • SenseNetDataSource control

Using SenseNetDataSource with a ListGrid

Few weeks ago we introduced the SenseNetDataSource control, that makes building data-driven sites a lot easier. Like SQLDataSource, it gives all data bound controls access to pure data - in our case, contents in the Content Repository. One of its functions is to give access to a specific multireference member of a content (e.g.: a Product content may have a Suppliers member that refers to some Supplier contents).

This way we can get a collection of editable custom fields of a ContentList. In markup, it looks like:

<sn:SenseNetDataSource ID="ViewDatasource" MemberName="FieldSettingContents" runat="server"  />

The MemberName can refer to any reference field of a content. In this case we created a "virtual" field called FieldSettingContents for the ContentList class that creates the contents from the custom fields. This is a _very_ special use case, in most cases you will use a simple reference field defined in the content type definition.

We can present the results with any data bound control:

listgrid

Creating a new template for a built-in content list view

January 3, 2010 12:14 by Dániel József

One of the main features of the Xmas preview edition of Sense/Net 6.0 Beta 5 is the Content List View framework. A Content List View is basically an ASP.NET User Control that can be used to display Content items in various fashions. We have created the framework to allow for several levels of customization. Deployers and builders have the option to create entirely new User Controls either with a compiled classbehind dll placed in the binary folder of the Sense/Net installation, or using solely declarative components, such as the newly introduced SenseNetDataSouce. However, existing, built-in views can also be altered, and several variants of a single built-in view can be created in the system.

The template engine

The framework of built-in Content List Views is comprised by two levels - a template level and an instance level. The instance level is the actual User Controls that are loaded and executed by the Webforms engine to display the Content List. Every View configured by users on a single List is represented by an instance containing the configuration-, and metadata of the view, and also the actual User Control code that is auto-generated from said metadata. What facilitates this auto-generation is the template level of the infrastructure.

In creating this template engine, we considered several options to use as the templating language. In the end we have decided for XSLT, considering its wide penetration in the web industry, and also its relative simplicity and power. The code that does the actual work in creating the instance View from the template resides in the class Portal.UI.ContentListViews.Handlers.ViewBase. This is the Content Handler for the Content type ContentListView, the type of View instances. Upon the Save event of a ContentListView, the code contained in this class loads the document referred in the Template property as an XSLT template, and executes the transform on the XML document passed on by the virtual method GetSource(). By overriding this method in the Handlers of specific Content List View types - such as list views, calendar views, icon views, etc. -, the metadata necessary to generate the markup for the given view type can be passed to the template. In the ViewBase class, the data passed to the template is an empty XML document.

In the final product, the selection of this template file will be obscured from the user as an internal detail, but currently it needs to be selected by hand upon creating a View instance. The reason for this is flexibility for testing and prototyping, and also the fact that we were in a hurry, and had more important stuff to code. Wink For you, as a developer checking out the new interesting features of our product, this is most definitely a Good Thing.

Currently there is a single View type implemented in the system, the list view. The list view - not to be confused by the "Content List View" framework, which means the entire big thing - is the "one item per row" view all so know from user interfaces dating back more than twenty years, including those of Norton Commander, Windows Explorer and Microsoft SharePoint Server. The handler class for this View type is Portal.UI.ContentListViews.Handlers.ViewBase.ListView. The XML source used for the transform is the XML formatted list of columns to be displayed in the view.

Editing the template

Now, the User Controls used as the instances for List Views were designed to be user-modifiable. The ClassBehind implementing the logic of the View type contains references to well-known control IDs. Any User Control markup containing the needed controls of the right type with the right IDs will function in this system.

However, the markup of a View instance should - and in fact, can - only be modified through the XSLT template. Any changes to the instance markup itself would be overwritten during Save. To give you a taste of how this works, let's have a look at the built-in template for list views: /Root/System/SystemPlugins/ListView/Templates/ListView.xslt. (This path may change in later releases.)

This is the main template in the XSLT file, describing the outline of the markup. As you can see, we have decided to escape all ASP.NET markup in CDATA blocks. This was necessary to maintain readability and simple editing, as ASP.NET code is non-xml and contains lots of special characters, and so doesn't play nice with XSLT at all. Note how the ClassBehind SenseNet.Portal.UI.ContentListView.ListView is referred in the header, and also note the two known controls: the sn:ListGrid and the sn:SenseNetDataSource. (The ListGrid is a wrapper over the ASP.NET ListView webcontrol, adding JavaScript for visual and behavioral effects. The ClassBehind will accept standard asp:ListView controls without problems.)

To create a new look for your ListView, try creating a copy of this template as MyListview.xslt. At first, try changing the sn:ListGrid to an asp:ListView control without further modifications. Now, take one of the existing List View instances under the demo document library, and modify its Template to MyListView.xslt. Upon saving, the new template will be used to regenerate the markup. On viewing the document library with this View, you will see that the Javascript effects have disappeared.

Further things to play with:

  • Add additional HTML markup to the view.
  • Try to convert the list view template to use an Unordered List instead of a tabular layout.
  • Add an additional, declarative ASP.NET server control to the view.
  • Try databinding it to the SenseNetDataSource.

Sense/Net 6.0 Beta 5 preview is on codeplex.com

December 28, 2009 12:12 by Peter Zentai

The source code only version of the Sense/Net 6.0 Beta 5 has just made available on codeplex as an alpha release.

There are quite a number of things we need to polish before we can reach production quality. And we are hardly working hard on the evaluation materials too that describe the Beta 5 features in detail. So get this version to experiment only with the Sense/Net 6.0 Content Lists, the Templated Field Controls and the Lucene based Content Query.  Do not implement anything important with it just yet.

More...

The sn:SenseNetDataSource is here!

December 1, 2009 19:25 by Peter Zentai

I am really excited to announce that today -as part of the Beta5 marching- we checked in the SenseNetDataSource feature.

With this new ASP.NET DataSource you can use the Sense/Net Content Repository with the rich set of DataBound controls  provided by Microsoft and other vendors (like GridView, ListView or Form) to produce more in less time using the data driven, rapid application development approach.

Also, the SenseNetDataSource (and some other controls I’ll tell you about later) makes it easier for you to build declarative solutions, that are easier to maintain, as much of the scenarios that in previous Betas needed coding now can be developed without a line of code – as long as we don’t consider writing html tags coding :).

So here is how it works: of course the way you expected it. You place a SenseNetDataSource object in the markup (you can do this from code of course) and link it to a DataBound control - GridView in our example.

image

The ContentPath attribute specifies the Content (typically a collection) we are interested in. MemberName is optional, and its default value is “Children” – so the default behavior is to list a content’s child items. You can also target reference properties with the MemberName attribute if the content has any (like “Related Articles” can be a reference property defined on an Article content type).

The result is as might expected to be:

image

Beyond accessing simple collections of the Content Repository, the SenseNetDataSource can also provide an easy access to the ContentQuery functionality. Setting the Filter, OrderBy and GroupBy attributes will help you to define your query expressions on an easy, declarative way.

But wait! Haven’t I seen Eval and BoundField there? So all these new stuff now needs C# classes and so? Do I have to define my content types in CODE NOW????

 

Wait, no! Not at all! Quite the contrary: the best thing is that all these data binding magic works with the Content Types you created as Content Types Definitions – mere XML data. This is a really really important thing: with Sense/Net 6.0 your are able to define data types – content types we call it – dynamically and then your are able to treat instances from them as strongly typed, bindable data entities.

Here is how it works:… But now I really must be going home :) I’ll finish this today, so stay tuned.

An Open Source Alternative for Vignette v8?

August 5, 2009 14:42 by Gergely Orosz

Vignette v8 is a next generation enterprise web content management tool. Previous versions of the product power some of the most sophisticated sites on the web. The latest release will be available later in 2009, however a video previewing Vignette v8 is already available.

Based on this video it is safe to say that Sense/Net 6.0 already provides most of the functionality Vignette v8 introduces. See both videos - both the video on Sense/Net 6.0 and the video on Vignette v8 - and judge yourself: 

 
Sense/Net 6.0 - unlike Vignette - is open source and available for download and evaluation immediately. In fact, the portal used in the presentation video can also be deployed for evaluation.
 
Vignette v8 is not available to the public at this time, however the latest version of Sense/Net 6.0 already is. So if you're excited about the new functionality Vignette v8 has to bring, do take some time to try Sense/Net 6.0 during the wait - it's open source, offers similar functionality promised in Vignette v8 and it can be downloaded and deployed instantly.

The future of Content Management and Sense/Net

August 3, 2009 14:26 by Orosz Gergely

Julian Wraith recently started a debate on the future of content managementDarren Ferguson attacked the question from a different angle listing real-world vendor issues that need to be fixed before moving forward. He also encouraged vendors to evaluate themselves to see what issues they need to work on. Here is the list and how Sense/Net 6.0 deals with these issues.

ISSUE FIXED IN SENSE/NET 6.0
I want to access your CMS with my browser but I can't because I use Firefox and you only support IE. YES - Sense/Net 6.0 supports all major modern browsers.
I want to roll out your CMS within my organisation, I have to migrate all of my users to be stored in a database table in a custom schema defined by your CMS. SORT OF - Sense/Net 6.0 supports Windows Authentication and Active Directory syncronization is on its way. Users need to be stored in the CMS for optimal permission handling performance, we simply need at least IDs of users, and we also need to store special metadata for different apps. The sync will be automatic and transparent. Version 5.5 supported this, in version 6.0 we simply have not completed this module yet in Beta 4.
I'm trying to define the layout for a web page using your CMS but your templating language is completely bespoke and not based on any standards. YES - Templating is based on HTML and ASP.NET Masterpages and Web Parts - all of which are industry standards. If you understand HTML Page templates speak for themselves, see the wiki article on creating Page Templates.
I've managed to render a webpage using your CMS but you seem to have added loads of extra div tags all of which have CSS classes named "crapvendor". YES - Only one div is added per portlet with an "sn" class prefix for theming purposes - so that your designers can easily customize the site. You can have this prefix changed at any time though or even removed if you do not need it. The DIVs are valid XHTML and all have nice classes, much better that the default ASP.NET Webpart HTML. Beleive me, the "sn" is not for branding purposes, but for namespacing. :-)
I'm trying to use your WYSIWYG editor but apparently I need to install an ActiveX component. YES - Sense/Net uses the TinyMCE WYSIWYG editor which runs on all major browsers without having to install anything.
I've entered some standards compliant markup into your WYSIWYG editor using the "source view" and it has "corrected it". YES - Our TinyMCE editor copes with all standards compliant markup. Should there be any problems the fix is bound to come out in a few hours at is open source and continously developed just as Sense/Net 6.0
Your CMS doesn't understand the extended character set of my source document but when I paste from this document it happily saves these characters to the repository anyway - as question marks. YES - Sense/Net uses UTF-8 coding both on client and on server side meaning it can cope with all characters from Hungarian to Chinese.
I want to import an image into your CMS - this requires a java applet. (In fact any java applets for any purpose = bad IMHO) YES - No java applets in Sense/Net 6.0. Images are uploaded via a Flash upload component enabling upload of multiple images at the same time. It would be nice to have multiple binary upload support in the HTML standard, but there's no such thing - Flash is considered quite a standard these days.
I've entered a summary of my content, now I have to manually enter keywords too. NO - As of now you do have to enter keywords manually and this will stay like this on the short term. On the longer run we are planning to integrate a keyword generating algorithm on the client side. But beware: automatic keyword generation can easily be a trap generating frequent, but non revelant keywords from an article. SEO is painstaking manual work most of the time which is not easy to efficiently automate.
I'm performng an operation that takes some time, the status screen is of the "white" and "blank" variety. YES - No blank screens. The backend of Sense/Net 6.0, the Content Explorer is a rich AJAX application. Even if an error would occur, you would be notfied in a popup dialog (not a popup window) with error details. The user experience is designed to be continous in Sense/Net 6.0. 
I've had it with your browser GUI. I want to use Livewriter but no API exists for me to implement support. YES - Our GUI in the Content Explorer is a lightweight ExtJS application using REST calls. So if you wanted to, you could create your own GUI on top of that. You can also access the API directly from any .NET application, such as from PowerShell.
I've finally managed to create something as complex as a webpage, now for the 20 step process to publish it. (Admittedly normally a limitation of the implementation rather than the CMS). YES - The publishing process in Sense/Net is a really simple process: preview the changes and click on Publish or Undo Checkout with the Portal Remote Control.
I've negotiated above process and the URL of my new page is /index.php/news/12042984626492732?ver=8.0&this=sucks YES - Sense/Net uses readable, user friendly URLs e.g. which represent the structure stored in the Sense/Net Content Repository. The URL you get will look like this: www.example.com/news/greatnews and you can point to all kinds of contents using SmartApps.
I want to assemble a list of all recent news items in the CMS, this is half a day of development. YES - Developing this feature takes approx. 20 minutes. Create a Content Query and a Query Content View visualising the results. Of course the development takes even less time if you use the news list example that ships with Sense/Net 6.0.
My site relies heavily on user generated content. I need to set up a cron job in order to get this user generated content back into your CMS. YES - Sense/Net currently runs on Windows where you can set scheduled tasks. Actually a client of ours already uses this approach to import external, user generated data in the CMS.
You believe that "your way" of versioning content is better than SVN/Git/Sourcesafe. YES - We support major versioningmajor and minor versioning or you can even turn versioning off. However, should these approaches not fit your need, you can implement your own versioning as well - we are open source, after all.
Your support engineer just provided a configuration setting to fix an issues. When I ask where this setting is documented I am told "it isn't". YES - The product is well documented on the Sense/Net 6.0 wiki and this documentation is continously updated. If you are a developer you'll be happy to hear that the API documentation is available online as well. And of course, you can always contribute to the Wiki... ;-)
The same serious defect has existed in your software for over 5 years. I personally have reported it on more than 5 occasions each time I am told to disable the component in question. YES - We take bug reports seriously. If you find a bug, report it in the Sense/Net community forum as many others have done so. We try to resolve bugs as soon as possible, usually in the next release. There are priorities, naturally - the more people ask for a bugfix, the sonner it gets fixed.

 

Based on the list above it is safe to say that Sense/Net barely has any serious CMS vendor issues that have been upsetting customers throughout the years. We beleive we are building an Enterprise CMS that is already a system that is safe to be listed among the next generation of CMS sytems.

Of course it is not us, but you, the end user, developer or customer who will decide if Sense/Net is your platform to build on. Downloadinstall, use our open source product and let us know your thoughts and what you are missing. We are open to all comments, share them with us on our community forum.

6f82f1d2683dc522545efe863e5d2b73 

New release out with Workspace and SmartBuilding features

July 28, 2009 16:28 by Orosz Gergely

We are happy to announce the release of Sense/Net 6.0 Beta 4. This version features two important add-ons: simplified portal building and collaborative workspaces.

SmartBuilding - build sites faster

When youe were building sites until this release first web and other contents, then pages had to be created to show these contents. Starting from Sense/Net 6.0 Beta 4 contents can be addressed directly and the content will display itself without having to do any manual work using the SmartApplication model.

This process briefly means the following: when a content is addressed it automatically decides what its application to show it will be - which is usually a SmartPage: a special Page that is designed to display the given content. In the SmartApplication model these SmartPages can be customized at different levels but all contents are viewable even without creating a single page to display them.

Building sites with SmartBuilding is simple and straightforward, but to understand the concept see the wiki page explaining the SmartApplication concept and a tutorial on building a site using SmartBuilding.

Workspace support 

The new version introduces a collaborative workspace feature. Workspaces are somewhat similar to a small portal enabling temas to share documents, memos, deadlines and overlook the work of the team. This feature was long awaited by some of our customers as workspaces make managing of projects and processes much easier. Building workspaces is easy and offers a real open source alternative to the same functionality in SharePoint.

Workspaces also support WebDav meaning end users can see workspaces as a mapped drive on their folder, creating, editing and organizing them in the Windows environment they are used to. 

The workspace shipping with the current release looks like the following: 

 
SmartBulding and Workspaces were two enterprise features we wanted to complete before releasing a final version. As for future plans another beta version is scheduled for the summer and we are preparing for the final release of Sense/Net 6.0 Q3 2009.
 
If you are interested in more exact details of the release, please read the official press release in the Sense/Net pressroom

Sneak preview of Sense/Net Workspaces

June 16, 2009 23:20 by Tamás Bíró

I would like to share the first draft GUI design for a Sense/Net 6.0 Workspace. Workspaces are special containers in the Content Repository, where you can store all data related to a given thing, such as a project or some other team activity. The most common things to store in a Workspace is documents, but memos, calendar events or deadlines, images, announcements and other items are also possible. Each Workspace has a Dashboard, where the activity in the Workspace is easy to follow. This is real Enterprise Content Management in action.

The example below is a Sales workspace, where a sales team store all of its documents, memos, deadlines, announcements and a sales datasheet. The screenshot is about the dashboard, it is easy to see that it has a URL, and some portlets. One of these portlets shows the datasheet, the others show queries of changes, such as the lates memos, or upcoming deadlines.

You can see from our Beta 4 roadmap that the Workspace is our number one priority in the next release. I will post more screenshots of subpages soon.

Note: This is only a GUI plan made in Corel Draw, not a real screesnhot.

CMS Vendor Meme - The Sense/Net 6.0 response

April 9, 2009 10:31 by Orosz Gergely

Even though we have not yet been tagged by the CMS Vendor Meme started off by Day. So far we have been left out of tagging so we decided to join without being tagged. And to keep the flow going we are tagging Umbraco and DotNetNuke and Liferay to participate.

 

"WE GET IT" CHECKLIST FOR VENDORS

1. Our software comes with an installer program. - Not yet

As of now it does not: you have to install Sense/Net 6.0 Beta 3 manually. However the installer is under development and is likely to ship with the next release. 

2. Installing or uninstalling our software does not require a reboot of your machine.- Yes 

Quite the obvious question: no. Deploying .NET based solutions barely has the need for restart and we are no exception either. 

3.You can choose your locale and language at install time, and never have to see English again after that. - Sort of

Language is not chosen at install time (yet). And as of now some strings within the administration interface are still English though we are constantly localizing all interfaces.

4. Eval versions of the latest edition(s) of our software are always available for download from the company website. - Yes

There is no eval version to download: you can only download the full version. And the source code as well. Did I mention that we are open source?

5. Our WCM software comes with a fully templated "sample web site" and sample workflows, which work out-of-the-box. - Yes


It does: after having downloaded it you can start with a rich demo site.

6. We ship a tutorial. - Sort of

As of now we do not include a tutorial in the download, only some sample addon code (and of course the source code). Numerous tutorials can be accessed through the wiki though.

7. You can raise a support issue via a button, link, or menu command in our administrative interface. - No

We do not have an interface as such. Support issues can be reported via our forum or - with a license - directly at our team.

8. All help files and documentation for the product are laid down as part of the install. - Sort of

Code documentation does come with the install. However non-developer help files are not shipped with the install: these can only be found online.

9. We run our entire company website using the latest version of our own WCM products. - No

Oddly enough we run on the previous version, Sense/Net 5.5. There is a large amount of data that would have to be migrated and we have not allocated enough resources to do so as of now. We are planning on updating though.

10. Our salespeople understand how our products work. - Sort of

They understand most of it. However we often have developers help in the sales process as they are much more aware of the current state of the software in the development cycle.


11. Our software does what we say it does.- Yes

This we take very seriously. We want you to get at least what you expect.

12. We don't charge extra for our SDK. - Yes

As an open source product this is self understanding. Our SDK as of now are some sample projects. You will need to have bought Microsoft Visual Studio though to use them.

13. Our licensing model is simple enough for a 5-year-old to understand. - Sort of

We have an open source GPL license and 3 different kinds of enterprise licenses. The enterprise licenses vary in the amount of support we guarantee. The licenses are not yet public as we will only be posting them with the stable release.

14. We have one price sheet for all customers. - Yes

We do not differentiate, yes. 

 

15. Our top executives are on Skype, Twitter, or some similar channel, and: Feel free to contact them directly at any time. - Sort of

We are not doing good with Skype or Twitter: we have a rather infrequently updated company account which we are planning to post to more often and one of our developers runs tweets on his everyday development. However we do respond quite fast on our forum and via email and do encourage you to contact us.


Final score: 33/45

Two notes to the final score:

  • We do not beleive in over valueing ourselves. The score represents the real value of our software right now: not bad, but far not perfect. We value your time and do not want to trick you in trying out this software and be disappointed. As we've said: it does exactly what we say it does. Try it yourself by downloading.
  • Our product is stillin beta phase. A lot of the checklist items missing right now (like installer, localization) will be included in the stable release of Sense/Net 6.0.
 

 
 
Meme ID to : 9c56d0fcf93175d70e1c9b9d188167cf Google this id to find other posts related to this meme.
Bookmark and Share