Episode 123 of The SitePoint Podcast is now available! This week our regular interview host Louis Simoneau (@rssaddict) is back with a great interview of 2 guests from the world of ASP.NET Tim Posey an active ASP.NET developer, and Pranav Rastogi @rustd from the ASP.NET team at Microsoft.
Listen in Your Browser
Play this episode directly in your browser — just click the orange “play” button below:
Download this Episode
You can download this episode as a standalone MP3 file. Here’s the link:
Louis: So, hello and welcome to another episode of the SitePoint Podcast. I’m back from vacation and this week on the podcast we’re going to take a little bit of a different track from what we’ve been doing recently, we’re going to talk about ASP.NET. .NET isn’t something that we talk about a lot on SitePoint.com or on the podcast, but it’s something that we hope to cover a bit more in the future. I know we’ve got an upcoming project at SitePoint covering .NET, so we thought it’d be a good opportunity to have a few .NET guys on the show and talk a little bit about what’s new in that world. So with me today on the show we’ve got Pranav Rastogi who works for Microsoft on the .NET team; hi, Pranav!
Pranav: Hey, Louis, how’s it going over there?
Louis: It’s going very well, how are you?
Pranav: I’m pretty good, thank you.
Louis: And we’ve also got another .NET developer, Tim Posey.
Tim: Hello, Louis.
Louis: Hi, how’s it going?
Tim: It’s going great, how about you, Pranav, you alright?
Pranav: I’m doing well, Tim, thank you. How’s it going with you?
Tim: Just hot down here in Alabama.
Pranav: Well, it’s always cold in sunny Seattle of the Pacific Northwest (laughter).
Louis: Yeah, I just left Montreal on Saturday I think of last week, Tim, and it was just as the temperature had skyrocketed. I was in North America for a month and we had gorgeous, gorgeous weather throughout July, and just as I was leaving, the last day, it shot up to 37, 38 degrees, and massive humidity, massive thunderstorms, and apparently it still hasn’t let up.
Tim: Okay, I have to do the Celsius to Fahrenheit conversion.
Louis: Oh, yeah, right, sorry. (Laughter)
Pranav: Close to 100 degrees Fahrenheit.
Louis: So, Pranav, do you want to tell us a little bit about what you do?
Pranav: Sure, yeah. So I’ve been working on the ASP.NET team and I work on the team as a tester, and my primary job on the ASP.NET team to verify that the products that we’re building sort of match the expectations that are customers have, somewhat sort of halfway useable, and something that people can use. And I build productive websites that they can solve their solutions with, so that’s what I’ve been doing at Microsoft.
Louis: Alright, how about you, Tim?
Tim: Right now I’m working for a financial services firm in Alabama. I work pretty much exclusively on web development with .NET, well, obviously ASP.NET, mostly a lot with content management systems, we have done a lot of cool things with various content management systems, and my background before then was a little bit in the consulting world where it was a lot of web development in ASP.NET, a lot of desktop development also in .NET, and just trying to just share of some my history, my experiences in this book with the readers.
Louis: You talk about a book, so just to get it out there, SitePoint has got another new edition of an ASP.NET book coming out in the near future, and we’ll talk about that a bit later. But before we dive into that, because a lot of the SitePoint listenership, or maybe more either front end developers are working with PHP or Ruby or some of these open source technologies, I wanted maybe to give just a bit of an update in what’s new in .NET. For anyone who hasn’t paid attention to it in a couple years what’s the pulse of the .NET community at the moment?
Pranav: Pretty strong, it’s pretty happy (laughter). One of the biggest changes that happened in the .NET framework is like it’s probably been a year but we shipped the .NET Framework 4, which is a new version of the CLR which is a new version of the framework, and that has been sort of the major upgrade that has happened last since version 2.0 was released about like five or six years back. So I’ve been pretty excited to see all these features coming out as part of the framework, in particular I can only speak for ASP.NET, like there’s a lot of stuff that came out with the Gold Framework for ASP.NET, and there was MVC that was shipped, which is a Model View Controller pattern that people can view websites on. We shipped something called Razor which is the — the Gold name was called Razor but the public face name was Microsoft ASP.NET Web Pages, and it sort of simplifies the whole stack on the programming side of things and how would you build websites, how would you easily integrate like HTML and .NET languages into it, so that’s all stuff happening as far as I can see. What about you, Tim?
Tim: I sort of agree with just about everything you said. Let’s say the average listener is a PHP developer, .NET can do many more things for you and you still have that rapid application development. What I really like with .NET, and especially now with .NET 4.0 and the latest release, you have things like the MVC Framework, as you said, that you sort of just don’t have those kinds of built-in things with PHP, I know they can be done but the tools, the way it integrates with Visual Studio 2010, also where we use SQL Server 2008 express edition in the book, those two things combined just provide an ultimate development environment for a web developer.
Pranav: Right. One of the things I like about the .NET is like even though PHP is like great, it has a great community, but you still have to kind of go through the community documentation to get a lot of things up and running, but as you were mentioning, the Visual Studio integration of the framework and the languages, it gives a very richer way where you can manage your projects and use rich features like IntelliSense debugging to sort of get around and get your applications up and running quickly. I think that’s been really a good tool to have.
Tim: Yeah, I actually started my web development days back on PHP, PHP and MySQL, you know, the LAMP stack pretty much. And it was a lot of editing stuff in Notepad, and I know you can move up to like PHPEdit or the Zen editor, but the Visual Studio 2010 experience to me is a night and day difference, especially when you have debugging, you also can do remote debugging on the web server, those things just make it a really good experience. Plus, I think as you look into what other corporations are doing from like an employment standpoint; I think there’s definitely more jobs available for a .NET web developer versus PHP or Ruby or some of the other community languages. Wouldn’t you agree with that, Pranav?
Pranav: Yeah, I would totally. I would also add to it like it does pay more than the PHP developer! (laughter).
Louis: Alright, so that’s a reasonable point that there’s a lot of, in terms of enterprise, ASP.NET is a much maybe stronger player at the moment than PHP and Ruby. You don’t see it as much in sort of the startups or the smaller web based companies, for example, here at SitePoint or sister companies, Flippa, 99 Designs and Learnable are all developing in either PHP or Python or Ruby. Is that something in the .NET world — is it something, Pranav, you see that Microsoft wants to change, are they trying to move into more of that startup move, or are they happy to sit with the enterprise market and we’ll let the startups play with these other languages?
Pranav: That’s a very good question, Louis. Like one of the things that we as the ASP.NET team and like our division is trying to do is empower the developers more to build the awesome-ist website that’s possible. So, we do realize that ASP.NET is heavily as you mentioned used in the enterprises, and part of the reason is like, okay, you need to learn all these concepts, so our strategy now is towards how can we simplify our stack, make it as comparable and as easy as people think that the LAMP Stack is. So what we have, something that we released last year was a product called Web Matrix which sort of simplifies the whole application building development and gives you this easy to use programming paradigm which is like you have your .NET languages integrated into the HTML page itself, and you can get a website up and running very quickly, it integrates the SQL part of it, the application part of it and the publishing part. And I think one of the things that we’re trying to do better at is like we have all these great tools so you can start to build a website, but like how do I publish this? It’s very hard to find a publisher who has all the .NET framework stacks set up and you find the right prices and whatnot. So, that’s a challenge that we have, we sort of accepted that challenge and are sort of working around it like what’s making it simpler for our developers to publish our sites, that’s sort of the feeling that I have that’s heading down.
Tim: If I can just add something to that, Louis, if you don’t mind. One thing we look at in the book is we face those concerns that usually like in an enterprise environment a developer may have an MSDN license which may be $1,500 bucks a year I think for an enterprise developer, somewhere around that price range, but one thing we do in the book is we start from all the free tools that are available through Microsoft like the Visual Web Developer, also SQL Server 2008 Express Edition, and both of those tools are free for personal use. So, and we run through the steps on how to install those and how to get those, they’re all available through Microsoft.com/express, but also Microsoft has done some good things with their BizSpark, I don’t know what you call it, Pranav, I guess their marketing campaign for BizSpark.
Tim: Where it allows startup companies to sort of get access to those higher end tools for free, right?
Pranav: Yes. And we started this sort of program, I don’t remember the name of the program, but the goal of the program was to simplify the whole model around how do you get a license for a web server and how do you publish your sites to sort of simplify, and it’s called BizSpark, that model has sort of gone into. And one of the new challenges that we are now looking into is, okay, the whole Cloud buzzword coming out and the word like, you know, how do we better enable our tools environment to help you publish into The Cloud itself. And then one of the things I think they mentioned a good point that all these tools like VS 2010 Express and SQL Express which are free, one of the things that we’ve been doing in the last couple of years in Microsoft is we found that it’s very hard to sort of assimilate all these tools because you have to search Visual Studio, go to the Internet web page and say download, and then you realize oh I need SQL Express as well, then I need to go to SQL Express search page, search for it and download; the whole process of getting these tools on your machine is sort of very painful. So we have something called Web PI which is the code for Microsoft Web Platform 2, and it’s basically a very light install tool, it’s 2, 3 megs of download, and it has a feed of all the products that Microsoft is shipping for developers, so it’s got like Visual Studio Express, it’s got SQL Express, it’s called SQL CE, it’s got like IS Express, Web Matrix, it’s got a bunch of tools, I do highly recommend our listeners to go and check it out, that is simplifying access to all the tools that we have.
Louis: Yeah, I had to play with a web platform installer last year when we were running some content on SitePoint.com about that, and it is an impressive tool in terms of the ability to install all this stuff. I guess it’s interesting for .NET developers because they always have this sort of challenge compared to I guess some of the community frameworks and languages where the licensing isn’t an issue, so you have this one extra thing that I think Microsoft maybe is now maturing into and learning how to provide it more easily because there’s a lot of people developing websites when initially it would have just been big companies and that setup wasn’t a problem. But now you want to make it easy for a starting developer to grab this stuff, so it’s interesting to see that there have been strides like making some of the stuff free and making it easier to get.
Pranav: Yes. That was a good thing to realize that’s happening. And recently like probably six months back we have a project in the works, it’s called NuGet, and this is basically an open source project and we are accepting contributions from people like outside Microsoft. And just to give you a one minute pitch to it, it’s a process where you can get third-party developer tools or developer binaries onto your machine. So the process is that if I want to get any of the framework code first into my project the current workflow would have been I would have gone to Bing and I would have searched ADA framework, gone to their homepage —
Louis: “Gone to Bing,” that’s a nice plug there. (Laughter)
Pranav: Bing, yeah. (Laughs)
Louis: I’m not going to let that one slide, sorry. Anyway, continue.
Pranav: So I would have searched for this ADA.NET framework, and then I would have gone to the homepage, downloaded the binaries, then I would have opened my project, I would have referenced these binaries, then I would have gone back to the site, they had some recommendations on, hey, you need to add these three configuration sections, then it was like okay let me copy and paste these configuration sections onto my project, and so it’s a lot of work to get a simple developer binary or a simple product onto your project. So what NuGet does is basically it’s a package, it’s a feed web platform, it’s a feed of products that you can enlist in, and this product takes care of the whole process of downloading the package for you from the Internet, putting it into your project, adding the references, making the changes required for all the configuration and you’re done. So you just say install package, like ADA.NET.
Louis: What’s that called?
Pranav: It’s called NuGet, it’s online, so it’s spelled as N-u-g-e-t.org.
Louis: Okay. So it’s kind of like, I don’t if you’re familiar with Bundler in the new version of Ruby on Rails? Have you played with that, it’s kind of a similar concept where you can include binaries fairly simply.
Pranav: Okay. It’s not necessarily tied to like ASP.NET, it just works with the Visual Studio project system, so it can have like, you know, you can have a console based HelloWorldConsole.exe, use NuGet to install any binaries that you would want.
Louis: Sounds good. So maybe we’ll switch gears here, we talked a little bit about some of the new stuff in ASP.NET 4; Tim, has the company that you work for switched to the newer version?
Tim: We have, we still use a lot of flavors. I kind of view my company as sort of like a — it’s like the prototypical enterprise development shop where of course is not the main thing that you do, it’s not your main line of business, where in my case it’s financial products and insurance, but you still have to have development around that too to support those primary business activities, so we still have a lot of legacy applications that goes all the way back to classic ASP. But all new development is .NET 4.0 and also C Sharp, we’ve sort of just kind of just sat and just decided C Sharp is what we’re going to have going forward versus VB.NET instead.
Louis: So that’s kind of interesting. For anyone who is not familiar right off the bat with ASP.NET, the fact that there are sort of multiple programming languages that are possible inside of it can be confusing to someone coming from any other framework or language. Do you want to maybe just explain what historically the difference was between VB.NET and C Sharp and how that came about and where things are going now?
Tim: Sure. Well, if you look at classic ASP everything was done in what was called VB Script back then, and so if you’re a Visual Basic developer, if you’re on Visual Basic 6 or even earlier, you’re probably right at home in classic ASP. But as Microsoft has transitioned towards say common language runtime, the CLR, which you’ll probably hear a lot as you study .NET in general, basically as it stands for a common language runtime you can have multiple languages, let’s say C Sharp, VB.NET, there’s IronRuby, there used to be J Sharp, I don’t think that’s around anymore. There are several other languages, and I think there’s probably even a PHP one if I’m not mistaken, Pranav, correct me if I’m wrong.
Pranav: There’s no PHP language as such in the Microsoft stack.
Tim: Okay. Well, you have the multiple languages but they all compound down to what’s called Microsoft Intermediate Language, you can use the language that you’re most comfortable with. And for me I’ve been using C Sharp since the .NET 1.0 beta days, and I got used to it because I was previously a C ++ developer, so the syntax was very close to what I was used to, and I also did Java as well. So, C Sharp is sort of like right at home for me, but a lot of my co-workers who come from a Visual Basic desktop app, rapid application development sort of background, they’re used to VB.net. And so we used to have a lot of projects in C Sharp, we used to have a lot of projects in VB.net, so it was a tough thing on us to sort of — to merge those together and just sort of move forward with one language, but as you’re supporting multiple legacy applications I mean we’re all over the place with classic ASP, VB.NET and also C Sharp. So one thing that we do in the book, we focus on VB.NET and C Sharp pretty much exclusively, I mean those are the going to be the two languages that you’re going to see in the .NET world pretty much. We give code samples for both and we sort of support both in the book.
Pranav: I was going to say like even I have the very same background as mentioned, like I started with C ++ back in school, I had a couple of internships/jobs before joining Microsoft, and I was doing like Java over there, and for me also C Sharp just became a natural transition like, it sort of looked similar. But coming over here we started using VB.NET as well just because VB script was the first one developers started with before CLR was there and the whole dot framework was there. And we didn’t want to lose that developer base just because we have CLR now, and that’s why VB.NET was sort of carried on forward and it’s still there, it’s at par with C Sharp, like any language feature that comes out or any new CLR feature that comes out is sort of spread out to both languages, like dynamic support came out. There’s the new Async patent that was just released for Visual Studio, that’s supported both for C Sharp and VB, so I think pretty much our commitment looks like going forward is also I think that both languages are just in sync for now at the same level.
Louis: Right. So that’s pretty much everything I wanted to talk to you guys about today, but before we close I wanted to know if there’s anything you’re particularly looking forward to in the future of .NET. I know it’s been a year since version 4.0 came out, Pranav, what are the plans for a new version?
Pranav: Lots (laughter).
Tim: Anything you can share with us today, Pranav?
Pranav: (Laughs) I’m pretty sure hold your breath, I’m sure we’ll hopefully wow you guys again.
Tim: Well, one thing that I’m looking forward to, if I can make a request for you, Pranav, to send back to the team, I would like to see GPU integration in .NET eventually. I know Microsoft just came out with the thing for C ++ for general purpose GPU programming, I would love to see .NET do that. As a subset or I guess a bigger plan of that, I’m really looking forward to the performance things in .NET that you can do like the Async pattern or the Async keyword that Pranav was talking about. In the book we are going to have a whole chapter dedicated to performance optimization, and so we’re going to talk about things like the Async pattern and caching and things like that, pretty cool things that you can do out of the box with .NET. Output caching is of course like one of my favorite features of all time in ASP.NET, that’s something that I love to use all the time in my work. But I think as the hardware industry is going towards more of a multi-core approach, you know everything about it nowadays is either Dual Core, Quad Core or 16 Core, or whatever, I would love to see .NET really move forward with that and make it easier for me to do parallel programming.
Pranav: That’s a great point. We sort of started doing that in the version 4.0 of the .NET framework that was released, so out of the box basically the framework now supports something called a task based approach, and it’s sort of different from threading, it’s easier to manage and you can’t get a bit of parallelism into your application, so they’re like the native, they’re like sort of in-built framework calls that you can parallelize your four loop, you can parallelize your link queries, you can easily create lightweight tasks so you can breakup your function calls into like two or three different tasks and sort of bring that level or parallelism into a function, which is not possible earlier because then you would have to manage the threads. So we are trying to simplify the whole model around given that the whole industry like the hardware side of it is moving towards multi-core and that sort of — the default configuration that’s going to be there in a developer’s box, so expect more.
Tim: That’s good. And for the listeners out there, ASP.NET is a multi-threaded application out of the box, so if you have some really powerful CPU’s, I mean that’s where I think ASP.NET really can shine.
Tim: And that’s why really parallel programming is sort of important to know as well.
Louis: Great! So if the listeners want to find either of you online can you give some links either to your Twitter, your blog or whatever, starting with Pranav?
Pranav: My Twitter handle @rustd, and it’s spelled as r-u-s-t-d, and I have my blog up as well if you look up by my first and last name, Pranav Rastogi, I think you should find it on MSVN.
Louis: And, Tim?
Tim: For me you can probably find me easily at legacygeeks.com, email@example.com, where the blog is also at legacygeeks.com. (Baby crying)
Pranav: Yay! (Laughs)
Louis: That sounds like our cue to wrap things up; Tim sounds like he has to attend to more pressing matters.
Tim: Yeah, I do.
Louis: Thanks very much for coming on the show, guys, I look forward to seeing content from you guys on ASP.NET on SitePoint, and also for the book. We don’t have and kind of firm release plans at this time, but stay tuned, and as plans are finalized we’ll keep everyone informed as to what they can look forward to from you guys.
Louis: Thanks very much.
Pranav: Thank you, guys; see you, Tim.
Louis: And thanks for listening to this week’s episode of the SitePoint Podcast. I’d love to hear what you thought about today’s show, so if you have any thoughts or suggestions just go to SitePoint.com/podcast and you can leave a comment on today’s episode, you can also get any of our previous episodes to download or subscribe to get the show automatically. You can follow SitePoint on Twitter @sitepointdotcom, that’s SitePoint d-o-t-c-o-m, and you can follow me on Twitter @rssaddict. The show this week was produced by Karn Broad, and I’m Louis Simoneau, thanks for listening and bye for now.
Hi there, I just wanted to drop in a quick note to mention that the SitePoint Podcast is honored again this year with a nomination in the .net Magazine Awards. I wanted to take the time to thank all our listeners for tuning in throughout the year and making this possible, and I want to also shamelessly beg you to vote for us; just head to legacygeeks.com to cast your vote for the show as well as all your favorites in a bunch of other categories like Mobile App of the Year, Developer of the Year and Redesign of the Year. Thanks for your votes!
"What makes a great CTO?" Engineering skills? Business savvy? An innate tendency to channel a mythical creature (ahem, unicorn)? All of the above? Discover the top traits of the most successful CTOs in this free guide.