Are there other example projects like the Northwind Starters kit around that show you 'best practices' (layers, unit tests, mocking data, o/r mapping tools, ...) in architecture of ASP.NET development?
Or links to good and clear resources or documentation? (MSDN is a good reference but no good as tutorial)
are there example projects around addressing Visual Studio2008 and/or the AdventureWorks database?
thx, Lieven Cardoen
Check out this Sample Application: DinnerNow.Net
DinnerNow is a fictitious marketplace
where customers can order food from
local restaurants for delivery to
their home or office. This sample is
designed to demonstrate how you can
develop a connected application using
several new Microsoft technologies.
The demo utilizes several technologies
including: IIS7, ASP.NET Ajax
Extensions, LINQ, Windows
Communication Foundation, Windows
Workflow Foundation, Windows
Presentation Foundation, Windows
PowerShell, and the .NET Compact
Framework.
Here is also a link to multiple Sample Projects and Starter Kits that utilize Asp.Net and related Web Development technologies
Here are also some links to get you reading:
Top 10 Best Practices for Production ASP.NET Applications
ASP.NET Best Practices for High Performance Applications
ASP.NET Best Practices (PPT Presentation)
Best Practice Resources For ASP.NET
Addition to Microsoft ASP.NET Starter Kits, here is two important open source ASP.NET Application to check :
DotNetNuke
BlogEngine.NET
Also here is Microsoft's Patterns'n Practices team's Application Architecture for .NET: Designing Applications and Services. Very helpful guide for .NET applications.
I would recommend the book Building a Web 2.0 Portal with ASP.NET 3.5 by Omar Al Zabir.
His blog on ASP.NET Ajax and .NET 3.5 is also very valuable.
If you have an existing project then you could try FxCop. It's static code analyser (it means you provide him with compiled assemblies) and it checks for lots of rules and Microsoft Design Guidelines errors.
Microsoft has a whole slew of sample projects, white papers, etc. covering best practices on a variety of topics. Many of these are focused on ASP.NET but you'll probably want to go right to the MS Best Practices center. They also published a book covering the topic but it is quite old and I wouldn't recommend it any longer.
Of course, you may want to go right to the source for an overall approach to coding best practices and for that I'd recommend Martin and Martin's Agile Principles, Patterns and Practices in C#. I'm just finishing up Robert Martin's Clean Code and, while a fair amount is obvious, it is well written, has tons of examples and has helped push me to be more "craftsmanlike" in my approach to coding.
The last thing is that I consider good Unit Testing to be one of the bedrock "best practices" for any developer. I recommend Pragmatic Unit Testing by Hunt and Thomas there.
That should get you going!
Related
I have been doing windows applications using c#.
But recently our management has planned to make some of the projects to be web based.
We thought of using asp.net with c#.
Can anybody guide me on effectively learning asp.net.
pls provide some useful links for sample projects.
Thanks in advance.
Web Forms would be a quicker route if your used to desktop development (over microsoft MVC). MVC3 is my preference but takes a bit longer to get used to if your not familiar with it. MVC3 gives you more control over your code and in my oppinion is less bloated.
May be worth looking into the MVC pattern if you go down this route.
Loads of videos to get you started here: http://www.asp.net/web-forms
They have a couple of example applications you can work through:
Web Forms: Contoso University App
MVC: MVC3 Starter App
as simple as this: http://www.asp.net
I'd recommend to start with ASP.Net MVC even you'll find it a bit complex in the beginning , Here you can find a lot of tutorials and books
you can also take a look at the MVC Music Store , it is a complete project to learn ASP.Net MVC by example.
I would steer clear of WebForms - even though it may seem a more natural fit coming from your WinForms background, you will run into issues later on. Given that you're going to have to learn a new platform anyway, makes sense to learn MVC and get off on the right foot (note that there are alternative MVC frameworks to ASP.NET MVC such as Fubu but these are probably riskier options in your situation).
PluralSight do some good online training courses, though you do need to pay for them.
I have a good amount of knowledge in the ASP.NET Webforms and MVC worlds. Shortly I will be tasked with implementing custom web applications with Sharepoint. I have great flexibility with this project (i.e - I can use custom web apps outside of Sharepoint if that's possible) but like most projects the most limiting factor I have to deal with is time.
Here are some questions that come to mind:
Can I easily integrate a custom MVC project into Sharepoint 2010? What are the pros and cons if I can?
Same as #1 only with Webforms.
If #1 and #2 are not viable solutions, can I easily create custom web applications within the Sharepoint world? What will the learning curve be with my background?
I understand developers can now use Windows 7 to deliver Sharepoint 2010 solutions. It looks like I can use a trial of Microsoft Sharepoint Foundations 2010. If that's correct, are there any development differences or gotchas I need to be aware of before digging into the Foundation version? I don't want to get up to speed on Foundation and then find out that the Server edition (the version that will be deployed) is vastly different.
Thanks!
SharePoint is based on webforms - it is relatively easy to add custom user controls and web parts, though if you want to use SharePoint data in a completely custom web app, especially mvc you will probably need to host it seperately - you can access everything you need through the SharePoint API, but it makes the deployment a lot more complicated.
The workarounds to get webforms mvc running in the SharePoint web app tend to involve stuff that would never get past corporate infrastructure people, but I've been getting good results with precompiled razor views set up based on http://razorengine.codeplex.com/ - my version that produces code which can be included in a SharePoint project is at https://github.com/tqc/RazorEngine
In the 2007 version there were significant architectural differences between WSS and MOSS. With 2010 there aren't as many differences, so you should be ok, but it would still be better to develop on the same version you are deploying to - download a trial of Standard or one of the demo VMs - If you do a lot of .net development, chances are you already have an appropriate dev license.
What are you trying to accomplish? Are you connecting your MVC site to SharePoint or are you building something "MVC" on top of the SharePoint server?
In any case, there is an MVC SharePoint project on Codeplex here http://sharepointmvc.codeplex.com/
Here is an article on the subject http://blogs.msdn.com/tom/archive/2009/03/17/asp-net-mvc-and-sharepoint.aspx
I havent touched it, and it seems a bit abandoned to me, but it might get you along.
Check out it outlines one method of running MVC with SharePoint
Generally, SharePoint will simplify many user-oriented requirements you may have - such as authentication, permissions control and personalised areas (with MySites).
If you go with SharePoint, you almost have to build your product for SharePoint Foundation so that you can keep your customers' total costs low (SharePoint CALs, SQL Server, hardware, etc). You'll want to build friendly user interfaces for managing permission, allowing your users to create their own pages, and other provisioning tasks -- or provide rock-solid documentation on how to do it out of the box with SharePoint. With SharePoint, you should use features and Web Parts to deploy your code either way , whether SaaS or on-premise. That will make it easier to deploy and upgrade.
I am new to ASP.NET Development and can't decide between developing with Webforms or MVC 2. Nevermind the pros and cons of each. I've seen mixed opinions of each. But which method would be the best for someone who has no prior experience in ASP.NET or C#?
If your answer is: learn both, then which should I learn first? MVC 2 or Webforms?
I was in a similar situation to you a year ago. I'm a Computer Science student, well finished my course around a month ago. First two years of my course I worked with Java, PHP, Oracle, MySQL. This actually landed me an industrial placement at Oracle where I used their ADF which was Java based.
Anyway all of this made me start thinking about what I wanted to use for my final year project and with no experience of Microsoft technologies began to venture down that path. I wasn't aware of ASP.NET MVC and spent time learning ASP.NET WebForms. I liked the easy style of development, drag and drop is a very quick way of developing small sites. However I also disliked the lack of control I had and the simplicity, I didn't feel overly challenged.
During my final year I started to research Model View Controller and how it suits web applications. From this I came across ASP.NET MVC and in my opinion its far better than ASP.NET WebForms. There seems to be an emerging trend in MVC frameworks for web applications and this seems to be the hot technology to build web applications in.
Now finished I can say that teaching myself ASP.NET MVC was one of the best things I did. I don't know if you're British based, but only two Universities in Britain teach .NET. This made getting a graduate job much easier and I stood out from .NET candidates because I was from a Java course, the same as yourself.
The transition from Java to .NET is not particularly difficult all the theory and concepts are the same. Also ASP.NET MVC is becoming quite popular among businesses which specialise in the Microsoft technology stack. As it is quite a new technology learning now whilst young will be an advantage. I've ended up in a job where the company are rewritting their application from ASP.NET WebForms to MVC and only myself and the senior developer have ever used MVC leading to quite a large role in the project.
If you're interested my final year research can be found here and I have a chapter on ASP.NET WebForms and MVC
My source code is also on my site but its mainly MVC 1.0 not 2.0
Tough question.
What's your background in web development? Are you familiar with the MVC pattern?
Are you learning it for a job?
ASP.NET Web Forms are easier for beginners, as it hides much of the underlying implementation details of the ASP.NET engine.
ASP.NET MVC requires a deeper understanding of concepts such as routing and HTTP methods.
But yes - you should learn both.
As MVC is a new platform for developing ASP.NET Web Applications, i would learn Web Forms first. That way you will appreciate the benefits of MVC more when you contrast it to Web Forms.
if you want to get your hands dirty and really understand how the web works, go MVC
if you want to drag and drop your way to a functional but overhead loaded website, use webforms.
really, this question is pretty difficult to answer not knowing your background. if you're comfortable with html, css, javascript it may not be too difficult to pick up MVC. if you're new to the web entirely, it can be daunting to learn that many technologies all at once and webforms abstracts a lot of that kind of stuff for you.
There's a third option, especially useful for developers new to ASP.NET. You can use ASP.NET Web Pages, which is different from ASP.NET Web Forms. ASP.NET Web Pages is great for new developers as well as developers new to Web development. Also, it has a good path to migrate up to the complexity of ASP.NET MVC. In fact, the latest release of ASP.NET MVC and the latest release of ASP.NET Web Pages both use the same view engine.
Here is a link to the complete ASP.NET Web Pages book:
Getting Started with WebMatrix and ASP.NET Web Pages
Also, here is the complete WebMatrix Content Guide:
WebMatrix Content Guide
Here's the description:
WebMatrix is a free, lightweight set of web development tools that provides the easiest way to build websites. It includes IIS Express (a development web server), ASP.NET (a web framework), and SQL Server Compact (an embedded database). It also includes a simple tool that streamlines website development and makes it easy to start websites from popular open source apps. The skills and code you develop with WebMatrix transition seamlessly to Visual Studio and SQL Server.
I am wanting to learn ASP.Net and am just a beginner. I have done some windows c# forms development before but have no experience of web development.
I have looked at the ASP.net website but beyond this, does anyone have any ideas as to good learning resources particulary in relation to the differences to windows development. For instance, It seems that the way events work is quite different under ASP to windows forms.
Thanks you all.
Thank you very much. I will have a look at MVC. It looks even more complicated but if this is the way things are going then I would be better maybe to invest my learning in this.
I would advise you at this stage in ASP.NETs life to instead direct your attention at ASP.NET-MVC. This url http://www.asp.net/mvc/ is a very good resource for learning.
ASP.NET Forms do a good job of hiding the nature of a connection-less HTTP/browser based technology and presenting a familiar Form with controls and lots of useful events environment that Windows Forms developers are used to.
However this approach comes with a price. For any serious project there is no avoiding getting under the hood of ASP.NET forms and properly understanding the underlying technology. At this point you start to realise the significant compromises the ASP.NET Forms has had to make in order to make Windows Forms developers feel at home.
ASP.NET-MVC, on the other, makes no such compromises. Learning MVC means learning how HTTP works up-front. It also has the advantage of being a much more test friendly approach which when used properly will save you days of debugging.
ASP.NET website - seriously, it's a really good resource.
I'd seriously consider starting with ASP.NET MVC. You'll end up learning what you need from ASP.NET "classic" but you'll pick up all the goodness of MVC (testability, seperation of concerns in your code etc) instead of learning bad habits.
Google for "ASP.NET MVC", check out ScottGu's blog, Scott Hanselmans's blog, or search StackOverflow for ASP.NET MVC (use the ASP.NET MVC tag too).
One good place to start...
http://weblogs.asp.net/scottgu/archive/2009/04/01/asp-net-mvc-1-0.aspx
I know they are a bit out of date, but I still think the two Fritz Onion books give a great look at what's happening in ASP.NET under the hood.
Some resources:
asp.net (as you mentioned)
channel9
scott hanselman's blog (some useful entries)
Windows Client Homepage
W3Schools Tutorials (Useful for more than just .NET, but this is the .NET page)
I've been a .NET Windows Forms (not Web forms) developer for 1 and a half years. Then I switched jobs and started using WebForms for like... 2 years. Then I discovered ASP.NET MVC (January 2008) and since then although I still master ASP.NET WebForms I will always prefer ASP.NET MVC.
My recommendation also goes into ASP.NET MVC. You will have to learn HTTP, HTML and a bit of Javascript but after these you will master web development on ALL PLATFORMS.
A great alternative to ASP.NET MVC is ASP.NET Web Pages with Razor syntax. In fact, the latest release of ASP.NET MVC and the latest release of ASP.NET Web Pages both use the same view engine.
Here is a link to the complete ASP.NET Web Pages book:
Getting Started with WebMatrix and ASP.NET Web Pages
Also, here is the complete WebMatrix Content Guide:
WebMatrix Content Guide
Here's the description:
WebMatrix is a free, lightweight set of web development tools that provides the easiest way to build websites. It includes IIS Express (a development web server), ASP.NET (a web framework), and SQL Server Compact (an embedded database). It also includes a simple tool that streamlines website development and makes it easy to start websites from popular open source apps. The skills and code you develop with WebMatrix transition seamlessly to Visual Studio and SQL Server.
Web parts seem to be used extensively in Sharepoint related development, but examples of using them in asp.net webforms applications are few and far between. I'm implementing a domain specific portal framework and like the "widgetlike" functionality in iGoogle or pageflakes and would like to get that kind of feature in my application. The real troubling issue from my perspective is that the drag & drop layout features of web parts do not work in non-IE browsers unless you use the latest ASP.NET AJAX futures library. It seems to me if Microsoft meant this to be a foundation technology, they would have moved these features into the main product by now.
Are web parts a dead-end technology? If so, are there any alternatives?
i think they are (dead), at least for developing the types of UI modern web-browsers are looking for. My recommendation ... ASP.NET MVC and a nice .js library. It's more work out of the gate, but with the proper planning and implementation it will serve you much better in the long run.
I found a really great site about some tips to implementing WebParts-like behaviour:
http://blogs.msdn.com/b/nunos/archive/2010/02/16/quick-tips-about-asp-net-mvc-webpart-framework.aspx
Webparts are a part of the .NET infrastructure and are a foundation technology. There are few interface technologies, to make webparts compatible with their J2EE counterparts.