Archives

Archives / 2004
  • DotNetNuke 3 Beta 3 is available for download

    DotNetNuke is an open-source community portal written in ASP.NET, DotNetNuke is popular enough to warrant the existance of a number of third party services, we have used it for communities like http://panama.latindevelopers.net. A couple of days ago Beta 3 of version 3 was released, offering a number of enhancements like multiple portals with one codebase/database and separate upload directories. So go download it and give it a try.

  • The first program and the first programmer

    I was browsing the Encyclopædia Britannica and I landed on Ada Lovelace, from my college years I knew that the Ada programming language was named in her honor and I knew that she is consider the mother of programming, but the details have slipped me: Ada wrote an article on Babbage analytical engine, in there she suggested a "plan" for using the engine to calculate Bernoulli numbers (all this happened circa 1843), because of this  Ada Lovelace is considered the first programmer and the first program is Ada's plan. A version of such program in C++ can be downloaded here and this is one of those moments when I wish I had the time for writing a C# version or may be even a Haskell version of it.

  • ASP.NET unit testing

    Some time ago mi pal Keiji Miyabe asked me how to unit test ASP.NET pages. As you know, the idea of unit testing was born in the business layer (where the problem is solved, among others, by NUnit) but it has started to grow into other layers as well, for example NUnitAsp tests web pages (exactly what Keiji was looking for). I discovered this while checking fellow RD Scott Hanselman blog , where he mentions and interesting alternative way to test pages that leverages Cassini, the open source web server written in C#.

  • CodeSmith seems to run in .NET 2.0!

    As you probably know, CodeSmith is a freeware code generator based on templates. Even though CodeSmith requires good C# or VB.NET programming skills, it is very, very flexible. When I told about it to my pal Tomás Zules, he liked the idea but, as we were in an ASP.NET 2.0 training, the immediate question was whether CodeSmith run on .NET 2.0, I didn't know so yesternight I made some testing. To begin with, the CodeSmith .msi installer demands .NET 1.1 so I had to look for another road so I downloaded the CodeSmith .zip file, unzipped it and I had CodeSmith in my .NET 2.0 partition. When I tried to run CodeSmith.exe, I got again a message asking for .NET 1.0 or 1.1 and, as I recalled of a similar issue with NUnit, I opened the CodeSmith.exe.config file and found this lines at the beginning of the file:

      <startup>
        <supportedRuntime version="v1.1.4322" />
        <supportedRuntime version="v1.0.3705" />
        <requiredRuntime version="v1.0.3705" />
      </startup>

    Y just added my .NET version like this:

      <startup>
        <supportedRuntime version="v1.1.4322" />
        <supportedRuntime version="v1.0.3705" />
        <supportedRuntime version="v2.0.40607" />
        <requiredRuntime version="v1.0.3705" />
      </startup>

    And lo and behold, it run.Well, at least some simple examples run. I hope some of you will make more detailed tests but, so far, .NET 2.0 binary compatibility with .NET 1.1 is looking good.

  • Visual Web Developer vs. Visual Studio 2005

    It will be interesting to see how Microsoft's strategy of offering low price/enterprise IDEs for .NET 2.0 will play out. Of late I've been showing Visual Web Developer (low price) to several audiences and this weekend I did my first Visual Studio 2005 (enterprise) training, as you can create ASP.NET web sites with both it's a good question what features VWD doesn't have, up until today I hadn't seen a short list. Rob Howard is a regional director who used to by part of the ASP.NET team. Rob is co-author of ASP.NET v.2.0 - The Beta Version. Well, in the corrections of the book I finally found such list, that I reproduce here:

  • A.I. in .NET

    During the great MSDN Tour in Ecuador, one of the most interesting questions I got was made by a couple of students who, as part of their final work, needed to use/port A.I. algorithms to .NET. Scrambling for an answer I pointed them to Mondrian, but Mondrian is a functional language, a programming paradigm with deep roots in LISP but that leans more towards maths than to A.I. I also mentioned  Mercury, and that was a better shot, because Mercury is a logic programming language (á la Prolog), Mercury is in beta but it may well be enough for their needs. Another possibility is DotLisp, a LISP dialect for .NET scripting, also in beta. Moving forward, we have P# which is a Prolog compiler that generates C#. Finally, a fascinating detail is the fact that the .NET Framework 1.1 includes a LISP mini-compiler here, the compiler is written in C# and generates MSIL, so it could be a good starting point for the translation of the algorithms. All in all, A.I. in .NET is possible but it is clearly in an early stage, which makes it a hot topic for a final paper.

  • EDRA 1.1 Final is here!

    The Enterprise Development Reference Architecture v 1.1 Final is available for download from its Gotdotnet workspace. Of late, I see a lot of activity (webcasts, on-site training, customer engagements) around EDRA and, here in Ecuador, at least a couple of very big projects are considering EDRA as its infraestructure. No wonder: security, logging, software updates, messaging et al. are resource-consuming features and drag the focus from the real need of commercial software: solving business problems. EDRA, although having a noticeable learning curve, is a good shot at solving this concerns while keeping you as focused in the business problem as possible.

  • MSDN Regional Tour - Ecuador - Done!

    But now we want more! It's been two weeks visiting ten cities and covering over 2.000 km of Ecuadorian roads. We had full-standing rooms in several places and people were enthusiastic about what we showed: Pablo Narváez, our local C# MVP, thrilled the audiences with WeRock247. In particular, the things you can do now with VSTO and Office 2003 (especially the Research Panel) got a lot of oh's and noddings. So I had to do my best to impress the crowds with Visual Web Developer 2005 and ASP.NET 2.0, funnily one of my high points was when I said that I was going to use SQL Server 2005 as my backend database (I guess, the expectation of seeing a Beta 1 *failing* to work with a Beta 2 was high, alas, it never failed). The other one was when I showed master pages. But in general, ASP.NET 2.0 was extremely well received. All in on all it's been a great experience: we talked to 2.400+ developers, we ate a lot of tasty and different local foods and I went to places I've never went before, so I'm looking forward to the next MSDN Regional Tour.

  • MSDN Regional Tour - Ecuador

    This is a cool initiative from Roberth Minga, Microsoft DE (Developer Evangelist) for my country (Ecuador is a small 13 million people country right between Colombia and Perú). During the next two weeks we will visiting ten cities (Ibarra, Quito, Ambato, Riobamba, Cuenca, Azogues, Loja, Machala, Guayaquil, Manta) to show what's coming in 2005 about developer tools, including .NET 2.0, ASP.NET 2.0, C# 2.0, SQL Server 2005, Visual Studio 2005, and smart clients. Even though the focal point in every city will be a two and a half hours event, in several places we will seize the day and have breakfast with local software houses and meetings with developer teams. Tomorrow we will start with Ibarra and Quito (120 km away of each other) but from then on we will enjoy one city per day. The logistics of the trip are also cool: Roberth rented a car and, along with Pablo Narvaéz -our C# MVP-, we will drive along our country roads.

  • Downloading EDRA

    I mentioned here that you can download the latest EDRA bits but, at least for me down here in Ecuador, it's not unusual that I don't have access to Gotdotnet workspaces, well, Alejandro Jack just showed me that you can also get EDRA from here (I just hope that now that you know, they can keep up the speed). You will also find several EDRA insiders blogging there too.

  • F5 considered harmful

    While reading this publicized blog from Somasegar, in which he tells us that the famous "Edit & Continue" from VB 6 will work in VS 2005 with VB.NET *and also* with C#, I remembered something I read many years ago (I paraphrase because I can't remember yesterday mails, let alone an article I read in 198x):

  • EDRA 1.1 RC1

    Sheesh, it's been a month since my last post! Having real work to do (and tracking Ecuador soccer team, and the US elections) can badly hurt your blog life, so this is probably old news but anyway: a couple of days ago Release Candidate 1 of version 1.1 of the Enterprise Development Reference Architecture was made available here. If you are about to start (or have to restart) a big LOB application you should give it a try.

  • Mono, Whidbey, performance, Yukon, and Lima

    This has been an hectic day, it started at 7:30 AM when we did a breakfast for a few really Microsoft-reluctant friends about Project Mono, it went well but I had to leave the event in the hands of my OSS-prone partners because I had to start at 9:00 AM a presentation to a very big local ISV who's deciding whether to rewrite their successful VB 6.0 systems in J2EE or .NET, allegedly the presentation was going to focus on multi-tiered distributed architectures but it briefly derived into an ASP.NET 2.0 presentation and then in an intense Q&A about application servers, COM+ and Indigo. At 11:00 I had to go to my office just to sign some papers and then run to another customer to discuss some severe performance problems they are having in a distributed application, the culprit: a number of fine grained remoting components that move some heavy datasets, the solutions that we started to implement was: a) cache the datasets in the client, b) coarse the interfaces, c) add a ziping sink to the remoting stack, d) download the datasets in a background thread. Then at 1:00 PM I had a lunch with an old friend and customer and discuss some future .NET projects and again Mono (they are currently a Java and Powerbuilder shop). At 3:00 PM I had a rush meeting (on a car, on the way to the airport) with a small ISV that is sending me to Lima, Perú to help them in selling its ASP.NET solution to a big company there. In the plane I unexpectedly run into a colleague who puts me uptodate in his successful .NET project. At 8:00 PM I am at Lima, talk by phone with Jorge Oblitas, the Peruvian RD, and I end up giving a talk about Visual Web Developer 2005 and SQL Server 2005 to some 20 people in a local university. At 10:30 PM we go to dinner with Jorge, and I finally leave technology behind as we have a long and pleaseant conversation with the owner of a chinese restaurant. I really feel happy about this day yet I hope I won't have a day like this in a few moons...

  • Webcasts and coincidences

    In my last post, just minutes ago, I mentioned the code blocks and how a webcast was helpful in a real work situation. Well, I just received an e-mail inviting me to a webcast about Enterprise Library, the double coincidence comes from the fact that EL is the successor of many of the application blocks that I suggested using in that post. "This must be more than a I coincidence" I instantly thought, so I am blogging again to recommend you joining this webcast (besides, I have managed to show you how I can redundantly overuse hyperlinks).

  • UAB

    A few days ago a customer called us with a specific problem: they have developed a pretty big application with Windows Forms and MBI (a framework for building business layers), now that they were about going live they needed to solve the problem of having relatively frequent updates of their Windows Forms client. After reviewing their scenarios, it was clear that the most adequate (or less troublesome) solution was to use the Updater Application Block. It's interesing how in situations like this it's always tempting to write your own solution, especially because the use of components like UAB is not trivial and requires several hours to understand well enough. Luckily, for UAB it helped me a lot the webcast that Chris Kinsman did in August on the subject. Having the source code was also helpful as one need of my customer was that the manifest file didn't get deleted after being downloaded from the deploy server: it took us half an hour to find the place inside UAB where this was done and parameterize the code with an entry in the configuration file. In retrospect, the 6 or 8 hours that we had to invest were far less than those we would've used in writing our own solution; that is why I suggest you to use the code blocks: the effort that takes to learn them usually pays handsomely.

  • OO Numerical Methods in C# 2.0

    In his book Object-Oriented Implementation of Numerical Methods: An Introduction with Java & Smalltalk, Didier Besset presents some of the most useful numerical algorithms; one interesting theme on the book is that Didier concentrates more in using the object oriented paradigm so as to get an easy to use and extensible set of classes than in getting the maximum possible performance. As expected from the title, the book presents detailed code in Java and Smalltalk, I have tried and translated the code to C# using Visual Studio 2005 Express Edition. Even though I have used very little of C# 2.0 new features (the code will run with minimal changes in C# 1.0), the exercise let me find out how stable and usable is the new IDE (impressive in both points). You can finally download the code here, even though the unit test set I have used is patetically small, at least the code compiles and passes it.

  • Simple optimizing pleasures

    Sometimes you have an entertaining half an hour of good old simple tuning, for example this afternoon I had to consider this stored procedure (the names of the variables have been changed to protect the innocent): 

  • Up to speed with 2005: NDA

    Today, Jim Allchin made announcements that unfortunately I can't talk about (ironically, and as usual, Mary Jo Foley can). All I can say is that it has to do more with 2006, 2007, and beyond than with 2005. So I guess it's OK as I am currently trying to focus on 2005. And talking about that, they just gave us a couple of DVDs: Visual Studio 2005 Beta 1 Refresh with Visual Studio 2005 *Team System* (build 40607.85) and SQL Server 2005 Beta2 32-bit Developer Edition latest bits, so I guess I've got plenty of tools until Holiday 2006 arrives. I won't install them until this night so you get the chance to download it first and beat me ;-)

  • Up to speed with 2005: Biztalk 2004

    Given my previous experience (teaching object orientation and architecture to business developers and custom vertical business applications mostly for internal comsuption) you would understand my lack of knowledge (and interest :-( ) in technologies like Biztalk. But even in my area of expertise, I increasingly see the need for integration and I also see the increasing complexity of the need. Even a few months ago, I would have said "go with web services, that will be enough" but inter-company information exchange (aka B2B) is becoming more and more sophiscated so, in several scenarios, using just web services is viable but it will take too much hand work, thus my growing interest in products like Biztalk. Besides, with Biztalk 2004 abilities' like Visual Studio IDE integration, Biztalk is coming to my turf instead of the other way around. As for fresh information from this event, to the question "what are the plans on Biztalk given the .NET 2005 wave?" the answer was "we will certainly integrate with Sql Server 2005 and do some adjustments but, aside of that, Biztalk 2005 will basically be Biztalk 2004". Now back to the business workflow Erik Leaseburg is showing inside Visual Studio.

  • Up to speed with 2005: Windows Forms

    It tells you something when you see the Datagrid Girl herself coming to attend a *Windows Forms* presentation (not to mention a few RDs and some Microsoft PMs). For all the publicity (mostly deserved) about the all new ASP.NET 2.0, Windows Forms has also got a number of enhancements in .NET 2005, not as massive as ASP.NET, granted, but may be this is due to the fact that Windows Forms was already pretty mature on .NET 1.1 ;-) So most enhancements come in the form of new controls, if this doesn't sound compelling enough, you should check DatagridView or ToolsStrip. But do it quickly because it seems like Marcie is planning to become the DatagridView Chick. Dang, Clemens Vasters just asked about how the ToolStrip autosave works and, as the instructor was a little lost, the guy that *wrote* it is helping with the answer, I better stop blogging and start paying attention.

  • Up to speed with 2005

    Glen Gordon comments about a very intense 3 day event in Bellevue on Microsoft 2005 technologies. And it's intense: today's agenda spans for 12 hours! Best of the day so far: VSTO 2005 rocks! (and it does help that the team doing the presentations was really energetic). So, go download it and give it a try. A funny comment fron Glen's blog: "MS corporate has put together an intense 3 day training meeting for field personnel like me as well as key Microsoft advocates around the world." As I am not a Microsoft employee I guess that puts me in the "key Microsoft advocates around the world" bag, you can imagine my grin. Now back to hear Jeff Prosise's talk about Membership in ASP.NET 2.0.

  • Open source projects in .NET

    It seems that the open source season has arrived to .NET, now they are talking about it everywhere. Of late, I have found individual initiatives as well as companies that mantain several projects, and just yesterday I stumbled on one of the most complete catalogs I've seen of open source projects, exclusively in C#! Me myself, I surrendered to the temptation and got involved in this project, (un)fortunately I've got precious little time that I can dedicate to it but I will try and tell you how the adventure goes.

  • MIT courseware on line

    Probably you already new this but for me it's big news: through the Microsoft Academic Alliance site I found the courseware for a number of courses given at Massachusetts Institute of Technology. To be honest, it's frustrating not to have the time for downloading a couple of those and start learning.
     
    Edgar Sánchez
     
     

  • Numerical Mono

    As soon as I got the SciMark2 benchmark running on C# I started to wonder how well (or whether) SciMark2 would run on Mono. Yesterday, I fired up my Suse Linux partition, copied the CommandLine.exe to a Linux volume and run "mono CommandLine.exe". First of all, the benchmark just run, no translations, no recompilations, I know, I know, "no big deal, what are the news" but, given the number of people who said that Microsoft would never allow .NET in Linux to happen and that Mono would never complete, I like to shout a "So there!" from time to time. Anyway, these are the SciMark2 results on Mono 1.0 (always in my good old Toshiba portable):

  • .NET 2.0 and Java 1.5 for numerical computing

    Going ahead with my numerical algorithms translation, I started to wonder if I was going to win something in performance. Is .NET 2.0 going to be faster than Java 1.5 for numerical computing? To find out, I downloaded the SciMark2 benchmark from the http://math.nist.gov site and I translated it to C# using Visual C# Express, at this point I didn't try to understand (let alone enhance) the code, only to get it working in C# (except a couple of obvious changes like using Array.CopyTo() to copy arrays). Anyway, these are the results I got with Java 1.5 Beta 2 in my portable (2.8 GHz Mobile Intel Pentium 4 CPU):

  • Didier Besset, C# Express, and NUnit

    One of my most neglected hobbies is numerical computation (amid this sea of database access, layers, patterns, and services, anyone remember that one?), an example: a couple of years ago I bought the interesting Object-Oriented Implementation of Numerical Methods: An Introduction with Java & Smalltalk by Didier Besset, by then I was programming in C# and immediately had the idea of translating his algorithms to C#. Well, two years later (that is a couple of weeks ago) I dragged myself to do it only that, for being at least a little bit innovative, I decided to use C# 2005 Express. I know, I know, there are translators from Java to C# but, remember, this is my hobby, so I decided to take the scenic route; the process has been relatively painless (I'm in Chapter 7 now, working a few nights per week) and I've been able to use some of the nice features of C# (like operator overloading for polynomial operations, and List<double> instead of ArrayList for variable size vectors). Anyway, some doubts appeared on the way and I decided to contact Dr. Besset, after a couple of searches in Google I found his address and sent him my questions, to my amazement he promptly answered, and so here I am regularly e-mailing with Didier :-) One of the things I needed was some test data to validate my C# translation. Didier first sent me some test code in Smalltalk and then some more unit tests in Java, now to use them I needed NUnit, so this morning I downloaded the latets (beta) version of NUnit and, as it refused to install without .NET 1.1, I downloaded the source code, opened it with VS 2005 and recompiled it, had an error due to a missing resource file but, as it was used only in one menu option, I blatantly commented the calls and tried again: voilá, in spite of a raft of warnings, NUnit now runs on my .NET 2.0 Beta 1 environment. So, finally I translated some of Didier tests and, to my exhilaration, my code actually *passed* them. Isn't programming fun?

  • Oracle 10g and .NET: it just works

    OK, this is sure to be really silly stuff for some of you, but as I do 9x% of my work with SQL Server, taming the Oracle beast is a real challenge for me. The very first round, filling a dataset:

  • No iterators in VB.NET 2.0?

    In a forum, I read that VB.NET 2.0 there won't be an equivalent to the C# 2.0 iterators and yield keyword. Being a C# fan and not one that misses a chance of teasing my VB.NET friends (and customers), I should be happy but, somehow, this sounds weird to me, is this indeed true?

  • bool? res = count ?? 0 >= 0;

    In today's presentation, Anders introduced some new syntax (to me) for nullable types. It goes like this: if you have a value variable (struct or simpler) that could get null values, you declare it like this:

  • Second step of the journey

    The hardest part here was to get to the Continental counter: it seems that an Ecuadorean guy trying to get to the U.S. through Lima is suspicious enough, so I was drilled harder than in a Java vs. .NET debate. The flight itself was easy: I slept most of the six hours, the rest of time I learnt a bit about Codesmith. I know, I know, old news for most of you, and I wish I had started using it in my latest project: the DAL would've been a breeze. Now, on to the third step: Los Angeles.

  • First step of the journey

    I left my home town, Quito, a couple of hours ago, now I'm at Lima, Peru, so I'm now 1.200 km (800 miles) further away from TechEd, it looks like a step behind, doesn't it? There's a reason for it though: next Saturday 29th it is Lima Developer Day (part of Andean Developer Days) and I am an invited speaker, so after TechEd I have to fly directly from California to Peru; due to the business logic of air fares it is cheaper to buy a Quito-Lima-Quito ticket and a Lima-Los Angeles-Lima ticket than a Quito-Los Angeles-Lima-Quito ticket (go figure), so here I am at a Lima cyber-shop, spending my time until my second step: Houston.

  • I'll be there TechEd 2004 (no small feat for a sold out show)

    It wasn't sure until the last minute but now I'm positive I'll be at TechEd 2004. All I'll have to do (besides surviving the trip) is to spent some time at Cabana 5 & 6, so if you want to chat about the ins and outs of developing with .NET do come along (but please don't bring hard questions, who wants to work hard in San Diego?)

  • That (cool) sinking feeling

    Perhaps because I did real distributed computing with Java in the first place, I like to tinker low-level (but not too much low-level). Perhaps, that's why I use Remoting a lot. Oh yes, I know Indigo is coming and I know web services is the thing for SOA (according to our high priests, anyway). But Indigo is 2006 and, unfortunately back to the real world, I have to write systems in 2004. In this year, I (tend to) use web services if I have to talk with other platforms but I (tend to) use remoting if I need to separate .NET front-ends from .NET business logic. And I just love the sink architecture of remoting: one of my early successes was to *copy* Ingo Rammer sink for zipping messages and making an application ten times faster without changing the server or the client code (oh boy, the guys in that company still think I'm a genius). And now, through the TheServerSide.Net I come acquainted with a remoting sink for probing remoting conversations (as you can see, I'm also fond of recursion). Isn't sinking cool?

  • OSS and localization

    I've been visiting Panamá for almost two months now (alas, a really nice place to visit). During this time we've started the .NET User Group here. We used DotNetNuke to create the portal, and it has proved to be an amazing piece of software (for being free and, even more so, running flawlessly in really unexpensive hosts). But we had to set up the site in Spanish, so we had two localize DNN: it took a couple of nights to understand the inner workings of DNN and a couple more to translate 90% of the labels and messages. A lot of the text was in database tables already but we had text scattered through the code, the user controls and the pages. In the end, the localization process was not a big deal but it still required the source code and some good expertise in ASP.NET. As I said, DNN is an amazingly good product but one item below average is its discussions module, so we started to hunt for a third party module (it's a tribute to DNN popularity the fact that there's a market for 3rd party modules and site development), we found a couple of interesting options like YAF which is OSS and ActiveForums which is commercial (but you can buy the code) but again no easy localization. Come to think of it, of the growing number of OSS .NET projects, most of them only target the English language with i18n going from poor to non-existant. Message to Microsoft: tell the thriving .NET OSS community to start thinking multicultural.

  • Hunting for ASP.NET hosting

    Our web site hosting is about to expire so we started to search for a new provider. Nothing particularly wrong with the current one, but we want a host that is more focused on .NET, particularly we want ASP.NET 1.1 support (including as much components as possible) and SQL Server 2000, Win2k3 being a big nice-to-have. It so happens that there's a raft of offerings (which says a lot about the growing popularity of ASP.NET) but the market options and twists are as confusing as ever (I feel pity for non-technical people trying to choose a host). We finally settled on one provider and a runner-up. As we had some problems with our credit card payment with the winner (we are in Ecuador and weekend financial transactions can be tricky) we set up an account with the runner-up KarmaaHost. But, finally our original transaction went through so we ended up with *two* hosting sites! We quickly mailed KarmaaHost to cancel the order (which was already paid and set up) and they promptly followed our instructions. So we had very little chance to experience Karmaa hosting but I can say that their customer service is superb.

  • Documenting the many small conventions of a project

    The bigger the project the more the devil is in the details: how you handle exceptions, how you log errors, how you setup your VSS connection, etc., etc. There are dozens (several dozens) of small conventions that a team must follow and many times people don't follow these conventions simply because they don't know about them or because it's 3 AM and go figure in which lost manual is the standard for connecting to a SMTP server (*if* such a standard exists for our project) so we just fire up or own solution (or, if we are clever, cut&paste and example from MSDN) and there goes the standard, that's one of the many beginnings of the end of the normalization.

  • Pair programming in consulting

    I have to admit I am a solo programmer: as a lot of my coding is trial-and-error I don't really like people watching me make mistakes or mumbling :-) More on the practical side, I think it is more efective if once the code is working *and* polished I explain the what's, why's and how's (something, ahem, I'm good at, ahem). But, as a consultant, many times I have to help my customers with their coding chores. Currently, for example, I'm helping a very experienced team to get up to speed with .NET distributed development. First all, we defined our architecture (security, layers, logging, etc., etc.) and then we prioritized the use cases. What is left to do every day now is to select a task, we discuss our options, do some drawings, and start to program (somebody from the team and me). I have to admit that I take the keyboard kind of reluctantly (remember my first line) but most of the times it works pretty well: after some stumbling, the job gets done; furthermore and to my amazement, my fellow programmer finds the experience *enlightning*, which to me is kind of funny (remember, these are pretty smart and skillful people, it only happens that they don't know .NET). As I said, given the choice I'd rather programmer alone and explain what I did later but if I am forced to do pair programming I have to admit the technique works really well.

  • Looking inventory data from Excel

    My brother Alex is one hell of a business apps developer. He's been for years using C/S tools and just a few months ago I convinced him of using ASP.NET, after some reticence he started to program in the .NET platform and it amazes me the various (somewhat small but certainly real life) apps he has crafted in this short period. Yet, Alex being mostly an alien to our O-O, XML, etc. hoopla, there is a number of things he hasn't been acquainted with. Last week, a customer asked Alex to create a tool that helped the customer salespeople to create proposals with Excel, mostly, the salesman didn't want to switch from Excel to a green terminal window to check product prices and stocks, I talked Alex about the Office 2003 Research Services and he (reluctantly again) agreed to give it a try, so we used the best part of yesterday and today afternoons discussing the architecture of the research pane (he knows a little about web services but nothing about XML) and then creating a couple of research services that do most of what his customer wants, Alex is impressed and even I am impressed with what we accomplished: it looks like we worked far longer than what we actually did. One point to note though, the Research Services SDK is indispensable to do this kind of job but it is somewhat awkward to use for me, moreover, it was completely irritating for Alex (who's a talented programmer who just doesn't know XML), besides creating the long XML response document is tedious: one could use a higher order API. All in all, my bro is starting to like Office 2003 and web services but still don't get what's the fuss about XML.

  • And Shadowfax alpha...

    As many of you probably now, Shadowfax is (or will be) an application block for writing distributed application around remoting, web services, Biztalk, etc. Just a couple of days ago a new alpha release was uploaded to gotdotnet and, as most of my consulting time nowadays goes around distributed applications in .NET, I have no other option than downloading Shadowfax and checking what Ron Jacobs and his mates are doing. Now, I really won't sleep this weekend!

  • DataWindow.NET available for download

    As I mentioned in a previous post, Sybase was about to release a public beta of their datawindow. It should be clear from my previous post that I used to be a fan (kind of small time expert, ahem) of PowerBuilder and of the datawindow object of course (but that was a long time ago :-(, nowadays a lot of people in Ecuador still use PB and know far more about it than I do). Anyway, today is the day: DataWindow Public Beta is available so, as we speak, I am downloading it (silly me, I thought I was going to have a good sleep this weekend).

  • PowerBuilder's DataWindows in .NET

    I just received an e-mail from Sybase inviting me to the Beta Program of its DataWindow for .NET, I don't know in the rest of the world, but in Ecuador PowerBuilder created a significant amount of followers in the years of C/S applications, mainly due to the power and flexibility of its DataWindow object. To this days in Ecuador, there is a lot of people using PB (or "Power" as it's usual called down here); when we show them our datagrid they react with diverse degrees and flavors of "but the DataWindow does it (better) already", so it'll be interesting to see how the .NET implementation comes.

  • My first online article

    In English, anyway: http://dotnetjunkies.net/Tutorial/77D4AFDC-585D-4539-A364-30028327FF14.dcik I'd love to have feedback!

  • Are validation errors exceptions?

    I was discussing with a customer about the best way to design, code and use business validation logic. First of all, there were a number of decisions already made:

  • Your favorite WinForms library

    I asked some friends what WinForms libraries they have used and which one they like the most. I didn't get that many answers but so far it seems like Developer Express is the favorite, followed closely by Janus (my personal pick). The key differentiator? With DevEx you can buy the source code. Infragistics, while mentioned, doesn't seem to have that many fans... Which one do you use?

  • Cows, covariance and C# generics

    At PDC 2003 Anders Hejlsberg presentation on C# new features, somebody made a question like this "Can C# generics be used to implement covariance?" I didn't understand the question so I didn't pay too much attention to the answer. So what is covariance? Yesterday I remembered the incident (go figure why) and today I googled over and found this very nice although somewath old cow-based explanation. Ah, that is covariance, interesting concept. Now I remember the begining of Anders answer "Well, yes to a certain extent..." To what extent I'm not sure but I least now I understand the question...

  • JLCA 3.0 Beta released

    I just downloaded from the Microsoft Beta site the Java Language Conversion Assistant 3.0 bits. Version 2 did a very decent job at converting "pure" business classes, not so much with front-end elements (servlets and JSP). JLCA 3.0 is reported to enhance this a lot, and also add support for things like JMS and EJBs. You can find some more info here. Hopefully I will find some time to play with it (alas, C# 2.0, ASP.NET 2.0 and the rest of the Whidbey stuff is ahead on the queue...)

  • Best ASP.NET Practices for Shielding Your Site from Hackers: done

    Well, I didn't quite have as much people in the room as I expected for this webcast, still an average of 280 is not that bad. You should try giving a webcast, it's not that hard and it's certainly fun. Contact the Microsoft Webcasts people for more info. As I said several times in the presentation: you can download the slides and demos from http://www.asp.net/whidbey (funny, as almost none of the materials is Whidbey specific)

  • From JSP to ASP.NET: done

    I just finished my JSP to ASP.NET webcast which is part of the ASP.NET Week. We had an average of 130 people in the room and I think we had fun (what with opening an Eclipse project in a Microsoft webcast and reviewing some of the nice things that JSP 2.0 and servlets 2.4 bring). Now on for the next one...

  • From JSP to ASP.NET: A Developer's Perspective

    Tomorrow (Jan 20) I will be doing an MSDN webcast which will discuss ASP.NET from the perspective of a JSP/servlets developer. That is, we will assume a good knowledge of JSP/servlets and then try to show how you can do the things you are used to but in ASP.NET (and hopefully some more ;-).