ASP.NET - Learning .NET Framework 3.0 / 3.5 - asp.net

I would like to learn ASP.NET (Complete .NET Framework 3.0 / 3.5) and not getting time to attend training classes in any training center.
Kindly let me know if you know if there are any other good alternates/options to learn.
Kindly provide the details too.

you can start at http://www.asp.net/get-started/

To really learn any language and supporting platform you need to code, and code a lot. Resources are quite numerous out there, so in this sense I can understand your questions, i.e. what are some recommendations. Below is a list I would consider to get that initial push that will enable you to begin your journey to becoming a solid coder.
1) Microsoft's MSDN, Codeplex, ASP.NET website, and development tools are where I would start. Microsoft offers all the tools needed to build/code in the .NET framework which you can freely download. Their online documentation has really become a solid resource and their examples, along with others, can be found at Codeplex.com. The ASP.NET also has a wealth of resources and a pretty good forum for user discussion and knowledge sharing.
2) SourceForge: Look for Open Source initiatives and become involved in them. At first you will be learning but if dedicated, i.e. you like the project, you will be helping others in short order. An example of a Microsoft ASP.NET Open Source initiative I would recommend is DotNetNuke. The core team members are very nice and the community as a whole very helpful and continually growing. You may even find one day that you are developing and selling your own custom modules for extending DotNetNuke at snowcovered.com - so there is a monetary benefit I've provided for your efforts!
3) Learnvisualstudio.net: I joined this several years back and purchased a life-time membership for very little. This site offers video based training which is not bad. In addition to life-time memberships there are other plans which might suite your needs and all of which are very affordable. BTW, they have had a new series out for a few months on Visual Studio 2010 .NET 4 - "First Impressions Visual Studio 2010 - ASP.NET 4.0". They also offer two video formats; one for desktop programs, i.e. Win Media Player and VLC, and one for mobile devices such as iPhone/iPod Touch.
4) Informit's Books Online or Books24x7.com: As a possible alternative to purchasing books at Borders/Amazon/etc. you might find the option of an electronic bookshelf a valuable resource in which you can load up your own bookshelf with much more technical books that you'll ever need. The all inclusive offerings are about $40/month or $500/yr. They both have a trial period so you can see what each is like since they both have their +/-'s. Consider how much you normally spend on technical books a year for starters and go with a comparable plan (Informit's Books Online has more pricing options, I believe). If you find a book you wish to have in hand, you can purchase it for a reduced member's price. Finally, if you own a mobile device such as a Blackberry, iPhone, etc. you can browse your bookshelf with your device in a format they provide, which is live online and very readable (in contrast with Apple’s safari book bag used to browse downloaded PDF versions of content purchased at Safari’s Books Online - which I find sorta tough to read).
5) Get a nice computer of your own if you can afford it. I like Dell desktops and Lenovo Thinkpad notebooks, and if not sure what manufacturer to go with take a look at reviews by CNET. An investment like this might give you a little added push from behind to learn and you can configure your machine as you wish. Windows 7 is terrific and you can use Virtual PC 2007, which is a free tool you can use to host server and other OS’es if you wish to develop in SharePoint or learn other server based technologies.
My final comment is that not a single one of these resources will mean anything if you believe that just by purchasing something you will learn how to code. This list represents just some random thoughts and it is just a begining. It takes time, dedication, and honesty with yourself about your goals … and expect to be frustrated at times. A good friend who shares similar aspirations as you can make a huge difference when embarking down the path to becoming a good "anything”. It is heavy lifting at times and you’ll want a spotter around when it is so.
Start small and be reasonable with your expectations. Best of luck!
John

I found this publication to be very helpful:
Pro ASP.NET 3.5 in C# (Apress)
I like this author's writing style since it's put in straightfoward, understandable terms. You can download some sample material on the Apress site. Additionally, it looks like used copies can be had for a pretty decent price as well if you check on Amazon.
Hope this helps!

Best way to learn any framework is to write in it.
Best advice I can give is to go the web site start here, and move forward.
Keep writing applications in it and you will learn it.

Related

What is the status of Microsoft Media Foundation?

Microsoft Media Foundation (MF) was introduced as the successor of DirectShow in Windows Vista. I have mostly ignored it, but it has some features (such as decoding of WMV AC-1 files) which are hard to implement in DirectShow. Media Foundation is also a more modern API so it would seem logical to make the switch.
However, the online teaching resources and official documentation seem greatly lacking. There is only 1 book covering the topic (published by Microsoft) and it is no longer available for normal prices. (People charge $500,- or more for second hand versions.)
As far as I could find there are no other books. While other techniques from Microsoft are usually covered in multiple books by multiple publishers.
The official Media Foundation blog has not been updated in since 2011. In the two years that it was active only 10 technical articles were written, 5 of which covering error logging/tracing instead of actual functionality.
The StackOverflow tag ms-media-foundation is only used with 328 questions, of which 142 are unanswered. In contrast there are 1641 DirectShow questions of which only 496 are unanswered.
So what happened to Microsoft Media Foundation? Will the new API ever take off and replace DirectShow or has even Microsoft forsaken MF in favour of going back to the old and rusty (trusty?) DirectShow. Or is there maybe another, non Microsoft framework, that has taken over?
Firstly I don't know the answer and am someone who has spent way too long trying to get even basic Media Foundation scenarios working; at times it feels more like a quest in search of some long lost secret scripture than programming.
My suspicion is that Microsoft does want to make MF the standard media API for the Windows platform and perhaps the best indication is the Windows Universal App Samples where there are 7 instances of "mfapi.h" but zero instances of "dshow.h". Also the relatively new WPF MediaCapture and MediaElement controls do hook into the Media Foundation APIs so it seems safe to say that for all new work Microsoft are using MF instead of DirectShow.
Wow I see what you mean about Polinger's MF book! I have the book (which I'll now shortly be selling at that price) and can assure you it's definitely not worth it. I've never really found it much help despite re-reading it numerous times. It's pretty much the same as the online docs in that it sticks to a small number of specific scenarios (in fact a number of chapters in the book just re-print the SDK samples) and as soon as you need to do something outside those you are on your own.
In regards to the official MF blog there was a thread on the MSDN forums griping about thing and to which one of the Microsoft guys responded saying they have switched blogging platforms (it obviously would be nice if they could put a note indicating that). Apparently a number of the Microsoft MF devs are still blogging. This seems to be the most "active" one.
Update: If anyone happens to get drawn here due to the Polinger book reference note that the companion code can be downloaded from here (the original link quoted in the book is http://go.microsoft.com/FWLink/?Linkid=229072 which at the time of writing redirects to the aforementioned page).
For me, Media Foundation is really a very nice API to do multimedia programming.
What I can blame, is that Media Foundation's releases don't apply to Windows 7, currently the most popular OS in the world.
Media Foundation has a lot of competitors (DirectShow, Ffmpeg, Gstreamer, etc...). So, more choice, less developers, less tutorials and so on...
I try to promote this API as i can, so here is my work on Media Foundation : MFNode
I cover a lot of scenarios, and you have to check source code to learn.
You will find :
audio/video player (win32)
custom media session
sequencer source
audio/video capture
screen capture
kinect V1 capture
wave audio mixer
http streaming (winsock)
jpeg encoding (Gdiplus)
dxva2 technology
cuda decoding
directX9 renderer and shader
COM technology
different kind of mediafoundation Source, Sink and Transform (mpeg2, flv, a52, vp6...)
mp3 to wave transcoder
EDIT
More MediaFoundation code here : github mofo7777
I suspect one reason for MediaFoundation not being used as much is that it limits you to encoding in WMV format only, and limits your ability to decode too (you can decode more than just WMV, but even the old VFW from Win 3.1 days allowed you to select a compressor of your choice)
The even rustier and older VFW (video for windows) is simpler than all of them latest and greatest, and allows multiple compressors - so I am wondering if MediaFoundation will ever be updated to allow more compressors and decompressors (or encoders and decoders) than the very limited selection they offer.
MediaFoundation API's, although interfaces, seem pretty low level still, and requires lots of boiler plate code just to get basic things working - powerful for WMV production, as they give you plenty of tools - but, a little bit hard to use for doing basic tasks (best is to download wrappers around the API, which to my surprise, not many exist.. these API's are not so popular as you would think).

Which is a better platform for starting a small module development business: DotNetNuke or Umbraco?

I am thinking of making some extra revenue on the side by becoming a module developer either for DotNetNuke or Umbraco. I still want to keep my full time job. I wanted to know which market is more promising. I know there are thousands of modules for DNN (just browse snowcovered.com). While DNN is a much bigger market, it seems to be crowded with a lot of competition versus Umbraco which is smaller but it looks like it lacks modules in certain categories. However I don't know if Umbraco is widely used or whether its customers are looking for development work.
I want to approach this by either developing commercial modules or doing custom development work. I am looking at this from revenue potential. Not from technical side (easier to develop for, MVC or not,.. etc)
Any ideas?
If you are a developer for either platform, are you making some good money? Any pitfalls?
Neither, I'd actually suggest Orchard. There are, in fact, pro's and con's to all three, but the best factors for Orchard are:
1) MS supported
2) It's brand new, so there's a LOT of opportunity for modules that haven't already been written
Just my 2c.
I agree with Tony, Orchard has only just come about and realistically the market is currently very small.
We are an Umbraco Gold Partner, so obviously biased towards Umbraco, but what I would say is that currently there are only a few commercial packages for Umbraco and so if you find a niche product, you certainly still have an opportunity to become the first to market and become the market leader for a specific module type. I think in the DNN camp you will find a lot of competition already exists.
Another thought is to write generic base code that can be used across all three and create a commerical package for each platform, then you have the best of all worlds.
Cheers,
Chris
If you want to do custom dev for clients the platform doesn't matter if you do it on the side.
If you want to create a commercial module it's hard to choose DNN as a platform because there is a lot of competition. Not that that's a bad thing but to get your name out there will take some time. I made the choise to do full time Umbraco Dev in 2008 and made a commercial product for Umbraco called CMSImport. It's quite popular so sales is quite allright. I have thought about the idea Chris mentioned to port it to other systems but the downside is that you only sell products if your product is known in the community and it will take a lot of time to get your name out there if you focus on other communities also.
So pick an idea and platform that has a nice userbase (I would not go for Orchard the community is simply not big enough at this moment) and build your product.
Cheers,
Richard
I don't think it really matters which you pick. The hard part is becoming know as a "good X developer" be that Umbraco, DDN, Orchard, Rails, etc.
Its being the name on the peoples lips at the right time that gets the phone ringing. Tech choice can increase your chance (simply with an increased number of sites for example) but it can also increase your competition.
There is plenty to be earned if you can get the work and the best way of doing that is by being recommended, being spotted as being active in the community, producing packages, etc.
We at Offroadcode chose Umbraco about 2 years ago and have had lots of work of it since and have specialised in it. Through engaging with the community we've got to know a lot of our fellow Umbraco developers (including Chris and Richard who have also posted answers) and we've recommended then and had work passed to us on recommendation too. I guess you get back what you put in.
Pete

Flex or Silverlight which one is best?

I am working on a video chat applicaton, i am not sure which one is the best for the current market??
please any suggestions??
I am a Silverlight developer myself, but looking at the adoption rate as of today I would not use it for a public app. If you have the skills, definitely go with Flex.
In this case, Flash 10 has the clear advantage as Adobe includes the necessary functionality to build a working video chat application (including video encoding codecs). Adobe has an in-beta (lab) product code-named Stratus which makes connecting two video clients easy for example. Flash also has built-in support for the various streaming protocols needed to efficiently send video to another location.
Here's a web site with a walk-through for example using Flash technologies. There are plenty of other options though that are available for Flash video chat distribution as well from 3rd parties.
That's not to say that it's not possible to build something like this using Silverlight. However, there really isn't the industry behind it as the video camera support in Silverlight is just emerging and in it's first release in Silverlight version 4.0. For now, there's still a LOT of work that must be done to build out the equivalent of what exists in the Flash community (has existed for years). The web camera support in Silverlight has made it simple enough to capture a snapshot from the camera, but not yet a video.
As the former Product Manager for Silverlight and one of the guys that helped craft Adobe compete strategy for Microsoft let me simply say "it depends on each individual"
RE: Ubiquity.
Flash has around 8-18 million installs every day, so whilst the assumption that Flash is on every single machine world-wide? the reality is that an average person is likely to install Flash at least 7 times per person each year so thus it implies mathematically impossible for Flash to be absolutely 90% ubiquitous
In actuality, I sat next to the office who was one of the architects for that methodology and it took 3 goes to get the right "positive" number. So do what you will with that.
Silverlight has around 400million+ installs and is growing actually quite rapidly. It took Flash approx 6 years to reach that number and the acceleration of Flash to go beyond that was largely due to Windows XP baking the runtime into the OEM installs. The fact Flash is no longer installed on Operating systems by default and relies heavily on Hardware OEM deals (cash for installs) this is where it gets a little murky on "sustaining ubiquity".
I'd say Flash isn't 90% ubiquity on clients, i'd say Flash is 90% ubiquity on the web itself, in that i think Adobe are pushing the wrong agenda - it's saturation they have not install sockets.
RE: Skillset
I'd say most on here are correct with a twist. In that it's not so much always about what you know, but it's more about "who else will know what you know" as you're most likely going to have to work with someone on a project sooner or later?
It's really about what your team and you are comfortable in terms of adopting, it also has to do with budgets and time. If you have time to do some personal development and want to explore into either Flash or Silverlight, choose both - you will learn 10x as much (I know Flash, Flex and Silverlight/WPF quite well - 9+ years at this).
However, if you're a .NET developer then understand you're about to invest in not only a language but a complete foreign entity ranging from tools to community dynamics as well. You will need to simply absorb about 6months to 1 year of being a "junior" developer/designer should you wish to adopt either technology.
I'd highly recommend you adopt both though as i honestly wouldn't declare either one just yet an outfront winner. Adobe is making strong gains in attemps to fix a lot of their lazy tooling and ubiquity issues so they may turn this ship around. Microsoft is getting complacent and still has a long ways to entice the design audience, so it's still quite early days for them as well.
RE: Jobs
Monster stats are a b.s stat to track as it is like watching rain fall outside your house and declare that the world is suffering from an influx of rain today... it doesn't answer how long the Flex jobs have been in market for the said advertising, in that is there a skillset shortage? why? is it because the price per hour for a Flex developer doesn't match the said market rate or working conditions etc..
It's a supply/demand argument and I could create spin on both sides of that isle should I choose to.
The reality is there's about 6million .NET developers world wide today, and most of them are slowly turning their heads towards the future in that they aren't quite ready to abandon Microsoft and its tools for a foreign technology. Furthermore, Visual Studio 2010 is about to unload onto the market, so that will create a new wave of excitment behind WPF/Silverlight given it will be a much easier access point to the technology "File-New-Project" vs "download, follow these steps etc"
Windows Phone 7, despite what others may say about iPhone etc will overtake the market again, that i'm sure of. This will also increase the mindshare around the product and stimulate the supply/demand further.
Right now, if you are a designer with both Flash/Flex and .NET skill set, it's definately your market right now as you are in HIGH demand.
- Scott Barnes
Former Silverlight Product Manager and now UX Specialist for both Adobe/Microsoft technologies.
Depends on your programming experience and user audience. If you're a skilled .Net developer, then Silverlight is the best tool for your. But if you want maximum compatibility for your users, you should choose Flex, because it uses the Flash browser plugin.
the winter olympic games and a lot of other major streaming events chose Silverlight over Flash. take that into account: they wouldn't waste their money neither compromise the results. and for latest adoption rates check www.riastats.com
One great thing about Silverlight is that you can reuse existing .NET-Code.
I've been developing in Flex for a while and I absolutely love it. Unless you're a big MS .net shop (and I doubt you'd be asking the question if you were) then I'd recommend Flex. It's more mature, the plug-in has a huge install base and it runs on more platforms.
One consideration is how marketable will your skills be in the future. Flex jobs currently outnumber Silverlight jobs on Monster at a rate of about 4 to 1. Conversely, if you've got to go out and hire folks for the job, you may want to look at Silverlight because there has been a shortage of Flex programmers for a while.

What is the fastest way for a new programmer to learn ASP.net?

I want to learn ASP.net 3.5 effectively, but I have no fluent knowledge of any other languages.
Now the scenario is that span of time is very less and in short time I have to be upgraded with ASP.net skills.
So I am interested in fast and effective way to learn ASP.net 3.5.
I have to start from scratch.
Please..please........I want solution as soon as possible.........
And please mention good books and online material.
Thanks.Waiting for reply.
First thing is to drop statements like: "I want solution as soon as possible". To learn something new takes time and you'll need to cool down before getting results.
I strongly recommend you to build something for yourself. This way you can deal with new requirements and schedule pressure. During this process, you'll need to see how other people do same thing, and then to download some sample codes.
EDIT: I think you should start doing that every application does: trying to access a database and changing data. This path will lead you to know more about Entity Data Model and LINQ. So you can go to code your front-end. You can take a look at NerdDinner website for MVC samples.
There are plenty of good tutorials at asp.net/learn.
If you're interested in ASP.NET MVC (Microsoft's latest web UI framework) then there's a good set of tutorials at asp.net/learn/mvc/#MVC_Overview
It might be worth mentioning that you have a choice of programming languages to use; VB.NET or C#. If you are new to programming then you might want to spend some time getting comfortable with one of these initially, as well as familiarising yourself with the underlying .NET Framework.
If you can provide more details about what you need to achieve, as well as your programming background then people will be able to provide advice that is more specific to your situation.
It takes about ten years, as does learning anything worthwhile.
The best way to learn a new set of development skills is total immersion in a project. Build your own website and follow along with a book or two, make some mistakes and fix them, and in general endure all the rough-and-tumble that development involves. Along the way, make sure you're investing good time in writing solid unit tests, so that you understand what they're for and why you should be writing them.
If you've never programmed before, this is going to be rather challenging as a first project. ASP.NET MVC requires understanding, if not fluency, of many different pieces of web development. But dedication, persistence, and curiosity will be enough to win out here.
I think reading a good book while implementing some basic website will be your best approach.
My personal favorite, with good inside examples and good practices is Pro ASP.NET MVC
Get a book like ASP.NET 2.0 Website Programming from Wrox Press and work your way through it from beginning to end. Immerse yourself this this project, follow all the steps and understand every step along the way.
Microsoft offers 2 distinct Web development systems - "Classic" ASP.NET WebForms, and MVC. In my opinion MVC is more "pure" to the web philosophy but is trickier to learn, the controls aren't as rich and varied, and there are fewer resources to help you. WebForms have been around much longer, there are thousands of books and helpful sites, and there are probably more job opportunities.
Good luck. If you're smart and work really hard, you should have no trouble.
Saying you want to learn ASP.NET from scratch is like saying you want to learn to build a house. You can get a book that shows you how to saw lumber or nail boards together -- but there's a lot more to building a house than any book can effectively communicate.
Learning a specific control or a narrow skill can be done in a few days, but really learning ASP.NET from beginning to end is a multi-year project -- particularly if you have to learn the language too. Learning C# well could take a year by itself.
Experience is the best teacher. If you can get a mentor of some kind involved, that's even better (just like how carpenters need to apprentice for some time before they're ready to build a house by themselves).
In all seriousness, start with at least 3 years at university doing a computer science/engineering course of some description.
There is no fast and "effective" way of learning to program and being any good at it. There's a lot, lot more to software development than just the code as anyone who has been doing it for any length of time (and cares about their craft) will attest to.
Can you define what exactly do you mean by "learn effectively"? Do you mean that you want to be able to write code like Jon Skeet at the end? Or do you mean that you should be able to handle the job of a junior developer? There is a lot of room between those, to say nothing of you not stating how you learn best: Do you absorb information best from reading, seeing, doing, or some other format of data? How good are your Google skills? How well do you know of MSDN and the massive amount of information contained within?
Scott Gutherie's blog may not be a bad idea for another resource to consider. Another point to consider is however fast you want to learn 3.5, there will soon be a 4.0 that may be out sometime this year as part of Visual Studio 2010.

ASP.NET Continuous learning

I've been working in ASP.NET for several years now (since the 1.0 days!), but I've never been formally instructed. I'm fully capable of doing pretty much anything I want and I've built several production-level, data-driven sites, including one that does over a million in sales a year (according to the owner). But I'm starting to get the feeling that the holes in my knowlege are dragging my productivity down. I read a lot and try to learn wherever I can to try to stay up with all the new technologies, but sometimes I just don't get it, and I think it's because of my lack of formal training.
Does anyone have any ideas on the best way to fill in these gaps without having to rehash the fundamentals?
Thanks
1) Read the Code of popular Open Source Projects. There are a few that have some really good practices in place.
I recommend checking out BlogEngine.NET. Also if you're more ambitious, I'd suggest looking at the code for ASP.NET MVC 1.0.
2) Sometimes you need to "get back to the basics" when you've been working with a particular framework since a much earlier version. In this case, it can be really useful to pick up a book that covers some of the newer features.
Here's a good book that shows of some of the new features in C# 3.0:
C# 3.0 Design Patterns
3) It may seem odd, but reading up on other languages/platforms (such as Ruby on Rails) will help you in the way you design your classes and code by taking tips of the good and bad of different platforms and combining them.
4) Read some books on general best practices and development methodologies.
Some of these books I recommend are:
The Pragmatic Programmer: From Journeyman to Master
Practices of an Agile Developer: Working in the Real World
Code Complete: A Practical Handbook of Software Construction
I'm in the same boat; been a .Net developer for 6 years. While I do have a CS degree, I don't have any formal training in ASP.Net; I learn it on the job as projects come up.
I found the best way to figure out what to learn is to keep your eye on .Net developer blogs. Some I follow:
David Hayden http://www.davidhayden.com/blog.aspx
CodingHorror.com (you might be familiar with it ;-)
Scott Hanselman http://www.hanselman.com/blog/
Usually from reading their blogs, I pick up on what the latest .Net solutions that are out there and point me in the direction of new tech I should look into further.
Overall though, I can only give you the advice I give junior devs at my company; realize you can't possibly be expected to know everything but always be eager to learn. Good luck!
I can absolutely identify. I've been programming since 1997 and really don't have any formal training to speak of. With regards to ASP.NET, everything I've learned has been through open code (Community Server, BlogEngine.NET, the other ASP.NET Starter Kits), books, LearnVisualStudio.net, and constantly being thrown in the fire.
I have a MASSIVE inferiority complex as I'm always wondering "did I do this the smart way or the inexperienced way". All I know is that my customers are happy, the errors that occur are few and are fixed quickly, and I keep getting work.
Luckily I have a passion for my work and that's what drives me to keep improving (slow though it may be).
If you're a "people person" then I think user group meetings are a great resource. I'm a bit of an introvert and unless someone who's smart reaches across and shakes my hand, I pretty much rely on the speaker's presentation to teach me something new. Probably not the best way to go and also probably why I don't go that much.
But again, I would stress the open projects, especially Community Server.
Seek out people better than you and learn from them.
Take some classes or join a user group.
If you are looking at conferences, consider finding a local Code Camp. These conferences are often very low key, but have excellent information content. They involve local presenters and attendees so you can build up your contacts and a set of people you can run things past when you need help. In addition, you might want to find (or start) a local .NET group where you can learn together. These can be hard to get off the ground, but when done well can be an excellent source of community learning.
Look for interesting ways to break your established patters - even at a loss of productivity.
Otherwise, it sounds like you are already in a pretty good spot. You can deliver on current requirements and sound like you can pick up new tricks when needed.
Really, the best way to learn new techniques is to work on a different project - even if that means changing jobs. If you have relevant and continuous experience since 2001, you should be able to pick your projects.
I've been coding PHP on a current project and it's been an interesting break from webforms. If anything, I'm getting good perspective on both models and really looking forward to doing some work in MVC.
I'll probably get some -1's for this, but as a fellow ASP.NET developer I don't think you really need to learn ALL that the framework has to offer. The reason I say that is that over the years my LACK of knowledge of all the cute little conveniences of ASP.NET has caused me to write better performing and more robust web apps for Windows. Balanced design patterns (separation of concerns) WITHOUT OVERDOING IT will make more of a "better" ASP.NET web app than using all of the controls and tools that come with the framework.
Case in point is the ajax stuff you get with ASP.NET, and also data binding. Since ASP.NET was late in the game with Ajax, I started off with my own ajax wrapper (based on an early ajax book) and then moving to jQuery. My co-workers all swear by the UpdatePanels and 3rd party controls, and quite often the user experience ends up worse and more confusing than a regular post back (and then we have to inject javascript to make it perform better and more seemlessly). As far as data binding, I've yet to find a canned control (from Microsoft or any 3rd party) that handles 2-way binding better than the framework Rick Strahl came up with back in the 1.1 days. We built a framework on top of a paper and some base classes he released, and I've yet to see something that I think handles data binding any better in ASP.NET (well...besides WPF/Silverlight...those frameworks really nailed it IMO).
So, to me, the path to upgrading your ASP.NET skills is to come up with some good ways to separate your business logic into logical components in the cleanest possible way, and learn the hell out of C# and JavaScript (and/or a JS wrapper library like jQuery). For me, coming from a LAMP background before learning ASP.NET, I absolutely love C# and Visual Studio, but I'm not such a huge fan of the high level ASP.NET controls.
This is a pretty broad question, and hard to address. I perceive myself in a similar space to you, so I guess I can elaborate on what I've been focusing on to improve as a developer which might be of some help.
I mostly write business and commerce related web apps, and my focus has been on a developing a solid understanding of separation of concerns, domain driven design, and enterprise design patterns.
Some books on general software design which I found revelatory were Code Complete by Steve McConnell and Head First Design Patterns by Freeman & Freeman.
I read SO, Code Better, DDD Step by Step, and a number of other blogs regularly.
Dissect well written code from others, and learn from them. Learn from your peers. If you're in a stifling work environment that doesn't give you the opportunity to grow as a developer, consider looking for a new job.
Learn a new language in a completely different framework - I've been teaching myself Ruby on Rails at home and it has given me an interesting perspective on the ASP.NET work that I do commercially.
Given that you're an ASP.NET web developer, learning MVC.NET will certainly help you to think about front-end development in a new, refreshing way.
If you can afford the money and time (or can get your company to pay for it), take a course at DevelopMentor. They have courses across the country and all year round. They are generally a week long and are in depth.

Resources