Despite my background with asp .net C#, I've really tried to get my head around the different concepts and development techniques surrounding Sharepoint 2010 and I can honestly say I'm really struggling. As a last resort - I'm posting on here at the risk of being marked down on questions that you will say I could have found out through research myself (but I've been on this for days now believe me). So I have a few questions no doubt anybody proficient in Sharepoint will be able to help me find answers to.
Stages of development in Sharepoint:
I understand that in asp .net C# (and any other typical web design platforms) we have the 'design stage' were, as developers, we'll design the website and it's content (putting CMS' to one side for now) and then you have a 'view stage' were end-users view the website - pretty simple. But with Sharepoint I'm completely lost as to how I can view the lifecycle with regards to stages that it may go through. I'm confused because I've configured and set up my Sharepoint web app and a site collection. That's fine, that seems like the admin side of things - but now the development is done how? I've followed a guide to assign master pages and css to the site collection for branding purposes but there's also the option to manage this site through the ribbon!? Do we want end-users to see this ribbon? Basically, if anyone can clarify what responsibilities are left with the end-users after a hand-over from the developers it would help me a lot to grasp the concept of Sharepoint and what it offers. Also, does if Sharepoint is a CMS does this mean there's a 3rd stage to the lifecycle (i.e. Sharepoint developers develop the framework for the site which will manage content, users will manage the content, another type of user will view the content)??
Use of VM's:
My computer's spec is now high enough to host VM's through hyper-v, so it does. I'm currently using a VM for Sharepoint development. Why? If I'd read around and found that the only reason was because Sharepoint cannot (without fiddly hacks) be ran on Windows 7 (and I may need a win 7 vm for day-to-day office use) then I'd understand - but it seems that VM's are also handy because should I mess up a sharepoint installation I can start again - why would I need to? I've never ever came accross any other type of installation (apart from OS installations) that could go wrong enough to require a complete restoration of a hard-drive image. What exactly can go wrong?
Managing Sharepoint content in VS
Again, comparing to standard asp .net C# development - I create my pages (using master pages and/or controls if I see fit) and they appear, simple. With sharepoint - it seems that the content (saved in a database which is automatically created by a Sharepoint installation) is mapped to a page (saved in our directory - an aspx page). If this is right - then how do we manage the aspx pages and develop them further in VS? Or are we not meant to amend the appearance of lists etc.?
Thanks a lot, like I say I expect a bit of negativity here regarding the style of question but it really is necessary to help me move forward. I'm not lazy by any means - if you can refer me to links that will help a complete newcomer to sharepoint grasp any of the concepts I've mentioned above I'll happily do the reading - but I've only managed to come accross material targetted at those who already have a firm grip on Sharepoint.
You really need to read more about SharePoint.
Instead of looking into Web parts and how to customize SharePoint, you should grasp the concepts first.
First of all, StackOverflow is not the place for SharePoint questions because there is a dedicated StackExchange site for SharePoint here.
Then, I think you better get a book about it. Start in the configuration track before moving to the development track, it will help you understand the development specifics.
As a general idea, with SharePoint you create sites. A site (collection) may be composed of other sites, and that gives you a navigation. In the lower level you have pages, in which you can add content managed by SharePoint (Lists) or custom web parts that have to be developed in ASP.NET. You can have sites totally built with out of the box functionality, no custom development involved.
When you build a web part, you upload the assembly to SharePoint and, having a page in edit mode, add the web part to the page.
You also have plenty of web parts out of the box.
There is also a product called SharePoint Designer, that helps you customize SharePoint pages. You can browse the complete structure of sites and pages in your site and edit them.
You don't open a SharePoint site in .NET and start changing pages from there. .NET is only for creating custom web parts or other extensible components.
This is really a high level overview, there is a lot into SharePoint. Don't expect to learn everything about it in some weeks, I don't think there is even someone who knows it all. That's how large the product is...
Good luck!!
Related
I was just about to upload my new, redesigned website when I realised "crap, it's just like every other website."
Then I had an idea. And I've spent the past 2 weeks planning. I have but one thing left to do, and it's proving a little difficult to figure out how I can have my website for PC's, and a whole different site for an iPad (or just larger touch based computers in general) and another for Touch-based phones, and then one for regular phones with web browsing capabilities.
Is this possible? I want separation. I don't want a bunch of javascript files with commands for everything inside them. I want to separate each 'website' and serve it based on the platform requesting the document. How can we achieve this?
If you are to recommend any libraries that may help, note that I will not use jQuery (but list jQuery anyway as others who face this problem might not mind using jQuery)
You can use Asp.net MVC and switch your views depending on the device.
This way you can reuse all your controllers and have different views for each device you want.
Scott Hanselman wrote an article a while ago about this kind of development:
http://www.hanselman.com/blog/MakingASwitchableDesktopAndMobileSiteWithASPNETMVC4AndJQueryMobile.aspx
I would recommend jQuery Mobile to use in mobile devices. I also recommend Kendo UI Mobile, it really looks amazing but the mobile version is not free..
I also suggest to take a look at SPA (Single Page Applications). With SPA you could have a rich javascript application ready for any device. Combining it with Asp.Net WebApi looks very promising.
Jonh Papa made a course on Pluralsight that is completely worth it:
http://www.johnpapa.net/building-single-page-apps-with-knockout-jquery-and-web-api-ndash-the-story-begins/
It's all about thinking about what you really need and how much effort you can put in.
long answer short, i think what you are looking for is Request.Browser to do redirects. You can Access things like Browser.Browser or Browser.Version, i think even a IsMobileDevice is to be found there.
check out: http://msdn.microsoft.com/de-de/library/system.web.httprequest.browser.aspx
We have a 5 page website and we are looking to make a desktop application to update parts of the text just 1 or 2 words to start off with , simple change the html word of hello to test from the desktop program.
I know parts of visual basic 2008 but im not a master of it and so i didn't know if that was the best way to go forward or any other programming languages.
Also what would be the best code way to try and update the text on the website
Any websites would be appreciated so i could learn and possibly build on this as this would be something id like to get into
thanks
That's a bit much to answer fully here. I can give you the basic steps and links to resources to help you on your way.
Without going into specifics, you want to do the following:
Create your website using ASP.NET (since you tagged this as .NET)
Save the text that you want to be changeable in a database
Use DataBinding in ASP.NET to retrieve the data from the database to show it on the pages.
there are plenty of videos on how to do this at http://www.asp.net
You'll have to choose between Web Forms and MVC. if you're brand new I won't try to confuse you. WebForms is a bit easier to use if you've never done real web programming before, but MVC is becoming much more popular. Since it sounds like you're new I'm going to recommend you start at http://www.asp.net/web-forms and pay attention to the "Learning Resources" area
Create a Windows Forms application to update the data
there are plenty of videos on how to do this at http://www.windowsclient.net
Technically you could update the data from an ASP.NET application, or even a Visual Studio Lightswitch app, but you specified you wanted to make a Desktop app, which I interperet as being a standard Windows app.
Of course, you'll have to host this website in IIS. I'm assuming you're already doing that...
I am a student and do my work and projects in c#.. I have not experienced WEB still. The question I wish to ask is that whenever in or near future if I wish to switch onto developing WEB Applications on ASP.Net, will I experience any difference ?? excluding any syntax changes.. I mean in C# the way do Add Update and Delete Records and the calculations, will I be experiencing the same in ASP.Net??
I don't have any concepts of WEB.I want to ask you people that what do you consider the most important to learn before switching onto ASP.Net?
Guide me please.. :/
There are no differences in server-side code.
The main different is in the UI.
While Microsoft tries to maintain a UI experience similar to Windows applications using its custom controls and the designer, you need a good knowledge in HTML and CSS if you want to create complex UI tasks.
Custom controls actually generate client side code such as HTML, CSS and Javascript.
So your main challenge will be the presentation layer and how to create client side code that is well parsed on different browsers. It's more difficult than Windows' "Drag and drop" technique, but it's quite a lot more powerful.
You'll notice that you can't drag and move controls the way you do with Windows apps, changing their coordinates on the screen.
HTML is not about coordinates, it's based on a certain document flow in manually defined layouts.
Don't be tempted by changing Web controls to absolute positioning, just because you think it's "easier". It's a mistake a lot of migrators to ASP.NET do, and it's generally a huge mistake that I suggest you don't fall into.
If you are talking about the difference between Windows apps and Web apps, the most important and hardest thing will be for you to grasp the page life cycle. Check here for Microsofts overview.
I guess the web and desktop applications have considerable difference. The one and most important is that when on Web there are two states of WEB application
On Server side : where we have C# code and stuff.
Client side : Where we have CSS, HTML and JavaScript doing it all for us.
Besides this HTTP which is communication bridge.
This is one big different that desktop application developer face when they switch to the Web Applications.
I will suggest you to take a look at basics of CSS, HTML and JavaScript while swiching on web applications. That really helps in log term.
First, I'd say if you look into web application, make a few quick examles with ASP.NET WebForms, and then a few with ASP.NET MVC, to learn the differences between good design (MVC with AJAX and without postbacks) and bad design (quick and dirty WebForms with postbacks and without AJAX).
Try using JavaScript on pages, and look at how postbacks reset all JS variables, and the impact that has on anything dynamic. Also look at how postbacks exponentially increase the complexity (and bugs, such as session timeouts with label text stored in session) and decrease the debugability of your application.
Take a look at JQuery, JQuery uploadify and JQuery Treeview, and JQuery DataTable, and JQuery Charts.
Add and UpdateRecords imply editing a DataTable and saving the changes.
This is the worst thing you can possibly get your hands in with ASP.NET, that is, if you want to do it properly (with the possible exception of asynchronous data processing).
If you are really passionate to dive into web application development especially ASP.NET, I would recommend the following path for a beginner to kick start with.
Start learning HTML, JavaScript, CSS
Next you could try Classical ASP. Having a know how of classical ASP will definitely be a plus, when moving to ASP.NET because, you will under stand how ASP.NET renders pages and what ASP.NET controls really does etc etc. In my own words ASP.NET is a chocolate coated version of classical ASP, I am telling this from my classical ASP experience.
Next you need to firm understanding of on how the web works and its internals. If you need you could also refresh on How Internet works and How website works (this too).
Finally you could start off with ASP.NET 2.0 and later move to advanved stuff like AJAX, MVC etc.
You could further enhance you skill by learning jQuery and some CMS (Content Management Tools) like DotnetNuke.
I've been away from building browser applications for a long time. I'm now interested in creating one for a hobby of mine. I dread having to deal with HTML, JavaScript etc. to build a high quality browser based user interface. I've got the full suite of Telerik controls. Is it possible to build a polished, somewhat feature rich browser UI while being sheltered from the archaic environment of HTML and JavaScript? I'd love to be able to simply drag-drop components, much like building a Win UI and have the exact HTML, JavaScript code created for me.
Thanks!
Since you have the telerik controls suite, I suggest you have a look at the control demos or the sample applications, to see what's possible without having to program a lot.
In my experience, you can achieve a lot without having to program javascript or HTML (when using the telerik controls). But as soon as your application gets bigger and more complex, you will want to take care of things such as ViewState optimizations or taking advantage of the client-side programming APIs of the telerik controls to optimize your app (e.g. to get a more AJAXy kind of user-experience).
My sentiments exactly, so I now fully recommend to build Web apps with Silverlight (or Flash, but I am .NET guy, so my first thought goes to SL). Using HTML/Javascript is too much work.
SO is a fantastic Web app but I cannot imagine the number of hours spent to achieve this result, especially compared to a "real" programming environment.
MVC + JQuery + Telerik will allow you to be sheltered from a very large amount of the nasty HTML/JavaScript stuff. Silverlight is an option but you'll lose very large potential audience segments that may or may not be important to you (mobile web users, for example).
As somebody else mentioned, the Telerik demos pages are your friend - use them a LOT and you can avoid much of the HTML nastiness.
Well it's kind of a newbie question but I think lots of people have problems with this.
I'm developing Windows/web application for fun, and installing them at friends' places. Most of my developing concentrates on the CRM system, but I have a big problem with showing data from DB in better, more effective and lighter ways.
Using Microsoft built-in web controls is a nice and easy way, but it doesn't answer my needs, and worse, it's not that effective as other web controls in great software and websites(Google(lol)).
I want to build my own controls(GridView, etc...). So my question is how can I do this myself?
How does Microsoft build their web controls for both web and Windows Form developing?
Thanks!
Amit
Here's the starting place for learning about creating your own web controls.
http://msdn.microsoft.com/en-us/library/bb386565.aspx
And here's an older reference, but probably a better place to start.
http://msdn.microsoft.com/en-us/library/aa710843(VS.71).aspx
And finally.... If you want to develop custom controls for Windows Forms applications...
http://msdn.microsoft.com/en-us/library/6hws6h2t.aspx
Well, this can be answered several ways. Most of the nice controls are doing a lot of Javascript that is not obvious unless you look at the output. You might be interested in using JQuery plugins (or "controls"). Also, to be honest, you might be interested in persuing a new way of doing ASP.NET, which is called ASP.NET MVC. This is a very good way forward of building Web applications that utilize a lot of Web standard technologies without hiding and obscuring the details. Here's a link to that:
http://www.asp.net/mvc/