DotNetNuke - Pro vs. Community Versions [closed] - dotnetnuke

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
Our organization is looking to put up a site utilizing DotNetNuke, and according to our consultant (who is less a .Net fan and more of a Joomla fan), there is 'anecotal evidence' that the Community version is crippled in a way that pretty much forces you to get Pro if you wish to have a reliable site.
I have serious doubts as to the validity of this claim, but just in case I would be very interested to hear if this is or is not the case, based on use of the product and it's community and professional versions.
Specifically, if there are bugs/issues/etc in the community version that are resolved only by upgrading to pro.
I apoligize in advance if I posted this on the wrong stack exchange, but figured this was the best bet ;)

I would definitely disagree with that assessment.
The only Pro feature that I can think of that might affect reliability is a different caching provider (which we've had more problems with than the standard caching provider). I believe it's the suggested provider for a web farm scenario, but in most typical scenarios it won't be a big issue.
The community edition is the same community edition that's been used in real sites for years, there's been no crippling to it since the introduction of the Pro version. The Pro version is just a number of custom extensions on top of the community edition, most of which are quite optional for everyday use a website.
The Edition Comparison on DotNetNuke.com shows the following inequalities:
Advanced Content Approval Workflows
Content approvals ensure any of your users impacted by a content change can approve updates before they go live. Workflow approvals can be configured in a top down hierarchy at the site, page, and module level. A business rules engine enables workflows with an unlimited number of states and reviewers
Granular Permissions
Page, module and folder level extended permissions provide granular security rights which allow you to precisely define which content contributors can edit which modules on each page.
Advanced Site Search
The search engine includes rich query syntax with support for Boolean searches, phrase searches, relevance searches, wild cards, fuzzy searches, and groupings. Includes a true web spider that is capable of indexing any site which removes the requirement to implement the ISearchable interface within modules.
Configuration Manager
A host user can manage the various configuration files that control run-time operation. Upload a Configuration Merge script which can be used to automate many of the more repetitive and complex configuration operations.
Content Staging
Content contributors and software engineers make all changes to your web site on a physically separate staging server. You push the staging site to production when all changes have been reviewed, tested and approved.
My Editable Pages
Links to all of the pages and modules in the site which a user has permission to Edit are displayed, allowing efficient page editing
Document Management
A complete document management solution which allows your organization to store, control and view documents online
Module Caching
A database caching provider for module content which stores module content in a centralized database for faster page loading without requiring web server processing.
Page Caching
Allows your site to save an entire page of rendered content to one of three different caching locations: memory, database or disk. Improves page delivery speed for site visitors.
Distributed Caching Provider
More efficient resource usage in large web farms
File Integrity Checking
Checks files in the installation and reports any inconsistencies which may impact website reliability
Health Monitoring
Pings your web site periodically to identify failures and will notify you of any problems. Also ensures the site stays in web server memory for faster visitor accessibility
Security Center
A host-level feature which dynamically loads a list of known security vulnerabilities affecting your version of DotNetNuke and provides you with navigational guidance to acquire the latest upgrade
Comprehensive Product Documentation
Includes more than 2,800 pages divided into User and Superuser Manuals
Online Knowledge Base
Provides guidance for DotNetNuke administrative tasks and answers to common technical questions
Impersonate User
A host-level feature that allows you to impersonate another user who is a member of your web site. Search for a user by name and then click an icon to assume their identity to view the site using the user’s permissions while keeping their password confidential.
Outside of the three caching items, I don't see anything in there that's more than icing on the cake. Also, having used many of those features, they aren't quite as impressive as they all sound, and the DNN community core isn't completely devoid of any similar features. Module caching, in particular, is available in the community edition, there's just another provider. Also, page caching is possible in the community edition, it just doesn't come with any page caching providers built-in.

Quite the opposite.
Disclosure: Scott Willhite, Director of Community Relations for DotNetNuke
There is absolutely NO limiting code in the DotNetNuke Community Edition, and I am quite proud of that fact. We have made a purposeful and, frankly, very challenging business decision to keep our Community Edition the base of all of our software. We engage in enhancement of the base Community Edition to produce Professional and Enterprise editions using the same extension points that are available to all developers. And we constantly add features and capability to the Community Edition which benefit all users of the platform. Any suggestion to the contrary is unfounded and misleading.
Some companies choose to limit their free editions (by number of users, number of content items, number of pages, etc). Some require branding that can't be removed in free editions. Others specifically use their free editions as "hooks", knowing that a customer of any size will be forced to upgrade if they want to continue using the product. None of these approaches is acceptable in a truly open source environment and none of them are in practice with DotNetNuke.
It is fair to say that we have resources working on proprietary extensions to distinguish our Professional and Enterprise edition offerings. But this is the same privilege we enable hundreds of thousands of others to enjoy who develop for or implement proprietary solutions using DotNetNuke. We are also customers of those extension points and so are constantly improving them for everyone's benefit because we don't just use them as marketing points, we base our companies products on them. Every release of DotNetNuke contains both substantial Community Edition as well as commercial edition enhancements.
To specifically answer your question... while there are no constraints within the Community Edition of DotNetNuke, and it is a highly functional application out of the box, it cannot address every need (no product can, all projects have unique requirements). This is why it is constructed with well defined extensions points and why there is such a vibrant open source and commercial ecosystem supporting it. So it is fair to say that the solution, out of the box, may not address all of your needs specifically? But between Professional & Enterprise options, 000's of commercial extensions on Snowcovered, 00's of open source options in the DotNetNuke Forge and myriad developers and integrators in the ecosystem (in addition to your own skills), I am confident that any need can be met in the way that makes the most sense for your or any application.

I too would disagree strongly. I've been working with DNN for years, well since version 3 and there is no great conspiracy to force CE users to upgrade to Pro. I've rolled out 100+ Community Edition sites (seriously, no exaggeration) and the ONLY PE sites I've worked on were usually government or educational institutions where they needed content staging or the benefits of the OpenDocument Library module. To me, it sounds much like you say - your consultant is letting his opinion of .Net vs. PHP flavor his recommendations.

Related

Sitecore more for corporate users? [closed]

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 9 years ago.
Improve this question
First, I've looked at every other stack site and I can't seem to find an very appropriate place to ask this. It's a pretty general questions, but basically, I'm wondering if Sitecore is targeted mainly at corporate users?
I've done a bit with Drupal and because it's open source of course you can install it on any shared host (at least LAMP but I guess Windows as well). I can't seem to find a lot of sites that advertize hosting for Sitecore other than the limited number on the SiteCore hosting site.
The only ones I see prices for tend to be WAY more than what you get from a shared host. IE, $100+ per month vs. ~$10-20 for your typical LAMP Shared host.
I'm about to get some Sitecore work at my company, and wondering if I'm going to be able to do any playing on my own with Sitecore outside of work, but it seems this is something you don't play with unless you have an actual license and host, unless there's some test environment one can set up on your local box, or is this not feasible?
As you can see, these are fairly basic questions, but I could not find good immediate answers to them while searching, so any good basic primer or info would be great!
Sitecore is an enterprise level web content management system (or Customer Engagement Platform as they call it).
The license fees vary per country and setup, but start at around $20k.
If you want to play with Sitecore as a developer, you can ask them for the Sitecore Xpress edition.
It's a free, limited release for developers.
You need to contact Sitecore and they will give it to you.
For non-commercial use you can use Sitecore Express. You'll have to contact Sitecore to get this.
This is a scaled back version though.
From their site:
Xpress is a version of Sitecore’s CMS that has been seriously scaled
back, but is ideal for developers wanting a no cost version and are OK
with the restrictions. While the enterprise scalability and
performance power has been pulled out, as well as the business
user/marketing capabilities, the developer flexibility remains.
I don't know about the cost of hosting it.
As the others have mentioned, there are ways to get the software without a license, but traditionally developers work with this with a license.
At that point, you do not need to worry about hosting, as long as you can run a .NET web application on your machine. Sitecore runs in IIS with SQL Server or Oracle databases. This allows you to do all your development and playing around on your local machine without needing to have it hosted.
In my experience, your best bet for short term hosting of Sitecore is a service like Amazon EC2. A service like this gives to access to remote server space where you can install Sitecore and all the extras you may need.
This sounds like a good fit in your case since you can start and stop the service whenever you need. This will allow you to play around with Sitecore without a large upfront investment. Also, you can always start up a new server instance whenever you need an outward facing site to show clients.

Pros and Cons of Sharepoint vs Silverlight [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I want to understand the differences in applications developing in Sharepoint and Standalone Silverlight application. My application is going to be a dashboard kind of application which some charts and graphs with metrical data.
Can anyone summarize Pros and Cons of developing this application in Sharepoint
and Pros and Cons of developoing this application in Silverlight
SharePoint will give you control on the data itself. You'll be able to include scenarios involving workflows (e.g. approval) or where access is restricted. For example I worked on a project where the customer had two vendors, and of course he didn't want vendor two to see vendor one 's data on the dashboard.
SharePoint will also give you more rendering options, either html or Silverlight. This will be useful if you need to support a wide range of devices (including mobile).
The cons are the overhead involved with the SharePoint deployment.
As John Saunders said, it is a broad topic and there is no simple answer. One important factor to consider is the size of your project. If you are in a corporate environment involving collaboration, most likely SharePoint will be a good option, either with or without Silverlight.
Presumptions-
You are required to involve SharePoint in some way (intranet? managers use SharePoint?)!
SharePoint
Pros
Direct access to SharePoint data and objects
Easily added to SharePoint sites/pages etc
Cons
Stuck within the SharePoint platform
More involved to get the development environment going (maybe you already have this setup)
It's SharePoint
SilverLight
Pros
Can be viewed in any browser with the SilverLight plugin
Can itself be displayed within SharePoint (e.g. appears to be in SharePoint)
Not tied to SharePoint
Cons
Requires the SilverLight plugin to be installed on each client's machine as well as the correct version etc
May need to access SharePoint web services rather than having direct access to SharePoint (If your dashboard data comes from sharepoint)
A separate server (or the same) to host any WebServices that it might require
Edit
It's possibly worth you mentioning what control sets you have access to as if you have licenses to either SharePoint or SilverLight third party controls this might effect what the result of your Dashboards are
Feel free to add to this...
SharePoint and Silverlight are able to access the Data directly. Think about
ClientObject Model / Server Side Object Model
REST Service
SharePoint WebServices
Building dashboards in SharePoint (by using WebParts) are OOB configurable for the user. The users already know how to use SharePoint because of it's consistent UserInterface.
The advantage of Silverlight will be that you dashboard could be installed on the desktop if you're adding OutOfBrowser support.
I think Silverlight has some disadvantages, but they really depend on your requirements and on your target audience
Reach (on the internet only a few percent have installed Silverlight plugin)
Security (based on SharePoint there is already a security model)
SharePoint is offering a lot of platform features which will cost a lot of money to reinvent them in Silverlight.
Just my cents ;)
Thorsten

DotNetNuke VS Drupal 7?

I am planning to build a website for courses online, teachers can create their courses and put their exams, students can enroll, view courses and apply for exams ..
I am a bit confused, to build it with DDN or Drupal ? which is easier and more powerful ?
I have no problem with .NET C# or PHP, although I see C# more easy to code with,
what I need to know, which CMS is better for my case ?
Which CMS is more robust & complete ?
Thanks in advance.
Of course, either platform has its pros and cons. What you're looking at building is essentially a Learning Management System, or LMS. There are a few existing LMS solutions built specifically for DotNetNuke. They include Engage: Campus, NetLearn, and Accord.
I would tell you to go with which ever platform offers you the most features for managing this kind of content for the best return on your investment, and offers you the best comfort level. If you're familiar with .Net and are comfortable in that arena, then stick with DotNetNuke. Otherwise go with another platform. However, having nearly 8 years of experience in developing solutions with DotNetNuke, and 13+ overall in developing software solutions (including PHP-based ones), if I have a choice, I always go with DotNetNuke. (And not just because I am an employee for a year now.)
I find that DotNetNuke has the most stable builds and releases overall. It's security team and features are second to none. It's community and ecosystem is unrivaled. If you're looking for a pre-built solution for any kind of business problem, chances are that the 10,000+ extensions in the Store or Forge will get you up and running with less development time and less expense. The forge has free (open source) extensions, and the median price of a store extension is $89 (LMS's are quite more expensive though).
The eco-system also boasts over 800 known ISV's out there. So chances are, if you're looking for support, not only is there an official company to provide it and back you up when something goes wrong, there are numerous other options out there in terms of companies that specialize in DotNetNuke.
One last thing on the releases... DotNetNuke has a known roadmap, a frequent release cycle, and an outstanding reputation for backwards compatibility. Your extensions will continue to work on the platform as you upgrade to take advantage of the latest and greatest features added to the platform, usability updates, bug fixes, and security updates.
As a Sales Engineer at DNN Corp, I hear all kinds of use cases, and I see DotNetNuke used a lot in educational institutions. They all use it to varying degrees as not only a CMS, but also a LMS, social platform (even in schools), and more. Most schools are also standardized in some way on the Microsoft stack too, so integration is much more straight-forward using DotNetNuke.
I could go on, but this is as much time as I have to give you an informed response.
Based on what you are trying to build DotNetNuke will only really give you authentication and basic page creation out of the box. All those other elements will have to be custom coded in .NET.
If you use Drupal 7 you can build majority of that using CCK, Views and workflow without really having to do a ton of programming if you don't want to.
I have been doing DotNetNuke since 2003 and have developed tons of modules for it, including some publicly available at www.dnnspot.com
If I was in your shoes I would do Drupal, but I know both pretty well.
ACTUALLY - If 'I' was in your shoes I would do Ruby on Rails now ;) but ... Drupal would work pretty well and you could get alot if not all of this done without slinging much code. Drupal is crazy.
DNN is now built on C# but has always been on .NET. I'm in a similar position as I code in PHP and .NET and have used Drupal and have been working on DNN for the last 4 years. I find that Module Development in DNN is wonderful.
i hope that helps.
Full featured Learning Management Systems (LMS) require substantial development (man decades), especially if you want to support SCORM eLearning content. Both DNN and Drupal will offer you most of the add on functionality that you will need in addition to the LMS features - the ability to build web pages, rich text editors, etc.
I would evaluate the different the LMS available for each platform and make your choice based on how robust the LMS are. In addition, evaluate how easily the LMS integrates with add on modules such as forums, wikis, etc. Most of our clients select our LMS without any knowledge of the portal framework beneath it.
Based on these evaluation metrics I am confident that you will find the Interzoic Accord LMS running on DNN to be a superior choice.
Chris

Using Preview Technology in Production Software

What are the pros/cons to using CTP technology for internal production softtware? By internal production I mean it's software we're not selling to anyone else but will be used by a large number of internal employees spread nationally.
I can see the obvious plusses (features and functionality that beats existing systems) and minuses (bugs, lack of support, changes in the interface, risk of discontinuation.) I'd like to hear from people with experience using preview tech in production software and the kinds of hurdles and things that we might not be considering.
The technology in question is the Silverlight Bing map control CTP.
Thanks,
It's a call that can be tough to make and really depends on your circumstances. A beta control from Microsoft, targeted at developers, that fills an immediate and important need, may be just the right fit if you are understanding the lack of support.
Especially given how quickly internal apps and even public sites go through revisions and quick improvement milestones.
The Silverlight Toolkit has been trying a new model for the last year; we've introduced special quality bands, to help customers make a call, and understand the investment and guarantees that the product team is making. I sort of hope we can get other teams to make a similar commitment.
The AutoCompleteBox control was essentially CTP a year ago, in the Preview quality band. Since then we invested and shipped it in the Silverlight 3 SDK as a mature, supported product.
Have a discussion with your management to define what risk you can take on while still enabling your internal users with quality value (scenarios that do work great, regardless of the released quality under the hood).
Consider source code!
One thing that you can also do is have a discussion around source and binaries. Although you won't always have an option to grab the source for many controls or frameworks, there are a lot of open source releases available today. Your control vendor may also be willing to offer a source license.
The cost for maintaining your own private branch of an open source control is high, but it is an avenue that can be explored if you need fixes earlier, want to add your own functionality, or feel that a developer day of work might just get an existing control customized for your scenario.
Updating with some more specific links:
Silverlight Toolkit
Here's more information on the Silverlight Toolkit's Quality Bands, for those that are interested. They are Experimental, Preview, Stable, and Mature; Preview is much like CTP, Preview - Beta, and Mature - Released and supported.
These are all just words, but they are "the word" of the team.
Microsoft Connect
WRT the Bing Maps control, I did see that there is a Microsoft Connect site out there. That's a great resource to have - although I am not in the program, typically Connect sites are there to help provide more frequent drops, a set of forums for discussing any issues, and a way to easily get in contact with the developers and testers on the product.
Other vendors
There are many other vendors out that that provide early releases, feel free to use the comments to add a non-Microsoft angle to this. I wanted to provide my opinion on these topics since I'm pretty familiar with a lot of the Silverlight-specific Microsoft frameworks that are out there.
Personally I don't think it's a good idea, as essentially your internal employees are your market, so this is essentially production software.
So things like licencing, compliance, support, SLA's may need to be thought through.
I know that would be frowned upon by my IT Director and Internal Audit people, to name two.
Are you reasonably sure it will work and not kill your employees' pets? Then it ought to be fine.
Seriously, just be sure it works for the target audience.
As always, IMHO.
Sometimes you just dont want to wait for a new feature, for instance we started using SQL Server 2008 in our new architecture just for the DateTimeOffset. We used this application internally, but this wasnt a major deployment. If its stable enough then why not. The Pros are you dont have to wait, you're testing new techniques, code and keeping up with technologies.
The cons are that some features will change, API arent finished or some things get renamed. These things present themselves pretty quickly and are normally easy to change. Also some things may not be documented, but there is always someone blogging about it.
With the tools available today like HockeyApp to manage betas for my apps I am less afraid to use preview APIs in beta versions of my apps. This way I can work out new functionality with real users who want to try out the bleeding edge.
When I have keep the new version limited to a small set of users this has been fine.
The times I have used preview technology in production I have been occasionally bitten by the bleeding edge. I have had to work around bugs or live with them while I waited for them to be fixed.

What do people think of Gupta Team Developer? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
Has anybody any experience in using Gupta (formerly Centura) Team Developer?
If so, what do you think of it in terms of its capability to support the development of mature, scalable, maintainable applications?
Thanks
I have been using the CTD since version 1.1. Currently I'm still using 2.1 PTF4, mainly for doing rich client CRUDs under windows 98-Vista against Centura SQLBase, MS Sql Server or MS Access. I have not upgraded from 2.1 to the newer versions, so I can only talk about the relatively old 2.1 from 2001.(§)
Our applications typically have about 150 form windows, make heavy use of classes (still called "user defined variables" in 2.1) and integrate MS Office. We have no stability issues or memory leaks. The development environment is a bit long in the tooth, though: no intellisense, no smart debugging and practically unusable without a mouse. This may have changed with newer versions.
There is nothing in the nature of CTD that forces you to write un-maintainable code. Using classes and file-includes you can have a good degree of reusability in your code if you designed your code to be reusable, that is. A problem for maintainability may be that CTDs variables and classes do not have access modifiers like "private" or "protected". Also: no interfaces or abstract classes. On the other hand: multiple inheritance.
The "outline structure" of the code takes some getting used to, but I even sometimes miss the outline structure when I get lost in a sprawling C#-file with variable declarations and event handlers all over the place...
The controls for 2.1 where pretty complete but we still had to manually integrate "modern" things like toolbars, datepickers or tab-controls. OTOH it even has a numerical input field out of the box. One of the Unify-Newsletters stated that they added a lot of eye-candy, to let the apps look more up-to-date. The mtable-Extensions for table windows where very helpfull, available here: MTable by MICSTO . Integrating 3rd-party-DLLs (e.g. for integrating a smartcard-reader) is not really fun, especially when they use structs. Oh: and the "Centura Report Builder" is a royal pain in the derierre.
A big pro is the SDK that shipps with the CTD: this makes it very easy to integrate self written tools into the development environment, e.g. for code generation.
Bottom line: We used and still use CTD for scalable and maintainable apps. The learning curve can be a bit steep because of the unusual outline structure and can lead the unwary towards writing "ugly" code: e.g. lots of static functions, lots of code in the "Message Actions" and problems with variable scoping. I think your success with CTD will depend on the nature of the application you want to write: for a rich client CRUD you might almost certainly be better off than with .net, for a web app I honestly don't know.
Keep in mind that all this relates to the 8 year old 2.1 version of CTD. Things may be radically different now. If you can, get an evaluation version.
Edit: Aside from the pros and cons of the language alone, you might want to consider that CTD is a niche. There are not many free tools and I have yet to find a vibrant community (there was a newsgroup, but the server went down after the merger - maybe its still around somwhere). So, googling up help on specific Problems may no be easy.
(§) I did not continue the upgrade path from 2.1 to 5.1 because after the merge with Unify they wanted to make patches available only for subscribers to their support scheme (called GLS). Since I was not going to pay for bugfixes I deceided to continue using 2.1 for our legacy apps and switch to .net for new apps. I think they revised this later on.
I have been working with Team Developer (formerly Centura Builder, SQL Windows, etc.) for 9 years. IMO things have not changed too much from the version 2.1 which Stephan Keller described in his comprehensive answer.
The company I am working for is currently using TD version 5.1 and considering upgrade to TD 5.2 next year. We are developing a business software product, run against Oracle database. The application has more than 500 form windows and several hundred reports.
I think Team Developer scales well to both simple small applications, and larger enterprise application suites with big RDBMS and hundreds of users.
The code outline makes the IDE easy to approach and I think the learning curve will not be that steep. The code editing is possible even without mouse, since there is a number of handy keyboard shortcuts. Of course the window designer needs mouse. There is also a built-in Active Coding Assistant in the newer releases.
The newest releases (5.1 and 5.2) offer some new GUI controls, such as a date/time picker, a grid window (enhancement to the widely used table window) and Rich Text editor. There is also a new tab control. Menus can be shown ribbon-like, though this is not a "real" ribbon bar. Sample screenshots can be found on the Unify web site.
Also new GUI themes were introduced in the 5.x versions of TD, to provide a more modern look and feel for the applications.
There have been a number of stability issues, performance problems and problems with screen painting etc. with the 5.x versions of TD. The older 3.x and 4.x are known of very robust quality, having only a very limited number, if any, stability or other issues. These issues are discussed actively on the Unify Support Forum. Many of these issues are related to database routers (Oracle, MS SQL Server) or Windows API calls. The basic functionality of TD is usually working quite fine.
Also help on specific problems and questions can be reached on the Support Forum. The developer community is maybe small, but quite active.
My Company uses Team Developer for years successfully (most of our Applications are written in 2.0, with some in 5.2 as Web-Applications) and there are plans to change our development to version 6.0.
Coming from a C++ background I first had to find the way into the language (I still miss some features like encapsulation, well-structured error handling1 or scoping of variables2)
But after all, I learned to live with the limitation of the language and with some discipline our applications are relatively easy to maintain. (as a note: We have a set of base applications working together and use the same codebase with some customer-related variations to build individual versions for every customer - bugfixes appear at the common codebase (and is used afterwards for any other project), special modifications at the lokal project files). You just need to set up some basic guidelines for your projects and keep with them as the compiler wouldn't enforce them.
1 You could catch a sql error only at the point it occurs or globally for the whole program.
2 I still sometimes get cases where a mis-spelled variable compiles for something in a completely independent window - or compiler errors for semi-referenced handles sharing the same name but different data types
We used TD for several large apps but due to the lack of resources, the obsolete SAL language and aged runtime we have migrated millions of lines of SAL code and several thousand forms to C# and Visual Studio 2010 using ice tea group gupta/unify migration tool.
We were skeptical at first. But now we have brand new apps, fully integrated with our other .NET assetts with a small fraction of the time needed for a rewrite. And we didn't have to try to understand what all that all code was doing. :) the conversion was nearly perfect!
Forgot to mention that we automatically converted over 1200 report builder reports to crystal reports .NET saving probably a century of boring work.

Resources