Thats Why No-One Will Remember Your Name

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

1. July 2010 20:41 by Scott in   //  Tags:   //   Comments (50)

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.

How to Create a Threaded Comment System with ASP.NET

4. February 2009 03:49 by Scott in   //  Tags: , , , , ,   //   Comments (1)

A few days ago I was designing a threaded comment system for Drinkingfor.com which allows users to reply back to other users directly instead of a flat comment system like you see at most other places.  I made my argument for threaded comments over here and why they should be used.  I didn't know where to start or how to write the code.  I had a pretty good idea on database design which was decently simple.  Each comment shall have an owner comment.  The treeview is the best example of what the data in the database should look like.  As for how to display this out to code is another problem.  I ended up searching on the internet and found a man who created hierarchy class which is exactly what I needed.  The Hierarchy class selects the information from the database and organizes it into a cached treeview.  I ended up talking to him and he had explained to me that he was refactoring the class which will allow it to run faster.  As for how I implemented the code to write out HTML, I ran through the hierarchy class recursively and then created html for each node found.  The class was quite impressive and I included some sample code below.  I didn't want something like this to be wasted and hope everyone can put it to good use.


Photo by jurvetson

I also wanted to give a shout out to Stefan Cruysberghs and say thank you for creating this class and posting it up on the net.  Now to keep with the current standard, I will post up my execution of his code.

ThreadedComments.cs (5.98 kb)


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

Introducing DotNet Instant Messenger

28. December 2008 19:38 by Scott in   //  Tags: , , , ,   //   Comments (2)

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.

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

5. December 2008 11:53 by Scott in   //  Tags: , , ,   //   Comments (16)

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.

Another way of thinking about how to store data inspired by ASP.NET

14. October 2008 10:38 by Scott in   //  Tags: , ,   //   Comments (49)

A while back I witnessed how the profile properties of ASP.NET are stored in the database.  All the properties all stored in one string.  There is then another string that describes the properties and how to view them and pull them from the database.

For example you have this string:
SmtpServer:S:0:18:Port:S:18:2:Password:B:0:48:ApplicationID:S:20:1:EmailUsername:S:21:15:

Then you have another string that looks like this:
pop.abcdefgh.co.uk257abcdefghij-abcd

If you break it down correctly you could get something like this:

  • Property Name : SmtpServer
  • Property Type : string (S) <-- Or this could be the Serialize As Type
  • Property Start Index : 0
  • Property String Length : 18

Now the question that I ask my self is:
Does this actually increase performance of the system?

I would argue yes and no.  Since the system could have an infinite amount of members attached to it and a countless amount of profile properties.  It would need to have something like this to decrease the amount of rows owned by a single user in the profile table. To give an example, I could be one user with 20 propertie.  If the application had over 1,000,000 users, that would be 20,000,000 rows.  That is huge and you must design for scale when it comes to an application that could potentially be used by all the world.

I would argue no to small applications.  If you only ever expect 1,000 users to an application, then why build something this complex other than for the thrill of it. This is especially the case when you don't need to worry about space on the system.  Space is cheap, but time spent coding a solution for this sample could be huge depending on experience.

I personally would build a generic code base for two ideas of this kind.  You could first build the generic code for the example above, but there would be another generic sample to build for. Lets say that you knew you were only going to ever store numbers in your database for each user.  These numbers could be used for ID's of another tables real data.  So I only want to store ID's of a table for each user.

I would store them like:
1:56:34:39:6798:10:39:40

This is because I wouldn't need another cell to split them up with indexes.  I would just split the numbers by the Colon. I would love to hear everyone's thoughts on this and why or why not it is a good choice.  Thanks for the time to read this.

kick it on DotNetKicks.com

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

Windows Mobile CE 6.1 (and Compact Framework) Released!

13. October 2008 08:44 by Scott in   //  Tags: , ,   //   Comments (25)

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.

Day 3 at DevConnections 2008

22. April 2008 17:32 by Scott in   //  Tags: , ,   //   Comments (8)

The third day and almost done.  I wasn't happy that the third day was here, but I guess I have to live with it.  There is something about being around a bunch of nerds. All I can say is I did thoroughly enjoy my self on this day.  I got to meet a bunch of interesting fellows including Carl Franklin and Richard Campbell.  I will speak more on that later, but now lets get to what I learned.

Sessions Taken:

Programming SQL Reporting Services:
Taught by Paul Litwin which is the director and coordinator of sessions at DevConnections.  He was extremely knowledgeable in Reporting Services and one area of development that I needed more time in.  I specifically need this for my job more and so any Reporting services sessions I saw at DevConnections, I made it mandatory for me to go to. This session along with the other reporting session I took, were very informative.  They talked about how to make very good looking reports along with the ability of drilling down to more detailed reports when you clicked on a certain data item.  The reports are coded on the back end with vb 6 and so this causes a slight problem when a developer works in C# or VB.NET and they have to convert to the old ways of vb 6.  I also learned a few things about configuration manger and how to access the web.config files information.  This was a rather valuable session and I must say that if you haven't already, meet Paul Litwin personally.  He is quite a character and was a great help on a personal level.

The Science of Great UI: A MUST see session!
Instructed by Mark Miller.  This was one of those sessions you take a lot of information in and only remember it for a small amount of time unless you implement it.  This session was taught by the same guy who invented and is the Chief architect of CodeRush.  Mark presented extremely well and talked about all the UI problems in many programs he sees out there in the real world.  To give you an example, the SAVE button is an old "A:" floppy drive, but who uses those anymore?  Another would be not to have keyboard shortcuts in any program you create. Shortcuts are essential to great UI because it lets you get around the program faster.  I must note that half way through the session, Marks computer went down and instead of saying "oh my god, the session is over" he pulled out his thumb drive and asked for another computer from the audience.  He is a great speaker and presenter which knows a lot about UI.  One session I would like to see over again.

ASP.NET Internals:
Taught by Rob Howard.  When I was done with this session, I was immersed in the amount of stuff I didn't know and the amount of stuff I will try and remember.  He described a lot to do with why the ASP.NET team built things the way they did.  Why the Update panel does a full page update, the need for sessions and caching, the underlying structure of the framework, the IIS advances with ASP.NET.  He also showed information about the HTTP Runtime and the underlying way to create a scheduled task. For Example:lets say you are on a virtual network and don't own the box so therefor you can't create a scheduled windows tasks.  He showed us how to do it using the Global ASAX and how to speed up our box by caching a lot of data.  I admire this man.  He has done exactly what I wanted to do with my life.  I went up to him at the end of the session and let him know he was my hero. He built a application that is free to non-profit organizations.  Its called Community Server and after quitting Microsoft he has turned a profit and is continuously working on it day in and day out.  He had an idea and went with it.  That is why he is my hero.  I have plenty of ideas and I am currently running with one of them, but finding the time is the issue. haha.  Thank you Rob for a wonderful job.

Building "Pure" Ajax Applications with ASP.NET Ajax:
Taught by Stephen Walther. This session went into a DEEP DIVE into JavaScript and how it could be made without full page posts backs.  I must say that I did drop out of this session half way through because it was more about politics and why using JavaScript over ASP.NET controls was better than the other.  It didn't take a deep dive into how to functionally use it which is what I would have wanted.  After dipping out I went to ASP.NET search engine optimization tips and tricks by Rob Howard.  This session after enjoying the first of Rob's sessions was also very cool.  I enjoyed understanding how to better suite my online application for the search engine these days.  Thanks again Rob for another wonderful half a session.

Building a LINQ-Based Business layer for ASP.NET application:
Instructed by Rick Strahl.  I must say I am a frequent visitor to Ricks site and the picture on the left hand side doesn't do him justice for the way he looks in person.  Sorry for being blunt, but he is an overall very cool and nice guy.  Sometimes after reading his blog posts, I think he is a bit too smart for his own good and after meeting him in person, I must say he is wicked smart and has a good sense of street smarts. heh.  In this session, he completed a lot of things I didn't know. Background "I have only been programming professionally for a year and a couple of months and he taught me through his code how to really set up an application or multiple applications with one code block." I also must say, because of this mans session, I have started my own framework called the STFramework for SpoiledTechie which builds off of the ASP.NET Framework with my own personal code. heh. He taught us how to set up an application layer, business layer, data layer and a UI layer for starters.  Then he went deep into how fast LINQ was compared to other data selects and I must say, it does become a bit slower, but over all LINQ is an awesome language to deal with.

Extra things I learned:
Bill Gates is genuine and has a good character.  I was talking to Julie Lerman which did an interview with Bill Gates and published it in Code Magazine.  Thank you Julie, and which if you haven't met her, she is a great person.  We chatted for a good 30 minutes all about what I was learning, how ASP.NET was evolving, how much people make on book deals heh, and which she introduced me to a guy up at Microsoft named Stephen Toub who works on Parallel Computing up at Microsoft's R&D labs.  Pretty impressive stuff he is working on and which I will explain more in my next post about DevConnections Day 4.

Google has an Achilles heel.  More to come on this topic in my next blog posts, but it is an interesting topic.

I got to spend an evening with Richard Campbell and Carl Franklin who run the Internet radio show DotNetRocks in which their fun an entertaining interviews of ASP.NET superstars are informative and topic related.  Richard, and Paul Litwin and I talked about various things until Carl and Mark Dunn came stumbling in from a Irish pub.  We had great conversation over Microsoft, good drinks and what are Gets:Sets in the programming language.  I did ask the question of what Gets and Sets are and out of Paul and Mark, I will have to say that Mark answered the question better.  Thanks for the great night guys.  I truly enjoyed your company and hope for many other nights like it in the future. heh. Pictures below. Also, Rob Howard was there for a few minutes, but he stepped up as I sat down because it was getting late of course.

IMAGE_103 IMAGE_102
Sorry about the lighting, Taken with my AT&T Tilt. From Left to Right (Richard Campbell, Me, Paul Litwin, Carl Franklin).

Ahh, before I forget, I won over $300,000 dollars in PLAY money at the craps table tonight! Too bad it didn't win me anything at the raffle the next day.

I can't think of anything else and I hope this was a good read.
kick it on DotNetKicks.com

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

Building a Linq Query gives me a question.

3. April 2008 23:12 by scott in   //  Tags: , , ,   //   Comments (17)

So here I am building a new site that will estimate around 500,000 page views and 50,000 database transactions DAILY.  I am currently working on a simple query that selects ONE row[column] from a database and returns the value to the rest of the methods.  I have a simple thought or question I would like answered and thought this would be a place to bring it up.

Is the foreach loop required even if I know I will receive only 1 record back from the database?

That's it and to give you an example:

        CS_Code.DataContext db = new CS_Code.DataContext(SQLStatementsCS.ConnectionStringID());
        var query = from RN in db.Province
                    where RN.Name == Name
                    select RN.uid;

        int value;
        foreach (var uid in query)
        { value = uid; }


I think it is kind of pointless to create a foreach loop and use 3 lines of code to just get an ID out of the database. So let me know in the comments section if this is the only answer and I will point out the answer and give you a link back to a site of your choice.

Thanks guys and dolls.

kick it on DotNetKicks.com

Devconnections, HERE I COME! OOPS, help me decide.

12. March 2008 14:35 by scott in   //  Tags: , , , ,   //   Comments (11)

Alright ladies and gents. Two weeks ago, I sent a memo to my boss.  I told him all about Devconnections and how much impact it would have on the team of developers I work with(currently 4 total and the other three are Cold Fusion dev's) and our next up and coming projects include a HUGE project we just landed.  If you know who I work for, then you would know what I was talking about.  I am excited with this project.  It excites me.  There is allot of data capturing and this type of project is on the bleeding edge of development and ideas. Wow and I am excited for both my company and I now get to go to Devconnections.  I currently reside in Melbourne, FL so it is an easy drive to Orlando which the company will pay for everything including but not limited to food, transportation, hotel etc...  I also get to go to the Heroes Happen Launch of Microsoft 2008 Products on company time.  The launch event is sold out for Orlando, FL which every attendee also gets a version of Windows Server 2008, Visual Studio 2008 and SQL Server 2008 for FREE.  This is a heck of a bargain that I just cant say no.  I am pretty sure these versions are complete full versions.  Can someone Verify?

SP08_ASP_MidBanner hero_event

I think this will also be an amazing event which opens the Friday after Devconnections.  What do I need help with?  Well let me tell you after looking through the brochure, there are allot of courses and sessions to look over.  I then went ahead and narrowed it down to 19 sessions I want to go to.  I still have to decide on only 13 sessions with the hope they don't overlap.  I need feedback so please help me on this.

Requirements:

  1. I don't want a course that I can learn through an ASP.NET tutorial on the web EASILY.  I pick up things quick, so I want sessions that I can't pick up unless its shown to me.
  2. I have only been coding for 1.5 years now with a total of 8 years web design experience, so I still consider my self new to the C# world.  I want to learn things, the average person wouldn't pick up in that year.
  3. I want things that will benefit my company and me. Sorry, I can't give you name of the company, but they have been in the news allot as of lately.
  4. I want to learn new technologies including take a few courses with JavaScript.
  5. I want to take Carl Franklins session.  I have heard him plenty of times on .Net Rocks and know he is a master programmer and presenter!

Those are the requirements, now since I still consider my self a newby in the C# world, please help me pick.  I will listen to all replies with earnest.

 AMS304: INTRODUCTION TO THE NEW ASP.NET MODEL VIEW CONTROLLER (MVC) FRAMEWORK MICROSOFT
One of the benefits of using a MVC methodology is that it helps enforce a clean separation of concerns between the models, views and controllers within an application. In the near future, ASP.NET will include support for developing Web applications using an MVC-based architecture. The MVC pattern can also help enable red/green test-driven development (TDD)—where you implement automated unit tests, which define and verify the requirements of new code, first before you actually write the code itself. Join us for a dive into the new MVC Framework.

ADX210: BUILDING A LINQ-BASED BUSINESS LAYER FOR ASP.NET APPLICATIONS RICK STRAHL
With LINQ and LINQ to SQL, there are many new opportunities for creating a more flexible, business object layer using the enhanced database connectivity and language enhancements that LINQ offers. Rather than focus on the new features of the LINQ engine, this session puts LINQ into the perspective of a business-object framework and how you can leverage LINQ as part of this high-level application layer. I’ll start by examining how LINQ to SQL interacts with the database and see how this model fits for data access, both directly in the user interface layer and in a more formal, multitier-type business layer. I’ll then dive in and examine different ways you can use LINQ to SQL in combination with a traditional business layer and highlight the fact that DLINQ, on its own, does not necessarily replace a flexible data access layer in an ASP.NET application. The focus of the session is on ASP.NET business-application development, which is used for examples and special considerations for data retrieval.

AMS204: DISPLAYING DATA WITH THE NEW LISTVIEW AND DATAPAGER CONTROLS IN THE .NET FRAMEWORK 3.5 MICROSOFT
Get complete control over how your data is displayed using the new ListView and DataPager controls. Take a deep dive into using these controls to easily and efficiently display and update your data. Learn how you can control every detail of how data is presented to the users of your site.

ADX211: BUILDING N-TIER APPLICATIONS WITH LINQ DAN WAHLIN
Creating a modular and maintainable application architecture is always a key part of the application development life cycle. In this session, you’ll learn how to build N-Tier/N-Layer applications that leverage Language Integrated Query (LINQ) to minimize development time while still maintaining module design practices. Topics covered include using the Visual Studio 2008 LINQ to SQL designer, using data context objects, and performing different types of LINQ queries.

AGN311: DEVELOPING A PROVIDERBASED FEATURE FOR ASP.NET 2.0 MIGUEL CASTRO
You’ve used ASP.NET 2.0’s Membership system, right? You’ve even developed your own custom Membership Providers. But did you know that you can use that same Provider Model for any feature of your application you wish? I’ll show you how by creating a “credit card processing and returns“ sub-system that takes advantage of ASP.NET 2.0’s Provider Model, allowing you to create different credit card processors any time you want without changing your site code. Many ASP.NET developers don’t know you can even do this; come be a part of the few.

AGN310: URL REWRITING: WHAT, WHY, AND HOW MIGUEL CASTRO
You may have noticed sites out there with URLs like“.../2007/10/8.aspx“. Obviously this signifies a date, but can there really be a page for every day of the year on this site? The answer is definitely not. This is a technique known as URL rewriting, which allows for friendlier URLs that may not necessarily correspond to the site’s physical page structure. More importantly, this technique is crucial for search engine optimization, since typically search engines ignore query strings in the URL. In this session, I’ll show you the basics of URL rewriting, teach you how to centralize it using HTTP Modules, and even get you going on a reusable URL rewriting engine component.

AAR101: USING THE ASP.NET MVC FRAMEWORK DAVE SUSSMAN
The ASP.NET postback model was a radical step for Web applications when it was released and is now commonplace. However, applications are becoming more complex and provide some challenges to testing. The new ASP.NET Model View Controller (MVC) framework provides a clear separation between the aspects of ASP.NET pages, allowing for cleaner code, easier and faster testing, and powerful and flexible URL mapping. This session.com April 20-23, 2008 Orlando, Florida will examine the MVC framework, showing how it differs from the postback architecture, and how you can integrate it into existing applications.

APF310: ASP.NET PERFORMANCE AND SCALE TIPS AND TRICKS ROB HOWARD
This presentation takes a look at some tips and tricks for getting great performance out of your ASP.NET solution. It will start with some of the common physical design options, examine the choices to make when writing ASP.NET and .NET code, and finally look at some of the tools used for tracking and measuring changes in your ASP.NET application’s performance. You’ll leave this session with some actionable tips & tricks that you can take home and apply immediately.

ARP250: PROGRAMMING SQL SERVER REPORTING SERVICES PAUL LITWIN
In this session, you’ll learn how to programmatically manipulate SQL Server 2005 Reporting Services (SSRS) and integrate SSRS into your ASP.NET applications by employing URL Access, Report Viewer controls, and the Reporting Services Web Services. A major issue with SSRS is that you can normally only display reports using Internet Explorer, but in this session you’ll discover how to integrate SSRS into your applications using any modern browser, including Firefox, Netscape, and Safari. You’ll also learn how to extend reporting services by calling custom .NET assemblies from your SSRS reports. Finally, the session will touch on improvements to SRRS promised for the upcoming SQL Server 2008 release.

APG315: ASP.NET INTERNALS ROB HOWARD
This presentation is a deep-dive into the inner-workings of ASP.NET. In it you’ll learn exactly how ASP.NET communicates with the outside world, such as with IIS. The session will also peel open ASP.NET’s HttpRuntime for a deeper look at the internals of the request/response processing architecture. Then the session will wrap up with a discussion of the ASP.NET Page and how it is parsed and compiled. If you want to learn how to write better ASP.NET applications, knowing exactly how ASP.NET works is critical.

ACS311: BUILDING CUSTOM ASP.NET AJAX CONTROLS DAN WAHLIN
By creating custom ASP.NET AJAX controls you can encapsulate frequently used functionality and promote better code re-use in applications. In this session, you’ll learn how to create client-side ASP.NET AJAX controls that extend classes in the ASP.NET AJAX script library. You’ll also see how you can encapsulate client-side controls in ASP.NET AJAX server-side controls. Topics covered include defining client-side control constructors and fields, using the prototype design pattern to define control properties and methods, disposing of resources, and creating server-side controls that implement the IScriptControl interface.

ACS216: JAVASCRIPT FOR ASP.NET DEVELOPERS STEPHEN WALTHER
JavaScript is a badly misunderstood language. This is unfortunate, since a mastery of JavaScript is a requirement for building Rich Internet Applications. In this session, Stephen Walther provides an introduction to the JavaScript language for C# and Visual Basic .NET developers. In particular, you’ll learn how to create JavaScript objects and how to take advantage of prototype inheritance. You’ll learn how inheritance in JavaScript differs from inheritance in Visual Basic .NET and C#. The session will also tackle important and advanced features of the JavaScript language such as closures.

A LAP AROUND VISUAL STUDIO TEAM SYSTEM 2008 MICROSOFT
In this demo-intensive session, you will be exposed to many of the new features in Visual Studio Team System 2008. This session cover everything from Team Foundation Server for project management, work item tracking, version control and build support, to integration with Microsoft Project and Excel, unit testing, code coverage and code metrics, database projects, to Web testing with AJAX support and the new user-pace load testing. You will leave with an understanding of how Visual Studio Team System 2008 can be your organization’s Application Lifecycle Management (ALM) solution, and enable you and your team to collaborate and communicate to ensure software quality and provide visibility into the development process.

IMPROVING TEAM DEVELOPMENT MICROSOFT
Do you build software alone? In today’s world, software development is done by increasingly larger teams made of people with different skill sets, including project planning, functional definition, development, and testing. As teams grow larger there is a greater need for tools to enable the communication and collaboration that is necessary to deliver high quality software effectively. In this session, you will learn how to function as a collaborative team using Visual Studio Team System 2008, including process templates, work item tracking, version control, and reporting. Whether you are on a team that values Agile process, one that prefers CMMI, or any other process, this session will apply to you.

VISUAL STUDIO 2008: LINQ DEEP DIVE AND BEST PRACTICES AMANDA SILVER
LINQ (Language Integrated Query) is a key platform innovation introduced with Visual Studio 2008 which brings SQL-style query expressions into VB and C# enabling you to describe what data to reason about instead of how to access the data. In this session, by taking a much closer look at the language features that enable LINQ-enabled frameworks, we’ll uncover tips, tricks, and best practices for writing queries that will help you write robust, high-performing, maintainable business applications more quickly. In addition to gaining a solid understanding of LINQ for data access, you’ll also leave this session with a clear understanding of how query and the individual language features can be leveraged in other parts of your application to write less code.

BUILDING SERVICE ORIENTED APPLICATIONS WITH WCF AND VISUAL STUDIO 2008 JOHN STALLO
Windows Communication Foundation (WCF) is one of the core platform technologies introduced in .NET 3.0 and Visual Studio 2008 includes tool support for building and consuming WCF services. In this demo-focused session, we’ll start from the basics of creating and consuming a WCF service and quickly move into the advanced techniques and support related to service hosting, service configuration, etc. This session assumes you are familiar with the basic concepts of WCF and will focus on the end-to-end experience within Visual Studio 2008 for building and consuming WCF services.

VVS310: FUN WITH PROGRAMMING CARL FRANKLIN
Looking for something fun and inspirational? Let Carl Franklin show you some of the fun you can have with Visual Studio .NET and a few cool ideas, from artificial intelligence to practical joke software.

VPF305: FUNDAMENTALS OF WINDOWS PRESENTATION FOUNDATION: BEYOND THE BLING KATHLEEN DOLLARD
Have you seen Windows Presentation Foundation (WPF) portrayed as a way to spin photos on cubes and wondered what this had to do with you? Windows Presentation Foundation does take us into a new realm full of graphic possibilities, but it also offers a radical new UI model that’s well worth exploring. This session focuses on how you can use WPF to make business user interfaces. You’ll focus on the underlying model and separation of UI into discrete pieces that can be expressed in different ways. You’ll build UIs with grids and stack panels for layout and explore databinding, templates, and triggers. You’ll see how to create an application that’s logically organized and you can customize both in look and feel on a global basis—either to customize for individual clients or to keep your application looking fresh through future UI fashion changes.

I hope that narrows it down for you so you can give me pointers on where to take this.

Scott Pio

kick it on DotNetKicks.com