Patterns & practices for Web Services

Microsoft has published Web Service Software Factory, it is designed to help you quickly and consistently construct Web services. Tools, patterns source code and guidelines.
  • Designing ASMX and WCF messages and service interfaces.
  • Applying exception shielding and exception handling.
  • Designing business entities in the domain model.
  • Translating messages to and from business entities.
  • Designing, building, and invoking the data access layer.
  • Validating the conformance of service implementation, configuration, and security using code analysis.
  • Planning for the migration to WCF.
  • Applying security to WCF services.
  • Applying message validation.




Resources: refact.blogspot.com

Performance comparisons LinQ to SQL

CodeProject article comparing performance using ADO and LINQ technologies.



NArrange

NArrange is a tool that organize your .net classes.

Some features highlight features :

  • Reduces the amount of time developers spend arranging members within code files.
  • Helps enforce coding style standards
  • Group similar code members into predefined region blocks
  • Reduces the amount of time spent searching for specific members in a code file
  • NArrange allows you to configure how members are organized
  • Sort Usings




You can see more information in Codeproject article

Resources: refact.blogspot.com

Clone Detective

Clone Detective is a add-in for Visual Studio. This pluggin allow you localize duplicate code in your projects.

Duplicate code is the number one reason for refact your code.



See Clone Detective in action.

Resources: refact.blogspot.com

Managed Extensibility Framework (MEF)

The Managed Extensibility Framework (MEF) version 4 is published.

MEF is a library to build extensible applications (Plugin Pattern).

  • Provides a standard way for the host application to expose itself and consume external extensions.
  • Offers a set of discovery approaches for your application to locate and load available extensions.
  • Allows tagging extensions with additonal metadata which facilitates rich querying and filtering.

15 Opensource Blog Tool and Publishing Platform

1. Wordpress

Wordpress

WordPress is a state-of-the-art publishing platform with a focus on aesthetics, web standards, and usability. WordPress is both free and priceless at the same time.

Needless to say that it is the most popular among all publishing platforms available.

2. Serendipity

Serendipity

Serendipity is a PHP-powered weblog application which gives the user an easy way to maintain an online diary, weblog or even a complete homepage. While the default package is designed for the casual blogger, Serendipity offers a flexible, expandable and easy-to-use framework with the power for professional applications.

3. Movable Type

Movable Type

Another promising open-source blogging engine. Flexible enough for custom blogs and websites and powerful enough for the most demanding content management and social media needs. You can find more details about movable type here.

4. Dotclear

dotclear

Dotclear is an open-source web publishing software created in 2002 by Olivier Meunier. A one man’s project at first, Dotclear soon gathered a team comprising different personalities with various backgrounds.

The project’s purpose is to provide a user-friendly tool allowing anyone to publish on the web, regardless of their technical skills.

Dotclear is a free software primarily designed for its users and regularly improved by their contributions. Everyone may use it and modify it according to the software license.

5. Nucleus CMS

Nucleus

Nucleus CMS is also a popular content management system. It is actually more than a blog engine. Nucleus supports a multi-lingual and multi-author blogging environment. Some other extensive features are the availability of a huge number of templates and plug-ins, an easy administration panel, easy syndication support, etc. Nucleus exposes a rich set of APIs to extend it via plug-ins. Administration of Nucleus is more complicated than that of other blog engines.

6. Life Type

Life Type

LifeType supports multiple blogs and users, media management, generation of standard content, clean URLs and support for subdomains.
LifeType is released under the GPL license, and requires PHP and MySQL to work.

7. Boast Machine

Boast Machine

boastMachine is an open source, state of the art publishing platform written from scratch, that makes your web publishing experience so fun and easy as never before! From the fully automated installation to advanced content management featuresto spam fighting, boastMachine provides you with all that you would ever need!
It is written in PHP and backed by MySQL.

8. Text Pattern

Text pattern

Textpattern is a flexible, elegant and easy-to-use content management system. It is both free and open source.

When it comes to publishing on the internet, beginners and experts alike are met with a bothersome paradox: word processors and graphics applications allow anyone to do a pretty good job of managing text and images on a personal computer, but to make these available to the worldwide web – a seemingly similar environment of documents and destinations – ease of use vanishes behind sudden requirements for multilingual programming skills, proficiency in computer-based graphic design, and, ultimately, the patience of a saint.

9. b2evolution

b2evolution

b2evolution is a powerful blog tool you can install on your own website.

It includes all the features of traditional blog tools, and extends them with evolved features such as file & photo management, advanced skinning, multiple blogs support as well as detailed user permissions.

10. Eggblog

EggBlog

eggBlog is the free php & mysql blog software package, allowing you to create your own online website, journal or weblog (blog) using your own web-space. Powered by PHP and MySQL, eggBlog has a wide range of features including: easy to use web-based administration to add, edit and delete news articles, easy to use web-based configuration to manage your web site setting, WYSIWYG easy-to-use text editor for publishing or editing news articles, download themes to easily change the style, layout and colours of your site and more. Read more about in their site.

11. Zomplog

Zomplog

There are many great weblog systems around, but they all require technical knowledge from their users. Zomplog is different: it let’s you focus on content instead of code. Software should empower you to do great things, not stand in your way. Zomplog has been designed to be logical and easy to use for anyone, not just programmers. View more details here.

12. Subtext

Subtext

Subtext is a personal blog publishing platform that focuses on usability, elegance, and simplicity, it is written in C# for the ASP.NET platform. If you’ve ever caught yourself throwing your hands in the air and declaring that you’re going to write your own blogging engine, then Subtext is for you.

13. BlogEngine.NET

Blog engine.net

BlogEngine.NET is an open source .NET blogging project that was born out of desire for a better blog platform. A blog platform with less complexity, easy customization, and one that takes advantage of the latest .NET features.

BlogEngine.NET was designed using the current .NET framework and focused on simplicity, ease of extendibility, and innovative features. With BlogEngine.NET, we hope to create the natural blog of choice for all .NET developers world wide.

14. TriptychBlog

TriptychBlog

TriptychBlog is an open source, Microsoft® ASP.net 2.0 powered blog currently in development. Although not entirely complete, TriptychBlog still boasts some impressive features; while still being standards compliant, customizable and free.

TriptychBlog is powerful enough for corporate use, but still maintains an intuitive interface allowing anybody to create a personal blog.

15. Presstopia Blog

presstopia

Presstopia Blog is a standalone, open source weblog application that runs on the ASP.NET platform. The software is 100% free of charge, and licensed under an Apache Open Source License. It includes all the features you need to run a great blog, without the clutter and clunkiness so often associated with other high-end blogging applications.

Resources: blog.insicdesigns.com

Creating your own site's search Engine

Setting up you search page for your web application is as easy as having a DB table where you retrieve data from by a simple query. I will illustrate the steps of setting up the configurations needed in this post, and will write another one for detailed stuff in custom search page. So lets start.

Setting up your Search Index

  1. start>run> type mmc
  2. in the new window, File> Add Remove Snap-in, or press CTRL + M as a shortcut
  3. Press Add, and choose Indexing Service from the List box as shown below
    clip_image001
    Press the Add button.
  4. A dialog box will appear asking you about the Computer name you want to apply the Indexing on, choose the local computer for this Demo.
    clip_image002
  5. Close all dialogs you have on your screen until you reach your Console Window, with Indexing Service running.
  6. Right Click on the Indexing Service node under the Console Root, and choose New>Catalog.
    Make sure that the Start option in the menu is activated before doing this step, otherwise, you have to stop the service first.
    clip_image003
  7. Give the new Catalog any Name. I will call it PP4.
    Browse to a directory where the Catalog file will be stored in. This is not the directory which you want to Index.
    clip_image004
  8. You will find a new node called PP4 just appeared under the Indexing Service node.
    Now we want to tell the new Catalog to search in your site. Right click on the PP4 Catalog, and choose New>Directory
    clip_image005
  9. Now fill in the Data as below
    clip_image006
    The Path, is the Physical Path of the website you'd like to Index. Finally press OK.
  10. Now right click on the PP4 Catalog, and choose Properties. Go to the tracking tab, and change the WWW server to your Default Website.
    clip_image007
  11. Now go to the Generation tab, and uncheck the checkbox "Inherit above settings from Service".
    clip_image008
    It Enables by default the "Generate abstracts" checkbox. This tells the search index, to get some text from the searched pages, just like Google.com for instance when they get you a sample text under each item in the search result. The default is not generate any abstracts. This text is by default the first 320 characters in the page. You can customize that just by adding some text in the "description" meta tag in the HTML's head section.
  12. Now start the Service.
    clip_image009

Now we are done with setting up the search index configurations. Next you have to create a page that calls this catalog for searching. But before doing this, lets try to figure out whether everything is working fine or not.

Querying your Search Index through the built in page

Under the PP4 Catalog we have just created, you will find a node called "Query the Catalog". Press on that node and a page will load up at the right part of the window as shown below. Here you can try by typing "Partners" for instance, and have a look at the query result. As you can see, the query includes .cs, .vb, .css files and many other types of unwanted files. you can control that by creating your own page, using your own code.

clip_image010

Querying your Search Index through a custom page using Query Language

I will go through the main parts of the query, and you can figure out the rest. It's as if you are querying a simple SQL Database and binding the results to a Repeater.

Connection:

OleDbConnection odbSearch = new OleDbConnection( "Provider=\"MSIDXS\";Data Source=\"PP4\";");

Please note that the Data Source is the Catalog name you specified in the Search Index configurations.

Command:

cmdSearch.Command Text = "select doctitle, filename, vpath, rank, characterization from scope() where FREETEXT(Contents, '"+ searchText +"') order by rank desc ";

Where the "searchText" is the text you typed in the textbox for searching.

The rest is as easy as executing the query and binding the results to a repeater.
I have made one on my own and took a snap shot of the running program below:

clip_image011

Resources: techietweaks.blogspot.com