.NET
This year we're evolving mvcConf into something bigger and better. After many discussions and planning around everyone's busy schedules, we came up with aspConf - The Virtual ASP.NET Conference.
As the main site states:
aspConf is a virtual conference focused on one thing: showcasing
the ASP.NET stack as the platform for great web applications.
We've revamped the popular mvcConf
conference to serve all of ASP.NET,
...
Last week, I had the pleasure of presenting at DevConnections at the Mandalay Bay in Las Vegas, NV. I had a total blast interacting with attendees, fellow speakers and checking out the vendor hall. The logistics for the conference were remarkable given there was approximately 2,800 people in attendance! For those of you that attended my presentations, thank you! I hope you were able to get something out of them; I had a blast presenting and interacting with you in each of them. Also, I had a great time with the open spaces sessions. There was lots of good...
The other day I was working on some features for MVC Turbine when I got a random idea about how we can use a new feature that comes with the Razor view engine (VE). This blog post hopefully will help out some of you in your development or least get your creative juices going. @View with Razor Views One of the new features that ships with the Razor VE is the ability to set ViewDataDictionary values through the use of a DynamicObject property. The following code shows how to do this: The ViewModel.Message call is the...
One of the new features of the Dependency Inject (DI) components from MVC3 is something called a IFilterProvider. The purpose of this component is to provide a simpler way for MVC applications to interact with filters (action, exception, result, etc.). In the previous versions, trying to achieve something like providing DI support to filters was doable, it just required deeper integration into the MVC runtime. The IFilterProvider interface is defined as: As you can see, it’s a pretty simple interface that can enable lots of opportunities if used in the right context. The MVC bits ship with an...
I’ve been getting different questions via emails, DMs, IMs, etc. that can be summed up by this question: Once MVC3 comes out, will I need MVC Turbine anymore to provide Dependency Injection (DI) support to ASP.NET MVC? There is really no clear answer for this, so all I can say is, it depends :) For those of you that are not aware, MVC3 has added better support for using Dependency Injection (DI) within different parts of your application. This newly added support applies to: Controllers ...
Recently my good friend and fellow C4MVC junkie, Eric Hexter blogged about an event the ASP.NET MVC community is putting together called, MvcConf. What is MvcConf? MvcConf is a online conference where you can learn about real experiences creating MVC applications as well about what the future holds for creating asp.net apps based on MVC. We have scheduled community members to present on intro and advanced topics using MVC2 and we have some Microsoft product members who will talk about some of the new stuff coming out soon. Why should I care? If you’re interested in...
The MVC Turbine bits are now compiled against ASP.NET MVC 2 RC2 which runs on .NET 3.5 SP1 and Visual Studio 2008. You can get the bits by going to the CodePlex site. Please note that this the same feature release as MVC Turbine v2.0 RTM. The following is compiled and upgraded to work with .NET3.5 in VS2008: VS2008 Templates Runtime binaries Feature Samples Nerd Dinner Sample Okonau Sample Again, as I mentioned before, the main...
The MVC Turbine bits are now compiled against ASP.NET MVC 2 RC which runs on .NET 3.5 SP1 and Visual Studio 2008. You can get the bits by going to the CodePlex site. Please note that this the same feature release as MVC Turbine v2.0 RTM. The following is compiled and upgraded to work with .NET3.5 in VS2008: Runtime binaries Feature Samples Nerd Dinner Sample Okonau Sample Again, as I mentioned before, the main development will take place onVS2010 and...
A few days ago, I blogged a response to Rob Conery’s question entitled, Why MVC Turbine? Since then, Rob has been so kind to send me an email saying Thanks for the blog post, but…Dude, I still don’t get it. Help me reach the ‘aha!’ moment. As I told Rob, after I re-reading the blog post and the tone it had, I whole heartedly agree with him: The post did not answer his question. So Rob… My apologies, mea culpa, lo siento. I really appreciate your feedback and your assistance with developing a valid message for MVC Turbine...
I would like to thank Rob Conery for posing the question:
As the project’s portal states:
MVC Turbine is a plugin for ASP.NET MVC that has IoC baked in and auto-wires controllers, binders, view engines, http modules, etc. that reside within your application. Thus you worry more about what your application should do, rather than how it should do it.
Let’s see how this plays out for your application…
Plain Old MVC Application
If you create an MVC application by using File –> New, you get the full power of the MVC framework but your application is not yet setup to take full advantage...
The MVC Turbine bits are now compiled against ASP.NET MVC 2 Preview 2 Beta and Visual Studio 2010 and .NET Framework 4 Beta 2. You can get the bits by going to the CodePlex site.
Please note that this the same feature release as MVC Turbine v2.0 RTM. The following is compiled and upgraded to work with .NET4 in VS2010:
Runtime binaries
Feature Samples
Nerd Dinner Sample
Okonau Sample
From here on out, the main development will take place onVS2010 and MVC2 as I get things setup for v3...
I’ve blogged in the past about the extensible component model for MVC Turbine, this post is a continuation on that concept, except with views as embedded resources. Virtual Path Provider: The Secret Sauce Not sure how many of you know this, but a VirtualPathProvider (VPP) is a way to provide the ASP.NET runtime with resources from a virtual file system. In other words, you can provide files such ash web forms, scripts or anything else that’s served to the ASP.NET run time to process. To learn how to this more in detail, check...
Well, here’s the official blog post for the tweet I did last night: I figured, I should tweet the release and have people get an early access to it, then blog the same (plus more) information here. :) What is MVC Turbine? I’ve been asked many times for the 140 char description of Turbine, so here it is for the record: MVC Turbine is a plug-in for ASP.NET MVC that has IoC baked in and auto-wires controllers, binders, view engines, http modules, etc. that reside within in your application. Thus...
The whole purpose of MVC Turbine is to make the development of an MVC application easy and streamlined. This can be done through the use of a new feature of V2 called “Blades”. Essentially, a Blade is nothing more than a component (or slice) of a Turbine application since it provides a layer of abstraction to a concern of the application. For example, a Turbine MVC application ships with three core blades out of the box: MvcBlade – Performs all ASP.NET MVC related work, i.e., setup of Controller factories, View Engines, etc. ...
That’s right, get the v2 RC release while it’s hot! Version 2 of MVC Turbine, is a complete re-write of the plug-in that allows these features: New runtime framework that allows extensibility Blades (components) that are auto-registered and loaded at runtime. Introduced the Core Blades to setup the basic runtime of an MVC application: MvcBlade -- wiring for MVC related components (Controllers, View Engines, etc). ...
This past weekend while working on my talk for the Heartland Developer's Conference, I toyed with the idea of showing multiple ASP.NET MVC View Engines (VE) ‘co-existing’ within the same application. Why do that? Well, I wanted to show how using open source tools like MVC Turbine, MVC Contrib and Spark within your application, you can assemble some pretty cool stuff. And most important, it made for a really cool demo. :) Please note that this concept is not anything new. Phil has blogged about a similar topic in the past. However, this approach extends what Phil...
For those of you that follow me on twitter, you’ve noticed that I’ve been tweeting a lot about a new side project called MVC Turbine.
MVC Turbine is a simple way to provide flow and plumbing within ASP.NET MVC applications, or as its tag line suggest, it converts flow into useful work. A few weeks ago, I had a quick poll on twitter that asked:
As you can see, from the results, 50% of the responses where “Yes, always!” which means that you’re wanting more out of your MVC application.
Please, don’t get this the wrong way: I’m not saying that Phil...
My original title for this blog post was going to be HttpIoC - Find Out What It Means To Me, as Steven Smith suggested via twitter, but I figured it wasn’t going to be as searchable. :) So I went with the boring title. Sorry Steven! A while back, Tuna Toksoz and I were having a conversation on twitter about how he does registration of any modules his application will need/use. After playing around with the concept for a little, I was able to get something that will work for our any ASP.NET application with minimal effort. ...
I know I’ve been quiet for the past couple of weeks, so hopefully this post makes up for some of the silence. :)
A while back, I voiced my opinion on how actions within should be small and to the point. After this post, I started to think on how we can make ASP.NET MVC do more for us based on a convention. Take the following code as example:
1: [HandleError]
2: public class HomeController : Controller
3: {
4: public ActionResult Index()
5: ...
Not sure how many of you out there use a URL redirection service such as tinyurl, is.gd or snurl. They come very handy when you’re trying to take a long url like: http://maps.google.com/maps?f=q&source=s_q&hl=en&geocode=&q=des+moines+iowa&sll=37.0625,-95.677068&sspn=44.879582,87.714844&ie=UTF8&z=12&iwloc=A Into something that's a bit more manageable: http://tinyurl.com/nzqn5f How can you do this within your ASP.NET application? Well, check out miniurl on CodePlex. :) What is miniurl? The miniurl MVC application is a very simple example on how to use MVC and URL Routing to create a URL Redirection service. That means you’re...
Recently, fellow MVP and ASPInsider, Jeffrey Palermo blogged a pretty interesting idea called ActionController. Within his post, he states: My interest in this space is purely practical. I really don’t care how patterns are published. I don’t care about “being true” to the MVC pattern or any other pattern. I’m more interested in being effective with web applications on .Net. After have experience with MvcContrib, CodeCampServer, and a much larger ASP.NET MVC implementation (200+ screens), I have come to see how controllers end up searching for an identity. What is a ProductController anyway? That’s just about...
Now, I know a few days late on this blog post. Granted, at the time, I was doing a webcast on ti! :) Any way, be assured that I’ve already congratulated Phil and team on getting ASP.NET MVC released! To find out more about the intricate details, check out Phil’s post on it (remember, he’s the PM).
Now, during the time I’ve been talking with people about the MVC bits, I’m still surprised that they ask these questions (just to name a few):
Are Web Forms going away?
How do I convert my Web Forms...
In my previous post, I talk about how the problem with sessions and NHibernate (NH) can get pretty tricky to deal with; specially within ASP.NET web applications. This post shows how you can use a pretty nice feature within NH that simplifies this problem. A Solution NH supports a mechanism of providing a ‘current’ session via the ISessionFactory.GetCurrentSession method by using a concept called Contextual Sessions. This is what the NH documentation says about the feature: Most applications using NHibernate need some form of "contextual" sessions, where a given session is in...
As with any piece of software development, there is more than a million ways to skin a cat. Working with NHibernate in a multi-threaded environment is no different. :) To help with the illustration of the interaction of NHibernate and ASP.NET, I’ve created a sample application out on Google code. Please feel free to check it out and run it locally. The only requirement for the sample is to have a local install of SQL Server Express. The Problem Those of you using NHibernate in a multi-threaded environment (say ASP.NET) have probably written code to maintains an ISession...
As some of you already know, I blogged about my reaction to the Oxite MVC sample from the MIX Online Labs. Also, I started blogging some of my ideas for refactoring the source to make it a bit more streamlined. More importantly, I want use these posts as a way to share my ideas on how to use the new ASP.NET MVC framework. Not that I am “the source” for the right implementation, but I do want to provide another insight to the problem. Anywho…
Instead of keeping my source in zip files and bits and pieces, I created a fork...
Not sure how many of you read my first post on my thoughts on Oxite. Well, here's my offering on trying to make things a little closer to MVC by offering my perspective on the code. Please note that I want to keep these simple refactorings as conversational as possible, so if you see something that offends or upsets you with my interpretation/implementation, PLEASE COMMENT. :) Let's examine the SignIn action under the AccountController: [AcceptVerbs(HttpVerbs.Post)]
public ActionResult SignIn(string username, string password, bool rememberMe, string returnUrl)
{
PageTitle.AdditionalPageTitleSegments = new string[] { "Sign In" };
...
This past weekend some discussion sprung up around a new blog engine called Oxite. This blog engine is put out by the MIX Online team and it's used to power their blog. Now, I'm not going to rehash some of the statements made by other members of the community since there is no point in beating a dead horse. However, if you want check them out I suggest that first see Rob Conery's thoughts on Oxite as well as Scott Koon with TLC for Oxite post. The thing I do want to point out is that the team...
Instead of having our regularly scheduled IADNUG meeting, we're having Mike Benkovich and Kent Tegels do an MSDN Unleashed Event at DMACC West! Here's the info on it:
Join us at our MSDN Unleashed events for the latest tips, tools and technical information you need to build powerful applications and engaging user experiences. We'll show you how SQL Server 2008 delivers new development capabilities, including support for Spatial Data types, a fresh storage mechanism and more. You'll also learn how to leverage the Silverlight platform to build next generation applications for consumers and business. Don't miss these free, live sessions near...
Not sure how many of you know about this upcoming event (tomorrow) 11/06/2008! If you're going to be around the area, please come check it out!! ArcReady Professional Patterns on the Job You're smart. You deliver. What more could your company want from you? Why don't they come to you for the big technical decisions? Why won't they listen to your proposals? It seems like everyone has an agenda and they're doing everything they can to kill your great ideas. Join us this quarter as we focus on the soft skills that architects need to master....
That's right! If you're free this Saturday and get to get some free content and a great way to interact with the developer community in Central and Eastern Iowa, come check out the Iowa Code Camp at the DMACC West Campus! Here's more info: Iowa .NET and CRIneta.org are hosting the second code camp to Iowa on November 8, 2008 at DMACC West inWest Des Moines. You might be asking, what's a code camp? Well, here are some of the basic ideas: Community driven High quality ...
Can't make it to the Professional Developer's Conference (PDC) in LA? Well, we've started a new group called NotAtPDC! Chris Love is the genious behind this movement! Here's some info from him:
We are going to have live meeting sessions, links to Blogs, Podcasts and any other .NET related content featured this week. Right now we are trying to get things organized better. We will have a site live in the morning. If you want to schedule a session or something DM http://twitter.com/NotAtPDC.
Chris is in the process on getting a website up to aggregate some of the content that the...
For those of you that attended one or both at of my talks at VSLive Las Vegas or HDC Omaha 2008, I just want to say, thank you! And for the VSLive folks, I do apologize for cutting my open source tools talk short by 10 minutes. I had to jet out of the Mirage so I can make the plane back to the Midwest!
As promised, I upgraded my code to run with Beta 1 of the ASP.NET MVC Framework! So, if you want to get the latest bits go to: http://jglozano.googlecode.com/svn/trunk/presentations
You will find my slide deck as well as...
Yeah, I know...been really, really quiet here. Reason? Busy with work, work and life. Going to try to get back into the "frequent blogging" mood, I promise!! Any way, for those of you that attended my talks at VSLive NY! and HDC Minneapolis, I just want to say, "Thanks!!" The code as been updated slightly to help clarify some of the interactions between the different projects (and logic). So, go check out the latest bits at http://jglozano.googlecode.com/svn/trunk/ Please note that the PPT deck is also in that location for you guys to get. Again, thanks for coming to...
Last week I attended the ASPInsiders Summit at the MS main campus in Redmond. I must say that by Wednesday afternoon my head was ready to explode with the amount of content that I, along with another Insiders, parsed through!! However, it was a great opportunity to provide feedback the teams that make up the ASP.NET Team. Over all, it was a great way to experience the process in which MS takes customers feedback and prioritizes features for their products. Sure, we all build products, but I must say that we don't do it at the scale that Microsoft...
Well, I was tagged by Jeff earlier to talk about how I got started in software. So, here's my stab at answering these questions... How old were you when you started programming? I was either 11/12 years old. I got into it a little late since, well, I never had access to a computer when I was living in Mexico. I knew what they were and I was intrigued by them, but to ask my parents to get me one was completely a ludicrous idea since they were 10x more expensive in Mexico. What was your first...
A couple of weeks back, I recorded a podcast with, our community MS Developer Evangelist, Jeff Brand for his Spaghetti Code series. I was informed by Jeff, today that he finally posted it! I had a heck of a time recording this podcast with Jeff, the hour just flew by! If yo have the time, download the podcast and check it out!
Links:
Direct Download - click here
Subscribe - click here
iTunes - click here
So, here's a little shameless self plug for a book that Bryan Sampica and I are writing...also, I'm using this blog post as a warm up for my writing this evening! Yes, like I just mentioned, I'm co-authoring a book for Wrox with Bryan entitled, ASP.NET 3.5 Programmer's Reference. The purpose of the book is to get you the novice/beginner introduced to the features of ASP.NET 3.5, and hopefully teach you a few tricks things along the way. The book is due out in November, so that means that my summer (evenings) is pretty much booked up. I must...
Well, I had a great time meeting old friends and making new ones at this year's summit. There were so many things going on and so many people to see and talk to, that it's next to impossible to consume everything at once! So, to keep things simple, here are of the highlights per day: Sunday Although, I was not there until late (way late), it was a lot fun hanging around the Westin's lobby and talk about how a chicken takes a dookie. Yeah, that's right. Keith Elder had the great intentions of recording a podcast that...
For those of you that attended my Silverlight presentation yesterday at the Twin Cities Code Camp, I just want to say, "Thanks for coming! I hope you enjoyed it!" As promised, you can download the presentation slides and source code from Google code using TortoiseSVN. Again, thanks for coming to my presentation and thanks to Jason Bock for allowing me to come up and be part of a great event!
That's right! We're having another ASP.NET Expert Live Chat on Thursday, May 1st, 2008 at 6 PM PST. Here's more info on the event: Get your tough development questions answered by Microsoft MVPs, Regional Directors, and other industry experts. Community experts will be on hand to answer your .NET- and Visual Studio-related questions. No off topic questions please. Please note that questions regarding upcoming products and future product specs might not be answered. Would you like to participate as an expert? Contact Ryan Olshan at Ryan[dot]Olshan[at]strongtypes[dot]com. MSDN Online Chats - http://msdn2.microsoft.com/en-us/chats/default.aspx Chat Room...
That's right, we're having another IADNUG meeting this evening with Chris Sutton from the CR Ineta user group talking about ASP.NE MVC! If you're free this evening, come check us out! Intro to the ASP.NET MVC Framework Chris Sutton, CRIneta.org The ASP.Net MVC Framework is a new project that the ASP.Net team is working on to give developers an alternate and potentially better way to do web development in the ASP.Net environment. Model View Controller(MVC) is a well known presentation pattern that has been used in many environments with a variety of different...
Long blog title, I know. Yesterday, I ran into a issue/bug that I've never encountered during my years of being an ASP.NET developer. The error message is below:
The interesting thing about this error, is that it's occurred so often that there's a KB article (KB896181) for it that tells you how to fix it. Fortunately for me, I didn't have to apply the fix in the KB. I just had to change some of my security settings to give the account hosting the website the right permissions.
Here's how the errors occurs:
So you have an ASP.NET page that calls a...
As you recall, we cancelled last month's UG meeting due to weather. For this month, we're having Bryan Sampica, an ASP.NET MVP from Cedar Falls, come talk to us about WPF! The info for the meeting is below. Hope to see you there! Utilizing WPF as a Business Application Platform Bryan Sampica, ASI Computer Systems With the emergence of WPF and XAML as a UI framework, we've seen lots of demo's and examples on animating birds, and playing video clips. In this session we'll examine the business...
That's right, there will be a HEROES happen {here} event in Des Moines on 4/24! Here's some info on the event: The Des Moines event will celebrate the launch of Windows Server 2008, Visual Studio 2008 and SQL Server 2008. The event will bring together IT Pros and Developers to get an in-depth, up-close look at the new products and will give attendees an opportunity to meet with our Partners as well as members of the development teams who created the cutting-edge technologies. And all attendees will get a promotional pack containing all three new products....
I'm not sure how many of you out there have heard of Video.Show, a ready to run solution for hosting video on the web. It's a great video sharing web site blue print built by the guys at Vertigo. I've been looking at this app since it's RC (or beta) release and it's pretty sweet. The display and interaction of HD video is pretty awesome!
Jon Galloway, one (if not the) developers, of the application has a great write up of the features of this application out on his blog. If you want more detail info on the features of...
Earlier today, Scott provided us with, what I think is, a pinnacle post on getting people to understand the Zen of the new ASP.NET MVC framework. Scott says, This is a not just a different tune, but a whole different band playing all new music. Not everyone will like the music, and that's why the world has more than one band. This is a Good Thing. I like to think of ASP.NET MVC as the raw, acoustic version of the more heavily produced and multi-layered ASP.NET WebForms we use today. ...
That's right, remember a while back when I blogged about FlickrNSurface? Well, since then, I've been showing people the demo code and some of them have been wanting to know how they can get their hands on it for their own website/projects. At that point, I thought to myself, what is the best way to share the code and any changes that I make to it? That's when I realized I should make this into an open-source project! What better way to share ideas and implementations with community than by allowing them to contribute directly to it! Again, I've...
Wow! I stumbled into this "blast from the past" the other day, I just had to share it with you. Here's the background story...
A couple of years ago, I encountered some source for a C# compiler written in pure C# by Mike Stall. I downloaded the source and started messing around with it seeing how it worked. At around the same time, I had a conversation with Nick about how English is the dominant language for technology and that most (if not all) programming languages are written in English. Granted, this is a good thing since it establishes a convention...
That's right! The University of Iowa:ITS, CRIneta and Iowa .NET user groups are joining forces to bring the first code camp to Iowa on 5/3/2008 at the University of Iowa Conference Center in Iowa City, IA!! You might be asking, what is a code camp? Well, here are some of the basic ideas: Its for and by developers Free (for attendees) All about code, not PowerPoint presentations What you present on should be available to share with people who attend Never during...
Thanks to Mitchel Sellers from IowaComputerGurus for presenting to our user group last night! We had a pretty great turn out and some really nice swag to give away! For those of you that were there, thanks for your support! As I mentioned during the meeting, we're going to try something a little different for distributing demo materials (code, ppts, etc.). I've setup a iadnug, a Google Code open source project, to host our code. (yeah, clever name I know...) So for those of you that have SVN or TortoiseSVN installed, you can check out the code. If you...
Running a user group is not easy. It takes quite a bit of coordination to get sponsorships, line up the venue, line up speakers, find swag, schedule the logistics and the most important, order pizza...just to name a few. At times we've been contacted by our members asking when the website will be updated with the meeting info or when will Levi send out the email blast reminder. Well, I'm sorry to say, but we get busy with our jobs/families and we end up dropping the ball at times. Wouldn't it be nice we had a tool to...
Well, it's a new year which means new exciting challenges both in my personal and professional life. I wanted to use this post so I can share with you my (three) readers, what my plans are for the content for blog for the upcoming year.
Theme for 2008: Simplicity
That's right, simplicity. For those of you that know me personally or have worked with me, are now saying, "Simplicity, WTF?!? You?" Just kidding...well, not about the simplicity theme. ;-) Over the past year, I've learned that the "best" approach to a problem does not mean that it has to...
A couple of weeks ago, I spent a good part of a day troubleshooting an issue with creating persistent cookies from ASP.NET 2.0 and how they're handled by IE7. Fortunately for us (specifically me), this occurred in our test environment so only developers in the project were affected by it. Background Info Our application is using a custom authentication cookies to help reduce the request overhead to our database (pretty common scenario). This can be done by implementing your own IHttpModule and within it's Init method, register to the HttpApplication's AuthenticateRequest Event. My good friend Heath Stewart wrote...
Well, we can finally get our hands on the ASP.NET MVC bits! They're being released as part of the ASP.NET 3.5 Extensions CTP. This release includes: ASP.NET AJAX Improvements: New ASP.NET AJAX features in the ASP.NET 3.5 Extensions release include better browser history support (back/forward button integration, and server-side history management support), improved AJAX content linking support with permalinks, and additional JavaScript library improvements. ASP.NET MVC: This model view controller (MVC) framework for ASP.NET provides a structured model that enables a clear separation of concerns within web applications, and makes...
Well, it's been over a month since the I did my Silverlight presentation at the IADNUG November meeting and I've realized that I've forgotten to post my demo code. Well, sorry about that. For those of you that are interested, you can download it from the link below. Sorry! Files: silverlight_presentation.zip (~20 MB - it include videos).
That's right, PDC has been rescheduled to Oct. 27-30 2008 in Los Angeles, California. Here's the info from their site: PDC 2008 October 27–30, 2008 Pre-conference October 26, 2008 Los Angeles, California OK, OK. We are delighted to announce the date and location of the next Microsoft Professional Developers Conference (PDC): October 27–30, 2008 at the Los Angeles Convention Center. PDC is the definitive Microsoft event for software developers and architects focused on the future of the Microsoft platform. Mark your...
Well, as I previously blogged about it, the details are done for our demo contest during the VS2008 InstallFest in Des Moines are finalized. Here they are: Visual Studio 2008 Demo Contest! Want to show off your VS2008 or .NET 3.5 skills? If you answered, yes, this is your opportunity to strut your stuff! During the Visual Studio 2008 InstallFest & Holiday Party on December 12, 2007 at the DMACC West Campus, we'll be having a demo contest in the auditorium. Here's the scoop ... What do I need to...
That's right, the InstallFest event in Des Moines has SOLD OUT! As of today, there are 13 people on the waiting list. For all of you that signed up, thanks! It is because of you that this event will be a success! Also, if you're interested, you should sign up to do a demo during the event! Those of you on the waiting list, you will be notified of an open spot if someone on the main list cancels. So if you're on the main list but can't make it, please cancel so somebody on the waiting list can...
Alright, earlier this evening I blogged about the Visual Studio 2008 InstallFest that our Des Moines .NET UG is hosting on December 12th, 2007. If you're interested in coming, please sign up!! If you would like to ensure a copy of VS2008, it is REALLY IMPORTANT that you sign up at
http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032360733&Culture=en-US
Now the contest info! Have you been playing around with VS2008 beta1/beta2/RC1 or .NET 3.5 for a while? If you answered yes, then I recommend you strut your stuff by coming up with a 10-15 minute presentation you can share with the group during the InstallFest!
What do I need to...
Everyone in the Des Moines, sign up for this great event our UG is hosting in conjunction with Microsoft! We're also planning on having a presentation contest to see who can show off the best features VS2008. More to come on this, so stay tuned!!
Visual Studio InstallFest - Des Moines
Event Registration: http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032360733...
ATTENTION DEVELOPERS! Are you ready to be one of the first to get their hands on Visual Studio 2008 when it RTMs? Join Microsoft and the Iowa DNUG for a Visual Studio 2008 InstallFest and Holiday Party on December 12th, 2007 at the Des Moines Area Community College!...
That's right, you can now download the Silverlight 1.1 Tools Alpha for Visual Studio 2008 RTM. Get it while it's hot!! One thing to notice is that this release does not work with the Express Editions.
On Wednesday, November 7th, I will be presenting about Silverlight to our user group in Des Moines. Here's the info:
Abstract:
This is an overview presentation of the feature set that both Silverlight v1.0 and v1.1 have to offer to developers.
We will also cover some of the current tools available for both designers and developers to create Silverlight applications.
What is Silverlight?
Microsoft® Silverlight™ is a cross-browser, cross-platform plug-in for delivering the next generation of .NET based media experiences and rich interactive applications for the Web. Silverlight offers a flexible programming model that supports AJAX, VB, C#,...
I would like to apologize for those who wanted to attend my presentation on Software Factories at Tulsa TechFest, but unfortunately due to technical difficulties, I missed my stand-by flight into Tulsa. When I spoke with the nice people at American Airlines they couldn't guarantee me making into Tulsa into sometime late this evening. However, for those of you wanting my slides, you can download them from the link at the bottom of this post. Also, as I mentioned on my HDC post, I will be doing a webcast series on the Software Factories on Code To Live.
Yesterday, Microsoft announced the opening of Popfly beta to public use. One of the first things that I thought about Popfly is how are other people out there (both technical and non-technical) are going to use it. I've been looking at Yahoo! Pipes for a while and thought it was a pretty cool way to gather information. To me the one thing it lacked was the presentation of the information (what good is the info if I can't get to it effectively?). So last night I decided to do a little video that compares both Popfly and Yahoo! Pipes trying to "solve" the same...
First, to all of you that attended my HDC presentation on Software Factories, THANK YOU! I hope that as promised, the "Ah, Ha!" factor was high. Also, I would like to apologize for the issues I ran into with the VPC and the demos. I had tried the demo before with only two VS2005 instances running and had no issues with it...Apparently, four instances of VS2005 running concurrently is too much for VPC. Right after my presentation, I confirmed with Steve Loethen, a co-host of Code To Live, about coming up with the webcast series on Software Factories. I still to work out...
Today Microsoft is announcing that Popfly will be going into public beta. So for those you that had requested to sign up for the beta, no worries! You can automatically login without a hassle! (Pretty sweet, huh?) And for those of you that haven't signed up or don't know anything about it, just to go http://popfly.com and login with Passport.
Here's a brief description of what Popfly:
It's a Silverlight 1.0 application to create a really slick UI that allows you to use drag-and-drop tools to build some cool things. It also includes support for Vista Sidebar and Live Gadgets. For those...
That's right, you heard it! Scott Guthrie and Scott Hanselman have both talked about it (Scott even has a podcast on it). Microsoft will release the source code & debug symbols for debugging purposes for the following .NET libraries under the Microsoft Reference License (MS-RL):
Base Class Libraries
ASP.NET
Windows Forms
ADO.NET
XML
WPF
They plan on adding more libraries in the months to come, such as WCF, Workflow, LINQ.
I'm not sure about you, but this IS HUGE! Way to go, MS! Taking...
Dave Bost, DE for IL, IN, WI and former golfing partner, invited me through Facebook to the SilverlightDevCamp in Chicago, IL. For those of you in the area or interested in attending this FR-EE event, here's the info from Dave's blog post:
On Friday, September 28th and Saturday, September 29th, Clarity Consulting will host a Silverlight DevCamp at their offices in the Loop. This is a great opportunity for people interested in Silverlight to come together and hack out an application or two.
DevCamps are similar to BarCamps in that it’s a casual gathering of like minded individuals. BarCamps tend...
That's right, John Lam has his team have put the latest release of IronRuby out on RubyForge (this took place on 8/31/07). Fellow rubydoes.net blogger, Aaron Junod, has a great post on getting IronRuby from RubyForge with TortoiseSVN. I'm personally looking forward to this evening's coding "festivities" as I try to integrate some code into the project. Good times!
Just a reminder about the live ASP.NET "ask an expert" chat this Thursday, the 23rd of August at 7 PM CDT (5 PM PDT). Come join the fun. Here are the links. Main announcement - http://community.strongcoders.com/blogs/ryan/archive/2007/07/24/august-23-2007-ask-an-expert-live-chat.aspx Prize announcement - http://community.strongcoders.com/blogs/ryan/archive/2007/07/26/august-23-2007-ask-an-expert-live-chat-prizes.aspx Chat experts - http://community.strongcoders.com/blogs/ryan/archive/2007/07/30/august-23-2007-ask-an-expert-live-chat-experts.aspx
A while back, I blogged some examples on how you can use .NET types within your IronRuby (IRuby) applications. So after playing around with it a bit, I wanted to do something pretty basic, inheritance. Here's what I tried:# Basic inheritance from a dynamic type
# to a static type.
class MyForm < System::Windows::Forms::Form
end
When you try running this through the interactive console, you get this error:
System.InvalidOperationException: superclass must be a Class (DynamicType given)
Nice and descriptive, huh? Well, essentially this means that your superclass needs to be a type that IRuby can understand, that is a class-type of DynamicType. While looking around at the source...
That's right, if you have a question that needs answering come check out our "Ask An Expert" live chat on August 23rd, 2007 at 5 PM PDT. Please note that this chat is not being hosted by Microsoft and as such questions regarding upcoming products and future product specs may not be answered. To see the main announcement, check out Ryan's blog for the info. Also there seems to be a prize give away for this chat! How cool?! Here's the list of experts involved in the chat. It's quite the line up! Calendar: http://msdn2.microsoft.com/en-us/chats/default.aspx ICS: http://www.microsoft.com/communities/chats/vcs/07_0823_msdn_aspnet.ics Hope to see...
Anybody? Let's start this conversation and see where it goes? David, I'm really interested on what you have to say about this!
Brian Harry has a great post with all the links you will need to download the latest bits for VS2K8 beta2. Also, in this related post he lists some of the nice features they've added to TFS 2008. One interesting thing about the "new" TFS options is the VSTS Web Access (aka TeamPlain) that they're planning to release here shortly (Yes, it works both for TFS 2005 & 2008).
Looks like Nick has also posted his findings on IronRuby ... what can I say, it was just released today!! Anyway...I was playing around with IronRuby earlier this evening trying to see how it handled generics...well, currently it doesn't (remember, the code is alpha...but pretty sweet!). I created a sample C# class (cleverly) called, MyClass:using System;
namespace CSharpClass
{
public class MyClass
{
// Currently this event type cannot be called from IronRuby.
public EventHandler<CustomArgs> Custom;
...
That's right, John Lam and ScottGu have blogged about it! So go get it while it's hot!!! THIS IS SOO FREAKIN' COOL!!!
Ok, so I'm really, really, really stupid! I like other people out there suffer from the always popular I-have-too-many-passwords (IH2MP) syndrome. Earlier this past weekend, I was trying to administer my blog and managed to forget the editor password so I could access the website. After several failed attempts, I searched the application folders of Windows Live Writer to see where my password was kept. It appears that by default, Live Writer stores its configuration information under the registry. To retrieve the configuration information correctly, you need to use their API. Here's a sample on how you can accomplish this:using...
A couple of weeks ago, I blogged about David Anson's surface-like Silverlight application that functions like Microsoft Surface. Well, earlier this week, I created what I call FlickrNSurface (pronounced: "flickering surface"). Essentially, it's a mashup of flickr and Anson's Silverlight application. To retrieve the images from flickr, I used FlickrNet and an interesting post back mechanism. I will have more posts talking about the design of the application and how you can do the same thing with your Silverlight applications. For now, take a look at it and let me know what you think! You can download the code by going here:...
I don't know about you but I think we had a great turn out for last night IADNUG meeting on Regular Expressions. Jon von Gillern did an excellent job tackling the topic. I particularly liked the demo presentation-style he used to demonstrate the harder parts of the presentation. Thanks Jon for taking the time to step up in front of the group and share your finds. That's what we're all about! Sharing and community! Also, thank you to all of you that signed up for the event through ClickToAttend. Like we mentioned during the meeting, we're in the process of trying...
I submitted the title and abstract for my HDC presentation. Here's the info: The Taming Of the Oracle: A .NET Developer's Guide to Working With Oracle In this session you will learn how you can use the Oracle Data Provider for .NET, Oracle Providers for ASP.NET, and Visual Studio tools to get the most out of your experience with Oracle. If you're a .NET developer that needs to work with Oracle as your primary database, this is a session that will getyou up and running in time for your project. Is there anything else you guys want to find...
Good To Great - Jim Collins I've been meaning to read this book for quite sometime now, so why not now? I've had lots of friends tell me that it's good and that I should read it. Any of my three readers out there, what do you think of this book? The Search: How Google and Its Rivals Rewrote the Rules of Business and Transformed Our Culture - John Battelle This seemed like a pretty good read from the reviews and back cover synopsis. Once again, readers have you read/heard anything on this book? All in the...
While playing around with Silverlight during lunch, I ran into this plugin for Windows Live Writer (WLW) called JetFuel. It takes the creation of Silverlight applications to the next level. It's a nice little package of the steps outlined in the SDK into a wizard.
Well, it looks like Nick and Jeff have beat me to the punch of announcing ReSharper 3.0. For you VB.NET-ers our there, GET THIS TOOL! OMG, it's the sweetest thing that ever happened to VB since .NET!!
That's right, I received word from Phil Wolfe earlier this week that I've been accepted to be a speaker (this is my third year!) for the Heartland Developer Conference in Omaha, NE on Oct. 18-19th. If you check out the speakers page, you won't see my info there but I'm sure it's coming. For those of you that like my presentations, here's a list of topics I've been kicking around: .NET Tooling for Oracle - There's some applications out there that need talk with Oracle. How do I make things as easily as possible to get my work done?...
Alright, how many of you when unit testing your entities and Data Transfer Objects (DTOs), provide an interface for them? For example, if you have the Person entity, do you have a corresponding IPerson interface? Or do you leave the type as is? I'm just curious to see what people are doing out there while doing TDD/Unit Testing. Please use the comment section to post your responses! Thanks!
I just ran into this pretty nice tool called eScrum for end-to-end Scrum management that runs on top Team Foundation Server (TFS). Pretty nice for those of you out there doing (or trying to do) Scrum and have adopted TFS. Here's the info from the download page: eScrum is a Web-based, end-to-end project management tool for Scrum built on the Microsoft Visual Studio Team Foundation Server platform. It provides multiple ways to interact with your Scrum project: eScrum Web-based UI, Team Explorer, and Excel or Project, via Team Foundation Office Integration. In addition, it provides a single place for...
I'm not sure how many of you have heard of the new Microsoft Surface product (if you haven't, are you living under a rock?!?! ;-) ), but in one of the demo videos, they show how you can take images and resize/rotate them by using your fingertips. Well, the same thing can be done using Silverlight through a web application. Delay has posted a great sample Silverlight application that does the same thing! It's pretty awesome app that shows the power of Silverlight! If you have the time, check out the live demo or get its source code (you'll need Orcas...
Yesterday, Levi sent me a link to this add-in for Reflector that disassembles a Silverlight applications and shows your the JavaScript to run it. I must say, it's a pretty nice little add-in (that includes its source) for Reflector. Below is a picture of the disassembled Silverlight Airlines demo given at MIX '07:
Check it out if you have the time, it's pretty sweet!
From the looks of it (via Phil Haack), CodePlex will be supporting SVN (both svn.exe and TortoiseSVN) for all of their projects. Here's the converstaion Jim Newkirk and Phil had: Haacked wrote Mon at 8:24 PM So I can download svn.exe from http://subversion.tigris.org/ and manage my CodePlex source code repository, yes? So are you rolling out Subversion? Or a Subversion facade into TFS? Anything you can reveal? :) jimnewkirk wrote Mon at 7:41 PM To clarify: it's our intention to support the functionality of the command-line Subversion client as well as TortoiseSVN. jimnewkirk wrote Mon at 7:40 PM Phil,...
I would like to thank Denny, our breadth AE, for doing a great job at our first ArcReady event last Friday in Des Moines. During the event, Denny mentioned that Des Moines will be a regular stop on the quaterly ArcReady visits. If you would like to attend, please post your email on this post (through comments) and I'll make sure that Denny gets you added to the list. Also, after the event, we held our first ArcCouncil event. ArcCouncil is an open forum were we discuss various topics dealing with software development. For example, the meeting started by...
I'm not sure how many of you out there are aware of the ASP.NET Futures section of the ASP.NET website. Here's the description of the section from the website: ...contains an early developer preview of features providing a wide range of new functionality for both ASP.NET and Silverlight. The Futures release includes early experimental versions of features currently being considered for future versions of ASP.NET and the .NET Framework. The May 2007 Release contains the following components: ASP.NET AJAX Futures Silverlight Controls for ASP.NET Dynamic Data Controls for ASP.NET ASP.NET Application Services Dynamic Languages Support for ASP.NET (sans IronRuby,...
Ok, so I've just posted my current non-technical reading list so now here's my techinical currently-reading list:
Programming Ruby: The Pragmatic Programmers' Guide, Second Edition - Dave Thomas, Chad Fowler and Andy Hunt
I've been playing around with Ruby for quite some time now but I need a good reference book for it. What other book to read than main source of Ruby knowledge out there! After the announcement of the DLR (which I've downloaded already), I can't wait to do more of Ruby natively on .NET!
Programming WCF Services - Juval Lowy
Another great master work by Juval. If you're currently doing WCF...
Alright, so for our applications we have a couple of forms that use the DataGridView control to display tabular data (kinda of a common scenario for many business applications). The data is returned from our services as an IList<T> in which we can just then bind directly to the grid by using the grid's DataSource property. Pretty easy task...unless when it comes to sorting. From the looks of it, Ayende has the similar problem that he's trying to overcome... At that point, our IList<T> doesn't cut it. You could say, well, use an BindlingList<T> and override the ApplySortCore...
I just bumped into these pictures on Flickr of the MVP Summit. Looks like Jeffrey Palermo and Noah Coad had a ton of them to put on this Flickr group! If we want to see the blast we all had, go check them out!
I'm fortunate enough to co-moderate this session along with Chris Pels, Chris Wallace, Greg Low and Bob Coppedge! The "how-to start|run|keep-going" user group topic was submitted by all of us as a potential BOF session so we all decided to team up and get a bigger crowd going. Also, seems like Jeffrey Palermo and James Kovacs have theirs selected as well! I had the pleasure of hanging out with these guys during the MVP Summit and all had a blast! Oh yeah, from the sounds of it, there will be another Party With Palermo TechEd 2007 in the works. If...
Denny Boynton, our regional Architect Evangelist, has just blogged information on how you can get free MS eLearning passes valued at $159. If you have the time, and don't want to miss out on this opportunity, go check out his post.
Wow, it appears that "WPF/E" has a better RTM name than the other W*F parts. That's right, "WPF/E" is now called Silverlight (via Soma's blog). Also, don't let the name confuse you, if you have already the "WPF/E" Feb CTP, you already have Silverlight installed. They've just renamed the install packages.
That's right, we're at it again! We're signed up to answer your ASP.NET related questions for two hours on April 19th at 11:30 PST (1:30 CST).
The chat format is as follows: You post your questions and the panel of experts answers them. We're using the Microsoft Chat Software (MVP’s only, sorry!) to grab questions and answer them. The first chat did not have this software working well and was kind of chaotic (MSN Messenger & Conference Call). The software is now working, so it should be a very smooth flow of questions and answers. We're still doing the conference call so that when...
That's right! ScottGu has blogged about a new hot fix (Microsoft KB #934839). I've ran into this problem in the past (and blogged about it here). Scott posted a quick fix you can use without installing the patch: <configuration> <system.web> <compilation debug="false" batch="false"></compilation> </system.web></configuration> I'm glad to see an official fix being released after a year since the issue emerged.
I've been meaning to blog about this for a while, but for some reason I keep forgetting (sorry, I've been busy at work). If you're wondering on how WCF compares performance wise to existing distributed communication technologies (ASMX, WSE, Enterprise Services, .NET Remoting) you should definitely check out this white paper on MSDN: A Performance Comparison of Windows Communication Foundation (WCF) with Existing Distributed Communication Technologies
We have this document generation app that uses WCF for connecting to our middle-tier server. In order for users to run the application, they need .NET Framework 3.0 installed on their machines. To accomplish this task, I decided to use ClickOnce since it will download the pre-requisites during the installation process. However, when I tried publishing the application, to our intranet, I ran into this issue with the process: No 'PublicKey' or 'Hash' attribute specified for file 'NETFX30\Dotnetfx3.exe' in item '.NET Framework 3.0'. No 'PublicKey' or 'Hash' attribute specified for file 'NETFX30\Dotnetfx3_x64.exe' in item '.NET Framework 3.0'. Yeah,...
That's right, if you're interested in learning about becoming a more effective architect, you should check out the ArcReady event that will at the Embassy Suites on May 18th (5/18/2007). The theme for this ArcReady is entitled "Architecting for the User Experience", how does the role of user experience take part in architectural designs? More specifically, how you can use WPF, WPF/e, XAML and the Expression suite to enhance your applications. If you have the time, you should check it out. I'll see you there!
First I would like to personally thank Evan Hennis for having the courage to step to the podium and present WPF to the IADNUG. Also, for those of you that attended, I will like to apologize for the technical difficulties we had with the projector and demos. I'm very glad that at least we could get one laptop to work (although, it was hard to read at times). Also, if any of you out there are interested in presenting to the UG on any topic, please let me know! I would like to start a community serving community series for the...
Well, I've finally had it with my current install of .Text (.9.4.something) that I decided to upgrade to SubText. The SubText engine has a lot more features (and available code base) that I can definitely use going forward. Unfortunatelly, I was not able to use the .Text Import feature of SubText to pull my data in. I kept getting an error during the import process. So instead, I just whipped up some T-SQL scripts to pull the data over. I still need to fix the referral data, but that's for another day. What do you guys think about the new...
Today, I spent the better part of my morning trying to troubleshoot a problem with COM interop within a WCF service. Here's the situation... We currently have a legacy COM (VB6) component that creates a CSV file containing data needed to generate a PDF. Unfortunately, we don't have the time to re-write this component to .NET, so we have to make due for now. I first tried the component within a standard WinForm, and I was able to create/invoke it with no problems. With this success, I proceeded to use said component within a WCF service so it could be exposed within our intranet (netTcpBinding). ...
Thanks to the MVP Award Team and my lead Steve Dybing for recognizing me for another as a ASP/ASP.NET MVP. I'm thinking of a lot of good content to present/create this up-coming MVP year. Once again, thanks!
I know this is old news, but I'm extatic that Microsoft has acquired DevBiz and consequently, TeamPlain for TFS. You can read more about it over at Brian Harry's blog. Back when I was evaluating TFS for work, I installed TeamPlain and was pretty amazed what the application did. Back then, the licensing was ~$100 per client, but now that MS has acquired it, it's now FR-EE!! Check out the screen shot below to see TeamPlain's coolness:
So, as some of you have noticed, I haven't blogged in about 10 days...and that's a little unsual for me. After getting back from the MVP Summit, I tons of work that had piled up during my absense plus the work that I need to get done that week. Needless to say, I was pretty swamped. To make matters worse, an enhancement that I had deployed prior to leaving for the summit had stopped working and no one could figure out why. So, alas I spend the first half of Monday trying to dig through all the failed steps to...
So, a couple of days ago while sitting at the lobby of my hotel for the MVP Summit, I decided to come up with a simple Smart Client shell for the LOB Windows application my company uses. So there I am minding my own business when along comes Jean-Paul Boodhoo, James Kovacs, David Laribee, DonXML and ask what I was working on. After some explaining of my intentions for replacing our legacy VB6 application with a brand new .NET one, JP couldn't resist the opportunity to do some TDD and Pair Programming. I must say, that I've always been of the...
That's, right I've summitted the How to Start A .NET User Group BoF session. Last year, Nick, Eric, Levi and I were moderators for this same session and had a great turn out (10+)! If you have time, you should vote for it so it can make it for the final cut! Voting Link: https://www.msteched.com/BOF/voting.aspx Here is it's bio: How To Start a .NET User Group This BOF session will be a round table for anyone interested in starting and maintaining an active .NET user group within their local community. We'll share common success and challenges that attendees have experienced. Audience: Developer
I would like to thank Paul Sheriff for taking the time to speak to our user group. He did an excellent job on presenting an intro to OOP. In case you were not there, he has offered a free eBook for our UG members. Go here, to get it. Once again, thanks Paul!
Thanks all that attended my CRINETA presentation Applied .NET 2.0 Programming! I'm pretty impressed on the level of interaction we had throughout the presentation. To me, this is what made it really memorable for me! Once again, thanks for attending!
That's right, on Monday March 5th, I will be presenting for the Cedar Rapids .NET User Group about .NET 2.0 programming. Here's the info: Applied .NET 2.0 Programming Are you tired of the same old boring "collection demos" for generics? Ever wondered how anonymous delegates really work? Tired of playing with System.Xml clasess to a grip of your .config file? Or how about adding basic transaction support to common .NET types? In this session I will show you how you can take some of the new features of the .NET Framework 2.0, (Generics, Anonymous Delegates, Configuration, and Transactions) and apply them to your current development with minimal...
I was asked today if there's a metric for determining whether an business application should use Windows Workflow Foundation (WF) or roll its own workflow plumbing. Here's my extended answer... As far as a metric of qualification, I can't say there is one (or that I have found one). Besides deciding whether or not to use a technology (or any type of plumbing) as an aide for development can't be (and shouldn't be meausered) by a number. It's not the number of lines of code, methods, classes, assemblies, etc. that decide whether or not you should use workflow. It all comes down to...
That's right! It's hard to believe that such an awesome tool it's on version 5.0! Scott has a pretty awesome blog post talking about the new/existing features of Reflector. I'm totally hooked into the .NET protocol handler feature! This is reminiscence of what MSDN has done with the .NET 2.0 documentation through the VirtualPathProvider class. Lutz Roeder, you're the man!
Last night's ASP.NET MVP Live Chat was awesome! Thanks to all you that attended. Currently, Microsoft is working on posting the full transcript and answers to their sites. But for the mean time, Ryan Olshan is hosting it over at StrongCoders (Please note this requires registration). Thanks for doing this Ryan! If you have the time, check it out!
By the way, I posted about this chat a while back....
but if you don't recall and are free tonight from 7-8 PM CST (8-9 PM EST, 5-6 PM West Coast Time), come check out our ASP.NET MVP Public Chat! Check out the line-up of MVPs that are ready to answer your ASP.NET questions!
You can join the chat by going to the MSDN Chat Center.
PluralSight's own Fritz Onion will hosting 8 ASP.NET webcasts next week. If you're interested in checkin them out, you can register here.
ScottGu has blogged about the new features of the next version of Visual Studio (codename Orcas). Right now if you can get access to the bits (they're available through MSDN) you can start playing with it. I'm looking forward to see what kind of bult-in support they have for LINQ (released with .NET Framework v3.5). The web (CSS, Multi-Target .NET Frameworks, JavaScript & Ajax) support sounds pretty cool too. I will make another post as soon as I get a chance to play with the bits.
Last night, we had the privelege of having Billy Hollis present about Smart Client design at our monthly UG meeting. We were able to book Billy through our membership with INETA. The presentation was pretty good since he covered alot of spects of smart client design, development and deployment. The crowd was somewhat interactive and over all had a good time. Thanks Billy for talking to our group!
I'm proud to announce that I will helping out on the first ASP.NET MVP Live Chat on Feb 16th, 2007 from 8:00 - 9:00 PM EST! If you have any questions, regarding ASP.NET development, come and join the free live chat! Check out the info below (from community.strongcoders.com) Join the Strong Coders Community, Scott Guthrie, General Manager, Microsoft Developer Division, and Microsoft MVPs for the continuation of the 1st MVP Live Chat on Friday, February 16, 2007 from 8:00pm-9:00pm EST. Get your tough questions answered by experts. No question is too hard. The chat will take place on MSDN Chats. See details...
On Wednesday, I headed up north to help out at the Minneapolis Vista Launch key city event (KCE). One of my tasks was to help people by answering questions, showing them demos at the "Vista Trial Area." Surprisingly, I was also able to answer a couple of development related questions in regards to WPF, Gadgets and running Visual Studio on Vista. Another nice thing about the event is that I got to talk and hang out with Jeff, Mike and Farhan. Also, I made a new MVP friend with Bill Smith (Windows 2003 MVP and a Mac guy!!). The cool...
So, this is an 'archaic' method of doing a silent MSI install/uninstall but it worked for us! We have an "updater" VB6 applications that checks files on our test server and compares them to the files on your hard drive. If the application detects a change, then it updates your file with the version on the server. This application only deals with OCXs, EXEs and DLLs. Since our new environment is all .NET, I needed to add MSI packages to the list (I know I could've done a straight copy but I need to do some COM registration for interop). ...
It's nice to know that your efforts can make a difference or help a fellow developer. Today, I received an email that read, I was wanting to do an article for Code Project. The article that I wanted to write would be based on the code that you wrote in your article Extending Web Controls With Custom HTML Attributes. What I was wanting to do is to build a plug-in architecture for these "Custom HTML Attributes", where if you wanted, you could add a new attribute simply by dropping a dll into your applications bin folder. I was just...
That's right! ASP.NET AJAX v1.0 is now live! So if you've been doing work with any of the CTPs, stop! Go the final bits and start enjoying the RTM goodness!
For those of you that are interested in this kind of stuff, there is a list of the bugs (398 of them) fixed by installing SP1 for Visual Studio 2005. Go and see if any bugs that you have experienced has been fixed.
When system design is based on the can we get it done in the given time factor. Common conversations start out like
If we only had a week to design the system, how would I...
Nick posted a really good read that covers some of the same topics. I particular like point that Getting Real makes on building half a product, not a half-ass product.
Check out this cool Channel9 video interview with Rory and ScottGu. Should help light up some of the future paths the technology (ASP.NET and other MS Web Techs) are taking on the near future.
If you're in the Des Moines area, you can check out the "local" Vista launch over at the Polk County Covention Center on January 16th. Pick the correct event that fits your needs: Partner Developer IT Pro Small Business IT Executive Also, you would like to experience the "full effect" a key city launch, you can always go to Minneapolis.
I just downloaded the PowerToys for the Visual Studio 2005 Class Designer and Distributed System Designers. The Class Designer has the following enhancements: Export Diagrams for Web Display Xml Comment Command Documentation Tool Window Filtering Appearance Filtering Lines Filtering Members Fast Navigation Interface Lollipop Labels Commands Inheritance Visualization Commands Show Type Command Association and Inheritance Line Dongles Type Creation Commands Add Member Commands View Class Diagram Command Improvements Go download this powertoy and start enjoying its goodness!
Not sure if any of you out there knew about the RSS toolkit for ASP.NET. Dmitry Robsman created it a while back and now IDisposable has put it out on CodePlex. If you're doing any work with RSS on ASP.NET, check out this toolkit! It will greatly simplify what you're doing.
Just wanted to wish my readers (both old and new) a happy new year! I'm sorry I haven't had the chance to blog more but I've been quite busy at work. I've been doing a lot of working with interop with VB6 and VB.NET. I've also added some MVP and WCF to spice things up as we slowly scale and re-write our application. My main task it to finish my Extending ASP.NET article series on Code Project.
I'm planning to have a couple of C# “syntactic sugar” posts. While working on our framework at work, I'm been using some of new features of C# 2.0 that help...
I'm psyched that there's a PDC this year! Save the dates, Oct 2-5 2007. With a pre-conference from Sept. 30th - Oct 1st. Where? It's in LA, again!! <sarcasm>Does Microsoft have anything new to show?</sarcasm>
That's right, it's out! Microsoft has released SP1 for Visual Studio 2005, Team Foundation Server, Express Editions and Vista Beta. Here's some info from Microsoft: Visual Studio 2005 Service Pack 1 continues Microsoft’s investment in market leading development tools. Service Pack 1 addresses issues that were found through a combination of customers and partner feedback, as well as internal testing. The issues addressed range in severity from places where the syntax coloring was incorrect to customer reported crashes in various scenarios. In some areas, more than 50% of the bugs addressed were reported by customers through the MSDN Product...
Once again, Nikhil has out done himself. Check out his WPF/E Flickr Photo Viewer. You will need to download WPF/E December CTP to view it... WOW!
Just wanted to thank Richard Hundhausen for taking the time to present to our user group! The presentation was great! There were a lot of questions and interactions from the members. You can check his reflection on the experience here. Today, Nick and I met up with Richard for a bite to eat and some geekin' out.
Come join us tomorrow at our monthly .NET User Group meeting! We'll have Richard Hundhausen, Team Foundation MVP & RD, present on SQL Server 2005! Also, we'll be discussing on severals ways the UG can get involved in helping keep the memory of Eric Jacobs alive. Hope to see you there!
A couple of days ago, I finally installed Vista Ultimate on my laptop! What can I say? ... it's not too bad. After getting pretty tired of all the security prompts, I disabled the User Account Control (UAC). From there, it was off to get my Windows Experience Index! Needless to say, the laptop didn't do too well. This is due to the fact that my graphics card is the standard Intel embedded chipset. Hopefully tomorrow, I will have a chance to install Vista Business on my work laptop so I can see how well it performs. For now,...
Not sure how many of you guys have experienced FxCop Rule# CA1002 : Do Not Expose Generic Lists through out your coding ventures. I'm not sure what to think of it... In one hand, I see the flexiblity of returning the IList<T> type since there could be x-number of things that could implemented. Thus not tying me up with a specific implementation such as List<T> or Collection<T>. On the other, Collection<T> does allow you to override functionality and also implements IList<T>. The rule does mention that List<T> (IList<T>) is designed for performance and Collection<T> is designed for inheritance... What are your thoughts on...
If you have the time, check out these great downloads add-ons for VS2005. I already have .NET 3.0 framework installed on my laptop and ready to play with WF and WCF...this is just sweet!
Essential Windows Workflow Foundation This is book is a really, really, really good read. The authors (both architects of WF) do a really great job of breaking down the concepts of what "makes up" a program...a basic approach they took into consideration when designing WF. If you're planning on using .NET 3.0, this is a worthy investment.
While trying to get our ci build to work, we ran into problems with the Oracle .NET Provider and NUnit. For some reason, there seems to be a threading issue with the provider and the way TestDriven .NET and UnitRun execute unit tests. In particular, the OracleConnection object, when you specify the string to be null or empty, an InvalidOperationException should be thrown. However, this is not the case...the exception is never thrown! If you run the unit test by it self, then the exception is thrown as expected. Weird. Have any of you run into this issue with the Oracle...
That's right, if you're planning on doing some development with the .NET Framework 3.0, you don't have to use CTPs, any more! They've shipped the product! This is the beginning of a brand new approach of application development for the Windows platform. Great job, teams!
Thanks to those of you that attended the meeting this evening! We had 29 people that made for a pretty good crowd. Please note that we WILL take into consideration the moving of the meeting place to West Des Moines. Like I mentioned several times, we just need a home that is not willing to charge us for the room. To get the slides and demos for the meeting, go here. Some one after the meeting asked, Why would I store my pages in the database? Well, all I can say is that it depends. If you need to interact with...
First and foremost, thanks to all of you that attended my presentation! We had a great crowd that was eagered to learn more about the inner workings of ASP.NET. Second, I would like to apologize for my buggy demo. Like I mentioned during the error, I moved the database file containing the content from my desktop to a folder under the C-drive so my connection string got hosed. I didn't take the time to check the demo to its entirety before showing it. My apologies. If you would like to get the demo code for the presentation, you can do...
Ted Neward is creating a new colun on MSDN that outlines the content of his presentation on Pragmatic Architecture. You can check out an intro for the series, here. I was able to see this presentation at TechEd this past summer and it was pretty good. If you would like to see the webcast, you can do so here.
Oracle Develop is the "developer"part for the OpenWorld conference. Remember, when I blogged about it couple of days ago? Yeah, I was pretty much in the same room for hours listening on how I can use their .NET tools to make things easier for developers. Verdict? Un-impressed. Why? Well, most of their content was the same content you can find on their website. The only things that made it ok was that I was able to talk with the developers of the product and discuss some of the issues/enhances with the product. I was also pleased to find out that they're planning...
So, I'm at Oracle OpenWorld in San Francisco this week to learn more about how we can leaverage our Oracle backend through .NET. As some of you might now, MS provides a "built-in" Oracle ADO.NET provider within the .NET Framework. If you didn't know, Oracle also provides their own managed ADO.NET provider that communicates natively with your Oracle db resources. They also provide something called Oracle Tools for VS.NET (OTDN), that is a series of add-ins for VS2005|2003 that allow you to connect, modify, debug and query your Oracle database. The ADO.NET provider and OTDN are free for download. So,...
I'm sure that I'm going to get a lot of crap from this, but here it goes... <RANT> While talking with a potential candidate today about what .NET language we were using on building our business layer & common library with, I mentioned that we will use C# for the common library and VB.NET for the business layer. He asked, "Why? You're current staff is mostly VB developers, wouldn't you just use VB.NET for all?". That's when I re-iterated that we're planning on using VB.NET for some of our business layer development. Since there's a small team (2 people) right now that...
So yestereday I'm reading my daily RSS feeds when I encounter Ted Neward's post on a comment that Scott Hanselman made during the p&p Summit in Redmond. After reading this post, I shot Nick a message asking him to read it and see what his toughts were on this...you can find his response here. I couldn't agree more with Scott, Ted and Nick. Here's why ... In my old Java dev days, we utilized a lot of open source technologies (Http Commons, log4j, Bouncy Castle, etc.) to help speed up our writing of code (just as Scott did with log4net). The company I...
Ok, so you know it's kinda scary when you get and leave a conference when it's dark (7 AM - 8 PM). But overall, Tulsa TechFest was a huge success. My ASP.NET presentation was well received (I would like to apologize for taking too long on the earlier topics and cutting ExpressionBuilders). I was glad that people found the information useful and relavent. After attending several of the other presentations, I was ready to hangout and have some relaxation. The fun part of the evening was hanging out with Tim, Shaun and the rest of the gang and just kick...
That's right, Tim and I had a lot of fun today getting down here to Tulsa. We left Des Moines with no problem and had a pretty easy time finding our terminal in Dallas...only to find out that our flight was cancelled. After talking with the guy behind the ticket counter, he told us that the next available for me flight was at 7:25 PM and that for Tim it was 10:25 PM. Yeah, that news did not settled too well with either of us. Once the time approached for us to board, Tim was lucky enough to get into...
Tim and I will are heading to Tulsa TechFest tomorrow so if you would like to get together and hang out, let us (or me) know. Really looking forward to speaking and meeting lots of new people!
At my new job, we're in the process of moving some legacy applications to .NET. With this conversion/re-write, comes a layer designed and re-usable components (both in classes and productivity enhancements to VS2005) that developers can benefit from. Today, some one sent out this link to the entire IS department expressing their enthusiam for the dawn of .NET. Things like that (to me at least) make it worth while to come to work every morning.
Mike Stall has a really sweet post in he discusses some differences between conventional calls using the Object type and generics to casting for you within factory methods (Type CreateType() ). Worth the read if you're using generics beyond the traditional collection samples.
My good friend (and former manager) Heath Stewart has a couple of great posts covering different issues (multiple installs, high disk space and long install time) customers have encountered while installing VS 2005 SP1. This is great stuff, way to go Heath!
Finally got around to create a CodePlex project for LightBox.NET! (Yes, this LightBox.NET) No more file system versioning for me! (I know I could've used Subversion for my repository, but since I'm the only working on it, it was a bit of an overkill.) This is where I plan on storing all documentation, source code and requests for LightBox.NET, so if you're interested on the project, add this link to your favorites! A while back, I posted the release of version 0.1.2006.0726 on my blog, so to make things more formal I created a release candidate (RC) for ver0.1.2006.0726. Hope...
Microsoft has released a beta version of SP1 for Team Foundation Server through Microsoft Connect. In SP1 there are a lot enhancements to the system, specially when it comes to performance. The TFS team has updated a lot of the sprocs dealing with version control, workitem tracking and the datawarehouse components. In this post, Brian Harry has listed some (if not all) of the bug fixes in TFS SP1. Check it out if you have time. Also, go and sign up to get SP1 (for both TFS and VS2005) and try it out...hopefully on your TEST TFS box!
Roy Osherove has a great comparison of the popular unit test frameworks for .NET (MbUnit, NUnit and Team System Unit). I have to agree that for general testing purposes the standard is NUnit. Once you've grasped NUnit, MbUnit is a logical transition.
Check out this great post by ScottGu on optimizing web project performance within VS2005. Tons of great information on how minor tweaks can make the project experience a lot better.
Quick question: Are any of you using Seapine's Surround SCM along with CruiseContro.NET within your CI solution? Just want to know if there are some things I should look out for if going with this approach. Thanks!
I will be presenting on the new runtime features of ASP.NET 2.0 at Tulsa TechFest 2006 on Oct. 14th. My good friend, Tim Gifford will also be presenting on FitNesse. There are a ton of other great speakers (Carl Franklin, Richard Campbell, Ron Jacobs, Mark Miller, ect.) that are the main headliners. If you're going to be around Tulsa, OK on that day, come check it out! It's FREE!
Do you have legacy VB6 applications that need a little .NET in them? Don't want to mess around with the fun of COM interop? Now, you don't have to with the Interop Forms Toolkit! The toolkit allows you to have a phased upgrade of your VB6 applications to .NET by allowing your to have both VB6 and VB.NET forms running within the same VB6 process. I downloaded the toolkit earlier this week to check it out and I was pretty impressed in how it made the accessing of .NET objects within VB6 pretty easy. Go check it out!
Well, looks like Nick beat me to the post! If you're doing Unit Testing or TDD, this is a great installment of Hanselminutes you should not miss! Scott has always done a great job with putting just the right amount of content to keep the listener interested and productive. This is not just me saying it, but Chris Sells too!
If you want to learn more about unit testing and being test driven, you should also check out this other Hanselminute.
I just stumbled into this project, CCNETConfig, while looking through CodePlex earlier this evening. I have not looked into this tool (since I don't have CC.NET installed on this laptop) but seems like something that could be very useful to those using CC.NET at their shops.
I've been doing a lot of playing around with Team Foundation for the past couple of weeks and in the mean time I've created a lot of test* Team Projects.
When I decided to clean up some of these test project, I thought the logical thing and went to delete them through Team Explorer. Well, as soon as you do that, you will run into this nice little message:
Use the Project Creation Wizard in Team Explorer to create a project or the TfsDeleteProject tool to delete one.
Being a huge fan of the command line, this is not an issue for me. ...
That's right, Atlas is ready for shipping! Of course, like many other cool-named .NET technologies, it has been renamed to something ... not as cool. ScottGu has more info on this. For now, here is a quick summary: Atlas parts have been named to be the following: Client-side (Javascript library) - Microsoft AJAX Library Server-side (ASP.NET integration) - ASP.NET 2.0 AJAX Extensions Control toolkit - ASP.NET AJAX Control Toolkit Shipping date: ? Depends on customer feed, however, it will work fully with ASP.NET 2.0 and VS2005.
Today I started to setup Continuous Integration (CI) with Team Foundation Server (TFS). Unfortunately, TFS does not support it out of the box; however, it does support functionality for you to hook-up into event sinks for comment server operations (Checkin, WorkItem assignment, etc). So, I Googled for "continuous integration team foundation" and ran into two really good posts by Jeff Atwood [post] and Daniel Cazzulino [post]. I particurlaly like solution that Jeff's post gives you, because he has added the page that kzu (Daniel) created and incorporated into his CI webservice. I wanted to take the solution even further by adding the automatic addition...
I ran into Buck Hodge's post on TFS tools on CodePlex and I must say that I'm pretty impressed with the selection of free tools out there.
In particular, I like the Code Review Workflow and Automaton offer. I played with Automaton today and for what is "there" it's not too bad. There is still some room for improvement but it gives implementers a pretty nice start to allow developers to kick start a build. As for Code Review Workflow, that's on the books for another day.
Another two projects to look at and consider are Source Code Tree Browser (this is...
How many of you out there are running Team Foundation Server? If you are, have you done anything to customize work items, policies or processes?
That's right, if you've like IronPython before ... you'll love it even more now since it's gone RTM. Go get it from CodePlex.
That's right, .NET 3.0 (WinFX) has hit RC1. It's pretty much "the final product" from the sounds of it. Go get your copy!
Where does/should it live? Middle tier (.NET/Java/Other technology) or data tier (SQL Server/Oracle/DB2)? Talk amongst yourselves. I'm curious to find out what you have to say!
David Chappell has posted his latest opinari entitled SOA and the Reality of Reuse. Over all a pretty good read since it helps to demystify theoretical SOA from applied SOA. While reading the opinari, I came to the realization that people considering SOA should we asking the question: what are you really trying to do now? As an added bonus, David Ing has posted his own thoughts on the opinari; also a very good read.
That's right, Scott has updated his ultimate tools list! Check it out, and see what you've been missing (or if your tools is on his list).
That's right, I'm asking you that question...what is .NET? Is it the framework, services, software, way of life? I want to hear your thoughts!
My good friend Tim Gifford has a pretty nice write up on object-orientation and the always popular, "static vs. instance" methods. Here's something I would like to comment/add-upon to his post: Tim mentions, Because when you're agile, you must be able to make changes quickly without affecting the system. In order to do that, you need to reduce (or eliminate) duplicate code and minimize coupling. I will have to say that this statement holds true for more than just agile developers. If you're doing any type of component based development or have incorporated some higher-level abstractions into your code,...
Currently in the process of looking at different modeling tools (data, objects, applications, etc.) that we can use for the development of our new system. What type of tools have you used to create your data, domain and business process layer? Any input is appreciated!
Scott Hanselman posted some of the pains of interacting with ASP, ASP.NET and COM. If you have the time read through his post and the comments, to get a better understand of the issues he encountered. A while back, I've a similar post about dealing with two CLR versions and COM interop. Also worth checking out... Quick Poll: How many of you out there are using Classic ASP and ASP.NET in your web environment?
Although it was created about a year ago by Craig Skibo, the Visual Studio Content Installer Power Toy is a pretty nice tool.
A couple of weeks ago, I created several snippets, item and project templates for a client and this tool made the process pretty easy. If you're trying to export common functionally so it can be shared across your team, it's the smoothest way to do it.
Not sure about you, but this sounds like a great opportuntiy if you can do it. Come on, there's nothing wrong with this offer:
Get paid by NYC “market“ salary (from .NET Rocks Show 192)
Live in NYC for a year in a free apartment
Work at a big financial instutitution
Get flight pass to return home
Like I said, where can you go wrong? If you're a contractor and can take a “year off” from the Midwest, check this out!
Finally, something I've wanted for a long time from MS...a blog post writer thingy. However, I like other people wanted this functionality added to OneNote since you can consider (at least I do), your blog as an online version of your OneNote thoughts. Scott Hanselman has a great post on his thoughts on Live Writer; in particular on how it behaves/interacts with dasBlog. I do agree with him that this writer seems/feels very familiar as BlogJet (an editor that I decided to purchase). Some of the layout of the editor has a certain feel to OneNote (like the right panel...
A while back I posted about LightBox.NET and it's source code. From the looks of it, it was well received since people have blogged about it here and here. Also, someone has added it to their Magnolia bookmark list. To all out there, thanks! I know it's been three months since the initial release but as I've mentioned in other posts, I've been quite busy. I've spoken with several people about some of things I can do to make it “better” (along with the “can you make it run for ASP.NET 1.1?” .. trust me, if I had the time, I would do it...it's not that hard). So, here's my first attempt...
Last week at work, I was asked about how one would go about displaying forms that are hosted within a VB6 ActiveX DLL. The first thing that went through my mind was, “Why would you?” … well, the DLL was “legacy” code that couldn’t be ported to .NET due to time constraints. So, how do you do it?
Well, if your DLL displays any forms (aka calls the Show method on them), you will throw a COMException. What’s the COM exception for? The issue outlined in this KB Article. Here’s a quick summary of the issue from the KB article:
Modeless forms displayed...
Here’s a list of the books I’m currently reading:
Technical – Developer
Professional .NET Framework 2.0, Joe Duffy, WROX Press
I previously posted about this book...yeah, I'm still reading it. Been busy with the baby.
Technical – Architect
Applying Domain-Driven Design and Patterns: With Examples in C# and .NET, Jimmy Nilsson, Addison-Wesley
I really enjoy reading Jimmy's blog and knew about the book for quite some time. While at BN, I saw it and started reading it. After a while, I realized that I was already halfway done with chapter one. I just had to have it. Pretty great read specially if you're read the PoEAA...
Here’s a really good post (with a flow chart!) in which Craig McMurty describes the steps and scenarios you should consider when making changes to your WCF contracts (service, message or data).
A couple of days ago at work, Fred found this great tool for editing MSBuild project files, it’s called MSBuild Sidekick from Attrice Corporation. It works pretty good, although there are some quirky things with the UI (mostly with the way the treeview behaves).
The tool does make it a lot easier to change a project file because it gives a graphical representation of the MSBuild tasks (the less you have to remember the schema, the better).
If you’re doing some work with MSBuild, you should check out the tool. It will be worth your time.
Interested in learning the different disciplines of system architecture as well as perspectives on building successful systems? Check out Skycrapr.net! Ron Jacobs has created an excellent resource to help aspiring architects get training and good reading.
I first found out about Skyscrapr while attending Ron’s presentation at TechEd this year. Check it out!
Tonight we had our first Post-It discussing meeting. Here’s the jist of it from our member’s email
We're trying something a little different for this month's meeting. At the beginning of the meeting, you will be given a post-it note and asked to write down 3 topics that you're currently interested in and would like to discusss.
We'll collect the post-it notes and form discussion groups based on their content. Anybody interested in the related content is encouraged to discuss/learn/share within the group. Also, each discussion group will have a recorder that will write the ideas discussed within the group. These ideas will...
Our dear friend from the north and favorite DCC, Jeff Brand, posted some pretty good tips about managing/monitoring WCF applications he heard from Craig McMurtry (yes, this Craig McMurtry), Longhorn Server App Platform Evangelist. If you got the time, check them out.
I will have to say that if you’re not following tip #1, you’re a masochist; large XML config files != love. (FYI on tip #1, this is installed as a default tool in VS2005 when you install Beta2 of WinFX (sorry, .NET Framework 3.0)).
Well, I managed to install a new instance of SQL Server 2005 in my old Exchange Server box. I removed Exchange since I no longer host my own email. That’s right, my @lozanotek.com email accounts are hosted through Google. It’s nice to get both my Gmail and lozanotek emails through one interface. Why did I switch? Since my IP address is dymanic, at times my email got rejected from a reciepient’s mail server (such case is with Microsoft’s mail servers). After a while, I got pretty tired of it.
Anywho, I now have two SQL Servers running, one to host the blog...
You learn something new everyday…
I was working on a simple demo application and had a method with a void signature:
static void Test() { … }
Messing around with the code, I decided to return System.Void at the end of my method instead of leaving the method without a return type or the return statement. To my surprise, these are the errors that I received from the compiler:
System.Void cannot be used from C# -- use typeof(void) to get the void type object.
Pretty interesting, huh? I should have guessed that there was an issue with this type in the IDE when I didn’t...
Kenny Wolf has a very good post on which he describes the reasons for setting the IsOneWay property of your OperationContract attribute to true.
If your operation has void return type, mark it with IsOneWay so …
The service will release the connection (or complete the HTTP request/response by replying with null, etc) before dispatching to user code. If the operation is not marked with IsOneWay then our Dispatcher won’t reply until the Operation has completed
An important thing to know if you’re want to your application to perform well by using the old “fire and forget” idiom.
I’ve been running Vista Beta 2 as my main OS for about a week now and things are going pretty smoothly. The first thing you need to do to make things easier for you is to turn-off the User Account Control (UAC) to prevent Windows from asking for permission to execute simple operations such as a file copy. Trust me, it gets pretty annoying…Why did I turn it off? Well, since my laptop is a development machine, I don’t want to keep clicking the “Allow” button whenever I make an intended change.
Currently, I’m running SQL Server 2005 Dev Edition, IIS7, VS...
Just read this post by ScottGu on a PAG tool that allows to view guidelines and suggestions for your .NET and ASP.NET applications. Each guidance item covers the reasons why it should be followed and instructions on how to implement it.
Pretty good stuff!
Kirill G starts to answer the question on how one can control various aspects of WSDL generated by WCF (Indigo) services. His first post is on how you can control the namespace generation through either code or configuration files. If you’re into Indigo (WCF) and would like to learn more about its inner workings, this is a good place to start.
Just found this really good post from John Evdemon (I attended one his Chalk Talk on BPEL at TechEd) in which he describes under which scenarios you should use BizTalk Server (BTS) or Windows Workflow (WF). Pretty good stuff! If you’re working (or planning to work) with either technology, it’s forth the read.
Our flight didn’t leave until 5 PM, so I attended all morning sessions and the first session after lunch. The two sessions that stood out the most was Clemens’ REST, POX & RSS with Indigo talk and Juval’s Advanced Serialization in .NET 2.0.
All I will have to say is that TechEd was a lot of fun for me. It’s not everyday that I have an entire week when I can “geek out” and just code, go to talks about code and have some alcohol put into the mix.
The only bad part about the TechEd experience was our flight back. We...
Ok, yes, I know that my last post was for Day 1. Well, a lot of stuff has happened since then and I haven’t had time to blog. Why? I’ve been playing around with all the cool stuff that’s around.
For the main sessions of the day, I attended Ron Jacob’s talk on SOA Patterns and Anti-Patterns. Pretty good stuff. Ron did an excellent job of getting the people in the talk involved by asking for input and keeping a conversation with the crowd. After, that I headed out the MS influential party.
The event was held at Ned Devine’s at the Faneuil...
Due to renaming of WinFX to .NET Framework 3.0, Microsoft has launched a new site, http://www.netfx3.com. With this site, you can now access each of the technologies by a sub domain. For example, for WCF, goto http://wcf.netfx3.com.
Check them out!
A couple of days ago, I got to play with BizTalk 2006 and Windows Workflow for the first time. I know of the capabilities and features, but I was amazed on how quickly one can generate results from them.
For BizTalk, I had to create a POC that would convert a delimited flat-file to a COBOL copybook format. Sounds pretty straight forward, doesn't it? Well, it was! After playing around with the Flat-File Schema Wizard and creating a simple orchestration that executed a transformation from Schema A to Schema B, I was done in about an hour (that is, after...
I plan to document my travel to Boston/TechEd along with a summary of the sessions I will be attending. This should be fun, because at some of the slots, I'm quadruple booked! If would like to see something in particular, let me know and I can blog about it too.
Also, I plan to meet up with some of the members of the ASP.NET team and talk with them about the cool new runtime features (yes, I will try to blog that too).
That’s right, looks like MS is renaming WinFX to be .NET Framework 3.0 to avoid confusion. Here’s what Soma had to say:
With this in mind we have decided to rename WinFX to the .NET Framework 3.0. .NET Framework 3.0 aptly identifies the technology for exactly what it is – the next version of our developer framework.
I guess I can see their point. At the end of the day, it’s just a name for packaging. Since we’re in the topic of changing names, can we rename WCF back to Indigo? ;-)
I'm going. Are you? If you are, drop me a line in the comments and we can hang out/talk/get drink sometime during the conference.
I would like to thank the CRIneta Admin group for allowing me to come and speak to their fine group. Nick tagged along for a night filled with pizza, demos and prizes. Thanks for the great time, guys!
During the meeting, Greg asked for information on performance between .NET Remoting and Enterprise Services, I told him of an article on MSDN that covered that topic (actually, I found two):
.NET Enterprise Services Performance
Performance of Web Services, Enterprise Services, and .NET Remoting.
I will be presenting an overview of .NET Enterprise Services at the Cedar Rapids .NET User Group (CRINETA) this coming Monday, June 5th. If live around the Cedar Rapids area, stop by and check out the show.
Due to time constraints, I will have to cut short (if not all out) some of the demos I did for the IADNUG meeting this past month.
That's right, Beta2 of WinFX (components, runtime and VS Add-ons) is out! Go download it and have fun playing with the new bits.
Microsoft Pre-Release Software WinFX Runtime Components - Beta2
Microsoft Windows Vista Beta2 Software Development Kit
Microsoft Visual Studio Code Name “Orcas” Community Technology Preview – Development Tools for WinFX®
I'm not sure about you, but this is pretty freakin' sweet. Nikhil is just amazing.
Ok, so I'm a day behind! Having a 2 month old around really takes a toll on your bloggin' time...but he's worth it!!
Any way, I just signed to check out CodePlex to see what kind of projects they have out there. Who knows, if I have time I can start another project with them. It would be cool to use their TFS from my machine at home. Just need to wait until they open the creation of projects to the public.
Even shorter...
namespace FrameworkPath{ using System; using System.Runtime.InteropServices; class Program { static void Main(string[] args) { Console.WriteLine(".NET Framework Path: {0}", RuntimeEnvironment.GetRuntimeDirectory()); Console.Write("Press <ENTER> to exit."); Console.ReadLine(); } }}
Stupid me...RTFM.
I needed to figure out how the directory path to the .NET Framework so I could lauch a process (regasm.exe) from an assembly. You would think that the System.Environment class or the Environment.SpecialFolder enumeration. Keith Brown posted how you can find it using P/Invoke with mscoree.dll. Well, instead of making a P/Invoke call, I wanted an easier way to looking for it. Here's what I came up with:
namespace FrameworkPath{ using System; class Program { static void Main(string[] args) { Type objType = typeof(object); string moduleName = objType.Module.FullyQualifiedName; string frameworkPath = System.IO.Path.GetDirectoryName(moduleName); Console.WriteLine(".NET Framework Path: {0}", frameworkPath); Console.Write("Press to exit."); Console.ReadLine(); } }}
Pretty straight forward.
FYI. I've created a CodePlex project or LightBox.NET. To find the latest source, please go check it out there!
Someone asked if I would post the source code for LightBox.NET. Well, here it is. Enjoy! If you have any ideas for extending it, please let me know!
While working with VS2005 the other day, I started to notice that things were running a little bit slow. All I had in my solution was 8 projects (4 code projects and 4 unit tests projects. 2 of these projects have 200+ classes), and needless to say, the VB.NET background compiler was going a little bit nuts...
I decided to kill devenv.exe to restore "peace" to my PC. Here's what the graph of memory usage looks like when you kill an application that takes 842 MB of RAM.
A while back, I posted that I was working on another side project. One the cool things features of this website project is the use of the Lightbox JS script used to overlay images on the current page. I told Nick about me adding this to the site to make the pictures “cooler.” One of the first things Nick mention was that I had turned off the key-press events for navigating the pictures through a slide show. I was first confused by his comment since I've done nothing to change the Lightbox script. Well, it turned out that he thought I...
Can't wait for Vista to get your hands on their fonts, well now you can download the new Consolas font and use it in VS2005. I've been using this font for about 2+ weeks (previously I had Lucida Console) under VS2005/Windows and man, it's sweet! The only requirement is that you have ClearType enabled. If you don't, or would like to tune your current settings, use the ClearType Tune PowerToy.
For all you that showed up for the presentation, thanks! Hope that the information presented, although it was a bit rushed, was to your liking. I wished I could've had time to cover the security demo. I'm sure that many of you would have liked it. If you would like the power point and demo source, you can get it from here.
If you have any comments in regards to the presentation, please feel free to use the comments section to share them! Once again, thanks for showing up!
Should it blogged about it last night! ScottGu has a great post on the new CSS Control Adapter Toolkit for ASP.NET 2.0. This control adapter gives CSS-friendly capabilities to pre-excisting ASP.NET controls (Menu, TreeView, DetailsView, FormView and DataList).
Pretty nice way to hook into the new Control Adapter Architecture for ASP.NET 2.0.
Check it out if you got the time.
Just read this from ScottGu. I'm not sure about you, but I'm pretty excited! Indifferent about the web project vs add-on? Check out this post by Rick Strahl and see if you share the same feelings.
That's right! I will be presenting an overview on .NET Enterprise Services (a.k.a Everything I've learned from Lowy, Vasters and Nagel) to the Iowa DotNET User Group (IADNUG). For those of you that are interested, here's a list of my demos:
Basic Serviced Components
Object Pooling and Just-In-Time-Activation (JITA)
Transactions
Web Services
Queued Components
Loosely Coupled Events
Role Based Security
Also, remember if you're attending that we will be giving away a Visual Studio 2005 Team Suite with MSDN Premium Subscription (valued at $10, 939.00) to celebrate our 2nd anniversary!
Decided to pick up this book by Joe Duffy.
I'm a follower of Joe's blog and love the information he shares on the inner workings of the CLR. I think the thing that "sealed the deal" was the table of IL instructions as an appendix in the back of the book.
&nbps;
Yes, I'm a sick individual. ;-)
That's right! Joe, Phil and Eric have been working hard on getting the next conference up and running in Omaha, NE from 10.26 to 10.27. I have signed up to speak again about [Insert Topic Here] in the [Insert Track Here] track. Can't wait for it! If you're interested in attending, register now! Last year it sold out a month in advance!!
A while back, I was working on a unified security model for a framework when I discovered this issue. The gist of this unified model is the passing of our dear interface friend, System.Security.Principal.IPrincipal from the client to a component running on a remote server.
As I was testing this security model, I created a simple ASP.NET client application that used the new Role and Membership features. I made a call to the component passing the Page.User property to check the serialization of the principal object that ASP.NET assigned to the property. The type of the Page.User object when using the...
In the latest issue of MSDN Magazine, there is an article that deals with the exposure of .NET functionality to existing VB6 applications.
The articles covers the use of the new COM Class item template that comes with VS2005 to expose functionality found in the new VB.NET My namespace language feature. The interop wrapper concept is a great way to allow your applications (both legacy COM and .NET) interact with one another with ease.
Currently, at a client site, we're using the same wrapper concept to expose services (classes that inherit from System.EnterpriseServices.ServicedComponent) to VB6 clients. Although, a VB6 client...
While looking through my blog roll, I bumped into these great posts by Tess that talk about ASP.NET memory consumption and performance.
Why do you have set on your production server?
Strong named assemblies should not be stored in the bin directory.
Assemblies shared by multiple ASP.NET applications should be stored in the GAC.
For more information on having a healthy production ASP.NET application, check out this post by Doug Stewart.
A while back, Tim was wondering why strong-named assemblies are not supported in your /bin directory for an ASP.NET 1.1 application. Well, Tim, you can now check out the reason why you had...
ScottGu just posted that the ASP.NET team has released the source code for the ASP.NET 2.0 providers. For documentation on these providers, you can check out the documentation by Jeff Prosise.
The ASP.NET team has released the April CTP for Atlas. Go get it!
Ok, so today I'm working on setting up a simple ASP.NET website to test the new membership and role features. Well, in order to use the correct database through the ASP.NET configuration site, you have to remove the default registration of the LocalSqlServer connection string and re-add it with the correct database location. In other words,
<system.configuration> <connectionStrings> <remove name="LocalSqlServer" /> <add name="LocalSqlServer" connectionString="Server=(local); Initial Catalog=aspnetdb; Integrated Security=SSPI;" /> </connectionStrings></system.configuration>
When I told Nick about this needed change, all he could said. "Well, it makes sense. It's Declarative Polymorphism! ;-)" Another “one-liner” from Nick....
ScottGu posts an interesting work around for the App_Offline.htm feature of ASP.NET 2.0. This feature allows you to put a filenamed App_Offline.htm in your root directory and ASP.NET once it sees it, it will shut-down the application (app domain, requests, etc.) and redirect all dynamic traffic to it. So your end users will see the friendly message you've placed inside App_Offline.htm.
Well, it appears that the "Show friendly Http Errors" feature in IE6 prevents this from working correctly when the size of your App_Offline.htm file is less than 512 bytes. Work around? Well, make your file larger than 512 bytes. Yeah,...
A while back, Scott Hanselman posted a link to this same module. Now ScottGu, does the same. This module is pretty cool since it allows you to verify your HTML output with lots of ease (and most important, minimal code changes!).
Have you written an interesting module, handler or extension to ASP.NET (v1.1 or v2.0)? If so, use to comments section to talk about it!
Doug Purdy posted some great information for using Remoting semantics (passing references and perserving object graphs) in Indigo. Here are the main links:
Perserving Object Graphs (Sowmy)
Passing References (Michael)
Clemens Vasters, Community Relations PM for Indigo, wants your WCF stuff (code, presentations, tutorial, articles, etc.) to fill up WCF's portal. Check out his post if you have some samples you want to submit.
You can now download RC1 for the Web Application Project for Visual Studio 2005. This allows you to treat ASP.NET applications in VS2005 like back in the days of VS2003. That's right, you can have an associated .csproj (or .vbproj) file for your project! This new project type is quite useful for migrating large ASP.NET v1.1 applications (by large, I mean lots of pages and user/web controls) to v2.0 with ease. To learn more about the Web Application Project (WAP), check out these great in-depth tutorials by ScottGu.
Eric Gunnerson posted earlier this week a simple C# Trivia quiz. This quiz contained questions such as "How many loop constructs does C# have?" and "What was the name of .NET before it became .NET?". Well, today he posted the answers to these questions. Pretty interesting trivia information. If you have the time, check it out.
Just found this post from Charles Petzold that talks about a new language in the works called, C# Application Markup Language (CSAML). Petzold has great information on this new language and states that he will have a book released sometime next year.
The language looks pretty interesting. What do you think?
For those who care about MSF (not, it’s not Spiral + Waterfall anymore!), you can download the MSF Agile Process Guidelines and see how Team Foundation Server helps you to align your development process to MSF Agile or a Scrum process.
For those of you out there that are Scrum fans, check out the Scrum for Team System download from Conchango. It’s free and from the looks of it, pretty cool.
Visual Studio 2005. Pretty interesting (and somewhat funny) marketing for VS 2005. Check it out.
Ok, some of you might now this but this one is just for the record:
// Do this if you"re assembly// is located in your private bin path// and you wish to get your type dynamicallystring asmName = "PrivateAssembly";string typeName = "PrivateAssembly.MyType";object obj = Activator.CreateInstance(asmName, typeName).Unwrap();
// Do this if your assembly is in your// private bin path or in the GAC and// you wish to get your type dynamically.string name = "GlobalAssembly";string typeName = "GlobalAssembly.GlobalType";System.Reflection.AssemblyName asmName = new System.Reflection.AssemblyName(name);System.Reflection.Assembly asm = System.Reflection.Assembly.Load(asmName);object obj = asm.CreateInstance(typeName);
This code makes all the difference when loading assemblies dynamically.
Found this really good write up on Software Factories (SF). If you have the November 2005 CTP Release for Visual Studio 2005, you can build the sample in the article. This is pretty good implementation of a SF.
Ok, that was a stupid title. But hey, I’m not a comedian.
Just finished looking through the Stored Procedure Object Interface Layer (SPOIL) write up on MSDN’s Solution Architecture Center. SPOIL allows you to declaratively link a method with the same signature as the stored procedure (except using BCL types) together. For example, take this stored procedure sample:
CREATE PROCEDURE [dbo].[SendLog_Update] (@BatchId uniqueidentifier,@PartnerId nvarchar(50),@Mailbox nvarchar(50),@RootName nvarchar(100),@Directory nvarchar(100),@StartPackaging datetime,@TotalBytes bigint, @SendBytes bigint) …
To something like this in code:
[SqlCommandMethod(CommandType.StoredProcedure, "SendLog_Update")]public int SendLog_Update( Guid BatchId, [SqlParameter(50)] string PartnerId, [SqlParameter(50)] string Mailbox, [SqlParameter(100)] string RootName, [SqlParameter(100)] string Directory, DateTime StartPackaging, long TotalBytes, long SendBytes){ ... }
Kinda different, huh? Check it out and let me know what you guys think!
Those of you with an MSDN subscription can now download the workgroup edition of VSTS! And if you’re wondering, yes it runs on a P3 900 Mhz with 512 RAM. ;-)
If you want to have a chance on winning an XBOX 360 and Windows Mobile smarphones, then “Mash-it-up”! Be creative with the new Atlas bits and see if you have what it takes to win!!
That’s right, go get your copy of the Atlas March CTP release. Not only that, check out the re-vamped Atlas Portal where you can find great tutorials and examples on the framework. And for those of you playing with WCF and Atlas, check out this section of the documentation. WCF + Atlas = I_NEED_MORE_TIME_TO_PLAY_AROUND_WITH_STUFF … Pretty awesome!
Well, our District Community Champion (DCC) and our region’s self-proclaimed .NET Sex Symbol, Jeff Brand is! That’s right, he’s at MIX06 in Las Vegas. He’s been kind enough to do a session-by-session recap on his blog.
If you want to live vicariously through him, check out his posts!
For those of you out there using COM interop with your current applications to either call a .NET component from unmanaged code through COM Callable Wrappers (CCW) or call an unmanaged component from .NET code through Runtime Callable Wrappers (RCW) and are running side-by-side versions of the .NET Framework (v1.1.4322 and v2.0.50727), listen up.
There seems to be a problem with COM interop (in particular CCW) when having side-by-side versions of .NET Framework installed on your machine (thanks to Eran Sandler for pointing this out). I was informed today at work that an unmanaged (VB6) application that calls a .NET Windows Form (created...
How many of you out there have to deal with integration within your applications? By integration, I mean either logic or data. When it comes to logic integration, your application calls a local/external service to perform logic that’s not part of the system. For example, in your business process, you call an external web service to perform a computation with your data. As for data integration, your application takes data that’s been processed and moves it to necessary data stores (database, files, etc.) that need it. An example of data integration is the replication of data accross data stores or the...
While working at a client, we started to experience problems with the VB.NET compiler when trying to debug unit tests in VS2005 Team Edition for Software Developers. Every time we tried to debug an unit test, the VB.NET compiler would crash and would corrupt the instance of Studio. While looking for an answer we bumped into this suggestion on TSS.NET.
I tried the work around and the error went away! So, if you experience the same problem, try it out.
Another problem with running unit tests that interacted with ServicedComponents, was the unexpected termination of a test run. If we ran 5...
Today I finally took the 70–229 exam to finish my MCSD certification. What can I say, it only took me a year++!
Just got thinking about this…How many of you out there in the DSM area would like to see a presentation about .NET Enterprise Services for one of our meetings? I can cover some of the features about the technology and the reason why you should and shouldn’t use it in your application.
If you have an opinion/suggestion on this, leave a comment!
Not sure how many of you know this, but there’s a new Vista CTP for download if you have an MSDN account. What’s different from the other CTPs? It’s feature complete and is in-sync with the just released WinFX CTP!
Forgot to post a list that Ed Pinto created that tells the changes of the new CTP. You can check out the list here.
The WinFX Runtime Components Feb CTP is ready for download! The nice thing about this is that there will be a a Vista build (5308.17) that will be in-sych with the WinFX Runtime Components (by way of Shy Cohen). Check out the links below for more information:
WinFX Runtime Components
Windows SDK
Microsoft Visual Studio Code Name “Orcas” Community Technology Preview - Development Tools for WinFX
VS Extensions for Workflow
WinFX RC February CTP “Readme”
Good friend, Matt Milner, has posted a good example for working around the requirement of creating a metadata access point through a service host. I specially like his use of the System.Configuration classes.
Fritz Onion has announced that he’ll be doing a four-part introduction to ASP.NET 2.0 (in VB.NET and C#) for developers using Cold Fusion, JSP or PHP. The cool part about it is that if you attend three of the webcasts, you get VS 2005 Standard Edition for F-REE.
Brian Goldfarb posts links to great videos that focus on common questions developers have when working with ASP.NET 2.0.
Check them out!
Excellent sample by Andy on how to host WCF services in COM+. Also glad to see that they’ve changed the ComSvcConfing tool to not need the COM+ GUIDs. Check it out!
The new version of the .NET Pet Shop shows you how to migrate a v1.1 application to v2.0 of ASP.NET. Cool conversion features are the use of System.Transactions instead of Serviced Components, strongly typed collections to generic collections and extending the new membership modules.
You can dowload an MSI to install the source and the related databases. Pretty good stuff!
Just downloaded the Managed Stack Explorer (MSE) PowerToy for .NET Pretty sweet for checking out the execution stacks for your applications. You can download it from GotDotNET.
This is freakin’ sweet! Being used to work at a client’s site with VSTS and having Code Coverage tied with our unit tests, I’ve gotten a little spoiled. Well, the latest version of TestDriven.NET uses NCover and NCoverExplorer to provide similar function through it’s “Test with…Coverage” option. AWESOME!!
If you’re used to working with TestDriven and NCover as separate apps…STOP! Go get the latest version of the mentioned apps and enjoy the goodness!
For those of you doing ASP.NET 2.0 development and miss the web project feature of VS.NET 2003, you can now download the Web Application project . Also, for making deployment easier (if you don’t want to publish your website) you can also download the Web Deployment project and try it out.
To find out more about the Web Application Project add-on, check out this post by ScottGu.
A couple of days ago while playing with an ASP.NET project, I encountered an assembly load error. The exact error was,
Could not load file or assembly 'App_Web_msnjmvbf, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies.Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
For those of you new to ASP.NET 2.0, the App_Web_msnjmvbf assembly is auto-generated by ASP.NET to contain the compiled UI for your web pages. For some reason, my virtual directory in IIS got off-sync from the code and things went...
This is a pretty good read from the WCF Forums. Check it out.
SqlAssist is pretty sweet. Just installed it and works pretty good with the SQL file editor in VS2005 (there’s also a plug-in for VS.NET 2003). It’s a little slow at first, but it gets better after a couple uses. Thanks to Roy Osherove for posting it.
A friend of mine from ISU, Kevin Moore, is now a PM for Avalon (WPF). He’s been recently featured on a MSDN TV episode where he and Robert Ingebretsen talk about templates in Windows Presentation Foundation.
Checkt it out! It's good stuff!
Have you guys noticed that ther'es no MSBuild task for installing assemblies into the GAC? Well, a while back, I wrote a task class to use for adding assemblies into the GAC.
You can check out what I did by downloading the project file. Hope this help you guys out!
Another IADNUG meeting tomorrow. Eric Jacobs will present on how Two Rivers uses CodeSmith in their development process.
Check out this awesome WCF application that Clemens Vasters created. Go here to download the code.
Current at work, I’m doing some training on .NET (mostly ASP.NET, Enterprise Services, COM Interop and Security). For my three readers out there, have any tips/experiences/stories related to training you would like to share with me? The more I know what’s “best” or what “works”, it will help me relay information back to my students/listeners.
That’s right, you can go download IE7! Looks pretty cool and works rather slick!
Just ran into an issue with formatting values inside a BoundField column for a GridView in ASP.NET 2.0. For some reason, there's a bug when you specify a format for your data and HTML encoding.
To fix it, set the HtmlEncode property of your field to false. Doing so will apply the formatting to your output. Thanks to Jeff for posting this info!
How many of you out there use the DataSource controls (SqlDataSource, ObjectDataSource, XmlDataSource, etc.) within your ASP.NET applications? Just want to get a grasp how people use them and like them.
Thanks!
Just released! A new Indigo (WCF) portal! It’s jam packed with samples, resources, and forums. Go check it out!
That’s right, you can get the January CTP for the Runtime Components for WinFX. Also this release, you can get a GoLive license for your production systems. Oh the sweet coding…
Nikhil has posted some great Atlas samples for you to look at. For those working with ASP.NET and want to get a start with Atlas, these are a great start!
I’ve been answering some questions on Google Groups dealing with ASP.NET web services. In some of the questions, people asked, “How do I send a <insert-user-defined-type-here> that’s in <insert-language-here> to a <insert-another-language-here> client?” Or, “Should I send a DataSet/XmlDocument/String to my client for my complex type?”. Clearly, there’s some confusion (or misunderstanding) about how types are represented in the service world.
The purpose of this post (along with the proceeding three) is to share the basics principals outlined by the tenets of Service Orientation. I will present the tenets in no particular order…the reason I started with Share...
For those of you that have not done so, update your Windows install! I got this blurp from Clemens Vaster’s blog post:
Important Information for Thursday 5 January 2006
Microsoft announced that it would release a security update to help protect customers from exploitations of a vulnerability in the Windows Meta File (WMF) area of code in the Windows operating system on Tuesday, January 2, 2006, in response to malicious and criminal attacks on computer users that were discovered last week.
Microsoft will release the update today on Thursday, January 5, 2006, earlier than planned.
Go update!
Michele Leroux Bustamante (dasBlonde) published a great article at the Server Side .NET describing how you should use/program contracts for Indigo (WCF). The article is about 20+ pages printed and a great read. Go check it out…
Jimmy Nilsson has posted some good information about the coping of extreme loads and extreme scalabily. Check out his first of may Computing by Bricks.
A couple of days ago I posted how I improved my blog search. Well, tonight, I decided to enhance it by using the MSN Searcn SDK. My http handler makes a call to the MSN Search web service and returns the found matches and transforms their XML to HTML through XSLT. I’m using the same mechanism I wrote about for calling a web service asynchronously from ASP.NET.
Let me know what you guys think!
Today I changed the way I performed searching for the blog. Instead of using the old post back method for getting information from MSN Search, I decided to post to an HTTP handler instead using AJAX. Why did I do this? Well, why not?! It has been a while since I’ve done some web development, so I wanted to get back into it slowly… ;-)
If you get a change to play with it, let me know what you think.
Nikhil has posted a quick tour of the December Atlas CTP. The coolest feature for this release are the partial updates components for a page. Should make things easier for those pages that have a lot of content and the re-rendering of the entire page is unnecessary.
Looks like Jeff has beat me to the post. For those interested, David Chappel has posted a really, really good comparison between WCF and Service Component Architecture (SCA). Hopefully this should simplify the creation of web services on the Java platform by providing a platform/technology all vendors can agree on.
Just in time for Christmas! The latest (December) WinFX CTP components!! The cool new features of the CTP is the Visual Studio Code Name “Orcas” CTP WinFX Development Tools. This package has the WPF designer for VS called “Cider”. Also, the SDK installation is now a DVD iso image! It’s about time!!
Runtime Components
Windows SDK
VS2005 Development Tools
For those of you that have previous versions of the CTP, you can use this uninstall tool to make installation easier.
MSDN is giving away some free e-learning for VS2005. If you’re interested in learning some of the new features of Visual Studio, this is an oppurtinity you can’t miss!
But, hurry! The offers expires on 2005–01–05!
Don Box and Chris Anderson showcase how you can use WinFX within your everyday lives on this MSDN TV episode. I must say, their implementation is pretty cool … however, I wish I could say the same about their signing! ;-)
Check it out!
I created a new Google group called Software Architecture. It’s purpose is to be used as a place on which we can share ideas abouts design patterns, development methodologies, design processes and new trends in software development.
If you’re interested in joining, check it out!
http://groups.google.com/groups/softarch
<selfPromotion><![CDATA[Levi informed that my Extending ASP.NET 2.0 article has been selected for the favorite ASP.NET article of the month survey at CodeProject.
If you have read my article and enjoyed it, go vote for it.]]></selfPromotion>
Dmitri Robsman has created an HTTP Module that implements Output Cache for ASP.NET. For those of you that played around with the beta versions of ASP.NET, you might recall this similar feature.
Check it out if you have the time!
ScottGu has done it again! Ever wondered how you’re going to share auth from your 1.1 to 2.0 asp.net app? Well, check out this post and get going!!
Jack Griendfield, Keith Short and Mauro Regio are planning on writing a book called, Software Factories Applied. This book will be a complement to the original Software Factories book and will show how to create SFs with the DSL Tools, GAT and VSTS.
I can’t wait to read it!
Dmitry Robsman, Dev Manager for ASP.NET, has completed his Simple Config Definition Language (SCDL) tool. This tool alllows yout generate config sections for your web.config along with the source code and the XSD to use in Studio!
Pretty sweet tool! Thanks Dmitry!
Tomorrow, we’re having our monthly .NET Usergroup meeting. Topic? Test Driven Development.
If you’re in the region, come check it out!
For those of you out there working with Visual Studio Team Systems (TS), you’ll find these technical notes quite useful. If you’ve ever wondering why things work the way the do in TS, this is a must read.
For those of you out there that are fans of Channel 9, have you seen their new line-up of shows? I checked out this conversation between Ron Jacobs and Steve Cook about DSLs and Software Factories. If you’re wondering what software factories are and if they can make your life easier, check the podcast out.
This is sweet! Nikhil has posted his awesome series on creating data source controls on MSDN!! I’ve used his control for a demo to the IADNUG members and it was well received! Check it out!
Part I: The Basics
Part II: Parameters
Part III: Asynch Data Access
Part IV: Caching
Part V: Design Time Functionality
Dino has a pretty good article on creating data-bound controls for you ASP.NET applications. The article covers topics rather quickly but still is a pretty good read.
Thanks to fellow HDC speaker, Dave Donaldson, a lot of people have been interested on my fusion log post! Tim (no, not this Tim), asked:
What about webApplications, Is the tool usefull there as well?, When I run a local Webapp on my machine I cant se anything i the Fuslogvw.
If you use the ASP.NET setting and refresh the list, it should pick up your web application’s (actually aspnet_wp.exe’s) assembly loader. The steps outlined on the post will display all loader information (informational and error messages).
The UI layout for fuslogvw has changed ( just a little) in 2.0. I plan on...
Bertrand Le Roys has created a workspace on GotDotNet to show how you display message boxes from ASP.NET. I hope this works better than my failed attempts to use MessageBox.Show()! :-)
This is a pretty sweet Xml Visualizer Add-in for VS2005. Go now, debug away your bad XML!
Channel9 has created a security wiki for all your ASP.NET security 2.0 needs; it’s pretty good info. If you have the time, check it out.
For those of you creating applications in .NET 2.0, I hope that you’re taking advantage of generics. In particular, as the title of this post suggests, I hope you’re using constraints within your methods. Why? Well, with contraints in your methods you can do things such as this,
namespace GenericMethodConstraints{ using System; using System.Collections.Generic; class Program { static void Main(string[] args) { // Create the list of items based on the parameters List<Test> items = Driver.CreateList<Test>(10); // Loop through them and output their values foreach (Test t in items) { Console.WriteLine("{0} - {1}", t.ID.ToString(), t.Name); } Console.Write("Press <ENTER> to exit."); Console.ReadLine(); } } class Driver { public static List<TInterface> CreateList<TInterface>(int itemCount) where TInterface : ITest, new() { // Create a list of items List<TInterface> items = new List<TInterface>(itemCount); for (int i = 0; i < itemCount; i++) { // Check this out! I'm treating the interface as an object // because it has the new() constraint. TInterface iface = new TInterface(); // Set the properties for the instance iface.ID = i; iface.Name = i.ToString(); items.Add(iface); } return items; } } /// <summary> /// Interface needed for the constraint /// </summary> interface ITest { int ID { get; set; } string Name { get; set;} } /// <summary> /// Class that implements the interface for the constraint /// </summary> class Test : ITest { private int id; private string name; public Test() { } public int ID { get { return id; } set { id = value; } } public string Name { get { return name; } set { name = value; } } }}
As you can see, you can set contraints on your methods that specify that your generic type is of a specific interface and that the class defines a constructor. This will allow you to create a type that implements your interface within that method. And you’re guaranteed that it will work since the constraints will be enforced at compile...
According to GoF a proxy is a surrogate or placeholder for a another object to control access to it. The text later goes on to explain that a reason for controlling access to an object is to defer the full cost of its creation and initialization until we actually need to use it. Makes sense doesn’t it? A proxy is nothing more than a light weight way of accessing an object (regardless if it lives in the same address space as the caller).
Recently, for one of our work projects, we’ve been using a lot of Enterprise Services (ES) in order to...
Scott Gu posts some good tips on VS 2005 Local Web Server and the HTML features of the IDE. For those of you that have firewall enabled on your dev pc, the first post is a resource for finding out how you can change your port.
WOO HOO!! The WinFX team has finally released a CTP that will work with the VS2005 RTM bits!
Here are all the links:
WinFX Runtime Components
WinFX SDK
VS2005 Extensions for WinFX Runtime Components
VS2005 Extensions for Windows WorkFlow
Steve Maine shows the great extensibility of Indigo by creating a binding that uses SMTP as its transport. If you ask me, I think this is a pretty cool example on how Indigo can adapt to your needs.
Thanks Steve for this great example!
Brad Abrams posted this great link outlining the runtime and design time changes from v1.1 to v2.0 of the framework. Check it out!
I’m not sure how many you have tried to customize VS2003 to hold custom code/project templates to speed up development for your projects. For those of you that have tried, you are well aware that it’s not easy due to the lack of documentation on the process. Fortunately, with VS2005, this feature is nicely supported and documented on MSDN.
If you’re going to start developing on VS2005 and have a set of templates already created or would like to create new ones, the link above is a good start to easy your pains.
ScottGu posts some tips when nesting master pages in your ASP.NET 2.0 project. Check it out if you have the time.
The Web Platform and Tools team at Microsoft have put this article on MSDN to help you migrate your web projects from v1.x to v2.0. After reading the article, I gave it a try with my dotText project for my blog and things went pretty smoothly.
ScottGu has another great post on the new Web Deployment Project feature for VS2005. I don’t about you, but this is definitely a lot better than xcopy!
WOW! Nikhil K is alwas impressing me. YOU GUYS NEED TO CHECK THIS OUT!!
That’s right, the title is not wrong. You can download VS Express Editions free for one year at MSDN. Dan Fernandez posts more info about this great deal!
Go download Happy! Long live VS2005!
That’s right! I know it’s been a while since my last Code Project article! For this one, I decided to write about custom build providers in ASP.NET 2.0. Custom build providers allows you to extend your application by providing a class that generates source code for a custom resource (ie custom formatted file). If you get a change, go check it out!
Just got done watching this MSDN TV cast with Joel Pobar and Joe Duffy about how the CLR performs method dispatching for your objects. If you’re interesting on how your code works in the background, this is a must see!
I would like to thank Matt Milner for speaking at our past user group meeting! Matt did an excellent job sharing his knowledge of Windows Workflow Foundation (WWF) and Biztalk Server.
Thanks Matt!
A while back, Nick posted how you can use the Spring .NET Framework to have Design by Contract with AOP. I’ve been talking to him about you can do the same thing using a .NET remoting proxy to your object and intercept the calls to your objects. To do this, I needed three classes: An attribute to initialize the attaching at class level for wiring the AOP guts, a class that wires up the AOP guts and a sink that performs the interception. This is a modified version of Nick’s code:
using System;using System.Reflection;using System.Runtime.Remoting.Activation;using System.Runtime.Remoting.Contexts;using System.Runtime.Remoting.Messaging;namespace Lozanotek{ public interface IEvaluator { bool Evaluate(object arg); } [AttributeUsage(AttributeTargets.Method, AllowMultiple = true, Inherited = true)] public class PrologAttribute : Attribute { private int index; public IEvaluator evaluator; public PrologAttribute() { } public PrologAttribute(int index, Type evalType, params object[] args) { this.Index = index; Object obj = Activator.CreateInstance(evalType, args); if (obj != null) this.evaluator = obj as IEvaluator; } public IEvaluator Evaluator { get { return evaluator; } set { evaluator = value; } } public int Index { get { return index; } set { index = value; } } public bool Evaluate(object arg) { return evaluator.Evaluate(arg); } } public class StringLengthEvaluator : IEvaluator { private int min = 0; private int max = 0; public StringLengthEvaluator(int min, int max) { this.min = min; this.max = max; } public bool Evaluate(object arg) { int len = arg.ToString().Length; return (len <= max) && (len >= min); } } [AttributeUsage(AttributeTargets.Class)] public class AOPClassAttribute : Attribute, IContextAttribute { public void GetPropertiesForNewContext(IConstructionCallMessage msg) { msg.ContextProperties.Add(new AOPProperty()); } public bool IsContextOK(Context ctx, IConstructionCallMessage msg) { return false; } } internal class AOPProperty : IContextProperty, IContributeServerContextSink { public AOPProperty() { } public void Freeze(Context newContext) { } public bool IsNewContextOK(Context newCtx) { return true; } public string Name { get { return "AOPProperty"; } } public IMessageSink GetServerContextSink(IMessageSink nextSink) { return new AOPMessageSink(nextSink); } } internal class AOPMessageSink : IMessageSink { private IMessageSink next; public AOPMessageSink(IMessageSink next) { this.next = next; } public IMessageCtrl AsyncProcessMessage(IMessage msg, IMessageSink replySink) { return null; } public IMessageSink NextSink { get { return next; } } public IMessage SyncProcessMessage(IMessage msg) { bool proceed = true; if (msg is IMethodMessage) { proceed = Invoke(msg as IMethodMessage); } return (proceed) ? NextSink.SyncProcessMessage(msg) : new ReturnMessage(null, null, 0, null, (IMethodCallMessage) msg); } private bool Invoke(IMethodMessage msg) { bool results = true; MethodBase method = msg.MethodBase; Type attrType = typeof(PrologAttribute); PrologAttribute[] prologs = method.GetCustomAttributes(attrType, true) as PrologAttribute[]; if (prologs != null) { foreach (PrologAttribute pl in prologs) { if (pl != null) { IEvaluator eval = pl.Evaluator as IEvaluator; if (eval != null) { object[] args = msg.Args; results = eval.Evaluate(args[pl.Index]); if (!results) { break; } } } } } return results; } } [AOPClass] public class Person : ContextBoundObject { [Prolog(0, typeof(StringLengthEvaluator), 0, 5)] public void SayHello(string name) { Console.WriteLine("Hello {0}", name); } } class Program { [STAThread] static void Main(string[] args) { Person p = new Person(); p.SayHello("Javier"); p.SayHello("Jav"); Console.ReadLine(); } }}
If you have any questions or comments, let me...
That’s right, people have been bloggin about it! VS2005 is now RTM! If you’re an MSDN subscriber, go get it!
During my Indigo talk at the HDC, I was asked about load balancing to another endpoint if your current proxy endpoint is down. I took a look at this problem during lunch today, and this is what I did to solve it:
If you created your proxy using svcutil, you will have a local copy of the service interface. In my second demo, I had the IEightBallService interface under my EightBallProxy.cs file. The main proxy class, EightBallServiceProxy, inherits from System.ServiceModel.ClientBase<T> and implements the generated IEightBallService interface.
The EightBallServiceProxy class also encapsulates a System.ServiceModel.ChannelFactory<T>. Which in turn, exposes a ServiceEndpoint through the ChannelFactory<T>.Description.Endpoint property. So,...
ScottGu posts a great tutorial on how to use the CreateUserWizard control to create a new user in the new membership subsystem in ASP.NET.
Thanks Scott for taking the time to write this great tutorial!
Nicholas Wigant pointed me to this little find on next month’s MSDN magazine, Phoenix Rising
Phoenix is an extensible framework for the analysis, optimization and modification of code during compilation. Phoenix will provide a toolkit that will eventually replace the standard compiler back end (c2.exe) as well as the .NET just-in-time (JIT) and pre-JIT (ngen.exe).
The main concept behind the Phoenix framework is to take the compile unit and convert it to an internal intermediate representation (IR) using a unit reader. The framework will supply readers for native code, IL and abstract syntax trees (AST). From the new IR representation, the program is then...
For those of you that are ASP.NET 2.0 junkies (myself included), you can check out this white paper describing the layout, usage and development of the new Provider Model model within ASP.NET. The white paper has 9 sections with this break down:
Introduction to the Provider Model
Membership Providers
Role Providers
Site Map Providers
Session State Providers
Profile Providers
Web Event Providers
Web Parts Personalization Providers
Custom Provider-Based Services
Hands-on Custom Providers: The Contoso Times
I've yet to look through them all, but from reading the intro, this looks pretty sweet!
I know it has been a couple of days since the HDC but I’ve been quite busy since I got home on Friday night, that I haven’t had time to blog about it!
First of all, I would like to thank Joe Olsen for letting me speak at this years conference! It’s cool to feel like *big time* dev from time to time! (Also, I hope that he lets me speak at next year’s conference in Omaha!) I had a great time handing out with Eric Johnson, Phillip Rieck, Jeff Brand, Matt Milner and the rest of the DSM gang!
Second, I would like to...
A couple of days ago, Don Box posted about WFPad. In his post he mentioned that he wanted IndiPad. Well, after working on for two hours last night, this is my take on IndiPad:
This version of IndiPad has limited functionality!! To open a .config file, you will need to select it’s corresponding assembly. In other words, if you want to open myclient.exe.config, you need to select myclient.exe in the dialog. Why? Well, I’m using the ConfigurationManager.OpenExeConfiguration method to load the .config file into a Configuration object. This way, I can get the system.serviceModel/services and system.serviceModel/client config sections (Ok, I cheated and disected...
Today at work, Seth, one of my friends, was explaining me the default behavior of VB.NET as a response to my previous post. Apperantly, VB.NET boxes native types automitically for you. So when you set an Integer to Nothing, it’s all good. In other words the following code is all good in VB.NET,
Dim i As Integer = 10Dim o As Object = io = Nothingi = CInt(o)
As expected, this C# code throws a NullPointerException in the unboxing from object to integer,
int i = 10;object o = i;o = null;i = (int) o;
All I have to say is that VB.NET is messed up.
Matt Tavis posted a pretty good guide for converting your .NET Remoting components to WCF. Pretty good read! Quick tally of hands, how many of you out there use .NET Remoting as, well, your remote solution?
While working with generics, I’ve realized this about their behavior with default values for types in C# and VB.NET. For example, if you have the following simple generic method in C#:
public static T GetDefault<T>(){ return null;}
For those C# inclined, you will notice that this function will not compile. Why? Since the method is generic (and without constraints), the compiler cannot assure the value of null for the type. In other words, the call
int i = GetValue<int>();
obviously breaks this assumption. Fortunately, the language offers the default construct that will return, well, the default value for a generic type. In other words, for int it will return 0 and for...
FYI: If you add a file called app_offline.htm to your web application, ASP.NET will shut down the app domain and redirect all requests to that page! So, if you’re one of those companies (or work for one) that happens to do big changes to your website during the day, you now have a good way of doing it.
Thanks to ScottGu nd Erik Porter for posting this!
If you’re serious about Windows development, you must add Charles Petzold’s blog to your reader’s list!!
[OverDuePost]
I should have posted this about a week ago when I first ran into these issues. If you’re planning on installing WinFX September CTP (beta2), know this:
This CTP installs a new version of the framework.
You must first uninstall your current framework version.
Due to the new version of the framework, SQL Express doesn’t work.
The SDK and VS Extensions only work with beta2 of Studio.
As previously posted, your beta1 WinFX code will need to updated to work with beta2.
I got a little ahead of myself when I was installing the CTP and because of it, I had to reformat my laptop. Hope this helps anyone who’s about...
I would like to thank Jeff Brand for taking the time to present at our user group meeting. He always does a great job in engaging the audience in his presentation. I like to call him “No Fluff, Just Stuff” Brand.
Thanks Jeff!
Joel Pobar has posted some great information on developing your own .NET languages. He also posts the source code for his Good for Nothing (GFN) compiler. He also lists a pretty solid list of .NET books for all to read.
I’m currently switching my reading time between these three books:
Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools
This is a pretty sweet book because it talks about the current problems in software development and proposes a solution for solving them and automating (industrializing) the software development process. The authors are key architects for VSTS.
Enterprise Services with the .NET Framework : Developing Distributed Business Solutions with .NET Enterprise Services
Really good book by Christian Nagel. He covers all the bases for ES development and is a great read for new to experienced developers. Currently I’m using this book as a good...
Michelle Leroux Bustamante (dasBondle), posts a good question: What’s a WCF best practice, Proxies or ChannelFactory? If you take a look at her comments, you can read my two cents on the issue.
Earlier, I had mentioned that I will blog about the changes for beta2 of WCF. Well, Omri Gazitt already blogged these evident changes. If any of you have have written any apps with beta1, I recommend you read his post to help you troubleshoot your changes.
Lately, I’ve been working a lot in .NET 2.0; specially with generic collections. After working with System.Collections.Generics.List, I’ve learned to appreciate its ForEach method. Oh, how much it reminds me of the map procedure in Scheme. Can you tell which code is faster?
namespace GenericList{ using System; using System.Collections.Generic; using System.Diagnostics; class Program { static void Main(string[] args) { string[] numbers = { "1", "2", "3", "4", "5"}; List<string> numberList = new List<string>(numbers); // Create a watch to time the execution! Stopwatch watch = new Stopwatch(); watch.Start(); // Old boring way! foreach (string string1 in numberList) { Console.WriteLine("First For-Loop Value: {0}", string1); foreach(string string2 in numberList) { int n1 = Int32.Parse(string1); int n2 = Int32.Parse(string2); Console.WriteLine("\tSecond For-Loop Value: {0}+{1}={2}", n1.ToString(), n2.ToString(), (n1 + n2).ToString()); } } watch.Stop(); Console.WriteLine("For-loop time: {0} millisec(s)", watch.ElapsedMilliseconds.ToString()); // One empty line for ease of read Console.WriteLine(); watch.Reset(); // Get value of list without loop! watch.Start(); numberList.ForEach(new Action<string>( delegate(string s) { Console.WriteLine("First Delegate Value: {0}", s); // Lets loop again! numberList.ForEach( new Action<string>( delegate(string s2) { // Convert to numbers int num1 = Int32.Parse(s); int num2 = Int32.Parse(s2); // Output the simple loop sum Console.WriteLine("\tSecond Delegate Value: {0}+{1}={2}", num1.ToString(), num2.ToString(), (num1 + num2).ToString()); } ) ); } ) ); watch.Stop(); Console.WriteLine("Delegate time: {0} millisec(s)", watch.ElapsedMilliseconds.ToString()); watch.Reset(); Console.ReadLine(); } }}
[OverDuePost]
While working with COM interop (VB6 client / .NET Server), our architecture team ran into some problems with returning typed arrays back to the client. I had spent over two hours trying to get things working with the correct set of attributes, but I kept on getting “Type Mismatch” errors in VB6. I had to leave early to meet up with my wife and Fred and Nick stayed after to help with more research. This is our brain child:
Domain object (and interface) that is used by VB6 to populate its UI
namespace InteropLibrary{ using System; using System.Runtime.InteropServices; [InterfaceType(ComInterfaceType.InterfaceIsDual)] [Guid("905816E8-9C73-42f0-A776-7117ACF633BD")] public interface IPerson { [DispId(1)] string FirstName { get; set; } [DispId(2)] string LastName { get; set; } [DispId(3)] string ID { get; set; } }}
namespace InteropLibrary{ using System; using System.Runtime.InteropServices; [ClassInterface(ClassInterfaceType.None), ComDefaultInterface(typeof(IPerson)), ProgId("Interop.Person"), Guid("135983AB-8242-41fb-8ED8-FDE3383A2FDD"), Serializable] public class Person : IPerson { string firstName; string lastName; string id; public Person () { ID = Guid.NewGuid().ToString(); } public string FirstName { get { return firstName; } set { firstName = value; } } public string LastName { get { return lastName; } set { lastName = value; } } public string ID { get { return id; } set { id = value; } } }}
Server object (and interface) used by VB6 to return either a single...
Just wanted to mention that there are significant changes from Beta1 to Beta2 for Indigo (Windows Communication Foundation) that will make your beta1 applications not to work under the new version.
Right now I’m trying to sort through all the big differences. Thus far, I’ve found out the following: wsProfileBinding is no more. wsHttpBinding is now it’s equivalent, also System.ServiceModel.IProxyChannel for your proxy client is no more.
I will try to point out the big changes for the two versions of Indigo.
Clemens Vasters has a new article on MSDN entitled Introduction to Building Windows Communication Foundation Services. The article gives you a nice run through the major parts of Indigo (WCF) and what it can do.
Check it out when you have the time!
Nikhil posts on the architecture of the Atlas framework. I’ve downloaded Atlas but have yet to find time to play with it! Curse these house chores!!
Anyway, it appears that Atlas provides support for client and server (and things in between). The thing I’m interested in finding out is how they create the dynamic JS proxies to interact with ASMX, Indigo and ASPX…
A LINQ (Language INtegrated Query) paper by Don Box and Anders Hejlsberg has been posted on MSDN. I haven’t read all of it yet, but so far so good.
The paper gives you a great deal of information of the functionality and features of the new framework.
The WinFX September CTPs have been released. Click the next links to get your fill of goodness.
Runtime Components
SDK
VS Extensions
ScottGu has posted the code for the Atlas keynote. Check it out, it’s pretty damn cool!
Ok, I know that was a stupid post title. But you have find it amusing that Windows Workflow Foundation (WWF) ended up with that TLA.
What is WWF? Well, it builds workflow right into the operating system (Win Vista) so your applications can take advantage of it.
Will this replace Biztalk? You ask? I don’t know and I don’t think so. Matt Milner has some interesting things you should consider though in that issue. Thanks Matt for your input!
Kent Tegels chimes in about his impressions of LINQ. Kent has a great set of points (and concerns) with the new framework. I specially agree with his fourth point.
Thanks Kent for your input!
Interesting observation:
Has anyone else noticed that some of the features defined by the C-omega language (download) are being split between the 2.0 and 3.0 version of the language? Don’t get me wrong, I think it’s awesome that the language is getting all of these awesome features. I just find it a bit interesting that they waited this long to release all of the goodness…
Here’s an excerpt from the article link above:
C? includes a number of constructs from the SQL language as keywords. Operators for performing selection with projection, filtering, ordering, grouping, and joins are all built into C?
If you look at the LINQ...
I’ve only played with this for a few seconds and all I can say is that it’s pretty sweet…check it out!!
What is it? it’s a pretty sweet implementation of Avalon and Indigo…can you imagine writing applications like this one?
This is awesome! Read about C# 3.0 and Visual Basic 9.0 and their sweet features.
C# 3.0 is going to be sweet…
Yes! During a PDC keynote speech, ScottGu releaved the Atlas bits to developers! If you’re as anxious to play with the technology as I am, you can learn more about it here.
I can’t wait to start playing with it!
Yet again, ScottGu posts on how you can take advantage of custom item templates in VS2005. As Scott puts it, This feature enables developers to define common templates that they can re-use over and over when adding new pages/classes/controls into web projects or class libraries, and avoid repetitively typing standard content or code.
All I have to say is “sweetness”…
Eran Sandler posted some great information on Runtime Callable Wrappers (RCWs) for COM interop. A good read for those COM oriented folks…
Someone asked about the support of anonymous classes within the .NET Framework yesterday at our monthly user group meeting. At the time, I didn’t realize that I said that the .NET Framework does not support anonymous classes. I apologize for this incorrect statement!! The framework does support anonymous classes ONLY in J#. Why? Well, anonymous classes is a feature of the Java language.
If you want to know more about how anonymous classes work, check out my earlier post.
Richard Turner posts information about the support for “RPC” and “Messaging” programming models within Indigo. A quick read with good information.
Ok, well first and foremost, I would like to apologize for my delay of this post. Lately work has been sucking my brain dry!! When I get home, I just want to stare at a wall and pretend the pain is gone. Don’t get me wrong, I love what I’m doing right now, but I get so deep into it that it even haunts my dreams!!
What is this haunting? Well, it’s Enterprise Services. I’ll get to the reason in just a bit. The code I posted a while back asked a simple question, what does the code output?………Bueller? Bueller? Bueller?...any one?...
Today I passed my fouth exam, Analyzing Requirements and Defining Microsoft .NET Solutions Architectures (70–300) for becoming MCSD.NET certified. The test was not hard, nor easy…it was right up the middle with a TON of reading!! I recommend if you’re a slow reader, to start practicing on skimming useless business content for the tech-meat you crave when designing applications. Doing so will make you better prepared for the test’s long case studies.
Oh yeah, just a head’s up. Biztalk Server is the answer to all your problems!
If you have an MSDN subscription, you can download WinFS to play with. If you would like to meet some of the members of the WinFS team, you can check out this video on Channel9.
What does this code output?
.csharpcode
{
font-size: small;
color: black;
font-family: Courier New , Courier, Monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
1: namespace GenericsExample 2: { 3: using System; ...
I don’t know how I could have missed this yesterday! Brad Abrams posted the series of posts that Richard Lander had on the implementation of the GAC in the .NET Framework 2.0. It’s pretty sweet to look at the behind details for a very important feature we take for granted.
Read on!
Question, is it just me or is this pattern like a declarative abstract abstract-factory (GoF)? I just got done looking at the MovieFinder example for Spring.NET and that’s what it seemed to me.
Any thoughts?
John Evdemon has posted a series of articles covering different aspects of Service Design. The first article entitled, Service Patterns and Anti-Patterns covers the basic SO tenants and patterns and anti-patterns for effective web service design. The second article, Service Versioning talks about versioning schemas for your web services. Good reads all around!
Yet another week that has gone by with me not bloggin. Man, I miss being back at the main office! On the upside, I’m doing a lot of research with Enterprise Services (ES) for one of main customers. They are currently moving their application from being mainframe based to a .NET n-tier framework. So, I’m kept pretty busy most of the day reading articles and writing proof-of-concepts. The kicker about this part of the architecture is not just the get us something to make it all work, but it is also position us so when something new comes out (Indigo/WCF) we...
On Friday, I was assisting one of our client’s developers in building and deploying their first COM interop application. It has been a while (early 2002 to be exact) since I’ve done any COM interop. So, needless to say, I had to catch up rather quickly.
The application we are deploying is launched from a legacy VB6 application that launches other VB6 applications. The .NET application connects to DB2 running on an AS400 through OLEDB. After of a couple of hours of trial and error, we got the application up and running. So, I’m giving you, my three readers, a list of things to...
Nick and I had a heck of a time today trying to load an assembly into an application. Sounds pretty straight forward, don’t it? Well, it’s harder than you might think. We took two approaches to the problem: use a new AppDomain and load from it or load using the Assembly class.
The first approach was pretty straight forward. Create an AppDomainSetup object and set it’s ApplicationBase, ApplicationName, PrivateBinPath and PrivateBinPathProbe properties to the directory path where your desired assembly lives. Next using the CreateDomain method from the AppDomain class, give the new domain a name and pass it the newly...
Well, I've been out of the bloggin scene for the past week due for many reasons. The most important one is that I've been down at a customer site and it's hard to blog when they monitor your internet access. I make a note to blog about my finding and run-arounds with technology when I get home, but I always forgot or get sidetracked.
On 7/30, I installed Vista as my base OS. Why did I do that? Well, the VPC ran like sh*t! It was soo slow that was a complete waste of time to do anything on it. Vista...
While reading Nikhil's blog, I bumped into this post on his JavaScript Utilities project. This like a pretty cool add-on to your bag of development tricks! Currently this project is on the works, so there's room for growth.
The thing I like about Nikhil is that he tends to think outside the box a lot when it comes to ways of improving web development. Keep it up!
I know the news is old, but for those of you that don't know, MS has released an ASP.NET Provider Toolkit. For those of you that are not familiar with the Provider pattern, it allows you to abstract the “where” and “how” questions for your data layer.
The Provider pattern tackles the “where does the data live?” question by allowing you to implement your own retrieval mechanism. In other words, you can have an SQL Server, Access, AD, DB2, etc. providers. The way you connect to these sources, it's totally up to you. For those of you familiar with J2EE, it...
I know I'm a little behind on the news, but just wanted to mention it. Wintellect has released the code for their PowerCollections (PC) project. Peter Golde, former Lead Designer for the C# language, was heading this community project.
If you're interested you can dowload the code from here. Also, please note that PC requires .NET 2.0.
All I have to say is RTFM! Well, if I would have looked at the SDK document a little bit closer, I could have read the answer!! Anyway, here’s the updated configuration file:<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
<services>
<service
serviceType="Lozanotek.Examples.Indigo.TestService">
<endpoint
address=""
bindingSectionName="basicProfileBinding"
contractType="Lozanotek.Examples.Indigo.ITestService" />
<endpoint
address="/ws"
bindingSectionName="wsProfileBinding"
contractType="Lozanotek.Examples.Indigo.ITestService" />
<endpoint
address="/wsDual"
bindingSectionName="wsProfileDualHttpBinding"
contractType="Lozanotek.Examples.Indigo.ITestService" />
</service>
</services>
</system.serviceModel>
</configuration>
Ahh, the sweet smell of functional code…
Ok, you problably have already read how to accomplish this from either the SDK docs or another blog. I just wanted to add a little aside to the configuration of your IIS hosted service. When you configure your service to run under the direct virtual path, i.e. http://servername/virdir/serviceName.svc, you can ignore the value of the address attribute under your endpoint definition since the address is relative. However, I’ve been having a heck of a time trying to define multiple endpoints for the same service. Take the following configuration layout:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
...
This past Saturday, Tim and I hit the links and talked "shop" for a while. I was like talking "shop" with Tim because he always has some good inputs/insights on design, architecture and beer. One of the topics we talked about for quite some time was that of domain objects. The conversation went a little like this ...
Tim - So, do you have any business logic in your objects?
Me - No, I see domain objects as nothing more than just complex types. The are but puppets of my(1) framework.
Tim - Then how do you get your objects?
Me...
That’s right! Come one, come all! See the monkey (me) do the ASP.NET 2.0 jig! (Disclaimer: In the previous sentence, the word “jig” does not infer the word “dance”). If you’re going to be around the area, stop by, eat some pizza and point and laugh.
Before I forget, if any of the three people that read my blog are going to be there and have any questions. Please use the comments section of this post to ask them. Make sure to leave your name also!
Follow the yellow bricked road...
1 using System;
2
3 [assembly: Attributes.Instance(TypeName = "Classes.Something")]
4 [assembly: Attributes.Factory(TypeName = "Classes.SomethingFactory")]
5
6 namespace Attributes
7 {
8 [AttributeUsage(AttributeTargets.Assembly)]
9 class InstanceAttribute : Attribute
10 {
11 private string typeName;
12
13 public string TypeName
14 {
15 get { return typeName; }
16 set { this.typeName = value; }
17 }
18 }
19
20 [AttributeUsage(AttributeTargets.Assembly)]
21 class FactoryAttribute : Attribute
22 {
23 private string typeName;
24
25 public string TypeName
26 {
27 get { return typeName; }
28 set { this.typeName = value; }
29 }
30 }
31 }
32
33 namespace Interfaces
34 {
35 interface ISomething
36 {
37 void Do();
38 }
39
40 interface ISomethingFactory
41 {
42 ISomething GetSomething(Type t);
43 ISomething GetSomething(string typeName);
44 ...
Today I read this post from Peter Hallam, the C# guy. He gives a great, detailed description of why they changed the access rules that governed the ... well, access to protected constructors in C# in .NET v1.1. I suggest you take the time to read it.
Quick question: How many of you out there use protected constructors?
Well, if you are, then check out these free web casts and virtual labs Microsoft has to offfer! Yes, you're not hearing things, I did use the word F-REE in the last sentence. Thanks to Jeff Brand for pointing these out to us!
Ok, fine, yes there's a catch...if you learn anything from these, you have to teach me! ;-)
A while back I posted a side rant dealing with the wide usage of AJAX. I made the comment that XMLHttp (the main technology behind AJAX) has been used with Microsoft products for quite sometime now. I recall using the feature my freshmen year in college while playing around MSXML Parser 3.0. I just ran into this post from Scobleizer (Robert Scoble) in which he describes the conversation he had with Jean Paoli, a co-author of XML and MSoftie with regards to AJAX. I specifically like this quote:
"My team invented XMLHttp in 1998" - Jean Paoli...
For those of you interested in doing some Indigo programming with WinFX Beta1 RC SDK (long name, I know!!), you must install these fixes: COM+ Hotfix for Indigo and MSMQ Hotfix for Indigo. I installed it yesterday just to make sure that I'm up to speed with the "Indigo kick". Andy Milligan has a great post that shows you how you can fix an existing SDK example to work with this patch. Take a look!
I wrote my third Code Project today during lunch. It's entitled Howto: Enable Intellisense Support for Configuration Files In VS.NET 2003 and well, the title says it all! If you have the time, please go read it! And don't forget to rate it!
That's right folks, Nick and I decided not to use name yabe (yet another blog engine) anymore! Instead it we are calling Ablogin.NET (get it?). If you have the time, go check out the site we have setup for it. I should have some time this evening to push out a list of features we want the engine to support. If you would like to help with the project or is interested in submitting a feature idea, there's a feedback form you can use.
Not going to get into a J2EE vs .NET battle, just want to publish out these two links that I found while reading my ServerSide.COM newsletter. They are links to benchmarks and comparisons of Web Service performance & JSF-WebForms and IDEs. Being a duck that used to swim in both ponds, I find these pieces quite interesting. So check them out if you have the time.
While looking around the internet this morning, I bumped into this little tool. I haven't played with it yet, since I don't do v2.0 development at work :- ( So if anyone has the free time during the day, let me know how it works. It beats working with the command line tools.
That's right folks! Tomorrow is our monthly .NET pow-wow with XML as our topic. For those of you looking for a good 'geeky' night and free pizza, stop on by and say hello. The more we have there the merrier the time!
Since we have infinite amounts of spare time in our hands, Nick and I decided to start a little side project called: yabe (yet another blog engine).
Why a project you ask? Well, we wanted to have something meaningful to work with as we sharpen our skills in .NET 2.0 and VS.NET 2005. We are thinking the whole nine yards on this project, by using VSTS to host our code/tests, full fledge use of new class diagrams (thanks Whitehorse), SQL Server 2005 backend and Indigo as a service layer. Granted all of these ideas are still on the white...
Some one wanted to know of a version of Avalon/Indigo that works with VS.NET 2005 Beta2. Well, you can download it from here. This has been out for some time but I've just been busy and haven't posted the url yet. I'm a slacker! Sorry!!
For the past couple of days, Nick and I have been working on tweaking VS.NET to add extra functionality. Nick is currently working on adding more NAnt support to the IDE, while I started to mess around with our dear old friend, the .config file.
After lunch today, I was wondering how hard it would be to add intellisense support to any .config file through VS.NET (a feature that is long awaited in VS2005). I gots to thinking about it and then I realized that there are two requirements:
The full CLR config file schema
The location of all .config file...
Last night we held our monthly IADNUG meeting, had a pretty good turn out of ~30 people. Kent Tegels from DevelopMentor presented on SQLCLR in SQL Server 2005. Thanks Kent for taking time out of your busy schedule to talk with us!
What's your take on this? Would you rather use Enterprise Library as an extra set of tools for your framework or would you rather build it? I'm interested to see what my three readers have to say about this...
This Wednesday we will have our monthly IADNUG meeting. Kent Tegels from DevelopMentor will be presenting on SQL Server 2005. If you are free on Wednesday night stop by and learn a little bit about SQL Server 2005. Pizza will be provided by Microsoft.
Brad Abrams, .NET Framework PM, posted this interesting tidbit about using the Length property of an array directly in a loop as supposed to assigning it to a local variable. For example: int length = myArray.Length;
for (int i=0; i<length; i++)
for(int i=0; i<myArray.Length; i++)
If you have time, I suggest you read it. You'll be surprised on how the framework handles this issue.
Is it just me or don't you hate the fact that when you are working on a project in VB.NET, that from time to time you get a race condition from a manual build? (The message in the Task list that says "Unable to write file ... to ..."). The reason I think this happens is cause of the fact that VB.NET compiles the code for you in the background and that at times it keeps holding onto the assembly when you force a manual rebuild. How do you fix this? Kill the IDE...yeah, it sucks!
Have...
I just passed my third exam on my conquest for MCSD .NET. Having passed the Windows, ASP.NET and Web Services exams makes me a MCAD .NET developer. What does that mean? Well, nothing. I'm still the same geeky looser I was before the exams.
What test is next? I got my eyes on the Implementing Security for Applications with C#...man, I start tasting the declarative permissions attributes right about now...
I finally wrote my first Code Project article! The article is called Extending ASP.NET Web Controls With Custom HTML Attributes, if you have the time check it out and tell me what you think! Also, I will like to extend my deepest thanks to Nick for pushing to write an article.
If you got the time, there's a good article on MSDN that steps you throught the process of creating a simple API with the new class designer in VS.NET 2005. This is time well spent...
For those of you that know me, I like to work on random skunk works from time to time. Some of these works have allowed me to explore different software design methodologies. Or as Nick will call it, the coding of "factories that create factories that create factories". So I'm asking you, my three readers, what do you think should be my side project? Here are a few of the ideas that I've been kicking around my head:
Web Application Framework in .NET 2.0 - I've always talked about building a web/windows application that uses a custom framework to create web/windows...
I had a couple of minutes to kill this evening, so I decided to spend it playing around with VS.NET 2005. A while back I wrote a simple web framework based on xml for this site. Well, I wanted to see how some of the base classes would look like on the new class designer in VS. All I did was add the .cs files to the project, added a new class diagram and dragged three classes from the Class View window. This is what the diagram, after exporting it to a gif, looks like.
The code has been modified...
Nick showed me this cool VS.NET add-in that totals up the lines of pure code (no comments, they are counted seperately). Currently, the project that Nick is working on totals at about 2,200 lines of pure C# code! For my Sprint project, written in VB.NET, comes at 11,700 lines (around 2,200+ lines of comments!)!! That's a lot of VB.NET code...specially from the guy that doesn't do that much VB.NET. If it were only C#...oh, it's good to dream.
Nick sent me a link to Michael Swanson's blog, and I happen to bump into this post that spoke about the experience that developers from different platforms (Linux, Java, Flash, etc.) had to say about .NET. A summary of their insights can be found here.
Kudos MS!
A recent Computerworld survey has placed C# as the top of the Top 5 programming languages reported in use by respondents list.
Here's a list of the results for languages:
C# - 72%
Java - 66%
Visual Basic - 62%
C++ - 54%
JavaScript/ECMAScript - 50%
If you have the time, I suggest you read it. It's worth the time!
Well, it took a whole hour, but I finally installed VS.NET 2005 Beta2 along with the Avalon/Indigo CTP! Now, if I could only find time to play with it...I just can't wait to play with Indigo!
Paul Sheriff, MS Regional Director, is the latest interviewee of the .NET Rocks! radio show. Some of you might remember Paul from our past IADNUG meeting. On this installment of .NET Rocks! Paul talks about software architecture. Check it out!
For those interested geeks out there (without MSDN Universal...like me), the Avalon and Indigo Community Technology Preview - March 2005 is out...go download it!
It's scary how some of us geeks tend to think on the same wave length...
<rant>
Earlier today, Nick and I were talking about AJAX and how it's now supported by most browsers. In particular, how Google Maps have managed to use this browser feature to make their application run smoothly. Some of you out there might be saying, "Yeah, google maps, it's soo cool! Look how it uses AJAX!"...well, what about OWA or even so Web MSN Messenger? I'm not sure how many of you know this, but all of these async http request functionally was added to IE with the...
Tonite Nick, Ryan, Seth and I attended a talk by an old acquaintance of mine, Kevin Moore, an Avalon PM. His Avalon presentation was "no fluff" and packed with tons of examples. I've seen what Avalon can in regards with basic UI layout, but after this meeting, I've gained more respect for it.
There's definitely a lot of neat things one could do with the Avalon framework, the hard part for me is finding the time do play with it...specially if I want to play with Indigo. Thanks for the talk Kevin!
Now, I'm not sure how many of you log your exceptions (caught/un-caught) within your ASP.NET web application. If you don't, get a little closer so I can smack you! ;-)
<designRant>
Logging your exceptions gives you the advantage of having more information related to the inconsistancy in a common place, ie. flat file, db, etc.
</designRant>
Ok, for those of you that DO log, I'm not sure if you are aware of this interesting feature of VS.NET 2003. If you...
Good question! Anonymous classes in Java allow you to implement adapter classes within your code. Huh? Pretty simple, if you have a class that returns an Enumeration interface (like a custom list, stack, etc.), you can define the implementation of the code right on the method declaration. To get a better grasp of it, check this example from the Java tutorial, also please note the last sentence regarding their usage in code.
Ok, how does this tie to .NET? Well, for some time I've been talking with Nick about this feature of the Java language and how sweet it will be...
... to the C# developer that's coding it. Nick and I have been quite busy working on a VB.NET web project for Sprint. As some of you know, Nick and I are pretty fleunt in C# (the fact that Nick is an MVP for the language proves that at least he is!), so our VB.NET code doesn't flow as smoothly as our C#-syntax does. It took Nick 5 minutes to write a simple handler (.ashx) in C# and an additional 20 minutes to make it work in VB.NET...that's just a poor use of a resource's abilities! It's like me asking...
Today myself along with other members of the .NET User Group atteneded the MSDN Event presentation by Mike Benkovich, our Developer Community Champion. The presentation material like usual, gave a pretty good starting point for developers to follow with their wondering minds.
To me the highlight of this event was the showing of Visual Studio Team Systems. All I have to say this is something all developers (yes, architects are developers too) will find extremely useful for managing enterprise projects. All of course, is built on Whitehorse which from the start seemed pretty kick-a**, now after a several...
While look through microsoft.com's webcast events, I ran into their Modern Software Development Using C# series. It's a series of 15 webcasts that will cover a range of topics dealing with Windows development. So if you are just starting on .NET or are interested on the subject feel free to check them out.
This is the compliment to the previously released VB.NET sessions.
This material from Don Box is a little dated, but it covers our soon-to-be-friend [ServiceContract] pretty well. Also, Nick and I were scetching some ideas on the board of how to come up with a pseudo-Indigo for dnfx 1.1...our ideas are some what rough, but I think there's something brewing.
I just finished reading, Dave Chappell's article on Indigo. Man, I can't wait until we have access to the CTP! If I were to pull three main points from the article, I will say the following:
Indigo surely emcompases all 'distributed' computing technologies under an easy to use bundle (see Nick's post).
Indigo pushes developers to think of services as components of their applications rather than something mystical and external to their application.
Indigo makes you wonder if your current (serviced|distributed)-architecture can withstand a smooth migration.
The most interesting section of the article was titled Coexistence and Migration. Dave outlines how...
Currently, I'm doing a lot of work in VB.NET...yeah, I know...so if you take a look at my VB code, it has a a bit of a C-hint to it. I guess, I just miss some of the nice language constructs C# has to offer. In particular, the terniary operator (? operator). After making writing several pseudo-terniary statements in VB, I decided to look at the IL that makes up the C# and VB.NET statements. So, let's take a look at the C# statement first:
namespace Lozanotek.Examples
{
using System;
public class TerniaryTest
{
public TerniaryTest()...
I would like to extend a big thank you to Jeff for taking the time to come down and give a presentation to our group! Also, thank you to all that attended! Eric, Nick and I were talking after the meeting and we all decided if we keep getting more people at our meetings that we will need to find a bigger room! (A problem that we will love to have, so help us out!) Also, a huge, huge thank you to Grandview College for allowing us to use their facilities and supporting since our beginning!
For more information about our...
On Monday, Nick had a great post about how some popular Java open source projects, "frameworks", are now creaping into the .NET "Open Source Scene". Jeff also, had a good input about the "get it out the door" .NET mindset. Then Kent posted about how MS got developers hooked into the "just glue it attitude."
Here are my two cents on the issue...Having been heavily exposed to both .NET and Java (J2EE), I say that yes if you want a shot time-to-market development, then .NET is the answer for your solution. However, if you want a robust framework that will ship...
Tonite we have our monthly dotNET User Group Meeting at Grandview College. Our speaker this evening is good ol' Jeff Brand and the topic at hand is an overview of ASP.NET 2.0. Here's more information about the meeting:
Wednesday Feb 2nd, 6:00pm
5:45 - 6:15 : Pizza & Pop
6:15 - 7:30 : ASP.NET 2.0 Overview
This session will provide an overview of the new features and capabilities in ASP.NET 2.0. It will include demonstrations of key new technologies including personalization, membership and themes/skins.
Speaker: Jeff Brand is a .NET Architect for Microsoft. Jeff assists customers in evaluating, developing and deploying...
The System.Security.Principal.WindowsPrincipal class was intended, according to MSDN, to allow code to check the Windows group membership of a Windows user. For example, ADO.NET uses this class to access a SQL Server resource when the connection string specifies the usage of Integrated Security by accessing it via the Thread.CurrentThread.CurrentPrincipal property.
Of course, if you are going to have a WindowsPrincipal, you need a System.Security.Principal.WindowsIdentity, a representation of a Windows user, class to interact with it. Unfortunately, you cannot create an identity from a constructor or managed method. Instead, you are restricted to use the Win32 API function LogonUser that's under...
Ok, so you've written your share .NET assemblies (by this I mean both .dlls and .exes) in C# or VB.NET ... or even better, COBOL! But have you ever wondered how it all happens? It is just smoke and mirrors? If any of you have read (or are currently reading) Jeffrey Ritcher's book, Applied .NET Framework Programming, you can recall that in pages 9-18 he gives you a pretty good run down of how the CLR is loaded when you execute a simple program, for example the infamous Hello World.
But this post is not about Richter's book example (although,...
Brad Abrams has posted a list of the coding standards for C# used by Microsoft. I will have to say, "WOW!" After looking at this, I realize that I'm huge violation of the correct way of formatting my code. (Granted my C# standards are great mixture of my C++/Java standards).
If you have time during lunch today, I say it's worth taking a look...and start changing those 'bad' coding-habits.
Long ago, while browsing the great pages of MSR (if you don't do that know, I suggest you do from time to time), I stumbled into a C# language-extension called, Polyphonic C# (Poly-C#), an extension that offers asynchronous concurrency abstractions for distributed programming (whether it be multi-threaded or multi-machine).
A while back, my good friend Nick had a quick post about the new .NET research language C-Omega, a C# superset. This peaked my interest a little. I asked myself, “Adding more cool stuff on top of C#?! Is there no end to the greatness?” I started digging into this new phenomenon...
To my surprise, the people...
While browsing through MSDN, I bumped into the Microsoft ASP.NET Webcast Series. It's nothing more than a collection of more than 40 hours of free, on-demand ASP.NET-goodness!
If you have some free time, I suggest you take a look.
I was playing around with some code today and I wanted to explore a good mixture of polymorphism and inheritance on my example. So, I decided to come up with an example that used interfaces and interface-inheritance. Take a look at the following code:
// Simple interface defining one method
public interface ISampleA
{
// Leave the definition to the implementor
void DoTaskA();
}
// Another simple interface defining one method
public interface ISampleB
{
// Leave the definition to the implementor
void DoTaskB();
}
// Make things fun...This interface inherits from the other two
...
Live Message, a service provided by http://www.messagecast.net has a great service that bloggers can use. They use the .NET Alerts system to inform MSN Messenger users about updates of their favorite blogs. If you have the time check it out! Also, click here to register to my blog's update alerts!
I would like to extend a thank you to Jeff Brand for taking us to Omaha Prime for dinner last night! Some of the people there were Joe Olsen, Phil Wolfe, Nick Parker just to name a few. Our dinner conversation ranged from digital media to 'Remember, when the Man Show used to be good?'. At the end we all agreed that the Man Show Boy Selling Beer was a great skit!
Thanks Jeff!
Lately, I've been posting some code samples on how to do simple threading using Delegates as well as handling event registration manually. Nick pointed out the following post by Brad Adams that talks about a possible race condition when invoking an event (a)synchronously. Take for example, the following code:class ClassA
{
public event EventHandler SomeEvent; protected virtual void OnSomeEvent(object sender,EventArgs e)
{
if(SomeEvent != null)
...
I was looking through the C# Language Specification and bumped into the following explanations about Events section 1.7.5:
For a simple event declaration such as
public event EventHandler Click;
the compiler automatically provides the implementation underlying the += and -= operators.
An implementer who wants more control can get it by explicitly providing add and remove accessors. For example, the Button class could be rewritten as follows:
public class Button { private EventHandler handler;
public event EventHandler Click {
add { handler += value; }
remove { handler -= value; } }}
This change has no effect on client code, but allows the Button class...
Today, MSDN started a series called Designing .NET Class Libraries. The series presents guidelines for developing classes and components that extend the .NET Framework. Some of the topics covered are Naming Conventions, Rich Type System and Packaging, Assemblies and Namespaces to name a few.
If you have some free time, I recommend you take a look!
While in college, I bumped into something called the Tao of Programming. The tao, according to dictionary.com, is the basic, eternal principal of the universe that transcends reality and is the source of being, non-being and chage.
Wow! Having that said, here are a few inspirational words from the Tao:
The Tao gave birth to machine language. Machine language gave birth to the assembler. The assembler gave birth to the compiler. Now there are ten thousand languages. Each language has its purpose, however humble. Each language expresses the Yin and Yang of software. Each language has its place within the Tao. But do...
Currently at work, I'm working on a VB.NET web application. Since, I'm C-inclined (C++, C#,Java) it's kinda hard switching back to writing in BASIC. So, I've been using this handy-dandy web page to help me translate back and forth. To my surprise, the author of this page also created the same thing for Java (1.5)/C#! This is also pretty handy in realizing how SIMILAR the languages are...however, C# is better cause it has structs! (just kidding)
Hope you find these links as useful as I have!
When I worked at Principal, we used Ant a lot for building our JARs and EARs against our code repository. Also, we used to aid the already tideous EAR deployment process. I've known of NAnt for quite some time, but never actually played with it...My reasoning was...why should I? I have VS.NET!
One of my 'New Year's Resolutions' was to get more in-touch with .NET (abstract concepts, languages, CLR) and .NET Related tools (aside VS.NET). Thus far, I have played with NUnit and as I suspect it, I picked up rather quickly thanks to my previous JUnit exposure. So tonite, before...
A while back, I had a post that showed how you could check if a file was a .NET assembly. Well, around that time, I wrote a simple application to test this function. However, the way I did the test app is not ... how should I put it ... common. I decided to use threading to facilitate the searching of the assemblies under the netfx folder...the threading has a little bit of a twist. It uses a custom delegate (a class that maps to System.Delegate ... well, it's more like System.MulticastDelegate, but I'll let you read about it!) to do the dirty work of searching!
If you...
Currently at work, I'm designing a web site for the nice people at Sprint. This site has the basics (web user controls, web forms, db connections, etc.) of an ASP.NET application. More importantly, it needs to maintain a certain look and feel...we shall call this a 'page template'.
The 'old way' of adding a new ASP.NET Web Form to the application had the following steps:
Add a new ASP.NET Web Form
After the page is added, change the base class to be a custom page rather than System.Web.UI.Page
Change the HTML to reflect the standard page layout and drop in all the Web UserControls the page...
My good friend Nick Parker was awarded the Visual C# MVP (Most Valuable Professional) award for 2005! This award is given to professionals that go above and beyond the call of duty in development communities by assisting their peers.
Please join me on congratulating Nick on this great accomplishment!
Yesterday, I posted an answer to a question on Code Project dealing with evaluating expressions in C#. The person who asked the question wanted to know how to evaluate expressions with an eval() function (like the one in JavaScript/JScript).
After playing around with some code snippets, I came up with the following answer:
using System;
using Microsoft.JScript; //Microsoft.JScript.dll
using Microsoft.JScript.Vsa; //Microsoft.Vsa.dll
string expr = @" var x = 11; var y = 'A'; var bEval = false if ((x > 10) && (y == 'A')) { bEval = true; } else { bEval = false; }";
VsaEngine engine = VsaEngine.CreateEngine();object o = null;try{ o = Eval.JScriptEvaluate(expr,engine);}catch(Exception e){ Console.WriteLine(e.Source); Console.WriteLine(e.StackTrace);}
Console.WriteLine(o); //Outputs 'True' to the consoleConsole.ReadLine();
Enjoy the code!
This article dates back a couple of months (seven to be exact), but topic covered is well worth it. There are other tools out there for code generation (such as CodeSmith) that help with the generation of basic objects. But the nice thing about the method described in the article is that you could use the same XML Schema to pull data from SQL Server and with a little XML Serialization magic you could populate the object in a flash!
Hopefully, I will have some spare time to write a simple article (maybe for CodeProject) that shows you how to do this.
Today, my dear friend SharpReader brought me back an interesting post with an interesting correlation. Have a read and tell me what you think ...
I am not sure if any of you know this, but I'm very involved in our local .NET community. I'm currently the Program Chair for the Iowa DotNET User's Group (IADNUG) based out of Des Moines, IA. My main responsibilities are arranging meeting topics, guest speakers and maintaining member resources. Prior to working with IADNUG, I was involved in doing 'Tech Talks' at Iowa State University, where we tried to preach the '.NET word' to CS, CprE and MIS students.
One of my goals is to become more involved with the 'online' .NET community. During college, I was involved with DevHood...
A while back, Sun Microsystems' Java architects published a book entitled, Core J2EE Patterns. In this book, they covered some basic enterprise patterns for building robust J2EE applications. For example, if you want to attach some pre- and post-processing of web requests to your application, the books suggests that you use the Intercepting Filter pattern.
Another good pattern, one that we in the web-world are very familiar with, is that of Model-View-Controller (MVC) or Service-to-Worker. This patterns allows you to break your web application to fit a nice three-tier architucture in which each layer is independent from each other. The interesting thing about this pattern is that...
Well, the long awaited Heartland Developer Conference (HDC) took place today here in sunny, Des Moines, IA! The turn out was great! All of the speakers did an excellent job with their presentations! A big thanks to Joe Olsen, Kent Tegels and Jeff Brand for all of their efforts into making this happen!
Some of my highlights from the HDC were Rocky Lohtka's keynote speach on SOA, Sam Gentile's in-depth look at C# generics. Man, those two presentations were the meal that satisfied my geek-hunger.
Plans for HDC '05 are underway and a brand new concept called the Heartland Developer Network (HDN)...
Today I had one of many exams to come on my way to MCSD certification. Today's exam was that of MCAD/MCSD 70-315, Developing and Implementing Web Applications with C#. The exam was not too bad, questions were tricky in the sense that at times it was hard to make out what they were asking. The exam was 43 questions with a 2 hour limit for completing.
The next exam on the queue, is that of MCAD/MCSD 70-320, Developing XML Web Services and Server Components with C#. The topics for this exam include, XML Web Services, of course, Serviced Component, COM Interoping,...
While reading through my usual blog listings, I came across a posting by Jeffrey Richter's wintellect blog that talked about code performance via the JIT. After reading his posting, along with other related cases, I decided to try it out. So, I took his code and 'converted' back to .NET 1.1 and this is what I got:
1: using System;
2: using System.Diagnostics;
3:
4:
5: public class App
6: {
...
While reading through my archive of RSS feeds from other blogs, I bumped into this one from Suzanne Cook. After reading it, I thought...hmm, maybe I should write a function to do that for me ... so here it is, a C# version of an assembly verifier:private const int COR_E_ASSEMBLYEXPECTED = -2147024885;private bool IsAssembly(string asmFile)
{
bool isAsmbly = true;
try
{
AssemblyName.GetAssemblyName(asmFile);
}
catch(BadImageFormatException imageEx)
{
...