I have a website which has thousands of (ever increasing) resources in it. I implemented the usual Sql Full text Search and it was working fine until recently. I noticed some performance issues with it. I am using MySql Database with C#. NET as the back-end code.
I just need few valuable suggestions from you so that I can take those into account while building a new search strategy for my website.
What can I use to improve performance in the search functionality on my site?
You could try out;
http://incubator.apache.org/lucene.net/
Take a look at Lucene.NET. It is a high-performance, full-featured text search engine library which was initially written in Java but ported over to .NET. It is a technology suitable for nearly any application that requires full-text search, especially cross-platform.
Try using Lucene.NET. Many websites have text search based on it.
Related
Hi I have to incorporate wiki style documents in my site, with links embedded in text and date of updates in plain view, for each entity. Entity can be people, place etc. Only authorized user of site can add/edit documents.
I have to implement it using .net and SQL-Server at back-end.
I am totally blank on this. Can you please help me with Links, tutorial and/or your answers that how can I achieve this.
Thanks.
You could use WikiPlex, the wiki engine behind Microsoft's CodePlex:
WikiPlex is a regular expression based wiki engine that allows
developers to integrate a wiki experience into an existing .NET
application seamlessly and with little effort. Built and used by the
CodePlex team, WikiPlex has been thoroughly tested in real-world
scenarios!
SharePoint has an out of the box wiki if you happen to have that available already. If you're coding it from scratch, I would personally start by defining all of the use cases, then modeling the database to meet those needs. Then build your data I/O layer and user interface on that. Since you're using ASP.NET you can take advantage of the asp.net forms authentication and user and role infrastructure. The question sounds a little broad for me to really get detailed on anything.
I am looking for a search engine that can be used for sites. Sometimes we dont want to use google embedded search or the complication of lucene.
I run in to these requests:
Crawl based search
Rating and ranking of content based on content types
Searching documents like pdf and docs etc..
I dont mind if it is a commercial control that we have to purchase but I would like to be able to integrate it nicely in to some of these use cases
There used to be Lucene.net. Recently the status of this project is becoming questionable (not certain of the details). Here is the site: https://lucenenet.apache.org/
Looks like you can still download the code. Probably not much development going forward.
Bob
I have used dtSearch in the past which I know has a web crawler built into it. It doesn't come with a front end control though, it's strictly a search engine. You need to write your own results control. It does have a powerful query language though that lets you score on multiple dimensions depending on how you set up your indexes. It also has a decent .NET API to work with.
I don't know that this is any less complicated than Lucene though. So then I start to wonder what complications you are hoping to avoid.
You should look at Apache Solr (built using Lucene) - it offers a RESTful interface for integrating into .NET or whatever platform you prefer. It offers all the goodies could ask for without concern for compatibility Java .NET versions etc.
You can easily integrate Solr into your .NET app using SolrNet
I have less information about share point (only basic info). Microsoft released SharePoint for web developers. Microsoft also said SharePoint has compatibility with other .NET technologies like Workflow Foundation, WCF, etc and it's easy way to develop web sites and web apps.
Also as I know ASP.NET has compatibility with .NET technologies and C#. And it easy for every one whom at least work with C# or VB.NET.
So with these advantages of SharePoint:
Why we must use asp.net instead SharePoint?
Why Microsoft develops ASP.NET (new version 4)?
What's major reason to chose one of these?
Is really developing base-on share-point faster and easier than asp.net?
SharePoint is an Application that sits on top of ASP.net (3.5 SP1 in the current SharePoint 2010 - No ASP.net 4.0 will be possible). They do override a lot of ASP.net built-in functionality (they have their own .aspx Parser and Virtual Path Provider for example).
With ASP.net you have a very well documented, battle-hardened, mature and stable platform with a good API.
With SharePoint you gain a poorly documented, bug-ridden, very limited application that handles a lot of features that you would have to code yourself (e.g., User Profile Management, Document Organization and Versioning and Social Features like Commenting and Tagging), although for the most point SharePoint handles them really poorly and does not allow you to override them, which means that you spend a lot of time rewriting them anyway and trying to integrate them back.
Basically my advice as a SharePoint developer since 2006: Use it when you absolutely have to, avoid it whenever you can and stay with just ASP.net.
SharePoint is good as a simple document management and very light social system. You can quickly customize smaller parts of it and add a lot of value to your company. But in the moment you need something that even only slightly different from what Microsoft envisions, you hit a wall that you can't pass. It's great for what it does, nothing more, nothing less.
I am a Sharepoint Developer... And let me say that I wish it was just ASP.NET! That would be great... It brings with it it's own paradigms which are pretty complicated.
ASP.NET and Sharepoint are 2 'different' technologies. Sharepoint is mostly built with ASP.NET, and delivers ASP.NET pages to a user.
You can use either VB.NET or C# with Sharepoint.
In my opinion, Sharepoint development is only quicker if you are planning on using it's in-built lists, user management etc. Though these do take time to learn. The cool thing about sharepoint is that you can develop web parts, and re-use these web parts on multiple pages throughout the installation.
Microsoft continues to develop both ASP.NET and sharepoint because they are two different beasts, with ASP.NET pages being deliverable through Sharepoint.
As to which is best for you, you haee to make that call. Do you need Sharepoint? Or would a pre-built CMS such as DotNetNuke be better? Or even creating your own site with Windows credentials management so you can use SSO (Single Sign On).
It really depends on what you want to get out of your install. Sharepoint is expensive, and developers for Sharepoint are also expensive because of the specialist knowledge.
As a developer... (I hope my boss isn't watching!!) I much prefer to build things from scratch than to use SP, but that's my job...
Don't use sharepoint unless you need it, check this article:
Challenges when using SharePoint compared to ASP.NET
If you just want to create a website, go for ASP.net.
However, if your company has a SharePoint installation and you want to integrate with that, you should go for SharePoint.
SharePoint is build on ASP.net, but has many extensions that allow data to be shared throughout the company.
However, if you are just building a website and don't need all that, ASP.net is the way to go.
I'll try to answer point by point:
SharePoint isn't a replacement for ASP.NET. It's an extension of the ASP.NET platform that simplifies the implementation of several common use cases that are mostly relevant to enterprise websites: document management, knowledge retention, collaboration etc... SharePoint relates to ASP.NET in a similar way that Wordpress relates to PHP: it's a specialized extension rather than an alternative.
Same explanation as in (1).
Use SP if the things you need to develop are in the scope of what SP provides, which is mostly enterprise solutions of one sort or another. Here's a good summary of what SP can do.
Again, it would be faster and easier if you're trying to develop the things that SharePoint is meant for. Also, SP isn't so well-documented, so if you're not familiar with it, you might have a slow start.
SP is a very powerful platform, however, it does seem to bring complexities to the table that otherwise may not be there with simple ASP.net. Plus when you move "OOTB" with SP it becomes a bit challenging with RTM, etc. I live in blogs with "weird" things that happen. I am not a full blown SP developer but have been working with it for over 7 years and well, I find building solutions that will work within SP, but not necessarily built withIN SP generally are going to be easier to maintain and controllable. Just my opinion!
I would compare all for you and its up to you to decide.
ASP.NET >> Its a programming language by Microsoft which means you would need Windows Server + IIS + Database server like SQL Server + some Anti Virus on the server.
Say now you need some more PC for your servers and so your costs go up all the time you need a new server
Sharepoint Server are again from Microsoft and so everything above applies.
I am looking for a very robust software search engine to integrate in a .Net web site.
The current proposed solution is Lucene.NET a stack based on Lucene. However, I would like to evaluate other search engines before making my mind up.
The feature set we need is the following:
Ability to crawl arbitrary pages via HTTP
Ability to parse sitemaps
Ability to get lists of URIs to parse via a database look-up
Ability to restrict the search to a particular language/locale
Ability to restrict the search to a subset of the pages (e.g. via a regex on the URI)
Speed and scalability (this is for a public website with a ton of traffic)
Must have .NET API support or a super-easy http-based API that can be wrapped in a .NET API
Language-dependent full-text support
Other things which would be great, but not deal-breakers if they aren't supported:
Reporting
Aliasing and biasing of results
HTTP-based administration pages
SQL Server support
What other software search engines have worked for you? Is there any you would recommend or that we should avoid?
Check out Microsoft's Search Server Express, although the page looks screwed up at the moment so try this link.
There's other enterprise engines out there such as vivisimo velocity (very extensible), autonomy, etc. Lucene and Solr are limited, hard to use and configure, but that's what you get when you want something free.
Lucene.Net is an information retrieval library, not a search engine. In particular it won't do any of:
Crawl web pages or parse sitemaps
Reporting
HTTP-based administration pages
SQL Server support (Lucene.Net uses its own simple but highly effective file format, and doesn't use SQL Server)
Although I'm a strong supporter or SQL and would recommend it as the full-text search component of a search engine, you will also need a crawler / html parser component in order to create a full functional search engine, and you are going to have to carefully design your Lucene.Net indexes to maximise the performance of the queries that you want (searching by language/locale)
Try looking at the Solr project which is a fully fledged search engine using Lucene - this might be more suited towards your needs.
I'd recommend checking out Solr. It's Java-based, but meets the HTTP-based API leg of your requirements, is designed to run on a separate box/cluster from your primary app (so you don't necessarily need Java AND .NET on the same hardware), and it has a lot of momentum. It's been a while since I worked with it, but I don't remember it providing it's own crawler. If that's still the case, it should be straightforward to use a standalone crawler and the aforementioned API to make it work.
Like others have said, definitley go with the original Lucene using Solr. Integrating it with .Net is super simple. I actually just recently blogged about this: http://crazorsharp.blogspot.com/2010/01/full-text-search-using-solr-lucene-and.html
Coveo is the search engine that we are currently putting in to replace a Google Mini that was used for a number of years. I'm just pointing these out as something to explore as I haven't used either enough to know how good they are. I just know of headaches with each, many many headaches.
Instead of using Lucene.Net directly, have you considered using something that wraps it and provides more functionality akin to what you're after?
Solr is an Apache product that does this, and there is also a .Net client port of for it. I've never used it in production, but it looks like the type of thing you're after.
Along a similar idea is Nutch (written by the guy who originally wrote Lucene), although I'm not aware of any .Net version of it. Nutch does have a spider component to crawl sites.
You may also have a look at OpenSearchServer
Runs like a charm on Windows. You can use the SOAP Web service to do the integration.
There is also a C# skeleton library working with the XML/REST API.
Disclaimer: I am the CEO of OpenSearchServer
I want to develop ASP.NET C# based MMOG (Massively multiplayer online game). I would be using ASP.NET Ajax control kit, jquery and MS SQL server 2005.
Q.1)How feasible .NET 3.5, ASP.NET with C# in handling thousands of users simultaneously.
I would also incorporate ASP.NET ajax based chatting system with chat rooms alongside the MMOG.
Q.2) Do you know any of the sites (MMOG) using ASP.NET ?
Q.3) What are the best practices for Chatting System as mentioned above?
ASP.NET and MSSQL 2005 definitely have no "built in" scaling problems. You will have to take care to build you application right and be prepared to dish out some money for proper hardware.
See for example the hardware setup that is scheduled to tackle the stackoverflow load.
ASP.NET can handle it with the proper server configuration, hardware, and performance considerations when creating the application.
I tried to do some googling and didn't find anything right away, but I'm sure that there are some out there.
For the chat piece you might look at a product such as CuteChat that already exists and has been tried and tested for a long time.
I would think about using Silverlight instead of the AJAX-based stuff. From a UI perspective you'll be able to do a lot more.
ViewState will end up being your end game raid boss unless you disable it or switch to ASP.NET MVC.
Maybe today you start with a html/javascript/jquery UI and tomorrow you throw on a fancy Silverlight or Flash UI.
AjaxControlToolkit is pretty bloated and kinda hard to customize. With an MMO, speed is going to be a priority, so you'll want as much control over your postbacks as possible.
You also might try looking into Silverlight for your front end. It integrates well with the .NET environment, and would be a lot easier to develop your interactive pieces with.
Plenty of bigass websites running ASP.NET. I'd HIGHLY recommend using the new MVC framework, as it reduces the complexity of ASP.NET websites greatly.