I'm going to talk a bit about my first experience deploying a real ASP.NET 2.0 application to a real Windows Server 2003 production web server. It was supposed to be so easy...
We all know that ASP.NET 2.0 comes with new and improved architecture. For example, in a new web project using Visual Studio 2005 we won't see, never ever again, a monolithic dll in our bin folder after building our site like we used to see in 1.x versions. Instead of that, the new 2.0 engine precompiles the web when it's accessed the first time.
Here we have the first issue... I just copied my complete web working folder to my web server, and voila, it worked... but, heeeyyyyy, all my code with full project structure and .cs source files is also uploaded to my server... Actually, even knowing that the ISAPI filter will avoid to download those files, I don't want to place my code on a remote server (I run my own servers, but couldn't just imagine what would happen if uploaded to shared servers)
Of course, those smart guys at Microsoft already thought that I would love to remove my source code from my deployed website and they created the Precompiled Website concept. They provided me with a tool within my Visual Studio 2005 IDE just to publish my site and precompile it, so I've used it to achieve my purpouse with the default parameters.
Uploaded the new precompiled site to my web server... and guess what??? It didn't worked... I started to have HttpExceptions loading types from my "precompiled" site and it just showed an error page stating the type that couldn't be found. Hmmn, I started to think that there was something wrong with my code and lost some time trying to find the missing types and googling for more info about the errors without any success... and finally found a link to an article by Scott Allen talking about the aspnet_compile command line tool
Well, let's try with that tool, I said to myself... Just used the tool with the required parameters and my site was precompiled again... Uploaded it, and guess what??? This time it worked!!!! And my question is... How can two teams be so un-synchronized to develop the same feature working in one place but failing from another?
Tip to myself: until there is no final release, consider this precompilation issue just and issue in the beta software... :-)
And finally, one more annoying thing... the website was using membership, one of the pillars of the new ASP.NET 2.0 model, but when I uploaded the empty databases I could find any option to access the Web Site Administration tool (the same one I have in my Visual Studio 2005) to create a role in my application and assign a default user to that role.
I know it has been removed from Beta 2, but will it be available in the final release of the product? I have no idea.
Anyway, it wasn't that bad... actually it was my first real production deployment, and just paid my newness there.
If, like me, you couldn't attend to PCD 2005, you still can access to all the sessions and contents at http://commnet.microsoftpdc.com/content/downloads.aspx
Although it's not the same, it's quite interesting to see what's been presented there. Enjoy it.
I was reading a post by Eric talking about small ideas and projects and I must say that I completely agree with him. Small ideas are good to succeed and you don't even spend that much to implement them; it's easier to succeed within a pack of ten small ideas than finding a breaking app in any area. I'm in that group of people that have tons of ideas but almost never finish one of them just because I spend too much time thinking about it scope and usefulness of them.
I guess the best approach to do what you like and what motivates you is to "Just Do It", but we are individuals and therefore, we don't have enough free time to spend in every aspect of our lives and in all our personal projects. I posted some time ago my impressions about this world of small projects and ideas, about how much time should one individual spend in thinking about a new idea before it gets outdated and obsolete or even before any other individual out there comes out with the same idea and develop it faster than you.
This is the reason why I think you should think a bit about your ideas, filter them, and select the most appropriate ones to work in, applying some kind of criteria to select the best ones, but this is just up to you because it depends on your personal likes ... Anyway, this is a hungry IT world where we all have similar ideas and it's quite near impossible to be successful with one of yours, and that's why you should have your own private personal idea pool.
I think the best way to develop an idea from your pool is applying the "Just Do It" pattern, but also doing a release as fast as possible to get community feedback and see if you should keep investing time in that idea. Actually, a release-feedback-refactor cyclic model is pretty useful for this small development teams and helps others to know about your work, comment and even contribute. And what the bleep, isn't this the idea behind community projects like gotdotnet, sourceforge, etc... ??
I'll try to apply this pattern to my self-developed idea pool, and let's see if I get better results in producing my upcoming ideas... :-)
I was updating my self reading and reading what's been up in the scene, and I ended up in a post by Peter Provost telling how he use to play (yepp, play play) when doing pair programming during his daily work. Worth reading and quite funny.
Have a look to it at http://agileprogrammer.com/geeknoise/archive/2005/08/29/7377.aspx
Last Tuesday I switched to a new project @ Adecco. I've spend all the week installing the new development environment, reading documentation, requirements, use cases, etc...
The project seems quite interesting from the technological point of view; it's a composite system with ASP.NET, Web Services, Oracle, Biztalk 2004 and a legacy application that we must integrate within the whole thing. I was a bit scared with this project, because after 1.5 years working on agile/xp projects I didn't really wanted to go back to a "normal managed" project; luckily this wasn't the case, and I'll continue working with Agile methodologies, because they use a Scrum variant to manage the project and test driven development with continuous integration (with nunit, nant and cruisecontrol) on the development area.
Browsing the code and tests, I've realized that they have a very smart way to perform unit testing of Biztalk 2004 orchestrations with a home-made biztalk-testing-framework relaying on a custom adapter. And, also on the Biztalk side, they've created good nAnt scripts to perform deployment and undeployment of orchestrations, ports and services.
On the dark side, I'm sad to see that I can't fully trust the unit tests they've developed; a lot of the developers where completely newbies with TDD and there is no consistence between the tests created and the real tests needed. There is such a lack of good unit tests that the whole thing has been removed from the build script used within CruiseControl, so there is no risk to break a build if any test fail... but... heyyy'ya... wasn't that the purpose of unit testing? I guess I should provide some kind of advice to the new developers on how to perform tests and what should be tested; and of course, one of my firsts "real" tasks is to help repair the unit tests (lot of them are caused by null types and the lack of nullable types prior to whidbey) so they can be included in the build process (yeaahhhh, i'm loving it)
This is an amazing world.
We live in a continuous update of every bit of knowledge and every bit of software. The rule is easy: if you don't get updated, you became out-dated. When talking about developers and techies, everybody seemed to see how fast our jobs changes and how fast we should go forward to keep our knowledge and skills up to the emerging technologies; and this has been widely accepted as an intrinsic rule of our devotion to technology. As a global technological community, we have evolved and created new ways of communication that help us in our furious path to technical improvement. We have such a degree of integration, communication and distribution of ideas that everything is even faster than a couple of years ago. We don't even have time to spend observing and analyzing the ideas we develop during our learning path.
Personally, while reading and browsing the net I end up with a lot of new ideas of products, tools, services and a wide range of experiments that I would like to work on. Maybe each of these experiments is just a way to learn a new technology, or maybe a new tool that I though it can be useful to the community. After a brief selection, I choose a couple of the ideas and start working on them, developing the architecture, the goal of each experiment. And finally, I release it. It's a long process; I have to work everyday; I have a personal live to attend; I don't have enough free time to spend on those ideas, but I definitely put a lot of effort on them to accomplish the goal.
As a direct effect of the evolution in our ways of communication (blogs, wikis and the whole internet itself) I continuously see how a lot of ideas are developed by third parties; lot of them ideas I already thought about. The problem is not related to any kind of creative or intellectual property issues, of course; it’s related to time, the free time developers spend on personal projects, and how those projects get obsolete in a matter second.
So my questions are quite simple…
How much time do developers have to spend in an idea before it gets obsolete and all the time becomes wasted time? Should we create a personal iterative process for building projects from our ideas? Or should we directly share our ideas and start community based projects to increase the succeed probability?
As all of you may know, Visual Studio 2005 Beta 2 went live last Saturday and it's currently available through MSDN Subscriber Downloads. But there are more things related to this release that were interesting during the day, so here is my list of useful stuff:
It's been a funny busy day with lot of releases, announcements and presentations... Let's keep it rolling :-P
I'll be presenting a MSDN webcast next 14th of April. It will be held in Spain, so once again, language will be Spanish. We, at ilitia technologies, have been offered this opportunity due to the success of our first presential MSDN Event: Developing Applications with Visual Studio 2005
It's a technical webcast, part of the "Developing with MSDN" series, that includes a step by step lab explaining how to develop a real-life application. The "MSDN Video" application has been created during the last webcasts, using different .NET technologies and patterns, and every chapter has been a part of the development of this software application.
For this chapter, the last one in the series, I will be revamping the web front-end of our application taking advantage of the new features of Visual Studio .NET 2005, using:
- Partial classes and pre-compilation
- Master Pages
- Object Data Sources
- Design of User Controls
- ASP.NET 2.0 Caching
If your are interested, register for the event and tune in next 14th of April from 17:00 till 18:30 (GMT+1)
Click here to schedule it in your outlook calendar