Thursday, February 21, 2013

Why Haven't I Posted Any Lately?

Well, I have actually been actively writing lately. 

I've neglected to tell you that I've transferred my thoughts and ideas over to the Roundedcube Blog. You can find posts that I wrote by following this link. 

Please update your bookmarks and links (if you did that) to one of those links.  I really appreciate your support.  Please keep reading and I'll keep writing them as much as I can. 

Thanks again. :)

Marco

Monday, February 14, 2011

Congratulations to Sitecore for being ISV of the Month

Sitecore has been chosen by the SQL Server Azure Team as its first ISV of the Month for leveraging Microsoft Azure.  You can read the blog post here:

http://blogs.msdn.com/b/sqlazure/archive/2011/02/11/10128353.aspx

As part of this exciting news, if you don’t know yet, Sitecore now works very closely with Microsoft. When I say closely, I mean physically.  They now have an on-site location at the Microsoft Partner Solutions Center in Redmond, WA. 

For Sitecore users, developers, and enthusiasts, this can only mean that Sitecore’s commitment to improving its product as well as being in line with Microsoft’s vision is going to be accelerated.  Just in the past year, we’ve seen several versions of Sitecore come out.  Plus, there’s the Azure version.  Then, we also have new modules and updated Sitecore-based products.  Sitecore is really stepping on the gas to separate itself from the competition by leveraging strategic partnerships.  At this rate, partners need to keep up both technically and business-wise.  There’s so much value in adopting Sitecore now and in the future.

Thanks Sitecore for such dedication to excellence.  I’m proud to being a partner.

Thursday, February 3, 2011

Sitecore: What do you want to know?

I know that this is only my second post this year and I haven’t done one since November 2010.  I’ve been a bit busy lately and with the holidays, it was tough to get my head on a topic and write about it.  Anyway, I’m getting back to it and I’m hoping to find out what kind of topics you’d like to hear more.  I’ve been all over the place (but maybe that’s what makes you read my blog) from simple hacks that I do, actual real-life best practices, to business and technology insights.

Here are some ideas that I can explore and blog about:

  • OMS and Analytics
  • More Sharepoint
  • Site Creation Best Practices
  • Other CMS vs Sitecore
  • Azure
  • New Sitecore Features
  • Selling Sitecore
  • Sitecore Beyond CMS
  • System Integration

I’ve also been contemplating of writing a comprehensive e-book that guides a developer from installation to deployment.  The audience would likely be more for new Sitecore adopters but I’ll put enough best practices and techniques in there that I hope seasoned Sitecore technologists would at least read and give me some feedback.

I don’t have a set date but I’d like to hear your thoughts on what you’d like to see as well.

Wednesday, January 26, 2011

What is an In-house Sitecore Resource?

One of the challenges many new Sitecore clients have is what happens after the Sitecore-based Web site is finished and running.  There are obviously many choices out there but the common theme is that whatever you end up with, you will need to have a good Sitecore technical resource…and this person doesn’t always have to be the best programmer you can find.  Of course, you can also apply these when looking for a long-term relationship with a Sitecore vendor.  Here are some of the things you should look for.  Remember, we’re not talking about a resource that just manages the site

Monday, November 8, 2010

Roundedcube.com Launched

We just recently launched our new Website and, of course, it’s managed using Sitecore CMS, what else.  It’s actually something that I had a hand on so that I can get back to doing some actual Sitecore work.  Although I may know the concepts, getting back to it took a bit of time especially when I started it was on v6.2 and now it’s on v6.3.  I think I was going to upgrade to v6.4 but didn’t have enough time.  It would’ve been great to see the new enhancements on v6.4 such as cloning, page editor updates, etc.  Maybe in a couple of months.

Anyway, check our site out and let us know what you think.  We put a lot of effort in making the site mobile-friendly (notice no Flash).  It works so well on iPhone/iPad, webOS, and Droid phones.  However, we are still developing the mobile-version of the site and should be out in the next month.  It will re-use the Sitecore instance we have and its content.  I’m making sure that marketing can maintain/enhance the site easily for any media.  So stay tuned for that.

Also, you may have seen some tweets or posts regarding an Easter egg on the site.  Let me just get the cat out of the bag and just double-click on the main feature on the homepage.  Have a great time with it.

Visit our site (http://www.roundedcube.com) and let us know what you think.

Sunday, October 17, 2010

Sitecore 6.4 Cloning – What does it Mean?

If you want to know “what it is”, then check John West’s Blog.  John gives you a quick preview of this new powerful feature, what it does, how it compares with other Sitecore assets, etc.  The concept is not far-fetch and you may have already required or implemented it before.  It essentially allows an item to use another item’s field values.  Let’s say you have a Location page (content item) that has days/hours of operation, amenities, location name, map, address, etc.  Also, let’s say that all locations have the same hours of operation and amenities.  What cloning allows you to do is to “clone” the location content item for another location and just update the address, name, and map.  Upon rendering, you’ll see a complete page with the re-used (or shared depending on how you look at it) content values of hours of operations and amenities together with the specific values for address, name, and map.  This is all without developing any logic specific to this except for rendering the fields.  Cool, huh?

Thursday, October 7, 2010

Proud to be a Sitecore Blogger

Yup.  Besides this blog and our corporate blog, I’m now also a Sitecore blogger:

http://www.sitecore.net/Community/Best-Practice-Blogs/Marco-Tana/Posts/2010/09/Marketers-Top-Sitecore-Priorities.aspx

This may sound self-glorifying but I’m actually proud where my writing skills has taken me.  I still have the occasional grammatical errors but I consider that to be part of my personality (nice excuse, huh?).  Anyway, Sitecore is bringing together a group of Sitecore veterans to give you their (our) experiences with the product, modules, and associated technologies and practices.  It’s called the Best Practice Blogs and was recently released.  You’ll find advice and expertise on marketing, implementation, e-commerce, SEO, usability, and analytics.  There’ll be more topics too come as Sitecore gets more articles. 

I’ve read most of the posts already and very interesting ideas.  I definitely learned a thing or two.  I’m sure you will too.  I say you check it out and I’ll definitely write another one.  By the way, if you happen to read mine, leave me a message and let me know what topic you’d like me to tackle in the future (or at least rate my post).  You can suggest anything from design, technology, project management, processes, etc.  If I have some ideas to share, I’ll definitely evangelize it on my posts either here in my blog, at Roundedcube’s blog, or Sitecore’s.

Thanks again for reading.

Monday, September 20, 2010

ASP.NET Vulnerability Allows Downloading of Server Files (and Decrypt Viewstate)

ANOTHER UPDATE: Sitecore released a fix last Friday on SDN.

UPDATE: A FAQ that details more about the workaround and the vulnerability was released on Sep 20.

Yes.  You read that right.  Essentially, by doing some queries on the server that has an ASP.NET-based Website/app, a hacker can eventually figure out how to download restricted files like web.config and even be able to determine the server’s cipher text and decrypt your site’s Viewstate or other encrypted data you may have. 
I’m posting this here because Sitecore is obviously ASP.NET-based.  So, here’s the post form Scott Guthrie on the workaround and more information about the vulnerability.  Spread it around and let’s make sure our community is safe and keep Sitecore’s integrity intact (even though this is not even about Sitecore).  You know how that works : ).
http://weblogs.asp.net/scottgu/archive/2010/09/18/important-asp-net-security-vulnerability.aspx

Sitecore for President (well for Government Sites)

Roundedcube will be featuring Sitecore at the National Association of Government Webmasters (NAGW) to be held in St. Louis, MO from Sept. 22 – 24.  We’re definitely excited for being part of the show because I think we definitely got something to show.  One of the highlights will be our work for the City of Ogden, UT which was released last year (a Sitecore case study is also available if you want a copy).
One of our goals in the NAGW show is to feature how Sitecore’s capabilities match up with government sites’ needs and processes.  This is not just in the technical point of view but also with its user-experience, deployment scenarios, maintenance, and multi-site/multi-language capabilities.  I think these are some of the most important factors that government entities look for.  So, let’s take a look at them one by on in summary form.  This is by no means the complete list but I’m highlighting what government sites may be looking for.

Friday, September 10, 2010

Customize the Sitecore System Tray

The Sitecore Desktop is just like Windows, it’s customizable.  Not a lot have utilized it because there’s not much about on how to do so except for typical user-specifics such as wallpaper, desktop shortcuts, etc.  Here is one thing you can do to the system tray. 

WARNING: Make sure to be cautious when making these changes as these updates the Core database.

Wednesday, September 8, 2010

Dynamic Sitecore Desktop

I was playing around with Sitecore and I saw John West’s way of randomizing the desktop wallpaper.  He uses a loggingin pipeline processor that essentially updates the Wallpaper property of the user.  It’s pretty cool….so I get to thinking…let me try to make it more dynamic. 

Thursday, September 2, 2010

Sitecore to Support MVC…What Do You Think?

When I first saw that Sitecore is going to support the MVC architecture in a future release, I wasn’t sure exactly what that means.  I have some experience with MVC.  I know about ASP.NET’s implementation and also the S#arp Architecture that improves upon Microsoft’s version.  To me, MVC architecture is great with applications.  It allows me to separate (decouple) the various layers and actually make coding them a lot easier and focused.  So I ask, is this a way for Sitecore to tell us to start building apps with the Sitecore framework as well? 

I would really like to know up to what level the MVC support will be.  Will there be technology preview?  I would like to get a hand on an alpha release and see how it compares with the other architectures.  I’d like to be able to play with it using ASP.NET MVC Web controls or other commercial libraries.  Maybe Sitecore will just support it to allow those parts of a Website that requires more complex logic, that may be easier to implement with MVC, that are more code-heavy to implement.  I don’t see it being used on a Website which is what a CMS is for. But, I do see it being used for an Intranet or even Sitecore applications.

I’ve seen some forum posts and inquiries about MVC within Sitecore. I’m not sure exactly what they are doing so I can’t speak for them.  However, if you’re reading this and have done it, comment back or post a link to your blog that talks about it.  I think there are tons of people wondering about how one decides on using MVC or just typical ASP.NET form-based approach. 

If you have your own take on this….let us know.

Wednesday, September 1, 2010

Taking Advantage of Sitecore Dictionary and Tokens

The Sitecore Dictionary is one of the newer features that may have gotten under a developer’s radar.  I’m sure there has been chances when a page design element just doesn’t fit any of the data template fields that’s been defined. Designers or content developers always surprise Sitecore developers with “minor” requirements that have been left out in the specs just because it’s so trivial.  In the CMS world, nothing is trivial because of the fact that site owners want as much control on the site as possible (without going back to a developer – this has been the issue forever).

Friday, August 13, 2010

Learn about Language Fallback from Caleb

One of my brilliant Sitecore guys, Caleb Miller, just wrote a much needed globalization post particularly on language fallbacks.  Essentially, a language fallback is when “something” is not translated to the current language context…then the solution reverts to a fallback language that should have that translation.  I’m  sure this is not old news to those who’ve built global sites, but I’m sure you’ll get some nice insights on this post.

Here’s a quick look at what’s in the post:

  • difference between sc:fld and sc:field in XSLT Renderings
  • item and field level pipeline processors
  • checking for languages and versions

Check it out and let him know what you think.

Simple (but needed) Sitecore UI Improvements on Core Apps

Sitecore has greatly improved its UI since I first looked at it (v4).  It definitely gone from traditional to innovative.  Sitecore has come up with so many new UIs in the past few releases  that it I want to make sure that the UI experts don’t forget about some of the original apps’ usability as well.  Just to give you an idea of how things have progressed in the current UI paradigm:

  1. typical tree-lists, collapsible panels, pop-ups, customizable buttons, ribbons, page editor, and other Windows innovations
  2. Media Library’s improvements on uploads, alt text entry, drag & drop, and thumbnail generation
  3. OMS revealed a new set of UI elements such as its graphical reports, Word-like reports and toolbars, and report designer
  4. Email Campaign Manager has the Preview mode that actually grabs data not from the current item but as a collection of everything underneath it

I haven’t checked other apps that are coming out but I’m sure some other UIs might be forthcoming.  There’s even the custom field types on the Shared Source that you can use such as the carousel.  These are all great improvements, but let’s not forget to improve some of the older Sitecore apps out there. 

The list below are just some of the things I’ve noticed that could help a Sitecore user.  These are simple (not sure about the implementation) improvements that can help make the UIs more usable.  I’m not saying that I can’t currently do what I’m trying to accomplish (i.e. refresh in the User Manager can be done by closing the app and firing it up again), but these improvements will cut down some of the “brute force” user experience we currently have.

Disclaimer: These are not all-inclusive…I’m sure I’ll notice more (or retract some) but if you have anything to add, just comment below and let the Sitecore community know.

User Manager

  • Refresh button to update the list of users
  • Enable the “Drag a column to this area to group by it” or maybe a similar filtering; very useful for sites with extranets and ECM subscribers
  • Column sort
  • Context pop-up menu instead of “select user” then use the button on the toolbar

Security Editor/Access Viewer

  • Combine Security Editor and Access Viewer to see the effects of security changes
  • Refresh button on Access Viewer

Content Editor

  • Jump to content section not just a field
  • If My Toolbar is defined, make it the first ribbon
  • Pre-defined set of My Toolbar customizations based on user’s roles (and can be part of user’s profile)
  • Remove Media Library and Workbox by default to make the Content Editor quicker (I think most people use those as separate apps – and normally you have separate roles who might using those)

Page Editor

  • Keep Ribbon and Page Editor buttons always visible (no scrolling)
  • Context pop-up menu since sometimes sometimes the content can be too long and scrolling is needed
  • Enable My Toolbar with appropriate buttons auto-disabled/enabled

Media Library

  • Multi-select to do typical “Windows Explorer-like” functions such as delete and move

Well, that’s it for now.  This post is not meant to list a set of future features that I’d like to see; otherwise, it’ll be a very long post.  Anyway, if you have more to add, comment below.

Tuesday, August 3, 2010

Sitecore on Firefox…next version…how about Chrome?

Did you know that Sitecore’s future release would actually support Firefox fully in the “Halo” release?  This means that you will now be able to use Sitecore CMS in Firefox with all the various user interfaces and not just Content Editor, etc.  I’m excited about because of the following reasons:

  • Firefox has an active community of add-on developers that helps to make “things” available such as generating Lorem Ipsum fillers, web development tools, color identifier, and more.
  • Firefox is generally accepted as more secure (but more recent studies have shown that IE is becoming as secure but it’s ubiquity remains a reason for it being a primary target).
  • Firefox keeps getting faster and faster especially when it comes to Javascript; as we all know, Sitecore is heavy on Javascript particularly AJAX so this could only help.

I know the reasons above are not deal breakers but what this new full-browser support brings is “OPTION”.  This brings Sitecore to a different level of acceptability with companies that have very tight security policies.  Not sure if Firefox is more secure as I’m not a security expert, but based on many blog reviews and researches it seems to be so.

So, in brief, I’m excited to see the new version when it comes out. But, why did I mention Google Chrome above?

The main reason I’m writing this post is only because I found out about a very cool browser add-on for both Firefox and Chrome called IE Tab.  It’s available at:

http://www.ietab.net/

I downloaded it for both browser and voila! I have the full Sitecore CMS client on both browsers with all its glory.  And I’m not talking about the client being “dumbed” down, it’s what you would expect as if you’re in IE. 

Well, the reason for that is because the add-on essentially uses the Internet Explorer Web control as the rendering engine (i.e. creates an <object> tag that displays the URL into the IE engine).  This means that any other add-ons you might have in either browser will not work on the content of the site.  So, if this is the case, why even bother?

Well, here are some good things to consider:

  • In Chrome, I get to see less Window framing…which means I get to see more of the Sitecore CM client.
  • I could use some of the browser add-ons that doesn’t work with the site’s content such as Lorem Ipsum generators without going to another browser or site.
  • It gives you another option to test the Web site on IE without firing up IE.
  • Most of the Sitecore CMS functionalities work such as the keyboard shortcuts, etc. (upload in the media library doesn’t seem to work).
  • You don’t get to see the IE logo all the time : )

Anyway, I thought I share this since it was interesting to me.  Soon we don’t have to fake the Firefox thing…just Chrome. Of course, we’d love to see Chrome fully supported at some point too.

Thursday, July 29, 2010

What does Sitecore v6.3 Really Means?

So it used to be called the TwinPeaks release if you follow the Sitecore Roadmap but exactly what does it bring to the table?  There are some blogs already out regarding the release.  Alex Shyba showed how easy it is to cluster the CMS client (in fact he did 6 virtual servers in less than hour – follow him on Twitter to get more updates).  Oh yes, that’s what v6.3 really allows you to do (plus some other stuff that you should read on the release notes).  But as a business person, you might ask, so what?

Well, we know that enterprises (that’s the keyword) always need performance as one of the top requirements to be fast and efficient.  The Sitecore delivery engine (i.e. content delivery – CD servers) had always been keen to being clustered and allows you to load-balance them to achieve a pretty good performance.  And that’s important because Sitecore itself may use up to 30% of CPU utilization (that’s what I’ve heard a while back in v5).  So making sure that the site visitors are experiencing beautiful user interactions while delivering them promptly can be a tough achievement if you don’t load-balance your delivery servers.  Almost all implementations nowadays have this requirement and should now be something that you should be aware of.

Sitecore v6.3 brings a new level performance except it’s not on the delivery side of things but more on the authoring side.  With v6.3, IT can now load-balance the CMS client allowing for better responsiveness.  It introduces the Event Queue which Adam Conn of Sitecore blogged about (it even has a nice video). Essentially, it is like a recipe whereby if you want to replicate your mom’s cooking again and again, you follow the recipe.  In a way, v6.3 CMS client servers look at the queue to see what else need to be done and thus become “in synch” with the other servers. 

As a business person, should I care about this?  I say yes because now there’s more freedom on how Sitecore is deployed geographically.  For international companies, this makes maintaining Web site more effective.  Also, this becomes an ammunition to having a more globalized management of Web sites.  Sitecore had been an eye-candy for managing globalized content because of translations, languages, publishing capabilities; but, there’s always that feeling that it’s really hard to distribute authorship because of geographical distances.  With v6.3, this fear or concern is minimized because performance (and reliability) becomes less of an issue. 

I’m hoping that corporations will now feel comfortable bringing in your international sites into one platform, that is Sitecore.  The only thing that I think that you need to be cautious is how those other systems going to integrate with your Web site and allow them to be “load-balanceable” as well.  I’ll leave you with this but one hint is to consider Sitecore not just a CMS but also as a foundational technical platform for other capabilities.

Sorting Sitecore Items in .NET

Have you ever asked yourself what’s the fastest (or easiest) way to sort a list of item that you retrieve using SelectItems or something similar?  It’s been answered before and there’s even been sample code provided before.  Here are some of the ones I’ve seen:

  • using IComparer
  • brute-force approach
  • using the “sortorder” provided by Sitecore

I think the last two is self-explanatory but the first one is something that I’ve seen before on SDN and works really well.  You can see a sample code on:

http://sdn.sitecore.net/Articles/API/Get%20Items%20Children%20Sorted.aspx

This solution is a definite .NET way of doing it.  I would actually say old-school but effective.  It uses the Sort method and passing it a custom IComparer. Just a simple Title sort would at least be 3-5 lines of code. 

Although with the new C# 2.0 syntax, you can reduce the # of lines by using anonymous methods such as:

numbers.Sort((x,y) => Int32.Parse(x).CompareTo(Int32.Parse(y)));

Now comes C# 3.0’s support for LINQ, you can now use that technique to do a one-line code…yes ONE LINE!!!

The code is:

var sortedList = (from entry in unsortedItems orderby entry.Fields[“Title”].Value ascending select entry);

where unsortedItems is an array of Items (i.e. Item[]) or an ItemList or any type of collection for that matter.

So how does it work?  If you’ve done LINQ (or even SQL statements) before, this should be familiar but if not, it’s quite easy.  The code above grabs an Item from the unsortedItems into a variable called entry.  Using the entry’s Fields property and the proper field name, I sort it using either “ascending” or “descending” keyword.  The “select entry” essentially completes the statement to store that same entry into the resulting variable "sortedList”.

I’ve used this technique with other field types as well and works very well.  Of course, you may need to revert back to using IComparer if you have more complex comparison rules.

CAUTION

FYI for algorithm folks, there has been mention that the LINQ’s OrderBy sort is O(n*log(n)) compared to IEnumerable’s O(n*n) which according to some is about 5 times slower with a large sample.  Here’s a link you can get a more detailed analysis of OrderBy and Sort.

Monday, April 26, 2010

A 5-yr Insight to Sitecore Partnership

Yes, it’s been 5 years.  I still remember the day when I first looked at Sitecore in our previous office.  It was for a prospect that wanted a CMS.  During that time, the CMS market was dominated by Interwoven, Stellent, MS CMS, Documentum, Sharepoint and Vignette.  None of those fit my criteria:

  • .NET-based
  • Less than $20k
  • Open-architecture
  • Strict separation of content from presentation
  • Visual Studio-friendly

So, I started looking deeper in the market and found Sitecore.  At that time, Sitecore USA just opened its doors in California.  We didn’t get the prospect but I saw such potential in the technology that I decided to go for training and become a partner.  Needless to say, we became one and I couldn’t be happier with my decision.  Here is our 5-yr timeline with respect to Sitecore:

Year One (2005)
  • becomes a Sitecore Certified Partner with 1 developer using Sitecore v4
  • trained internal developers on Sitecore v4
  • signed our first Sitecore customer
  • ended up with 4 Sitecore customers
  • integrated Sitecore with AS/400 and JD Edwards thru a SOA middle-tier
Year Two (2006)
  • developed a mySQL data provider before it became available
  • developed a Sitecore-generated site scraper to LAMP-friendly site
  • full AD integration complete with biographies and documents
  • more than 12 implementations by this time (including v5.1 and v5.2)
  • real-time integration for up-to-date scoring
Year Three (2007)
  • iMIS integration
  • Community Server integration
  • TIMSS (Personify) integration
  • multi-language with fallback implementation
  • Omniture analytics integration
  • multiple v5.3 implementations and upgrades
  • embraced the “partner for partners” philosophy
Year Four (2008)
  • more v5.3 implementations
  • integration with iMIS for more detailed information on events, members, and others
  • migrated several sites to Sitecore
  • single-sign on with membership system, Sitecore, and Community Server
  • several Sitecore architectural consulting
Year Five (2009)
  • SaaS integrations such as Google Maps, calendars and events, and others
  • several v6 implementations and upgrades
  • one of the first OMS certified partners
  • multiple Sitecore Foundry v2 and v3 implementations
  • 2 case studies performed by Sitecore for the government and faith-based markets

It’s already the 2nd quarter of 2010 and yes we’ve already done some special things this year such as hosting Sitecore training, more OMS certifications, additional Foundry implementations, and recognized as one of the Outstanding CMS Projects.  After attending Dreamcore, we have a renewed excitement towards what Sitecore is doing.  I’d like to be able to update this blog post and let you know what we’ve done again.  With the upcoming release Sitecore and OMS, Intranet Portal, and Foundry, we’re sure to make more history.

Thursday, March 4, 2010

Porting Legacy Web Apps to Sitecore Quickly

Have you ever had a client request where they’d like to have any of their Web apps to be ported over to Sitecore?  And, why not, it looks like Windows and it’s .NET, it can’t be that hard.  Well it can be easy and it can be hard depending on what level you want to port the application.  For this post, we just want to see the legacy app in the Sitecore Shell.  Sometimes, that’s all is needed since the Web app already works pretty well.  Plus, it just looks cooler when your app is within Sitecore.

So, to show the app within Sitecore, we just need to create a Start menu item that invokes the remote Web app.  Let’s start.

Power up Sitecore and login.  Click on the Sitecore “start” button > All Applications > Sitecore on the Net > Sitecore Homepage.  That’s just the Sitecore corporate site.  I’m guessing you’re following what I’m getting at.  You can easily encapsulate (frame) any Web apps that you have created. This is really important because Sitecore let’s you incorporate legacy Web applications especially when it takes a while to port a complex application.  This gives your CMS users a way to access the legacy app through the Sitecore shell provided that the app doesn’t interfere with Sitecore’s windowing mechanism.  There might even be a way to pass data from Sitecore to the app through the URL because that’s essentially how the Web app is invoked.

You can quickly do this by going to the Core DB.  Open the Content Editor and go under Documents and Settings. Traverse the nested folders until you get to Programs.  Inside Programs, you can create a Start menu folder, or the “shortcut” that invokes your legacy Web application.  To create the “shortcut”, which is really a Start menu action, select it from the Insert ribbon.  The most important piece of data you need to assign is under the Message field.  Enter:

RunExternal(\"<URL>", \"\", \"Software/32x32/application.png\", \"<WINDOW TITLE>\")

where <URL> is the Web address to your Web application, <WINDOW TITLE> is the title that is shown on the Sitecore window that appears.  You can also change the icon that appears on the window if you’d like.  Just make it the same icon that you specify in the Icon field of the menu item.

To see the new menu item, refresh the Shell or switch to the Master DB (which refreshes the Shell), and notice that you’ll find your new menu item in the Start menu.  Clicking this item should invoke your remote legacy Web application.

This is the quickest way. Obviously, you can’t do much with this since the Sitecore and the app are not really integrated.  There is only one way communication, if even any from the URL.  But, you can actually use Sitecore’s security to restrict access to the Start menu item, thus making it seemingly secured  Of course, you still have to keep the app secured somehow but at least there’s another level of security that can be used on top of the Web app itself.

There are other two ways to port apps into Sitecore.  With moderate complexity, you can use Sitecore as the app’s data storage.  This means that you’ll have to figure out how to port DB tables to templates (which is pretty simple since that’s how they initially taught us during Sitecore training to explain the concepts).  You can still just use straight ASP.NET controls to do your UI and just use Sitecore APIs to update those related Sitecore items.  I actually created one like this that essentially converted the ASP.NET generated site into PHP files and published the site to Linux with Apache complete with uploaded images, etc.

The most complex way is basically creating a XAML app.  That’s essentially how the native Sitecore apps you see now are developed such as Content Editor, Workbox, etc.  This has been the case since v5 so I’m not sure now how compatible Sitecore’s XAML with the Windows Presentation Foundation (WPF) (Anyone from Sitecore???).  This way of porting the legacy Web apps benefit from the separation of UI from logic, which is what XAML was supposed to achieve.  XAML is intended to be device-independent.  This method is the most lightweight and you can use all the readily available Sitecore-specific XAML controls already created by Sitecore.  You also benefit from the UI’s performance techniques such as AJAX and others without thinking about them.

Anyway, I’ve given you 3 ways to port your legacy apps.  Sometimes it just as easy to port an app than to only integrate them especially when it requires administrative UI.  One of the main reasons that Sitecore is so powerful is its UI, so leverage that with your legacy apps and future ones.