Thursday, September 02, 2010

How to Boost Performance of Your ASP.NET Web App.

Posted by Scott on 1. July 2010 22:41

I have a website over at http://www.utopiapimp.com with over 15k users and it was getting bogged down a ton by database hits.  I needed to speed the site up because of the DB calls.  So I threw a ton of stuff into Cache, but that didn't speed the site up enough.  So I looked for faster ways to do these things and wanted to give a shout out to this site that helped drastically.

Here is the link to the Article. I suggest you take a look at it if you wanted to do the same. http://www.codeproject.com/KB/aspnet/10ASPNetPerformance.aspx?msg=2809164 

 

Scott 

If you liked this post, please be sure to subscribe to my RSS Feed.

Share/Save/Bookmark

Yet Another Forum Controls: Top Posts and Last Post Controls

Posted by Scott on 15. June 2009 11:14

In my time of developing apps, I love YAF and would love to see more development for it. So in helping out with the Forum, I wanted to contribute and I imagine I will be working on more controls later down the road for YAF.

I built these controls for the third party application I host at Utopiapimp.com.  It is used for the online game at Utopia.Swirve.com.  Its a GREAT game which challenges your intellect.  It is completely text based so requires a lot of thinking.  If you ever decided to give it a try, look me up.  Im around the game and the site.  I am hooked on it.

In using these controls, I ask that you help out with YAF. Not just in downloading these controls, but building your own stuff!

To YAF/Control Developers: There are two problems with these controls. I am using LINQ as a segway with connecting to the database. So if you would like to do something different, please replace the "DataContexts" with something else for connecting to the database. Along with the Execute Query part needs to be replaced as well.
THE OTHER PROBLEM: YAF URL Re-directions STINK. They just don't work outside the forum. So if your posting any of this on a page other than the default page, the page needs to be replaced with the default page.

To All other control users: These controls can either be spit out as tables or Lists. Go to the code behind and comment out the Table, but by default it displays the list.

Attrributes:
1. PostCount: Default = 10, but can be set to anything.
2. BoardName: Default is no board name. Its just all boards, but can be set to any board name.
3. Class: This is the CSSClass.
4. Row class and alternating Class can be un-commented and implemented on each control.

Here are the controls.

Put these controls into the forum/controls folder and drag and drop them anywhere on the site. 

TopPosts.zip (1.67 kb)

LatestPosts.zip (1.79 kb)

If you liked this post, please be sure to subscribe to my RSS Feed.

Share/Save/Bookmark

GoDaddy, ASP.NET and Discount ASP

Posted by Scott on 30. January 2009 05:38

Seriously, sometimes I wonder why I stay with GoDaddy.  Here I am developing a cutting edge app over at DrinkingFor. I just installed URL Routing on the app from the ASP.NET SP1 release.  I get to the point where I upload my changes to the site and what do I get?  I get a freaking Error.  SP1 for ASP.NET has been out for over 3 months now and GoDaddy still has yet to support it.  Why do I stay with them?  Sometimes I will never know.

I decide to take action.  So I call up GoDaddy support to ask them when do they plan on supporting SP1.  I waited on the line for about 10 minutes, and then someone finally answered.  The problem was that he was actually SNOOTY with me.  It was just plain sad.  I decided to go ahead and ask him when they expect the update.  Now being such a LARGE company, you would expect they would have roll out dates and times set up as to when they would start supporting a software upgrade.  Well, I talked to them and he said specifically they don’t.  They don’t have any kind of time line for SP1 or any other release.  I was just plain frustrated so I quickly hung up the phone with him and went to check out their competitor Discount ASP.  I come to find out that GoDaddy has a superior control panel than DASP.  I also found out that DASP is about double the price of GoDaddy.  I am a poor developer and I just really don’t make enough money to move my stuff over to a double the price hosting service. 

But, If Discount ASP was able to come down on their price a bit and upgrade their control panel, I would have moved over no questions asked with 20+ websites and customers.

Now as for GoDaddy, I am putting out a warning that if you don’t change your service and make software upgrades faster and let your developers know when its made, you will begin to see a mass exodus of your service.  I will make the promise that when I am able to pool enough funds together for about 20 websites, I will be moving.  I have had enough of the Big Daddy in the room.

Has anyone else had this bad of service?  What do you think of Discount ASP?

If you liked this post, please be sure to subscribe to my RSS Feed.

Share/Save/Bookmark

Introducing DotNet Instant Messenger

Posted by Scott on 28. December 2008 21:38

Ladies and Gentlemen, Boys and Girls, Friends of all ages:

I am proud to present to you DotNet Instant Messenger.  I have built for the open source community a new Instant Messaging client that works fully out of the browser.  The client is built with ASP.NET, C#, JavaScript and LINQ.

Why build a new instant messaging client?  Well, I decided that the current instant massangers were all proprietary or built in another language.  I wanted one strictly for ASP.NET.  The project in all took about 2 weeks of good old fashioned programming.  I had to learn a bit of JavaScript and Web services to get this job done, but it was fun.  I took the images from Ajax IM, I am not going to lie about that.  All the code is completely mine and built with my two hands.  I used Ajax IM’s database and enhanced it a little bit.

Instructions for Use:
  1. You must have the default ASP.NET membership schema already set up.
  2. You will need to run IMQuery.sql on the database.
  3. You must allow pop-ups for the Client to work – This is required so when a user starts a chat, the new window will open for the user on the receiving end.
  4. Note: IM’s could take up to one minute.  When the buddy list and the chat box isn’t open, there are minute intervals on the browser which means it only checks for new messages once a minute.  When you have the Buddy List open, the interval is cut down to 5 seconds.

I have made this for the community and expect the community to hopefully give me some feedback.  I am fully into making this thing fully functional client if the community sees it as a good messenger. 

The project is available on Codeplex and at www.DotNetIM.com.  The Demo is located at www.DotNetIM.com. Go check it out and please leave me some feedback.

kick it on DotNetKicks.com

If you liked this post, please be sure to subscribe to my RSS Feed.

Share/Save/Bookmark

My Projects

Posted by Scott on 24. December 2008 22:34

At the time of writing this, I finally got my second real website out for customers and would like to publish my profile online.  So at the time of writing this, I have completed two sites for customers.  This list will grow with time with each new project I create.

  • Lumber by Lance - 12/24/2008 – This site is for a customer that produces logs to lumber and then has a kiln to dry the lumber out.
  • Indialantic Volunteer Fire Department - 6/20/2008 – This site is for a volunteer fire department out of Indialantic Beach, Fl.  I was quite happy with this project because all the white space is completely updatable before I found out the concept of what a CMS is.
  • DotNet Instant Messenger - 12/28/2008 - This site was designed by a friend without a website.  I designed and created DotNet IM.  Pretty proud of this one actually.  First real engine I have put out on the internet.
  • DrinkingFor -1/09/2008 - Been working on this site with my partner in crime.  I knew asp.net and he knew only java.  Since C# and Java go hand and hand, he wanted to jump onto a simple project.  This is it.  We are working on it to make sure it up to web 2.0 standards but it has been launched.
  • UtopiaPimp -6/30/2009 - I started this site well over a year ago and gave it a break so I could work on DrinkingFor.  I am back at this site and it is working well for me. The site is built for a Online game at Utopia.Swirve.com.  It is a game that requires a bit of intellect and collaboration.  The learning curve has said to be high, but it is still one of the best and if not oldest online games in the world.  UtopiaPimp currently has over 13k users.
If you liked this post, please be sure to subscribe to my RSS Feed.

Share/Save/Bookmark

Finish the UnFinished

Posted by Scott on 16. December 2008 18:50

Two things rob people of their peace of mind : work unfinished and work not yet begun.” - anonymous
 

This is not a story of work unfinished, but of work finished.  Life and work throws us into many different projects and work.  We as a society are getting better and faster at finishing tasks we once could not accomplish.  I had a customer come to me and describe to me that they wanted a "chat" application plugged into their current application.  They decided that it was too hard to talk over the phone and would rather type it down and hit enter only to receive a response moments later by the person on the other end.  The chat app had to be web based and had to be produced in the current language of the application in which is was being plugged into.  The language was ASP.NET.  I decided to try the easy route and looked all over the web for some type of chat app.  I found one which was nice, but was purely javascript.  I wanted one built in ASP.NET.  

In the end of this process, I realized there was nothing built in ASP.NET which came as close as to what they wanted me to build.  So, I started from scratch building it up and after about 2 weeks worth of work I got a working demo completed.  I then called up my customer to demo this thing out and they liked it a lot.  But they said there was one small problem.  They only needed to talk to me through it.  They didn't want to talk to anyone, but me.  So here I am with a working buddy list, Icons, Profile content, working group chat and singular chat.  I was frustrated.  It was a demo and not completely done, so I stepped back for a moment and reflected.  I said to my self, "If I don't finish this up now, it will be another thing I just haven't finished".  I was right because it would have turned into that.  It would have just turned into another app that was put out somewhere on some computer. It would have never seen the light of day and I would not have had a peace of mind.  So I decided not to bill the customer for what I had completed.  I built a small little chat "back and forth" messenger for the customer and me.  I then separated the main application and finished the chat application on my own time.  I was extremely happy with this accomplishment and decided that since I was unable to find a chat application built in ASP.NET, I wanted to release it to the world.  So in the coming days I will be posting the chat application on my blog.  Stay tuned.  It is impressive.

Now, as for the moral of the story:  Finish your work.  Bring it to completion.  If you just let it sit there it will collect dust.  It will be time not well spent in which you just lost a small bit of your life to something that you didn't get finished. Go host your project on codeplex and just maybe it would be found by some agile developer a few years from now.  The developer will decide to implement your code and make a much better application built off what you started.  If anything, just finish your work and you will start to have a peace of mind.  I know I do.


If you liked this post, please be sure to subscribe to my RSS Feed.

Share/Save/Bookmark

The NEW ASP.NET Chart Controls (with Screen shots!)

Posted by Scott on 5. December 2008 13:53

I must say that I was a bit skeptical about what Microsoft could offer compared to Dundes Charts when they brought out their new charting controls at PDC 2008.  I was not able to attend, but I had to just go take a look at the control and I must say after seeing the sample gallery, I was BLOWN away!  I have included all screenshots that came with the sample website so that you can also see what's going on with this control. I was utterly impressed and you will be too.

I would like to ask for two more types of charts to be added.  

The Speedometer - I would like to see a speedometer type chart added.  This chart will have a radial type chart that has measurements set by the user.  Kind of like a Miles Per Hour setting.  The long stick inside of the speedometer will be calibrated by how much data there is.  Also, there should be allowance for an infinite amount of sticks to be added to one speedometer.  The Sticks should be able to change color depending on how high each item is pacing.  So to put it in terms of a car, I have a car which has 1 speedometer and it has 4 sticks inside the speedometer.  It allows me to set the MPH rating inside and each stick is for each tire spinning on the car.  The stick turns red if the stick is over a certain predefined mark. So what about it?  This chart would probably fall under the Circular charts.

The Unknown Chart Name - This chart is a bit harder to explain and can only be expressed visually, but here it goes. First off it would be radial/Circular.  It will have a status for a separate entity of a system.  When the system states all items are clear, it will show bubbles in an all green, formatted in a triangle form.  When very little of the operations are working, it will show a much small triangle formed red blimp.  I made a crude drawing of what I am talking about below.  Each entity is attached to a triangle inside the circle. When all is well, the circle should be completely green.  When the status is below level, they should start to turn red.  This allows you to look over the status of a system very fast and efficiently.  Each bubble and each triangle should allow for a drill down to see what's going on.

The next question is where can I suggest more charts? Anyone got an answer? 

All of these charts are TOO beautiful.  I want to tell Microsoft and Dundes they did a GREAT job!  Each chart allows for ToolTips, DrillDowns, Hover Over Texts and much more.

To Download: Charts are Here

Dundes Charts V.S. Microsoft .NET Charts

  Area Charts
2D100StackedArea  2DArea 2DSplineArea  2DStackedArea  3DArea  3DSplineArea

Bar Column Charts
2DBar
  2DColumn  3D100StackedBar  3DBar  3DColumn  3DStackedBar

 Circular Charts
2DPolar  2DPolarMarker  2DRadarArea  2DRadarMarker  3DPolar  3DRadarArea

 Combination Charts
ColumnArea  LineArea  Pareto  StockArea

 Financial Charts
Bollinger1  Bollinger2  CandleStick  Forecasting  PriceIndicators  Stock

Line Charts
2DFastLine  2DLine  2DLineMarkers  2DSpline  2DStepLine  3DSpline

Pie Donut Charts
2DBeltPieChart  3DPieLegend  3DStepPie  2DDoughnut2  2DDoughnut  2DPieInsideLabels  2DPieOutsideLabels  2DSupplementalPie  3DDoughnut  3DPie2  3DPie3  3DPie  3DPieInPie

Point Charts
3DBubble  FastPoint  2DBubble  2DPoint  2DPointCustom  2DPointLabels  2DPointShapes

 Price Range Charts
2DKagi  2DPointFigure  2DRenko  2DThreeLine  3DThreeLine

Pyramid Charts
2DPyramid  3DFunnel  3DFunnelGap  3DFunnelWidth  3DPyramid  3DPyramidGap

Range Charts
2DRange  2DRangeBar  2DRangeColumn  2DSplineRange  3DRange  3DSplineRange

kick it on DotNetKicks.com

If you liked this post, please be sure to subscribe to my RSS Feed.

Share/Save/Bookmark

How to Convince your Customers they need a CMS

Posted by Scott on 20. November 2008 19:21

Currently, I am dealing with one of my current clients.  They control a multi-national non-profit organization.  In the past they have used basic html to do the work for them in the web side of things.  They came to me through a person I knew and asked me to do very minor things for their web site. I agreed and started working with them.  There last request was to accept payment through the website and I told them to look at PayPal.  I thought it was the best bang for their buck.  Banks can charge an arm and a leg to manually enter things in while PayPal does it just fine. Most of the time, PayPal is much cheaper than what banks charge too. So I built them a PayPal system straight from Rick Strahls site. The next thing they started asking was a bunch of questions as in what can I do next, what can they do next and what can be done to improve apon this? Now they aren't very big, with a membership only in the thousands and much of the money is spent through the year.  So I decided to write them an email explaining what could be done with this organizations site. I decided to post it to show others why there is a need to have a Content Management System and hope it helps any other programmer trying to convince their customer to buy into a CMS.

I would like to title it "How to Convince you Customers they need a CMS"

Here is the deal.  I decided to go with the cheapest hosting possible when I purchased the space for $60.00 because of your budget.  It is another server hosted by GoDaddy.  Since its PayPal we are talking about. You are not required to have another server from another Service Provider to use PayPal, but for me to work using my programming languages ASP.NET, C# and SQL I needed another type of server other than what the company you were using had to offer.  Basically, since you wanted my work I needed to use GoDaddy (which is the cheapest hosting so far). PayPal doesn't have  restrictions as to what it uses as a server, but the application I build for you and the programming I do for you does have the restriction.  The $60.00 will be an annual expense once a year on or around the same date of this past week.

The way I look at it is that we are in the very early stages of development on what is formally known as a Content Management System(CMS). The best place to loosely define it would be Wikipedia at http://en.wikipedia.org/wiki/Content_management_system. If we look at your organization at the base level.  We can see the organization requires most if not all of the following:

Required:

  • A membership database.
  • An event calendar and scheduling feature for the calendar.
  • A money management system.
  • A payment system. 

Extra/Additional:

  • A place to hold all your images and review them in a photo gallery.
  • A place to hold all your official documents.
  • A place to publicly display all your public information (Website).
  • A place to download any and all forms or documents relating to events and organizations.
  • A place to write and read all the news of your organization.
  • A place to create newsletters that can be emailed out to all your members once completed.
  • A blog for your organization.
  • A place to email all your members on a regular basis.
  • A place to host a forum which would allow all your members to communicate and chat amongst each other.
Above and Beyond:
  • Because your organization has several other organizations below it in a tiered approach, you could also host webpages for those different organizations.  It could have something like a main page for each and every member in your organization or team.  This can be seen for example in another online application such as facebook.com or linkedin.com.  This of course is above and beyond, but it is available.
Overall it would be a place to store all your information and data about your organization.  It would not only be a time capsule, but an evolving time capsule.  The software will belong to you.  If I disappear with no word, you will be able to higher another person with my same skill set that could help you develop more.  As for having the ability to update the application/webpages I create for you online would be difficult for a person in your shoes.  What do I mean by that?

ASP.NET and C# is not regular HTML that you might be used to.  It is an entirely new platform for developing web applications.  When I say new, I must say that’s it has been around for about nine years and is owned by Microsoft, so I do not see it going anywhere soon.

You will get all this with the $60.00 a year hosting through GoDaddy and along with my working costs.  You can achieve this with your other hosting company, but it would not be through me.  I am sorry to say, but I do believe the other languages that are used to develop applications like this could not compare with what could be built with ASP.NET and C#.

I hope that clears things up for you.

P.S. As an organization, I must imagine you do have a membership management system in place along with some sort of news letter system.  Both those systems could/would cease to exist once I built this for you.

Side note: All this information is completely dynamic. Once I build a “component” for your application, it will then pull data dynamically from the database.  This means that you can have an extensively large amount of information on a webpage without very many things to develop or need a programmer for.

I hope this all makes sense.
If you liked this post, please be sure to subscribe to my RSS Feed.

Share/Save/Bookmark

Windows Mobile CE 6.1 (and Compact Framework) Released!

Posted by Scott on 13. October 2008 10:44

If you haven't seen it yet.  Mobile 6.1 was just release two months ago.  I just found out and will be upgrading tonight.

New changes include but are not limited to:

  • Copy / Paste (finally!) - Only touch screens used to do this.
  • Domain Enroll in Settings (Enrolling in a domain will connect your device with company resources.)
  • New home screen (pan left and right to check out missed calls, notifications like email, sms, etc.)
  • Change Master Security Cod
  • Added text input settings
  • Recent Programs when pressing Start menu - Allows you to see recent programs launched.
  • Threaded SMS! - This makes it so MUCH EASIER to carry on conversations.
  • When you compose an email, or SMS, and start typing the name of the contact in the "To:" field, the contact names finally pop up like Windows Mobile Professional!
  • Internet Explorer now lets you define a homepage, and also zoom in and out using a nice and clean interface - ZOOMING feature is AMAZING!!!
  • Task Manager now shows CPU usage as a whole, and also lists it by process
  • Internet Explorer offers 6 zoom modes and copy / paste functionality
  • IE also uses a new font, which looks worlds better
  • ActiveSync will now try to automatically configure your Exchange settings once you enter an email address
  • Wi-Fi indicator in the status bar, just as in Windows Mobile Professional
  • New "Vista" home screen and theme
  • Video Share Calling
  • Remote Desktop Monitor
  • ONE Note Mobile!!!
  • PTT Button can now be reassigned under Start / Settings / Buttons.

 This new CE looks and feels so much better.

 I am two months short on this launch, but if your reading this then so are you!!!

kick it on DotNetKicks.com

If you liked this post, please be sure to subscribe to my RSS Feed.

Share/Save/Bookmark

StyleCop was just released!

Posted by Scott on 12. September 2008 08:55

For those that don't know. StyleCop was just released!

For those that don't understand what StyleCop is.  It is a tool that formats your code to all standards that makes it readable and nicely organized for human consumption.  It makes you look like a Rock Star (<-- that phrase is so over used).  I have started to use it and I currently have well over 1000 style errors.  I guess I need to adjust to make it work with the standards set out by the coding gods.

I would suggest a download and you look at it.  It should be at least looked at.

kick it on DotNetKicks.com If you liked this post, please be sure to subscribe to my RSS Feed.

Share/Save/Bookmark