I'll be at TechEd in Dallas next week as one of the Experts for the Ask the Experts booth, along with some additional responsibilities for Microsoft. Hope to meet some of you that I haven't already met at Microsoft or DevConnections, and I'll try to blog some also since I'm set up on http://techedbloggers.net.
Check out my latest demo that shows a Windows Form UserControl embedded in an ASP.NET Page. It populates the ComboBoxes and DataGrid by calling a WebService that returns DataSets that are bound to the controls. The data is automatically refreshed with the correct child DataSets whenever the selection in one of the ComboBoxes is changed. Note that the Windows Form DataGrid automatically supports Sorting and Scrolling -- all without PostBacks! Note that this does require the client computer to have .NET v1.1 installed locally since it uses Windows Forms.
Update: Its fixed! Thank you Marc.
I was hoping to post about the cool demo I've been building with a WinForm UserControl in Internet Explorer, but I apparently need some help finishing it up. You can view my page and control and the error here. My control downloads and initializes/displays correctly, but its supposed to call a webservice to get the data. This worked when running locally, even with remote webservice, but now that I've deployed it to production it fails when trying to get the data. The error message mentions an IExplore.exe.config file, but searching on this reveals few references and no real help, and I fail to see how such a file on the server would accomplish anything since security in asp.net will stop my browser from being able to retrieve config files.
Here's majority of the error -- anyone able to help me out?
System.Configuration.ConfigurationException: Error loading XML file http://www.wilsondotnet.com/IEXPLORE.EXE.config This is an unexpected token. The expected token is 'DOCTYPE'. Line 2, position 3. (http://www.wilsondotnet.com/IEXPLORE.EXE.config)
at System.Configuration.ConfigurationSettings.GetConfig(String sectionName)
at System.Web.Services.Protocols.SoapClientType..ctor(Type type)
at Wilson.DotNet.WinForms.TipsControl.TipsControl_Load(Object sender, EventArgs e)
at System.Windows.Forms.UserControl.OnLoad(EventArgs e)
I had the best sandwich of my life tonight -- the Gyro Melt at Gondolier Pizza. Its a small Italian and Greek franchise in Georgia, Tennessee, and Florida. Also truly wonderful pizza. Sorry its not .NET related, but this was a really good sandwich!
I went to the DevConnections conference in New Orleans last week. I got to meet some great .NET folks for the first time, like DataGridGirl, Ken Getz, Don Kiely, and Keith Pleas, and saw some I'd previously met too, like Steve Smith. I attended some great sessions given by gurus like Dino Esposito, John Lam, and Ingo Rammer. Dino even knows who I am and said I get a credit in his upcoming book -- I probably shouldn't say that but its just too good to resist! I also attended sessions by Scott Guthrie, Rob Howard, and Jeff Prosise, but they were in the ASP.NET track so they were things I already knew. They were still great talks, but not as exciting for me, plus I had already met each of these guys last year at Microsoft. I also saw my share of totally boring sessions, and some that were a complete waste of time, which really makes me think I that I could be a conference speaker. The best parts for me were the keynote featuring ASP.NET v2.0, sessions from Dino, John, and Ingo, and a parade featuring a marching band to Pat O'Briens for all you could drink! Next month its off to TechEd 2003 in Dallas to be one of the "Experts" in the Ask the Experts booth -- see you there.
I'm at the DevConnections conference in New Orleans this week and last night's keynote featured Scott Guthrie's first ever public demo of ASP.NET Version 2.0! It looks like DataGridGirl beat me to the scoop about how cool the new grid control will be -- no code for paging and sorting and even editing. The other feature he showed was the new sql dependency supported by output caching -- the data is cached as long as you set and is automatically invalidated when it changes in the raw data table. He didn't show any of the other cool things that some of us have seen in private, but this was a really cool initial public preview. By the way, it was obvious looking at Scott's demo that "Venus" is the codename being used for at least part of ASP.NET v2.0.
There's been a lot of discussion lately, both here and elsewhere, on the ValidateRequest feature in ASP.NET v1.1. For those who aren't familiar with it, ASP.NET is basically checking all submitted form and querystring parameters, as well as cookies, for < and > to prevent script attacks. Its easy to turn off this feature when you need to allow for this type of input, just set ValidateRequest=false in Page directive or in the web.config file, but you should then be taking the appropriate precautions in your own code. Anyhow, the point of my post here is to APPLAUD Microsoft and the ASP.NET Team for the guts to add this new feature with it enabled by default (true)! Yes, this is breaking a lot of people's sites, but that's because they simply didn't read the docs or perform any significant testing before upgrading to the latest and greatest. That's right -- this feature has been documented all over the place since v1.1 came out in beta as something to watch out for when you upgrade. So why didn't MS just make the default to be false and avoid all the hassle that everyone is now experiencing? Security! Everyone has been complaining forever that MS doesn't make security a priority and that products ship with insecure features enabled. Well that's changed now -- as it should have -- so let's stop the grumbling simply because we were inconvenienced due to our own lack of due diligence. Yes, this can be interpreted as a breaking change, but this should be expected when something is done in the name of security for now on -- get over it!
Thank you Microsoft and the ASP.NET Team!
I've been playing around with some of the cool .NET tools that have been ported from Java lately. The simplest and most standard ones are NUnit for unit testing and Log4Net for logging. I got NUnit v2.0 working no problem with .NET v1.1 and really like the idea of using it for automated unit testing. On the other hand, Log4Net v1.1, which SharpReader uses, looks good, but I still haven't gotten it to actually work. Finally, I've been testing Thona Consulting's EntityBroker, which is the first O/R mapper for .NET. Object/relational mappers, also known as persistence frameworks, are well established in the Java world, but are new to most Microsoft developers. They basically allow you to totally skip writing or generating code for your DAL (data access layer) and domain objects so you can focus on objects. You just define your objects and use some attributes to map them to the proper database tables, fields, and relationships. That's all -- and it really works! I just gave a demo to a group of friends, and I never had to write any SQL or data access code. It worked equally well with both MS SQL and Access, as well as both Windows Forms and ASP.NET, including databinding in both. I'm definitely convinced this is something worth knowing about, since it radically simplifies development and maintenance. I'll admit, however, that I'm still shaking a little since this goes against the normal stored procedure paradigm that I'm used to with Microsoft. But even there, its worth remembering that Microsoft itself will be in this game soon with ObjectSpaces, so . . .
Please let me know your thoughts and experiences on NUnit, Log4Net, and O/R mappers in general.
I just got confirmation that my free PocketPC is on the way (in 8-12 weeks). If you haven't seen this yet and you have VS.NET or MSDN Subscription, then you need to check this out quick since time and supplies are limited. Thanks Microsoft for the free PocketPC -- now if only it were a camera phone too.