Explain responsive
Explain frameworks
- jQuery
- AngularJS
- BootStrap
- Zorg
getBootstrap.com site
- 1% of web
- Nicholas Gallagher
- Jonathan Neal
- 2011
- Fluid grids
- Responsive
- typography
- Cross browser
- Js iteration
- Css preprocessors
- Css reset
- Css themes
- Get started
- CDN
- Css
- Components
- Javascript
- Customize!
Start webmatrix
- New from asp.net template
- Extensions
- NuGet extension
- Add bootstrap
- Inspect folders
- App_data\packages
- content
- fonts
- scripts
- Default.cshtml
- Show viewers
!DOCTYPEhtml
htmllang="en">
head
metacharset="utf-8"/>
metaname="viewport"content="width=device-width, initial-scale=1.0">
titlephilly.NET</title
linkhref="~/favicon.ico"rel="shortcut icon"type="image/x-icon"/>
linksrc="content/bootstrap.min.css"rel="stylesheet"media="screen">
</head
body
div
header
ul
li
ahref="#">Meetings</a
</li
li
ahref="#">Labs</a
</li
li
ahref="#">Camps</a
</li
</ul
h3philly.NET</h3
</header
div
h1Code Camp 2014 – Refactored!/h1
p20th Code Camp over 8 years expanding to two days for more learning</p
</div
div
p© 2014 phillydotnet.org., Inc.</p
</div
</div
</body
</html
- Shows default fonts, css reset, max-width
body
divclass="container">
header
ul
- Style header for line, spacing
body
divclass="container">
headerclass="page-header">
ul
- Style nav for bar with hover
body
divclass="container">
headerclass="page-header">
ulclass="nav">
- Nav-tabs for horizontal, corners
ulclass="navnav-tabs">
- Nav-pills
ulclass="navnav-pills">
- Pull-right is a helper class
ulclass="navnav-pills pull-right">
- Active to set current item
liclass="active">
- Jumbotron showcases important content
</header
divclass="jumbotron">
h1Code Camp 2014 – Refactored!/h1
- Lead adds more spacing so it stands out, changes size in viewports, increases margin
pclass="lead"20th Code Camp
- Btn styles a button
p
aclass="btn"href="#">Agenda</a
</p
- Btn-success adds color and shape, matches nav
aclass="btnbtn-success"href="#">Agenda</a
- Btn-lg sets size
aclass="btnbtn-success btn-lg"href="#">Agenda</a
- Btn-default has white background
aclass="btnbtn-default btn-lg"href="#">Session Grid</a
- Btn-group joins them together
pclass="btn-group"
- Bootstrap media queries
- Phones
- Tablets
- Desktop
- Large desktop
- Start using comments
<!--End Carousel-->
<!--Grid-->
<!--End Grid-->
Grid System
- Add content to show grid system
div
div
h2Sharing Code and UI between iOS and Android</h2
pYou want to develop on Android and iOS, but rather not have to recreate your app or UI for each platform. This session shows you how to reuse up to 100% of your code and user interface to create native iOS and Android apps using Appmethod and C++. This isn’t your daddy’s C++ either; it has ARC, enhanced RTTI, visual designer, components and no pointer arithmetic (unless you are really into that)./p
</div
div
h2Node.js</h2
pYou have played with Node.js and created a basic server and maybe a simple application, but now where do you go? This presentation will look at what you need to have the complete toolkit with node from testing frameworks to task automation and IDE to essential packages and overall architecture of an app and what should production look like. Microsoft has good support for Node.js in Visual Studio and with Azure and this session will give you a toolset to set up a complete Node.js workflow using some of the tools you are familiar with.</p
</div
div
h2JavaScript for Devices</h2
pA recently released device has brought JavaScript to a perhaps unexpected place…embedded devices. The Espruino board, created as part of a Kickstarter campaign, combines embedded hardware with a JavaScript interpreter to provide real-time, interactive programming of hardware devices. If you’re a JavaScript fan, and want to learn how to do something pretty unusual with this great language, this is the session for you. We’ll look at powering LED strips, reading data from sensors, driving motors and servos, and more./p
</div
</div
- Make a grid row
divclass="row">
div
- Make 3 columns, not good on mobile, use for since 12/3 = 4
divclass="col-xs-4"
- Switch to sm for responsive
divclass="col-sm-4">
- Add another row with only 2 columns
divclass="row">
divclass="col-sm-4">
h2Taking control of your data with Entity Framework</h2
pWe are dealing with more data, faster than ever before. Make sure your code is ready for it!! Whether you are developing Windows apps, Web apps, SOA or Cloud apps, Entity Framework out performs every other form of data access out there. Entity Framework has evolved from a concept into a fully functional ORM that has proven superiority over other ORMs. In this course we will visit everything from Async to Repository Patterns, from Code First to Database First and from stored procedures to LINQ expressions./p
</div
divclass="col-sm-8">
h2Building Speech-enabled Mobile Apps with Cortana</h2
pCan you hear me now? Move over Siri, Cortana is the new star in town and with her comes an army of speech-enabled mobile applications on Windows Phone. Mobile applications are not always easy to work with due to the small screen and small on-screen keyboard. Using our voice is a natural form of communication amongst humans, and ever since 2001’s HAL9000 and Star Trek, we’ve been dreaming of computers who can converse with us. Or maybe you’re part of the new generation of Halo geeks dreaming of Cortana? Thanks to the new Microsoft SDKs for speech recognition and speech synthesis (aka text-to-speech), we are now several steps closer to this reality. This session explores the development techniques you can use to add speech recognition to your Windows Phone applications, including in-app commands, standard & custom grammars, and voice commands usable outside your app with Cortana. We’ll also see how your apps can respond to the user via speech synthesis, opening-up a new world of hands-free scenarios. This reality is here, you’ll see actual live demos with speech and you can now learn how to do it. Most of the demos target Windows Phone, but we’ll also cover some content for Windows Store, iOS and Android./p
</div
</div
- Get creative with offset
divclass="col-sm-offset-4">
- Make even with 6
divclass="col-sm-6">
- Add a nested grid, only covers 6 spaces total
divclass="row">
divclass="col-sm-4">
imgclass="img-responsive"src="
</div
divclass="col-sm-8">
h3Ken Lovely</h3
pSaturday, June 21st, 2014 at 12:00 pm on 1 PA</p
</div
</div
- Use push and pull to swap display order
divclass="col-sm-6 col-sm-push-6">
- Hide a cell on mobile with hidden-xs
divclass="col-sm-6 col-sm-push-6 hidden-xs">
divclass="col-sm-6 col-sm-push-6 visible-xs">
h3Ken has left the building!/h3
</div
Stylesheet for Overrides, JS for Interactivity
- Create a style file for overrides, add after bootstrap
linkhref="content/stylesheet.css"rel="stylesheet"media="screen">
- Add jQuery and bootstrap js for collapse and dropdown
scriptsrc="scripts/jquery-1.9.1.min.js"type="text/javascript"</script
scriptsrc="scripts/bootstrap.min.js"type="text/javascript"</script
- Move navbar outside of container for full width background, then a container to limit nav width
<!--Navbar-->
divclass="navbarnavbar-default">
divclass="container">
</div
</div
<!--End Navbar-->
- Add a brand on the upper left
aclass="navbar-brand text-muted"href="#">philly.NET</a
- Add a div for collapsing
divclass="collapse navbar-collapse">
- Paste in links from below and delete the old header, remove the nav-pills and pull-right
divclass="collapse navbar-collapse">
ulclass="nav">
liclass="active">
ahref="#">Meetings</a
</li
li
ahref="#">Labs</a
</li
li
ahref="#">Camps</a
</li
</ul
</div
- Add the navbar-nav class
ulclass="navnavbar-nav">
- Push the links to the right
ulclass="navnavbar-navnavbar-right">
- Make it darker
divclass="navbarnavbar-inverse">
- Fix to the top of the page
divclass="navbarnavbar-inverse navbar-fixed-top">
- Edit some custom styles to improve spacing
/*Layout*/
body{
padding-top: 70px;
}
/*Jumbotron*/
.jumbotron{
text-align: center;
}
Burger Menu
- Add a burger toggle button, classes automatically position, data- attributes are used by javascript
buttontype="button"class="navbar-toggle"data-toggle="collapse"data-target=".navbar-collapse">
spanclass="icon-bar"</span
spanclass="icon-bar"</span
spanclass="icon-bar"</span
</button
- Make our page less wide
.container{
max-width: 1000px;
}
- Build a dropdown for code camp
liclass="dropdown">
adata-toggle="dropdown"data-target="#">Camps
bclass="caret"</b
</a
</li
- Add an unordered list for the dropdown
ul
li
ahref="#">Agenda</a
</li
li
ahref="#">Session Grid</a
</li
li
ahref="#">Sponsors</a
</li
</ul
- Add a class to style the dropdown
ulclass="dropdown-menu"
- Add a divider and more links
liclass="divider">
</li
li
ahref="#">Register</a
</li
- Test for responsiveness
Glyphs
- Add glyphs to the three content columns
bclass="glyphiconglyphicon-phone"</b
bclass="glyphiconglyphicon-user"</b
bclass="glyphiconglyphicon-cloud"</b
- Style the icons
/*Glyphicons*/
.glyphicon{
font-size: 3em;
display: block;
margin: auto;
color: #242090;
}
Carousel
- Start a carousel
divclass="carousel"id="myCarousel">
</div
- Add sliding and jumbotron styling
divclass="carousel slide jumbotron"id="myCarousel">
- Container sets the max width, carousel-inner is a wrapper for items
divclass="container">
divclass="carousel-inner">
divclass="item">
</div
</div
</div
- Cut and paste content, delete jumbotron
- Set one to active to see it
divclass="item active">
- Relax padding at top
body{
padding-top: 50px;
}
- Add 2 items
divclass="item">
h1Monthly Meetings</h1
pclass="lead">Our popular 15 minutes of fame format</p
pclass="btn-group">
aclass="btnbtn-success btn-lg"href="#">Details</a
aclass="btnbtn-primary btn-lg"href="#">Register</a
</p
</div
divclass="item">
h1Hands-on Labs</h1
pclass="lead">8 month series on JavaScript</p
pclass="btn-group">
aclass="btnbtn-success btn-lg"href="#">Details</a
aclass="btnbtn-primary btn-lg"href="#">Register</a
</p
</div
- Add a control arrow
aclass="left carousel-control"href="#myCarousel"<span</span</a
- Set the data-target for javascript, style the span
aclass="left carousel-control"href="#myCarousel"data-target="prev"<spanclass="icon-prev"</span</a
- Add a matching right arrow
aclass="right carousel-control"href="#myCarousel"data-target="next"<spanclass="icon-next"</span</a
- Add olindicators and data attributes on the items
olclass="carousel-indicators">
liclass="active"data-target="#myCarousel"data-slide-to="0"</li
lidata-target="#myCarousel"data-slide-to="1"</li
lidata-target="#myCarousel"data-slide-to="2"</li
</ol
<!--Controls-->
aclass="left carousel-control"href="#myCarousel"data-slide="prev"<spanclass="icon-prev"</span</a
aclass="right carousel-control"href="#myCarousel"data-slide="next"<spanclass="icon-next"</span</a
<!--End Controls-->
- Style the indicator
.carousel-indicators{
bottom: 0;
}
.carousel-indicators.active{
background-color: #222;
}
.carousel-indicators.li{
background-color: #222;
}
Modal Forms
- Add sign-up link to nav
li
ahref="#">Sign Up</a
</li
- Create the div wrapper
<!--Modal-->
divclass="modal fade"id="textModal">
</div
<!--End Modal-->
- Modal-dialog centers on the page, modal-content sets background color, borders, shadow, and rounded corners
divclass="modal-dialog">
divclass="modal-content">
</div
</div
- Complete the layout with a header and body
divclass="modal-header">
</div
divclass="modal-body">
</div
- Add a close button and title to the header, data-dismiss is used by javascript to close the modal window
buttontype="button"class="close"data-dismiss="modal"aria-hidden="true">times;</button
h4class="modal-title">Join philly.NET</h4
- Make the navbar link activate the modal, test on devices
ahref="#textModal"data-toggle="modal"data-target="#textModal">Sign Up</a
- Add a form to the body
formclass="form">
divclass="form-group">
labelfor="Email">Email Address</label
inputtype="email"class="form-control"id="Email"placeholder="Enter email">
</div
</form
- Add a footer with buttons, data-dismiss will close the form
divclass="modal-footer">
buttontype="button"class="btnbtn-default"data-dimiss="modal">Close</button
buttontype="button"class="btnbtn-primary">Send</button
</div
- Add a second form group
divclass="form-group">
labelfor="Password">Password</label
inputtype="password"class="form-control"id="Password"placeholder="Password">
</div