Hosting specification for ASP.NET Online Image Editor - asp.net

I intent to create an Online image editor like pixlr.com/editor. I want to use ASP.NET as the P-language and so prefer windows hosting.What should i look for like Bandwidth,Space,Database etc.I wonder how many concurrent users can use the site(with/without db connection).

Appharbor is a great, freemium source. You submit files via git or Github, BitBucket, or Codeplex. It is basically Heroku for .NET. For free you get unlimited commits and space (I think), the bandwidth is great, and it is fast enough. You get a .apphb.com domain. For more information, go to http://www.appharbor.com

I'm a big fan of Windows Azure for applications - it's start price (round $15 per month) is affordable and it has the benifit of being scalable.
pretty sure it also comes with a 3 month free trial - worth a go.
www.windowsazure.com

Related

Scanning attachment before uploading on the server?

I am giving to upload functionality, i want that files must be scaned on Server side, Before they uploaded and then they are are saved on that server.
Is there any free available antivirus engines to scan the attachment on the server?
Thanks
You can't exactly "scan" the file on the client. However, some manipulation is possible, determined by the client security settings.
I believe it is quite difficult as browsers implement such functionality differently (Internet Explorer could use ActiveX scripting for example).
You could try to look into that perhaps.
Regarding free antivirus, I believe Google has the answer ;)
But seriously, Avast and AVG are both providing home users with free versions of their antivirus. Since you haven't said anything about your purpose of the server, I don't know whether using the free versions is legal.
If you're willing to pay a bit for a AV solution, I can recomend NOD32. That said, I should mention that I have no experience with the server version. I use the workstation version, which is very light weight.
Sure, depending on what virus-checking software you're going to use for the scan -- for example, the commercial product metascan offers an API to integrate your programs with many different commercial anti-virus products.
Before uploading is hard; you could rather check it after upload but before making it available for download. To do so you can use online antivirus services - but it's a very timeconsuming solution, and you should certainly use a separate thread or service - or scan it yourself, using one of the many available antivirus engines (a few of them are free, but the others usually cost very few, less than $10 per year).
EDIT: the most famous (for me, at least) open source antivirus tool is ClamWin, which is released under GPL. For free (as in free beer) engines, I can only suggest to search "free antivirus engine" or the like, not because I'm lazy but because I've never used one and don't feel comfortable suggesting things I don't know.

Lucene.Net and incubation status

I'm evaluating options to make our search more powerful on our .Net website. I need to look into whether we purchase software/hardware such as the Google Search Appliance (GSA) or develop the solution using a framework such as Lucene.Net
We're a startup, and the GSA provides a lot of good functionality out of the box, but we would need two boxes, with the second as the backup/dev environment and things start getting expensive.....
We have used SQL Server full text in the past, but we're keen to provide very intuitive "Googlesque" type searching to our site and we've struggled to do everything we want with SQL Server.
But, I am not sure what "incubator status" for the Lucene.Net project actually implies. Should I be considering a project that is in incubator status? Is it not active? Will it at some point move into a more active status or be archived off?
Thanks
Lucene.NET is a currently active and updated project. The fact that is hosted as incubated under Apache is a good thing and not a negative one. As you can read on Apache incubation site, Lucene.NET is awaiting for a review and a final approval, but this doesn't mean it's unstable or unsupported.
Concerning your main question, i think using it for the development stage would be an accepptable choiche if you're a startup.
I am not sure what "incubator status" for the Lucene.Net project actually implies
It means that the project, which was an external project, is being evaluated by apache for inclusion in the apache "stable" - I guess they have to make sure the processes are right, that there isn't patented code in there etc etc.
It has NO reflection on the code. Lucene.NET trunk is stable (v2.1), and the downloadable version (v2.0) is also stable, but not "as stable" or as updated.
If you have more questions, I'd suggest you jump on the mailing list (http://incubator.apache.org/lucene.net/) and ask George or DIGY. I've been using it on commercial projects - both internal (http://www.topgear.com for example) and packaged (not sure I can say, but it's an email archiver) since 1.xx, and it works GREAT.
I'd suggest you have a look at Solr, too. It uses the Java Lucene, and is basically an external search server, but you push info into it, rather than it trawling your site. It's on the apache lucene site.
Log4net was in incubation status for a long time in the Apache project. It was still recommended and used extensively. I'd be ok with using Lucene.Net for a couple of reasons. First, as #ste09, says incubation status is a good thing. Second, Lucene (the Java version) is a full-fledged project at Apache. Similar to log4j/log4net, I think this bodes well for Lucene.Net making it out of incubation status.

DVCS for a small company of remote employees

Here's the situation: at my small office, because we like to keep mobile and occasionally work from home, instead of having a central file server, we have all the office documents in an SVN repository, and each person keeps a checkout on their own laptops. A checkout weighs in at about 3GB, and the repo with revisions in it: about 6GB. This is all working great.
The problem is that soon we won't have a small office any more - all our 5 workers will be working remotely. I had considered purchasing a dedicated server and running our SVN repository from that, except two of our workers will be really remote and will be using wireless "broadband" with a 3GB/month limit, and I'm afraid that a few large updates will really rip through their monthly allowance, not to mention taking all day to complete.
Reading a few questions on Stack Overflow, it seems there's quite a community of distributed VCS aficionados who think git or mercurial is definitely the best for many situations. Given that all the employees would still be able to meet face-to-face at least once a fortnight (and hence be on a fast LAN), I'm wondering if a DVCS would work for us?
I don't know exactly what's in your repo, but unless you're changing all the files regularly, a DVCS should provide you a very desirable workflow.
You could do an svn -> git conversion, stick the repo on a DVD and mail it out to all the satellite offices, and then let them fetch from the office as things change at a fairly low incremental cost (should be smaller than the delta in general).
Checkout the Fossil DVCS, it may fit your bill. Fossil may be used like SVN or a DVCS. If you are concerned about it handling your current repository try it out. It also has a built in project wiki and bug tracking system that distribute with the repository as well. You could try it out and see if it would work for your small team.
The pain for you would be losing your revision history, at this time I don't beleive you can import a svn repository into Fossil.
Join the mailing list and you will get answers for any of your questions. The creator of SQLite is also the creator of this project as well. Hope this helps.
I can't see why not. With something like git, the repository is local to the machine, and so your remote employees can actually have a tracked changelog that can then be merged or rebased with the main repository--whatever you decide that to be--when they get the chance.
Also, git has really good compression compared to SVN, so the 3GB/mo quota may be more than enough for your remote employees.
Randal Schwartz actually gave a really good presentation on git at Google's Tech Talks: http://www.youtube.com/watch?v=8dhZ9BXQgc4
(It seems no one is answering this.) DVCS of course seems like it would work, but I have no experience with it. A centralized system like svn might also work if you are not expecting large changes daily. (to go up and back from the server) The initial get in that case would be the only real expensive issue.
Can you monitor your use now and see how much traffic goes back and forth?
The real problem here is the 3GB/mo bandwidth limitation. It's probably just better to come up with a better solution for connectivity...

What are you using for Distributed Caching in web farms running ASP.NET?

I am curious as to what others are using in this situation. I know a couple of the options that are out there like a memcached port or ScaleOutSoftware. The memcached ports don't seem to be actively worked on (correct me if I'm wrong). ScaleOutSoftware is too expensive for me (I don't doubt it is worth it). This is not to say that I don't want to hear about people using memcached or ScaleOutSoftware. I'm just stating what I "know" at this point.
So my question is basically this: for those of you ACTIVELY using distributed caching, what are you using, are you happy with it, and what should I look out for?
I am moving to two servers very soon...both will be at the same location. I use caching fairly heavily (but carefully) to reduce the load on my database server.
Edit: I downloaded Scaleout Software's solution. I've coded for it and it seems to work real well. I just have to decide if my wallet will part with the cash for it. :) Anyone have experiences good or bad with ScaleoutSoftware?
Edit Again: It's been a little while since I asked this? Any more thoughts on it? We ended up buying the solution from ScaleOutSoftware and have been happy with it, but I'm curious what others are doing.
Microsoft has a product pending code-named Velocity. It's still in CTP, and is moving slowly, but looks like it will be pretty good. We'll be beating it up in the near future to see how it handles what we want it to do (> 2 million read/writes per hour). Will post back with results.
There is a 100% native .NET, well documented open source (LGPL) project called Shared Cache. Looks like it is not yet mentioned on SO, but it's promising and should be able to do what most people expect from a distributed cache. It even supports different strategies like distributed or replicated caching etc.
I will update this post with more details as soon as I had a chance to try it on a real project.
We're currently using an incredibly simple cache that I wrote in a couple of hours, based on re-hosting the ASP.NET cache in a Windows Service (more info and source code here). I won't pretend it's anywhere near as optimised as something like Memcached but we were just looking for something simple and free until Velocity came along, and it's held up extremely well even under fairly heavy load.
It comes down to our personal preference for core components - i.e. ones that affect whether the site is available or not - that they are either (a) supported by a vendor with a history of rapid and high quality support, or (b) written by us so that if something goes wrong we can fix it quickly. Open source is all well and good, and indeed we do use some OSS, but if your site is offline then unfortunately newsgroups et al don't have a 1 hour SLA, and just because it's OSS doesn't mean you have the necessary understanding or ability to fix it yourself.
We are using the memcached port for Windows and we are very pleased with it. The enyim.com memcached client API is great and easy to work with. It's also open source, which is a big advantage, if you ask me.
We are now using this setup in a production web-app and it has helped a lot in improving its performance.
There's a great .NET wrapper/port found here on Codeplex. Awesomesauce!
We use memcached with the enyim library in a production environment (www.funda.nl). Works fine, very pleased with it, but we did notice a substantial raise in CPU use on the clients. Presumably due to the serializing/deserializing going on. We do around 1000 reads per second.
One tried and tested product by 100's of customers worldwide is NCache. Its
a feature rich product that lets you store session state in a redundant and highly available manner, lets you share data
within the enterprise as well as bridging for WAN communication essentially acting as a data fabric and lastly it lets you build an elastic caching tier so that when
your application scales, you can add servers to the cache and actually boost performance further.

Silverlight Install Base - How big is it?

Silverlight v2.0 is getting closer and closer to RTM but I have yet to hear any stats as to how many browsers are running Silverlight. If I ask Adobe (by googling "Flash install base") they're only too happy to tell me that 97.7% of browsers are running Flash player 9 or better.
Not that I believe everything I read, but where are these statistics from Microsoft or some other vendor about Silverlight? I'm going to be making a technology choice soon and a little bit of empirical evidence would be an asset at this point...
All you Silverlight developers out there, show me your stats!
Quick Answer: www.riastats.com
This site compares the different RIA plugins using graphical charts and graphs.
It gets its data from small snippets of javascripts running on sites accross the web (approx 400,000 last time I looked)
At the time of this post, Silverlight 2 was sitting at close to 11%.
I would not take this as the end-all, be-all in RIA stats, but it's the best site I've found so far.
If you are developing something for a general audience, I would highly recommend against Silverlight as you immediately cut out Linux users.
I went to watch videos for the Olympics (and I run exclusively Linux), and I couldn't watch the video on their site because they were in Silverlight. On top of that, they actively removed all videos from YouTube, so I had no alternative but to try and scrounge up a Windows boot. This only served to give me a very negative opinion of NBC, and consider them quite amateurish to pick such a restricting technology for something that should be available for everyone.
While Flash has it's problems, it works fine in Linux, so I would say (at this point), it is a much superior technology choice.
If you KNOW your audience is entirely on Windows (maybe Mac).... then you can consider Silverlight with knowing you won't be cutting out part of your audience.
if you're that concerned about locking out potential users, you should be building a low-bandwidth HTML only version of your site anyways...regardless of whether you use Flash or Silverlight.
I struggled with this for a while. Ultimately, I chose to develop my site using Silverlight for the major components. I did a good bit of research, and I reached the following bottom-line conclusion:
If Silverlight fails, it will not
be for lack of installed base. There
are simply too many levers for MS to
pull (windows update, embedding it in
IE8, or even paying highly trafficed
sites to use it.
I will add this from Alexa - microsoft.com has pretty impressive daily reach and it uses SL on the main page. I would also not be surprised at all if Outlook Web Access is moved to Silverlight - thereby turning every single office outlook user who wants to access email from home/other into a roaming SL installer.
Alexa Link comparing microsoft.com/ebay.com/amazon.com
I will add this from ScottGu's blog entry:
In addition to powering the Olympics
experience in the US, Silverlight was
also used in France (by FranceTV), the
Netherlands (by NOS), Russia (by
Sportbox.ru) and Italy (by RAI). In
addition to video quality, a big
reason behind these broadcasters
decision to use Silverlight was the
TCO and streaming cost difference
Silverlight provided. In the August
2008 edition of Web Designer Magazine
(a Dutch publication) a NOS
representative reported that they were
able to serve 100,000 concurrent users
using Silverlight and 40 Windows Media
Servers, whereas it would have
required 270 servers if they had used
Flash Media Servers.
Over the last month we've seen several
major new deployments of Silverlight
for media scenarios. For example: CBS
College Sports is now using
Silverlight to stream NCAA events from
its 170 partner colleges and
university. Blockbuster is replacing
Flash with Silverlight for its
MovieLink application. And Netflix two
weeks ago rolled out its new Instant
Watch service using Silverlight.
At the 2009 Microsoft Professional Developers Conference, Scott Guthrie said that Silverlight was installed on "45% of the world's Internet-connected devices"
http://www.betanews.com/article/PDC-2009-Live-from-the-Day-2-keynote/1258561992 (quote taken from "9:28am PT") entry
This was the weekly poll over on CP a few weeks back. Out of the 1463 developers responding, aprox. 62% had Silverlight installed on at least one system.
So... if you're making a site targeted at Windows developers... and don't mind locking out a third of your potential market...
I haven't been able to get stats. I'd assume they might release some at PDC in late October. If you're building a site which needs to target a non-developer audience who won't want to install another plugin, you might want to wait for Silverlight.
I have done a good amount of testing with Moonlight on Linux, and it works well for sites which use either use Silverlight 1.0 functionality (pretty much 100% supported) or which happen to use the Silverlight 2.0 bits which Moonlight currently supports. The caveat is that some websites explicitly check the user agent and won't offer content if you're not on a "supported" platform. That's poor website coding, not a fault of the Silverlight plugin.
During the keynote # ReMIX UK when ScottGu gave the figure of 1.5 million installs/day I was sat next to Andrew Shorten, one of the Adobe platform evangelists (and also a good chum). He was telling me Adobe have independant evidence of an AVERAGE of 12 million installs a day, with over 40 million downloads.
It would appear 1.5 million is a tiny amount of what it could be.
Well 6 million watched the Olympics on NBC, which used a silverlight player. So at least 6 million. I've never seen exact stats, but you can be pretty certain that it is pretty small still.
Also, there is an implementation of silverlight for linux called moonlight.
I think an interesting stat comes from this site itself. Have a look at how many silverlight questions there are! And how many responses - it's not the most active topic!
I think you'll see a dramatic increase in the Silverlight install base after Silverlight 2.0 officially comes out. Right now it's still in beta. Silverlight 1.0 is out and runs quite well from what I've seen in Moonlight on Linux, but it's much harder to create full-scale applications for than version 2.0. According to Microsoft, Moonlight will be "100% compatible" at release time. See Scott Guthrie's blog (note: 2.0 was called 1.1 at the time).
Nick R, as for the fact that there isn't much Silverlight activity on these forums, I think the biggest reason for that is the very active community on the silverlight.net forums.
Scott Guthrie said (at Remix UK Sept 18 2008) that Silverlight is currently downloaded 1.5 million times per day. Over 115 million downloads since the version 1 release.
The Version 1 installed base will automatically update to version 2 when it is out of beta.
Wow! Scott said the same thing at Mix in February 08 about run rate - 1.5m. So it seems that a daily run rate of 1.5m per day for 6 months would add 270m installs to the installed base. So their numbers are not exactly clear in their meaning.
If one assumes the 115m installed base is correct, then it implies a run rate around 700k per day in the six months since SL2. Of course, many users are upgrading versions B1 to B2 as an example.
Either way, it is gaining some steady installs. It would be nice to see the run rate improve. By 2nd quarter of next year, it should be dramatically higher due to v2 shipment, application/web site adoption, pre-installation on various computers (like HP) and any unannounced distribution mechanisms.
While in general I support the idea of developing a site using silverlight and feel that that, depending on your audience, you should not have too much trouble getting users to download the plug in I would caution you against assuming that Microsoft will release the plugin built into IE or as a part of windows update.
I have had two separate Microsoft Technology Evangelists tell me that the company is reluctant to do that due to Anti-Trust reasons.
This was over a year ago and their strategy has probably evolved since then, but it enough to make me not count on that as an option for greater market penetration.
Don't forget that the Silverlight 2 install base will never include PPC Mac users. It doesn't look like the Moonlight people are targetting them at all, despite the heroic effort to add PIC streaming for Silverlight 1.0 users for the Obama inauguration.
The larger question is how many users will your site lose if implemented in Silverlight. And, it very much depends on your audience.
If you're running a site about the joys of Linux kernel hacking or the virtues of Internet security, you'll probably lose a significant chunk of your audience. If you're running a more mainstream site, my experience is that, sadly, people will download anything they're told to most of the time. That's why spyware and malware work. And, as the NBC/Olympics deal shows, Microsoft will aggressively push its partners to use Silverlight until it's fairly ubiquitous.
I won't be using Silverlight until it's more mature because I do cater to a fair number of Linux users, but I might for a less technically-oriented site.

Resources