views:

607

answers:

7

I am trying to get a new contract/job and virtually everything out there (UK) seems to equate .NET with ASP.NET - and that's not me.

Sorry if this seems a little rambling but I really am wondering "What next?"

I'm a Window Forms developer, used to doing the whole thing from design through to delivery/support. I've a VB background (but doing it properly thankyouverymuch!), been doing C# for 4.5 years now, up to 2.0, strong database design skills/interest, been mainly SQL Server for the past 10 years, but bits and bobs of Oracle and Sybase here and there. Smidges of ASP, VBA and just enough ASP.Net to know I don't like it - it has moved off in a direction that I really just do not like - it seems overly clumsy and often used where a forms app may have been a better fit (IMO - these were all internal apps!).

I am used to writing frameworks, control sets, lots of library/middle layer code, and keeping the UI as thin as possible. Written my own ORM/testing/Continuous integration tools in my time (before there were other options). I suppose that I am trying to say that I am an experienced and (IMO) competent and reasonably sophisticated and fluent developer.

I suppose some part of me wonders what happened to all the stuff that used to be written in VB...

I really do just hate ASP.Net.

So where do I go from here? There seems very little work about in WPF/CF/WF (as yet) - but would it be worth it (in terms of attractiveness to an employer) getting trained up in that if it takes me a few weeks to hunt down a job? Am I likely to dislike that too?

EDIT:
Lots of useful suggestions - thanks!

I do wonder how much credit is given to learning that I'd do 'in my own time' rather than commercial experience. I know I wouldn't necessarily rate that very highly (on its own) if I were the interviewer (which I have been). I don't fib or exaggerate, either on my CV or in person - I would find it too stresssful - and to be frank, I have never needed to! So I can't really 'learn it up' and pretend...

+2  A: 

I know you already said you hate normal asp.net. I suggest you still take a look at asp.net mvc, it is a different approach.

Also consider learning silverlight + WPF, as they relate.

a couple links: http://asp.net/mvc and http://silverlight.net/

Update 1: Also we are a good point regarding learning skills that go beyond the technology you use. Please check this video on professional development: http://www.oredev.com/topmenu/video/keynotebobmartin.4.5a2d30d411ee6ffd28880002007.html

As everything evolves, not only the web vs. client is blurred, but the difference among the technologies does as well.

eglasius
I havee been 'doing' MVC as a pattern just about *forever* - I recall being pretty surprised that the asp/asp.net appsI have encountered were *not* using it.
kpollock
kpollock, asp.net mvc is a framework being provider by microsoft to build applications with the MVC pattern (modified version of it). The MVC pattern doesn't play well with the whole features of regular asp.net, so some of us used MVP.
eglasius
Ah yeah Presenter would fit better (In fact winforms is more presenter than controller more often than not, unless i misunderstand). Good link I will look when I have time :-)
kpollock
@kpollock I meant presenter pattern fits better with regular asp.net. The asp.net mvc framework is great, I suggest you look into that (as you already feel wrong about the regular asp.net framework)
eglasius
+1  A: 

Even though you claim hating ASP.NET it is worth looking at the MVC framework put together for it. Look at http://www.asp.net/mvc/ for more information.

Otávio Décio
it's the UI side of webforms that I hate. HTML, XSLT, CSS etc etc.. dunno why...
kpollock
I've seen quite a bit of mvc, and it seems really clunky and clumsy- worse than standard asp .net for the kind of person who hates asp .net.
Rich
@Rich - really? I will have to see for myself. I find clunkiness really offputting. I tend towards a fairly high level of abstraction in my work - which isn't to everybody's taste as they can find it a steeper learning curve - but IMO it's usually cleaner.
kpollock
A: 

Take a look at ASP.NET MVC. If you hate ASP.NET webforms, you might like ASP.NET MVC because it drops webforms paradigm and uses an MVC achitecture. Also, Silverlight looks like a promising technology.

ajma
+3  A: 

Your description of what you are doing almost matches, what I am doing (also in the UK, London (and not from banking sector)). I also started on VB.NET (and my coding skill were pretty bad) and moved to C#. I am working on Windows Forms, Frameworks etc. for a small company in London. I think Window Forms still have place in smaller customized projects (things that solve a very specific customer problem).

Tomas Pajonk
I'm sorta in (and out of) the banking sector - but midle/back office - where there seem very little. I can't really get into the business side of banking so I best stay out methinks :-)
kpollock
I'm in logistics / optimization custom built software business.
Tomas Pajonk
+9  A: 

The best way to become obsolete is to clutch too tightly to some existing technology, any technology, because there is only one utter certainty in this industry, and that is constant, relentless change. If you are finding the demand for your skill set starting to soften to the point where you are becoming alarmed, you are well past due to start exploring something else. I hate ASP.NET too, BTW, and there is no reason to believe that ASP.NET is the future either, it too is in the process of being dragged off by the currents. To see the world in terms of Win Forms VS ASP.NET is seeing the world in terms of Black and White, which we all know is not the way the world is actually colored.

Anyway, your distaste for ASP.NET aside, to continue to ignore the internet as a platform will continue to limit your opportunities, and if you start to look around, you will notice myriad technologies and platforms that are thriving, any one of which would be a good place to catch a wave and continue the learning process.

In our shop we develop heavily on Windows Forms and web technologies, and if you find your development practices are night and day (in terms of frameworks, testing, etc) using Windows Forms VS the web, that may be a symptom of not having looked at web development seriously enough (i.e. beyond one-off internal apps). I think your best bet would be to start to learn about distributed, service oriented systems where the front end technology is just another detail, just another consumer of your distributed back end, and does not dictate the overall architecture of your application as a whole, or even particularly influence it.

Anyway, to revitalize your career, just put your finger in the wind and start learning something new immediately, whatever it is. It is an exciting time in software development, and the question of fat client VS smart client VS thin client will continue to become a less important one, far less important than how the components of an application or system can be distributed, scaled and integrated.

Nathan
Oh, I know the constant change thing all to well. I actually started out in COBOL. The service component area DOES interest me - it just seems hard to spot roles like that. You are right enough, I find the web apps I have encountered lacking in the procedures side of things.
kpollock
I'm a 'classic' TDD (as I found out last year). Been that since my *second* project at uni (all the way back in 1988...)
kpollock
@kpollock, great, that is a great skill to have. Please check the new info I added to my response.
eglasius
A: 

It sounds like you're describing me. I feel though, that it is necessary to be able to develop in ASP .NET as well as Windows Forms, to at least be able to sell yourself as a 'general purpose' developer. You could either:

  • start focussing yourself as a 'back end' developer, i.e. someone who majors in WCF, C#, and databases
  • you could go for a jack of all trades approach, including all the latest tech such as WPF and silverlight
    • Stick with being a 'thick client' developer. Your windows forms experience will come in handy with WPF, which it definitely is worth learning about right now. There is so much that is interchangeable with WPF and silverlight, that I can see the way it will go is that the future will be something between the two, with all the advantages of web delivery combined with the richness of a thick client GUI.
Rich
A: 

Some other people have mentioned Silverlight/WPF, and I think that's a great place to go. You could also look at Adobe Flex, as I think you'd find that a reasonable transition, too. Flex is great for doing the sorts of applications that were once done in VB, but the Flex projects can run on the web or the desktop. I'm mostly a C# programmer myself, and I do work on the web and the desktop, but I've recently started reading a few books about Flex and it seems like a promising avenue.

As someone who's been on both sides of the web/desktop struggle, I think you'd find something with a consistent programmable graphics state a lot easier to manage than working with something stateless that emits html, etc. There's a significant conceptual jump there. Fortunately for you, stateful desktop-type programming is making its way to the web through things like Silverlight, Flex, or even Java applets. If you're wanting to grow your skillset in the direction of the web, those seem like logical places to start for someone with your background.

Oh, you might also check out the Google Web Toolkit. It lets you program in Java, apparently, and it then compiles to html/javascript. That's second-hand information, but I know a hardcore C/Java programmer who made the jump to GWT very easily, and he really seems to like it. So that's another possible avenue.

x4000
Spot on with the obvservation about stateless vs stateful - that's the paradigm that my head has not managed to really twist itself round as regards web apps. Probably not helped by looking at a lot of code that may well have been written by others in a similar boat :-). GWT? hmmm..
kpollock