Best free web framework to deploy on Windows Server? - windows

If you are starting to develop a new web application from scratch and the only two requirements you have is that it will be deployed to Windows 2008 Server and that standard ASP.NET incl. VS2008 doesn't cut it (doesn't matter why, let's say it's the license cost, you won't be hosting Windows 2008 Server yourself). Which web framework would you choose under this circumstances?

I read a benchmark article some time ago that suggested running an open source web stack on top of Windows was the best performer out of all the variations (i.e. WAMP). I don't know how much faith to put in those types of articles, and IIRC it beat out LAMP by some really small margin. You might find WAMP to be a good fit for your situation, but I think you should save yourself the Windows tax and use a LAMP (or use Postgres instead of MySQL... I like it better).

I'm stuck wondering why you'd host on a Windows server and not use ASP.Net. It is the best of the server-side frameworks for a windows environment, as it works most intuitively with IIS.
But there's another problem there: If memory serves, all the other frameworks require additional software to run on the server. PHP requires PHP runtime to be installed as a CGI Extension in IIS, Rails requires Ruby, CGI style options (C, Perl, Python) require not only the compiler/runtimes but also some poking under the hood in regards to how IIS handles those files, JSP requires... I'm not sure, I've never used JSP, and ColdFusion requires that framework and it really is a hefty licensing cost (as opposed to ASP.Net which is a free download for the server).
So, in the end, you're left with basically picking an option, installing the necessary software and going forward. Personally, if forced to make this choice, I would choose either PHP or Ruby on Rails, but there's no valid reason for that outside of a random, and subjective choice.

I agree with Stephen, seems a bit strange to blame licensing costs for not using ASP.NET especially when you're going to be using Windows to host? Admittedly VS 2008 Pro isn't cheap, but it hardly breaks the bank either. The new 2008 Express editions of VS are free and I have to say aren't half bad.

Weblocks
Weblocks is a continuations-based web framework written in Common Lisp.

I suspect loading Smalltalk Squeak is very easy on Windows so I would seriously consider using Seaside as an option.
Another option is to look at ActivePerl for Windows and then you can use any of the free Perl web frameworks like Catalyst or Jifty.

Related

Create a windows application using osx

I have a project to do (an app relied to a DB, used to display and modify data, basically CRUD). The application will run on windows, but I don't have any windows computer (and don't want to buy one) so I will develop on OS X.
So, my question is which language should I use ? I know a bit (but really a bit) in Ruby and Java. I'm a good C# developer, but without windows and VS, it won't be really useful.
My priorities are : a simple GUI toolkit, and a simple packaging/distribution system, because my client isn't good in IT. If I could have fun during development it would be a plus (and I say this because I think Ruby is funnier) but it's not a priority.
So, any programming language/UI toolkit simple to deploy and to use on OS X who could run on Windows ?
Thank you !
IT kind of depends on your app really. you could make it a web app if you want nice GUI and with easy html css and there is alot precoded for you. hosting on some web service with basic mysql or any other database shouldnt be an issue costs wise and your client can just open the browser and it runs, if he has internet connection available where he needs the app to work. anyway it runs everywhere and since yo know java... thats what i would.
depends on your app really.
Most people that need to do this just get a VM running Windows, and run Visual Studio from there.

analytics tool on windows server

There are several tools that help to analyze the users behavior on your website. I would tend to divide them into ones that live on an own platform and which can be accessed through and API (like Google Analytics) and that ones that are to be installed on your own server (like Piwik).
I will launch a new web project soon, which requires such a tool and thus I wonder which one I should use. In my case I need to collect the data on my own server, so I will have to stick with the second type of tools. After playing around a little bit on my beta server I considered Piwik to be pretty nice to personalize, but until now, I had issues to set up piwik on the production server, because it is a windows server and the piwik version that is available at the webapp installer platform of windows server requires a different php version.
Installing Piwik on another - let's say - analytics server, is not an option for me, because I don't want to create all this https traffic, just because I am not able to set it up on my production server. And I also don't want to purchase another https certificate ;-).
I browsed the Windows Webapp Installer Platform in hope of something that just works out of the box in Windows. Similar questions like this also propose Google Analytics or Piwik. But this cannot be it, can it?
So..
Is there a tool which all you Windows Server people use?
Are there other tools that are used frequently?
Or even: Is it somehow possible to set up Piwik on a Windows Server without using The windows Web App Installer? I posted a related question here that focusses on the installation of piwik.
Logparser is a free tool from Microsoft that lets you throw direct SQL queries to the IIS Logs generated on your Web server. You may use it to query basic stats such as:
[1] From what ip-address range I get the maximum queries? (users' country-profile)
[2] What particular pages (aspx/html) are most frequently visited?
[3] At what time of the day, do I get the maximum requests?
I remember using this tool in one of my earlier projects, but the reason was to track down some performance issues. Also, the tool itself is console based, so you need to be familiar with command-line. However, a GUI front-end could be easily developed in a high-level language such as C#, I think there should be already some, that are free to download

Node.js for "traditional" sites

I'm digging into Node.js now and the whole idea seems brilliant to me. But I'm interested in what the benefits of using Node.js are when developing "traditional" sites with a bit of AJAX and no realtime features. When I say traditional, I mean the sites that one usually builds using MVC frameworks on platforms like PHP, ASP.NET, etc.
I know that the Express framework is popular, but the question is more about what I would gain by switching to Node.js rather than simply "Can I do MVC in Node?".
Node has the advantage of
having a rich open source community with third party modules that solve most problems
having a low level API with a minimal amount of "default" bloat
reducing language context switching
having a decent level of performance
allowing you to manipulate the HTTP server programatically within your application
I guess this url: How to decide when to use Node.js? -is all you need.I am making this as community wiki.

Online game using .net technologies

I am new in game development, but I'm thinking about creating online browser game on asp.net mvc3 using entity framework for ORM data mapping and SQL Server 2008 DB for data data storage.
I would like to hear your thoughts about this.
What advantages and disadvantages of this approach. Why is it worse than using classic LAMP.
first of all costs. As I assume you are paying for the licences, second is speed(linux is faster than windows), third portability and safety (apache is more secure than IIS and also faster) and apache/mysql/php can run on windows while IIS and will not work on something else.
Overall more Lamp hosters than Windows hosters as far as I know.
Then PHP is faster than ASP (execution speed and development speed), cheaper to develop, much more flexible and lighter(even if you use a framework like symphony or Zend).
examples: Facebook works with php, Yahoo works with PHP, IBM is befriending PHP . MySQL is fast and easy to maintain.
Microsoft Technology is for corporations (As my personal opinion on their technology, I rather keep it to my self, raise your hands IE6 friends). If you are going for PHP or MySql though their flexibility can be tricky, as you can do a lot of things, if you do not master your school theory you might end up with a monster.

Simple database application for Windows

I need to build a simple, single user database application for Windows. Main requirements are independence from windows version and installed software. What technologies (language/framework) would you recommend? My preference for language is the Visual Basic.
EDIT: What about VB.Net and SQL Server Compact Edition?
I would recommend Sqlite. It's completely self-contained, and public domain so there are no license issues at all.
Single user or multi user?
For single user, the answer would be SQLite
For multi user (or multithread), try MySQL or PostgreSQL.
Since your requirement is a windows based application i would suggest that you go with sql server 2005 express edition which is a free tool, but with certain small limitations. you can upgrade to a bigger version when you go with a paid version.
There are other DB engines like SQL Lite or FireBird, choose them if the support and growth options they provide are good enough for you
Additionally, Visual Basic is eof lifed. VB.NET might be a better windows based platform currently. It would give a better platform / features to start with and when you want to expand the talent you have working on the project, i assume .NET talent might be more available than programmers who want to work with a dead language.
duplicate of What options are there for a quick embedded DB in .NET?
I'll repeat my answer from there:
"Or theres Esent, the built in database that exists in every copy of windows. Read about it here: http://ayende.com/Blog/archive/2008/12/23/hidden-windows-gems-extensible-storage-engine.aspx" and http://www.codeplex.com/ManagedEsent
SQLite will work for a local desktop application. If you want several users, a few gigas of data, and multiple connections I would use mysql or Firebird.
http://www.mysql.com/
http://www.firebirdsql.org/
FireBird SQL server will be thing of choice. It can be used in both embedded and multiuser mode like traditional databases. It implements many of the SQL standards and has strong community base. It is available for Windows, Linux, Solaris, OS X, HP-UX
As mentioned, SQLite is a great single-user database. This page has VB/SQLite examples. Once concerns is that SQLite parses foreign key constraints, but does not enforce them. You can use this code to generate "foreign key triggers" for SQLite, thus gaining an easy to use database with FK constraints.
Depending on how demanding your database needs are, though, you might want to consider MS Access.
I used SQL Server Compact Edition. It's like sqllite. A single SDF file accessed using ADO.NET.
You can develop your application using Visual Basic .NET and manage you database (add tables, columns, constraints, etc...) using Visual Studio.
SQLite may be what you are looking for. http://www.sqlite.org/
Depending on your needs for the application.
You could use SQLLite which is a very nice database with no installation required.
You could also use Microsoft SQL Server: SQL Server Compact 3.5.
Both are free!
It's not quite clear from your post whether you want a web application or not.
For a web application, MySQL works effectively on the Windows platform. You also have nearly limitless options for development environment including, PHP, Ruby on Rails, Django, and .Net.
If you are looking at a desktop application, MS Access might be suitable ... incredible easy for simple applications.
Well, assuming you don't have any prior experience...
You need some kind of persistence storage (for example a database) and a client.
For the storage you could use almost anything. For example you could create your DB in MS Access and just ship it as a file, using ADO to access it.
Other options are MS SQL Express edition (comes pre-installed on some machines or could be installed for free) and plenty of open source databases like SQLite
For the client side you could not go wrong with VBScript and ADO (using OLE DB drivers). They come with every Windows installation since Dark Ages, you will have plenty of references/tutorials/answers online.
A drawback: no UI to speak of, so you'll have to build a command line interface (which was for a 'simple' application).
If you want to build a UI I would suggest using .NET WinForms. The overhead will be substantially bigger but .NET is now installed on all XP/Vista machines and even if it is not you could always install the framework with you application.
If you want to build application that can move to other pc easily,I prefer Microsoft Access it is small database easy to use and no need to install.It suites for application like Addressbook,mini crud system.
But if you want to develop enterprise database system you should use MySQL instead.
I do not understand what you mean with "independence form [...] installed software". You ever need at least the DBMS installed as well as one client or user interface.
I recommend using MS Access. It is easy and cheap for simple, single user tasks and rapid prototyping development. Only development version have to be bought ("normal" Access) to create DBs. Runtime version of Access 2007 can be downloaded free of cost from Microsoft Homepage - for using only the database you created.
Also it combines DBMS and GUI frontend in same tool.
Dare I mention MS Access...?
If you are looking for small footprint (up to a few MB) and easy deployment (end-user should only install your application to get it working), then your options are SQLite and Firebird embedded.
Of those two, I'd pick Firebird any time, because of it's full support for SQL (you can't, for example, drop a column in SQLite), ACID compliance, and ability to go client/server without any changes (just change the connection string from embedded to server) to the code if you ever decide to let multiple users work on the same database.
Not to mention that you can use full server to develop (which means your application and database administration tool can be connected to database at the same time).
I'm successfully using Turbo Delphi (free for commercial and no commercial use) + ZeosLib (zeos.firmos.at).
The only things you need to distribute with your .exe are the database client dlls (no need to install the client, just put the dlls in the same directory).
Would Kexi work?
I can recommend from personal experience "My Visual database"
free, no code, no sql, just drag and drop.
http://myvisualdatabase.com/
Best Option would be to create a Win32 native application using Delphi and use SQLLite as the database.
Reason being Delphi can produce native win32 applications without any other product being installed on the machine.

Resources