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

Geek paradise - access your ECMS from PowerShell command line

October 19, 2008 22:42 by Tamás Bíró

Our team lead developer is a real geek, and we love him for this. He wrote a Microsoft Power Shell plugin that enables users, especially developers and command line addict sysops to access the Portal File System (PFS) from a command line interface.

As you can see from the screesnhot, the first commands install the plugin, so when you type CD TNG: you actually switch the current directory to the PFS root. A simple DIR command lists the folders from the PFS, indicating the content type, YourInternet is not a Folder, but a Site.

And now for something completely different. The crazy stuff comes now. You change to YourDocuments. DIR gives you nothing, as the folder is empty. But there is the NEW-ITEM command, which creates ECMS contents right from the command line. So why not create some cars, by which I mean Car content types. Another DIR and the cars are listed... But you can also list any of their Fields, in the next example the complex DIR gives you the make and Model fields of the cars.

Another example, when you read a reference property of a content. In this example, we navigated to the IMS folder where users and groups are store, and listed the Members of the Administrator group.

Plans for future functionality include mounting multiple PFS instances and copying contents from one to another, using the copy command. Stay tuned, you geeks.

Nice job, Gyebi.

Currently rated 5.0 by 4 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Access your contents from Total Commander, Windows Explorer or Visual Studio

October 17, 2008 19:51 by Tamás Bíró

Yeeeesssss. Portal builders, developers and end users will all love this feature. Now you can access your contents from Total Commander, Windows Explorer or Visual Studio, or anything that supports the WebDAV protocol. You can even map it as a drive. So you can hav P:\ as the root folder of your Portal File System. Check out the screenshot with the first working prototype.

This is a big boost to productivity for both builders and end users, because now you can work from your favourite tools, no need to open Portal Explorer most of the time. When you save a content, it is automatically versioned, there is permission check, etc. You can also open office documents, Word and Excel directly from Office and save it back, so there is no need to download, change and upload files one by one. Drag and drop move and copy also works.

On the screesnhot, there is a Content View open in Visual Studio, there is a Content Type Definition open in IE as XML, and you can see the PFS folders in Windows Explorer and Total Commander, in the latter the PFS root is mapped to Z:\ so the folder is Z:\System\Schema\ContentTypes\GenericContent.

Screenshot made with Windows Vista and Sense/Net 6.0 Beta 2 prerelease.

Currently rated 4.8 by 4 people

  • Currently 4.75/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Content Types - The Basis Of Sense/Net 6.0

October 7, 2008 20:40 by Orosz Gergely

Content Types are the heart and soul of Sense/Net 6.0.

A content type is a reusable set of fields you want to apply to certain contents.  Everything (every content) you see in Portal Explorer and on Sense/Net 6.0 portal pages is defined by Content Types - all the files, users, groups, webcontents, page templates, pages and even folders.

If you will be building a site the first thing you will be bumping into are Content Types. For example if you want to run a news site the first thing you will have to do before being able to start off with any kind of designing or programming is define what an article will contain - define its Content Type. Lets say you decide that an Article needs to have an author, title, abstract,  text, and related articles. You will have to create this Content Type. From then on you will be able to start creating and managing these articles in the backend of your portal via the Portal Explorer. And only after that will you will be creating specific Content Views to display these articles on your website in the layout(s) you prefer.

If you want to dig deeper into this topic read the wiki page on Content Types and Tamás's article on Content Type Definitions. If you want to move on check how you can create a Content View to display a Content Type.

Currently rated 4.5 by 2 people

  • Currently 4.5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Regular TFS checkin goes to Codeplex

October 2, 2008 11:43 by Peter Zentai

I am happy to announce that we will publish Sense/Net 6.0 source code on a regular basis, weekly or daily - we haven't decided that yet. This serves multiple purposes: we publish bugfixes for issues that are brought to us, and to enable individual or modular features appear before Beta milestones. Every check in will of course include a summary of changes: new features and fixes, changes to the API, etc.

 

Currently rated 5.0 by 1 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Sense/Net 6.0 Released

October 1, 2008 22:47 by Orosz Gergely

It's been a long way. It started with the Sense/Net Portal Engine 1.0 back in 1998. From this construction evolved the 2.0 and upcoming versions all the way up to the Sense/Net Portal Engine 5.5 Release 2 released in 2006. This was a truly enterprise CMS but with the source closed. Two years ago we decided to start from scratch and develop a radically new concept under an open source lincense. And today we've come to the point when all of the Sense/Net team is happy to announce that 

Sense/Net 6.0 Beta 1 has been released!

This is the end of a long road, and the beginning of an even longer one. By opening up the project and the source we want you to use, spread and help the develop a project truly unique.

Join us on this journey 

And harvest the most of SenseNet 6.0.

Currently rated 4.6 by 8 people

  • Currently 4.625/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Using the Sense/Net Portal File System in non web environments

September 11, 2008 12:39 by Peter Zentai

Portal File System can be used both in ASP.NET and in nonweb environments such as Winforms and console applications, Windows services, etc. This is usefull for the following development scenarios

  • First time users: experiment and play with the PFS in a console application to get immediate results
  • Use PFS as a general purpose content repository regardless of application type
  • Create data storage agnostic, business entity oriented applications

More...

Currently rated 4.5 by 4 people

  • Currently 4.5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

TNG architecture model

September 8, 2008 23:21 by Orosz Gergely

The following article is intended to give an insight on the structure Sense/Net PortalEngine TNG focusing on object storage and management. This topic is a rather complex one, however, understanding this chapter is vital for efficiently working with objects stored in the Portal File System.

The architecture model

The TNG storage architecture consists of 4 separated layers.

More...

Currently rated 4.3 by 3 people

  • Currently 4.333333/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Distributed Cache in Sense/Net Portal Engine TNG

August 17, 2008 16:04 by Peter Zentai

Huhh, quite a time since the last post, so many things to care about as the planned release commences. Last week we've finalized the cache implementation of the Sense/Net Portal Engine TNG so I decided to share some of its more important or interesting aspects. More...

Currently rated 5.0 by 1 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

PFS structure basics - for administrators and developers

July 31, 2008 09:48 by Orosz Gergely

PFS - entities in a tree

As mentioned before in a PFS review entry the Portal File System is an essential repository where all kinds of entities –documents, contents, custom objects, system files, images, style sheets etc. – are stored.

For the administrator with the help of the Portal Explorer these objects can easily be administered. Editing, adding, deleting and moving these entities is incredibly simple and straightforward. At the same time for the developer the PFS is the tool that makes the definition and handling objects a real ease.

Objects within the PFS are stored in a tree which makes the backend of the portal both structured and easily administrable. It also forces developers to organize the data stored within – the PFS was not designed to store a large amount of unstructured information but instead to efficiently manage structured entities and connections between.

More...

Currently rated 5.0 by 2 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Expression based queries in the PFS

July 7, 2008 17:36 by Peter Zentai

Our apple of the eye PFS is getting smarter and smarter every day. Beyond its capabilities in storing typed information in an arbitrary object tree or graph, PFS also provides (or under the way to start providing :)  a wealth of tools to create and execute queries at runtime against the datastore. While we have PortalFileSystem.Search namespace at hand with its QueryExpression class, developers using the Microsoft .NET Framework 3.5 will also want to utilize our declarative, strongly typed query API. And by this fall we will have the LinqToPFS provider to support standard query operations with sql like syntax.

(This short writing is by no means wants to be a complete documentation on how to build queries against the PFS. That will come in a later entry - I promise. Now it's more like an apatizer to develop your hunger - or if this would already be the case then a small chunk of meat to keep you from starvation).

In our example query scenario we will search for a User object with a given name under a specified part of our object tree. (As you might already guess in the PFS every single information entity is stored as a Node or a subclass of a Node. This covers folders, files, images, even users - you name it.)

1) Using PortalFileSystem.Search

            NodeQuery query = new NodeQuery();
            ExpressionList expressionList = new ExpressionList(ChainOperator.And);
            expressionList.Add(new TypeExpression(ActiveSchema.NodeTypes["User"], true));
            expressionList.Add(new StringExpression(StringAttribute.Path, StringOperator.StartsWith, "/Root/Intranet/Users"));
            expressionList.Add(new StringExpression(StringAttribute.Name, StringOperator.Equal, "Name"));
            query.Add(expressionList);
            NodeList<Node> result = query.Execute();
            User user = result[0] as User;

2) Using Qry #1

            var qry = Portal.Root.CreateQuery<Node>();
            qry &= node => node is User;
            qry &= node => node.Path.StartsWith("/Root/Intranet/Users");
            qry &= node => node.Name == "Name";
            User u = qry.Execute()[0] as User;

As you can see this form is more concise plus frees you from learning our QueryExpression syntax - for the cost of the .NET 3.5 being a runtime requirement.

3) Using Qry #2

            var qry = Portal.Root.CreateQuery<User>();
            qry &= node => node.Path.StartsWith("/Root/Intranet/Users");
            qry &= node => node.Name == "Name";
            User u = qry.Execute()[0];

4) Using Qry #3

            var UsersFolder = Node.Load("/Root/Intranet/Users");
            var qry = UsersFolder.AllChildren.CreateQuery<User>();
            qry &= node => node.Name == "Name";
            User u = qry.Execute()[0];

5) Using LinqToPFS  - "blue print version"

            var userquery = from u in Portal.Root.Children<User>
                                    where u.Name == "Name" and u.Path.StartWith("/Root/Intranet/Users")
                                    select u;
            User user = userquery.First();

 

Currently rated 4.3 by 3 people

  • Currently 4.333333/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Bookmark and Share