Monday, April 19, 2010 7:16 PM Kazi Manzur Rashid

Releasing Shrinkr – An ASP.NET MVC Url Shrinking Service

Few months back, I started blogging on developing a Url Shrinking Service in ASP.NET MVC, but could not complete it due to my engagement with my professional projects. Recently, I was able to manage some time for this project to complete the remaining features that we planned for the initial release. So I am announcing the official release, the source code is hosted in codeplex, you can also see it live in action over here.

The features that we have implemented so far:

Public:

  • OpenID Login.
  • Base 36 and 62 based Url generation.
  • 301 and 302 Redirect.
  • Custom Alias.
  • Maintaining Generated Urls of User.
  • Url Thumbnail.
  • Spam Detection through Google Safe Browsing.
  • Preview Page (with google warning).
  • REST based API for URL shrinking (json/xml/text).

Control Panel:

  • Application Health monitoring.
  • Marking Url as Spam/Safe.
  • Block/Unblock User.
  • Allow/Disallow User API Access.
  • Manage Banned Domains
  • Manage Banned Ip Address.
  • Manage Reserved Alias.
  • Manage Bad Words.
  • Twitter Notification when spam submitted.

Behind the scene it is developed with:

  • Entity Framework 4 (Code Only)
  • ASP.NET MVC 2
  • AspNetMvcExtensibility
  • Telerik Extensions for ASP.NET MVC (yes you can you use it freely in your open source projects)
  • DotNetOpenAuth
  • Elmah
  • Moq
  • xUnit.net
  • jQuery

We will be also be releasing  a minor update in few weeks which will contain some of the popular twitter client plug-ins and samples how to use the REST API, we will also try to include the nHibernate + Spark version in that release. In the next release, not sure about the timeline, we will include the Geo-Coding and some rich reporting for both the User and the Administrators.

Enjoy!!!

Shout it
Filed under: , , , , , , , ,

Comments

# Twitter Trackbacks for Releasing Shrinkr ??? An ASP.NET MVC Url Shrinking Service - Kazi Manzur Rashid's Blog [asp.net] on Topsy.com

Pingback from  Twitter Trackbacks for                 Releasing Shrinkr ??? An ASP.NET MVC Url Shrinking Service - Kazi Manzur Rashid's Blog         [asp.net]        on Topsy.com

# re: Releasing Shrinkr – An ASP.NET MVC Url Shrinking Service

Monday, April 19, 2010 7:19 PM by Felipe Fujiy

Code Only(CTP3) is´t go live yet? Right?

# re: Releasing Shrinkr – An ASP.NET MVC Url Shrinking Service

Monday, April 19, 2010 8:08 PM by Felipe Fujiy

Reading the code....much interesting things, but a little complex to me

# re: Releasing Shrinkr – An ASP.NET MVC Url Shrinking Service

Tuesday, April 20, 2010 2:07 AM by Kazi Manzur Rashid

@Felipe : I am not sure about the Go Live, but it looks solid to me, could not find any issue.

# re: Releasing Shrinkr – An ASP.NET MVC Url Shrinking Service

Tuesday, April 20, 2010 7:22 AM by Felipe Fujiy

I used Code-Only in one experimental project, its really good. But with EDX + POCO templates its more easy to mantain.

You pretent to write a article about this project? I am curious about some choices, like UnitOfOWork, POCO+Repository+Services, Controller at another assembly, Command object at controller actions, etc.

You preffer Services+POCO than Objects with behavior?

Sorry for bad english

# Introducing Shrinkr, The URL Shrinking Service built with ASP.NET MVC 2

Tuesday, April 20, 2010 11:25 AM by Moses' Blog

Introducing Shrinkr, The URL Shrinking Service built with ASP.NET MVC 2

# ASP.NET MVC Archived Blog Posts, Page 1

Thursday, April 22, 2010 11:36 PM by ASP.NET MVC Archived Blog Posts, Page 1

Pingback from  ASP.NET MVC Archived Blog Posts, Page 1

# re: Releasing Shrinkr – An ASP.NET MVC Url Shrinking Service

Friday, April 23, 2010 9:25 AM by Tim

Hi,

I cannot comment on your blog post about the Telerik Script Registrar, but I would ask a question, how would one pass in the scripts to load within the controller?

I tried something similar to that but that is causing issues.

helper.Telerik().ScriptRegistrar().Scripts(scripts => scripts.Add("~/content/list.js")).jQuery(false).Render();

# Cheatsheet: 2010 04.19 ~ 04.25

Saturday, April 24, 2010 11:06 PM by gOODiDEA.NET

Web The Best of Steve: Performance at JSConf Seven JavaScript Things I Wish I Knew Much Earlier In My

# re: Releasing Shrinkr – An ASP.NET MVC Url Shrinking Service

Monday, April 26, 2010 12:22 AM by jun

in the MvcExtensions project, the below code has a bug?

in ModelMetadataItemBuilder.cs:

       public TItemBuilder Optional()

       {

           Item.IsRequired = false;

           RequiredValidationMetadata requiredValidation = GetRequiredValidation();

           if (requiredValidation == null)

           {

               Item.Validations.Remove(requiredValidation);

           }

           return This;

       }

should be:

       public TItemBuilder Optional()

       {

           Item.IsRequired = false;

           RequiredValidationMetadata requiredValidation = GetRequiredValidation();

           if (requiredValidation != null)

           {

               Item.Validations.Remove(requiredValidation);

           }

           return This;

       }

# re: Releasing Shrinkr – An ASP.NET MVC Url Shrinking Service

Monday, April 26, 2010 6:33 AM by Kazi Manzur Rashid

@jun: Thanks for point that out, will be fixed in the next check-in.

# Releasing Shrinkr ? An ASP.NET MVC Url Shrinking Service - Kazi Manzur Rashid's Blog

Monday, April 26, 2010 11:22 PM by iAwaaz-News-by-People

Thank you for submitting this cool story - Trackback from iAwaaz-News-by-People

# re: Releasing Shrinkr – An ASP.NET MVC Url Shrinking Service

Wednesday, April 28, 2010 9:04 AM by Felipe Fujiy

Kazi, why you use Unit Of Work instead of ObjectContext? ObjectContext dont have this function?

I using your project for reference for mine and I want to understand some concepts.

# re: Releasing Shrinkr – An ASP.NET MVC Url Shrinking Service

Wednesday, April 28, 2010 10:51 AM by Kazi Manzur Rashid

@Felipe: Yes the ObjectContext does have it, in fact it is calling the Object Context under the hood. But I think from the Architectural point of view commiting all the database operation is a separate object concern rather than any specific repository.

Would you please post your future queries in the codeplex project.

# Releasing Shrinkr – An ASP.NET MVC Url Shrinking Service - Kazi Manzur Rashid

Monday, May 17, 2010 2:33 PM by progg.ru

Thank you for submitting this cool story - Trackback from progg.ru

# Links Interesantes de .NET en general

Tuesday, September 28, 2010 6:04 AM by Phydelta

Links Interesantes de .NET en general