ScrewTurn Wiki 4 Releases and News

Hosted ScrewTurn Wiki Survey

December 7th, 2011 by Dario Solera | 2 Comments | Filed in Community

No, we don’t offer a hosted version of ScrewTurn Wiki, but we might in the future. If you could help us understand if and how that would work for both you and us, it would be very nice of you. How? Simply answer this very short survey: http://goo.gl/4yt2d.

Obviously, any comment, suggestion or critique is more than welcome.

ScrewTurn Wiki 4 Alpha Refresh

October 20th, 2011 by Dario Solera | 2 Comments | Filed in Development

Today we’re refreshing the Alpha release of ScrewTurn Wiki 4. Here are the notable changes and additions:

  • JSON-based data import and export is fully implemented; export has also been back-ported to v3 to easily upgrade to v4.
  • The plugin system now allows plugins to register request handlers, so it’s easy to provide interactive functionality and respond to HTTP requests from plugins without kludges; to get an idea about how this works, have a look at the revamped Rating Manager Plugin.
  • The wiki now supports extension-less URLs for wiki pages; the feature is enabled automatically when the wiki runs in an Integrated Pipeline Application Pool (obviously, all existing URLs ending with .ashx will continue to work), so you’ll need at least IIS7 to see the new URL goodness.

So, this release marks an important point: no major architectural changes are planned for the new version. This means that what we have to day, unless it’s absolutely necessary, won’t be changed significantly and thus the data you create and save with this release will be upgradable to the next v4 releases.

How To Deploy ScrewTurn Wiki 4.0 on Windows Azure

September 7th, 2011 by Matteo Tomasini | No Comments | Filed in Development

In this short post we’re going to learn how to deploy STW 4.0 (still in pre-release at the time of this writing) to Windows Azure.

Hosted Service and Storage Account Setup

Navigate to the Windows Azure Development Portal (windows.azure.com) and sign in with your Live ID. From the home page select Create a New Storage Account.

New Storage Account Button

In the Create a New Storage Account form fill in the domain name; this domain name, which is always in the acme.cloudapp.net form, is global so you may need to fiddle with it a bit to get a name that is not already in use by another service.

Create New Storage Account Form

It’s a good idea to create an affinity group to ensure that storage and hosted services that use it are located in the same datacenter, reducing bandwidth usage and increasing performance. Affinity groups can also specify a preference for a geographical region so that service and storage are as close to your users as possible to minimize network latency.

Click OK and you’ll see a summary page for your new storage account.

After downloading the Windows Azure Table/Blob Storage package, you have to tell ScrewTurn Wiki to use your new storage account. To do that open the ServiceConfiguration.csfg file with your favourite text editor and modify the ConnectionString setting:

  • choose your preferred Endpoint Protocol between http or https (the former is faster, while the latter is to be preferred for inter-datacenter communication)
  • replace the Account Name with the one you created in the Create a New Storage Account form
  • from the Storage Account summary page select View Access Keys for your newly created storage account, copy the Primary Access Key and paste it replacing the Account Key value in the connection string.

View Access Keys Button

Now you have to create a new Hosted Service.

New Hosted Service Button

From the Hosted Services summary page select New Hosted Service.

Create New Hosted Service Form

In the Create a New Hosted Service form fill in a friendly name for your service and the domain name. Choose a geographical region or, if you have created it, select the affinity group.
You can then select the Deploy to Production Environment option and after creating a name for your deployment upload the Azure.cspkg and ServiceConfiguration.cscfg files.
Click Ok to start the deployment.

An alert pop-up will appear warning you that your deployment has one role with only one instance. You can just click Yes and continue the deployment or modify the ServiceConfiguration.cscfg file changing the value of the Instances setting from “1” to “2” or more:

<Role name="WebApplication">
    <Instances count="1" />
    <ConfigurationSettings>
    ...

Deployment for Multiple Wikis

ScrewTurn Wiki 4 natively supports multiple independent wikis within one application instances. Each wiki must be bound to an dedicated host address, for example:

  • support.acme.com for a public customer support wiki
  • hr.intranet.acme.com for a HR private portal
  • dev.intranet.acme.com for company developers.

The fun here is that the wikis, while being completely independent, all live in the same application instance, saving server resource and significantly reducing the burden of keeping STW up-to-date.

If you want to deploy ScrewTurn Wiki on Windows Azure with support to multiple wikis you have to edit the Wikis setting in the ServiceConfiguration.cscfg file before publishing it.

The names of wikis must separated by a pipe and for each wiki you can specify one or more hosts separated by semicolon:

<Setting name="Wikis"
    value="root=|support=support.acme.com|hr-intranet=hr.intranet.acme.com|dev-intranet=dev.intranet.acme.com" />

The “root” wiki, which is mandatory, also acts as fallback for all unknown hosts.

There is a caveat: on Windows Azure, you can only specify one host for each service. In order to access your multiple wikis, you’ll have to create multiple CNAME DNS records, all of them pointing to host of your Azure service (e.g. acme.cloudapp.net), quite easy, but that is required if you want multiple wikis.

ScrewTurn Wiki 4.0 Alpha

September 6th, 2011 by Dario Solera | 6 Comments | Filed in Development

Today we’re releasing the first Alpha version of ScrewTurn Wiki 4.0.

The main change in this release is the brand-new search engine, completely based on Lucene.NET.

The new search engine is available on all storage engines:

  • Local, a.k.a. SQL Server CE
  • SQL Server
  • Windows Azure Table/Blog.

This is an important improvement as the new search back-end is faster, more accurate and it finally supports wildcards, so you can search for “local*” or even “locali?ation”. Way cool.

Tomorrow we’ll also publish a guide on how to deploy ScrewTurn Wiki 4 on Windows Azure. Stay tuned!

ScrewTurn Wiki 4.0 CTP 1

August 18th, 2011 by Dario Solera | 6 Comments | Filed in Development

Today we’re releasing a CTP refresh for our brand-new 4.0 line. This new version completely replaces the old flat file-based default storage engine with a new one, built with SQL Server CE 4.0. From the outside, everything will work the same.

The rationale behind this decision is very simple: it became too cumbersome for us to maintain two main data storage providers. Using SQL Server CE allows us to use almost the same code for both SQL Server CE and the larger editions of SQL Server. This became particularly important if you consider that we now also have a storage provider for Azure.

You can download the compiled application as well as the source code right from our v4 CTP page. If you’re a dev, don’t forget we have a Mercurial repository at BitBucket.

To build the source code you’ll need to have SQL Server CE installed on your machine (we can’t redistribute the binaries with the source code), but to run the application, you will not need it as it’s set to CopyLocal.

Next up: new search engine based on Lucene.NET.

Version 3.0.5.600

July 12th, 2011 by Dario Solera | No Comments | Filed in Development

After almost 10 months since the last 3.0 release, today we’re releasing version 3.0.5.600. It’s basically a bugfix release and here is the changelog:

  • Improved support for proxy- and load-balancer-based scenarios
  • Added support for absolute paths for PublicDirectory config setting
  • Added possibility to specify list/page size in config
  • Added Korean translation
  • Added Brazilian Portuguese translation
  • Added Vietnamese translation
  • Fixed editor caret position bug in IE
  • Fixed issue in page deletion (page links not updated correctly)
  • Fixed issues in page redirection
  • Fixed usernames in RSS feed
  • Fixed issues in formatter
  • Updated some translations
  • Converted solution to Visual Studio 2010.

As you can see in the last item, we finally abandoned Visual Studio 2008 in favor of 2010. The solution still targets .NET 3.5 (STW 4.0 will target .NET 4).

For those of you having problems with sorting in the wiki index (AllPages.aspx), given that a fix requires architectural changes that will be implemented only in version 4, we added a workaround, which is the possibility to specify the number of items to display in long list. By setting a large number, paging is disabled altogether, thus mitigating sorting problems.

ScrewTurn Wiki 4.0 CTP

June 15th, 2011 by Dario Solera | 3 Comments | Filed in Development

We’ve been working like crazy since last February to build a first version of ScrewTurn Wiki that runs natively on Windows Azure.

We’re all very happy to announce that the first Community Technology Preview of ScrewTurn Wiki 4.0 is now available. We have a dedicated page on our main website where you can download the compiled packages as well as the source code, plus get access to our public Mercurial repository.

Here is a list of the changes made to it (not only for Azure!):

  • support for multiple wikis: with one application instance, you can run multiple wikis, each one on its dedicated hostname (multi-tenancy)
  • native support for Azure storage (Blob, Table), much cheaper than SQL Azure and ready for unlimited horizontal scalability
  • JSON-based data import/export (will be added to v3 too for importing v3 data into v4)
  • support for dynamically uploading themes as ZIP archives
  • revised administration UI
  • data providers are now installed and configured in web.config (plugins, aka Formatter Providers, are still installed dynamically in the admin panel)
  • ASP.NET 4.0.

It’s important to note that:

  • this release is not production-ready nor feature-complete
  • performance is not optimal
  • we’re going to make other big changes to the codebase
  • all our plugins have been updated to work with the new version
  • all 3rd-party plugins are not compatible (but they’re easily fixable).

Known issues:

  • concurrent page editing warning is not displayed, meaning that nothing prevents two users to edit the same page at the same time (leading to funny errors)
  • uploading ZIP theme packages when using SQL Server actually stores themes on the file-system for now, so this feature cannot be used in web farms
  • JSON data import/export is not yet completely implemented.

As said, this is not a final release and here are some of the things we want to implement:

  • simplified data architecture, especially in terms of PageInfo/PageContent
  • search engine improvements (with Lucene.NET, probably)
  • more power to plugins
  • improved editor (with the possibility to swap it)

What would you like to see? It’s time to come up with ideas!

P.S.: Big thanks to Microsoft and especially to Dirk Primbs for the support they’re giving us in this effort!

New Visual Editor Backend [Beta]

April 21st, 2011 by Dario Solera | 2 Comments | Filed in Community, Development

We’ve rebuilt the Visual Editor backend from scratch, and it’s now available in beta in our development builds. You are now able to switch to WikiMarkup and back faster, but above all with less errors and glitches. Of course, feedback would be highly appreciated.

Regarding actual editor features, they remain unchanged at this moment, but now that we have a more robust HTML-to-WikiMarkup processor, we can start working on new features and improvements to existing ones.

On a side note, we moved our public Mercurial repository to Bitbucket and we improved those formerly known as nightly builds. We now call them development builds because they’re not built daily, but rather every time changes are pushed to the repository (actually, they come right out from our integration server). This is a huge improvement because, if we fix a bug, you’re able to download an updated compiled package of ScrewTurn Wiki in less than 5 minutes, instead of waiting 24 hours. Cool!

New Mercurial Repository, New Issue Tracker

February 23rd, 2011 by Dario Solera | 10 Comments | Filed in Community, Development

This is mostly a public service announcement.

We’ve migrated ScrewTurn Wiki’s repository to Mercurial, and a public clone is now available at http://bitbucket.org/screwturn/screwturn-wiki. Also, we migrated from Unfuddle to Codebase specifically to support Mercurial and public access to our issue tracker.

If you are one of those many users who run a customized version of ScrewTurn Wiki, I imagine that merging changes into a new application version was never easy. With Mercurial you can now do that more easily. Let’s see how.

Firstly, clone STW’s repository:

hg clone http://bitbucket.org/screwturn/screwturn-wiki ScrewTurnWiki

Re-apply your changes, possibly with a patch and merge tool, then commit them into your local repository.

hg commit -m "My super mod"

Every time we push new changes into our repository, you can simply pull them into your clone and easily merge them with your customizations:

hg pull
hg up
hg merge
hg commit

This way you get the benefits of version control for your very own changes without the burden of merging them with our updates. Cool!

A New Era: ScrewTurn Wiki on Windows Azure

February 14th, 2011 by Dario Solera | 2 Comments | Filed in Development

You may have read that we recently shipped, in collaboration with Lokad, a production website built with ScrewTurn Wiki and hosted on Windows Azure. Well, that’s just the first step to fully support Azure as runtime environment for your favorite .NET wiki engine.

Today we’re officially starting a new project, that will be like this:

  1. Resolve all known bugs that do not require architectural changes, push a new release ASAP
  2. Fix the Visual Editor and make it more reliable (this requires to rewrite our Reverse Parser, i.e. the component that converts HTML to WikiMarkup)
  3. Plan required architectural changes to support specific new features, in particular:
    1. Better (or swappable) search engine (e.g. via a unified ISearchProvider)
    2. Swappable editor (not sure yet)
    3. More flexible plugin SDK
    4. Better plugin ecosystem
    5. Better themes ecosystem
    6. Windows Azure blob and/or table storage
    7. Some, uhm, facility that allows to *safely* install 3rd party plugins when running in multi-tenant instances
  4. Code code code
  5. Public beta in early June

Why Azure?

We’re big fans of Windows Azure. It’s a very interesting way to host web applications, and above all it allows to scale easily. Even if you don’t need a lot of computing resources, with a few dozen Dollars/Euros a month, you’d get a two-instance web role with 99.95% availability and reliable storage. It makes sense both from a technological and economical point of view.

Moreover, we’re supported directly from Microsoft. They’re happy to see an open-source project hardly working to support their cloud computing platform, and we’re excited to start this new journey.

New Team Member

To help us with this effort, a new developer is joining our team to work on ScrewTurn Wiki full-time. This is the first time in more than four years that someone will work exclusively on STW, so trust me when I say that it’s something groundbreaking.

Want to Help?

This is the perfect time to say hi and offer to help us out. So far we failed to get contributors because we somewhat demanded continued efforts. That doesn’t work, so we changed our minds. We’re fully opening our issue tracker (more info on that in a few days), so feel free to drop us a line if you want to help with something, even if it’s very small and only takes little effort.

Side Projects

  • RESX Synchronizer allows to synchronize multi-language .resx files (used for the development of ScrewTurn Wiki).
  • Pixel Picker enables to pick the color of pixels on your screen — very handy for day-to-day graphics-related activities.

About

  • Copyright ©2006-2012 Threeplicate Srl. All rights reserved. Some of the icons created by FamFamFam.
  • See our Privacy Policy.