NHibernate conversation with ASP.NET+IoC+PostSharp? - asp.net

Does anybody know a good example of how an NHibernate conversation can be used in a Web context (ASP.NET or ASP.NET MVC) using an IoC container and AOP? Personally, I use Castle/Windsor and PostSharp, but I will appreciate everything that points me to the right direction.

Fabio Maulo has talked about this in some blog posts, and I think there is some relevant code in the uNhAddins project. Dario Quintana has a downloadable example. Furthermore, there is an AOP category on the NHibernate community site.
HTH!

Related

Flex, Grails Security over HTTP - How to example?

I'm writing an application, Flex front-end & Grails back-end, in which I need to integrate security. All the information around Grails gives me the impression to be well suited for when your client is written in HTML but how can I use Flex's HTTPService to integrate into it? Could anybody point me into the right direction?
Regards,
Lars
Hi Lars
I'd suggest having a read of Mike Hugo's article on writing Grails plug-ins in Groovymag
http://www.groovymag.com/main.issues.description/id=6/
This will give you an insight as to how to gain access to the application context etc.
Also have a look out for Sebastien Arbogast's blog and this article:
http://www.pubbs.net/201002/grails/49092-grails-user-grails-flex-blazeds-and-spring-security-integration.html
Combine this with some articles like this:
http://www.gridshore.nl/2008/07/14/integration-spring-security-acegi-and-flex-3-the-sequel/
Also have a look at the Spring-Flex project.
http://www.springsource.org/spring-flex
Christophe Coenraets and Jeremy Grelle's blogs are worth taking a look at too.
http://coenraets.org/blog/2010/03/new-spring-blazeds-test-drive-available-flex-4-blazeds-4-and-spring-blazeds-integration-1-0-3/
http://blog.springsource.com/author/jgrelle/
This is probably what I'd look at first:
http://tv.adobe.com/watch/max-2009-develop/integrating-spring-with-blazeds-and-livecycle-data-services/
Also:
http://tv.adobe.com/watch/adc-presents/integrating-spring-and-flex/
There are many options for returning XML from a Grails Controller, which can then be consumed by Flex's HTTPService.
For security, check out the Spring Security Core Plugin.

Looking for a non-trivial 3 layered asp.net example

I am looking for an example of an asp.net website(with source), implemented with 3 layer architecture and has some complexities like user authentication and user permissions, etc. .
Does anybody know such an example?
If you're favouring ASP.NET MVC (and I would suggest you should be) then Nerd Dinner (source) is one of the best examples on structuring an application.
Personally I feel that rather than focus on n-Tier/3-Tier architectures you should focus your efforts on responsibly designing web applications using principles like SOLID.
KiGG is a nice application to use for reference.
Source code can be found on codeplex: http://kigg.codeplex.com/

How to start a new ASP.NET MVC site?

I'm a experienced .NET developer, but I havent done much webdevelopment and particularly not a new site from scratch.
Now am I thinking of building a site for one of my hobbies. I realize that much of the functionality I need has already been bulit and hopefully released as opensource. My wish is to find a skelletton for my site with the basic functionality to bulid upon. That will leave the specific and fun parts to me....
I wishlist:
- One logon for the site.
- User profiles.
- Possibility for users to contribute with articles, pictures, links etc.
- Leave comments for articles.
- Generate feeds.
- Build the site using ASP.NET MVC
Can anyone point me in the right direction? Where do I start?
I hesitated writing this answer because it might come across as flippent or deliberately unhelpful.
However, I cannot recommend highly enough the tutorials and examples on the MVC site; especially the NerdDinner example app and walkthrough (not sure if it's been updated for MVC2 though).
As developer for developers ;) check this http://kigg.codeplex.com/ I think it's exactly what you need. Live sample here dotnetshoutout.com
Enjoy :)
Hi Malcolm what you need has been implemented many times. If you need to start from scratch for the learning experience I would recommend the ASP.Net MVC Membership Starter Kit (http://mvcmembership.codeplex.com/) it would handle user accounts and profiles for you (read up on ASP.Net membership if you are unfamiliar with it).
If you don't need to start from scratch I would recommend looking at a CMS or blogging system depending on your specific requirements as there is no point in reinventing the wheel unless you really have to or want to learn.
Edit
Have a look here:
http://www.microsoft.com/web/gallery/Categories.aspx?category=Blogs
and
http://www.microsoft.com/web/gallery/Categories.aspx?category=ContentMgmt&appid=BlogEngineNET
I am not up to date with MVC blog engines but I know there isn't too many CMS's around that would compete with more mature ASP.Net alternatives.
I hope this is helpful.
Thanks,
B
check out http://www.orchardproject.net/. But you may find some liter alternatives for your specific needs. Or you can possibly combine a couple of codeplex projects to get to where you want to be.
As stated above I would recommend going through the nerd dinner tutorial again. Also the nerd dinner code hosted at codeplex has been updated to Asp.net MVC 2.0, and is a great reference to many of the new features. Burt mentioned the MVC Membership Starter kit (http://mvcmembership.codeplex.com/), I have personally tinkered with this, and it saves hours upon hours of time by automagically implementing authentication and role management built on a standardized db schema easily generated by a tool found in the framework 2.0 files somewhere.

How should I use DB4O in ASP.NET

I'm interested in using DB4O in asp.net mvc applications. However I can't find any good samples that show how to set things up. For example, do I have to create a custom IHttpModule that manages the lifetime of a DB4O server instance?
Any pointers to useful articles and sample code would be excellent. Thank you.
Check out this forum post from the db4o website, it shows a few good alternatives. In the past I have used a custom HttpModule similar to the one ~7 posts down and it worked well for me.
More info:
http://developer.db4o.com/Documentation/Reference/db4o-7.12/net35/reference/html/reference/platform_specific_issues/asp.net.html

Prerequisite knowledge for ASP.NET MVC

After being frustrated in my attempts to learn the arcana that is ASP.NET, I decided to try ASP.NET MVC.
I have extensive experience with C# 2.0 doing just about everything (WinForms, Windows Services, remoting, ...) except ASP.NET . I've been writing PHP for even longer than I've been coding .NET. With all of this experience, I thought I was ready for ASP.NET MVC. I now see I'm learning the following simultaneously and having a bit of a hard time with it:
the MVC pattern in general
ASP.NET
ASP.NET MVC
.NET 3.5.
I'm currently about 1/2 way through the NerdDinner free book chapter. I don't feel completely lost but I do get the feeling that I'm not catching on to as much as I'd like to (due to the fact that I'm learning 4 things at once -- sometimes it's not clear which skills are from which abstraction layer).
What prerequisite knowledge would you recommend for ASP.NET MVC? Any/all of those I listed above? Others? Or maybe I'm just slow and most people would be fine doing what I did.
I have been an ASP.Net developer for just 3 years now. I got a project from a friend and decided to develop it using ASP.Net MVC to learn this new stuff.
I must admit I felt lost in the beginning as well, but then I saw some very interesting articles on the ASP.Net/MVC site. At the bottom are 7 iterations which will give you a very detailed of what you are doing while you are doing it.
I used the Products example they have there and applied sortof the same to my own project.
After all the iterations, I now feel like I have a very good base to start learning the more advanced MVC implementations. (JQuery plugins/Ajax/...)
http://www.asp.net/learn/mvc/
I think some basic understanding of ASP.Net is a base requirement. If you have that, you should be able to get through this with just a little bit of motivation.
"MVC pattern in general" - no need but useful.
ASP.NET - also not necessary.
.NET 3.5 - yes. It will be your working tool, you should master it.
Very useful would be the understanding of multi-tier architecture since this time you will have to think first about how you organize your application, opposite to direct hacking with controls in WebForms.
Also you will not avoid knowledge of HTML/CSS, maybe JavaScript.
Just don't be scared. Do it one step at a time and you will get it. Just don't read too much. Practice it.
Lots of highly useful tutorials are to be found here: ASP.NET MVC Tutorials
Also read blogs from ASP.NET MVC "parents":
http://haacked.com
http://weblogs.asp.net/scottgu/default.aspx
http://www.hanselman.com/
http://stephenwalther.com/blog/Default.aspx
I have a similar background. I have used .Net/C# since its inception, but all system related, no web experience. About 8 months ago, I decided that I wanted to learn about the web and decided that for me ASP.NET MVC seemed like the right way to go. I don't feel that my lack of ASP.NET experience was too much of a hindrance. I used the http://www.asp.net/mvc/ site as the center for my learning. All the videos are good, plus the tutorials and all the sample projects. I have downloaded most of them and have enough familiarity that when I can't figure something out I go to one of the downloaded projects with a similar requirement and look to see how it was coded. Knowing no web technology, I also ordered books on HTML, CSS, JAVA script, AJAX and Jquery. For me the best way to learn is to develop a project, so that it what I did. Most of the authors of the new MVC books also have blogs with lots of good information. When I started to learn about MVC, the MVC books hadn't been published yet, but I am sure there are some good ones out there by now or that will be available soon.
I have enjoyed the new experience and have learned a lot, I think the new technology is great. Good Luck!
I recommend getting a book on ASP.NET MVC and working through the examples in the book. Don't worry too much about the history of the MVC design pattern or it's 1979 roots at Xerox PARC. I wouldn't bother reading much more about the actual MVC pattern than this simple article from MSDN: Cutting Edge: ASP.NET Presentation Patterns
I recently finished Steve Sanderson's Pro ASP.NET MVC Framework and I can recommend it. It has a multiple chapter sample application that gets you started quickly with ASP.NET MVC and then 10 or so follow-up chapters that cover the relevant topics in depth (Controllers, Views, Security, etc). The book has a strong focus on unit testing and dependency injection and also covers basic object relational mapping with LINQ to SQL. There is also chapters that cover integrating jQuery with ASP.NET MVC and how you might utilize framework components (authorization, membership, roles, personalization, caching, etc) from traditional WebForms applications.
There are a number of positive reviews on Steve's Blog which is also a good source of additional ASP.NET information. Amazon.com has a couple of positive reviews on the book (I need to add mine when I get some free time). You can also preview some of the book over at Google Books.
Some of the other books that are available now or available shortly are:
Wrox: Beginning ASP.NET MVC 1.0 --- Both authors
Keyvan Nayyeri and Simone Chiaretta are active ASP.NET MVC bloggers. There is a sample chapter on testing for download here. I've read that it should be available at the end of June 2009?
Manning: ASP.NET MVC in Action --- This book is by Ben Scheirman, Jeffrey Palermo and Jimmy Bogard. They all have interesting blogs that cover ASP.NET MVC related topics. If I heard correctly, this book should be out in August 2009. You can pre-order the book (MEAP = Manning Early Access Program) here and get access to the first 11 chapters (unedited or loosely edited I think). The CodeCampServer reference application that complements the book is pretty intense and covers using nHibernate (ORM), Castle Windsor (DI / IoC), DDD, unit, integration and regression testing.
Wrox: Professional ASP.NET MVC 1.0 --- This is the book that accompanies the NerdDinner sample application and reader that was made available a while back. It's authored by some pretty smart Microsoft guys: Rob Conery, Scott Guthrie, Scott Hanselmann and Phil Haaaaaaaaaaaaack who have the inside information on why certain decisions were made with the framework. Available now.
Packt: ASP.NET MVC 1.0 Quickly --- The author Maarten Balliauw has a pretty good blog that talks about various ASP.NET MVC issues including testing. Available now.
Sams: ASP.NET MVC Framework Unleashed --- Author Stephen Walther is responsible for a number of popular ASP.NET Unleashed books from the early 1.0 days of ASP.NET and now he is writing a book on ASP.NET MVC. You can check out his blog for sample content from the upcoming book and other ASP.NET MVC related posts. Amazon says this book will be available in July 2009.
Wrox: ASP.NET MVC Website Programming Problem Design Solution --- This appears to be a follow-up to the book Wrox: ASP.NET 2.0 Website Programming: Problem Design Solution and welcomes back author Marco Bellinaso and introduces two new authors to the project Nick Berardi and Al Katawazi. The sample application for the book is the Beerhouse CMS and is available for download on CodePlex. The book's website says that it will be released in June 2009.
I think once one wraps one's head around the idea that MVC uses routing to direct requests straight to classes (which use a model for connections and a view for display) rather than showing "actual" pages, the concept of MVC in a web application really presents itself more clearly. With the 'difficulty of concept' out of the way, it's a lot easier to consider those attributes and make a decision whether MVC is suited to a particular application.
edit -- having said that, if I were new to ASP.NET, I would probably tackle the forms version first and get a good understanding of events, postback, and the methodology of that system before going into MVC because ASP.NET MVC is really handled on top of that system.
edit 2 - I think I got voted down before finishing my edits :-(
This is a good introduction from Martin Fowler. He talks in detail about GUI Architectures.
Start reading some material on the following topics and they will really help you gear yourself towards any MVC in general. Here are some topics that you can look up online:
Routing.
The MVC Pattern.
Controllers and Actions.
Mapping parameters.
ActionResults.
Error handling.
Action filtering.
Passing data to a view.
HTML Helpers.
View rendering extensibility.
Using jQuery with ASP.NET MVC.
Best practice tips for views, controllers, and models.
MVC Anti-patterns.
If you don't already know Webforms, then stick to learning just MVC right now so that you don't confuse yourself. Webforms is a useful thing to know, and since you know Winforms already, it shouldn't be too hard to learn afterward.
MVC and Webforms both work under ASP.NET, so a lot of things you'll learn while playing with MVC will carry over to Webforms.
It might help to approach Asp.Net MVC from a different angle: Read the Agile Web Development With Rails book, follow along (implement using Rails), and try to implement a project of similar scope to what's in that book in ASP.Net MVC.
You'll pick up Rails quickly (a week or two of hacking around a couple of hours a night), and the explication of the conventions of Rails will guide you into a mindset that aligns fairly closely with the Asp.Net MVC way. It'll probably help you understand the motivations for MVC along the way, and you'll certainly have opinions about how things "should" work in Asp.net MVC.
I would spend some time on ASP.NET first before learning ASP.NET MVC. Remember, ASP.NET MVC is based on ASP.NET. Some things from traditional ASP.NET won't be used with the MVC model (user controls, (ASCX and ASPX files)) but it is a good thing to still understand these. If you want to focus on MVC, first learn ASP.NET but do not spend time studying the common controls or databinding.
The rest of ASP.NET is still useful (HttpModules, HttpHandlers, the web.config file, the membership provider, etc) when you're doing ASP.NET MVC, and I'd say likely a prerequisite to really using ASP.NET MVC well.
That said, there is a lot more work for ASP.NET out there than ASP.NET MVC. Some employers are looking for people who know MVC, but they are mainly doing that as they are looking for people who are passionate about learning new things. My concern with ASP.NET MVC is that I don't see how to integrate it with traditional ASP.NET applications. The reality is most jobs out there involve working with an existing codebase, not starting from scratch.
I'd been following ASP.Net MVC pretty much from the beginning, and I have to say, I love it. Combined with Unity (or another DI framework) it just flows nicely. I've always liked a certain separation of concerns principle anyhow, and favored ASP.Net over PHP (and classic ASP). I didn't always like the control pattern of ASP.Net though. MVC fits much better. And with Json() and PartialView() for return types interacting with jQuery.getJSON() and $("#mydiv").load() is very simplified on the server-side. It also works well when following SOLID Design principles...
It does help to have a solid understanding of HTML and JavaScript (AJAX, DHTML) for more interactive points. It also helps to think in terms of the MVC pattern, or not thinking about cluttering your controller and your data.
One thing I don't care as much for, is the lack of a built in skinning system, for multiple skins on a web-app. I've come around this, and having the source really helps. I would say as other have suggested, follow the blogs (and read back) of
Phil Haack,
Scott Guthrie, and
Scott Hanselman. They all have vital information. Beyond this, as also mentioned, the demos on the ASP.Net MVC Website are very good.
Apart from what others have recomended I would suggest the following two books:
Spring in Action : It's not ASP.NET MVC, it's about Spring, but the foundations are similar and it's really well written.
Pro ASP.NET MVC 2 Framework : It explains the concepts in an easy to follow way, and it helps introduce DI into ASP.NET MVC.
All previous post are so cool :) but i want to add my own view. Without some base of asp.net runtime mechanism you can't write a good app. This info you could get from dino esposito book(he has two books about asp.net 2.0 - basic and advanced level) in basic level - there is one chapter about processing incoming request - you could read only this chapter.
If you know what is httpapplication, httpruntime, request, response etc. just skip my answer.
I know from my brief time with a Ruby on Rails job, coming back to ASP.NET and working with MVC it was easy to apply what I learned from RoR to ASP.NET MVC. Truthfully, ASP.NET MVC is actually just about the VC part and not much about the Model since ASP.NET doesn't have to be very REST based whereas RoR practically enforces it.
The problem I find is trying to get people to learn correct conventions of MVC when they are first learning it by coming from ASP.NET itself. Like others have mentioned, it might be a good idea to learn a true MVC platform (in this case RoR) because trying to apply what you know about ASP.NET to a MVC architecture. A good place to start with RoR is http://railsforzombies.org/ It's also kind of fun and will give you the basics for what really goes where in the ideal REST MVC scenario. After that apply what you know to the MVC for ASP.NET.
The very first and basic thing with ASP.Net MVC is the Routing concepts. LEarn this well first. You can also go throught System.Web.Routing Namespace on getting some more idea on this. Routing is just telling the IIS that is there is a request for a particular extension then redirect to this handler.
The next thing would "Convention over configuration". For MVC you need to have a particular folder structure like Controller,Model and Views .Nothing more mystery here.

Resources